Thread (45 messages) flat view 45 messages, 8 authors, 2011-05-31

Re: [PATCH] tcp: Implement a two-level initial RTO as per draft RFC 2988bis-02.

From: Hagen Paul Pfeifer <hidden>
Date: 2011-05-19 08:02:11
Also in: lkml

On Thu, 19 May 2011 08:52:10 +0200, Alexander Zimmermann wrote:


quoted
#define TCP_RTO_MAX     ((unsigned)(120*HZ))
quoted
#define TCP_RTO_MIN     ((unsigned)(HZ/5))
quoted
quoted
So we're talking about a [200ms ; 120s] range no matter what.
Why is 200ms a valid lower bound for initRTO? I'm aware of
measurements that 1s is save for Internet, but I don't know of any
studies that 200ms is save... 


TCP_RTO_MAX and TCP_RTO_MIN is the lower/upper bound for the RTO in

general, not for the initial RTO. RFC 2988 specify a lower bound of 1

second but all operating system choose a lower one because at the time

where RFC 2988 was written the clock granularity was not that accurate. The

minimum RTO for FreeBSD is even 30ms! Furthermore, analysis had

demonstrated that a minimum RTO of 1 second badly breaks throughput in

environments faster then 33kB with minor packet loss rate (e.g. 1%).



So yes, it CAN be wise to choose other lower/upper bounds. But keep in

mind that we should NOT artificial limit ourself. I can image data center

scenarios where a initial RTO of <1 match perfectly.



Hagen
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help