chapter 7: data link control protocols coe 341: data & computer communications (t061) dr. radwan...

83
Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

Post on 20-Dec-2015

236 views

Category:

Documents


10 download

TRANSCRIPT

Page 1: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

Chapter 7:

Data Link Control Protocols

COE 341: Data & Computer Communications (T061)Dr. Radwan E. Abdel-Aal

WK 13

Page 2: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

2

Where are we:

Physical Layer

Transmission Medium

Data Link

Chapter 4: Transmission Media

Chapter 3: Signals and their transmission over

media, Impairments

Chapter 5: Encoding: From data to signals

Chapter 7: Data Link: Flow and Error control

Chapter 6: Data Communication: Synchronization,

Error detection and correction

Chapter 8: Improved utilization: Multiplexing

Page 3: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

3

Contents1. Flow Control

a. Stop-and-Wait flow controlb. Sliding-Window flow control

2. Error Controla. Stop-and-Wait ARQb. Sliding-Window ARQ

- Go-Back-N ARQ- Selective-Reject ARQ

3. High-Level Data Link (HDLC) Protocola. Basic Characteristicsb. Frame Structurec. Operation

Page 4: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

4

What is Data Link Control? The logic or procedures used to convert the raw stream

of bits provided by the physical layer into a “reliable” data link

Performed by Data Link Control Protocol (Layer) Requirements and Objectives:

Frame-level synchronization: Recognize frame start and end Flow control: Regulate sending of frames to match

the ability of RX to absorb them Error control: Retransmission of damaged or

unacknowledged frames Addressing: Identify stations on a multipoint line Allowing for control information to go with data on same link Link management: To initiate, Maintain, and terminate data

exchange

Page 5: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

5

Flow & Error Control

The two main functions of the data-link layer Flow control Error control

Flow & Error Control together? We usually discuss Flow Control and Error Control

together as they use the same data-link protocols

Page 6: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

6

Flow Control

Required to avoid the TX overwhelming the RX by the flow of data it sends

RX does not ‘absorb’ the received data instantly! It buffers (temporarily stores) the data it receives

in a finite-size buffer to do some processing before sending it upward to higher layers

Without flow control, the RX buffer may overflow and data gets lost…

Page 7: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

7

Flow Control over a link (assume no error)

For now, assume: No frames lost (loss over a single link is a kind of error) No frames arrive in error Frames arrive in the same order they were sent, after a

propagation delay

Page 8: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

8

A Model of Frame Transmission

Frame lost:(error in start flag)

Only one frame traveling on the linkat any given time Frame damaged:

(error in data)

Page 9: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

9

Main Flow Control Protocols

Page 10: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

10

Stop and Wait

Frames sent and acknowledged one at a time:1. Source transmits frame and waits for ACK

2. Destination receives frame and replies with an acknowledgement ACK

3. Source gets ACK and sends next frame Disadvantages:

Destination can stop the flow by not sending ACK (but we can use timeout to overcome this)

Not efficient - wastes time in waiting for short frames on a long links (frame does not ‘fill’ the link)

i.e. I would like to make frames long in time (large in size for a given data rate)

Page 11: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

11

Data Fragmentation (smaller frames!) However, large blocks of data are often split into several

smaller frames- Why? Limited frame buffer size at RX To reduce frame error rate: remember? FER = 1-(1-BER)F

Errors are detected sooner (when frame received) On error, we need to retransmit a smaller amount of data On a shared medium, e.g. a LAN, this ensures that

transmitting station does not occupy the medium for a long time

“Stop and wait” is inadequate in such situations where frames are “short”

Link utilization depends on the frame length in time relative to the link propagation time.

Page 12: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

12

Stop and Wait Link Utilization: The ‘a’ ratio Total number of bits in a frame = L bits, Tb = bit duration

R = Data rate, bps Frame transmission time, tf sec: Time taken by the TX to emit all the frame bits

into medium tf is large for large frames and low data rates

d = Link physical length, m V = Velocity of propagation over link, m/s Link Propagation time, tp sec: Time for a bit to traverse the link (link length in time)

Link length in bits, B bits/link: The number of bits that ‘fill’ the link if data is transmitted continuously

a = Propagation time / Transmission time = tp/tf

R

