Einführung
In diesem Lab lernen Sie, TCP-Paketverluste mit dem Befehlszeilentool Tshark von Wireshark zu analysieren. Sie üben das Erfassen von Netzwerkverkehr, das Identifizieren von Neuübertragungen und das Interpretieren von Verlusterfassungsstatistiken mithilfe praktischer Terminalbefehle.
Die Übungen führen Sie durch die Erkennung von Paketverlustmustern und das Verständnis von Netzwerkleistungsmetriken. Sie erhalten praktische Erfahrungen sowohl bei normalen Übertragungen als auch bei simulierten Verlustszenarien, um reale TCP-Verbindungsfehler zu beheben.
TCP mit -f "tcp" erfassen
In diesem Schritt lernen Sie, wie Sie TCP-Verkehr mit der Erfassungsfilteroption -f "tcp" von Wireshark erfassen. TCP (Transmission Control Protocol) ist eines der Kernprotokolle des Internets und verantwortlich für die zuverlässige Datenübertragung. Dieser Filter stellt sicher, dass nur TCP-Pakete erfasst werden, was besonders nützlich ist, wenn Sie sich auf TCP-spezifisches Verhalten wie die Verbindungsherstellung (Dreifachhandshake), Neuübertragungen und Flusskontrolle konzentrieren möchten, ohne von anderen Netzwerkverkehrsarten abgelenkt zu werden.
Öffnen Sie zunächst ein Terminal in Ihrer LabEx-VM, indem Sie auf das Terminal-Symbol auf dem Xfce-Desktop klicken oder die Tastenkombination
Strg+Alt+Tverwenden. Im Terminal führen Sie alle Befehle für diese Netzwerkanalyse aus.Navigieren Sie in das Standardarbeitsverzeichnis, in dem wir unsere Erfassungsdateien speichern werden:
cd ~/projectDieses Verzeichnis wurde speziell für Ihre Labarbeiten erstellt, um Ihre Dateien organisiert und getrennt von Systemdateien zu halten.
Starten Sie die Erfassung von TCP-Paketen, indem Sie diesen Befehl ausführen:
sudo tshark -f "tcp" -w tcp_capture.pcapLassen Sie uns analysieren, was jeder Teil macht:
sudogibt Ihnen die Administratorrechte, die für die Paketerfassung erforderlich sind.tsharkist die Befehlszeilenversion von Wireshark.-f "tcp"teilt tshark mit, nur TCP-Pakete zu erfassen.-w tcp_capture.pcapspeichert die erfassten Pakete in einer Datei namens tcp_capture.pcap.
Während tshark läuft, öffnen Sie einen anderen Terminal-Tab/Fenster (Strg+Umschalt+T) und generieren Sie etwas TCP-Verkehr. Wir verwenden
curl, um eine einfache Webanfrage zu stellen:curl -I https://www.labex.ioDie Option
-Iteiltcurlmit, nur die HTTP-Header abzurufen, was gerade genug Verkehr für unsere Analyse erzeugt, ohne unnötige Daten herunterzuladen.Warten Sie etwa 5 - 10 Sekunden, um genügend Pakete zu erfassen, und stoppen Sie die Erfassung, indem Sie in dem Terminal, in dem tshark läuft,
Strg+Cdrücken. Sie sollten eine Ausgabe ähnlich der folgenden sehen:Capturing on 'eth1' 10 packets capturedDies bestätigt, wie viele TCP-Pakete während Ihrer Sitzung erfasst wurden.
Überprüfen Sie, ob Ihre Erfassungsdatei erfolgreich erstellt wurde, indem Sie die Dateien im Verzeichnis auflisten:
ls -lh tcp_capture.pcapDie Optionen
-lhzeigen die Dateigröße in einem für Menschen lesbaren Format (z. B. KB oder MB) zusammen mit anderen Details an. Dies hilft, sicherzustellen, dass Ihre Erfassung ordnungsgemäß gespeichert wurde, bevor Sie zum nächsten Schritt gehen.
Neuübertragungen mit -Y "tcp.analysis.retransmission" prüfen
In diesem Schritt werden wir TCP-Neuübertragungen untersuchen, die auftreten, wenn der Sender keine Bestätigung für gesendete Pakete erhält und diese erneut senden muss. Dies ist eine wichtige Netzwerkfehlersuchtechnik, da häufige Neuübertragungen oft auf Netzwerküberlastung, Paketverlust oder andere Konnektivitätsprobleme hinweisen.
Bevor wir beginnen, verstehen wir zunächst, wonach wir suchen:
- Eine Neuübertragung findet statt, wenn TCP innerhalb der erwarteten Zeit keine ACK (Bestätigung) erhält.
- Wireshark/tshark kann diese mithilfe des speziellen Filters "tcp.analysis.retransmission" identifizieren.
- Wir werden zunächst eine vorhandene Erfassung überprüfen und dann eine neue mit simulierten Netzwerkproblemen erstellen.
Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden, in dem unsere Erfassungsdateien gespeichert sind:
cd ~/projectAnalysieren wir die zuvor erstellte Erfassungsdatei auf Neuübertragungen. Der Befehl lässt sich wie folgt aufteilen:
-rliest aus einer gespeicherten Erfassungsdatei.-Ywendet einen Anzeigefilter an, um nur Neuübertragungen anzuzeigen.
tshark -r tcp_capture.pcap -Y "tcp.analysis.retransmission"Wenn Ihre Netzwerkverbindung während der ersten Erfassung stabil war, werden Sie wahrscheinlich sehen:
0 packets capturedDies ist normal und zeigt an, dass während der Erfassungszeit keine Pakete neuübertragen werden mussten.
Um Neuübertragungen besser zu verstehen, erstellen wir jetzt eine neue Erfassung, während wir absichtlich Netzwerküberlastung verursachen. Öffnen Sie zwei Terminalfenster:
Im ersten Terminal starten Sie die Erfassung von TCP-Verkehr:
sudo tshark -f "tcp" -w retransmission_capture.pcapIm zweiten Terminal führen Sie einen langsamen Download aus, der möglicherweise Neuübertragungen auslöst:
curl --limit-rate 10k https://www.labex.ioNach ein paar Sekunden stoppen Sie beide Prozesse mit
Strg+C.Untersuchen Sie nun die neue Erfassungsdatei auf Neuübertragungen:
tshark -r retransmission_capture.pcap -Y "tcp.analysis.retransmission"Diesmal sollten Sie die neuübertragenen Pakete aufgelistet sehen, die Sequenznummern und Zeitangaben enthalten, die bei der Diagnose von Netzwerkleistungsproblemen helfen.
Verluststatistiken mit -z tcp,tree zusammenfassen
In diesem Schritt lernen Sie, wie Sie die leistungsstarke Statistikfunktion von Wireshark mit der Option -z tcp,tree nutzen können. Dieser Befehl hilft Ihnen, TCP-Konversationen zu analysieren und Muster von Paketverlust zu identifizieren, indem er eine strukturierte Übersicht aller TCP-Streams in Ihren erfassten Daten bietet.
Bevor Sie beginnen, verstehen wir zunächst, was die TCP-Konversationsstatistiken anzeigen:
- Die Baumansicht zeigt die Kommunikation zwischen Paaren von Hosts an.
- Sie zählt die übertragenen Frames (Pakete) und Bytes in jede Richtung.
- Sie hilft, unausgewogenen Verkehr zu identifizieren, der auf Probleme hinweisen kann.
Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden, in dem Ihre Erfassungsdateien gespeichert sind:
cd ~/projectAnalysieren wir nun die grundlegenden TCP-Statistiken aus unserer ersten Erfassung. Dieser Befehl liest die Erfassungsdatei und erstellt einen Konversationsbaum:
tshark -r tcp_capture.pcap -z tcp,treeDie Ausgabe zeigt eine strukturierte Tabelle aller TCP-Konversationen. Achten Sie auf diese Spalten:
<-zeigt den Verkehr, der zu Ihrem Gerät kommt.->zeigt den Verkehr, der von Ihrem Gerät ausgeht.Totalfasst beide Richtungen zusammen.
====================================================== TCP Conversations Filter:<No Filter> | <- | | -> | | Total | | Frames Bytes | | Frames Bytes | | Frames Bytes | ======================================================Untersuchen wir nun speziell die Erfassung mit Neuübertragungen. Neuübertragungen treten auf, wenn Pakete verloren gehen und erneut gesendet werden müssen:
tshark -r retransmission_capture.pcap -z tcp,treeSuchen Sie nach Konversationen, bei denen die Frame-Zahlen deutlich höher sind als bei anderen – dies deutet oft auf Neuübertragungsprobleme hin.
Für die genaueste Analyse können wir dies mit unserem vorherigen Neuübertragungsfilter kombinieren. Dies zeigt nur die neuübertragenen Pakete im Konversationsbaum an:
tshark -r retransmission_capture.pcap -Y "tcp.analysis.retransmission" -z tcp,treeDies hilft, genau zu bestimmen, welche Konversationen an Paketverlust leiden.
Stiller Output mit -q
In diesem Schritt werden wir untersuchen, wie Sie die -q-Option von Wireshark nutzen können, um Ihre Paketanalyse zu vereinfachen. Wenn Sie mit großen Netzwerkerfassungen arbeiten, müssen Sie oft nicht jedes einzelne Paket sehen – Sie möchten nur die wichtigen Statistiken. Die -q (quiet, still) Option hilft dabei, die detaillierten Paketlisten zu verbergen und nur die zusammengefassten Daten anzuzeigen.
Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem die Erfassungsdateien gespeichert sind:
cd ~/projectJetzt analysieren wir unsere TCP-Erfassungsdatei im stillen Modus. Dieser Befehl liest die Datei, zeigt aber nur die TCP-Konversationsstatistiken an:
tshark -r tcp_capture.pcap -q -z tcp,treeUm zu verstehen, was die
-q-Option tut, führen wir den gleichen Befehl ohne sie aus. Beachten Sie, wie diese Version alle einzelnen Pakete vor den Statistiken anzeigt:tshark -r tcp_capture.pcap -z tcp,treeWir können die stillen Option mit unserem vorherigen Neuübertragungsfilter kombinieren. Dies gibt uns eine klare Ansicht nur der Neuübertragungsstatistiken:
tshark -r retransmission_capture.pcap -Y "tcp.analysis.retransmission" -q -z tcp,treeDas Ausgabeformat sieht wie folgt aus und zeigt nur die Konversationsstatistiken ohne Paketdetails:
====================================================== TCP Conversations Filter:tcp.analysis.retransmission | <- | | -> | | Total | | Frames Bytes | | Frames Bytes | | Frames Bytes | ======================================================
Zusammenfassung
In diesem Lab haben Sie gelernt, TCP-Paketverlust mithilfe von Tshark durch praktische Netzwerkfehlersuchtechniken zu analysieren. Sie haben TCP-Verkehr mit spezifischen Filtern erfasst, Neuübertragungen identifiziert und Verbindungsstatistiken erstellt, um die Netzwerkleistung zu bewerten.
Die Übungen haben gezeigt, wie Sie die erweiterten Funktionen von Tshark wie -z tcp,tree für eine umfassende TCP-Stream-Analyse und -q für eine effiziente statistische Berichterstattung nutzen können. Mit diesen Fähigkeiten können Sie Paketverlustprobleme in realen Netzwerkumgebungen schnell diagnostizieren und beheben.


