Comment fonctionne un TCP ?
Résolution de l'adresse :
- Lorsqu'une application client souhaite envoyer des données à une autre application, la première étape consiste à obtenir l'adresse IP du serveur de destination. Ceci est réalisé grâce au protocole de résolution d'adresse (ARP).
Établissement d'une connexion TCP (prise de contact à trois voies) :
- Lors de l'établissement de la connexion, TCP suit un processus d'établissement de liaison à trois voies.
1. Le client envoie un paquet SYN (Synchronize) au serveur. Ce paquet contient le numéro de séquence initial que le client utilisera pour ses segments de données.
2. Le serveur répond avec un paquet SYN-ACK (Synchronize-Acknowledgement). Celui-ci reconnaît le SYN du client et inclut également le numéro de séquence initial du serveur.
3. Le client accuse réception de la réponse du serveur en envoyant un paquet ACK (Acknowledgement).
Transmission et accusé de réception des données :
- Une fois la connexion TCP établie, le client et le serveur peuvent commencer à échanger des données.
- TCP garantit une transmission fiable des données en divisant les données en segments de taille appropriée et en attribuant des numéros de séquence à chaque segment.
- Le récepteur renvoie un paquet d'accusé de réception (ACK) à l'expéditeur pour chaque segment de données reçu. L'expéditeur conserve une mémoire tampon de données non accusées de réception et continue d'envoyer d'autres segments jusqu'à ce qu'ils soient tous reconnus.
- Si un accusé de réception n'est pas reçu dans un délai d'attente spécifié, l'expéditeur retransmet le segment. Ce mécanisme permet de garantir une livraison fiable des données.
Contrôle de flux (protocole de fenêtre coulissante) :
- Pour éviter que l'expéditeur ne surcharge le destinataire, TCP utilise un mécanisme appelé contrôle de flux.
- Il utilise un protocole de fenêtre glissante, qui définit la quantité maximale de données pouvant ne pas être reconnues à un moment donné. Cela évite un débordement de tampon du côté du récepteur.
Contrôle des embouteillages (démarrage lent et évitement des embouteillages) :
- TCP met en œuvre des mécanismes de contrôle de congestion pour adapter son débit de transmission en fonction des ressources réseau disponibles.
1. Démarrage lent :cela empêche l’expéditeur d’introduire brusquement une congestion dans le réseau. Il commence par envoyer une petite quantité de données puis augmente progressivement le débit de transmission tant que les accusés de réception sont reçus.
2. Évitement de la congestion :une fois que l'expéditeur atteint la capacité du réseau, il entre dans la phase d'évitement de la congestion. Dans cette phase, la croissance du débit de transmission est contrôlée pour éviter de surcharger le réseau.
Résiliation de la connexion (prise de contact à quatre voies) :
- Une fois l'échange de données terminé, la connexion TCP prend fin via un processus de prise de contact à quatre voies.
1. Le client envoie un paquet FIN (Finish) au serveur.
2. Le serveur accuse réception du FIN et indique qu'il a plus de données à envoyer avec un paquet FIN-ACK.
3. Le client accuse réception du FIN-ACK du serveur avec un paquet ACK.
4. Le serveur envoie un ACK final au client et les deux extrémités ferment la connexion.
Tout au long de la connexion, TCP garantit une communication fiable et contrôlée entre le client et le serveur en gérant les segments de données, les accusés de réception, le contrôle de flux et le contrôle de la congestion. Cela permet aux applications d'échanger des données de manière efficace et fiable sur le réseau.