Communications software is often divided into layers, each layer comprising a protocol with responsibility for a specific task. For example, a network layer protocol is responsible for getting packets from the transmitter to the receiver through many intermediate nodes; a data-link layer protocol is responsible for negotiating access to a shared medium (for example a local Ethernet LAN). The most frequently quoted model is the ISO OSI 7-layer protocol stack, in which the layers are: application, presentation, session, transport, network, data link, and physical.