Presentation is loading. Please wait.

Presentation is loading. Please wait.

EEC4113 Data Communication & Multimedia System Chapter 4: Flow Control by Muhazam Mustapha, August 2010.

Similar presentations


Presentation on theme: "EEC4113 Data Communication & Multimedia System Chapter 4: Flow Control by Muhazam Mustapha, August 2010."— Presentation transcript:

1 EEC4113 Data Communication & Multimedia System Chapter 4: Flow Control by Muhazam Mustapha, August 2010

2 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

3 Chapter Content Stop-and-Wait ARQ Go-Back-N ARQ Selective Reject ARQ
Line Utilization High-level Data Link Control

4 Automatic Repeat Request (ARQ)

5 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.

6 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.

7 Stop-and-Wait ARQ Normal operation diagram: . . . Sender Receiver
Frame1 Wait ACK1 Frame2 Wait ACK2 Frame3 Wait Time ACK3 Frame4 Wait ACK4 . . .

8 Stop-and-Wait ARQ Event of damage frame: . . . × Sender Receiver
ACK1 × Frame2 Error occur Wait NAK2 Retransmit Frame2 Wait Time ACK2 Frame3 Wait ACK3 . . .

9 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

10 Stop-and-Wait ARQ Event of frame lost: . . . × Sender Receiver
ACK1 × Frame2 Frame lost Wait Time Time out Frame2 Retransmit ACK2 . . .

11 Stop-and-Wait ARQ Event of lost ACK: . . . × Sender Receiver ACK Lost
Frame1 Wait ACK1 Frame2 ACK2 × ACK Lost Wait Time Time out Frame2 Retransmit Wait ACK2 . . .

12 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.

13 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.

14 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.

15 Go-Back-N ARQ Normal operation diagram: . . . Sender Receiver Time
Frame1 Frame2 ACK1 Frame3 ACK2 ACK3 Frame4 Frame5 ACK4 ACK5 Frame6 ACK6 Time . . .

16 Go-Back-N ARQ Event of damage frame: . . . Error occur Receiver ×
Time Receiver Frame1 Frame2 Frame3 Frame4 Frame5 Frame6 Frame3 Frame4 Frame5 × ACK1 ACK2 NAK3 ACK3 ACK4 ACK5 Sender Retransmit

17 Go-Back-N ARQ Event of lost frame: (sender window = 6 frames) . . .
Retransmit after 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 2 frames buffered 3 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered 5 frames buffered 6 frames buffered 1 frame buffered 2 frames buffered 3 frames buffered 4 frames buffered 4 frames buffered 4 frames buffered

18 Go-Back-N ARQ Event of lost ACK: (sender window = 6 frames) . . .
ACK damaged or lost Time Receiver Frame5 Frame10 Frame1 Frame2 Frame3 Frame4 Frame6 Frame7 Frame8 Frame9 Frame11 Frame12 Frame13 Frame14 × × ACK2 ACK6 ACK1 ACK3 ACK4 ACK5 ACK7 ACK8 ACK9 ACK10 ACK11 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

19 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.

20 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.

21 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.

22 Selective Reject ARQ Event of lost frame: . . . Frame damaged
Frame lost 1 3 4 3 5 4 3 7 7 8 7 9 8 7 10 11 Receiver Frame5 Frame8 Frame1 Frame2 Frame3 Frame4 Frame2 Frame7 Frame9 Frame6 Frame10 Frame11 × × Frame6 Time ACK1 SREJ2 ACK3 ACK4 ACK5 ACK2 ACK7 SREP6 ACK8 ACK9 ACK6 1 2 1 3 2 1 * 2 * 3* 2 7 6 5* 4* 3* 2 8 7 6 9 8 7* 6 * 6 * 7* 6 * 8* 7* 6 11 10 Sender

23 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.

24 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.

25 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

26 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

27 Detailed Window Processing
Sender Buffer Initial 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Receiver Buffer After 3 frames sent and received 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Sender Buffer 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Receiver Buffer After 3 ACK received 1 2 3 4 5 6 7 1 2 3 4 5 6 7 Sender Buffer 1 2 3 4 5 6 7 1 2 3 4 5 6 Receiver Buffer 1 2 3 4 5 6 7 1 2 3 4 5 6 7

28 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

29 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.

30 Line Utilization

