[e2e] TCP implementations in various OS's

Detlef Bosau detlef.bosau at web.de
Wed May 12 02:30:10 PDT 2010

Lachlan Andrew wrote:
> On 12 May 2010 02:33, Detlef Bosau <detlef.bosau at web.de> wrote:
>> I'm curious why some people are interested in a big variety of TCP
>> implementations and parameter settings.
>> Wouldn't it improve compatibility and interoperability if we choose
>> algorithms and parameters according to the recommendations given in the RFC?
> Greetings Detlef,
> If the RFCs were perfect and everyone used the recommended parameters,
> then that would give the best system, and be a "Nash equilibrium".
> However, if many people already use non-recommended parameters, then
> compatibility isn't necessarily maximised by used the recommended
> values.

Correct. However, the compatibility is neither maximised by he use of 
arbitrarily chosen parameters.

I think, this reflects the typical CS guy's attitude to standardization. 
Drastically spoken, CS guys believe in applied chaos theory while e.g. 
civil engineers take standards for divine commandments.

(We all know the fortune cooky concerning programmers, woodpeckers and 

> The RFCs' SHOULDs are typically not MUSTs for a reason.  It is

SHOULD is equivalent for "MUST by divine commandmend", with the only 
exception that in some extremely rare circumstances (Jesus returns, 
Jesus II is born by a male virgin, the Pope becames lutheran....) there 
may be some excuses to violate the recommendation.

There must be extremely compelling reasons to violate a SHOULD.

Personally, I'm convinced that any engineering discipline (and CS _is_ 
an engineering discipline) requires strict standards, otherwise it 
simply wouldn't work.

One anecdote about a former president of the federal republic of Germany 
was about an electric razor, which was a gift to our president by the US 
ambassador - and which broke the first time it was used, simply because 
our president missed to adjust the power supply. (We used 220 V / 50 Hz 
AC that time, the US used 110 V / 60 Hz in the sixties?)

So, when a German president grows a beard, it may be a consequence of a 
lack of standardization.

> interesting to know which options people choose for many reasons:
> 1. so that we can "optimise for the common case".

That's always a good idea for a general purpose protocol.

> 2. many people say "we can't turn on feature X because it breaks
> middle boxes",

Which generally should be used with great care. Most of all, it is up to 
the middlebox not to break the protocol and it is not up to the protocol 
to leave alone the middlebox.

>  and it is interesting to know which systems actually
> work despite having feature X turned on.

O.k., it is always interesting why people live without brain %-) (Claims 
that those do appear on a quite regular basis ;-))

I totally agree with you in a lab.

I totally disagree in the field.

Although I well know that the deployment of the Internet was achieved by 
quite some "experiments in the field". However, the requirement is 
stated quite frequently that CS should become an "aduld science" some 
day and that CS guys should behave like grown up engineers who serve the 
customer and the field and not like toddlers in a play ground.

> 3. If an option must be supported by both ends, the current rate of
> deployment affects the incremental benefit to one user of turning it
> on.

Absolutely. And this holds particularly true for the window scaling 
parameter which was part of the original question. (And the subject of a 
somewhat strange discussion I once had with a colleague....)

And although I expect M$ to furiously contradict here, I think window 
scaling should be discouraged for terrestrial TCP sessions. The case 
where 65536 bytes are not sufficient here is extremely rare  - in all 
other cases the one guy sitting in Berkeley maintaining a TCP session to 
a node in Hamburg will eventually exploit the queue memory of 
intermediate nodes - and will cause severe grief for all competing users.

> Also, not everyone studying the Internet is trying to design it; there

However, those who use the Internet should not suffer from those who 
study it.

> is value is just understanding how it currently behaves.

I'm totally with you here, however we must accept that the Internet is 
actually used.
By customers and users, some of whom even spend money on it.

Those days were the Internet was constituted by about 40 nodes situated 
at some locations in the US are gone. And they will not come back.


Detlef Bosau            Galileistraße 30        70565 Stuttgart
phone: +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