Subject: Re: TCP_NODELAY in telnet (Re: CVS commit: src)
To: None <tech-net@netbsd.org>
From: der Mouse <mouse@Rodents.Montreal.QC.CA>
List: tech-net
Date: 06/19/2003 02:22:52
[quoting Jonathan Stone; second-level quote is David Maxwell]
>> I read it der Mouse's way.
> Then mabye you (and Mouse) SHOULD acquire better reading skills. :-/.

Maybe you SHOULD learn to read what it says rather than what you think
it ought to say, or what you want it to say, or what you're used to
thinking it says, or some such.

> Note that "SHOULD implement the Nagle algorithm", in this context,
> clearly means "SHOULD do the Nagle algorithm".

That's not clear to me, and apparently not clear to David either.  I
prefer to assume that when an RFC author writes "implement", the author
means "implement", and that if the author had meant something else
(such as "implement and use unless specifically disabled") that the
author would have _written_ something else.  As David put it, "If
[standards] meant 'do' they need to say 'do', rather than 'implement'".

> If we default Nagle to disabled, we are in violation of the SHOULD,
> as written

Not if we implement it.

> and as it's been interpreted by the TCP community for the last 14-odd
> years.

You are welcome to push for a clarification, or an update that fixes
the wording to be more in line with your prefered interpretation.
Until then, I will take it as saying what the words mean, rather than
what someone tries to finn me into believing they were meant to mean.

> An implemntation MUST provide a way to not do Nagle.

Right.  And I can't see how "don't turn it on" fails to satisfy that.

> If you really want to ask Bob Braden, go ahead.

No thanks; I see no need to ask for clarification of what I already
find entirely clear.

> But please don't associate the name NetBSD with your request, as that
> may embarrass (some of) the rest of us.

I find this a put-down, and I see it as unwarranted and unworthy of
you.  You also have given no reason to think you're speaking with any
sort of ex cathedra voice; I could reciprocate by asking that you not
associate the name NetBSD with such put-downs, so as not to embarrass
the rest of us....

In a later response to David, you write

> Perry _did_ explicitly open the idea of making TCP_NODELAY the
> default.

Indeed he did.  This does not run counter to anything David said, as
far as I can see; you may have mistaken "Neither Mouse, nor I" in
David's point 3 for "Nobody" - as I did, even, on first reading.  Quite
aside from that, David said "...said NetBSD SHOULD make this change",
and I don't see Perry's floating the idea as saying NetBSD should (or
SHOULD) do it.

> That change would clearly violate the SHOULD in RFC 1122, that hosts
> SHOULD implement the Nagle algorithm in their TCP.

Now you're saying it too - you're using "implement" in a way different
from every other use of the word, apparently meaning something I would
phrase more like "implement and default to using".  DDB is commented
out in the NetBSD/sparc GENERIC config file (ie, it's not enabled by
default).  Would you say that we don't implement ddb on the sparc?

> One step to be a better reader may be to read section 4.2 (say,
> 4.2.2.14 et seq), and observe the consistent use of terminology about
> implementing *algorithms* like SWS.

This is not a failure in my (or David's) reading skills, but a failure
on the part of 1122's author, for wording those portions poorly (if, of
course, your interpretation of the intent is correct).  The first
example I see, 4.2.2.15 (most of 4.2.2.14 is marked DISCUSSION; I
skipped it): `Recent work [on certain problems] has produced a
transmission algorithm combining "slow start" with "congestion
avoidance".  A TCP MUST implement this algorithm.'.  This does not say
"MUST NOT implement other algorithms".  It does not say "MUST default
to using this algorithm".  It doesn't even say "MUST use this or some
other suitable algorithm for avoiding such problems".

Perhaps it meant to.  Perhaps it should, even.  But it doesn't.

And 4.2.3.4 doesn't say Nagle should be on by default, either, however
much you may want to read that into it, or however much you may believe
(perhaps even with cause) that Braden meant it to say that.

/~\ The ASCII				der Mouse
\ / Ribbon Campaign
 X  Against HTML	       mouse@rodents.montreal.qc.ca
/ \ Email!	     7D C8 61 52 5D E7 2D 39  4E F1 31 3E E8 B3 27 4B