TCP utilise un mécanisme appelé Numérotation de Séquence (Sequence Number) pour éviter les duplications de paquets. Chaque paquet TCP est numéroté avec un numéro de séquence unique, qui est incrémenté à chaque envoi de paquet. De plus, chaque paquet est accompagné d’un numéro d’acquittement (acknowledgement number) qui indique le prochain numéro de séquence attendu par le destinataire.
Lorsque le destinataire reçoit un paquet TCP, il vérifie le numéro de séquence pour s’assurer qu’il est bien le prochain attendu. Si le numéro de séquence ne correspond pas, cela signifie que le paquet est en double et il est ignoré.
En cas de perte de paquets, le destinataire envoie un accusé de réception (ACK) avec le dernier numéro de séquence reçu. Le séquenceur du côté émetteur peut ainsi renvoyer les paquets manquants (avec le même numéro de séquence) jusqu’à ce que le destinataire reçoive tous les paquets attendus.
En résumé, TCP empêche les duplications de paquets en utilisant une numérotation de séquence unique pour chaque paquet et en vérifiant les numéros de séquence et d’acquittement lors de la réception.