670 likes | 754 Views
EEC4113 Data Communication & Multimedia System Chapter 4: Flow Control by Muhazam Mustapha, August 2010. 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.
E N D
EEC4113Data Communication &Multimedia SystemChapter 4: Flow Controlby Muhazam Mustapha, August 2010
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.
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.
Stop-and-Wait ARQ Normal operation diagram: Sender Receiver Frame1 Wait ACK1 Frame2 Wait ACK2 Frame3 Time Wait ACK3 Frame4 Wait ACK4 ...
Stop-and-Wait ARQ Event of damage frame: Sender Receiver Frame1 Wait ACK1 × Frame2 Error occur Wait NAK2 Retransmit Frame2 Time Wait ACK2 Frame3 Wait ACK3 ...
Stop-and-Wait ARQ Event of damage ACK: Sender Receiver Frame1 Wait ACK1 Frame2 ACK2 × Error occur Wait Time Time out Frame2 ... Retransmit Wait ACK2
Stop-and-Wait ARQ Event of frame lost: Sender Receiver Frame1 Wait ACK1 × Frame2 Frame lost Wait Time Time out Frame2 ACK2 Retransmit ...
Stop-and-Wait ARQ Event of lost ACK: Sender Receiver Frame1 Wait ACK1 Frame2 ACK2 × ACK Lost Wait Time Time out Frame2 Wait ACK2 Retransmit ...
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.
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.
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.
Go-Back-N ARQ Normal operation diagram: Sender Receiver Frame1 Frame2 ACK1 Frame3 ACK2 Frame4 ACK3 Frame5 ACK4 Frame6 ACK5 ACK6 Time ...
Go-Back-N ARQ Event of damage frame: Error occur Time Receiver Frame1 Frame2 Frame3 Frame4 Frame5 Frame6 Frame3 Frame4 Frame5 × . . . ACK1 ACK2 NAK3 ACK3 ACK4 ACK5 Sender Retransmit
Go-Back-N ARQ Event of lost frame: (sender window = 6 frames) Retransmitafter time-out Frame lost Time Receiver Frame1 Frame2 Frame4 Frame5 Frame6 Frame7 Frame8 Frame3 Frame4 Frame5 Frame6 Frame7 Frame8 × . . . Frame3 ACK1 ACK2 ACK3 ACK4 ACK5 Sender 1 frame buffered 1 frame buffered 2 frames buffered 3 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered 5 frames buffered 6 frames buffered 2 frames buffered 3 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered
Go-Back-N ARQ Event of lost ACK: (sender window = 6 frames) ACK damaged or lost Time Receiver Frame10 Frame11 Frame14 Frame13 Frame5 Frame12 Frame1 Frame2 Frame3 Frame4 Frame6 Frame7 Frame8 Frame9 × × . . . ACK6 ACK2 ACK11 ACK10 ACK1 ACK3 ACK4 ACK5 ACK7 ACK9 ACK8 Sender 1 frame buffered 2 frames buffered 3 frames buffered 4 frames buffered 4 frames buffered 5 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered 5 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered
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.
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.
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.
Selective Reject ARQ Event of lost frame: Frame damaged Frame lost 1 3 43 543 5432 7 7 87 987 9876 10 11 Receiver Frame8 Frame9 Frame11 Frame10 Frame5 Frame6 Frame1 Frame2 Frame3 Frame4 Frame2 Frame7 × × . . . Time Frame6 ACK1 ACK3 ACK4 ACK5 ACK2 ACK9 ACK6 ACK8 SREJ2 SREP6 ACK7 1 21 321 4321 5432 5432 6543*2 7654*3*2 765*4*3*2 876 9876 987*6 10987*6 111098*7*6 11109*8*7*6 1110 Sender
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.
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.
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
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
Detailed Window Processing Window SenderBuffer Initial 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 ReceiverBuffer 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 After 3 ACK 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 ReceiverBuffer 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
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
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.
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.
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
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
Line Utilization • Sender finishes sending long before first bit physically arrived at receiver. • This is a serious inefficiency in link utilization. 8000bits 8000bits 240,000 bits
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
Line Utilization 8000bits • 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. 8000bits 1000 bits
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
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
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
HDLC Transfer Modes • Three HDLC transfer modes • Normal Response Mode (NRM) • Asynchronous Balanced Mode (ABM) • Asynchronous Response Mode (ARM)
Normal Response Mode (NRM) • 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
Normal Response Mode (NRM) Primary Secondary Command Response Unicast / Point-to-point Secondary Secondary Primary Command Response Response Multicast
Asynchronous Balanced Mode (ABM) • Used with balanced configuration • Either station may initiate transmission without receiving permission • Most widely used • No polling overhead Combined Combined Command/Response Command/Response
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 bits extendable 8 or 16 bits variable 16 or 32 bits 8 bits
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
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
Bit Stuffing Before bit stuffing 111111111111011111101111110 1111101111101101111101011111010 After bit stuffing Inserted bits
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
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