LLTt bf

][ (sec)][ (b/sec) V

dRtRB p

V

dt p

L

B

LVd

R

RLVd

t

ta

f

p ][

Smaller ‘a’ means better link utilization (with large frames)

If tf = 1, a = Propagation time tp

Page 13: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

13

Stop and Wait Link Utilization (Efficiency) Let us define link utilization, U, as:

Will demonstrate on next slide that U is given by:

Where ‘a’ is

Utilization is high for small a: U approaches 1, i.e. 100% efficiency Shorter links, Higher propagation velocities Larger frames sizes, Lower data rates

Efficiency is poor for large a: Longer links, Lower propagation velocities Smaller frames sizes, Higher data rates

Timeon Transmissi Frame

Timen Propagatioa

timeElapsed

data ittingfor transm used islink which during Time U

12a

1

U

Page 14: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

14

Stop and Wait Link Utilization: 2 cases:

L

B

t

ta

f

p 2a1

1

U

2a1

1

U

Link ‘empty’ most of the time ! Underutilized

Link ‘full’ most of the time Better utilized

a > 1

a < 1

Let frame transmission time tf = 1 a = Propagation time = tp

Overhead of an ACK frame in both cases !

tp > tf tp < tf

Link is longer than frame: a > 1 Link is shorter than frame: a < 1

2a1

1

U

tf = 1tp = a

Page 15: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

15

Stop and Wait Efficiency: Example Compare the efficiency of stop-and-wait flow control for two

links using the parameter ‘a’: Fame size, L = 1000 characters of 8 bits each, = 8000 bits

200-m optical fiber link Data rate, R = 1 Gbps Typical wave velocity, V = 2 x 108 m/s

Frame TX time, tf = L/R = 8000/(1x109) = 8 s

Propagation time, tp = d/V

= 200/(2x108) = 1 s

End of first frame reaches RX after 8+1 = 9 s from start

ACK takes 1 s more to reach TX, i.e. it starts sending 2nd frame after 10 s

Utilization = 8/10 = 80% (=1/(2a+1))

125.0)102(8000

)200(108

9

xLV

Rd

L

B

t

ta

f

p

Satellite link between 2 ground stations d = 2 x 36,000 km, Data rate, R = 1 Mbps Typical wave velocity, V = 3 x 108 m/s

Frame TX time, tf = L/R = 8000/(1x106) = 8 ms

Propagation time, tp = d/V

= 2x36x106/(3x108) = 240 ms

End of first frame reaches RX after 8+240 = 248 s from start

ACK takes 240 ms more to reach TX, i.e. it starts sending 2nd frame after 488 ms

Utilization = 8/488 = 1.6% (=1/(2a+1))

30)103(8000

)10362(108

66

x

xx

LV

Rd

L

B

t

ta

f

p

Link is longer than frame: a > 1 Link is shorter than frame: a < 1

Page 16: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

16

Sliding Windows Flow Control Avoids the low efficiency of Stop-and-wait when a > 1 Allows multiple frames to be “in transit” simultaneously on

the link RX keeps a buffer store (memory) for W frames So, TX can send up to W frames without waiting for ACK Each frame carries a sequence number ACK from RX shows the number of next expected frame TX keeps a list of frames it can send RX keeps a list of frames it expects to receive These lists form sliding windows at TX and RX that

shrink/expand as frames are sent, and ACKs are sent/received

Hence, Sliding Windows Flow Control

Page 17: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

17

Frame Sequence Numbering Frame sequence number is limited by the size of a

corresponding field in the frame, e.g. k bits Frames are numbered modulo 2k

E.g. for k = 3, frame sequence # is modulo 23 = 8, i.e.= 0,1,..., 7, 0,1,…

Window size (W) is limited to a maximum of 2k-1i.e. Wmax = 7 in the above example

k = 3 bits

Frame Sequence Number

FCS HDLC Frame

Page 18: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

18

Sliding Window Send/Receive CycleTX RX

Now you want to ACK some frames:• Delete ACKed frames from buffer• Expand Window to receive more

3. Send Acknowledgement

Receive Frames

Shrink window past received framesNow you want to send more:

Send frames

1. Delete ACKed frames from buffer2. Expand Window to send more

Frames

ACKs

Window covers frames to be received

Window covers frames to be sent

Shrink window past sent frames

Acknowledging frames is a separate issue from receiving them

Flexible- (Not rigid) Windows

Page 19: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

19

Sliding-Window Diagramk = 3 bits, W = 7

Window covers frames to be sent

Remove ACKed frames from buffer

W = 7Max # of frames TXed without ACKed

DeletionMarker

Send/Receive Frames

Receive/Send ACKs

Shrink

ExpandDelete

FCS

Window covers frames to be received

At TX

At RX

Page 20: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

20

Example Sliding WindowMax window size of 7

Received up to 2Ready to receive 7 frames starting with 3

RR = Receiver ReadyDelete

Received up to 3Ready to receive 7 frames starting with 4

TX RX

Expand

Shrink

Page 21: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

21

Sliding Window Enhancements

Receiver can acknowledge receiving frames without permitting further transmission:

(Receive Not Ready RNR) Example RNR 5: “Received frames up to 4, but not

ready for 5 and beyond yet” When it becomes ready, RX must send a normal

acknowledge (RR 5) later for TX to resume sending frames

Page 22: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

22

Sliding Window in a Duplex System In a Duplex System, destination also transmits data back

to source Piggybacking: Utilizing data frames from destination to

carry ACK signals back to source to improve channel utilization Additional field in the data frame for use only by +ive (RR) ACK If you have no data to send now or your ACK is not RR, use a

normal (dedicated) ACK frame (e.g. RR or RNR) If data is to be sent but no acknowledgement needed, insert the

last acknowledgement number to prevent RX from using the number existing in the ACK field of the data frame.

(When RX station receives a duplicate ACK, it ignores it)

Page 23: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

23

Sliding Window Protocol: Efficiency Much more efficient than Stop and wait for a>1

Treats link as a pipeline to be filled with frames in transit simultaneously- not just one by one

With window size W and assuming no error, link utilization, U, is given by (Appendix 7A)

where a = Propagation time/Frame transmission time = tp/tf i.e. Sliding window protocol can achieve 100% utilization

for W (2a + 1). The smaller the W needed for this the better! (Why?). This

requires a small a (so small a is still advantageous!)

1 (2 1)

(2 1)2 1

W aU W

W aa

Page 24: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

24

Sliding Window Efficiency: Example Compare the efficiency of Sliding Window flow control for two

links using the parameter ‘a’: Fame size, L = 1000 characters of 8 bits each, = 8000 bits

200-m optical fiber link Data rate, R = 1 Gbps Typical wave velocity, V = 2 x 108 m/s Frame TX time, tf = L/R = 8 s

Propagation time, tp = d/V = 1 s

a = tp / tf = 0.125 100 % link utilization is achieved with

window size W:

W (2 a+1) (2 x 0.125 +1) 1.25

i.e. W = 2 (A window of just 2 frames!)

- easily achieved in practice!

Satellite link between 2 ground stations d = 2 x 36,000 km, Data rate, R = 1 Mbps Typical wave velocity, V = 3 x 108 m/s Frame TX time, tf = L/R = 8 ms

Propagation time, tp = d/V = 240 ms

a = tp / tf = 30 100 % link utilization is achieved with

window size W:

W (2 a+1) (2 x 30 +1) 61

W = 61, k = 6 bit (Large window, large buffers at TX, RX)

For k = 3 bits, W = 7:

Utilization U = W/(2a+1) = 7/(61) = 11.5% > 1.6% for Stop and wait.

Shorter links are better (small a)

Page 25: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

25

Error Control

Use of retransmission to handle errors detected in frames (Backward Error Handling)

This process is called Automatic Repeat Request (ARQ)

Types of Problems: Damaged frames

(Frame arrives at RX but in error) Lost frames

(Noise burst damages frame beyond recognition- so not recognized by RX)

Frames arriving too late e.g. due to network congestion- Will be ignored or dropped by time-out.

WK 14

Page 26: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

26

Error Control Techniques:

Error detection: Chapter 6 Positive acknowledgment: (for one or more frames)

From RX for Error-free frames, e.g. RR i Negative acknowledgement requesting retransmission of

a lost or damaged frame:

RX sends negative ACK for damaged or lost frames, requesting retransmission, e.g. REJ i How does RX detect a “lost” frame? Through receiving the next

frame “out of sequence” – Unexpected (frames are numbered!) Retransmission after timeout:

TX automatically retransmits a frame that has not been acknowledged following a predetermined time-out interval

Page 27: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

27

Categories of Error Control MechanismsMain types of ARQ-based standard error control mechanisms

Page 28: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

28

Stop and Wait ARQ: Possible Scenarios Scenario for Damaged/Lost Frame TX transmits a single frame (keeping a copy)

Then waits for ACK from RX If frame reaches RX damaged (in error):

RX discovers this through error detection It then discards the frame, and does not send ACK TX “times out” on waiting for ACK … and then retransmits the frame again automatically RX thus receives only one correct copy of the frame

Same scenario applies if frame was lost

Page 29: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

29

Stop and Wait ARQ: Scenario for Lost ACK

ACK from RX for a correct frame is lost (reaches TX damaged beyond recognition): TX will timeout and retransmit the same frame again! RX gets two copies of that frame Without labeling frames, RX will consider both copies as

two different valid frames (data duplication is not good) To avoid this, TX labels frames alternately as 0, 1

(enough for Stop and Wait) RX uses ACK0 & ACK1, Similar to sliding window RRn:

ACK0: Received 1 and ready for 0 (better named RR 0) ACK1: Received 0 and ready for 1 (better named RR 1)

Page 30: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

30

Stop and Wait ARQ

ACK

RX gets two good copies of F1.Labeling frames allows RX torealize this and discard one of them.

= RR 1

Lost FrameScenario

Lost ACKScenario

Page 31: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

31

Stop and Wait - Pros and Cons

Simple Inefficient (As seen with flow control)

For improved efficiency, we use sliding-window based ARQ (Continuous ARQ)

Page 32: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

32

Sliding Window ARQ Improves line utilization by sending up to W frames

before worrying about ACK A form of Pipelining (several tasks started before 1st

task is finished) TX uses a window to mark frames to be transmitted

until they are sent and acknowledged The window size W should be ≤ 2k – 1, k is the size of the

frame sequence field in the frame header, Frame are given sequence numbers modulo 2k, i.e. for k = 3:

0,1,2,3,4,5,6,7,0,1,2,….. W is fixed in this protocol, but may be variable in others

Each time a proper ACK is received for a number of frames the TX window slides past them, hence the name Sliding Window. This: Releases those frames for deletion from TX buffer memory Introduces new frames for transmission

Page 33: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

33

TX Sliding Window

In (b), frames 0 and 1 were properly acknowledged

S Pointer to next frame to be sent

Frames that can be sent

F0, F1Positively ACKed

Frames already sent but not yet ACKed

- Window now has a fixed width (W) and slides rigidly as one pieceupon receiving ACKs. - Within the window, frame sending is handled using a send (S) pointer

Slide window as a whole

(Important: Pointer is not pushed with window)

Page 34: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

34

RX Sliding Window Error Control

Size of the RX window for error control is always 1 The RX window contains the sequence number for

the frame expected to be received next If a different frame arrives (i.e. out of sequence

arrival), it is immediately discarded and the window does not slide

Once the expected frame arrives correctly, the window slides one step to point to the next expected frame

Page 35: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

35

RX Sliding Window

F0 Received Correctly

F1 now expected

F0 now expected

Page 36: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

36

Sliding Window ARQ: Summary Uses sliding windows (now rigid- moves as a

whole) at TX and RX to track frame movement TX uses timeout on waiting for ACK If no error: RX acknowledges with RR i, where i is

number of the next frame expected

Frames received correctly and have been or will soon be acknowledgedFrames received correctly.Have or will soon be acknowledged

Frames waiting to be received

Next frame to be sentExpected next frame to be received

As you transmit

As you receive ACKs

As you receive expected frame without error

Size = 1Size ≤ 2k-1

k

Page 37: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

37

Sliding Window ARQ: Two main standard approaches:

Go Back N Selective Reject

Page 38: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

38

Sliding Window ARQ: Go Back N Error Scenarios:

Will consider the following error scenarios Damaged Frame Lost Frame Lost ACK

Lost Positive ACK (RR) Lost Negative ACK (REJ)

Page 39: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

39

Go Back N ARQ: Error Scenarios

Damaged Frame:

RX received frame i damaged RX discards frame i and all subsequent frames until

frame i is received correctly RX can either:

Scenario 1.A: Send a negative ACK (REJ i ) TX must go back (hence the name go back N) and

retransmit that frame and all subsequent frames that were transmitted in the mean time

Scenario 1.B: Does not send REJ (relies on TX time out) Handled as a lost frame (next) (and as lost negative ACK)

Page 40: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

40

Go Back N ARQ: Error Scenarios

Lost Frame: RX expects frame i but does not get it, So TX does not get any ACK for it Scenario 2.A:

TX carries on sending subsequent frames, i+1, … RX gets frame (i+1) out of sequence (as it did not get frame i).

This allows RX to detect the problem

RX then either: Sends REJ i (Note i, not i+1) Or: Takes no further action (relies on TX time out)

TX must then go back and retransmit frame i and all subsequent frames transmitted in the mean time

Page 41: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

41

Go Back N ARQ: Error Scenarios Lost Frame, i:

TX kept sending, RX does nothing, TX times out

F3 Arriving outof sequence (Not the next expected frame ),RX ignored it, butdid nothing

RX frame pointerdoes not leave ‘2’ until F2 is correctly received

LHS of TX window: Frames sent but not yetACKed

Go back 1

S points to next frame tobe TXed

R points to next frame tobe RXed

Slide W toUncover F0, F1

On F2

Page 42: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

42

Go Back N ARQ: Error Scenarios

Lost Frame, Contd. Scenario 2.B:

TX does not send further frames after i, and RX does not send any RR or REJ (RX does not know there is a problem!)

TX times out waiting for RX response Scenario B-1:

TX sends a polling command (RR with P bit = 1) to force RX to report its receiving status by sending RR i

When TX receives the RR I response, it retransmits frame I and all subsequently sent frames

Scenario B-2: TX retransmits frame i after timeout

Page 43: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

43

Go Back N ARQ: Error Scenarios Lost Positive ACK (RR) from RX:

RX gets frame i OK and sends a positive ACK: RR (i+1) This RR frame is lost on its way to TX Two Scenarios:

Scenario 3.A: A later Acknowledgement from RX, e.g. RR (i+n) manages to

reach TX before TX times out. This solves the problem, since ACKs are cumulative

Scenario 3.B: TX times out before receiving any subsequent RR acks:

TX sends a polling command (RR with P bit = 1) to force RX to report its receiving status by sending RR i.

TX Repeats step above a few times, if no success it initiates a Reset procedure

Page 44: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

44

Go Back N ARQ: Error Scenarios

Lost Negative ACK (REJ) from RX:

Similar to RX not sending REJ

i.e. Scenario 1.B for Damaged Frame.

Page 45: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

45

Go Back N ExampleTX doesnot wait

Got 0, 1Ready for 2

Got 3Ready for 4

Got 5 not 4 REJ 4 and beyond

Frame 4lost on the way

RR 7 (+ ive ACK)lost on the way.

Transmitter Receiver

TX polls RXTo send receivingstatus

Go back 3(4, 5, 6, 7) andRetransmitthem

Go back in window untilyou meet the rejectedFrame #, and resumetransmission from there

3 4 5 6 7 0 1 22107

Any corrective actionneeded here at TX?

TX times outBefore gettingany subsequentRRs after lost one

F bit = 1

This is acommand

Page 46: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

46

Two neighboring nodes (A and B) use a sliding-window go-back-N for error control with a 3-bit sequence number. The window size is 4. Assuming A is TX and B is RX, show the window positions at A for the following situations:

a) Before A sends any frames

