1.1 Motivation

1.1 Motivation

Computer communication systems are playing an increasingly important
role in military, government, and civilian environments. This
document focuses its attention primarily on military computer
communication requirements, especially robustness in the presence of
communication unreliability and availability in the presence of
congestion, but many of these problems are found in the civilian and
government sector as well.

As strategic and tactical computer communication networks are
developed and deployed, it is essential to provide means of
interconnecting them and to provide standard interprocess
communication protocols which can support a broad range of
applications. In anticipation of the need for such standards, the
Deputy Undersecretary of Defense for Research and Engineering has
declared the Transmission Control Protocol (TCP) described herein to
be a basis for DoD-wide inter-process communication protocol
standardization.

TCP is a connection-oriented, end-to-end reliable protocol designed to
fit into a layered hierarchy of protocols which support multi-network
applications. The TCP provides for reliable inter-process
communication between pairs of processes in host computers attached to
distinct but interconnected computer communication networks. Very few
assumptions are made as to the reliability of the communication
protocols below the TCP layer. TCP assumes it can obtain a simple,
potentially unreliable datagram service from the lower level
protocols. In principle, the TCP should be able to operate above a
wide spectrum of communication systems ranging from hard-wired
connections to packet-switched or circuit-switched networks.
TCP is based on concepts first described by Cerf and Kahn in [1]. The
TCP fits into a layered protocol architecture just above a basic
Internet Protocol [2] which provides a way for the TCP to send and
receive variable-length segments of information enclosed in internet
datagram "envelopes". The internet datagram provides a means for
addressing source and destination TCPs in different networks. The
internet protocol also deals with any fragmentation or reassembly of
the TCP segments required to achieve transport and delivery through
multiple networks and interconnecting gateways. The internet protocol
also carries information on the precedence, security classification
and compartmentation of the TCP segments, so this information can be
communicated end-to-end across multiple networks.

Much of this document is written in the context of TCP implementations
which are co-resident with higher level protocols in the host
computer. Some computer systems will be connected to networks via
front-end computers which house the TCP and internet protocol layers,
as well as network specific software. The TCP specification describes
an interface to the higher level protocols which appears to be
implementable even for the front-end case, as long as a suitable
host-to-front end protocol is implemented.