Network Basics: OSI Data Link Layer
The Open Systems Interconnection (OSI) Data Link layer is the lowest layer at which meaning is assigned to the bits that are transmitted over the network. Data link protocols address things like the size of each packet of data to be sent, a means of addressing each packet so that it’s delivered to the intended recipient, and a way to ensure nodes don’t try to transmit data at the same time.
The Data Link layer also provides basic error detection and correction to ensure that the data sent is the same as the data received. If an uncorrectable error occurs, the data link standard must specify how the node is to be informed of the error so that it can retransmit the data.
At the Data Link layer, each device on the network has an address known as the Media Access Control address, or MAC address. This address is actually hard-wired into every network device by the manufacturer. MAC addresses are unique; no two network devices made by any manufacturer anywhere in the world can have the same MAC address.
You can see the MAC address for a computer’s network adapter by opening a command window and running the ipconfig /all command. In this example, the MAC address of the network card is A4-BA-DB-01-99-E8. (The ipconfig command refers to the MAC address as the physical address.)
Two types of Data Link layer devices are commonly used on networks: bridges and switches. A bridge is an intelligent repeater that is aware of the MAC addresses of the nodes on either side of the bridge and can forward packets accordingly. A switch is an intelligent hub that examines the MAC address of arriving packets in order to determine which port to forward the packet to.
An important function of the Data Link layer is to make sure that two computers don’t try to send packets over the network at the same time. If they do, the signals will collide with each other, and the transmission will be garbled.
Ethernet accomplishes this feat by using a technique called CSMA/CD, which stands for carrier sense multiple access with collision detection. This phrase is a mouthful, but if you take it apart piece by piece, you’ll get an idea of how it works.
Carrier sense means that whenever a device wants to send a packet over the network media, it first listens to the network media to see whether anyone else is already sending a packet.
Multiple access means that nothing prevents two or more devices from trying to send a message at the same time. Sure, each device listens before sending. However, suppose that two devices listen, hear nothing, and then proceed to send their packets at the same time?
Collision detection means that after a device sends a packet, it listens carefully to see whether the packet crashes into another packet. This is kind of like listening for the screeching of brakes at the four-way stop. If the device hears the screeching of brakes, it waits a random period of time and then tries to send the packet again.
CSMA/CD works pretty well for smaller networks. After a network hits about 30 computers, however, packets start to collide like crazy, and the network slows to a crawl. When that happens, the network should be divided into two or more separate sections that are sometimes called collision domains.