Pourquoi la poignée de main à trois voies de TCP percuter le numéro de séquence quand Acking?
Question
Pourquoi la poignée de main à trois voies TCP de percuter le numéro de séquence lorsque Acking au cours de la première poignée de main? Comment est-ce mieux que de laisser le numéro d'acquittement égal au numéro de séquence?
La connexion est établie avec
Client sends SYN,A
Server responds with SYN-ACK,A+1,B
Client confirms with ACK,B+1
Comment est-ce mieux que
Client sends SYN,A
Server responds with SYN-ACK,A,B
Client confirms with ACK,B
La solution
En effet, le champ ACK
signifie quand le drapeau ACK
est défini:
nombre accusé de réception (32 bits) - si le drapeau ACK est alors la valeur de ce champ est le numéro de séquence suivant que le récepteur attend.
Si elle n'est pas réglé sur (numéro de séquence inital + 1), il serait dire incohérente tant ack'ing le SYN
(les deux drapeaux de SYN
et ACK
doivent être définis dans ce paquet) et en disant qu'il attend que le numéro de séquence à nouveau (c.-à-n'a pas reçu).