1 / 75

Chapter 4 Data Link Layer

Chapter 4 Data Link Layer. Framing Error control Flow control Multiplexing Link Maintenance Security. Services. Transfers frames across direct connections Directly connected (can be wireless), wire-like Losses & errors, but no out-of-sequence frames More detailed services

thea
Download Presentation

Chapter 4 Data Link Layer

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. Chapter 4 Data Link Layer Framing Error control Flow control Multiplexing Link Maintenance Security

  2. Services • Transfers frames across direct connections • Directly connected (can be wireless), wire-like • Losses & errors, but no out-of-sequence frames • More detailed services • Framing (bits ↔ frames) • Error control (protection from impairment) • Flow control • Multiplexing • Link Maintenance • Security: Authentication & Encryption

  3. Examples PPP HDLC Ethernet LAN IEEE 802.11 (WiFi) LAN Packets Packets Data link layer Data link layer Frames A B Physical layer Physical layer Data Link Protocols

  4. Framing(Chapter 5.4 in Leon-Garcia)

  5. Bit stream - frames Frame boundaries can be determined using: Character Counts Control Characters Framing Bits Framing by illegal code received frames transmitted frames Framing 0111110101 0110110111 Framing

  6. Data to be sent A DLE B ETX DLE STX E After stuffing and framing DLE STX A DLE DLE B ETX DLE DLE STX E DLE ETX Control Characters • What about transmission of data (including non-printable characters)? • Introduce DLE (data link escape) = 0x10 • DLE STX (DLE ETX) used to indicate beginning (end) of frame • Insert extra DLE in front of occurrence of DLE STX (DLE ETX) in frame • All DLEs occur in pairs except at frame boundaries. • Transmission of printable characters using ASCII • Octets with HEX value < 0x20 are nonprintable • Use control characters: STX (start of text) = 0x02; ETX (end of text) = 0x03.

  7. HDLC frame any number of bits Flag FCS Control Information Flag Address Bit Stuffing • Frame delineated by flag character • HDLC uses bit stuffing to prevent occurrence of flag 01111110 inside the frame • Transmitter inserts extra 0 after each consecutive five 1s inside the frame • Receiver checks for five consecutive 1s • if next bit = 0, it is removed • if next two bits are 10, then flag is detected • If next two bits are 11, then frame has errors

  8. Data to be sent (a) 0110111111111100 After stuffing and framing 0111111001101111101111100001111110 (b) Data received 01111110000111011111011111011001111110 After destuffing and deframing *000111011111-11111-110* Example: Bit stuffing

  9. Example: Framing in Ethernet • Ethernet complies to standard IEEE 802.3 • An illegal manchester coding is used for framing. • A character count is also included in the header. • All frames have an integral number of bytes. If not, the frame is considered to be received in error.

  10. Error Control Coding(Chapter 3.9 in Leon-Garcia)

  11. c1…cn b1…bk Decoder Channel Encoder Error Control • Two approaches • Forward error correction (FEC) • Error detection & retransmission (ARQ) • Add redundancy (admit only codewords with a certain pattern) • Blindspot: when channel transforms a codeword into another codeword • (n,k) block code • There are capacity-achieving codes • Usually with somewhat high complexity; • When bandwidth is abundant it suffices to use simpler codes.

  12. Information bits: b1, b2, b3, …, bk Check Bit: bk+1= b1+ b2+ b3+ …+ bk modulo 2 Codeword: (b1, b2, b3, …, bk,, bk+!) Single Parity Check • n=k+1 • All codewords have even # of 1s • All error patterns that change an odd number of bits are detectable • Others undetectable • Redundancy: overhead = 1/(k + 1)

  13. Example • Information (7 bits): (0, 1, 0, 1, 1, 0, 0)

  14. n 2 n 4 Probability of Error P[error detection failure] = P[undetectable error pattern] = P[all error patterns with even number of 1s] = p2(1 – p)n-2 + p4(1 – p)n-4 + … • Example: Evaluate above for n = 6, p = 0.01 P[undetectable error] = 0.0014

  15. 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 11 row check bits column check bit Two-Dimensional Parity Check

  16. 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 1 0 1 1 0 1 0 0 1 1 1 Two errors One error 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 0 0 0 0 1 0 1 1 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 1 Three errors Four errors (undetectable) Arrows indicate failed check bits Error-detecting capability 1, 2, or 3 errors can always be detected; Not all patterns >4 errors can be detected

  17. Hamming Codes • Class of linear block codes • Capable of correcting all single-error patterns • For each m> 2, there is a (2m–1, n-m) Hamming code

  18. m = 3 Hamming Code • Information bits are b1, b2, b3, b4 • Parity checks (binary addition/multiplication) b5 = b1 + b3 + b4 b6 = b1 + b2 + b4 b7 = + b2 + b3 + b4 • Linearity • 24 = 16 codewords

  19. Hamming (7,4) code

  20. Rearrange parity check equations: All codewords must satisfy these equations Note: each nonzero 3-tuple appears once as a column in check matrix H b1 b2 0 = 1 0 1 1 1 0 0 b3 0 = 1 1 0 1 0 1 0 b4 = Hbt = 0 0 = 0 1 1 1 0 0 1 b5 b6 b7 Parity Check Equations 0 = b1 + b3 + b4 + b5 0 = b1 + b2 + b4 + b6 0 = + b2 + b3 + b4 + b7 • In matrix form:

  21. 0 0 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 Single error detected 1 0 1 s = H e= = 0 1 0 0 1 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 1 1 1 0 1 1 1 0 0 Double error detected s = H e= = + = 1 1 1 0 0 0 0 1 0 1 1 1 0 0 1 1 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 Triple error not detected s = H e= = + + = 0 Hamming Code: Error Detection

  22. o o o b1 b2 o o o o o Minimum distance • Undetectable error pattern must have 3 or more bits • At least 3 bits must be changed to convert one codeword into another codeword Set of n-tuples within distance 1 of b2 Set of n-tuples within distance 1 of b1 Distance 3 • Spheres of distance 1 around each codeword do not overlap • If a single error occurs, the resulting n-tuple will be in a unique sphere around the original codeword

  23. General Hamming Codes • For m> 2, the Hamming code is obtained through the check matrix H: • Each nonzero m-tuple appears once as a column • The resulting code corrects all single errors • P[undetectable error] = P[ error is a codeword] ≈ (# of codewords with dmin) x pdmin • Animated example http://www.systems.caltech.edu/EE/Faculty/rjm/SAMPLE_20040708.html

  24. R b (Receiver) (Transmitter) + e Error pattern Hamming Codes: Error-correction • Compute syndrome: s = HR = H (b + e) = Hb + He = He • If s = 0, then the receiver accepts R as the transmitted codeword, find the corresponding k-bit message • If s is nonzero, then an error is detected • Hamming decoder assumes a single error has occurred • Each single-bit error pattern has a unique syndrome • The receiver matches the syndrome to a single-bit error pattern and corrects the appropriate bit

  25. s = HR = He 7p s = 0 s = 0 1–3p 3p No errors in transmission Undetectable errors Correctable errors Uncorrectable errors (1–p)7 7p(1–3p) 7p3 21p2 Hamming Codes: Performance • Assume bit errors occur independent of each other and with probability p

  26. Other Error Control Codes • Good practical codes for error detection: • Internet Check Sums • CRC Polynomial Codes They can detect the vast majority of errors. • Good codes for error “correction”: • Turbo codes • Low-density parity-check (LDPC) codes

  27. Internet Checksum • Several Internet protocols (e.g. IP, TCP, UDP) use check bits to detect errors in the header • A checksum is calculated for header contents and included in a special field. • Treating each 16-bit word in data as an integer, find x = b0 + b1 + b2+ ...+ bL-1 modulo 216-1 • The checksum is then given by: bL = - x modulo 216-1 Thus, the headers satisfy the following pattern: 0 = b0 + b1 + b2+ ...+ bL-1 + bL modulo 216-1

  28. Encoder for g(x) = x3 + x + 1 g0 = 1 g1 = 1 g3 = 1 0,0,0,i0,i1,i2,i3 Reg 2 Reg 1 Reg 0 + + Polynomial Codes • Convenient mathematical formulation of coding • Polynomials as codewords • Implemented using shift-register circuits • Called cyclic redundancy check (CRC) codes • Excellent for detecting burst errors

  29. Automatic Repeat Request (ARQ)(Chapter 5 in Leon-Garcia)

  30. Each layer provides a service to the layer above. It does so by executing a peer-to-peer protocol. The protocol uses the the services of the layer below. Peer-to-Peer Protocols n + 1 n + 1 n n n – 1 n – 1

  31. Service Models • The service model specifies the manner in which information is transferred. • Connection-oriented • Connectionless

  32. n + 1 peer process send n + 1 peer process receive Layer n connection-oriented service SDU SDU Connection-Oriented • Connection setup • Message transfer • Connection release • Example: TCP, PPP

  33. Connectionless Transfer Service • No setup • Each message sent independently • Must provide all address information per message • Simple & quick • Example: UDP, IP n + 1 peer process send n + 1 peer process receive Layer n connectionless service SDU

  34. Automatic Repeat Request (ARQ) • Purpose: To pass to the receiver every frame correctly, only once, in order. • Bad things can happen: Error, arbitrary delay, out-of-order arrival, or loss. Aim at very high reliability. • Assume if frames arrive, they arrive in-order for now. We save the out-of-order problem for later. • Basic elements: • Error-detecting code • ACKs (positive acknowledgments) • NAKs (negative acknowledgments) • Timeout mechanism

  35. Stop-and-Wait ARQ Transmit a frame, wait for ACK Error-free packet Packet Information frame Transmitter Receiver Timer set after each frame transmission Control frame

  36. (a) Frame 1 lost Time-out Time A Frame 0 Frame 1 Frame 1 Frame 2 ACK ACK B (b) ACK lost Time-out Time A Frame 0 Frame 1 Frame 1 Frame 2 ACK ACK ACK B Need for Sequence Numbers • In cases (a) & (b) the transmitting station A acts the same way • But in case (b) the receiving station B accepts frame 1 twice • Question: How is the receiver to know the second frame is also frame 1? • Need a sequence number: Slast=SN of most recent transmitted frame.

  37. The transmitting station misinterprets duplicate ACKs Question: How is the receiver to know second ACK is for frame 0? Time-out Time A Frame 0 Frame 0 Frame 2 Frame 1 ACK ACK B Sequence Numbers (c) Premature Time-out • Need SN in ACK: Rnext=SN of next frame expected by the receiver. • Implicitly acknowledges receipt of all prior frames. • What if ACK only ifSlast=Rnext?

  38. 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 Rnext Slast Timer Slast Receiver B Transmitter A Rnext How many bits for SN? 1-Bit SN Suffices

  39. Slast Receiver B Transmitter A Frame 0 lost/error ACK 0 lost/error Rnext Error-free frame 0 arrives (0,0) (0,1) ACK 0 arrives ACK 1 arrives Global State: (Slast, Rnext) (1,0) (1,1) Error-free frame 1 arrives Frame 1 lost/error ACK 1 lost/error Finite State Machine

  40. Last frame bit enters channel ACK arrives First frame bit enters channel Transmitter waits for ACK t A B t Receiver processes frame and prepares ACK First frame bit arrives at receiver Last frame bit arrives at receiver S/W Efficiency

  41. t0 = total time to transmit 1 frame if no error A tproc B tprop tprop tproc tack S/W Transmission Time frame tftime bits/info frame bits/ACK frame channel transmission rate

  42. Efficiency on Error-free channel Overhead bits (header, CRC) Effective transmission rate: Transmission efficiency: Effect of frame overhead Effect of Delay-Bandwidth Product Effect of ACK frame

  43. Delay-Bandwidth Product nf=10,000 bits, na=no=200 bits S/W inefficient for very high speeds or long delays

  44. Average Transmission Number Proposition: Let Pf be the frame error probability. Then the average number of transmissions per successful frame is 1/ (1–Pf ). Proof: The number of transmissions to first correct arrival has geometric distribution. E.g., if 1-in-10 gets through, then in average 10 tries to success.

  45. Efficiency in Channel with Errors • Assuming time-out is equal to t0 (it should be larger) Effect of frame loss • If bit-error-rate is p, then

  46. Go-Back-N • A sliding-window protocol. • Keep channel busy by continuing to send frames • Allow a window of up to Ws outstanding frames • If ACK for oldest frame arrives before window is exhausted, we can continue transmitting • If window is exhausted, pull back and retransmit all outstanding frames

  47. 4 frames are outstanding; so go back 4 Go-Back-4: Time fr 0 fr 1 fr 2 fr 3 fr 4 fr 5 fr 3 fr 4 fr 5 fr 6 fr 6 fr 7 fr 8 fr 9 A B out of sequence frames ACK1 ACK2 ACK4 ACK5 ACK3 ACK7 ACK6 ACK9 ACK8 Rnext 0 1 2 3 3 4 5 6 7 8 9 Go-Back-N ARQ • Frame transmission are pipelined to keep the channel busy • Frame with errors and subsequent out-of-sequence frames are ignored

  48. Time-out Stop-and-Wait ARQ Time fr 1 fr 0 fr 0 A B ACK1 Receiver is looking for Rnext=0 If window exhausted, go back N Go-Back-N ARQ fr 0 fr 1 fr 2 fr 3 fr 0 fr 1 fr 2 fr 3 fr 4 fr 5 fr 6 Time A B ACK1 ACK5 ACK2 ACK6 ACK4 ACK3 Receiver is looking for Rnext=0 Out-of-sequence frames Choose Window Size > RTT

  49. Go-Back-N with Timeout • Problem with Go-Back-N as presented: • If frame is lost and source does not have frame to send, then window will not be exhausted and recovery will not commence • Use a timeout with each frame • When timeout expires, resend all outstanding frames

  50. Receiver Transmitter Send Window (size Ws) Receive Window (size 1) ... Frames transmitted and ACKed Slast Srecent Slast+Ws-1 Frames received Buffers Rnext oldest un-ACKed frame Slast Timer Slast+1 Timer ... most recent transmission Srecent Timer ... max SN allowed Slast+Ws-1 Go-Back-N Transmitter & Receiver Receiver will only accept error-free frame with SN Rnext. When the frame arrives Rnext is incremented by 1, so the receive window slides forward by 1.

More Related