RFC
What is an RFC?
RFC stands for Request for Comments. RFCs are a series of technical and organizational documents about the Internet, starting in 1969 with RFC 1 ("Host Software" by Steve Crocker). They are published by the RFC Editor under the auspices of the Internet Society (ISOC) and the Internet Engineering Task Force (IETF).
Despite the name, most RFCs are not requests for comment — they are definitive specifications. The name reflects their humble origin as informal memoranda in the early ARPANET research community.
The RFC Editor
The RFC Editor is the publisher of RFCs. It maintains the master repository of all RFCs, publishes new ones, and is responsible for the overall quality and consistency of the series. The RFC Editor website at rfc-editor.org allows anyone to search for and download RFCs free of charge.
Types of RFCs
RFCs are classified into several streams and sub-series:
Standards Track
The Standards Track documents describe Internet standards. A document progresses through three maturity levels:
- Proposed Standard — The first step on the standards track. The specification is stable and well-understood, but has limited operational experience.
- Draft Standard — (largely deprecated in favor of going directly to Internet Standard) — Indicated significant implementation experience.
- Internet Standard (STD) — The highest maturity level. The specification is mature, widely implemented, and well-understood.
Best Current Practice (BCP)
BCP documents describe the best current thinking on operational procedures and administrative matters. They do not define protocols but capture community consensus on how things should be done.
Informational
Informational RFCs provide information of general interest to the Internet community. They are not standards and carry no requirement for implementation.
Experimental
Experimental RFCs describe work that is considered experimental. They are not on the standards track.
Historic
Historic RFCs describe protocols or practices that are no longer recommended. They are kept in the archive for historical reference.
Maturity Levels
The phrase "on the standards track" means the document is intended to eventually become an Internet Standard. The current standards track has two active levels: Proposed Standard and Internet Standard. Documents that have achieved Internet Standard status are also published in the STD sub-series (e.g., STD 13 is the DNS specification, spanning RFC 1034 and RFC 1035).
Joke RFCs
The RFC series has a tradition of publishing humorous documents, typically on April 1st. Some well-known examples:
- RFC 1149 (1990) — "A Standard for the Transmission of IP Datagrams on Avian Carriers" — Specifies how to carry IP packets on pigeons. Remarkably, this was actually tested in Norway in 2001.
- RFC 2324 (1998) — "Hyper Text Coffee Pot Control Protocol (HTCPCP/1.0)" — A protocol for controlling coffee pots. It introduced HTTP status code 418 ("I'm a teapot"), which has since appeared in real web frameworks.
- RFC 3514 (2003) — "The Security Flag in the IPv4 Header" — Proposes a "evil bit" that malicious packets should set so firewalls can easily identify them.
These joke RFCs are real documents in the RFC series, assigned real RFC numbers, and are freely available from the RFC Editor.