RFC 1263 (rfc1263) - Page 2 of 19
TCP Extensions Considered Harmful
Alternative Format: Original Text Document
RFC 1263 TCP Extensions Considered Harmful October 1991 2. Creation vs. Extension vs. Evolution 2.1. Protocol Creation Protocol creation involves the design, implementation, standardization, and distribution of an entirely new protocol. In this context, there are two basic reasons for creating a new protocol. The first is to replace an old protocol that is so outdated that it can no longer be effectively extended to perform its original function. The second is to add a new protocol because users are making demands upon the original protocol that were not envisioned by the designer and cannot be efficiently handled in terms of the original protocol. For example, TCP was designed as a reliable byte-stream protocol but is commonly used as both a reliable record- stream protocol and a reliable request-reply protocol due to the lack of such protocols in the Internet protocol suite. The performance demands placed upon a byte-stream protocol in the new Internet environment makes it difficult to extend TCP to meet these new application demands. The advantage of creating a new protocol is the ability to start with a clean sheet of paper when attempting to solve a complex network problem. The designer, free from the constraints of an existing protocol, can take maximum advantage of modern network research in the basic algorithms needed to solve the problem. Even more importantly, the implementor is free to steal from a large number of existing academic protocols that have been developed over the years. In some cases, if truly new functionality is desired, creating a new protocol is the only viable approach. The most obvious disadvantage of this approach is the high cost of standardizing and distributing an entirely new protocol. Second, there is the issue of making the new protocol reliable. Since new protocols have not undergone years of network stress testing, they often contain bugs which require backward compatible fixes, and hence, the designer is back where he or she started. A third disadvantage of introducing new protocols is that they generally have new interfaces which require significant effort on the part of the Internet community to use. This alone is often enough to kill a new protocol. Finally, there is a subtle problem introduced by the very freedom provided by this approach. Specifically, being able to introduce a new protocol often results in protocols that go far beyond the basic needs of the situation. New protocols resemble Senate appropriations bills; they tend to accumulate many amendments that have nothing to do with the original problem. A good example of this phenomena is the attempt to standardize VMTP [1] as the Internet RPC protocol. While O'Malley & Peterson



