The TCP/IP Guide - Version 3.0 (Contents) ` 1505 _ © 2001-2005 Charles M. Kozierok. All Rights Reserved.
Note that the push and pull models can be combined in a single session. A client can
connect to a server, use NEWNEWS to check for new messages on that server, and then
IHAVE or CHECK to inform the server about new messages the client wants to send. In
practice, it is more common for only one or the other of the models to be used between a
pair of servers on any given exchange.
In addition to propagating new messages, NNTP is also used to allow servers to commu-
nicate information about new newsgroups that have been created. This is done using the
NEWGROUPS command, which is specified with a date and time like NEWNEWS. In
response, the server sends to the client a list of new newsgroups that have been created
since the specified date/time.
NNTP Client-Server Communication Process: News Posting and Access
The propagation of Usenet articles is indeed a defining function of the Network News
Transfer Protocol (NNTP)—would I lie to you? ☺ However, one critical area where NNTP
differs from its progenitor, SMTP, is that NNTP is used not just for inter-server communi-
cation. It is also the protocol utilized for the initial posting of Usenet messages, and reading
them as well. In fact, the majority of NNTP commands deal with the interaction between
user client machines and NNTP servers, not communication between servers.
An NNTP client is any software program that knows the NNTP protocol and is designed to
provide user access to Usenet. NNTP clients are usually called newsreaders, and provide
two main capabilities to a user: posting (creating) and reading Usenet messages. Usenet
newsreaders exist for virtually all hardware and software platforms, and range greatly in
terms of capabilities, user interface and other characteristics. Most people today use a
Usenet newsreader on a client computer that must make NNTP connections to a separate
NNTP server to read and post news. These programs are analogous to e-mail clients, and
in fact, many e-mail clients also function as NNTP clients.
News Posting
Posting a Usenet message is the first step in the overall Usenet communication process
(although many Usenet articles are actually replies to other articles, so it's a bit of a
“chicken and egg” thing.) Article posting is quite straight-forward with NNTP. The client
establishes a connection to the server and issues the POST command. If the server is
willing to accept new articles it replies with a prompt for the client to send it the article. The
article is then transmitted by the client to the server. Some newsreaders may “batch” new
articles so they can be sent in a single NNTP session rather than submitting them one at a
time.
News Access and Article Reading
Newsreaders also establish an NNTP connection to a server to read Usenet articles. NNTP
provides a large number of commands to support a variety of different article access and
retrieval actions that may be taken by a user. The first step in reading is sometimes to
examine the list of available newsgroups. Using the LIST command, the client requests
from the server a list of the newsgroups available for reading and posting. RFC 977 defined