Subject: Re: TCP_NODELAY in telnet (Re: CVS commit: src)
To: David Maxwell <david@crlf.net>
From: Jonathan Stone <jonathan@DSG.Stanford.EDU>
List: tech-net
Date: 06/18/2003 16:07:15
David,

We seem to be talking past each other.

Perry _did_ explicitly open the idea of making TCP_NODELAY the
default. That change would clearly violate the SHOULD in RFC 1122,
that hosts SHOULD implement the Nagle algorithm in their TCP.  To
which I responded that Perry's suggestion would violate a SHOULD in
RFC-1122. (which I mistyped as 1123, but Mouse figured that out).
Perry has been silent  about the idea since then.

Mouse's reading, OTOH, is that implementing Nagle, and having Nagle
default to off, follows both the SHOULD and the MUST. To me, that
reading is completely off the wall: it fails a `reasonable man' test.
(Bob Braden would have to be an *un*reasonable man, to have intended
Mouse's reading, given the surrounding text of RFC-1122.)

again, if you *really* want to run that reading by Bob Braden, go ahead.
But as I see that reading as more-or-less implicitly suggesting
that Bob, himself, is not reasonable, then (just personally) I'd
prefer that you not associate NetBSD with such a request.


You and Mouse apparently see it very differently. Perhaps that
reflects how the Internet and the IETF (and the audience reading RFCs)
have changed over the last 15-odd years. Which doesn't' say anything
about your intelligence, so much as your background. If you are
genuinely reading RFC-1122 so that a TCP which implements Nagle where
Nagle is off by default is in conformance with RFC-1122, then (saying
nothing about your intelligence per se) you're not particularly
well-versed at reading RFCs.

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.  Also note how particular
algorithms show up in the checklists. how Don't just quote part of
section 4.2.3.4 out of context, and impose a hostile reading of
`algorithm' and `implement' onto the isolated text.  that's just not
how RFCs were written or intended to be read.