CS268 Reading Review

The Design Philosophy of the DARPA Internet Protocols

David D. Clark
Review by Feng Zhou
1/22/2003

The problem: As Internet protocols become widely-used, the reasonings behind the designs of protocols remains unpublished. This paper from the architect of Internet explains these reasonings behind the protocol designs and insights into further improvements.

Key points:

  1. The best thing I like about the paper is its all about reasons, reasons of correct and wrong, general or not so general decisions. The discussion really helps us to think about alternative designs under different assumption from the original Internet project.
  2. The fundamentals goal and properties of the Internet are: interconnection instead of a unified multi-media network, packet switching and store-n-forward with gateways. Interconnection is chosen because it allows utilization of existing networks and distributed administration. Packet switching is chosen to support the killer-app at that time - remote login and use existing networks.
  3. I especially like the point that detailed goals are listed in decreased- importance order, with survivability being the top goal. This reflects the requirements for the Internet project in the military context. End-host or "fate-sharing" approach to reliability is a useful concept that has a number of ramifications. The benefits are increased survivability, less restriction for the underlying networks and better scalability. The downside includes more complex end-host implementation, more vunerable to misbehaved end hosts and more over head at gateways. However, it is still a very good decision based on the trade-offs.
  4. The reasoning of why splitting TCP/IP and their relations are concrete. It is basically about allowing a variety of different services while easing the building of most of them (with TCP).
  5. The proposal of the "soft state" approach is great. Maintaining state that is periodically updated by owner is a good trade-off between performance and fault-tolerance, scalability in a lot of network/distributed systems.