The Data Link Layer Goal –As reliable as possible, efficient communication Point-to-Point –single connection –bits arrive in order sent Not necessarily reliable (unreliable)
Data Link Layer Problems Errors occur Finite data rate Propagation delays –Time required for signal to travel from source to destination
Data Link Functions Well-defined interface to the network layer Grouping the bits of the physical layer into frames Handling transmission errors Regulating the rate of data flow
Services Provided to the Data Link Layer Unacknowledged connectionless Acknowledged connectionless Acknowledged connection-oriented
Unacknowledged Connectionless Frames are independent No acknowledgment No connection Lost frames are not detected –may be detected in higher level layers Best when error rates are low Good when late data is not useful –speech, video Most LANs use this service
Acknowledged Connectionless (More Reliable) Each frame individually acknowledged Unacknowledged frames are eventually resent Good for unreliable channels –wireless for example
Acknowledged Connection-oriented Service Connection is established Each frame is numbered Every frame sent is guaranteed to be received eventually Frames guaranteed to arrive in correct order Provides a reliable bit stream
Framing Bit streams from physical layer are unreliable We would like to check for errors Sending a relatively small frame of bits, combined with some kind of data redundancy, allows us to provide some error checking
Methods that Break the Bitstream into Frames Character count Starting and ending characters with character stuffing Starting and ending flags with bit stuffing Physical layer coding violations
Big Problem: –How do we recover if we get out of sync? Character Count 5 T h i s 9 M e s s a g e 2 S Frames are prefixed by chars/frame ASCII 5 84 count What happens if we lose this character?
Start and End Characters with Character Stuffing Special ASCII characters signal start and end of frame DLEData Link Escape (ASCII = 16) STXStart of text (ASCII = 2) DLEData Link Escape (ASCII = 16) ETXEnd of text (ASCII = 3) But what if these flags occur in the data? –Use two DLE characters to send one data DLE
Examples of Char Stuffing DLE STX T H I S M DLE ETX X Y DLE STX DLE ETX 5 DLE STX X Y DLE DLE STX DLE DLE ETX 5 DLE ETX TSH IM
Start and End Flags With Bit Stuffing Choose a bit sequence for start/end flag Example: Every time you see five 1’s in sequence in the data, stuff a zero into the stream
Final Framing Method - Physical Layer Coding Violations Start/End flag consists of sequence that is illegal in the data Example: 10 is 1 01 is 0 00 or 11 could be used as flags
Error Control Error Control provides feedback about the success of data transmission –frames may arrive correctly (receiver sends ack) –frames may arrive corrupted (receiver sends negative ack) –frames may be lost (no ack is ever received) acks may be lost (no ack is ever received) No error control in unacknowledged connectionless service
Flow Control What happens if the sender can send data faster than the receiver can handle it? –Receiver buffers overflow –Data is lost or requires retransmission Solution: Flow control –Receiver specifies the number of frames that may be transmitted (no more than can be held in its buffers). The sender cannot send more data until the receiver grants permission.
Error Detection and Correction Error rates are relatively low on digital networks and LAN’s Error rates are high on analog twisted pairs and wireless communication When errors occur, they tend to occur in bursts –More data blocks are correct –Errors are harder to detect
Definitions Error-correcting Codes –Codes that contain enough redundant information to correct errors Error-detecting Codes –Codes that contain enough redundant information to detect errors
Parity - a simple error detection mechanism The number of “1” bits in a fixed length bit sequence is either always even (even parity) or always odd (odd parity) Example (even parity, length = 8) parity bit Any single bit errors are detected Any even number of bit errors is not detected Any odd number of bit errors is detected
Hamming Distance Frame codeword contains n = m + r total bits –where m is number of message bits r is number of redundant bits Hamming Distance –The number of bit positions in which two codewords differ Hamming Distance of Complete Code –The minimum Hamming Distance between codewords Hamming distance = 6
Hamming Distance To detect d errors you need a Hamming distance (for the complete code) of d+1 To correct d errors you need a Hamming distance (for the complete code) of 2d+1
Error Correcting Codes Consider an encoding scheme where these are the only valid codewords The Hamming distance of the complete code is 5 We can correct d-bit errors where 2d+1 = 5 We can detect d-bit errors where d+1 = with two errors (with < 3 errors must be 0) with three errors could be with three errors or with two errors.