Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Data Link Layer Framing Error Control Flow Control

Similar presentations

Presentation on theme: "The Data Link Layer Framing Error Control Flow Control"— Presentation transcript:

1 The Data Link Layer Framing Error Control Flow Control
Error Correction Error Detection Flow Control Retransmission with Sliding Window Protocols Protocol Specification and Verification Example Data Link Protocols


Unacknowledged connectionless service Voice Acknowledged connectionless service wireless Acknowledged connection-oriented service no out-of-order

4 Data Link Protocol

5 Framing To break the bit stream up into discrete frames and compute the checksum for each frame. When a frame arrives at the destination, the checksum is recomputed and validated. One way to achieve this framing is to insert time gaps between frames. However, networks rarely make any guarantees about timing.

6 Data Framing Character count
Starting and ending characters with character stuffing Starting and ending flags with bit stuffing Physical layer coding violations

7 Character Count character count frame 1 5 characters frame 2 frame 3 8 characters frame 4 frame 2 (wrong) frame 1 5 characters one-bit error Now a character count Even if the checksum is incorrect so the destination knows that the frame is bad, it still has no way of telling where the next frame starts.

8 Starting and Ending Characters with Character Stuffing
DLE STX user data DLE ETX beginning of frame end of frame DLE(0x10): Data Link Escape STX(0x02): Start of TeXt ETX(0x03): End of TeXt DLE STX A DLE B DLE ETX user data 0x10 DLE stuffed at the sender DLE destuffed at the receiver DLE STX A DLE DLE B DLE ETX

9 Starting and Ending Flags with Bit Stuffing
user data beginning of frame end of frame flag bits stuffed at the sender bits destuffed at the receiver original data

10 Physical Layer Coding Violations
user data Ending Delimiter V V 0 V V 0 0 0 end of frame Starting beginning of frame V V 1 V V 0 0 0 V: Violation bit

11 Error Control Three types of frames at a receiver’s end
Damaged frame : Negative acknowledgment / retransmission Lost frame : Time-out mechanism Valid frame : Sequence numbering / discarding for valid but duplicate frames

12 Flow Control A technique for assuring that a transmitting station does not overwhelm a receiving station with data

13 Error Detection and Correction
Error-correcting codes Error-detecting codes

14 Codeword n-bit codewords with n =m+r and
m data bits r redundant or check bits Not all the 2n codewords are legal. In general, only 2m codewords are legal. ASCII codes of 7 bits with 1 even parity bit ASCII code for “A”: codeword for “A”: or Codeword or is illegal.

15 Hamming Distance The number of bit positions in which two codewords differ is called the Hamming distance between these two codewords. The Hamming distance of the complete code is the minimum Hamming distance between all pairs of legal codewords.

16 Codeword Space To detect d-bit errors, a distance d +1 code is needed.
To correct d-bit errors, a distance 2d +1 code is needed. 1-bit error detection 1-bit error correction

17 Codeword Space : 3-bits

18 Error Correction with Codewords: An Example

19 Determine the Number of Check bits
To correct single bit errors with m bits message and r check bits (n=m+r) Code space : 2m n-bit legal messages(codewords) For an n-bit legal codeword, all its n neighbors at a distance 1 from it are illegal n+1 bit patterns are dedicated to each legal message (n+1)2m <= 2n and consequently (m+r+1)2m <= 2m+r. we have : (m+r+1) <= 2r

20 Hamming Code The bits that are powers of 2 (1, 2, 4, 8, 16, etc.) are check or parity bits of some data bits. For example, m=7 (ASCII) and r=4 (7+4+1 <= 24) B1 : B3 B5 B7 B9 B11 B2 : B3 B6 B7 B10 B11 B4 : B5 B6 B7 B8 : B9 B10 B11 “H” xx1x001x000 1001 0000 codeword

21 Hamming Code : Example

22 To Correct Burst Errors
A sequence of k consecutive codewords are arranged as a matrix, one codeword per row. To correct burst errors, the data should be transmitted one column at a time, i.e., column by column. If a burst error of length k bits occurs, at most 1 bit in each of the k consecutive codewords will have been affected, but the Hamming code can correct one error per codeword, so the entire block can be restored.

23 To Correct Burst Errors

24 When a Burst Error Occurs

25 To Correct Burst Errors: An Example
B1 : B3 B5 B7 B9 B11 B2 : B3 B6 B7 B10 B11 B4 : B5 B6 B7 B8 : B9 B10 B11 ASCII Codeword 1 2 3 4 5 6 7 8 9 10 11 column burst error Codeword Codeword B1(011100)+B4(1101) => B5 B1(110001)+B4(1000) => B5 B4(1101) => B4

26 Error Detection Parity bit
low error rate Longitudinal redundancy check (LRC) and Vertical redundancy check (VRC) Cyclic redundancy code (CRC code) / Polynomial code Easy hardware implementation Can detect burst errors

