Download PDF Analysis Of error control And Flow control Schemes

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Analysis of error control and flow control schemes
M. Veeraraghavan, Sep. 2013
1. Error control
There are two steps in error control: error detection and error correction. Error detection
schemes include parity codes, checksums, and Cyclic Redundancy Codes (CRC) codes. Error correction schemes include ARQ (Automatic Repeat reQuest) and FEC (Forward Error Correction).
We shall analyze ARQ schemes in this course. FEC codes are used to send in the forward direction along with the user data. The receiver is able to correct simple errors that may occur in the
data stream using the FEC code.
ARQ: The fundamental idea is to use acknowledgments (ACKs) sent from the receiver to the
sender for data frames sent from the sender to the receiver. We introduce concepts used in ARQ
here:
Timers: Sender keeps a timer, if an ACK is not received before the timer expires, it resends the
frame. How large should the timer value be?
Need for sequence numbers for the frames: If a frame is properly received, but the ACK is
lost, then the sender will time-out and retransmit. This will result in the receiver receiving duplicate frames. Hence frames need sequence numbers to allow the receiver to detect duplicates.
Need for sequence numbers in the ACKs: If a frame 0 is sent, but the timer times-out before
the ACK is received, the sender will resend frame 0. If the ACK for the first frame 0 arrives soon
after the sender retransmitted frame 0, the sender will assume that the ACK was for the retransmitted frame 0 and hence send frame 1. Now if frame 1 gets lost, but the receiver sends another
ACK for the retransmitted frame 0, the sender may mistakenly think this ACK is for frame 1. If
ACKs said what frames they were acknowledging (using their sequence numbers), this problem
would not arise.
Checkpointing: periodically sending ENQ (enquiries) to see what frames were received.
Three modes: Stop-and-wait, Go-back-N, Selective Repeat ARQ
1.1
Stop-and-wait
Send a frame, wait for an ACK; if it does not arrive before a time-out occurs then retransmit.
This scheme is inefficient because the Delay-bandwidth (BW) product is low. Delay-BW product
is bit rate times delay that elapses before any action can take place. Consider a 1.5Mbps link. Say
1
a 1000-bit frame is sent and an ACK awaited before the next frame can be sent. If the round trip
delay (including propagation delay) is 40ms, then instead of sending 60Kbits within the 40ms
duration ( 1.5Mbps × 40ms = 60Kbits ), we send only 1K bits. This makes stop-and-wait inefficient.
Last bit received
End of Transmit of ACK
Receiver
propagation
delay
Frame
ACK
Frame
ACK
Sender
transmission
delay
Start Transmit
Last bit of ACK received
End Transmit
Figure 1:Stop-and-Wait ARQ scheme
Efficiency (pg. 290 of [1]):
Let link rate be R , frame size in bits be n f , and ACK size in bits be n a . Let there be a processing delay at both ends of t proc . Then the time to send a frame and receive an ACK is:
nf na
t 0 = 2t prop + 2t proc + ---- + ----R R
(1)
where n f ⁄ R is the transmission delay of the frame. Therefore effective transmission rate in the
absence of errors is
n f – n0
0
R eff = --------------t0
(2)
where n 0 is the number of overhead bits in the frame. Transmission efficiency of the stop-andwait scheme is then:
2
nf – n0
no
--------------1 – ----t0
nf
η 0 = ---------------- = -------------------------------------------------------------R
n a 2 ( t prop + t proc )R
1 + ----- + ---------------------------------------nf
nf
(3)
The numerator shows loss in efficiency due to header bits (e.g., CRC checks). In the denominator n a ⁄ n f is the loss in efficiency due to the time required for the ACK message. The term
2 ( t prop + t proc )R is the delay-bandwidth product. “In Stop-and-Wait schemes, the delay-bandwidth product can be viewed as a measure of lost opportunity in terms of transmitted bits [1].”
In the presence of errors:
Let P f be the probability that a received frame has errors. The transmission efficiency of the
Stop-and-Wait scheme then becomes:
no
1 – ----nf
η = ( 1 – P f ) -------------------------------------------------------------n a 2 ( t prop + t proc )R
1 + ----- + ---------------------------------------nf
nf
(4)
Derivation: Let n t be the number of transmissions required to deliver a packet successfully
( ( i – 1 ) transmissions are unsuccessful and the i th is successful):
i–1
P [ n t = i ] = ( 1 – P f )P f
for i = 1, 2, …
(5)
[note: this is a geometric random variable - number of attempts until 1st success; if the success
itself is omitted, it is called modified geometric random variable in Trivedi’s book, while R uses
the latter in dgeom. Another random variable distribution, negative binomial and correspondingly
modified negative binomial are number of trials until the rth success; so this distribution has two
parameters p and r.]
Each unsuccessful attempt costs a time-out period of t out , and the successful one a time period
of t 0 (see (1)).
3
∞
E [ t total ] = t 0 +
∞
∑ ( i – 1 )tout P [ nt = i ]
(6)
i=1
i–1
= t 0 + t out ∑ ( i – 1 ) ( 1 – P f )P f
i=1
t out ( 1 – P f )P f
t out P f
- = t 0 + ------------= t 0 + -------------------------------2
1 – Pf
( 1 – Pf )
2
3
x = a + 2a + 3a + …
2
(7)
3
xa = a + 2a + …
1
1 – (1 – a)
2
3
4
x ( 1 – a ) = a + a + a + a + … = ------------ – ( 1 ) = ------------------------1–a
1–a
a
x = ------------------2(1 – a)
If we assume time-out t out = t 0 , then
t0
E [ t total ] = -------------1 – Pf
(8)
Effective transmission rate (bits sent divided by mean delay):
nf – n 0
( nf – n 0 )
0
R eff = -------------------- = ( 1 – P f ) -------------------- = ( 1 – P f )R eff (see (2))
E [ t total ]
t0
(9)
Transmission efficiency is
η = ( 1 – P f )η 0
(10)
where η 0 is the transmission efficiency in the absence of errors.
The effect of errors is to reduce the effective transmission rate and efficiency by a factor of
( 1 – P f ) where P f is probability of an errored frame.
n
P f = ( 1 – P [ no bit errors in a frame ] ) = ( 1 – ( 1 – p ) f ) ≈ n f p
(11)
For burst error channels, the following approximation is often used:
P f ≈ cn f p
11
----< c < --10
3
4
(12)
The reason for the lower frame error rate is that burst errors tend to cluster in a few frames instead
of randomly affecting many frames.
1.2
Go-back-N
When a frame is lost, as shown in Fig. 2, either a NAK is generated (as in Fig. 2) or a time-out
occurs at the sender waiting for an ACK. This causes all frames starting from the one that was lost
to be retransmitted. At the receiver, all frames received past the lost one are discarded.
Frames 4,5,6
are retransmitted
NAK 4
ACK 3
6
Frame
5
Frame
4
Frame
6
Frame
5
Frame
4
Frame
3
Frame
2
Frame
1
Frame
0
Frame
ACK 6
A
B
Frames 5 and 6
are discarded
Figure 2:Go-back-N illustration (figure made by Prof. Jorg Liebeherr)
In Fig. 3, we show what happens with Go-Back-N when an ACK is lost. Here NAKs will not
be generated. In general, time-outs are the more common way of detecting a lost frame or ACK
because in connectionless networks, given that packets can arrive out-of-sequence often it is not
prudent to generate a NAK as soon as a frame of higher sequence number than expected arrives.
In the scenario shown in Fig. 3, a cumulative ACK is shown as ACK 3. A cumulative ACK is one
that acknowledges all frames prior to the sequence number carried in the ACK. The number carried in the ACK indicates the next expected packet at the receiver. Go-back-N could be imple-
5
Frames 0-4
are retransmitted
Timeout
ACK 5
ACK 3
5
Frame
4
Frame
3
Frame
2
Frame
1
Frame
0
Frame
4
Frame
3
Frame
2
Frame
1
Frame
0
Frame
ACK 3
A
B
Frames 0-4 are discarded
Figure 3:Go-Back-N when an ACK is lost: cumulative ACKs are used here
mented with an ACK per frame. In this case, frames 0 and 1 would not have had to be
retransmitted if they arrived before the time-out occurred for frame 2. Unfortunately even though
frame 2 arrived, since ACK 3 is lost, all frames from 2 have to be retransmitted.
The sender maintains a window of size W s frames. After frame 0 is sent, transmitter sends
W s – 1 frames. W s is the maximum number of frames that can be outstanding (i.e., unacknowl-
edged). Pipelining effect occurs improving the efficiency of the protocol. Upon receiving a NAK
(negative ACK), or experiencing a time-out, the sender will retransmit. The sender keeps track of
S recent , which lies between S last and ( S last + W s – 1 ) , where S last is the last transmitted and yet
unacknowledged; S recent is the last one sent. The receiver maintains a variable R next , which is
the sequence number of the next expected frame. Typically, this is the number that the receiver
sends in an ACK. Go-Back-N is an example of sliding-window protocol ([1], page 280). The
receive window size for a Go-Back-N version of the sliding-window protocol is only 1 frame. It
6
expects a frame with sequence number R next . This is why it drops all frames whose number does
not match this value.
m
The window size at the sender should be less than 2 if m bits are used for the sequence numm
ber. If W s = 2 , then a problem could arise. If m = 2 bits and the window size is 4, and frames
0, 1, 2, 3 are sent and received properly, but all the ACKs are lost. Then the sender goes back N
and retransmits frame 0. When the receiver receives this frame it is a duplicate, but the receiver
m
does not know this; it thinks it is the next set! Hence the maximum window size is 2 – 1 . For
example, if W s = 3 , then sender sends 0, 1, 2. If all are received properly, but ACK for 0 gets
lost, sender will retransmit 0. Receiver is expecting frame 3 and so it will realize this is a duplicate
and discard and send back an ACK asking for 3. Eventually as the sender receives ACKs for the
duplicates 0, 1, 2, it sent, it will move on to segment 3 and all is well!
Negative ACK: If the receiver knows for sure that it did not get a packet that it should have, it
will send a NAK. Piggybacking ACKs: ACKs are piggybacked on frames sent in the reverse
direction if data flow is bidirectional. This makes the transfer more efficient. Thus the receivers at
both ends maintains R next , while the senders maintain S last and S last + W s – 1 .
Efficiency [1]:
nf
If W s ---- ≥ RTT or equivalently,
R
nf
( nf + na )
W s ---- ≥ 2t prop + --------------------- + t proc (see Fig. 4),
R
R
(13)
data will be sent continuously by the sender. When the first ACK arrives, the sender can start over
from the top of the window. Remember that W s is the maximum number of outstanding frames
(unacknowledged frames) at any instant. If we neglect n a and t proc , then it simplifies to
2Rt prop
W s ≥ ------------------ + 1 .
nf
(14)
Noting that 2Rt prop is the delay-bandwidth product, we see the relation between window size and
this product. In the absence of errors, the efficiency of the Go-Back-N (GBN) scheme in which
the parameters meet (13)
7
1st frame
received
0
tprop
tprop+nf/R
Wth frame
received
Receiver
...
Sender
1st ACK received
0
1
Ws-1
2
2tprop+nf/R+na/R+tproc
RTT (Round-trip time)
Figure 4:Relation between window size and bandwidth-delay product
GBN
η0
no
= 1 – ----nf
(15)
In the presence of errors:
η
GBN
nf – n 0
------------------ 1 – n----0-
GBN

