Netzwerk-Analyse mit Wireshark: TCP-Fehlerkorrektur beobachten


    Tags: ,

    TCP-Handshake in 3 SchrittenIn einer TCP-Session erkennt der Em­pfänger an­hand von Sequence Numbers, ob Pakete in der rich­tigen Reihen­folge bzw. mehr­fach ein­treffen. Mit Ack­nowledg­ments be­stätigt er den korrek­ten Empfang oder veran­lasst eine erneute Über­tragung. Dieser Vor­gang lässt sich in Wireshark gut nach­voll­ziehen.

    Die folgende Abbildung illu­striert die Sequence- und Acknowledg­ment-Nummern, mit deren Hilfe TCP die Fehler­korrektur und die Fluss­kontrolle realisiert.

    Verlauf eines TCP-Handshakes

    Wie in einem früheren Beitrag gezeigt, generiert jeder der Partner beim Aufbau einer TCP-Verbindung eine zufällige, 32-Bit lange Sequence Number. Wireshark ersetzt diese lediglich der Übersicht halber durch relative Sequenz­nummern beginnend mit 0, und zwar für Client und Server.

    Jeder der Partner erhöht im Verlauf der Kommu­nikation die Sequenz­nummer um die Anzahl der gesendeten Bytes. Zur Analyse der Fluss­kontrolle kann es daher hilfreich sein, die relativen Sequenz­nummern zu deaktivieren.

    Einstellung für relative TCP-Sequenz­nummern in Wireshark

    Das sieht dann für das erste SYN-Paket so aus:

    Der Client startet mit der zufälligen Sequenz-Nummer 3759279677. Die eigene Acknowledgement-Number ist noch 0.

    Dabei vermerkt jeder der Partner in der Zeile "[Next sequence number:]" eine Folge-Sequenz-Nummer. Hierbei handelt es sich immer um genau diejenige Acknowledgment-Number, die als nächste von der Gegenstelle erwartet wird.

    In der Abbildung oben ist die zufällige Start-Sequenz-Nummer des Clients 3759279677. Die eigene Acknowledgement-Number ist noch 0, da der Client noch keine anderen Infor­mationen vom Server erhalten hat.

    Die Next-Sequence-Number ist identisch mit der eigenen Sequence Number 3759279677, da noch keine Daten vom Client gesendet wurden. Werfen wir nun einen Blick in das zweite Paket:

    Die Acknowledgement Number berechnet sich aus der Sequence Number der Gegenstelle.

    Die beliebige Start-Sequenze-Number des Servers ist 3842592582. Demnach ist der Wert für Next-Sequence-Number ebenfalls 3842592582, da von hier ebenfalls noch keine Daten gesendet wurden.

    Die Acknowledgement-Number muss allerdings

    3759279677 + 1 =3 759279678

    sein, weil diese im Rahmen des TCP-Handshakes immer einfach um 1 erhöht wird. Beim Handshake selbst werden keine weiteren Daten gesendet.

    Werfen wir noch einen Blick auf das dritte Paket des Handshakes.

    Das dritte Paket eines TCP-Handshakes

    Hier ist die Sequence-Number des Clients nun 3759279678, die Next-Sequence-Number wieder 3759279678  (denn auch der Server hat ja im Rahmen des Handshakes noch keine Daten gesendet) und die Acknowledgment-Number nun

    842592582 + 1 = 3842592583

    Dabei handelt es sich um eine beim TCP-Three-Way-Handshake um 1 erhöhte Sequenz-Nummer.

    Täglich Know-how für IT-Pros mit unserem Newsletter

    Wir ver­wenden Ihre Mail-Adresse nur für den Ver­sand der News­letter.
    Es erfolgt keine per­sonen­be­zogene Auswertung.

    Bild von Thomas Drilling
    Thomas Drilling arbeitet seit mehr als 20 Jahren selb­ständig als Redakteur und Autor für viele ehe­malige und aktuelle IT-Magazine sowie Blogs. Thomas ist zudem Buch­autor und IT-Consultant. Seit 5 Jahren ist Thomas neben seiner journa­listischen Tätig­keit haupt­beruflicher, selb­ständiger IT-Trainer für VMware und Microsoft.

    Seine Themen­schwer­punkte sind Virtua­lisierung und Cloud Com­puting, speziell VMware, Amazon Web Services, Google Cloud und Microsoft Azure. Thomas ist zerti­fi­zierter VMware Professional, Advanced Professional und wurde von VMware in den Jahren 2016, 2017, 2018, 2019 und 2020 mit dem Blogger-Status vExpert ausge­zeichnet.

    Thomas ist außerdem zertifi­zierter AWS Solu­tions Archi­tect, Sysops Engineer und Devops Engineer sowie Microsoft Certified Azure Admini­strator.

    Thomas führt aktuell jeden zwei­ten Mon­tag einen 4-tägigen Grund­lagenkurs in Cloud Computing mit AWS via Zoom-Meeting durch. Weitere Infor­mationen und Anmel­dung über sein AWS-Blog.

    Verwandte Beiträge

    Weitere Links