Citation: V. Cerf and R. Kahn, "A Protocol for Packet Network Interconnection", IEEE Transactions on Communications, May 1974, pp. 637-641. * Summary The seminal paper describing and justifying the use of IP and TCP in heterogeneous packet-switched network. Previous work on packet-switched networks led to protocols for use only within a single network, and differences between protocols included addressing formats, maximum data size, failure detection and error correction, etc. The concept of a gateway is described as a means for dealing with differences between two networks. The foundations for internet routing and transmission control are described. * Gateways To account for characteristic differences between networks, a piece of hardware known as a gateway can be employed. Gateways are responsible for extracting the standard internetwork information and data from one network's local packet format and storing that information and data in the local format of another network. In doing so, it is possible that the size of the packets are different between the two networks, and the gateway is then responsible for fragmenting the data into multiple packets. * Internetwork Headers Each packet is assumed to contain an internetwork header, composed of the following information: 1) source and destination addresses (each address must be unique among all hosts in all networks) 2) sequence number and byte count - used by destination to reconstruct original data from the packets received 3) flags used to specify control information 4) checksum for end-to-end verification of a packet's contents * Process Level Communication In order to support communication between processes of unbounded but finite length messages, it is necessary to provide a transmission control program on end hosts which is responsible for multiplexing/demultiplexing multiple data streams between multiple processes. The TCP assumes the use of ports in identifying the processes to which a message is sent, and thus the notion of a TCP header is introduced. The TCP header also includes the information necessary for sequencing and window-based flow control.