9.3 Establishing and Terminating a Connection with TCP
The core of IP was the IP datagram description. Since IP is a datagram-oriented (connectionless) service, there was not much of a need to prepare for cases in which the IP datagram was not delivered. At most, IP can signal this status using ICMP. Signaling with ICMP is only done out of good will in IP. In practice, we often run across cases where signaling with ICMP is restricted because it is not desirable, for example, for security reasons.
TCP uses IP for transferring data over the Internet, even though it establishes a reliable stream-oriented service over this protocol. It must solve the problems of establishing and closing a connection, confirming received data, and re-requesting lost data, and also solve problems with keeping the communication paths passable. The TCP segment description is obviously only one small part of TCP. A larger part of the protocol is the description of TCP segment exchange (handshaking) between both ends...