350 likes | 367 Views
EEC-484/584 Computer Networks. Lecture 12 Wenbing Zhao Cleveland State University wenbing@ieee.org. Medium Access Control (MAC). DLL. Data Link. Outline. Quiz#3 Result Data Link layer Data Link Layer Design Issues Framing Error Detection and Correction. We Cover
E N D
EEC-484/584Computer Networks Lecture 12 Wenbing Zhao Cleveland State University wenbing@ieee.org
Medium Access Control (MAC) DLL Data Link Outline • Quiz#3 Result • Data Link layer • Data Link Layer Design Issues • Framing • Error Detection and Correction We Cover This SubLayer in this lecture EEC-484/584: Computer Networks
EEC584 Quiz#1 Result • Average: 81.4, high: 97, low: 55 • Q1-41.8, Q2-12.6, Q3-10, Q4-17 EEC-484/584: Computer Networks
Data Link Layer Design Issues • Services Provided to the Network Layer • Point-to-point, source-to-destination • Framing • Physical bit stream divided up into frames • Error Control • Acknowledgements (acks), retransmission, duplicate suppression • Flow Control • Throttle sender so sends no faster than receiver can receive them EEC-484/584: Computer Networks
Functions of Data Link Layer • Provide a virtual source-to-destination communication channel to the network layer • Dealing with transmission errors • Regulating data flow EEC-484/584: Computer Networks
Services Provided to Network Layer (b) Actual communication (a) Virtual communication EEC-484/584: Computer Networks
Placement of Data Link Protocol EEC-484/584: Computer Networks
Types of Services Provided to Network Layer • Unacked connectionless • Ok if low error rate, real time applications • Acked connectionless • Unacked connection-oriented • Acked connection-oriented EEC-484/584: Computer Networks
Framing • DL layer divides physical bit stream into frames • Checksum computed by source included in frame • Checksum recomputed by destination and checked against checksum included in the frame • Discard/recover bad frame, notify source EEC-484/584: Computer Networks
How Does DL Layer Form Frames? • Insert time gaps between frames: too risky • Character count • Flag bytes with byte stuffing • Starting and ending flags, with bit stuffing • Physical layer coding violations • Example: encode 1 bit of data with 2 bits • 1 => 10 • 0 => 01 • Can use 00 or 11 to delimit frames EEC-484/584: Computer Networks
Framing Based on Character Count • Use field in header to indicate number of characters in frame • Count might be garbled EEC-484/584: Computer Networks
Framing Based on Byte Stuffing • Each frame starts and ends with a special flag byte • Problem: flag byte might appear in data • Solution: • Source inserts ESC (DL escape) before each flag byte; ESC before each ESC • Destination removes inserted ESC bytes • Disadvantage: depends on 8-bits characters in ASCII EEC-484/584: Computer Networks
Framing Based on Byte Stuffing EEC-484/584: Computer Networks
Framing Based on Bit Stuffing • Each frame begins and ends with special bit patterns, 01111110 (in fact, a flag byte) • When source’s data contains 11111, stuff 0 • When destination receives 111110, deletes 0 • Advantages: • Allows arbitrary number of bits per frame • Allows arbitrary number of bits per character EEC-484/584: Computer Networks
Framing Based on Bit Stuffing: Example Original Frame (payload only) Frame after bit stuffing Received Frame after taken stuffed bit out EEC-484/584: Computer Networks
Error Detection and Correction • Causes of errors • Transmission errors on phone lines due to thermal noise • Data transmission errors due to impulse noise • Signals are separated, distorted, recombined • Crosstalk between physically adjacent wires • Compression and decompression • Errors usually occur in bursts EEC-484/584: Computer Networks
Error-Correcting Codes • n-bit codeword– an n-bit unit containing data and check bits • m bits of data, r bits redundant/check bits (n = m+r) • How to measure the differences between two codewords (num of different bits) • Using exclusive OR and counting number of 1 bits in the result EEC-484/584: Computer Networks
Error-Correcting Codes • Hamming distance– number of bit positions in which two codewords differ • If two codewords are a Hamming distance d apart, it will require d single-bit errors to convert one into the other EEC-484/584: Computer Networks
Error-Correcting Codes • Complete code • Complete list of all legal codewords: 2m possible data messages • Recall that there are m bits of data • Hamming distance of the complete code • Find two codewords whose Hamming distance is minimum EEC-484/584: Computer Networks
Error-Detection Codes • A distance d+1 code can detect up to d errors, why? • If there are d+1 errors, one valid codeword might be turned into another valid codeword • ≤ d errors will change a valid codeword into an illegal codeword can be detected! EEC-484/584: Computer Networks
Error-Correcting Codes • To correct d errors, need a distance 2d+1 code • Legal codewords are so far part that even with d changes, original codeword is still closer than any other codeword, so it can be uniquely determined EEC-484/584: Computer Networks
Error-Correcting Codes: Example • Consider a code with only four valid codewords • 0000000000, 0000011111, 1111100000, 1111111111 • This code has a distance 5 can correct double errors • If 0000000111 arrives, receiver knows the original must have been 0000011111 • However, if triple error changes 0000000000 to 0000000111, the error will not be corrected properly EEC-484/584: Computer Networks
Parity Bit • Parity bit – a single bit is appended to the data • Parity bit is chosen so that number of 1 bits in the codeword is even or odd • Example: Given 1011010 • With even parity 10110100 • With odd parity 10110101 • A code with a single parity bit has a distance 2 • Since any single-bit error produces a codeword with wrong parity can be used to detect single bit errors EEC-484/584: Computer Networks
Error-Detecting Codes • If a single parity bit is appended to a block, error detecting probability is only 0.5 if burst error occurs (why?) • This can be improved by treating a block as a matrix, n bits wide and k bits high, • A parity bit is computed for each column and affixed to the matrix as the last row • The matrix is transmitted one row at a time • Probability of accepting bad block is 2-n EEC-484/584: Computer Networks
Error-Detecting Codes: CRC • Polynomial code, also known as CRC (Cyclic Redundant Code) • Treat bit string as polynomial with 0 and 1 coefficients • m-bit frame: M(x) = bm-1xm-1 + … + b0 • E.g.: 11011010 => M(x) = x7 + x6 + x4 + x3 + x1 • Use modulo 2 arithmetic • No carries or borrows: XOR • The degree of a polynomial is the maximum of the degrees of all terms in the polynomial EEC-484/584: Computer Networks
Cyclic Redundant Code • Sender and receiver agree on generator polynomial G(x) (High & low order bits must be 1) • For a frame with m bits corresponding to M(x),m > deg G(x) = r • Append checksum to end of frame so polynomial T(x) corresponding to checksummed frame is divisible by G(x) • When receiver gets checksummed frame, divides T(x) by G(x) • If remainder R(x) != 0, then transmission error EEC-484/584: Computer Networks
Algorithm to Compute CRC Checksum • Let m = deg M(x), r = deg G(x) • Appendr 0 bits to lower-order end of frame: xrM(x) • Divide bit string corresponding to xrM(x) by bit string corresponding to G(x) • Subtractremainder R(x) from bit string corresponding to xrM(x), result is checksummed frame. Let T(x) be its polynomial • xrM(x) = Q(x)G(x) + R(x) • xrM(x) – R(x) = Q(x)G(x) = T(x) EEC-484/584: Computer Networks
Compute CRC Checksum XOR EEC-484/584: Computer Networks
International Standard Polynomials • CRC-12 G(x) = x12 + x11 + x3 + x2 + x1 + 1 • Used for 6-bit characters • CRC-16 G(x) = x16 + x15 + x2 + 1CRC-CCITT G(x) = x16 + x12 + x5 + 1 • Used for 8-bit characters • CRC-32 G(x) = x32 + x26 + x23 + x22 + x16 + x11 + x10 + x8 + x7 + x5 + x4 + x2 + x1 + 1 • Used in IEEE 802 • Detects all bursts of length 32 or less and all bursts affecting an odd number of bits EEC-484/584: Computer Networks
Exercise • Q1. 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 each of the following framing methods are used: (a) Character count. (b) Flag bytes with byte stuffing. (c) Starting and ending flag bytes, with bit stuffing EEC-484/584: Computer Networks
Exercise • Q2. The following data fragment occurs in the middle of a data stream for which the byte-stuffing algorithm described in the text is used: A B ESC C ESC FLAG FLAG D. What is the output after stuffing? EEC-484/584: Computer Networks
Exercise • Q3. A bit string, 0111101111101111110, needs to be transmitted at the data link layer. What is the string actually transmitted after bit stuffing? EEC-484/584: Computer Networks
Exercise • Q4. One of your classmates, Scrooge, has pointed out that it is wasteful to end each frame with a flag byte and then begin the next one with a second flag byte. One flag byte could do the job as well, and a byte saved is a byte earned. Do you agree? EEC-484/584: Computer Networks
Exercise • Q5. To provide more reliability than a single parity bit can give, an error-detecting coding scheme uses one parity bit for checking all the odd-numbered bits and a second parity bit for all the even-numbered bits. What is the Hamming distance of this code? EEC-484/584: Computer Networks
Exercise • Q6. A bit stream 10011101 is to be transmitted using the standard CRC method described in the text. The generator polynomial is x3 + 1. Show the actual bit string transmitted. Suppose the third bit from the left is inverted during transmission. Show that this error is detected at the receiver's end. EEC-484/584: Computer Networks