Subject: [NNTP] draft-ietf-nntpext-base-25 comments

From: David Magda <[email-masked]>
Date: Mon, 14 Mar 2005 16:09:13 -0500

Hello,

I haven't really been following the process too closely, so if any of
my suggestions / comments are old-hat please say so. Also, I'm not
subscribed so a CC would be appreciated.

2.  Notation
    [...]
   A "keyword" MUST consist only of US-ASCII letters, digits, and the
   characters dot (".") and dash ("-"), and must begin with a letter.

Should this be:

    ... and MUST begin with a letter.

3.1  Commands and Responses
    [...]
    NNTP operates over any reliable data stream 8-bit-wide
    channel. Initially, the server host starts the NNTP service by
    listening on a TCP port.  When a client host wishes to make use
    of the service, it MUST establish a TCP connection with the
    server host by connecting to that host on the same port on which
    the server is listening.

The first sentence says "any ... channel", but then there's a MUST
for using TCP. A bit contradictory? This would explicitly disallowd
using Unix sockets or pipes for connections. 

7.3.1  Usage
      NEWGROUPS date time [GMT]
    [...]
    The token "GMT" specifies that the date and time are given in
    Coordinated Universal Time [TF.686-1]; if it is omitted then the
    date and time are specified in the server's local timezone

Just curious: if you mean UTC, why not have "UTC". I know it's
probably for backwards compatibility, but perhaps a SHOULD for "UTC"
and MAY accept "GMT"?

-- 
David Magda <dmagda at ee.ryerson.ca>, http://www.magda.ca/
Because the innovator has for enemies all those who have done well under
the old conditions, and lukewarm defenders in those who may do well 
under the new. -- Niccolo Machiavelli, _The Prince_, Chapter VI

---

From: Russ Allbery <[email-masked]>
Date: Mon, 14 Mar 2005 14:36:29 -0800

>     ... and MUST begin with a letter.

I think so.

> using Unix sockets or pipes for connections. 

Yeah, that doesn't seem quite right to me either, as people certainly do
use NNTP over something other than TCP.  There's nothing inherent to NNTP
that requires a TCP channel.  I'd prefer to just drop the standards
language from that sentence and instead just say:

    NNTP operates over any reliable data stream 8-bit-wide channel.  This
    document assumes use of TCP, but other bidirectional stream protocols
    can and sometimes are used.

    Initially, the server host starts the NNTP service by listening on a
    TCP port.  When a client host wishes to make use of the service, it
    establishes a TCP connection with the server host by connecting to
    that host on the same port on which the server is listening.

or something along those lines.

> Just curious: if you mean UTC, why not have "UTC". I know it's probably
> for backwards compatibility, but perhaps a SHOULD for "UTC" and MAY
> accept "GMT"?

This was discussed a fair bit previously.  The problem with switching to
UTC is that in essence we would be declaring all existing clients
noncompliant with the standard for solely pedantic reasons, and in
practice there are so many servers that only understand GMT that clients
couldn't switch anyway.  To properly do a migration, we'd need to add a
capability flag saying which one to use, and it's overkill for a point of
minor technical accuracy.

-- 
Russ Allbery ([email-masked])             <http://www.eyrie.org/~eagle/>

---

From: David Magda <[email-masked]>
Date: Mon, 14 Mar 2005 19:55:45 -0500

On Mon, Mar 14, 2005 at 02:36:29PM -0800, Russ Allbery wrote:
[...]
> I'd prefer to just drop the standards language from that sentence
> and instead just say:
> 

Perhaps a closer mix between the previous statement and what you have
above would be:

      The channel that NNTP traverses MUST be a reliable two-way
      datastream that is 8-bit clean.

This gives some flexibility but ensures the channel can handle
NNTP. Also a small typo: "This document assumes the use of TCP ..."
                                               ^^^^^

>     Initially, the server host starts the NNTP service by listening
>     on a TCP port.  When a client host wishes to make use of the
>     service, it establishes a TCP connection with the server host
>     by connecting to that host on the same port on which the server
>     is listening.
> 

Agreed.

> This was discussed a fair bit previously.  The problem with
> switching to UTC is that in essence we would be declaring all
> existing clients noncompliant with the standard for solely pedantic

I figured it was something like that. My only response would be that
it's the server that is doing the accepting, any server that
advertises "VERSION 2" in the capabilities will implement the updated
NNTP protocol so should be able to handle the "UTC".

If an updated newsreader sends CAPABILITIES and gets an error (or at
least does not get "VERSION 2") then it should know to send "GMT".

Overall though I agree with you that this is mostly being pedantic
and a bikeshed topic.

---

From: Russ Allbery <[email-masked]>
Date: Mon, 14 Mar 2005 16:58:28 -0800

David Magda <[email-masked]> writes:

> it's the server that is doing the accepting, any server that advertises
> "VERSION 2" in the capabilities will implement the updated NNTP protocol
> so should be able to handle the "UTC".

> least does not get "VERSION 2") then it should know to send "GMT".

This is true.  The previous conclusion was reached before we decided on
the VERSION 2 stuff (which was added in the last round of discussion
following the previous Last Call).  So we could in theory fix it now,
however...

> Overall though I agree with you that this is mostly being pedantic and a
> bikeshed topic.

...I'm inclined to still leave it alone for this reason, unless people
really feel strongly about tackling it.

---

From: "Clive D.W. Feather" <[email-masked]>
Date: Tue, 15 Mar 2005 08:47:16 +0000

>     ... and MUST begin with a letter.

Fixed, thanks.

> using Unix sockets or pipes for connections. 

I should have spotted that before. This text changed to:

    NNTP operates over any reliable bidirectional 8-bit-wide data stream
    channel.  When the connection is established, the NNTP server host
    MUST send a greeting.  The client host and server host then exchange
    commands and responses (respectively) until the connection is closed
    or aborted.  If the connection used is TCP, then the server host
    starts the NNTP service by listening on a TCP port.  When a client
    host wishes to make use of the service, it MUST establish a TCP
    connection with the server host by connecting to that host on the
    same port on which the server is listening.

All references to TCP audited; in most cases, "TCP connection" has been
changed to "connection".

> probably for backwards compatibility, but perhaps a SHOULD for "UTC"

Backwards compatibility. If we're going to change it at all, it should
become a MUST for both. But I really don't see the benefit in changing it;
clients need to use "GMT" with old servers, and new servers will still
accept it, so who's going to use "UTC"? Even if you hook this on
CAPABILITIES, it's *still* overkill for the sake of it.

And in any case, UTC isn't necessarily correct. I'd rather the text said:

    ... are given in a timezone approximately equal to Universal Time
    or Coordinated Universal Time [TF.686-1];

Very few computers actually follow UTC properly. Many approximate to UT by
an approach such as UTS (adjusting the length of the "second") in the
neighbourhood of a leap second or by ad-hoc adjustment.

-- 
Clive D.W. Feather  | Work:  <[email-masked]>   | Tel:    +44 20 8495 6138
Internet Expert     | Home:  <[email-masked]>  | Fax:    +44 870 051 9937
Demon Internet      | WWW: http://www.davros.org | Mobile: +44 7973 377646
Thus plc            |                            |