a) After A sends frames 0, 1, 2 and receives RR 2 from B

b) Later, after A sends frames 3, 4, and 5 and receives RR 5 from B

Example:

Send Next

At TX

Page 47: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

47

Window Size limit for Go-back-N ARQ

Size of the window must be W 2k – 1 i.e. W < 2k where “k” is the number of bits reserved (in the control field) for the sequence number

Let k = 2,

i.e. W should be < 4 By comparing the figures

opposite for W = 3 and W = 4, justify the need for this limit on window size in Go Back N

F0F0

F0

F0 sent twice in both cases. Mistake is detected only on the left (for the correct W size)

All happened before timeout

on F0

on F0TX goes back to send F0

TX goes back to send F0

F0

F0

W 2k – 1

ACK ACK

x

By mistakeRX gets 2 copies of F0

Page 48: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

48

Selective Reject (Selective Repeat ARQ)

Also called selective retransmission RX requests retransmission of only the rejected

frame using SREJ i Subsequent frames received after the rejected

frame are buffered at RX (not thrown away as in Go Back N ARQ)

TX retransmits only the frame that was specifically rejected and those that timed out

Less retransmission traffic than Go Back N

Page 49: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

49

Selective Reject: Example

5, 6

- Waiting for 4 - 4 gets lost

5 received out of sequence, Problem detected, SREJ 4 sent

Acknowledge up to 6

• Only rejected frame (4) retransmitted(not 4,5,6)• Normal transmission resumes where left (7)

TX times out before getting subsequent RRs to the lost ones

So it polls RX for its receiving status

Things turned out OK

+ ive ACK lost on the way!

TX sends:5,6,4,7,0(complex sequencing)

F bit = 1

Page 50: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

50

Selective Reject: Pros and Cons Minimizes retransmission Better link utilization

(Useful where link utilization is poor- sending a frame is an inefficient process) e.g. short frames on long (e.g. satellite) links

But more complex: (so, used less than Go back N) Receiver:

Must maintain large enough buffer to save post-SREJ frames Needs logic for inserting requested frame in place when it arrives later

Transmitter: Needs logic to allow sending the requested frame out of normal

sending sequence Also, more restricted window size, W:

With k bits, max window size is 2(k-1) (vs 2k-1 for Go Back N),

e.g. for k = 3: Wmax = 4 for SREJ, Wmax = 7 for GO Back N

Page 51: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

51

How such flow and error mechanisms are implemented:High-Level Data Link Control Protocol (HDLC) HDLC is the most common data link control

protocol and forms the basis for many others Runs in the Data Link Layer (Layer 2 in OSI) Main Functions:

