Paper review of THE DESIGN PHILOSOPHY OF THE DARPA INTERNET PROTOCOLS by David D. Clark
Summary
This paper constructs the reasoning behind why the protocols are designed the way they are by outlining the original objectives of the Internet architecture.
Important Points
- The paper mentions that, since the Internet was designed to operate in a military context[1], the survivability of a connection was given the top priority. That is, the Internet communication must continue despite the loss of intermediate networks or gateways. And the internet would have shaped differently if it was designed in a commercial context, in which case, things like cost effectiveness and accountability would have been a top priority.
- Packet Switching was selected instead of Circuit Switching[2] because the applications that were required to be supported at the time, like remote login, were being served by the packet switching paradigm and the networks that were being interconnected were also packet switching networks. Hence, Packet Switching was accepted as a fundamental component of the Internet architecture.
- The internet architecture is fundamentally based on Datagrams[3]. That means, the state of the packets are not stored in the intermediate routers after they’re forwarded. It is up to the hosts to maintain the state of the connection and maintain reliability and hence the TCP was designed that way. And the need to support multiple transport layer protocols was the reason for the separation of TCP and IP layers and the use of Datagrams allowed this separation. This also allowed the development of UDP, which was created to provide an application-level interface to the basic datagram service of the Internet[4].
Comments
- This paper gives a nice overview of the history of how the protocols evolved. The author of this paper also rightly predicted that internet protocols would evolve to incorporate effective resource usage as the early design decisions were made by focusing more on the survivability of the connections rather than resource usage and cost effectiveness.
- This paper helped me understand that TCP was designed first before UDP. I was under the impression that UDP was developed first. The author also explained why UDP was developed and why reliable communication can sometimes be detrimental (like causing more delay when a real-time communication is needed).
Paper review of End-To-End Arguments in System Design
Authors of the paper: J. H. SALTZER, D. P. REED, and D. D. CLARK
Summary
The end-to-end argument principle[1] says that the application-specific network features should be implemented at the ends (hosts) of the network rather than within the network.
Important Points
- This paper articulates the end-to-end argument principle, which says that application-specific features, like error detection, detection of duplicate messages, sequential ordering of messages, encryption, etc. need to be implemented on the hosts of the network rather than in the gateways.
- The authors also argue that certain features, like error detection, can be implemented by both the hosts running the applications and the gateways that deal with network packets of those applications. And this argument is mainly focused on the performance of the network and not on reliability (as one would assume). The authors give an example of a file transfer application to make their point. If there is no error detection mechanism within the gateways of the network, then, in case of failures, the entire file needs to be transferred from scratch, which is a major performance degradation.
- The paper concludes by saying that this end-to-end argument principle can help better organize the protocol layering of the network. Since this paper was published around 1984, the protocol layers (like TCP/IP) weren’t standardized yet (they were standardized with the publication of RFC 1122 in 1989[2]). Hence, this paper contributed to determining which features (like error detection, encryption etc.) of the communication on the internet need to be placed in which layer of TCP/IP.
Comments
- The ‘Abstract’ and the ‘Introduction’ section of the paper seemed very confusing to me. They didn’t introduce what exactly is the ‘end-to-end argument’. The concept of what the paper is about became much more clear as I read along and referred to Wikipedia about this concept.
- This paper helped me understand how and why the reasoning was made to place certain network communication features on the hosts and certain features on the gateways. Things that seem obvious now, needed a lot of reasoning back then and this paper set a tone for that reasoning during that time.