31 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.

32 Line Utilization B = R × d/V
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

33 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

34 Line Utilization 8000bits 8000bits 240,000 bits Sender finishes sending long before first bit physically arrived at receiver. This is a serious inefficiency in link utilization.

35 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

36 Line Utilization 8000bits 8000bits 1000 bits 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.

37 High-level Data Link Control

38 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

39 HDLC Station Types Primary station Secondary station Combined 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

40 HDLC Link Configurations
Unbalanced One primary and one or more secondary stations Supports full duplex and half duplex Balanced Two combined stations

41 HDLC Transfer Modes Three HDLC transfer modes
Normal Response Mode (NRM) Asynchronous Balanced Mode (ABM) Asynchronous Response Mode (ARM)

42 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

43 Normal Response Mode (NRM)
Primary Secondary Command Response Unicast / Point-to-point Secondary Secondary Primary Command Response Response Multicast

44 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

45 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

46 Flag Fields Delimit a frame at both ends
Address Control Information FCS Flag 8 bits 8 bits Delimit a frame at both ends An 8 bit sequence with a pattern 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

47 Bit Stuffing Bit stuffing used to avoid confusion with data containing 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

48 Bit Stuffing Before bit stuffing 111111111111011111101111110
After bit stuffing Inserted bits

49 Address Field Identifies secondary station that sent or receive frame
Flag Address Control Information FCS Flag 8 bits extendable 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

50 Control Field Control field defines the three types:
Flag Address Control Information FCS Flag 8 or 16 bits 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

51 Control Field – I-frames
Flag Address Control Information FCS Flag Carry user data Flow and error control are piggybacked on this frame

52 Control Field – S-frames
Flag Address Control FCS Flag Provide ARQ mechanism when piggyback is not used

53 Control Field – U-frames
Flag Address Control Management Information FCS Flag Provide supplemental link control functions

54 Control Field – 8 bits format
I-frame N(S) P/F N(R) S-frame 1 S P/F N(R) U-frame 1 1 M P/F M N(S): Send sequence number N(R): Receive sequence number S: Supervisory function bits M: Unnumbered function bits P/F: Poll/Final bit

55 Control Field – 16 bits format
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 I-frame N(S) P/F N(R) S-frame 1 S P/F N(R) N(S): Send sequence number N(R): Receive sequence number S: Supervisory function bits P/F: Poll/Final bit

56 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) command

57 Information Field Appears only in I-frames or some U-frames
Flag Address Control Information FCS Flag variable Appears only in I-frames or some U-frames It is variable length, but must be in integral number of bytes

58 FCS Field Flag Address Control Information FCS Flag 16 or 32 bits 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)

59 HDLC Commands & Responses
Name Command/Response Information (I) C/R Supervisory (S) Receive ready (RR / ACK) Receive not ready (RNR) Reject (REJ) Selective Reject (SREJ) Unnumbered (U) Set normal response mode (SNRM) C Set asynchronous response mode (SARM) Set asynchronous balanced mode (SABM) Set initialization mode (SIM)

60 HDLC Commands & Responses
Name Command/Response Unnumbered (U) continued Disconnect (DISC) C Unnumbered acknowledge (UA) R Disconnected mode (DM) Request disconnect (RD) Request initialization mode (RIM) Unnumbered information (UI) C/R Unnumbered poll (UP) Reset (RSET) Exchange identification (XID) Test (TEST) Frame reject (FRMR)

61 HDLC Operation Three phases: Initialization Data transfer Disconnect

62 Example Operation (1) . . . A B Setup and disconnect SABM SABM UA DISC
Time out SABM UA . . . DISC UA

63 Example Operation (2) N(S) N(R) A B Two way data exchange I,0,0 I,0,1
RR,4

64 Example Operation (3) A B Busy condition I,3,0 RNR,4 RR,0,P RNR,4,F
RR,4,F I,4,0

65 Example Operation (4) A B Reject recovery I,3,0 I,4,0 I,5,0 REJ,4

66 Example Operation (5) A B Timeout recovery I,2,0 RR,3 I,3,0 RR,0,P
RR,3,F I,3,0 RR,4


Download ppt "EEC4113 Data Communication & Multimedia System Chapter 4: Flow Control by Muhazam Mustapha, August 2010."

Similar presentations


Ads by Google