Monday, September 1, 2008

Summary of 'The Design Philosophy of the DARPA Internet Protocols' by David Clark

This paper describes the history of constructing the basics of the Internet. At the core of the internet lies a minimal sef of basic principles allowing for flexibility in services that the internet supports. These principles include transmission of data in a datagram form, reliable but not perfect delivery and an addressing system. Clark describes several goals of the internet as it was developed in the order of importance, since it's primary purpose was for the military. Top three goals described in detail are: the internet continues to perform despite local failures in gateways, supports all types of services and works on variety of networks.

The success of the Internet was due to the simplicity of its core model. To support all services the TCP was not enough, since in some application sequential guaranteed delivery was less important than fast, real time delivery for example. Thus, the TCP and IP separation happened. The TCP provided the secure, in order packet delivery, while the IP provided basic building blocks for all other services that could be used on the internet. It was up to the designer of the service to architect it using those building blocks, datagram at its core."The hope was that multiple types of service could be constructed out of the basic datagram building block using algorithms within the host and the gateway."

The datagram provided several good features such as it eliminated the need for connection state within the intermediate switching nodes, so that the internet could be reconstructed after a failure without concern for the state, and it represented the minimum network service assumption. However, with the datagram being a separate entity arose the problem of accounting for resources used by the internet, which was one of the goals when architecting the network. Since the datagram has no idea of "flow" it is hard to account for the resources being used by a network connection. Clark suggests that there must be another building block besides the datagram that encompasses this "flow" concept, to address this problem.

This paper provided great historic context on architecting the early stages of the Internet. It provided a very good summary of the goals and the means and the results and illustrated the reason for this architecture's success. It also showed a few weaknesses in the design such as the routing problem and the resource accounting problem that was not solved by the original TCP/IP implementation.


Randy H. Katz said...

Any thoughts on the known problems of the network as we experience it today, such as the security flaws (e.g., assumption that all entities are cooperative) and some of the performance issues (e.g., surging p2p traffic limiting the performance of other flows that are well-behaved)?

Katya Gonina said...

Having the system be this "open" where any user can create a service using the existing building blocks of the IP and not providing any security functionality certainly leaves some room for malicious activity in the system described in the paper. For example the datagrams could be intercepted by another service or its path be modified and read by someone the transaction was not intended for. Encryption is definitely the first that needed to be implemented on both ends of the communication flow in the application or the transport layer. And certainly the fact that users can implement their own services could effect the performance of the network if a user created a service with much traffic decreasing the throughput for other applications using the network. Despite the wish to limit the layers' complexity, some regulations on the traffic size of the service must be implemented to regulate the network congestion.