Server - exchange mail with neighbors
Client - keep track of what a user has read, displays news, many features
NNTP - protocol between client and server, and between servers
How many groups?
News articles follow RFC 822 (for email) with a few special headers (Newsgroups:, Followup-To:, Distribution:, References:)
News daemon listens on port 119.
Articles are selectively flooded out to the world
best match to goals and constraints
Important commands
LIST list all newsgroups and articlesThe IHAVE / SENDME transaction improves the efficiency of a naive flooding algorithm by flooding only article ids.
NEWGROUPS date time list all newsgroups created after date/time
NEWNEWS grp date time send all articles in group newer than date/time
ARTICLE id send me article with specified id
POST accept this article i am sending you
IHAVE id I have this article, do you want it?
No pipelining is used, so a news transaction is always in the classic request/response form. This can be inefficient if the latency in the channel is large.