RFC793 TCP Retransmission Timeout Calculation Question

G

Guest

RFC 793, Transmission Control Program DARPA Internet Program Protocl Specification September 1981, specifies a retransmisson timeout procedure that measures the elapsed time between the sending of a data octet with a particular sequence number and the receipt of a acknowedgement that covers the sequence number of the sent data octet. This Round Trip Time (RTT) value is then incorporated into a formula to calculate a Smoothed Round Trip Time (SRTT)

SRTT = (ALPHA * SRTT) + (1 - ALPHA) * RTT) where ALPHA = a "smoothing factor" (e.g. .8 to .9

The SRTT value is then used in a formula to calculate a Retransmission Timeout (RTO)

RTO = min [ UBOUND, max [LBOUND, (BETA*SRTT)]] where UBOUND is an upper bound (maximum value) for the timeout and LBOUND is a lower bound (minimum value) for the timeout, and BETA is a "delay variance factor"

I'm trying to determine if under normal circumstances, the default value of MaxDataRetransmissions (5) would result in sufficient delay to allow for OSPF or HSRP events that suddenly occur in an otherwise "normally" operating network (LAN/WAN) infrastructure. In order to do the math, I need to know what Microsoft is using for values of: UBOUND, LBOUND, ALPHA and BETA in their TCP/IP driver implementation for the XP Operating System
 
A

Alan J. McFarlane

LJR@FRBP said:
RTO = min [ UBOUND, max [LBOUND, (BETA*SRTT)]] where UBOUND is an
upper bound (maximum value) for the timeout and LBOUND is a lower
bound (minimum value) for the timeout, and BETA is a "delay variance
factor".
I think it unnecessary to consider those functions, the exponential backoff
function will likely predominate. I think that newer versions of those are
used now too. And I don't know all the values used either.
I'm trying to determine if under normal circumstances, the default
value of MaxDataRetransmissions (5) would result in sufficient delay
to allow for OSPF or HSRP events that suddenly occur in an otherwise
"normally" operating network (LAN/WAN) infrastructure. In order to
do the math, I need to know what Microsoft is using for values of:
UBOUND, LBOUND, ALPHA and BETA in their TCP/IP driver implementation
for the XP Operating System.
When no ACKs are being received, the sender will send retries at exponential
backoff. The default count is five (modify with TcpMaxDataRetransmissions)
and the bounds are 0.3s and 240s. For instance if the calculated RTO is
0.5s the sequence will be
P 0.5s P(r=1) 1s P(r=2) 2s P(r=3) 4s P(r=4) 8s P(r=5) 16s
so total t = 31.5s

I think the min is 0.3s, however the example in tcpip2000.doc has, "Because
the SRTT for this connection was very small, the first retransmission was
sent after about one-half second". For your scenario you may wish also to
measure the time only up to immediately before the final send. The worst
case total t would then be 9.3s. (P 0.3 P1 0.6 P2 1.2 P3 2.4 P4 4.8 P5)

I'd verify this by inspection if I were you--with a long running active
connection across the router disconnect the peer (or the router...) and
sniff the packets to see the pattern. Be aware though of dead gateway
detection and ARP cache flushing.

Let me know what you find.

By the way, any sensible application will be able to cope with minor network

outages, any application that assumes an ideal network is naive.
 
Joined
May 13, 2007
Messages
2
Reaction score
0
hi ...a newbie here...i have a question...

if my alpha is 0.8, RTT time is 3 sec and i want to know SRTT (19)...

do i calculate in this manner??

SRTT (19) = (1-0.8)(3)(19)+(0.8*0.2)(3)(19)+(0.8*0.8*0.2)(3)(18)+(0.8*0.8*0.8*0.2)(3)(17)........ all way to (1) ????

formula i got is

SRTT (K+1) = (1-a)RTT(K+1) + a(1-a)RTT(K) + a^2(1-a)RTT(K-1) + ........a^k(1-a)RTT(1)

can anyone correct me ? Tks
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top