# Data Link Layer

The data link layer is layer two of the seven-layer OSI model as well as of the five-layer TCP/IP reference model. It responds to service requests from the network layer and issues service requests to the physical layer.
This is the layer which transfers data between adjacent network nodes in a wide area network or between nodes on the same local area network segment. The data link layer provides the functional and procedural means to transfer data between network entities and might provide the means 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. It is analogous to social interaction in that one needs to be able to talk to Bob to get a message to Fred or James.
The data link provides data transfer across the physical link. That transfer might or might not be reliable; many data link protocols do not have acknowledgements of successful frame reception and acceptance, and some data link protocols might not even have any form of checksum to check for transmission errors. In those cases, higher-level protocols must provide flow control, error checking, and acknowledgements and retransmission.
In some networks, such as IEEE 802 local area networks, the data link layer is split into MAC and LLC sublayers; this means that the IEEE 802.2 LLC protocol can be used with all of the IEEE 802 MAC layers, such as Ethernet, token ring, IEEE 802.11, etc., as well as with some non-802 MAC layers such as FDDI. Other data link layer protocols, such as HDLC, are specified to include both sublayers, although some other protocols, such as Cisco HDLC, use HDLC's low-level framing as a MAC layer in combination with a different LLC layer

### Logical Link Control Sublayer

The uppermost sublayer is Logical Link Control (LLC). This sublayer multiplexes protocols running atop the data link layer, and optionally provides flow control, acknowledgment, and error recovery.
PPP and HDLC protocols works in Logical Link Control Sub Layer.

### Media Access Control Sublayer

The sublayer below it is Media Access Control (MAC). Sometimes this refers to the sublayer that determines who is allowed to access the media at any one time (usually CSMA/CD). Other times it refers to a frame structure with MAC addresses inside. There are generally two forms of media access control: distributed and centralized. Both of these may be compared to communication between people:
* 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".
The Media Access Control sublayer also 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 one can tell where it begins and ends because it is inside an envelope. One might also specify that a letter will begin with a phrase like "Dear Sir", and ends with a phrase like "Yours Sincerely".

## Examples

* ARCnet
* ATM
* Cisco Discovery Protocol (CDP)
* Controller Area Network (CAN)
* Econet
* Ethernet
* Fiber Distributed Data Interface (FDDI)
* Frame Relay
* High-Level Data Link Control (HDLC)
* IEEE 802.2 (provides LLC functions to IEEE 802 MAC layers)
* LocalTalk
* Multiprotocol Label Switching (MPLS)
* Point-to-Point Protocol (PPP)
* Serial Line Internet Protocol (SLIP) (obsolete)
* StarLan
* Token ring
* and most forms of serial communication.

## Interfaces

The 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:
* ODI
* NDIS
* SANA II - Standard Amiga Networking Architecture, version 2

## MAC

The Media Access Control (MAC) data communication protocol sub-layer is a part of the data link layer specified in the seven-layer OSI model (layer 2). It provides addressing and channel access control mechanisms that makes it possible for several terminals or network nodes to communicate within a multipoint network, typically a local area network (LAN) or metropolitan area network (MAN). A MAC protocol is not required in full-duplex point-to-point communication. In single channel point-to-point communications full-duplex can be emulated. This emulation can be considered a MAC layer.
The MAC sub-layer acts as an interface between the Logical Link Control sublayer and the network's physical layer.
The MAC layer provides an addressing mechanism called physical address or MAC address. This is a unique serial number assigned to each network adapter, making it possible to deliver data packets to a destination within a subnetwork, i.e. a physical network without routers, for example an Ethernet network.
Media access control is often used as a synonym to multiple access protocol, since the MAC sublayer provides the protocol and control mechanisms that are required for a certain channel access method. This makes it possible for several stations connected to the same physical medium to share it. Examples of shared physical media are bus networks, ring networks, hub networks, wireless networks and half-duplex point-to-point links.
Examples of packet mode multiple access protocols for wired multi-drop networks are:
* CSMA/CD (used in Ethernet and IEEE 802.3),
* Token bus (IEEE 802.4)
* Token ring (IEEE 802.5)
* Token passing (used in FDDI).
Examples of multiple access protocols that may be used in packet radio wireless networks are:
* CSMA/CA
* Slotted ALOHA
* Dynamic TDMA
* Reservation ALOHA (R-ALOHA).
* CDMA
* OFDMA

## LLC

According to the IEEE 802 family of standards, Logical Link Control (LLC) is the upper sublayer of the OSI data link layer. The LLC is the same for the various physical media (such as Ethernet, token ring, and WLAN).
The LLC sublayer is primarily concerned with:
* Multiplexing protocols transmitted over the MAC layer (when transmitting) and demultiplexing them (when receiving).
* Optionally providing flow control and detection and retransmission of dropped packets, if requested.
The protocol used in IEEE 802 networks and in some non-IEEE 802 networks such as FDDI for LLC is specified by the IEEE 802.2 standard.
Some non-IEEE 802 protocols can be thought of as being split into MAC and LLC layers. For example, while HDLC specifies both MAC functions (framing of packets) and LLC functions (protocol multiplexing, flow control, and detection and retransmission of dropped packets), some protocols such as Cisco HDLC can use HDLC-like packet framing and their own LLC protocol.
An LLC header tells the Data Link layer what to do with a packet once a frame is received. It works like this: A host will receive a frame and look in the LLC header to find out where the packet is destined for - say, the IP protocol at the Network layer or IPX.