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:
-
To indicate that this message has also been sent via Usenet news to the indicated
newsgroups.
-
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