Monday, September 1, 2008

Design Philosophy of the DARPA Internet Protocols

(link to paper)

By outlining the goals of the Internet protocols and explaining how the features of the protocols come from the design goals, this paper gives insight into the historical decisions made in developing IP, TCP, and UDP. Since the major purpose was to connect disparate networks with very different underlying media and protocol guarantees, IP took little functionality as given. Based on secondary purposes, a number of decisions, such as using a "stateless" protocol (for survivability) and layering protocols with stronger features on top of IP.

The paper also goes into some of the goals the protocols did not meet very well, some of which has changed since the paper was written. For example, accountability has become much more robust, with routers etc. having the ability to record detailed usage statistics. Others, however, like engineering issues, remain. Implementing a protocol stack is still quite difficult, requiring more than just following a spec due to performance issues.

As a historical document, the paper is essential because it shows some of the background in the decision-making process for IP, but a more updated version would go into some detail explaining how the state-of-the-art has changed, enhancing some of the goals while making others less important. For example, I think the modern IP implementors do keep some state ("soft state") at intermediate points. In addition, some detail on TCP's problems and solutions, although possibly out of scope, would drive home some of the kinds of things implementors need to be cognizant of.

An additional paper going into TCP motivations and issues would be sufficient to cover that shortcoming.

1 comment:

Randy H. Katz said...

Believe me you are going to have your fill of TCP rationale and papers in a couple of weeks! Nice set of comments on the paper.