RTT: Round-Trip Time can also be called as round-trip delay. It is to calculate how much time required for sending a packet or signal pulse from one source to a specific destination and comes back to the same specific source. RTT is one of the several factors that affecting latency and the time between the request for data and also the complete return or display of that data. RTT can range between a few milliseconds under some ideal conditions to several seconds between points under adverse conditions.
Estimated RTT plus can be defined as "safety margin". It is the estimated value of RTT that is based on the combination of current RTT and the past RTT.
EstimatedRTT = (1- a)*EstimatedRTT + a*SampleRTT
Large variation in Estimated RTT means larger safety margin. To calculate the DevRTT we need to estimate how much Sample RTT deviates from Estimated RTT i.e.,
DevRTT = (1-b)*DevRTT +b*|SampleRTT-EstimatedRTT|
(typically, b = 0.25)
A premature retransmission timeout occurs if there is no packet or signal loss or if the lost packet or signal can be captured by fast retransmission mechanism. With contrast, over estimation of RTT will lead to late retransmission timeout, in that case, if there is a loss and which cannot be captured by the fast retransmission mechanism. Therefore, it is crucial to have a Retransmission Timeout (RTO) value for TCP performance which is an equilibrium point in balancing between both the above cases.
Note: RTO must be smaller than RTT.
Following are the few algorithms which help in setting the retransmission timeout
Ludwig and Katz propose the Eifel algorithm to eliminate the unnecessary retransmissions that can result from a spurious retransmission timeout.
Gurtov and Ludwig present an enhanced version of the Eifel algorithm and show its performance benefits on paths with a high bandwidth-delay product.
Ekstrand Ludwig proposes a new algorithm for calculating the RTO, named the Peak-Hopper-RTO (PH-RTO), which improves upon the performance of TCP in high loss environments.
RFC 3649 proposes modification of TCP congestion control that adapts the increase strategy and makes it more aggressive for high bandwidth links (i.e. for large window sizes)
In order to set the ACK timer we need to know how large the ACK timeout value should be. It can be too short or too long.
Too short --> premature timeout --> extra retransmission
Too long --> slow reaction to loos --> poor performance
for this we need to have the timer longer than RTT, for this we need to estimate RTT by measuring the time from a segment transmission until the receipt of ACK which is nothing but Sample RTT. For this we need to ignore retransmissions and measure only one segment's RTT at a time. By doing so, the sample RTT will vary and we can compute an average RTT based on the several recent RTT samples.
Timeout = Estimated RTT + 4*DevRTT
The probability of premature retransmission timeout is
P1 = P[RTO < RTT]
- ((1-p) W + (1-(1-p) W) (1-3/W) )
˜ P[RTO < RTT] (1-3/W 2)
˜ P[RTO < RTT]
The throughput degradation due to this event is:
L1 = WlogW.
During the slow start ph.ase we can observe, TCP sends at most W packets. We obtain that the expected output degradation result to premature retransmission timeout is:
P1.L1 = P[RTO<RTT].WlogW.
According to the given data maximum RTT is 291, the probability of premature timeout will occur on Segment 17.