Retransmission Timer
Management
Jacobson’s Algorithm
SERR(K + 1) = RTT(K + 1) – SRTT(K)
Three Techniques to calculate retransmission timer (RTO):
lRTT Variance
Estimation
lExponential
RTO Backoff
lKarn’s
Algorithm
RTT Variance
Estimation
(Jacobson’s Algorithm)
(Jacobson’s Algorithm)
3 sources of high variance in RTT
lIf data rate
relative low, then transmission delay will be relatively large, with larger
variance due to variance in packet size
lLoad may
change abruptly due to other sources
lPeer may not
acknowledge segments immediately
SRTT(K + 1) = (1 – g) × SRTT(K) + g × RTT(K + 1)
SERR(K + 1) = RTT(K + 1) – SRTT(K)
SDEV(K + 1) = (1
– h) × SDEV(K) + h ×|SERR(K + 1)|
RTO(K + 1) =
SRTT(K + 1) + f × SDEV(K + 1)
g = 0.125
h = 0.25
f = 2 or f = 4
(most current implementations use f = 4)
Two Other Factors
Jacobson’s algorithm can significantly improve TCP
performance, but:
lWhat RTO to
use for retransmitted segments?
ANSWER: exponential
RTO backoff algorithm
lWhich
round-trip samples to use as input to Jacobson’s algorithm?
ANSWER: Karn’s algorithm
Exponential RTO
Backoff
lIncrease RTO
each time the same segment retransmitted – backoff process
lMultiply RTO
by constant:
RTO = q × RTO
lq = 2 is
called binary exponential backoff
Which Round-trip
Samples?
lIf an ack is
received for retransmitted segment, there are 2 possibilities:
lAck is for first transmission
lAck is for second transmission
lTCP source
cannot distinguish 2 cases
lNo valid way
to calculate RTT:
–From
first transmission to ack, or
–From
second transmission to ack?
–Karn’s Algorithm
lDo not use
measured RTT to update SRTT and SDEV
lCalculate
backoff RTO when a retransmission occurs
lUse backoff
RTO for segments until an ack arrives for a segment that has not been
retransmitted
No comments:
Post a Comment