From: Russ Allbery (rra@stanford.edu)
Date: Wed May 21 2003 - 12:26:22 CDT
Bruce Lilly <blilly@erols.com> writes:
> No, SMTP provides for negotiation of extensions, and the BDAT extension
> command can transport a message that does not end in CRLF via (extended)
> SMTP,
This has been much-discussed in NNTP circles (not as a solution to the
CRLF thing precisely, as that's really mostly unimportant, but as a way of
allowing Content-Type: binary). NNTP has some strangenesses that SMTP
doesn't face, though. SMTP is point to point, while NNTP is one to many,
and articles that are transferred via extensions do strange things to the
rest of the nature of NNTP.
For example, suppose I post a message using a binary extension to POST
that lets me use Content-Type: binary. That message goes into a
newsgroup. Other clients read that newsgroup that don't understand the
binary extensions. They therefore cannot retrieve the article. Do they
get some sort of error when they try? How does that interact with
existing clients?
The article then has to be passed along to the rest of Usenet. How does
the server know what protocol to use to pass it to other sites? Clearly
some sort of flag has to be kept on the article marking it as binary
transit only so that it won't be sent with the wrong commands (which means
that articles are now stored in the spool in essentially two different
formats, depending on how they were posted).
You end up constructing what is, in essence, a parallel Usenet where
articles sent with one protocol can only be resent with the same protocol
and only viewed by clients speaking that protocol, but you still try to
file them all into the same newsgroups. It starts raising the question of
why one is mixing the two types of article in the same newsgroup, since it
socially severs the newsgroup into two separate communities. At which
point, one wonders why you're using Usenet at all when you're building a
whole parallel infrastructure.
These problems aren't insurmountable; they're just different than SMTP
problems. SMTP gets around some of this (but not all) by allowing
recoding, but there are some oddities raised by the one-to-many nature of
NNTP.
-- Russ Allbery (rra@stanford.edu) <http://www.eyrie.org/~eagle/>