27 Parity Bit block size: 1000 bits a message: 106 bits
Hamming code: bits (m+r+1 <= 2n) parity bit: bits a message: 106 bits without no error Hamming code: bits parity bit: bits with a low error rate 10-6 parity bit: (1000+1) bits ( one error occurs) retransmitted block

28 Longitudinal Redundancy Check and Vertical Redundancy Check

29 Cyclic Redundancy Code (CRC) / Polynomial Code
A m-bit frame is regarded as the coefficient list for a polynomial, M(x), with m terms, ranging from xm-1 to x0. For example, represents a polynomial x5+x4+x0. Addition and subtraction are identical to EXCLUSIVE OR. For example, = =

30 Computing Cyclic Redundancy Code
Both the sender and the receiver must agree upon a generator polynomial, G(x), with the degree r in advance. Append r zero bits into M(x) => xrM(x) Divide xrM(x) by G(x) Subtract the remainder from xrM(x) and let the result be T(x)

31 CRC Example

32 CRC at Receiver End T(x) is received with no error.
T(x) is divisible by G(x) When errors represented by error bit pattern E, ( ie. E(x)), occur, (T(x) +E(x)) /G(x) has zero reminder only if E(x) is divisible by G(x) Carefully selects G(x) such that E(x) is not divisible by G(x)

33 CRC with Single and Double Errors
Single-bit error E(x)= xj If G(x) contains tow or more terms, it will never divided E(x) Two isolate single-bits errors E(x)= xi +xj = xj ( xi-j+ 1) ….. i>j Assume G(x) is not divisible by x Select G(x) that does not divide xk+1, where 1< k  i-j

34 CRC with Odd-Number-bit Errors

35 CRC with Burst Errors

36 Well-Known Generator Polynomials
CRC-12: x12+x11+x3+x2+x+1 CRC-16: x16+x15+x2+1 CRC-CCITT: x16+x12+x5+1 CRC-32: x32+x26+x23+x22+x16+x12+x11+x10+ x8+ x7+x5+x4+x2+x+1 CRC-16 and CRC-CCITT Catch all single and double errors, all errors with an odd number of bits, all burst errors of length 16 or less, % of 17-bit error burst, % of 18-bit error and longer bursts

37 Flow Control Techniques
Stop-and-wait The receiver provide feedback to the sender The sender sends one frame and then waits for an acknowledgement before proceeding

38 Dealing with the Damaged Frames
Adding a timer ( on sender ) The receiver would only send an ack if the data were correctly received After time out, the sender send the frame again

39 Dealing with the Lost Frames
A lost data frame can be resent by using a timer When an acknowledgement is lost The sender’s timer eventually time-out The sender resends the same data frame After the data frame is received, the receiver sends acknowledgement again

40 Duplicate Frames : Two Cases

41 Dealing with Duplicate Frames

42 When Sender’s Time-out is Too Short

43 Solution: Put Sequence Number in the Acknowledgement

44 Piggybacking

45 Acknowledgement Techniques Types Control Frame
Data Frame: Piggybacking The technique of temporarily delaying outgoing acknowledgements so that they can be hooked onto the next outgoing data frame is known as piggybacking. Types Positive Acknowledgement: The received frame has no error. Negative Acknowledgement: The received frame has errors.

46 Flow Control Flow control is a technique for assuring that a transmitting station does not overwhelm a receiving station with data. Sliding Window Protocols: At any instant of time, the sender maintains a set of sequence numbers corresponding to frames it is permitted to send. These frames are said to fall within the sending window. Similarly, the receiver also maintain a receiving window corresponding to the set of frames it is permitted to accept.

47 Sliding Windows Each outbound frame contain a sequence number ranging from 0 to 2n-1 Sending window Maintained by the sender A set of sequence numbers corresponding to frames the sender is permitted to send Receiving window Maintained by the receiver Corresponds the set of frames the receiver is permitted to accept

48 Maintain Sliding Windows
Sending window When a frame is sent, the upper edge of the window is advanced by one When an acknowledgement is received, the lower edge of the window is advanced by one Receiving window Any received frame the sequence number outside the window is discarded When a frame whose sequence number is equal to lower edge of the window is received, the window is rotated by one

49 A Sliding Window Size of One

50 Sliding Window Protocols
One bit sliding window protocol ( Stop-and-Wait) Go-back-N Protocol Selective Repeat Protocol

51 One Bit Sliding Window Protocol
Stop –and-Wait A protocol in which the sender sends one frame and then waits for an acknowledgement before proceeding. a sliding window protocol with maximum window size = 1 Sequence number {0, 1} is sufficient Frame header fields Seq : the sequence number of this frame Ack : the number of the last frame is received

52 Efficiency of Stop-and-Wait
50 kbps data rate 500 msec round-trip delay 1000 bits per frame time (msec) t= start sending t=20 completely sent t=250 frame arrival t=270 completely received t=270 acknowledge without delay t=520 acknowledgement arrival 26000 bits could be transmitted in 520 msec. Efficiency: 1000/26000=20/520 < 4% used

53 Efficiency of Stop-and-Wait

