The data link layer is the layer of the model which ensures that data is transferred correctly between adjacent network nodes in a wide area network. The data link layer provides the functional and procedural means to transfer data between network entities and to detect and possibly correct errors that may occur in the Physical layer. Examples of data link protocols are Ethernet for local area networks and PPP, HDLC and ADCCP for point-to-point connections.
The data link is all about getting information from one place to a selection of other places. At this layer one does not need to be able to go everywhere, just able to go somewhere else. So in social contact, one needs to know at least one other person, but not necessarily know Fred Jones of Ohio, USA.
This layer is made up of two components. The first component is Logical Link Control. This component determines where one frame of data ends and the next one starts. In a snail-mail network, each letter is one frame of data, and you can tell where it begins and ends because it is inside an envelope. You might also specify that a letter will begin with a phrase like "Dear Sir", and ends with a phrase like "Yours Sincerely".
The second component is Media Access Control. This component determines who is allowed to access the media at any one time. There are generally two forms of media access control: distributed and centralised. Both of these have real-world examples:
- In a network made up of people speaking, i.e. a conversation, we look for clues from our fellow talkers to see if any of them appear to be about to speak. If two people speak at the same time, they will back off and begin a long and elaborate game of saying "no, you first".
- In the UK Houses of Parliament, the speaker determines who can speak at any time and gets to say "order" very loudly if anybody breaks the rules.
InterfacesThe data link layer is often implemented in software as a "network card driver". The operating system will have a defined software interface between the data link and the network transport stack above. This interface is not a layer itself, but rather a definition for interfacing between layers. Examples include: