NNTP and Usenet News

Usenet as a distributed bulletin board. Lack of central control, management Original implementation with UUCP and phone network

Entities

News server, News client | NNTP | TCP | ...

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

Organization

News group hierarchy: comp, sci, news, rec, misc, soc, talk, alt

How many groups?

News articles follow RFC 822 (for email) with a few special headers (Newsgroups:, Followup-To:, Distribution:, References:)

Server

Articles stored locally for some period of time, then expired and removed.

News daemon listens on port 119.

Articles are selectively flooded out to the world

best match to goals and constraints

NNTP

RFC 997

Important commands

LIST    list all newsgroups and articles
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?
The IHAVE / SENDME transaction improves the efficiency of a naive flooding algorithm by flooding only article ids.

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.