Frage

Warum tut Der TCP-Drei-Wege-Handschlag Beenden Sie die Sequenznummer, wenn Sie während des anfänglichen Händedrucks anfangen? Wie ist das besser, als nur die Bestätigungsnummer gleich der Sequenznummer zu verlassen?

Die Verbindung wird mit hergestellt mit

Client sends SYN,A
Server responds with SYN-ACK,A+1,B
Client confirms with ACK,B+1

Wie ist das besser als

Client sends SYN,A
Server responds with SYN-ACK,A,B
Client confirms with ACK,B
War es hilfreich?

Lösung

Das liegt daran, dass die ACK Feld bedeutet dies, wenn die ACK Flag ist eingestellt:

Bestätigungsnummer (32 Bit) - Wenn das ACK -Flag eingestellt ist, ist der Wert dieses Feldes die nächste Sequenznummer, die der Empfänger erwartet.

Wenn es nicht auf (Inital -Sequenzzahl+1) eingestellt ist, wäre es inkonsistent, dass beide die Ack'ing die SYN (beide SYN und ACK Flags müssen in diesem Paket festgelegt werden) und sagen, dass es wieder erwartet wird, dass die Sequenznummer erneut (dh es nicht erhalten hat).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top