Chapter 4: Datalink Layer - Flow Control

Preview:

DESCRIPTION

First Part of Datalink Layer

Citation preview

EEC4113Data Communication &

Multimedia SystemChapter 4: Flow Control

by Muhazam Mustapha, October 2013

Learning Outcome

• By the end of this chapter, students are expected to be able to explain link level flow control of transmission involving various protocols and techniques

Chapter Content

• Stop-and-Wait ARQ

• Go-Back-N ARQ

• Selective Reject ARQ

• Line Utilization

• High-level Data Link Control

Automatic Repeat Request (ARQ)

CO1

Stop-and-Wait ARQ

• Data and acknowledgement (ACK) frames are numbered.

• For each correctly received data frame, there will be an ACK frame.

• Only on receiving an ACK, sender sends the next frame.

CO1

Stop-and-Wait ARQ

• If there is a damaged data frame– Receiver discards the frame and NAK frame

is returned.– On receiving NAK, sender re-transmits the

frame.

• If ACK or NAK is damaged or never reach sender– Sender re-transmits on wait time-out.

CO1

Stop-and-Wait ARQNormal operation diagram:

ReceiverSender

Tim

e

Frame1

Frame2

Frame3

Frame4

ACK1

ACK2

ACK3

ACK4

Wait

Wait

Wait

Wait

.

.

.CO1

Stop-and-Wait ARQEvent of damage frame:

ReceiverSender

Tim

e

Frame1

Frame2

Frame2

Frame3

ACK1

NAK2

ACK2

ACK3

Wait

Wait

Wait

Wait

.

.

.

×

Retransmit

Error occur

CO1

Stop-and-Wait ARQEvent of damage ACK:

ReceiverSender

Tim

e

Frame1

Frame2

Frame2

ACK1

ACK2

ACK2

Wait

Wait

Wait ...

×

Retransmit

Error occur

Time out

CO1

Stop-and-Wait ARQEvent of frame lost:

ReceiverSender

Tim

e

Frame1

Frame2

Frame2

ACK1

ACK2

Wait

Wait

.

.

.

×

Retransmit

Frame lost

Time out

CO1

Stop-and-Wait ARQEvent of lost ACK:

ReceiverSender

Tim

e

Frame1

Frame2

Frame2

ACK1

ACK2

ACK2

Wait

Wait

Wait

.

.

.

×

Retransmit

ACK Lost

Time out

CO1

Go-Back-N ARQ

• A pipelined protocol.

• Inefficiency of Stop-and-Wait: Sender has to wait for ACK for each and every data frame sent.

• In Go-Back-N, sender doesn’t wait for ACK.

• Instead, sender keeps sending but not too rapidly – sliding window constrained.

• Sender will respond to ACK as it comes.CO1

Go-Back-N ARQ

• At receiver, all good, in-sequence frames must be ACK as normal.

• All out-of-sequence frames will be discarded even if they are good.

• On receiving bad frame, receiver sends NAK and requests for re-transmission of that frame.

CO1

Go-Back-N ARQ

• At sender, on receiving an NAK, it re-transmits that frame, and all subsequence frames.

• If sender finishes sending frames within its window, but lagging behind in receiving ACK, it re-transmits in-sequence starting from earliest frame not ACK-ed.

CO1

Go-Back-N ARQNormal operation diagram:

ReceiverSender

Tim

e

Frame1Frame2Frame3

Frame4

ACK1

ACK2

ACK3

ACK4

.

.

.

Frame5

Frame6ACK5

ACK6

CO1

Go-Back-N ARQEvent of damage frame:

Receiver

Sender

Retransmit

Error occur

Fra

me1

AC

K1

Fra

me2

Fra

me3

AC

K2

×

NA

K3

Fra

me4

Fra

me5

Fra

me6

Fra

me3

AC

K3

Fra

me4

Fra

me5

AC

K4

AC

K5

. . .

Time

CO1

Go-Back-N ARQEvent of lost frame: (sender window = 6 frames)

Receiver

Sender

Retransmitafter time-out

Frame lost

Fra

me1

AC

K1

Fra

me2

Fra

me3

AC

K2

×F

ram

e4

Fra

me5

Fra

me6

Fra

me7

AC

K3

Fra

me8

Fra

me3

AC

K4

AC

K5

. . .

Time

1 fr

ame

buf

fere

d

2 fr

ame

s bu

ffer

ed

3 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

5 fr

ame

s bu

ffer

ed

6 fr

ame

s bu

ffer

ed

1 fr

ame

buf

fere

d

Fra

me4

Fra

me5

Fra

me6

Fra

me7

2 fr

ame

s bu

ffer

ed

3 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

Fra

me8

4 fr

ame

s bu

ffer

ed

CO1

Go-Back-N ARQEvent of lost ACK: (sender window = 6 frames)

Receiver

Sender

ACK damaged or lost

Fra

me1

AC

K1

Fra

me2

AC

K2

×F

ram

e4

Fra

me5

Fra

me6

Fra

me7

AC

K9

Fra

me8

Fra

me9

AC

K10

AC

K11

. . .

Time

1 fr

ame

buf

fere

d

2 fr

ame

s bu

ffer

ed

3 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

5 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

Fra

me1

0

Fra

me1

1

Fra

me1

2

Fra

me1

3

5 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

4 fr

ame

s bu

ffer

ed

Fra

me1

4

4 fr

ame

s bu

ffer

ed

Fra

me3

AC

K3

AC

K4

AC

K5

AC

K6

AC

K7

AC

K8

×4

fram

es

buff

ered

CO1

Selective Reject ARQ

• An extension of Go-Back-N but now the sender is asked to re-transmit only the damaged or lost frames.

• Now the receiver is required to have buffer too (same size as the sender), and to respond to any subsequence frames after the error within its buffer limit.

• The receiver will respond with a SREJ (or SREQ) upon a damaged or lost frame.

CO1

Selective Reject ARQ

• The receiver will buffer the subsequence frames after the damaged or lost frames.

• Once the missing one is obtained, the receiver buffer is flushed up to the next missing frame (or all if no more missing).

• If the receiver run out of buffer before receiving the missing frame, it will stop responding, and this reduces the whole protocol to Go-Back-N ARQ.

CO1

Selective Reject ARQ

• At sender side, sender is required to respond to SREJ immediately, then continue to normal frame sequence.

• If it reaches to a condition where all its buffered frames are not ACK-ed, it is too will reduce to Go-Back-N ARQ and re-transmit them all in sequence.

CO1

Selective Reject ARQEvent of lost frame:

Receiver

Sender

Fra

me1

AC

K1

Fra

me2

SR

EJ2

×

Fra

me4

Fra

me5

Fra

me2

Fra

me6

Fra

me7

AC

K8

AC

K9

. . .Time

Fra

me8

Fra

me9

Fra

me6

Fra

me1

0

Fra

me1

1

Fra

me3

AC

K3

AC

K4

AC

K5

AC

K2

AC

K7

×

Frame damaged Frame lost

1

1 21

321

3

4321

43

5432

543

5432

5432

6543*2

7

7654*3*2

765*4*3*2

876

9876

987*6

787

987

9876 10

10987*6

111098*7*6

11109*8*7*6

AC

K6

1110

11

SR

EP

6

CO1

Windowed & Pipelined Processing

• Go-Back-N and Selective Reject are pipelined and windowed ARQ.

• Pipelined means they don’t wait for the transmitted frames to be ACK-ed, instead continue with transmission of next frame in buffer.

• In Go-Back-N ARQ, only sender needs buffers, receiver doesn’t.

CO1

Windowed & Pipelined Processing

• In Selective Reject ARQ, both sender and receiver need buffers.

• For both sides, the buffer (window) size must be the same so that flushing can be properly timed.

• And the window size <= half of possible frame number = 2n-1, n is the no. bits available to encode the frames – to avoid ambiguity in the frame numbers.

CO1

Detailed Window Processing

• Sender sends frames to receiver– Sender’s windows shrinks according to the

no. frames sent – Sent frames would still be kept in sender’s

buffer

• Receiver receives frames from sender– Receiver’s windows shrinks according to the

no. frames received

CO1

Detailed Window Processing

• Receiver sends ACK to sender– Receiver’s windows expands according to the

no. ACK sent– Receiver’s windows restores to the original

size

• Sender receives ACK-s from receiver– Sender’s windows expands according to the

no. ACK-s received– Sender’s windows restores to the original size

CO1

Detailed Window Processing

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

SenderBuffer

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

ReceiverBuffer

Initial

After 3 frames sent and received

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

SenderBuffer

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

ReceiverBuffer

Window

After 3 ACK received

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6

SenderBuffer

0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7

ReceiverBuffer

CO1

Piggyback Transmission

• There are times where the receiver too has to transmit data to the sender besides the acknowledgement data.– E.g. AJAX transaction, HTML page with many

images (request for next image is made before the currently sending finished)

• To improve efficiency of such bi-directional transmission, piggyback technique is used– Data frame with additional field to carry ACK

CO1

Piggyback Transmission

• If the receiver wants to send both data and ACK to sender, it will send both fields.

• If the receiver wants to send only ACK, a separate ACK frame is sent – not a piggybacked data.

• If the receiver wants to send only data, the data is sent with the previous ACK which is ignored by the sender side due to duplication.

CO1

Line Utilization

CO2

Line Utilization• A measure (a) of ratio between no. bits

present on a physical link (B) over no. bits per frame (L)

a = B / L

• a is to be made as close to 1 as possible for the line to be utilized optimally.

• This can be achieved by adjusting L.– Value of L needs to be optimized for various

protocols so that a is close enough to 1.CO2

Line Utilization

• B can be computed from data rate (R in bps), physical distance (d in meters) and velocity of propagation (V in ms-1):

B = R × d/V

CO2

Line Utilization

• Consider 1Mbps (R) link between 2 ground stations communicating through satellite relay.

• Geo-satellite: altitude of 36000km (d)

• Propagation velocity: 3×108 ms-1 (V)• B = 240,000 bits

• For a frame length of 8000 bits, a = 30

CO2

Line Utilization

• Sender finishes sending long before first bit physically arrived at receiver.

• This is a serious inefficiency in link utilization.

240,000 bits

8000bits

8000bits

CO2

Line Utilization

• Consider 200 m (d) optical fiber operating at 1 Gbps (R).

• Propagation velocity: 2×108 ms-1 (V)• B = 1000 bits

• For a frame length of 8000 bits, a = 0.125

CO2

8000bits

8000bits

Line Utilization

• Sender doesn’t finish sending long after first bit physically arrived at receiver.

• This is also an inefficiency because the rest of the circuitry might need wait too long for this operation to finish.

1000 bits

CO2

High-level Data Link Control

CO1

HDLC

• High-level Data Link Control

• A set of control commands made by OSI to control data link communication.

• To accomplish the data link control task, HDLC defines the following:– 3 types of stations– 2 link configurations– 3 data transfer modes

CO1

HDLC Station Types

• Primary station– Controls operation of link– Frames sent-out are called commands– Maintains separate logical link to each secondary

station

• Secondary station– Under control of primary station– Frames sent out are called responses

• Combined station– May send out commands and responses

CO1

HDLC Link Configurations

• Unbalanced– One primary and one or more secondary

stations– Supports full duplex and half duplex

• Balanced– Two combined stations– Supports full duplex and half duplex

CO1

HDLC Transfer Modes

• Three HDLC transfer modes– Normal Response Mode (NRM)

– Asynchronous Response Mode (ARM)

– Asynchronous Balanced Mode (ABM)

CO1

Normal Response Mode (NRM)

• One primary and one or more secondary (point-to-point or multicast)

• Used with unbalanced configuration

• Primary initiates transfer to secondary

• Secondary may only transmit data in response to command from primary

• Host computer as primary

• Terminals as secondary

CO1

Normal Response Mode (NRM)

Command

Response

Primary

Primary Secondary

Command

SecondarySecondary

ResponseResponse

Unicast / Point-to-point

Multicast

CO1

Asynchronous Response Mode (ARM)

• One primary and one secondary (point-to-point)

• Used with unbalanced configuration

• Primary sends commands, secondary can respond at any time

Command

Response

Primary Secondary

CO1

Asynchronous Balanced Mode (ABM)

• Two combined stations• Used with balanced configuration• Either station may initiate transmission without

receiving permission• Most widely used• No polling overhead

Command/Response

Command/Response

Combined Combined

CO1

HDLC Frame Structure

• HDLC uses synchronous transmission

• All transmissions in frames

• Single frame for all data and control exchanges

Flag Address Control Information FCS Flag

8 bits 8 bits8 bits extendable

8 or 16 bits variable 16 or 32 bits

CO1

Flag Fields

• Delimit a frame at both ends• An 8 bit sequence with a pattern 01111110• Each frame has 1 opening and 1 closing flag• Receiver hunts for flag sequence to synchronize• Bit stuffing used to avoid confusion with data

containing 01111110

Flag Address Control Information FCS Flag

8 bits 8 bits

CO1

Bit Stuffing

• Bit stuffing used to avoid confusion with data containing 01111110– Insert a 0 after every five consecutive 1-s

• If receiver reads five 1-s, it checks the next bit:– If it is 0, it is ignored– If it is 1, and the next is 0, then it is a flag– If it is 1, and the next is 1, then it is abort flag

