2026-06-06
RFC: RFC 7414
Published: February 2015
Authors: M. Duke, R. Braden, W. Eddy, E. Blanton, A. Zimmermann
Ask an engineer "what RFC defines TCP?" and they'll answer RFC 793. They will be technically correct and practically wrong. The TCP your kernel actually speaks is defined by dozens of RFCs accumulated over four decades, and RFC 793 alone will not let you implement an interoperable stack. RFC 7414 exists because the IETF finally admitted this was a problem — it is a curated map of the TCP specification universe.
The problem it solves. By 2006, when the original roadmap (RFC 4614) appeared, a new implementer faced a brutal archaeology problem: which RFCs were still binding? Which were superseded? Which were experimental dead ends versus de-facto standards everyone shipped? The TCP corpus had grown organically — congestion control, SACK, window scaling, timestamps, ECN, fast retransmit, PAWS, Nagle, delayed ACKs — each in its own document, with cross-references and partial supersessions. RFC 7414 categorizes every relevant document into Core Functionality, Strongly Encouraged Enhancements, Experimental Extensions, Historic, and Support Documents.
What it actually contains. The "core" list is the surprise. To claim TCP compliance you need at minimum:
The "strongly encouraged" list — things every real stack implements — includes RFC 7323 (window scaling and timestamps, without which gigabit links collapse), RFC 2018 (selective acknowledgment), RFC 3168 (ECN), and RFC 5961 (blind in-window attack mitigations added after researchers demonstrated reset injection against BGP sessions).
Key design decision: a living index, not a rewrite. The IETF could have produced "TCP, Consolidated" — one giant RFC superseding everything. They deliberately did not. The reason is operational: rewriting risks subtle semantic drift in a protocol where billions of endpoints already interoperate, and the original documents capture why decisions were made. A roadmap preserves the institutional memory while making the corpus navigable. (Note: a true consolidation finally arrived as RFC 9293 in 2022, but RFC 7414's framing of the ecosystem still matters.)
Why it matters today. When you debug a weird TCP behavior — a stalled connection on a high-BDP link, a slow recovery after a loss burst, a SYN flood mitigation kicking in — you are almost never debugging RFC 793. You are debugging the interaction of half a dozen later RFCs that the roadmap names explicitly. Modern work like BBR, TCP Fast Open (RFC 7413), and RACK-TLP (RFC 8985) all sit on top of this stack and assume you know which layer of the onion you are touching.
Historical curiosity. The roadmap also includes a graveyard. RFC 1106 ("TCP Big Window and NAK Options"), RFC 1644 (T/TCP, killed by a security flaw), and RFC 2861 (congestion window validation, later replaced) sit in the Historic section as reminders that even well-intentioned TCP extensions can be deprecated. It is one of the few RFCs that documents what the protocol family has stopped being.
