Une fois la connexion établie, tous les paquets doivent avoir un ACK défini et correspondre au numéro de séquence des paquets reçus pour un transport / une sécurité fiable. La TVD sans ACK ne sera pas acceptée. Lorsqu'un côté envoie RST, le socket est immédiatement fermé et le côté destinataire le ferme immédiatement après avoir reçu un RST valide. Il n'a pas besoin d'être et ne peut pas être reconnu.
après le protocole TCP
A ---> B Syn = x, Ack = y, len = z, indicateur ACK
B ---> A Syn = y, Ack = x + z, len = o, indicateur ACK
A ---> B Syn = x + z, Ack = y + o, len = p, indicateur ACK
B ---> A Syn = y + o, ACK = x + z + p, len = q, RST, indicateur ACK
B ferme le socket après avoir envoyé le dernier paquet et A ferme le socket après l'avoir reçu.
(ne considère pas la fenêtre TCP ici, ou il pourrait y avoir plus de paquets d'une extrémité avant l'acknoledgement)
ACK Le drapeau, le numéro de l'accusé de réception et la procédure d'accusé de réception sont liés, mais pas la même chose.
Par RFC793
RFC793
Numéro d'accusé de réception: 32 bits
If the ACK control bit is set this field contains the value of the
next sequence number the sender of the segment is expecting to
receive. Once a connection is established this is always sent.
Réinitialiser le traitement
Dans tous les états sauf SYN-SENT, tous les segments de réinitialisation (RST) sont validés en vérifiant leurs champs SEQ. Une réinitialisation est valide si son numéro de séquence est dans la fenêtre. Dans l'état SYN-SENT (un RST reçu en réponse à un SYN initial), le RST est acceptable si le champ ACK acquitte le SYN.
Le destinataire d'un RST le valide d'abord, puis change d'état. Si le récepteur était à l'état LISTEN, il l'ignore. Si le récepteur était à l'état SYN-RECEIVED et avait déjà été à l'état LISTEN, il revient alors à l'état LISTEN, sinon il abandonne la connexion et passe à l'état CLOSED. Si le récepteur était dans un autre état, la connexion est interrompue, elle est conseillée à l'utilisateur et passe à l'état FERMÉ.