EEE6432Lect11 15 v3 20-21
EEE6432Lect11 15 v3 20-21
11.5 Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
11-1 FRAMING
11.6
Figure 11.1 A frame in a character-oriented protocol
11.7
Figure 11.2 Byte stuffing and unstuffing
11.8
Note
11.9
Figure 11.3 A frame in a bit-oriented protocol
11.10
Note
11.11
Figure 11.4 Bit stuffing and unstuffing
11.12
11-2 FLOW AND ERROR CONTROL
11.13
Note
11.14
Note
11.15
11-3 PROTOCOLS
11.16
Figure 11.5 Taxonomy of protocols discussed in this chapter
11.17
11-4 NOISELESS CHANNELS
11.18
Figure 11.6 The design of the simplest protocol with no flow or error control
11.19
Algorithm 11.1 Sender-site algorithm for the simplest protocol
11.20
Algorithm 11.2 Receiver-site algorithm for the simplest protocol
11.21
Example 11.1
11.22
Figure 11.7 Flow diagram for Example 11.1
11.23
The simplest protocol doesn’t have
flow control.
How to add flow control into the
simplest protocol?
11.24
Figure 11.8 Design of Stop-and-Wait Protocol
11.25
Algorithm 11.3 Sender-site algorithm for Stop-and-Wait Protocol
st nd
Error: the 1 and 2 LOC should change positions.
11.26
Algorithm 11.4 Receiver-site algorithm for Stop-and-Wait Protocol
11.27
Example 11.2
11.28
Figure 11.9 Flow diagram for Example 11.2
11.29
11-5 NOISY CHANNELS
11.30
Note
11.31
Note
11.32
Note
11.33
Figure 11.10 Design of the Stop-and-Wait ARQ Protocol
11.34
Algorithm 11.5 Sender-site algorithm for Stop-and-Wait ARQ
(continued)
11.35
Algorithm 11.5 Sender-site algorithm for Stop-and-Wait ARQ (continued)
11.36
Algorithm 11.6 Receiver-site algorithm for Stop-and-Wait ARQ Protocol
11.37
Example 11.3
11.38
Figure 11.11 Flow diagram for Example 11.3
11.39
What is the problem of Stop-and-Wait
ARQ?
11.40
Example 11.4
Solution
The bandwidth-delay product is
11.41
Example 11.4 (continued)
The system can send 20,000 bits during the time it takes
for the data to go from the sender to the receiver and then
back again. However, the system sends only 1000 bits. We
can say that the link utilization is only 1000/20,000, or 5
percent. For this reason, for a link with a high bandwidth
or long delay, the use of Stop-and-Wait ARQ wastes the
capacity of the link.
11.42
Example 11.5
Solution
The bandwidth-delay product is still 20,000 bits. The
system can send up to 15 frames or 15,000 bits during a
round trip. This means the utilization is 15,000/20,000, or
75 percent. Of course, if there are damaged frames, the
utilization percentage is much less because frames have
to be resent.
11.43
How to improve the efficiency of
Stop-and-Wait ARQ?
11.44
Note
11.45
Figure 11.12 Send window for Go-Back-N ARQ
11.46
Note
11.47
Note
11.48
Figure 11.13 Receive window for Go-Back-N ARQ
11.49
Note
11.50
Figure 11.14 Design of Go-Back-N ARQ
11.51
Figure 11.15 Window size for Go-Back-N ARQ
11.52
Note
11.53
Algorithm 11.7 Go-Back-N sender algorithm
(continued)
11.54
Algorithm 11.7 Go-Back-N sender algorithm (continued)
//Error:
SendFrame (Temp);
Temp = Temp+1;
11.55
Algorithm 11.8 Go-Back-N receiver algorithm
11.56
Example 11.6
Figure 11.16 shows an example of Go-Back-N. This is an
example of a case where the forward channel is reliable,
but the reverse is not. No data frames are lost, but some
ACKs are delayed and one is lost. The example also
shows how cumulative acknowledgments can help if
acknowledgments are delayed or lost. After initialization,
there are seven sender events. Request events are
triggered by data from the network layer; arrival events
are triggered by acknowledgments from the physical
layer. There is no time-out event here because all
outstanding frames are acknowledged before the timer
expires. Note that although ACK 2 is lost, ACK 3 serves
as both ACK 2 and ACK 3.
11.57
Figure 11.16 Flow diagram for Example 11.6
11.58
Example 11.7
11.60
Figure 11.17 Flow diagram for Example 11.7
Error 1: Sn
should point to
4.
11.61
Note
11.62
Selective Repeat ARQ
• Go-Back-N ARQ simplifies the process at the receiver
site.
– The receiver keeps track of only one variable
– There is no need to buffer out-of-order frames, they are
simply discarded.
• However, this protocol is very inefficient for a noisy
link.
– In a noisy link a frame has a higher probability of damage,
which means the resending of multiple frames.
– This resending uses up the bandwidth and slows down the
transmission.
Selective Repeat ARQ
• For noisy links, there is another mechanism that does
not resend N frames when just one frame is
damaged; only the damaged frame is resent.
• This mechanism is called Selective Repeat ARQ.
• It is more efficient for noisy links, but the processing
at the receiver is more complex.
Windows
• The Selective Repeat Protocol also uses two
windows: a send window and a receive window.
• However, there are differences between the windows
in this protocol and the ones in Go-Back-N.
– First, the size of the send window is much smaller, 2m-1.
– Second, the receive window is the same size as the send
window.
Windows
• The send window maximum size can be 2m-1.
– If m = 4, the sequence numbers go from 0 to 15, but the size
of the window is just 8 (it is 15 in the Go-Back-N Protocol).
• The smaller window size means less efficiency in filling
the pipe, but the fact that there are fewer duplicate
frames can compensate for this.
• The protocol uses the same variables as we discussed
for Go-Back-N.
• We show the Selective Repeat send window in Figure
11.18 to emphasize the size. Compare it with Figure
11.12.
Figure 11.18 Send window for Selective Repeat ARQ
11.67
Figure 11.12 Send window for Go-Back-N ARQ
11.68
Figure 11.19 Receive window for Selective Repeat ARQ
11.69
Receive window
• The receive window in Selective Repeat is totally
different from the one in Go-Back-N.
• The size of the receive window is the same as the
size of the send window (2m-1).
• The Selective Repeat Protocol allows as many frames
as the size of the receive window to arrive out of
order and be kept until there is a set of in-order
frames to be delivered to the network layer.
Receive window
• Because the sizes of the send window and receive
window are the same, all the frames in the send frame
can arrive out of order and be stored until they can be
delivered.
• We need, however, to mention that the receiver never
delivers packets out of order to the network layer.
• Figure 11.19 shows the receive window in this protocol.
Those slots inside the window that are coloured define
frames that have arrived out of order and are waiting
for their neighbours to arrive before delivery to the
network layer.
Figure 11.20 Design of Selective Repeat ARQ
11.72
Window Sizes
• We can now show why the size of the sender and
receiver windows must be at most one-half of 2m.
• For an example, we choose m = 2, which means the
size of the window is 2m/2, or 2.
• Figure 11.21 compares a window size of 2 with a
window size of 3.
Window Sizes
• If the size of the window is 2 and all acknowledgments are
lost, the timer for frame 0 expires and frame 0 is resent.
However, the window of the receiver is now expecting
frame 2, not frame 0, so this duplicate frame is correctly
discarded.
• When the size of the window is 3 and all
acknowledgments are lost, the sender sends a duplicate
of frame 0.
• However, this time, the window of the receiver expects to
receive frame 0 (0 is part of the window), so it accepts
frame 0, not as a duplicate, but as the first frame in the
next cycle. This is clearly an error.
Figure 11.21 Selective Repeat ARQ, window size
11.75
Note
11.76
Algorithm 11.9 Sender-site Selective Repeat algorithm
(continued)
11.77
Algorithm 11.9 Sender-site Selective Repeat algorithm (continued)
11.78 (continued)
Algorithm 11.9 Sender-site Selective Repeat algorithm (continued)
11.79
Analysis – Sender Site
• The handling of the request event is similar to that of the
previous protocol except that one timer is started for
each frame sent.
• The arrival event is more complicated here.
• An ACK or a NAK frame may arrive.
– If a valid NAK frame arrives, we just resend the corresponding
frame.
– If a valid ACK arrives, we use a loop to purge the buffers, stop
the corresponding timer, and move the left wall of the window.
• The time-out event is simpler here; only the frame which
times out is resent.
Algorithm 11.10 Receiver-site Selective Repeat algorithm
11.81
Algorithm 11.10 Receiver-site Selective Repeat algorithm
11.82
Analysis – Receiver Site
• Here we need more initialization.
– In order not to overwhelm the other side with NAKs, we
use a variable called NakSent.
– To know when we need to send an ACK, we use a variable
called AckNeeded. Both of these are initialized to false.
– We also use a set of variables to mark the slots in the
receive window once the corresponding frame has arrived
and is stored.
Analysis – Receiver Site
• If we receive a corrupted frame and a NAK has not
yet been sent, we send a NAK to tell the other site
that we have not received the frame we expected.
• If the frame is not corrupted and the sequence
number is in the window, we store the frame and
mark the slot.
• If contiguous frames, starting from Rn, have been
marked, we deliver their data to the network layer
and slide the window.
• Figure 11.22 shows this situation.
Figure 11.22 Delivery of data in Selective Repeat ARQ
11.85
Example 11.8
11.88
Example 11.8 (continued)
The next point is about the ACKs. Notice that only two
ACKs are sent here. The first one acknowledges only the
first frame; the second one acknowledges three frames. In
Selective Repeat, ACKs are sent when data are delivered to
the network layer. If the data belonging to n frames are
delivered in one shot, only one ACK is sent for all of them.
11.89
Figure 11.23 Flow diagram for Example 11.8
11.90