67
EEC4113 Data Communication & Multimedia System Chapter 4: Flow Control by Muhazam Mustapha, October 2013

Chapter 4: Datalink Layer - Flow Control

Embed Size (px)

DESCRIPTION

First Part of Datalink Layer

Citation preview

Page 1: Chapter 4: Datalink Layer - Flow Control

EEC4113Data Communication &

Multimedia SystemChapter 4: Flow Control

by Muhazam Mustapha, October 2013

Page 2: Chapter 4: Datalink Layer - Flow Control

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

Page 3: Chapter 4: Datalink Layer - Flow Control

Chapter Content

• Stop-and-Wait ARQ

• Go-Back-N ARQ

• Selective Reject ARQ

• Line Utilization

• High-level Data Link Control

Page 4: Chapter 4: Datalink Layer - Flow Control

Automatic Repeat Request (ARQ)

CO1

Page 5: Chapter 4: Datalink Layer - Flow Control

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

Page 6: Chapter 4: Datalink Layer - Flow Control

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

Page 7: Chapter 4: Datalink Layer - Flow Control

Stop-and-Wait ARQNormal operation diagram:

ReceiverSender

Tim

e

Frame1

Frame2

Frame3

Frame4

ACK1

ACK2

ACK3

ACK4

Wait

Wait

Wait

Wait

.

.

.CO1

Page 8: Chapter 4: Datalink Layer - Flow Control

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

Page 9: Chapter 4: Datalink Layer - Flow Control

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

Page 10: Chapter 4: Datalink Layer - Flow Control

Stop-and-Wait ARQEvent of frame lost:

ReceiverSender

Tim

e

Frame1

Frame2

Frame2

ACK1

ACK2

Wait

Wait

.

.

.

×

Retransmit

Frame lost

Time out

CO1

Page 11: Chapter 4: Datalink Layer - Flow Control

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

Page 12: Chapter 4: Datalink Layer - Flow Control

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

Page 13: Chapter 4: Datalink Layer - Flow Control

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

Page 14: Chapter 4: Datalink Layer - Flow Control

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

Page 15: Chapter 4: Datalink Layer - Flow Control

Go-Back-N ARQNormal operation diagram:

ReceiverSender

Tim

e

Frame1Frame2Frame3

Frame4

ACK1

ACK2

ACK3

ACK4

.

.

.

Frame5

Frame6ACK5

ACK6

CO1

Page 16: Chapter 4: Datalink Layer - Flow Control

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

Page 17: Chapter 4: Datalink Layer - Flow Control

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

Page 18: Chapter 4: Datalink Layer - Flow Control

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

Page 19: Chapter 4: Datalink Layer - Flow Control

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

Page 20: Chapter 4: Datalink Layer - Flow Control

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

Page 21: Chapter 4: Datalink Layer - Flow Control

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

Page 22: Chapter 4: Datalink Layer - Flow Control

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

Page 23: Chapter 4: Datalink Layer - Flow Control

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

Page 24: Chapter 4: Datalink Layer - Flow Control

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

Page 25: Chapter 4: Datalink Layer - Flow Control

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

Page 26: Chapter 4: Datalink Layer - Flow Control

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

Page 27: Chapter 4: Datalink Layer - Flow Control

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

Page 28: Chapter 4: Datalink Layer - Flow Control

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

Page 29: Chapter 4: Datalink Layer - Flow Control

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

Page 30: Chapter 4: Datalink Layer - Flow Control

Line Utilization

CO2

Page 31: Chapter 4: Datalink Layer - Flow Control

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

Page 32: Chapter 4: Datalink Layer - Flow Control

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

Page 33: Chapter 4: Datalink Layer - Flow Control

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

Page 34: Chapter 4: Datalink Layer - Flow Control

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

Page 35: Chapter 4: Datalink Layer - Flow Control

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

Page 36: Chapter 4: Datalink Layer - Flow Control

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

Page 37: Chapter 4: Datalink Layer - Flow Control

High-level Data Link Control

CO1

Page 38: Chapter 4: Datalink Layer - Flow Control

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

Page 39: Chapter 4: Datalink Layer - Flow Control

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

Page 40: Chapter 4: Datalink Layer - Flow Control

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

Page 41: Chapter 4: Datalink Layer - Flow Control

HDLC Transfer Modes

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

– Asynchronous Response Mode (ARM)

– Asynchronous Balanced Mode (ABM)

CO1

Page 42: Chapter 4: Datalink Layer - Flow Control

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

Page 43: Chapter 4: Datalink Layer - Flow Control

Normal Response Mode (NRM)

Command

Response

Primary

Primary Secondary

Command

SecondarySecondary

ResponseResponse

Unicast / Point-to-point

Multicast

CO1

Page 44: Chapter 4: Datalink Layer - Flow Control

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

Page 45: Chapter 4: Datalink Layer - Flow Control

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

Page 46: Chapter 4: Datalink Layer - Flow Control

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

Page 47: Chapter 4: Datalink Layer - Flow Control

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

Page 48: Chapter 4: Datalink Layer - Flow Control

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

Page 49: Chapter 4: Datalink Layer - Flow Control

Bit Stuffing

111111111111011111101111110

1111101111101101111101011111010

Inserted bits

Before bit stuffing

After bit stuffing

CO1

Page 50: Chapter 4: Datalink Layer - Flow Control

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

Page 51: Chapter 4: Datalink Layer - Flow Control

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

Page 52: Chapter 4: Datalink Layer - Flow Control

Control Field – I-frames

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

frame

Flag Address Control Information FCS Flag

CO1

Page 53: Chapter 4: Datalink Layer - Flow Control

Control Field – S-frames

• Provide ARQ mechanism when piggyback is not used

Flag Address Control FCS Flag

CO1

Page 54: Chapter 4: Datalink Layer - Flow Control

Control Field – U-frames

• Provide supplemental link control functions

Flag Address Control Management Information FCS Flag

CO1

Page 55: Chapter 4: Datalink Layer - Flow Control

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

Page 56: Chapter 4: Datalink Layer - Flow Control

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

Page 57: Chapter 4: Datalink Layer - Flow Control

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

Page 58: Chapter 4: Datalink Layer - Flow Control

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

Page 59: Chapter 4: Datalink Layer - Flow Control

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

Page 60: Chapter 4: Datalink Layer - Flow Control

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

Page 61: Chapter 4: Datalink Layer - Flow Control

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

Page 62: Chapter 4: Datalink Layer - Flow Control

HDLC Operation

• Three phases:– Initialization– Data transfer– Disconnect

CO1

Page 63: Chapter 4: Datalink Layer - Flow Control

Example Operation (1)A B

SABM

SABM

Time out

UA

DISC

UA

Setup and disconnect

.

.

.

CO1

Page 64: Chapter 4: Datalink Layer - Flow Control

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

Page 65: Chapter 4: Datalink Layer - Flow Control

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

Page 66: Chapter 4: Datalink Layer - Flow Control

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

Page 67: Chapter 4: Datalink Layer - Flow Control

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