The Network News Transfer Protocol

If USENET shows us nothing else, it shows us that one really should pay attention in debate class. If not, you're reduced to things such as counting lines in sigs.

— Mike Ellis

Introduction

NNTP, the Network News Transfer Protocol, is the protocol used to send Usenet news messages between servers and from a news server to newsreader clients. It is a fairly simple protocol, similar in many ways to POP3 or SMTP and is of interest in part because of its simplicity (it's a lot easier to write one's own NNTP implementation for fun than it is to write one's own IMAP implementation for fun). These pages attempt to gather information about the protocol that may be useful to implementors.

Standards

The basic NNTP protocol is documented in RFC 3977, published in October of 2006. This RFC was the culmination of years of work by the NNTP working group of the IETF and replaces RFC 977 published in 1986. Supplementing this RFC are RFC 4642 and RFC 8143 on using TLS (SSL) with NNTP, RFC 4643 on NNTP authentication, RFC 4644 on NNTP extensions for streaming feeds, RFC 6048 on NNTP LIST extensions, and RFC 8054 on NNTP compression.

See my NNTP standards index for a hopefully-complete list of NNTP-related standards.

These standards are relatively recent and the NNTP world changes slowly, so many of its new provisions have not yet been widely adopted. Julien ÉLIE has been working on modifying INN to support the new protocols.

For more information on the work of the (now closed) NNTP working group, see my NNTP working group page.

Extension Registry

RFC 3977 established a registry for CAPABILITY labels that should be used for future expansion of the NNTP protocol. To date, only the extensions created by RFC 3977 itself and the other RFCs listed above have been registered. RFC 8054 creates a registry for NNTP compression algorithms. Both can be found on the IANA NNTP Parameters registry page.

To register a new CAPABILITY label, the extension must be published as a standards-track or experimental RFC. Extensions starting with X are reserved for private use. New compression algorithms can be registered by anyone on a first-come, first-served basis.

Possibly also of interest is the SASL mechanism registry, used by the AUTHINFO SASL command standardized in RFC 4643.

NNTP also has two TLS Application-Layer Protocol Negotiation (ALPN) identifiers registered. These are used to negotiate the protocol that a client and server negotiating a TLS connection expect to use, which in turn can protect against certain types of attacks.

Drafts

NNTP drafts that have been abandoned but may still be of interest, as well as the history of the standards and drafts mentioned above, are archived in my draft archive. I may have missed a few, but most of them should be here.

There was also an IETF working group for the Usenet article format. Also collected on that page are pointers to other RFCs and documents of interest to Usenet implementors.

Last spun 2022-02-06 from thread modified 2021-10-16