[e2e] TCP implementations in various OS's

Detlef Bosau detlef.bosau at web.de
Wed May 12 04:17:12 PDT 2010

On 05/12/2010 12:55 PM, sthaug at nethelp.no wrote:
> Why on earth do you say "simply misbehaved in the vast majority of cases"?
> If I have a TCP connection with 35 ms RTT, this connection will be limited
> to 15 Mbps unless I do window scaling.

What's the problem with your RTT? The RTT is absolutely meaningless in 
this context.

The one and only significant question is whether the fair share of the 
path capacity for your session is greater than 65536 bytes.

> Also, *your* goal may be to keep queues small. That is not necessarily
> the goal of all operators in all situations.

Probably you want to read the SIGCOMM 2004 paper by Guido Appenzeller 
some years ago and the basic works by John Nagle on this matter.

The problem with some sessions using window scaling while others do not 
is that some sessions may in fact utilize all the memory which is put 
into intermediate nodes - be it even Gigabytes - while those without 
window scaling are restricted to 65536 bytes. This way, the window 
scaling flows largely outpeform the others while there is absolutely no 
advantage for the  overall throughput in the network at all. If every 
flow would use window scaling in long fat networks, the windows most 
likely would converge to reasonable sizes.

Please keep in mind that the central idea of slinding window is to fully 
utilize the _link_ capacity and not to support a memory chip vendor's 
marketing department.

With sufficient queueing memory, you can even grow a 1 meter Ethernet 
link to a link capacity of 5000 Terabytes.

I only don't see any valid reason for doing so.

> Steinar Haug, Nethelp consulting, sthaug at nethelp.no

Detlef Bosau             Galileistraße 30                70565 Stuttgart
Tel.: +49 711 5208031    mobile: +49 172 6819937    skype:  detlef.bosau
ICQ: 566129673           detlef.bosau at web.de  http://www.detlef-bosau.de

More information about the end2end-interest mailing list