Review of TCP

From: Andrew R Putnam (aputnam@cs.washington.edu)
Date: Wed Oct 06 2004 - 02:04:50 PDT

  • Next message: Jonas Lindberg: "A Protocol for Packet Network Intercommunication"

    A Protocol for Packet Network Intercommunication
    Vinton G. Cerf and Robert E. Kahn

    Summary: The prototype TCP/IP design is presented that bears very close resemblance with the modern TCP and IP implementations. The paper is the first to address the need for an inter-network protocol.

    This paper has set the groundwork for a much needed inter-network protocol that allows communication across different networks with potentially different implementations. Previous network communication protocols worked only if all the other nodes on the network shared common values and conventions for a wide variety of variables. The authors could have made a case for setting a standard node configuration for all future networks so that they could interoperate using one of the old protocols. Instead, the authors had the foresight to realize that networks could remain with different implementations, yet still interoperate. Even more importantly, the authors recognized the fact that network technology would grow, and that any inter-network communication protocol must be able to adapt to the changing conditions brought fourth by those changes.

    The most tenuous aspect of the paper was the retransmission scheme. The authors assume that retransmission will be very rare, but it is heavily dependant upon implementation parameters. Retransmitted messages could increase congestion on the network if the retransmission delays are too short. This is especially problematic since determining network performance is very difficult. There is also no throttling mechanism, so if a sending machine sends too many messages too quickly, the receiver will drop many of the messages. The sending host will then retransmit the large batch again, leaving the receiving machine in the same bad position as it was during the first wave of messages.

    While not acknowledged by the authors, the retransmission scheme eliminates the possibility of deadlock on the network. This is a huge benefit, especially since handling deadlock can be very difficult when attempting to guarantee message delivery.

    Whenever you read a paper as influential as this paper is, it seems absurd to comment on the future relevance of the work. However, the fact that this work was published in 1974 yet remains both influential and relatively unchanged in 2004 is incredible. It is astounding to note how closely the protocol design matches the modern implementation. Despite huge changes in the size, complexity, and technology of networks, the same design principles outlined here are still relevant. There are two key reasons why this paper is so successful in remaining relevant. First, the protocol design pushes optional functionality up to the application layer. Applications are responsible for: identifying the receiving application (through ports), flow control (through window size adjustments), allocating appropriate buffer space, and determining the appropriate network addresses. Second, few parameter values were suggested that could possibly constrain the protocol in the future. Timeout duration, acknowledgement duration, window size, and packet size were all left decisions for the implementation.

    Unfortunately, there were a few parameters that the authors specified that should have been either left to the implementers or made larger. The network addressing scheme is certainly a noteworthy example. With only 256 possible networks, the protocol places an artificially low limit on network topology. Similar values were given to sequence numbers and port numbers, though those have not proven to be as problematic as the network addressing value.


  • Next message: Jonas Lindberg: "A Protocol for Packet Network Intercommunication"

    This archive was generated by hypermail 2.1.6 : Wed Oct 06 2004 - 02:04:51 PDT