Not logged in. Login

Interoperability, Robustness and Security

Robustness Principle

The IETF standards document defining the Internet Transmission Control Protocol (RFC 793) contains the following statement of the robustness principle.

Be conservative in what you do, be liberal in what you accept from others.

This is sometimes known as Postel's Law after the editor of the RFC, Jon Postel.

The goal is to improve the interoperability of systems by ensuring that implementations take a conservative view of generating output and a liberal view of accepting input.

  • Generate only what is strictly permitted by the standard and is therefore likely to be accepted by all interoperating implementations.
  • Be liberal in accepting input from interoperating systems, in the event that those systems may generate some data that varies from the standard.
    • The other systems may have differing interpretations of the standard.
    • The other systems may have incorrect implementations.
    • The other systems may be based on differing versions of the standard.

Future-Proofing

The robustness principle is particularly useful for allowing protocols to evolve: adding new features without breaking interoperability with older deployed implementations.

Security Flaws

Eric Allman discusses limitations of the Robustness Principle. The Robustness Principle Reconsidered

Updated Thu Sept. 01 2016, 10:37 by cameron.