David ROS: Lecturer at the École nationale supérieure des télécommunications (ENST) in Brittany, France
INTRODUCTION
In IP networks, the Internet Protocol (IP) provides a datagram-based service; in other words, it offers no guarantee that packets will be received correctly. Packets may be lost or duplicated, or they may arrive in a different order from the one in which they were sent. Many applications require orderly and reliable data transfer. The TCP (Transmission Control Protocol) transport protocol plays a fundamental role in ensuring reliable communication services between applications hosted on terminal equipment. Following the "end-to-end principle", the underlying IP network is seen as a black box, with TCP responsible for hiding its imperfections from applications.
Since its conception in the early 1980s, TCP has established itself as the transport protocol of choice for many applications. What's more, it is indisputably the most widely used protocol in IP-based networks, in terms of packets and bytes exchanged.
In the Internet's protocol-layer reference model, TCP is located at Layer 4 (figure 1). It is generally implemented by the operating system, which then offers these transport services to applications via an Application Programming Interface (API), the most popular of which is known as API sockets[1].
TCP offers the applications and protocols that use it a transparent, error-free, bidirectional (full-duplex) channel carrying a sequence of bytes. It's a point-to-point protocol (not suitable for multicast) and end-to-end: only the two ends of the communication, or connection, unwind the protocol (figure 2).
When an application supplies TCP with data for transmission, TCP can split this data into blocks, in order to adapt the size of the resulting packets to the size of the network's Maximum Transfer Unit (MTU). Each of these blocks, preceded by a header, forms the Protocol Data Unit (PDU) of the protocol, called a segment (figure 3).
The transport service offered by TCP is sometimes referred to as a "byte-stream": from its point of view, TCP transports bytes without any structure, because it can cut application data into segments arbitrarily, regardless of their semantics; the delimitation of these bytes is the exclusive responsibility of the application, not TCP.
Reliability is ensured by an acknowledgement mechanism. Each transmitted byte is assigned a sequence number, which is used to acknowledge received data.
TCP operates in connected mode, i.e. before data can be sent, a connection must be established using a signaling procedure.
You do not have access to this resource.
Exclusive to subscribers. 97% yet to be discovered!
This offer includes interactive articles. Their quizzes highlight the key information to remember and validate their acquisition: from reader to player, you can enrich your knowledge.
You can easily identify them thanks to this pictogram: