Robustness Principle

From Wikipedia, the free encyclopedia

The Internet Engineering Task Force maintains a numbered series of requests for comments (RFCs) that define the protocols that direct the Internet. In the 1981 RFC that defines the Transmission Control Protocol, RFC 793, American computer scientist Jon Postel set forth a robustness principle (known otherwise as Postel's law) imperative:

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

The principle suggests that Internet software developers carefully write software that adheres closely to extant RFCs but accept and embrace input from others that is not wholly consistent with those RFCs.

A subsequent RFC, RFC 3117, suggests that Postel's principle be followed only loosely, lest errors or less-than-desirable implementations should be propagated generally:

Counter-intuitively, Postel's robustness principle ("be conservative in what you send, liberal in what you accept") often leads to deployment problems. Why? When a new implementation is initially fielded, it is likely that it will encounter only a subset of existing implementations. If those implementations follow the robustness principle, then errors in the new implementation will likely go undetected. The new implementation then sees some, but not widespread deployment. This process repeats for several new implementations. Eventually, the not-quite-correct implementations run into other implementations that are less liberal than the initial set of implementations. The reader should be able to figure out what happens next.

[edit] External links