[e2e] TCP implementations in various OS's
sthaug at nethelp.no
Wed May 12 08:11:34 PDT 2010
> > 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.
We clearly have different goals. I work for a service provider. If I
have a customer who wants to transmit more than 15 Mbps between end
points with a 35 ms RTT, one of my goals is to make it *possible* for
the customer to do this (assuming the customer has sufficient access
capacity at both ends). To do this with normal TCP, the customer needs
> > 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.
I read this several years ago - but thanks for the reminder. I consider
this paper highly relevant for our backbone links. It is less relevant
for customer access links with only one or a few active flows. Thus I
stand by my words "not necessarily the goal of all operators in all
> 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.
Real life networks tend to have a range of RTTs and capacities. We need
to accomodate this range. If vendors supplied TCP implementations which
always performed well with window scaling turned on, I would be happy
with that. Unfortunately, I don't believe we're there today...
> 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.
Here we agree.
Steinar Haug, Nethelp consulting, sthaug at nethelp.no
More information about the end2end-interest