[e2e] TCP implementations in various OS's
sthaug at nethelp.no
Wed May 12 13:00:38 PDT 2010
> > 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
> > window scaling.
> To do this with normal TCP, you need to know the reason for the 35 ms RTT.
Please assume that I am aware of this. The 35 ms I am talking about is
mostly due to speed of light in optical fiber. 35 ms RTT corresponds
to a fiber path length of 3000+ km, and a few ms of forwarding delay,
which is perfectly reasonable in my country (Norway).
> That's what my criticism is all about. In order to achieve reasonable
> fairness, either _all_ competing users use window scaling - or none.
Here again we have different goals. For my *core* network links, one
of my primary goals is to ensure sufficient capacity. In a normal
situation there is *no* congestion (throw bandwidth at the problem) -
and as far as I can see fairness doesn't enter the picture at all.
For my *customer* network links, the customer is paying for a certain
capacity. How the customer shares the capacity between different flows
is none of my business. Fairness is none of my concerns here either.
However, I *do* care about the customer having the possibility of using
the capacity he's paying for - and that means the customer needs to be
told about window scaling if expects decent TCP throughput on high RTT
> Up to now, I'm convinced that in the latter case hardly any user will
> benefit from window scaling in the majority of scenarios ;-)
Clearly your "majority of scenarios" are different from mine.
Steinar Haug, Nethelp consulting, sthaug at nethelp.no
More information about the end2end-interest