Tuesday, September 2, 2008

ARPA Protocol Design

This paper essentially describes the reasons for the split between the TCP and IP protocols, as well as for the adoption of the UDP protocol. On top of that, it explains why the internet as it is today uses packets and gateways rather than anything else. The first reason was for survivability. In case some part of the internet were to become non-functional, it was determined that the end users should not experience any issues as long as there remained a physical path between endpoints. Therefore, it was decided that the network should be stateless.

Second, it was important to link together many existing networks which did not share a lot of common features. The only features that were assumed were the ability to use some sort of addressing, and the ability to send packets across the network. The datagram based approach allowed the internet to work across all existing networks. Furthermore, one of the design goals was to allow a variety of different types of communication to occur over the internet. By providing the minimum possible building blocks, the datagram approach is essentially allowing many different protocols to be used, as long as those protocols are implemented by the endpoints of communication.

I think there are two priorities which could have been better addressed during the design of the internet. The first one is listed as the seventh and last priority in the paper: accountability. At the time, it was not considered very important, but it has actually become somewhat important right now to be able to trace cyber criminals back to their origins (consider hackers who write Trojans, or web hosts that contain illegal pornography). While this task has been taken over by ISPs, there is probably still room for improvement in this area.

The second priority is not mentioned at all in the paper: protection against malicious users. For protocols like TCP, it is assumed that during times of high congestion, each end user will use the same algorithm to reduce the amount of data they are sending through the network. Under normal circumstances, this ensures that the network will remain functional for all users. However, it is very possible (since these protocols are implemented on the host machines) for a malicious user to simply transmit as much data as he possibly can during a time of high congestion, thereby increasing his own throughput while punishing those who have implemented the protocol correctly (by decreasing everyone else's throughput). It would have been nice to see at least an in-depth discussion of this.

No comments: