CS268 Reading Review

A Protocol for Packet Network Intercommnication

Vinton G. Cerf and Robert E. Kahn
Review by Feng Zhou
1/27/2003

The problem: In order for internetworking to work, there should be a common protocol and proper transport control mechanisms. Challenges facing the design of these protocols and mechanisms include heterogenity of participating networks, addressing, multiplexing, flow control, congestion control and so on. This paper discussed most of these problems in various depth of detail (with congestion control missing) and proposed the design of an internetworking protocol.

Key points:

  1. The first part clearly motivates the necessity of a common protocol to be used between nodes of an internetwork. Individual network can be different in aspects such as addressing, MTU, packet format, routing and so on. With a common internetworking protocol and added functionalities implemented in an end- to-end fashion, these differencies can be abstracted away from the end-host point-of-view of the network.
  2. The model of internetworking, especially the gateway notion, is important. Gateways are the "glue" that connect all participating networks up into an internetwork. The big design decision here is that the functionality provided by these participating networks and gateways should be minimal, which in turn allows maximal diversity of networks. Gateways do what are really necessary. They translate and forward packets in a best-effort way. They do fragmentation if needed.
  3. The requirements and design of process-to-process communication, which is actually the transport layer, are well discussed. Although in this paper, the transport layer and network layer is considered as a whole, the specific problems of the tranport layer, including multiplexing, retransmission, flow control, are mostly well addressed.
  4. It astonished me when the authors said "256 distinct networks" "seems sufficient for the forseeable future". Relating this to the address deficiency problem of IPv4, design decisions like this should really be based on at least two aspects. One is the "foreseeable future". The other, which is more important, is how hard it would be to change this in the future, i.e. the inertia of the system. If it would be really hard to change, then it may be wise to leave enough leeway for now, even though it could be expensive to do so sometimes.