Paketverlust in Tshark analysieren

WiresharkWiresharkBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL wireshark(("Wireshark")) -.-> wireshark/WiresharkGroup(["Wireshark"]) wireshark/WiresharkGroup -.-> wireshark/packet_capture("Packet Capture") wireshark/WiresharkGroup -.-> wireshark/display_filters("Display Filters") wireshark/WiresharkGroup -.-> wireshark/capture_filters("Capture Filters") wireshark/WiresharkGroup -.-> wireshark/packet_analysis("Packet Analysis") wireshark/WiresharkGroup -.-> wireshark/commandline_usage("Command Line Usage") subgraph Lab Skills wireshark/packet_capture -.-> lab-548912{{"Paketverlust in Tshark analysieren"}} wireshark/display_filters -.-> lab-548912{{"Paketverlust in Tshark analysieren"}} wireshark/capture_filters -.-> lab-548912{{"Paketverlust in Tshark analysieren"}} wireshark/packet_analysis -.-> lab-548912{{"Paketverlust in Tshark analysieren"}} wireshark/commandline_usage -.-> lab-548912{{"Paketverlust in Tshark analysieren"}} end

Erfassen von TCP mit -f "tcp"

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.

  1. Ö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+T verwenden. Im Terminal führen Sie alle Befehle für diese Netzwerkanalyse aus.

  2. Navigieren Sie in das Standardarbeitsverzeichnis, in dem wir unsere Erfassungsdateien speichern werden:

    cd ~/project

    Dieses Verzeichnis wurde speziell für Ihre Labarbeiten erstellt, um Ihre Dateien organisiert und getrennt von Systemdateien zu halten.

  3. Starten Sie die Erfassung von TCP-Paketen, indem Sie diesen Befehl ausführen:

    sudo tshark -f "tcp" -w tcp_capture.pcap

    Lassen Sie uns analysieren, was jeder Teil macht:

    • sudo gibt Ihnen die Administratorrechte, die für die Paketerfassung erforderlich sind.
    • tshark ist die Befehlszeilenversion von Wireshark.
    • -f "tcp" teilt tshark mit, nur TCP-Pakete zu erfassen.
    • -w tcp_capture.pcap speichert die erfassten Pakete in einer Datei namens tcp_capture.pcap.
  4. 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.io

    Die Option -I teilt curl mit, nur die HTTP-Header abzurufen, was gerade genug Verkehr für unsere Analyse erzeugt, ohne unnötige Daten herunterzuladen.

  5. 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+C drücken. Sie sollten eine Ausgabe ähnlich der folgenden sehen:

    Capturing on 'eth1'
    10 packets captured

    Dies bestätigt, wie viele TCP-Pakete während Ihrer Sitzung erfasst wurden.

  6. Überprüfen Sie, ob Ihre Erfassungsdatei erfolgreich erstellt wurde, indem Sie die Dateien im Verzeichnis auflisten:

    ls -lh tcp_capture.pcap

    Die Optionen -lh zeigen 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.

Überprüfen von Neuübertragungen mit -Y "tcp.analysis.retransmission"

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.
  1. Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden, in dem unsere Erfassungsdateien gespeichert sind:

    cd ~/project
  2. Analysieren wir die zuvor erstellte Erfassungsdatei auf Neuübertragungen. Der Befehl lässt sich wie folgt aufteilen:

    • -r liest aus einer gespeicherten Erfassungsdatei.
    • -Y wendet einen Anzeigefilter an, um nur Neuübertragungen anzuzeigen.
    tshark -r tcp_capture.pcap -Y "tcp.analysis.retransmission"
  3. Wenn Ihre Netzwerkverbindung während der ersten Erfassung stabil war, werden Sie wahrscheinlich sehen:

    0 packets captured

    Dies ist normal und zeigt an, dass während der Erfassungszeit keine Pakete neuübertragen werden mussten.

  4. 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.pcap

    Im zweiten Terminal führen Sie einen langsamen Download aus, der möglicherweise Neuübertragungen auslöst:

    curl --limit-rate 10k https://www.labex.io

    Nach ein paar Sekunden stoppen Sie beide Prozesse mit Strg+C.

  5. 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.

Zusammenfassung der Paketverluststatistiken mit -z tcp,tree

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.
  1. Stellen Sie zunächst sicher, dass Sie sich im Projektverzeichnis befinden, in dem Ihre Erfassungsdateien gespeichert sind:

    cd ~/project
  2. Analysieren 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,tree
  3. Die 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.
    • Total fasst beide Richtungen zusammen.
    ======================================================
    TCP Conversations
    Filter:<No Filter>
    |       <-      | |       ->      | |     Total     |
    | Frames  Bytes | | Frames  Bytes | | Frames  Bytes |
    ======================================================
  4. 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,tree

    Suchen Sie nach Konversationen, bei denen die Frame-Zahlen deutlich höher sind als bei anderen – dies deutet oft auf Neuübertragungsprobleme hin.

  5. 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,tree

    Dies hilft, genau zu bestimmen, welche Konversationen an Paketverlust leiden.

Stille Ausgabe 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.

  1. Zunächst navigieren wir in unser Arbeitsverzeichnis, in dem die Erfassungsdateien gespeichert sind:

    cd ~/project
  2. Jetzt 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,tree
  3. Um 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,tree
  4. Wir 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,tree
  5. Das 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.