This is a seminal paper in the history of networking and packet switching communication. The paper presents the design concepts and decisions that the authors followed for the definition of the TCP/IP protocol suite.
(i)Three most important things/properties of the protocol suite presented in the paper:
1)Separation of concerns. In the paper the authors distinguish clearly what are the responsibilities that need to be addressed by the TCP and the IP protocol. The main IP’s task is to route packets over the network from the sender to the receiver. It is also task of the IP protocol to enable dynamic interconnection between different network technologies. This interconnection is performed by the gateway that decodes the incoming IP packet’s header and adapts, by using the fragmentation technique, the packet’s size to the size required by the outgoing network technology. The gateway does not reconstruct nor reorder the fragmented packets. This is performed by the receiver using the sequence number contained in the message. The rationale behind this is that otherwise the gateway should have to deal with the buffering of several incoming packets in order to rebuild at each step the original message. This would create several buffering problems as well as it would very hard to implement since the packets can follow different paths to go from the sender to the receiver.
The TCP instead is responsible for multiplexing and demultiplexing of segments among processes. The authors define the concept of association as a state where two processes are ready to communicate over the network. This happens when they exchange with each other the port numbers through which they will communicate. A communication between two processes is identified by the two hosts plus the relative port numbers. The TCP provides a full set of features, such as reassembly and sequencing of the incoming packets, retransmission and duplicate detection, flow control and a correct and complete (reliable) transmission of the message from end to end. All these features are enabled by the TCP through three fields in its header: the sequence number, the window size and the checksum, plus an acknowledgment of each segment received. Probably the most remarkable thing about the TCP is that even if it was designed when only few dozen of computers were connected over a network, it has been able to perfectly serve the needs of an infinite number of applications and to connect billions of people around the globe and lately also in the space. We can definitely claim the the TCP/IP suite was one of, if not the one, the best engineered communication protocol.
2)Layering. TCP/IP are two different protocols that work one on top of the other. Though this cooperation between the two, a reliable and efficient communcation is performed. As said at the previous point, TCP connects two different processes over the network by using the service offered by the IP. Each protocol exposes a well defined interface to the other protocol. The TCP provides to the IP all the information needed by the IP to deliver the segment such as source and destination address. The IP bundle up the segment, or a part of the segment, in a packet and send it through the network to the destination host. During the routing from an end to the other, only the information contained in the IP’s header is used for the routing. The transmission over the network is completely transparent for the TCP. Once the IP has delivered the packet to destination, the TCP comes into play and with its fields and functionalities it is able to reorder and reconstruct the message.
3)Network independence. The TCP/IP protocol is able to provide a reliable packet switching communication over every kind of network technology. The IP can adapt the packet size to different network requirements as well as the TCP can then reconstruct and reorder the packets, verify the correctness of the whole message with the checksum and ask for retransmition of a message in case something went wrong during the transmission.
(ii) Most glaring problem.
The authors define this complete suite of transmission protocol but they do not present any result about the performance. A protocol could potentially offer very fancy and complex features at the cost of a big transmission overhead. Today we perfectly know that it is not the case of the TCP/IP, since it has over proven its quality and efficiency. But at the time they did not know it yet, or at least they do not mention it in the paper.
(i)Future research.
The TCP/IP has been extensively tested and studied for over 35 years and it has proven to be a vey good protocol suite. However, since the new IP, the Ipv6, is coming out, it would be interesting to perform a complete end-to-end argument analysis over the TCP features to see whether by moving down some of them to the IP level we could get a performance benefit.