In several blog posts I mention “this technology is defined in RFC xxxx”, or “see RFC yyyy for the nitty gritty details”.
What is an RFC?
RFC stands for Request for Comments. You might have RFC in various environments now, but traditionally what we mean with RFC on the Internet is a publication that’s written by engineers and computer scientists, aimed at other professionals that work in the Internet sphere.
RFCs have a long history, starting back in 1969 in ARPANET times. The Internet was created in this way, with RFCs being starting point of discussion, or protocol implementation details that people used to implement the actual software.
The name, Request for Comments, encouraged a community discussion around those papers, that originally circulated in printed form.
RFCs today, before being added as official RFCs, go through various steps, that might take many months or years of discussions. This is because an RFC today, once published, cannot be changed any more. The entire process is managed by IETF, the Internet Engineering Task Force.
Revisions to RFC documents need to be published as independent RFCs, and older RFCs are marked as superseded by those newer revisions. Other RFC supplement what older RFC specify.
For example, RFC 1349 from 1992, titled “Type of Service in the Internet Protocol Suite”, was obsoleted by RFC 2474 in 1998, titled “Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers”.
Here are some very famous RFC documents that are very well worth the read. Those are things that will be relevant for a long time (I myself printed some of them back in high school like 20 years ago, and I still have those), and are the foundation of the Internet:
So, in conclusion: RFCs are technical documents that, after going through a rigorous process of discussion and technical verification are added to the list of official protocols recognized by the IETF, and being a standard they can then be implemented by software vendors.
Download my free books, and check out my premium React/Vue/Svelte/Node/Next.js courses!