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