1.04k likes | 1.06k Views
Explore functions and services of the Data Link Layer, including framing methods such as character count, flag bytes with byte stuffing, and error control with acknowledgements. Learn about different types of services and framing approaches in network communication.
E N D
Data link Layer Design Issues • Services interface to the network layer. • Framing • Dealing with transmission errors.(Error Control) • Regulating the flow of data so that slow receivers are not swamped by fast senders.(Flow Control)
Functions of the Data Link Layer • Relationship between packets and frames.
Services to Network Layer • Transferring data between network layers of machines
Types of Services 1. Unacknowledged Connectionless Service. 2. Acknowledged connectionless Service. 3. Acknowledged connection-oriented Service.
Services • Unacknowledged connectionless service • Real-time traffic, e.g., speech, video • Most LANs, such as Ethernet • Acknowledged connectionless service • Useful over unreliable channels • Each frame sent individually acknowledged • e.g., wireless systems, e.g. 802.11 (WiFi)
Services • Acknowledged connection-oriented service • Guarantees • Each frame sent is received without error • All frames sent are received in right order • Three phases: • Connection establishment • Variables and counters initialization • Frame transmission • Connection release • Variables, buffers, resources freed up
Framing • Fact • Raw bit stream delivered by physical layer is not error free • Data link layer detects/corrects errors • Framing • Computing checksum • Handling error if any
Framing • Approaches • Character Count. • Flag bytes with byte stuffing. • Starting and ending flags, with bit stuffing.
Character Count • A field in header specifies number of characters in a frame. • Problem?
Example The following character encoding is used in a data link protocol: • A: 01000111; • B: 11100011; • FLAG: 01111110; • ESC: 11100000 • Show the bit sequence transmitted (in binary) for the four-character frame: A B ESC FLAG • When Character count framing method is used: Answer 00000101 01000111 11100011 11100000 01111110
Flag Bytes with Byte Stuffing • A frame delimited by flag bytes • Four examples of byte sequences before and after stuffing
Byte Stuffing / Character Stuffing • A serious problem may easily happen that the flag byte's bit pattern occurs in the data. • One way to solve this problem is to have the sender's data link layer insert a special escape byte (ESC) just before each ''accidental'' flag byte in the data. • The data link layer on the receiving end removes the escape byte before the data are given to the network layer. • This technique is called byte stuffing or character stuffing. • Thus, a framing flag byte can be distinguished from one in the data by the absence or presence of an escape byte before it.
Example The following character encoding is used in a data link protocol: • A: 01000111; • B: 11100011; • FLAG: 01111110; • ESC: 11100000 Show the bit sequence transmitted (in binary) for the four-character frame: A B ESC FLAG When Flag bytes with byte stuffing framing method is used: Answer 01111110 01000111 11100011 11100000 11100000 11100000 01111110 01111110
Flag Bits with Bit Stuffing • Each frame begins and ends with special bit pattern (flag byte): 01111110 • Problem: 6 consecutive 1s in data • Solution: Bit Stuffing: inserting a 0 after 5 consecutive 1s Original Data After Stuffing After received and destuffed
Example • The following character encoding is used in a data link protocol: • A: 01000111; • B: 11100011; • FLAG: 01111110; • ESC: 11100000 • Show the bit sequence transmitted (in binary) for the four-character frame: A B ESC FLAG • When Starting and ending flag bytes, with bit stuffing framing method is used: Answer 011111100100011111010001 11110000 0 011111010 0111110
Exercises The following character encoding is used in a data link protocol: A: 11010101; B: 10101001; FLAG: 01111110; ESC: 10100011 • Show the bit sequence transmitted (in binary) for the five-character frame: A ESC B ESC FLAG when each of the following framing methods are used: (a) Flag bytes with byte stuffing. (b) Starting and ending flag bytes, with bit stuffing. ANSWER: • a) 01111110110101011010001110100011 10101001 1010001110100011101000110111111001111110 • b) 01111110 11010101 10100011 10101001 10100011 011111010 0111110
Exercises 1.Given the output after byte-stuffing: FLAG A B ESC ESC C ESC ESC ESC FLAG ESC FLAG D F FLAG. What is the original data? ANSWER: • A B ESC C ESC FLAG FLAG D F 2. Given the output after byte-stuffing: FLAG A B ESC ESC C ESC ESC ESC FLAG ESC FLAG D FLAG. What is the original data? ANSWER: • A B ESC C ESC FLAG FLAG D 3. A bit string, 0111101111101111110, needs to be transmitted at the data link layer. What is the string actually transmitted after bit stuffing? ANSWER: • The output is 011110111110011111010
Error Control • Using acknowledgement • Positive- If the sender receives a positive acknowledgement about a frame, it knows the frame has arrived safely. • Negative-On the other hand, a negative acknowledgement means that something has gone wrong, and the frame must be transmitted again. • Problem: In some cases, sender waits for acknowledgement forever if a frame is lost for ever. • Solution: Timer • Problem: Duplicate transmission (receiver will accept the same frame two or more times) • Solution: Sequence number
Positive Acknowledgement • Sender sends a message, waits for acknowledgement from receiver, and then sends next message
Reliability and Acknowledgement • Case 2: data lost Sender Receiver • Case 1: no error Sender Receiver Time Data Time Data X Timeout Ack. Data Ack. Timeout and retransmission
Reliability and Acknowledgement • Case 3: data error Sender Receiver • Case 4: ack. lost Sender Receiver Time Data Time Data Error Timeout Timeout X Data Data Ack. Ack. Timeout and retransmission New problem? Duplicate Solution: Sequence number
Flow Control • Needed • Problem • When frames are transmitted faster than receiver can accept, frames will be lost • Solution • Flow control by feedback mechanism • The protocol contains well-defined rules about when a sender may transmit the next frame
Introduction • Transmission impairments (errors) • Attenuation • Loss of energy as signal propagates • Delay Distortion • Components travel at different speeds • Noise • Unwanted energy from other sources
Attenuation, distortion, and noise Attenuation Delay Distortion Noise • The McGraw-Hill Companies, Inc., 2004
Error Correcting/Detecting Codes • Error correction • Referred to as forward error correction • Detect and correct error • Error detection • Detect error and request retransmission • Redundancy added to message • Codeword (n bits) • message + redundancy (m bits) (r bits) • n = m + r • Code rate = m / n
Error Correcting/Detecting Codes • Where are error correction/detection used? • Correcting: physical layer and higher layers • Detecting: data link, network, and transport • Error correcting or error detecting? • Circumstances, application, etc.
Error-Correcting Codes • Hamming codes (our focus) • Binary convolution codes • GSM mobile phone system, satellite communication, 802.11 • Reed-Solomon codes • DSL, data over cable, satellite communications • CDs, DVDs, Blue-ray disks • Low-density parity check codes • Digital video broadcasting, 10 Gbps Ethernet, power-line networks, 802.11
Hamming Distance • The number of bit positions in which two codewords differ is called the Hamming distance . • Its significance is that if two codewords are a Hamming distance ‘d’ apart, it will require ‘d’ single-bit errors to convert one into the other
Error Correction • Hamming Code • Linear systematic block code • For m-bit message we need r-bit redundancy, where (m +r + 1) 2r Why? • Redundancy bits are placed in position of 2’s power • Example: If m = 7, then r = 4
Hamming Code Example 7-bit data word "0110101“(d -data bits, p -parity bits)
Combination p1 : bits 1, 3, 5, 7, 9, 11.. p2 : bits 2,3,6,7,10,11.. p4 : bits 4,5,6,7.. p8 : bits 8,9,10,11..
Hamming Code Example (Cont.) • Assume the final bit gets corrupted and turned from 1 to 0 • Flag each parity bit as 1 when the even parity check fails
Hamming Code Example • How to construct codeword • message: m = 7 bits • 1. find r using the formula r = 4 • 2. place data bits in codeword • 3. calculate P bits: even parity Sum should be even P1+1+0+0+0+1 P1 = 0 P2+1+0+0+0+1 P2 = 0 P4+0+0+0 P4 = 0 P8+0+0+1 P8 = 1
Hamming Code Example (Cont’d) • How to correct error and retrieve message • 1. compute syndrome similar to codeword construction error position • 2. flip the bit in the error position • 3. remove P bits from codeword Example of an (11, 7) Hamming code correcting a single-bit error
Error-Detecting Codes • Parity • Checksums • Internet • Cyclic Redundancy Checks (CRCs) • They are all linear systematic block code
Error-Detecting Codes • Parity bit • Added to data so that number of 1 bits in codeword is • Even (even parity) • Odd (odd parity) • E.g., ASCII of ‘H’ is 1011010, its codeword is • ________ if even parity is used • ________ if odd parity is used 10110100 10110101
Use Parity to Detect Burst Errors • Organize a block into (k x n) matrix • One parity for each column one row of parities at the bottom • Transmit one row at a time • Can detect burst errors of length n
Example • Interleaving of parity bits to detect a burst error
Error-Detecting Code - CRC • Bit stream is treated as polynomial w/ coefficients 0 and 1 • Example: • data: 10100111 polynomial: degree = 7 • Modulo 2 arithmetic is used • Example: 10011011 11110000 +11001010 -10100110 01010001 01010110 • XOR
Error-Detecting Code - CRC • Use generator polynomial G(x) to calculate checksumR(x) • Frame: P(x) generator: G(x) degree of G(x) = d • Transmitted: checksummedframeP(x)·xd + R(x) • It’s guaranteed that P(x)·xd + R(x) is divisible by G(x)!!
Error-Detecting Code - CRC • Receiver • Divides checksummed frame by G(x) • If remainder is zero • No error, CRC is removed • Otherwise • Error, the frame is discarded
CRC - Example Generator: 0 0