Remise en ordre des segments

Quand des services envoient des données à l'aide du protocole TCP, il arrive que les segments parviennent à destination dans le désordre. Pour que le destinataire puisse comprendre le message d'origine, il faut que les données contenues dans ces segments soient réagencées dans leur ordre d'origine. Pour cela, des numéros d'ordre sont affectés à l'en-tête de chaque paquet.

Lors de la configuration de la session, un numéro d'ordre initial, ou ISN, est défini. L'ISN représente la valeur de début des octets de cette session qui est transmise à l'application destinataire. Lors de la transmission des données pendant la session, le numéro d'ordre est incrémenté du nombre d'octets ayant été transmis. Ce suivi des octets de données permet d'identifier chaque segment et d'en accuser réception individuellement. Il est ainsi possible d'identifier les segments manquants.

Les numéros d'ordre des segments assurent la fiabilité en indiquant comment réassembler et réorganiser les segments reçus, comme l'illustre la figure ci-contre.

Le processus TCP récepteur place les données d'un segment dans une mémoire tampon de réception. Les segments sont remis dans l'ordre correct et sont transmis à la couche application une fois qu'ils ont été réassemblés. Tous les segments reçus dont les numéros d'ordre ne sont pas contigus sont conservés en vue d'un traitement ultérieur. Ensuite, ces segments sont traités dans l'ordre quand les segments contenant les octets manquants sont reçus.