54 Pipelining 50 kbps data rate 500 msec round-trip delay
1000 bits per frame time (msec) t= start sending the first frame t=20 the first completely sent t=250 frame arrival t=270 the first completely received t=270 acknowledge without delay t=520 acknowledgement arrival To pipeline frames without waiting for acknowledgements.

55 Pipelining

56 Line of Utilization for Stop-and-Wait
Capacity : b bits/sec, frame size : l bits, round-trip delay : R seconds Transmission time : l/b Total duration : R + l/b Utilization : (l/b) / (R + l/b) = l / (l+bR)

57 Go-back-N Sender’s window size is n (n >1)
At most n outstanding frames can be sent After receiving a damaged frame Receiver discards all subsequent frames Sender retransmits the damaged frame and all its successors after the times out

58 Go-back-N : An Example

59 Selective Repeat Receiver’s window size is n ( n >1 )
At most n frames can be buffered Receiver stores all the correct frames following the bad one The sender retransmits only the bad frame not all its successors

60 Selective Repeat : An Example

61 Retransmission with Sliding Window Protocols
ARQ (Automatic Repeat reQuest): When an error is detected, the receiver requests that the frame be retransmitted. Stop-and-wait ARQ Go-back-N continuous ARQ Selective-repeat continuous ARQ All of them belong to the sliding window protocols. Both Go-back-N and Selective-repeat ARQs uses the pipelining technique.

62 ARQ Instead of using positive or negative acknowledgement, the receiver sends back only the frame number of the next frame is expects On the receipt of each frame (including damaged) It may speed up the transmission of lost or damaged frames, if the time-out value is “loose”

63 Stop-and-Wait with ARQ

64 Window Size The optimal sender’s windows size is 1+(round-trip delay / transmission time) Maximum window size of Go-back-N ARQ is MaxSeq, where the sequence number are 0, 1, ... , MaxSeq. Maximum window size of Selective-repeat ARQ is (MaxSeq+1)/2.

65 Protocol Specification and Verification
Finite State Machine Model Petri Net Model

66 Finite State Machine Model
States Instants that the protocol machine is waiting for the next event to happen Transitions Occur when some event occurs Change form some state to another

67 Finite State Machine Model for Bit Destuffing
input/output 0/11110 0/110 1/ 1/ 1/ 1/ 1/ 1/ 0/ end of frame S 1 2 3 4 5 6 E 0/0 0/10 1/ 0/1110 bit destuffed T beginning of the next frame error 0/11111

68 State Digram for Stop-and-Wait

69 Example Data Link Protocols
HDLC bit oriented bit stuffing SLIP PPP character oriented character stuffing multiprotocol framing

70 High-level Data Link Control
derived from SDLC (Synchronous Data Link Control) of IBM’s SNA ADCCP (Advanced Data Communication Control Procedure): ANSI HDLC: ISO LAP (Link Access Procedure): X.25 of CCITT LAPB: CCITT

71 HDLC Frame Format bits 8 >=0 16
Address Control Data Checksum A frame is delimited with the flag sequence On idle point-to-point lines, flag sequences are transmitted continuously. Address to identify one of multiple terminals for point-to-multipoint lines to distinguish commands from responses for point-to-point lines

72 HDLC Frame Addressing PDN DTE DCE address=0xC0, response
address=0xC0, command Address A address=0x80, response address=0x80, command Address B

73 HDLC Frame Type Control Field * not defined in LAPB

74 HDLC P/F Bit In Command frames: P (POLL) bit
In Response frames: F (FINAL) bit Each Command frame with the POLL bit set to 1 must receive a Response frame with the FINAL bit set to 1.

75 HDLC Supervisory Frame
RR (Receive Ready): acknowledgement frame N(R): the next frame expected to be received REJ (Reject): negative acknowledgement frame N(R): the first frame in sequence not received correctly (Go-back-N protocol) RNR (Receive not Ready): same as Type 0 and telling the sender to stop sending SR (Selective Reject): acknowledgement frame N(R): the frame expected to be retransmitted (Selective Repeat protocol)

76 HDLC Unnumbered Frame Link Initiation SABM DM UA DISC Link Termination
accept reject UA Unnumbered/Acknowledgement SABM Set Asynchronous Balanced Mode DISC Disconnect DM Disconnected Mode

77 Serial Line IP SLIP (Serial Line IP): to connect SUN workstations to the Internet over a dial-up line using a modem in 1984 RFC 1055 Sending IP packets over the line, with a special flag byte at the end for framing. Using character stuffing. Many problems: no error detection, supporting only IP, no authentication, etc.

78 Point-to-Point Protocol
PPP: RFC 1661, RFC 1662, RFC 1663 A multiprotocol framing mechanism suitable for use over modems, HDLC lines, SONET , and other physical layers. Supports error detection, option negotiation, header compression, and optionally, reliable transmission using HDLC framing. Character-oriented

79 Homework #2, #3, #6, #9,#11

Download ppt "The Data Link Layer Framing Error Control Flow Control"

Similar presentations

Ads by Google