E [ t total ]
nf 
= -------------------- = ( 1 – P f ) ----------------------------------R
1 + ( Ws – 1 ) Pf
(16)
Derivation is as follows:
Let n t be the number of transmissions required to deliver a frame successfully. For each of the
first ( i – 1 ) unsuccessful tries (when n t = i ), W s frames need to be retransmitted. This is
8
because it takes W s t f to receive an ACK for the first frame in that window if W s is sized right as
in (13). This is the same assumption as in Stop-and-Wait where we set t out = t 0 . Here again, the
delay-BW product appears in the form of t out , which is equivalently the time to emit W s frames.
nf
t f = ---R
GBN
E [ t total ]
GBN
E [ t total ]
∞




= t f  1 + Ws ∑ ( i – 1 ) P [ nt = i ] 


i=1


∞




i–1
= tf  1 + Ws ∑ ( i – 1 ) Pf ( 1 – Pf ) 


i=1


(17)
(18)
(19)
Pf 

 1 + ( Ws – 1 ) Pf 
= t f  1 + W s --------------  = t f  ----------------------------------- 
1 – Pf 
1 – Pf



Thus, the effective transmission rate for GBN ARQ is
R eff
 1 – n----0-

n f – n0
( nf – n0 )
nf 
= -------------------- = ( 1 – P f ) --------------------------------------------- = ( 1 – P f ) ------------------------------------------ R
E [ t total ]
tf { 1 + ( Ws – 1 ) Pf }
{ 1 + ( Ws – 1 ) Pf }
(20)
Efficiency is
η
1.3
GBN
nf – n 0
------------------ 1 – n----0-
GBN

