Design Philosophy of the DARPA Internet
Review by James Ezick, March, 1998
Design Goals
- Internet Communication must continue despite loss of networks or gateways.
- The Internet must support multiple types of communications service.
- The Internet architecture must accommodate a variety of networks.
- The Internet architecture must permit distributed management of its resources.
- The Internet architecture must be cost effective.
- The Internet architecture must permit host attachment with a low level of effort.
- The resources must be accountable.
Survivability
- If two entities are communicating over the Internet, and some failure causes the
Internet to be temporarily disrupted and reconfigured to reconstitute the service, then
the entities communicating should be able to continue without having to reestablish or
reset the high level state of their conversation.
- At the top of transport, there is only one failure, and it is total partition. The
architecture masks completely any transient failure.
- All state information is stored at the endpoints of communication. Gateways have
no knowledge of the connection generating the packets that they are routing. This
approach is called "fate sharing".
Types of Service
- Different types of service are distinguished by differing requirements for such things
as speed, latency and reliability.
- TCP (Transmission Control Protocol) was the first service conceived of. It is
built on top of IP (Internet Protocol), which is the basis for all services.
- Although TCP was intended to be as versatile as possible, real time digitized speech is
an example of a service for which TCP is not well suited.
- One of the major distinguishing factors between services is in the way that they handle
lost packets (Drop, request retransmission, etc.).
Basics
- The datagram (packet) is the fundamental unit of transfer. Datagrams are routed
independently by gateways which utilize a routing table.
- The network is designed to utilize to the greatest extent possible existing local area
networks.
- The nature of datagrams (having no state information attached to them) has made
accounting and resource management very difficult.
- Since the reliability associated with the delivery of a datagram is not guaranteed, but
"best effort", it was possible it is possible to build out of the datagram a
service that is reliable (be acknowledging and reteansmitting at a higher level), or a
service which traded reliability for the primitive delay characteristics of the underlying
network substrate.
Points of Discussion
- How has the internet benefited from the fact that those wishing to participate on the
network have to make a contribution to the infrastructure (i.e., have a computer)?
- Is the Internet better / more versatile as a result of the basic fault tolerance
requirement - or would it be better if datagrams carried state information with them?