Subject: Re: TCP_NODELAY in telnet (Re: CVS commit: src)
To: William Allen Simpson <wsimpson@greendragon.com>
From: David Maxwell <david@crlf.net>
List: tech-net
Date: 06/18/2003 17:43:50
On Tue, Jun 17, 2003 at 09:36:08AM -0400, William Allen Simpson wrote:
> der Mouse wrote:
> >             A TCP SHOULD implement the Nagle Algorithm [TCP:9] to
> >             coalesce short segments.  However, there MUST be a way for
> >             an application to disable the Nagle algorithm on an
> >             individual connection.
> > 
> > Implementing it and defaulting it to off follows both the MUST and the
> > SHOULD here, as far as I can see.  (Whether it's a good thing is a
> > completely different question.)
> > 
> > Unless your "clearly sets the onus [to default it on]" comes from
> > somewhere else, in which case I'd be interested to hear where.
> > 
> Hey Mouse, you've been around nearly as long as I, but I'm not reading 
> it the same as you....
> 
> The MUST is to "disable".  Therefore, the default has to be "enable".  
> (There's no other way to enable.)  Modus Tollens.

I read it der Mouse's way.

"MUST be a way for an application to disable" is valid if the default
configuration is off, in which case the 'way' is "no extra action
required".

Furthermore, as Mouse said, if you don't implement Nagle, you're only
failing a SHOULD. 

In contradiction 

(1) If Nagle MUST be on by default -> (2) Nagle MUST be implemented.
Nagle merely SHOULD be implemented (from quote), contradicting 2. 
Since 1 requires 2, and 2 is false, it follows that 1 is false.

Also, it doesn't say you MUST provide a way to turn it on.

-- 
David Maxwell, david@vex.net|david@maxwell.net --> Unless you have a solution
when you tell them things like that, most people collapse into a gibbering, 
unthinking mass.  This is the same reason why you probably don't tell your 
boss about everything you read on BugTraq!    - Signal 11