[e2e] TCP implementations in various OS's
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
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
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
> is value is just understanding how it currently behaves.
I'm totally with you here, however we must accept that the Internet is
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