E [ t total ]
nf 
= -------------------- = ( 1 – P f ) ----------------------------------R
1 + ( Ws – 1 ) Pf
(21)
Selective Repeat ARQ
If error rates are high, then Go-back-N becomes inefficient. Selective Repeat ARQ is a scheme
in which only the errored frames are retransmitted. This is clearly more efficient. This comes at a
cost of more complex receivers. The receiver now maintains a window W r , unlike in Go-back-N
where the receive window is only big enough to hold one frame. This is the maximum number of
frames that the receiver is willing to receive. Out-of-sequence frames will be stored here. Timers
are maintained on each frame at the sender (which is needed also in Go-Back-N ARQ). When a
9
timer expires, only the errored frame is retransmitted. Can use NAKs if sequenced delivery is
guaranteed. Also piggybacking can be used. The receive window extends from R next to
R next + W r – 1 .
The maximum allowable window size is W s = W r = 2
m–1
, i.e., half the sequence number
space. Let m = 2 , and the window size at the sender and receiver be 3 each (to see what happens
m
if W s = W r = 2 – 1 - same as in GBN). If sender sends 0, 1, 2, and all three frames reach the
receiver successfully but all ACKs are lost. Then the receiver is expecting frames 3, 0, 1. The
sender retransmits 0 when it doesn’t get its ACK. But the receiver thinks it is the next frame 0. So
m
clearly window sizes of 2 – 1 are too large. To see that the maximum allowable size is 2
m–1
,
consider the following. Let the sender send frames 0 to W s – 1 , all of which are received without
error, but the ACK for frame 0 is lost. At the receiver R next = W s and receive window stretches
to R next + W r – 1 = 2 W s – 1 . If ( 2 W s – 1 )
th
frame corresponds to a sequence number of 0, then
when the 0th frame is retransmitted by the sender, the receiver will not know it is a duplicate.
m
Therefore 2 W s – 1 can maximally be 2 – 1 . Or W s is a maximum of 2
m–1
. Example: If
m = 2 , and W s is 2. Then sender sends 0 and 1. If both are received but the ACK for 0 is retrans-
mitted. R next = 2 and R next + W r – 1 = 3 . Therefore when the sender retransmits 0, receiver
knows it is a duplicate, and thus replies with an ACK saying it is expecting frame 2. Sender
advances its window and sends 2 and then 3, and so on. Bottom line: cannot have a sequence
number repeated in the sender buffer and receiver buffer. In other words, packets waiting in the
sender buffer for ACKs should have distinct sequence numbers from the sequence numbers of the
expected packets at the receiver.
Efficiency [1]:
In the absence of errors, it is the maximum possible given headers are needed:
SEL
η0
no
= 1 – ----- (same as in GBN)
nf
In the presence of errors:
10
(22)
η
SEL
no
= ( 1 – P f )  1 – -----

