Internet Protocols · Cluster

Protocol Design

Extensibility, versioning, and ossification.

  1. 01 Type-Length-Value Framing and the Extension Contract Why a self-describing field is the precondition for every extension mechanism, where length fields count from, and what TLV framing cannot express. foundational · Jun 23, 2022
  2. 02 Critical Bits and Unknown-Field Handling How protocols distinguish a field that may be ignored from one that must be understood, and why the default for unknown fields decides whether a protocol can change. foundational · Jul 6, 2026
  3. 03 Version Fields, Feature Detection, and Downgrade Semantics Why a version number in the header is a weak signal, how peers actually establish a common dialect, and what a negotiated downgrade exposes to an attacker. foundational · Sep 26, 2024
  4. 04 Reserved Values and the Practice of Keeping Extension Points Alive How unallocated code points, GREASE values, and deliberate noise keep implementations honest about skipping unknown fields, and what that costs on the wire. intermediate · Aug 4, 2025
  5. 05 Registry Allocation Policy and the Cost of a Code Point How IANA registries decide who gets a number, why allocation policy is a protocol design decision, and how scarce identifier spaces shape what can be built. intermediate · Nov 25, 2025
  6. 06 Middlebox Ossification and Frozen Invariants How on-path devices that parse protocol fields freeze a design, why visible invariants become dependencies, and the strategies that keep extension points usable. intermediate · May 30, 2024
  7. 07 Tolerant Parsing and Its Limits What the robustness principle actually licenses, where lenient receivers create security and interoperability problems, and how specifications narrow the tolerance they once encouraged. intermediate · Jun 29, 2025
  8. 08 Negotiation Round Trips and What They Cost How capability discovery is paid for in latency, why the cheapest negotiation is one that reuses state, and where a saved round trip becomes a security problem. advanced · Feb 13, 2024
  9. 09 Optimistic Extension Use and the Cost of Unconfirmed Capability What it means to use a feature before the peer has agreed to it, how the fallback path is designed, and why unconfirmed state is the hardest part to get right. advanced · Jun 30, 2023
  10. 10 Retiring a Protocol Version Without a Flag Day Why old versions persist after they are known to be weak, how deprecation is staged across senders and receivers, and what actually forces a deployment off a protocol. advanced · Dec 22, 2024