1 / 37

EEC-484/584 Computer Networks

EEC-484/584 Computer Networks. Lecture 7 Wenbing Zhao wenbing@ieee.org (Part of the slides are based on Drs. Kurose & Ross ’ s slides for their Computer Networking book, and on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall). Outline. Quiz 1 result Data Link layer

verna
Download Presentation

EEC-484/584 Computer Networks

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. EEC-484/584Computer Networks Lecture 7 Wenbing Zhao wenbing@ieee.org (Part of the slides are based on Drs. Kurose & Ross’s slides for their Computer Networking book, and on materials supplied by Dr. Louise Moser at UCSB and Prentice-Hall)

  2. Outline • Quiz 1 result • Data Link layer • Data Link Layer Design Issues • Framing • Error Detection and Correction • IS&T Tour Scheduled • December 6 (Wednesday) 2-3pm (MW session) • December 7 (Thursday) 4-5pm (TTh session) EEC-484/584: Computer Networks

  3. EEC484 Quiz1 Result • High 89; Low 65; Average 80 • Average of Q1 – 25, Q2 – 27, Q3 – 18, Q4 - 11 EEC-484/584: Computer Networks

  4. EEC584 Quiz1 Result(MW Session) • High 88, low 68, average 77 • Average of Q1 – 24, Q2 – 24, Q3 – 19, Q4 - 11 EEC-484/584: Computer Networks

  5. EEC584 Quiz1 Result(TTh Session) • High 98, low 63, average 88 • Average of Q1 – 24, Q2 – 27, Q3 – 19, Q4 - 18 EEC-484/584: Computer Networks

  6. 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) and negative acks (nacks) • Sender has timer –within timeout get ack, or send again • If frame transmitted multiple times, receiver may get several copies - Use sequence numbers EEC-484/584: Computer Networks

  7. Data Link Layer Design Issues • Flow Control • Sender may transmit frames faster than receiver can receive them • Throttle sender so sends no faster than receiver can receive them EEC-484/584: Computer Networks

  8. Functions of Data Link Layer • Provide service interface to the network layer • Virtual source-to-destination communication channel • Dealing with transmission errors • Regulating data flow • Slow receivers not swamped by fast senders EEC-484/584: Computer Networks

  9. Services Provided to Network Layer (b) Actual communication (a) Virtual communication EEC-484/584: Computer Networks

  10. Placement of Data Link Protocol EEC-484/584: Computer Networks

  11. 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

  12. 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

  13. 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 with 2 bits • 1 => 10 • 0 => 01 • Can use 00 or 11 to delimit frames EEC-484/584: Computer Networks

  14. Framing Based on Character Count • Use field in header to indicate number of characters in frame • Count might be garbled, not used EEC-484/584: Computer Networks

  15. 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

  16. Framing Based on Byte Stuffing EEC-484/584: Computer Networks

  17. 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

  18. 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

  19. 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 • Receiver out of synch with sender • Errors usually occur in bursts EEC-484/584: Computer Networks

  20. 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

  21. 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

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. 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

  28. 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 EEC-484/584: Computer Networks

  29. 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

  30. 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

  31. Compute CRC Checksum XOR EEC-484/584: Computer Networks

  32. 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

  33. Optional Homework • 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

  34. Optional Homework • 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? • 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

  35. Optional Homework • 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

  36. Optional Homework • 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

  37. Optional Homework • Q6. A bit stream 10011101 is 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

More Related