nf 
(23)
Derivation: Since in Selective repeat ARQ, only the failed frame is retransmitted, we do not
need the W s multiplying factor as in (18).
SEL
E [ t total ]
∞



i – 1
= tf  1 + ∑ ( i – 1 ) ( 1 – Pf ) Pf 


i=1


Pf 

SEL
E [ t total ] = t f  1 + -------------- 
1 – Pf 

(24)
(25)
Effective transmission rate is
SEL
R eff
n f – n0
n
- = ( 1 – P f )  1 – ----0- R , and
= ------------------SEL

nf 
E [ t total ]
(26)
n0
= ( 1 – P f )  1 – -----

nf 
(27)
transmission efficiency is
η
SEL
Compare S&W, Go-Back-N and Selective ARQ. The performance of the first two depend on
the delay-bandwidth product. In (6), t out appears, which is the round-trip delay, and in (18), it
appears in the equivalent form of W s t f . Whereas in (24), for Selective ARQ, the round-trip delay
does not appear because even when an error occurs, the sender can keep transmitting new frames.
Hence only t f appears in the term corresponding to retransmissions. Compare the first terms of
these three equations, (6), (18) and (24). In (6), it is t 0 , which is a RTT, but in (18) and (24), it is
just t f , time to emit one frame, which could be a lot smaller. This for the successful transmission.
In GBN, one can keep sending frames, and hence a RTT does not appear in a successful transmission. Same for selective ARQ.
Example from [1], page 308: Frames are 1250 bytes including 25 bytes of overhead and ACK
frames are 25 bytes. Compare the efficiency of S&W and Go-Back-N if link rate is 1Mbps, t 0 is
–4
100ms and bit error rate is 10 . Computing P f using the approximation n f p yields 1! With the
11
exact formulation, P f is 1 – 0.368 . Note here that p is not small enough for this approximation.
Efficiency is low at 8.9% even without errors with S&W (because of large delay-BW product)
and it drops to 3.3% with errors. With GBN, while efficiency is high without errors (at 98%), it
drops dramatically in the presence of errors to 4.9% because the delay-BW product does figure
here. W s is 11 frames to keep the pipe full. With selective ARQ, delay-BW product does not
come in play at all and so even with losses, efficiency stays high. What are the numbers for selective ARQ?
Design problem: Given the worst-case round-trip delay and link rate, can determine W s to
m
keep the pipe full. Now choose the sequence number field size such that W s = 2 – 1 if GBN is
used and 2
m–1
if selective ARQ is used. Should sequence numbers be byte-based or segment-
based? Answer: byte-based allows for variable-length frames; does segment-based imply that all
frames should be equal in length? Can a combination of the segment sequence number and a
length field be used? Choose frame size - optimal size based on increased errors with larger
frames but more efficient use of medium.
2. FLOW CONTROL
2.1
Source of the flow control problem
When the receiver cannot keep with the arriving data rate, we have a flow control problem as
Data source
Transmitter
Data recipient
transmission
link
Receiver
Figure 5:Illustration of flow control problem: if the receiver operates at the same bit
rate as the transmitter, then what is the source of the problem? It the Data
recipient module runs on a slow processor or is hardware clocked at a rate
slower than the transmission link rate but the Data source is executed at the
rate of the transmission link, then the buffer at the receiver will overflow
causing loss. This is the flow control problem.
illustrated in Fig. 5.
12
2.2
Solutions to the flow control problem
If the error control problem solution is Stop-and-Wait, then the flow control problem is also
Stop-and-Wait. In other words, in a Stop-and-Wait system, the receiver should not return the
ACK needed for packet delivery confirmation until the application at the receiver has depleted the
frame from the receive buffer.
If the error control solution is GBN or Selective repeat ARQ, then the flow control solution can
be one of three types: On-Off, Window based, Rate based.
The ON-OFF technique is used by the receiver to let the sender to stop sending or start. The
OFF signal needs to be sent in advance as the buffer approaches capacity. When should the
receiver send the OFF signal? The receiver should have capacity to hold 2 ( R snd – R rcv ) t prop
when it sends the OFF signal. R snd is the rate of the sender and R rcv is the rate at which the
receiver depletes the buffer. See Fig. 6. This scheme is used in HDLC.
Sender
Receiver
B
OFF
Bleft
Bleft=2T prop(Rsnd – Rrcv)
Link rate Rsnd
Figure 6:Illustration of when the OFF signal should be sent
If R snd is higher than R rcv , the rate at which the receiver is depleting its buffer, the OFF signal
should be sent when the space left in the buffer B left = 2 t prop ( R snd – R rcv ) , where t prop is the
one-way propagation delay.
13
An RNR (Receiver Not Ready) signal is sent as an OFF signal. If the ARQ scheme is GBN, the
sender has a window for packets that are transmitted (waiting to see if they need to be retransmitted). For the GBN scheme, the receiver only needs a window of size 1 (i.e., to hold one frame).
But for flow control reasons, it could have a buffer and as the buffer fills up, the receiver can send
an OFF signal as shown in Fig. 6. If ON-OFF scheme is combined with Selective repeat ARQ, the
size of the buffer at the receiver should adhere to the max limit posed by the Selective repeat
scheme, 2
m–1
.
Window based scheme: The receiver sends the size of the window that it can accept. It can
coexist with GBN or selective repeat ARQ, where an ACK frame from the receiver to sender can
carry the receive window size to the sender. The sender then sends a minimum of its sending window size and receive window size. With GBN, remember for ARQ reasons we only need a
receive window of size 1. But if the flow control mechanism is window based, the receive winFC
dow can be some size W r . We use the FC superscript to differentiate this window from W r
FC
used at the receiver for the Selective repeat ARQ scheme. The sender can send min ( W s, W r )
frames and meet the constraints of both the ARQ and FC schemes. When window-based FC is
combined with Selective repeat ARQ, again an ACK can carry the receive window size available
from a flow control perspective.
TCP is an example of a protocol that uses a window-based FC scheme. On the error control
scheme used by TCP, reference [1] on page 303 states that TCP uses a Selective Repeat ARQ
scheme. However, Standard TCP, as implemented in TCP Reno, a common TCP implementation,
cumulative ACKs are used. Typically, cumulative ACKs are used in conjunction with Go-Back-N
ARQ scheme. However, the congestion control schemes of TCP complicates this issue and on
close examination it appears as if only selected segments are retransmitted. If an error is detected
by a retransmission time-out, then the congestion control scheme that kicks in makes it appear
like Selective Repeat. This is because from a congestion control perspective (nothing to do with
EC or FC), it lowers its cwnd to 1 segment. Essentially it retransmits lost packet. When the ACK
arrives for this segment, it will indicate a sequence number of the next expected segment (which
will be a much later segment if all intermediate segments reached the receiver successfully). So it
looks like a selective repeat scheme. If a loss is detected through 3 duplicate ACKs, and fast
14
retransmit/recovery is implemented, then the cwnd is dropped to ssthresh + 3 segments. In this
case, does it send lost segment followed by segments it had already sent before, in which case it is
Go-Back-N, or does it only retransmit lost segment. Reference [2], on page 312 states that only
the missing segment is retransmitted. Also, see the example of Fig. 21.7. After segment 63 is sent
(retransmission), the next segment sent is a new segment with sequence number 8961. Segments
with sequence numbers 6913 through 8705 are not repeated. This is because this example shows
fast retransmit, in which case only one segment is sent. Even without fast retransmit, if segment
63 was sent in response to a time-out, cwnd becomes 1 (in case of time-out); so only one segment
can be sent; if ack received acknowledges intermediate segments, it appears like selective repeat.
Reference [3] motivates the need for selective ACKs (instead of cumulative ACKs only) as
follows: “TCP may experience poor performance when multiple packets are lost from one window of data. With the limited information available from cumulative acknowledgments, a TCP
sender can only learn about a single lost packet per round trip time. An aggressive sender could
choose to retransmit packets early, but such retransmitted segments may have already been successfully received. A Selective Acknowledgment (SACK) mechanism, combined with a selective
repeat retransmission policy, can help to overcome these limitations. The receiving TCP sends
back SACK packets to the sender informing the sender of data that has been received. The sender
can then retransmit only the missing data segments.” In other words, if within a round, multiple
packets are lost, the first one would be detected by three duplicate ACKs, but if a second loss
occurred (which is likely because the routers were congested when this round is sent), detection
will likely be only through a time-out since three other segments may not get through to cause
duplicate ACKs to be generated. This has the effect of cwnd falling to 1 segment and delaying
recovery. Hence the SACK option was proposed. With this option TCP’s error control scheme
becomes truly selective Repeat.
Finally, we consider rate control. The question is whether a rate can be agreed to between the
receiver and the sender. The receiver commits to depleting its buffer at that rate and the sender
commits to only sending at that rate (or could it be lower?). For end-to-end circuits, we think this
is the most suitable flow control mechanism to disallow receivers from arbitrarily cutting off use
of the circuit as it could in a window-based scheme. The circuits would be under-utilized if this
happens. Rate control has not been demonstrated to any good extent on a working network. In the
15
generic implementation of networking software at end hosts it may be hard to implement because
of other tasks executed at these end hosts.
Example: in telephony networks, flow control is rate-based because data is depleted at 64Kbps.
For data networks, rate based control is not easy. If a low rate is selected, buffer overflows can be
avoided with no retransmissions, but then delay will be higher. As rate is increased, some buffer
overflows may occur, but overall throughput is higher.
Retransmissions for three reasons: (i) link errors (ii) buffer overflows at packet switches inside
the network (congestion problem) and (iii) buffer overflows at the receiver (flow control problem). Bertsekas and Gallager and Mischa treat the flow control and congestion problem as one
since both occur because of buffer overflows. But in circuit-switched networks the latter does not
exist on the user plane and hence I prefer keeping these as separate problems.
Cumulative ACKs and Go-back-N: does the use of cumulative ACKs imply that the retransmission scheme is Go-Back-N? The sender could just retransmit the segment indicated in the
cumulative ACK, but not “go-back-N” and keep sending new frames. So it appears that a cumulative ACK could coexist with selective repeat. So why SACK then? See reasoning for TCP above.
References
[1]
[2]
[3]
A. Leon Garcia and I. Widjaja, Communication Networks. McGraw Hill, 2000.
W. R. Stevens, TCP/IP Illustrated Vol. 1, Addison-Wesley, 1997.
M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, “TCP Selective Acknowledgment Options,” IETF RFC 2018,
October 1996.
16