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:
- 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.
- 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.
- 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.
- 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).
- 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.