Usenet News

8.8 USENET NEWS

Excerpt from the book Electronic Mail by Jacob Palme as amended with online revisions.

 Usenet News is a distributed computer conferencing system. Conferences in Usenet News are called newsgroups, and messages are called articles.

The basic principle of Usenet News is that a local server handles most of the functionality. Usenet News standardizes two variants of the NNTP protocols: One for communication between adjacent servers, one for communication between a client and a server. Each server can download as much as it wants of what is available on any of the adjacent servers. Loop control is handled both by a trace list and a list of the Message-IDs of received messages stored by each server, so that the server can reject the same message coming back again. The procedure for distribution of news can be compared to pouring water onto a flat surface; the water flows out in all directions (see the figure below).

"Pouring water" principle of Usenet News distribution.

The figure below shows how new articles are forwarded from server to server in Usenet News. A server tells its adjacent servers which items it offers, the server requests those it has not already got via another route.

This figure shows how new articles are forwarded from server to server in Usenet News.

Information about a user, such as how much this user has seen, is stored in the client. The server need not even know which users are using it. There are many different user-interface softwares for Usenet News, Some of them, of course, do not provide all the available functions.

In addition, Usenet News provides an interesting functionality which restricts communication to only those members of a newsgroup who work in the same organization or live in the same area or country. This functionality, however, is not used very much, and its existence is controversial, since it means that different users will get different views of the same newsgroup.

Usenet news has a cancel command, which can delete messages already sent out. Only the author of the cancelled message and the local newsserver administrator is allowed to cancel a message. Since, however, it is very easy to fake your identity, this command poses an obvious security risk, and the command is known to have been used to cancel messages for political reasons. The command is also used (not quite appropriate) by cancelbots, robots (= automatic programs) which cancel obvious spams by identifying messages with the same content sent to many disparate newsgroups. Usenet news also often has a Supersedes header field, which refers from a new message to an old message. This header usually cancels the old message.

Obsoletes in X.400 has some similarities to Supersedes in Usenet News, and can also be used to get an effect similar to the cancel command, by obsoleting a message with an empty message. However, cancel in Usenet News really deletes messages, while obsoletes is information to the recipient UA, which need not cause deletion. Many UA-s store both the new and the old version, so that the recipient can choose to see the obsoleted version if he so wishes.

The most important restriction of Usenet News is that closed groups are not well supported.

The Usenet News protocol is called network news transfer protocol (NNTP) and is specified in RFC 977 [46]. The standard for the format of Usenet News articles is specified in RFC 1036 [19].

The table below lists the most common NNTP commands:

article [<Message-ID> | <Number>] Return text of designated article. If no parameter is given, the next article is returned. The current article pointer is put at the fetched article.
body [<Message-ID>| <Number>] As article, but only returns body
group <newsgroup> Go to the designated newsgroup
head [<Message-ID> | <Number>] As article, but only returns head
help Lists available commands
ihave <messageID> Informs the server of an available article. The server can then ask for the article or refuse it.
last Sets current article pointer to last message available, return the number and Message-ID.
list [active | newsgroups | distributions | schema] Returns a list of valid newsgroups in the format: group last first
newgroups <yymmdd hhmmss> ["GMT"] [<distributions>] List newgroups created since a certain datetime. "distributions" can be e.g. alt to only get newsgroups in the alt category.
newnews <newsgroups> <yymmdd hhmmss> ["GMT"] [<distributions>] List Message-ID of articles posted to one or more newsgroups after a specific time. newsgroups can be. e.g. net.*.unix to match more than one newsgroups. distributions checks for articles which also has this other newsgroup as recipient.
next Current article pointer is advanced. Returns number and Message-ID of current article.
post Submit a new article from a client.
slave Tells the server that this is not a user client, it is a slave server. (May give priority treatment.)
stat [<Message-ID> | <Number>] As article, but only returns Message-ID. Used to set the current article pointer.

Note that the same protocol, NNTP, is used for communication both between a client and a server, and between two servers, but that sometimes different commands are used. Thus, when a user client submits a new message, the post command is used, but when a server sends a new message to another server, it usually uses ihave to give this information, and the receiving server then requests the message, if it has not already received it from another server.

Most of the message headers are the same in Usenet News and in e-mail, but there are some differences as shown by this table:

Newsgroups: Comma-separated list of newsgroups to which this article belongs. Example of newsgroup format: alt.sex.fetisches.feet. Should never occur in e-mail. Use "Posted-To:" instead!
Subject: Add four characters "Re. " for replies. Do not change subject in replies.
Message-ID: Mandatory in Network News, and must be globally unique.
Path: Path to reach the current system, e.g. abc.foo.net!xyz!localhost. E-mail path format also permitted. Compare to Received: and Return-Path in e-mail.
Reply-To: In news: Where replies to the author should be sent. In e-mail: Ambiguous.
Followup-To: Where replies to newsgroup(s) should be sent.
Expires: Suggested expiration date.
References: Message-ID-s of previous areticles in the same thread. Should always contain first and last article in thread. Compare to e-mail: Usually only immediately preceeding messages..
Control: Not used in e-mail. Communication with servers. Body or subject contains command. Subject begins with "cmsg".
cancel Delete physically a previously sent article.
ihave Host telling another host of available new articles.
sendme Host asking for articles from another host.
newgroup Name of new group, plus optional word moderated.
rmgroup Remove a newsgroup. Requires approved.
sendsys Send the sys file, listing neighbours and newsgroups to be sent to each neighbour.
version Version of software wanted in reply.
checkgroups List of newsgroups and descriptions, used to check if list is correct.
Distribution: Not used in e-mail. Limits distribution to certain geographical/organizational area. Example: Distribution: se, no.
Organization: Of sender.
Keywords: For filtering.
Summary: Brief summary.
Approved: Required for message to moderated group. Added by the moderator, contains his e-mail address. Also required for certain control messages.
Lines: Count of lines of the message body.
Xref: Numbers of this message in other newsgroups. Only for local usage in one server. Example: Xref: swnet.risk:456 swnet.sunet:897

There is a problem with the newsgroups header in a message sent via e-mail. Different systems use this header in two different ways:

  1. To indicate that this message has also been sent via Usenet news to the indicated newsgroups.
  2. To indicate that this is a personal reply, sent only via e-mail, to a message posted on the indicated newsgroups.

Because of this problem, it is better to use the Posted-To header in e-mail to indicate that a message has also been sent to certain newsgroups, and e-mail recipients should ignore any newsgroups heading in an e-mail message.

At the time this was written (September 1996), MIME was not used much in Usenet News. Instead of BASE64, UUENCODING is used in Usenet News to include binary attachments. Also, because of message size restrictions, large attachments are very often split into several messages in Usenet News. This also occurs in e-mail, but is more frequent in Usenet News, since some Usenet News servers try to save space by not accepting articles above a certain size limit. Both MIME and Usenet News have methods of indicating how a client can automatically combine parts into a complete message or attachments. MIME encoding is however used a little in Usenet News, and may become more common in the future.

Site Hosting: Bronco