Side_1_360

(Dana P.) #1

Karn’s algorithm, a feasible approach is not to
update RTTon segments that have been re-trans-
mitted, but instead double the retransmission
timer until the segments get through the first
time.


As mentioned above, TCP uses a retransmission
timer to ensure data delivery upon missing ACK
messages. The duration of this timer is referred
to as the retransmission timeout (RTO). A basic
algorithm for computing the RTOis described in
[RFC2988]. A TCP sender maintains two state
variables, smoothed round-trip time (SRTT)and
round-trip time variation (RTTVAR). A clock
granularity of Gis assumed. Then, the following
five rules are to be obeyed:


i) Until a round-trim time (RTT) measurement
has been made RTOshould be set to a value
between (2.5 + G) seconds and 3 seconds.


ii) When the first RTTmeasurement, say R, has
been made: SRTT= R, RTTVAR= R/2,
RTO= SRTT+ max(G, 4 ⋅RTTVAR).


iii) When a subsequent RTTmeasurement,
sayS, has been made: RTTVAR= (1 – b) ⋅
RTTVAR+ b⋅|SRTT– S|, SRTT= (1 – a) ⋅
SRTT+ a⋅S(in the given sequence), where
a= 1/8, and b= 1/4. Then RTO= SRTT+
max(G, 4 ⋅RTTVAR).


iv) Whenever RTOis computed, if a value less
than 1 second is obtained, RTOshould be
rounded up to 1 second.


v) A maximum value of at least 60 seconds
may be assigned to RTO.


Furthermore it is stated that Karn’s algorithm
has to be used when taking RTTsamples, mean-
ing that retransmitted segments must not be con-
sidered unless the timestamp option of TCP is
applied. At least one RTTmeasurement per RTT
has to be taken (unless Karn’s algorithm pro-
hibits it).


When the retransmission timer expires, the earli-
est TCP segment not acknowledged is retrans-
mitted and RTO= RTO⋅2. A maximum limit
may be used, as stated above. For some TCP
implementations, SRTTand RTVVARmay be
cleared when a segment is retransmitted several
times (and RTOhas been doubled several times).
Then, when a proper RTTestimate is found these
variables are initialised again according to ii)
above.


Another timer is the persistence timer. This is
used to avoid deadlocks that can occur when the
window size is set to 0. After receiving this win-
dow size, the sender initialises the persistence


timer. If this timer expires, a probe packet is sent
to the receiver, who replies with the window
size. If the size is still zero, the persistence timer
is set again.

The keep alive timeris sometimes used when a
connection is idle for a long time. This timer is
used to check if the other side is still there. If a
reply is not received from the other side, the
connection is released.

The last timer present in several TCP implemen-
tations is used during connection release to make
sure that all packets belonging to a connection
have arrived (or been lost).

5.5 TCP Friendly Rate Control

In a best-effort IP-based network, supporting
streaming services may ask for particular con-
cerns. Such a concern is to limit the variation in
the throughput. A protocol variant to address this
is presented in [ID_tfrc], called TCP Friendly
Rate Control (TFRC). A drawback of having
smoother throughput is that changes in available
bandwidth are responded to more slowly. Hence,
TFRC uses a throughput equation when calculat-
ing the sending rate also considering the loss
ratio and round-trip time as for ordinary TCP.
The equation for calculating the throughput, X,
as given in [ID_tfrc] is:

where

sis the packet size in bytes (some streaming
applications have fixed packet sizes, otherwise
an average measure might be applied);

Ris the round-trip time in seconds;

pis the loss ratio;

Tis the TCP retransmission timeout value in
seconds.

A further simplification is suggested by setting
T= 4R(or T= max(4R, 1 second)). An argument
for the equation given is that it should give fairly
similar values to when the TCP rate calculation
function is applied. Basically, the transfer rate is
doubled or halved when an acknowledgement is
received or missed, respectively. However, mod-
ifiers are used to limit the rate variations as
described in [ID_tfrc].

5.6 High-capacity Links and TCP

A commonly referred quantity when discussing
performance is the bandwidth-delay product.
It is obtained by multiplying the bandwidth by

X=

s
R⋅^23 p+T⋅ 3 ⋅^28 p⋅p⋅( 1 + 32 p^2 )
Free download pdf