TCP signifie Transmission Control Protocol, et il s'agit d'un protocole orienté connexion. Le protocole TCP est très utilisé lorsque l'on utilise des protocoles IP, c'est pour cela que l'on parle aussi de TCP/IP.
TCP est un protocole de la couche transport (4) du modèle OSI. Il est responsable de la fiabilité de la transmission des données, c'est-à-dire qu'il garantit que les données envoyées par un appareil sont bien reçues par l'appareil de destination.
C'est un peu comme si vous envoyiez un colis par la poste, et que vous vouliez être sûr que le colis arrive à bon port avec un accusé de réception.
Avec le protocole TCP, avant que des données soient échangées entre les deux hôtes, l'hôte source va créer une session de connexion avec l'hôte distant afin de le prévenir qu'il va recevoir des données. Pour cela, un premier échange aura lieu entre les deux hôtes.
Une fois que la connexion est établie, l'échange de données peut commencer. Pendant cet échange de données, les paquets (correspondants aux données) sont envoyés dans l'ordre, et le protocole TCP va s'assurer que tous les paquets sont bien transmis. Si ce n'est pas le cas, il est capable de renvoyer les paquets manquants.
Cette connexion sera maintenue jusqu'à ce qu'elle soit fermée, ce qui signifie qu'elle sera active à minima jusqu'à la fin de l'échange de données entre les deux hôtes. Elle peut être maintenue afin d'être prête dès que les deux hôtes auront besoin de communiquer ensemble.
TCP est également capable de contrôler la congestion du réseau sur lequel les paquets sont échangés. Un algorithme de contrôle de congestion est utilisé et en cas de surcharge du réseau, le flux TCP sera adapté en conséquence.
Les unités de transmission de base, sur lesquelles repose le protocole, sont des segments.
Pour établir une connexion TCP, celle-ci doit toujours être identifiée par deux points (client et serveur) clairement définis. Le rôle du client et le rôle du serveur n’ont aucune importance. L’important est que le protocole TCP dispose pour chacun de ces points, d’une paire ordonnée comprenant une adresse IP et un port.
Pour établir une connexion TCP valide, les deux points impliqués doivent disposer d’une adresse IP univoque (IPv4 ou IPv6) et du port souhaité, déclaré et validé pour la transmission de données.
Le déroulement de la procédure de connexion via le protocole TCP est le suivant :
Les deux partenaires de communication peuvent désactiver une connexion TCP établie. La déconnexion unilatérale est également possible. Cette dernière est considérée comme une connexion semi-fermée : même lorsqu’un abonné a désactivé sa connexion, l’autre partie peut encore lui transmettre des données.
Les différentes étapes de la déconnexion bilatérale (initiée ici par le client pour plus de simplicité) sont les suivantes :