CO1

Bit Stuffing

111111111111011111101111110

1111101111101101111101011111010

Inserted bits

Before bit stuffing

After bit stuffing

CO1

Address Field

• Identifies secondary station that sent or receive frame

• Usually 8 bits long with binary 1 in LSB• LSB indicates if the byte is the last byte (binary

1) or not (binary 0)• MSB binary 0: unicast• MSB binary 1: multicast / broadcast

Flag Address Control Information FCS Flag

8 bits extendable

CO1

Control Field

• Control field defines the three types:– Information Frames (I-frames)– Supervisory Frames (S-frames)– Unnumbered Frames (U-frames)

• First 1 or 2 bits of control field identify the frame type

Flag Address Control Information FCS Flag

8 or 16 bits

CO1

Control Field – I-frames

• Carry user data• Flow and error control are piggybacked on this

frame

Flag Address Control Information FCS Flag

CO1

Control Field – S-frames

• Provide ARQ mechanism when piggyback is not used

Flag Address Control FCS Flag

CO1

Control Field – U-frames

• Provide supplemental link control functions

Flag Address Control Management Information FCS Flag

CO1

Control Field – 8 bits format

1 2 3 4 5 6 7 8

0 N(S) P/F

1 0 S P/F

1 1 M P/F

N(R)

N(R)

M

I-frame

S-frame

U-frame

N(S): Send sequence numberN(R): Receive sequence numberS: Supervisory function bitsM: Unnumbered function bitsP/F: Poll/Final bit

CO1

Control Field – 16 bits format

N(S): Send sequence numberN(R): Receive sequence numberS: Supervisory function bitsP/F: Poll/Final bit

0I-frame

S-frame 1 0 S 0 0 0 0 P/F N(R)

N(S) P/F N(R)

1 2 83 4 5 6 7 9 10 161311 12 14 15

CO1

Poll / Final Bit

• If it is a command frame (from primary to secondary), then,– The bit is called P (poll) bit– If the bit is 1, it means the command is polling

(soliciting) response from the peer

• If it is a response frame (from secondary to primary), then,– The bit is called F (final) bit– If the bit is 1, it means the response is

responding to a soliciting (polling) commandCO1

Information Field

• Appears only in I-frames or some U-frames• It is variable length, but must be in integral

number of bytes

Flag Address Control Information FCS Flag

variable

CO1

FCS Field

• Contains the Frame Check Sequence for error detection purposes

• Usually 16 bit CRC (if 16 FCS) or may be 32 bit CRC (if 32 FCS)

Flag Address Control Information FCS Flag

16 or 32 bits

CO1

HDLC Commands & ResponsesName Command/

Response

Information (I) C/R

Supervisory (S)

Receive ready (RR / ACK) C/R

Receive not ready (RNR) C/R

Reject (REJ) C/R

Selective Reject (SREJ) C/R

Unnumbered (U)

Set normal response mode (SNRM) C

Set asynchronous response mode (SARM) C

Set asynchronous balanced mode (SABM) C

Set initialization mode (SIM) C

CO1

HDLC Commands & ResponsesName Command/

Response

Unnumbered (U) continued

Disconnect (DISC) C

Unnumbered acknowledge (UA) R

Disconnected mode (DM) R

Request disconnect (RD) R

Request initialization mode (RIM) R

Unnumbered information (UI) C/R

Unnumbered poll (UP) C

Reset (RSET) C

Exchange identification (XID) C/R

Test (TEST) C/R

Frame reject (FRMR) RCO1

HDLC Operation

• Three phases:– Initialization– Data transfer– Disconnect

CO1

Example Operation (1)A B

SABM

SABM

Time out

UA

DISC

UA

Setup and disconnect

.

.

.

CO1

Example Operation (2)A B

I,0,0

I,1,1

I,0,1 Two way data exchange

N(S) N(R)

I,2,1

I,1,3

I,3,2

I,2,4

I,3,4

RR,4

CO1

Example Operation (3)A B

RNR,4

I,3,0

Busy condition

RR,0,P

RNR,4,F

RR,0,P

RR,4,F

I,4,0

CO1

Example Operation (4)A B

I,3,0

Reject recovery

REJ,4

I,4,0

I,5,0

I,4,0

I,5,0

I,6,0

CO1

Example Operation (5)A B

I,2,0

Timeout recoveryRR,3I,3,0

RR,0,P

Time out

RR,3,F

I,3,0

RR,4

CO1

Recommended