Comme indiqué précédemment, le protocole TCP est un protocole de transport fiable, ce qui signifie qu'il comprend des processus permettant d'assurer un acheminement fiable des données entre les applications par l'utilisation d'accusés de réception. Le transport TCP revient à envoyer des paquets qui sont suivis de la source à la destination. Si l'expédition de FedEx est divisée en plusieurs colis, un client peut vérifier en ligne l'ordre des livraisons.
Avec le protocole TCP, les trois fonctions de fiabilité de base sont :
- le suivi des segments de données transmis ;
- les accusés de réception des données ;
- la retransmission des données n'ayant pas fait l'objet d'un accusé de réception.
TCP découpe un message en petits morceaux appelés segments. Les segments, numérotés en séquence, sont ensuite passés au processus IP pour être assemblés en paquets. TCP conserve une trace du nombre de segments qui ont été envoyés à un hôte donné à partir d'une application spécifique. Si l'expéditeur ne reçoit pas d'accusé de réception au bout d'un certain temps, il suppose que les segments ont été perdus, et il les retransmet. Seule la partie du message qui a été perdue est renvoyée, pas l'intégralité. Sur l'hôte récepteur, TCP est responsable de la reconstitution des segments de message et de leur transmission à l'application. Les protocoles FTP (File Transfer Protocol et HTTP (Hypertext Transfer Protocol) sont des exemples d'applications qui utilisent le protocole TCP pour assurer l'acheminement des données.
Cliquez sur le bouton Lecture dans la figure pour voir une animation présentant des segments TCP transmis par l'expéditeur au destinataire.
Ces processus assurant la fiabilité augmentent la surcharge des ressources du réseau du fait des opérations d'accusé de réception, de suivi et de retransmission. Pour prendre en charge ces opérations assurant la fiabilité, un nombre plus important de données de contrôle est échangé entre les hôtes qui expédient et ceux qui reçoivent les données. Ces informations de contrôle sont contenues dans un en-tête TCP.