The Transmission Control Protocol(TCP) is a highly reliable, connection-oriented transport protocol for use in packet-switched networks. The protocol builds on the IP protocol, supports the functions of the transport layer and establishes a secure connection between instances before data transmission.
With the TCP protocol, the data of the higher layers is segmented and sent in individual data packets, which can have a size of up to 65 kB. The TCP protocol is a transport layer protocol. The Internet Protocol (IP) residing on the network layer fragments the TCP data segments into smaller data packets. Each octet of a segment is assigned a sequence number in order to be able to restore the correct sequence on the receiving side.
Functions of the TCP protocol
The main services provided by the TCP protocol in conjunction with the IP protocol for application processes are end-to-end control, connection management, flow control, time control and multiplexing of connections, and error handling.
End-to-end control works with positive acknowledgement( ACK), where all data packets are acknowledged, and those not received are requested and sent again. This mechanism ensures reliable data transmission. Connection management ensures secure connection establishment and termination by means of a three-way handshake. In addition, the connection management ensures that the connection is properly provided during the transmission phase and that the connection is correctly terminated.
Since all transmitted data packets are consecutively numbered and acknowledged in the TCP header, flow control prevents packet loss. Time monitoring bywindowing is used to ensure that transmitted data packets are acknowledged within a specified time period. If no acknowledgement takes place within this period, the data packets are sent again. In order to operate several processes simultaneously via the TCP protocol, several ports are made available for multiplexing. If errors occur, the error mechanism kicks in and requests the faulty data segments from the higher layers again.
The transmission phases of the TCP protocol
A TCP transmission can be divided into three phases: the initialization phase, the user data transmissionphase and the connection termination phase. In the initialization phase, the active or passive connection establishment takes place in which a one-to-one connection is established that is maintained for the entire duration of the data transfer. This phase, which is initiated by a two-way or three-way handshake, is also used to synchronize the communication partners.
In the data transfer phase, which begins after the connection has been established, communication takes place via the established virtual connection. This phase is characterized by the transmission of the data blocks and the acknowledgement of receipt of the sequence numbers by the communication partner. The data transfer phase is monitored by several timers, for example to resend unconfirmed data blocks, to resize the window, to initiate the connection termination or to initiate a new connection setup. The data transfer phase is optimized by flow control and by various algorithms. These algorithms are control mechanisms for the amount of data, the data flow and the network load. Well-known algorithms are the Karn's algorithm and the Nagle algorithm.
The third and last phase, the connection termination, can take place on the one hand after the transmission of all data, on the other hand by unilateral termination of the connection by a higher protocol.
The TCP protocol is published in RFC 793.