Ich habe gelesen, dass zum Beenden einer TCP-Verbindung 3 Handshakes erforderlich sind: FIN, FIN ACK und ACK. Beim Schließen einer Verbindung zeigt Wireshark jedoch FIN ACK, FIN ACK, ACK an. Es wird jedoch niemals FIN selbst angezeigt.

Beim Herstellen einer Verbindung zeigt Wireshark jedoch deutlich die drei Handshakes an: SYN, SIN ACK , ACK.

Ich bin also etwas verwirrt, warum beim Schließen der Verbindung die drei Handshakes nicht so angezeigt werden.

Antwort

Eine TCP-Implementierung sendet möglicherweise eine eigenständige FIN im ersten schließenden Segment. Sie kann jedoch stattdessen auch eine FIN-Bestätigung senden.

Letzteres ist strikt besser: Die Implementierung kann ein „freies“ ACK mit dem FIN-Segment bündeln, ohne es zu verlängern. Wenn Sie kein ACK verwenden, ist im Segment noch Platz für die ACK-Nummer, die ignoriert wird. und Bandbreite verschwenden. Daher wird die zuletzt gesendete ACK einfach erneut gesendet, falls der Empfänger sie verpasst hat. Dies gilt für alle TCP-Segmente. Mit Ausnahme des allerersten SYN-Segments, in dem der Absender keine Informationen über die ACK-Nummer hat, ist in allen anderen Segmenten normalerweise das ACK-Flag aktiviert.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.