Flow Control: Data is transmitted by TX- only as fast as RX can absorb it.

Error Control: Objective: Pass data up to higher layer exactly as transmitted, i.e.: Without error, Without loss, Without duplication, and in the correct order

Page 52: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

52

High-Level Data Link Control Protocol (HDLC) To satisfy various applications, HDLC defines:

Three types of communicating stations Two types of link configurations, and Three data transfer modes of operation.

Page 53: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

53

High-Level Data Link Control Protocol (HDLC)Station types:

Primary Station (PS): (e.g. computer) Responsible for controlling operation of the link Control frames issued by the PS are called

commands Secondary Station (SS): (e.g. terminal)

Operates under the control of a primary station Control frames issued by the SS are called

responses Combined Station (CS):

Issues both commands and responses

Page 54: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

54

High-Level Data Link Control Protocol (HDLC)

Link configurations:

Determined by the types of stations on the link Unbalanced (different status): e.g. One primary station

plus one or more secondary stations Balanced (same status): e.g. Two combined stations

Page 55: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

55

High-Level Data Link Control Protocol (HDLC)Data Transfer modes: (Who can send?, what? and when?)

For unbalanced link configuration: (Response Modes) Normal Response Mode (NRM)

Secondary may send data only in response to a command from primarye.g. Computer (PS) connected to a number of terminals (SS) over a multi drop line. Computer polls terminals for data

Asynchronous Response Mode (ARM) Secondary may send data without explicit permission from primary. Primary still retains link control (initialization, error recovery, logical disconnection, …)(Rarely used)

Page 56: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

56

High-Level Data Link Control Protocol (HDLC)Data Transfer modes: (Who can send?, what? and when?)

For balanced link configuration Asynchronous Balanced Mode (ABM) Either combined

stations may send data without obtaining permission from the other station

Most widely used (no polling involved)

e.g. full duplex point-to-point

Page 57: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

57

HDLC – Frame Structure HDLC Uses Synchronous Transmission, i.e. large frames Frame consists of the following ‘fields’:

Flag fields at start and end: for frame-level sync Address field: for addressing in multi-point links Control field: for Flow and Error control Information field: (payload data or link management data) FCS field: for error detection

Page 58: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

58

HDLC – Frame StructureFrame

Address Field

Control Field

Page 59: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

59

HDLC Frame Format Flag:

Size: 1 Byte Special pattern 0 1 1 1 1 1 1 0 used as frame begin/end and synch. Used for Header and trailer

Address: Size: 1 Byte (or extendible to more bytes for larger networks) If primary station created the frame, the address is that of the destination

secondary station If secondary station created the frame, the address is that of the source

secondary station Networks not using “primary/secondary” (e.g. Ethernet) use 2-Byte address

(source/destination) Control:

Size: 1 or 2 Bytes Identifies frame type (I, S, U) Used for error & flow control

Information: Payload of user data (I Frames) or link management data (U) Size: Varies (as multiple bytes) from network to network. Always fixed within a

network I frames contains user data received from the higher layer (Network layer)

FCS: Size: 2 or 4 Bytes (depending on the divisor P used) Implements CRC for error detection

Page 60: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

60

HDLC – Frame Structure: Flag field

Flag Field: unique pattern 01111110 at both start and end of frame

Used for frame-level synchronization This pattern should not exist in any other part of the frame Two ways to ensure this:

Ensure that higher layers avoid using these pattern in the data they generate (causes lack of data transparency)

TX uses bit stuffing for data (inserts a 0 after each consecutive five 1s) to ensure data transparency at higher layers

Page 61: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

61

HDLC Bit Stuffing: At TX:

Inserts a 0 after each consecutive five 1s of non-flag data

(01111101….)

