EEC4113Data Communication &
Multimedia SystemChapter 4: Flow Control
by Muhazam Mustapha, October 2011
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
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• 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
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
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