Post date: Jun 19, 2012 2:25:33 PM
Reviewed Paper:
V. Cerf, and R. Kahn, "A Protocol for Packet Network Intercommunication", IEEE Transactions on Communications, Vol. 22, No. 5, May 1974, pp.637-648
This paper is published in a setting where information can possibly be transmitted only when hosts are within the same network. Several problems arise when messages are communicated over different networks mainly due to the problem of different protocols, each governing a network. This means it is possible that they handle varied maximum packet sizes, different addressing scheme, etc. In hopes of answering the problem of communication over hosts in different network, the authors proposed a protocol that uses the concepts of gateways and transmission control programs to handle `sharing of resources'.
As discussed in the paper, the concept of a gateway, the interface between networks, plays a major role in inter-network communication. A packet, which serves as basic information block in the network, will always pass through a certain gateway if it contains information intended to cross networks. In the gateway, a single packet can possibly be fragmented into several packets, in the case where the maximum capacity of a packet in the subsequent network is less than the total capacity of the packet being transmitted. However, the process of reassembling the packet is no longer being accomplished in the network-level, instead, is done in the receiving host, specifically, when the packet is received by the host's Transmission Control Program (TCP). The TCP serves as an interface between processes in the host and the network. All packets that are intended for a receiving host will passed through its TCP. On the other hand, all messages from processes will be delivered to the TCP first before being sent to the network.
Most of the discussion in the paper is focused on detailing out important header information (both in packets and segments) and procedures that will be carried out by the Transmission Control Program in order to answer problems as in: how can communication between two hosts be initiated and terminated, how can there be assurance of reliable delivery of data with the assumption that the messages are divided into packets and may not arrive in order, or messages may be corrupted or lost. As observed, most of how communication is controlled is done in the hosts and not in the network; they did not put much work on gateways since doing so will result to possibly untolerable duration of delay in transmission. Thus, a gateway seems just like another switch adopting the `store-and-forward' fashion.
The notion of a gateway and its role as fragmenters seem like a requirement for the internetwork communication to work, however, the idea that we can handle problems in the network by, somehow, ignoring the network, i.e. assuming end-to-end control, is an important contribution of the work. I emphasize this because I think, this is what sets it apart from how individual networks address the possibility of corruption, loss and unordered sequence of packets even within an individual network. In my own understanding, previous methods cannot be extended to a larger and more complex network because it relies heavily on the setup of that network, thus resulting to different protocols. The proposed alternative, however, seems to depend too much on TCPs.
Still, this paper plays a major role in the present architecture of the Internet. Most of the procedures discussed in the paper are fundamental. They are still being adapted even in the current protocols and I recall them being taught in my previous computer network class. Of course, we now know that in the current network setup, we need not just a protocol that guarantees delivery of data because there are some applications that do not prioritize lossless communication, instead trades it off for immediacy. Finally, although in this work, the concept of layers as part of the network architecture have not been formalized yet, it already gives us ideas that controlling communication can be done in different `layers': the network, the TCP, and in the process themselves.