At RX:After detecting the preamble flag, RX monitors incoming bits – when a pattern of five 1s appears; the 6th and the 7th bit are checked: If 00 or 01 Bit 6 is a stuffed 0 Remove it If 10 This is the postamble flag end of frame If 11 ABORT (Error- there must be a 0 after every

five 1’s)

Page 62: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

62

HDLC Bit Stuffing

Flag pattern existing in original user data

Not any more- with bit stuffing!

Page 63: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

63

HDLC Bit Stuffing & Removal

Data handed in for transmission Would this data havecaused any frame sync problem?

TX may ensure that the flag patterndoes not occur in non-data fields

Page 64: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

64

HDLC Bit Stuffing Problems: Single-bit errors could split a frame into

2 or merge two frames into 1.

01111100(Bit stuffed)

(Bit stuffed)

01111110

FrameSplitting

FrameMerging

01111110

01111100

Page 65: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

65

HDLC Frame Types HDLC defines three types of frames Frame type determined by first bits in the control field

User Information frames (I-frames): 8 or 16 bit control field Used to transport user data In a duplex system, they can carry control messages regarding

previously received data to be carried along with data TXed (piggybacking)

Supervisory frames (S-frames): 8 or 16 bit control field Used to transport control information only- Short frame, No

Data Unnumbered frames (U-frames): 8 bit control field

Provides link management functions Does not carry a frame sequence number (N or S) Can carry Management data

Page 66: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

66

HDLC I, S & U Frames Format

RR jRNR jREJ jSREJ j

Arrow indicates that the first transmitted field is the Header flag, then the address, then the control…

Page 67: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

67

HDLC I-Frames Designed to carry user data received from Network layer They can include flow & error control information (piggybacking in

duplex links) Their Control field can be either 8 bits or 16 bits (Defined at link

initialization) An 8-bit Control field consists of:

First bit identifies the frame type: “0” for I-frames Next 3-bits, called N(S), indicate the sequence number of the

transmitted frame So frame sequence numbers are 0,1,2,3,4,5,6,7

Next bit is called P/F (Poll or Final) When a primary station polls other stations, sets this bit to 1 (P bit) When a secondary station responds to a poll, sets this bit to 1 (F bit) i.e. same bit has different meanings depending on source

Next 3-bits, called N(R), define the frame sequence number for the RR carried when piggybacking is used (next expected frame)

Page 68: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

68

HDLC I-Frames

16-bit control field: Extends N(S) and N(R) to 7 bits each instead of 3 bits, allowing larger windows to be used

Note: Control field contains no ‘Function’ part - So, only the + ive ACK function (RR) can be sent as a default in piggybacking!

8-bit Control filed# of Frame sent(This frame)

# of next Frame expectedPositive ACK: = RR N(R)

With Piggybacking

Duplex Link- Source - Destination

Frame sequenceNumbering is modulo ?

Carries 2 sequence numbers

Page 69: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

69

HDLC Supervisory (S)-Frames (S is also for short!)

RRRNRREJSREJ

• The workhorse for sending separate ACKs. Used when:- No user data to send, or - ACK is not RR, i.e. (RNR, REJ, SREJ)

• This is the only method to send ACKs other than RR

Example: RNR 6

00011011

0 1 1 1 0

First 2 bits:’10’ identifies frame

as an S-Frame

Assume:Carries only 1 sequence number

Page 70: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

70

HDLC U-Frames

Examples of Link ManagementFunctions(up to 32) As a As a

Used for Link management operations

Page 71: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

71

HDLC U-Frames

Examples of Network ManagementFunctions

As a As a

Page 72: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

72

HDLC Frame Structure – Address Field

Address field identifies the secondary destination station transmitting the frame or intended to receive the frame

Not needed for point-to-point links (only one source and one destination) - but included for uniformity

Extendable – in multiples of 7 bits The unique address (11111111) (single octet) is used by

the primary to broadcast to all secondary stations

Extended Address Field‘1’ marks last octet of extendible address

Page 73: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

73

HDLC Frame Structure – Control Field

Poll/Final (P/F) bit: In command frames (P): used to solicit response from peer entity In response frames (F): indicate response is the result of soliciting command

Frame Type:

I or not S or U

Extended frame sequence #s (7 instead of 3 bits)

Why N(R) on an I frame?

ACKs such as:REJ N(R)

Data-carrying,Allows Piggybacking

Additional link control functions

Page 74: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

74

HDLC Frame Structure – Information/FCS Fields Information field:

Present ONLY in I-frames and some U-frames Contains an integer number of octets (bytes) Variable number of octets – up to some system

defined maximum

m bytes

Page 75: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

75

HDLC Frame Structure – Information/FCS Fields FCS field:

CRC Error detection code Calculated from ALL remaining bits in frame

(excluding the two flags) Normally 16 bits: (F is 1-bit shorter than P)

- (CRC-CCITT polynomial = X16+X12+X5+1), or

- 32-bit optional FCS using CRC-32

Page 76: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

76

HDLC – Operation HDLC Operation: Exchange of I-frames, S-

frames, and U-frames between two stations Table 7.1 lists types of Control/Response functions for

various frame types The operations of HDLC involve three phases:

Link Setup or Initialization (by either side): with U-Frames Both agree on various options

Actual Data Transfer (by the two sides): I- and S-Frames Exchange of user data and control info for flow and error control

Link Disconnect (by either side): U-Frames Indicating termination of operation

Page 77: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

77

Some U-frame commands and responsesCommand/response Meaning

SNRMSNRM Set normal response mode

SNRMESNRME Set normal response mode (extended)

SABMSABM Set asynchronous balanced mode

SABMESABME Set asynchronous balanced mode (extended)

UPUP Unnumbered poll

UIUI Unnumbered information

UAUA Unnumbered acknowledgment

RDRD Request disconnect

DISCDISC Disconnect

DMDM Disconnect mode

RIMRIM Request information mode

SIMSIM Set initialization mode

RSETRSET Reset

XIDXID Exchange ID

FRMRFRMR Frame reject

Table 7.1 (Subset)

Page 78: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

78

HDLC – Operation1. Initialization (Link Setup)

2. Data Transfer, 3. Link Disconnect

A issues one of 6 set mode commands: and sets a timer:SNRM, SARM, SABM (k = 3 bits: Modulo 8 frame

sequencing) 8-bit control fieldorSNRME, SARME, SABME (k = 7 bits: Modulo 128

frame sequencing) 16-bit control field B responds with either:

UA (Unnumbered ACK) (if it agrees), or: or DM (Disconnect mode) (if request is rejected)

A receives the UA, initializes its variables for data exchange, and data exchange takes place

After finishing: to disconnect, A sends DISC command Will get a UA from B

SABME: Set Asynchronous balanced/extended mode;7-bit frame sequence

2. Data Transfer

1. Link Setup

3. Link Disconnect

Page 79: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

79

HDLC – OperationDisconnect: Either side can issue a DISC U-frame to request

disconnect The remote entity MUST accept the request by

sending UA Any outstanding unACKed I-frames may be lost.

These can be recovered by higher layers

Page 80: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

80

HDLC – OperationNormal Data Transfer: Once initialization is complete, a logical path is

established. Both sides start sending I-frames (Full-duplex

exchange) starting with sequence number 0 N(S), N(R) are sequence numbers to support

flow and error control in the send and receive directions, respectively

N(R) is the ACK for the I-frame received; it allows the HDLC module to indicate the I-frame number it expects to receive next (Note: No control function used for this positive ACK- understood by default as RR)

when no reverse user data (I-frame) needs to be sent, a dedicated RR should be sent on an S-frame

If no new acknowledgement needs to be sent, the last N(R) value is repeated

S-Frame

Repeat N(R)if no new Fsreceived +1

+1

+1

same

Page 81: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

81

HDLC – Operation Busy condition: Note use of P/F bit

When A is unable to keep up with the speed of the transmitter “B” or buffer is full

A sends RNR, to halt transmission from B

To check the readiness of A, B periodically sends RR frame with P set

Once the busy condition is cleared at A, it responds with an RR and F=1

An RR with F set indicates it is a response to a previous polling using RR, P

+1

At last !!B sending 4 andwaiting for 0

Page 82: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

82

HDLC – Operation Reject RecoveryReject Recovery:

I-frame 4 was lost B receives I-frame 5 (out

of order) – responds with REJ 4

A resends I-frame 4 and all subsequent frames previously sent

(Go-back-N) For any – ive ACK must use

an S-Frame!

Page 83: Chapter 7: Data Link Control Protocols COE 341: Data & Computer Communications (T061) Dr. Radwan E. Abdel-Aal WK 13

83

HDLC – Operation Timeout RecoveryTimeout Recovery::

A sends I-frame 3 – but it is lost Timer expires before

acknowledgement arrives A polls B with RR, P = 1 B responds with RR, F =1, indicating it

is still waiting for frame 3 A responds by retransmitting I-frame 3 This time it gets a + ive ACK from B