TCP (which stands for Transmission Control Protocol) is one of the main transport layer protocols of the TCP / IP model. It makes it possible, at the application level, to manage the data coming from (or going to) the lower layer of the model (ie the IP protocol). When the data is supplied to the IP protocol, the latter encapsulates them in IP datagrams, by setting the protocol field to 6 (To know that the upstream protocol is TCP ...). TCP is a connection oriented protocol, that is, it allows two communicating machines to control the state of the transmission. The main characteristics of the TCP protocol are as follows:
TCP allows datagrams coming from the IP protocol to be put back in order.
TCP allows to check the flow of data in order to avoid saturation of the network.
TCP allows to format the data in segments of variable length in order to "deliver" them to the IP protocol.
TCP makes it possible to multiplex data, that is to say to simultaneously circulate information from different sources (applications for example) on the same line.
TCP finally allows the initialization and the end of a communication in a courteous manner.
TCP allows two-way transmission of information. Computer systems that communicate over TCP can thus send and receive data simultaneously, such as during a telephone call. The basic transmission units, on which the protocol is based, are segments (packets) which may contain control information in addition to their payload and are limited to a volume of 1500 bytes. Enabling and disabling end-to-end connections, as well as data transmission itself, is supported by the TCP software in the network protocol stack of the operating system being used.
TCP software is controlled by various network applications, such as web browsers or servers, through specific interfaces. To do this, each connection must always be identified by two clearly defined points (client and server). The role of the client and the role of the server are irrelevant. The important thing is that the TCP software has, for each of these points, an ordered pair comprising an IP address and a port (also called "Couple" or "Socket").