04. Protocol Drift — When Two Sides Disagree About the Contract
The Origins of Liberal Acceptance
In 1989, J. Postel and his colleagues codified a foundational design principle for internet communication within the document formally known as RFC 1122. This guideline, which advised developers to be conservative in what they do but liberal in what they accept, aimed to ensure maximum interoperability between disparate systems. The IETF architects believed that by accepting slightly malformed input, services could survive minor errors without collapsing, thereby keeping the network functional and resilient. However, this design choice quietly shifted the actual maintenance burden onto the side that attempted to remain strictly correct according to the original, intended specification. Because the receiver silently papered over errors, the sender was never alerted that their output had drifted away from the agreed-upon standards of the protocol. Over time, the original contract between these two systems effectively vanished, leaving behind a fragile, undocumented reality that neither party fully owned or understood.
The Cost of Silent Tolerance
By 2023, the Internet Architecture Board, led by authors including Martin Thomson and T. Pauly, published RFC 9413 to formally address the consequences of this drift. The board observed that the long-standing habit of tolerating non-conforming input had inadvertently rewarded senders who failed to adhere to the established, rigorous protocol specifications. This silent tolerance entrenched deep ambiguity and created significant security flaws, as systems began to rely on unpredictable behaviors rather than the formal, explicit interface contract. The conservative sender, who continued to follow the rules, was forced to pay the maintenance cost indefinitely to accommodate the erratic behavior of the liberal peer. The IAB concluded that active protocol maintenance is far superior to the passive acceptance of malformed input, as it forces both sides to remain aligned. Contract testing, such as the use of consumer-driven contracts like Pact, serves as the modern enforcement mechanism that replaces vague assumptions with executable, verifiable interface expectations.
The Shift in Standards
The dispute regarding the validity of liberal acceptance is now resolved rather than contested, as the Internet Architecture Board has officially adopted the critique. The industry has moved away from the 1989 philosophy of RFC 1122 and toward the 2023 mandate of RFC 9413 for maintaining robust, predictable network protocols. The IETF has essentially reversed its stance, prioritizing explicit enforcement and clear contract adherence over the previous preference for loose, forgiving communication channels.
Example: A handshake that ignores a broken finger eventually leads to a grip that cannot hold any weight at all.
Verdict. Systems fail when the interface contract is allowed to decay through the silent, unverified acceptance of inputs that deviate from the agreed specifications.
Overturned if: A large-scale empirical study demonstrates that protocols enforcing strict input validation suffer higher rates of catastrophic failure than those using liberal acceptance policies.
Sources. 1989 · J. Postel et al., "Requirements for Internet Hosts — Communication Layers" — IETF Datatracker · 2023 · Internet Architecture Board / M. Thomson, T. Pauly, "Maintaining Robust Protocols" — RFC Editor
บทถัดไป · 5 / 1205. Timeouts and Retries — The Cure That Causes the Disease