TCP SACK und DSACK in Wireshark: Paketverlust, sack_perm-Option und Neuübertragung in PCAPs diagnostizieren

Diagnostizieren Sie die TCP-Optionen SACK, DSACK und sack_perm in Wireshark-PCAPs. Deckt selektive Bestätigungen, Wiederherstellung nach Paketverlust, Neuordnung, doppelte ACKs und falsche Neuübertragungen ab.

TCP-Sack, dsack, selektive Bestätigung, doppelter Sack, Paketverlust, reordering, PCAP-Analyse

Die TCP-Neuübertragungsanalyse wird viel präziser, wenn selektive Bestätigung verfügbar ist. Benutzer suchen nach „TCP SACK pcap“, „DSACK Wireshark“, „duplicate SACK“, „falsche Neuübertragung“, „TCP-Neuordnung vs. Paketverlust“ und „selektive ACK-Paketerfassung“, wenn eine Ablaufverfolgung doppelte ACKs, Neuübertragungen und Pakete außerhalb der Reihenfolge anzeigt, die Grundursache jedoch unklar ist.

PCAP-Chirurgie ist nützlich, da SACK-Beweise in TCP-Optionen übertragen werden. Wenn Sie die falschen Pakete wegschneiden, den Handshake verlieren oder ACKs von Daten trennen, wird die Diagnose schwächer.

Was SACK hinzufügt

Herkömmliche TCP-ACKs bestätigen das nächste erwartete Byte. Wenn ein Segment fehlt, aber spätere Segmente eintreffen, kann der Empfänger die Lücke nur weiterhin bestätigen.

SACK lässt den Empfänger sagen: „Mir fehlt dieser frühere Bereich noch, aber ich habe diese späteren Bereiche empfangen.“

Dies hilft bei der Unterscheidung:

  • Tatsächlicher Paketverlust.
  • Lieferung außerhalb der Reihenfolge.
  • Doppelte Pakete.
  • Verhalten des Empfängers.
  • Verhalten bei der Absenderwiederherstellung.

SACK muss ausgehandelt werden

Die SACK-Fähigkeit wird im SYN und SYN-ACK ausgehandelt. Wenn die Erfassung nach dem Handshake beginnt, wissen Sie möglicherweise nicht, ob SACK zulässig war.

Bewahren Sie immer auf:

  • SYN.
  • SYN-ACK.
  • SACK erlaubte Option.
  • Option zur Fensterskalierung.
  • Zeitstempeloption, falls vorhanden.

Aus diesem Grund kann eine „kleine PCAP rund um die Neuübertragung“ unzureichend sein.

Doppelte ACKs mit SACK-Blöcken

Doppelte ACKs bedeuten nicht alle dasselbe. Ein doppeltes ACK mit SACK-Blöcken kann dem Absender genau mitteilen, welche späteren Bytebereiche angekommen sind.

Zu prüfende Nachweise:

  • ACK-Nummer.
  • Linke und rechte Kante des SACKS.
  • Wiederholte SACK-Blöcke.
  • Neue SACK-Informationen.
  • Ob fehlende Daten später angezeigt werden.
  • Ob die Weiterverbreitung die Lücke füllt.

Dies ist viel stärker als nur das Zählen doppelter ACKs.

Paketverlust vs. Neuordnung

Wenn ein Segment verspätet eintrifft, aber nicht verloren geht, zeigt SACK möglicherweise an, dass spätere Daten bereits empfangen wurden. Der Absender sendet möglicherweise erneut, und dann kommt möglicherweise auch das Originalpaket an. Das kann chaotisch aussehen.

Fragen:

  • Ist das ursprüngliche Segment zu spät angekommen?
  • Kam die Neuübertragung zuerst an?
  • Hat DSACK später doppelte Daten gemeldet?
  • Gibt es einen Pfad, der Pakete neu anordnet?
  • Überqueren Bursts mehrere Verbindungen, Tunnel oder Pfade mit Lastausgleich?

Die PCAP-Chirurgie kann dabei helfen, den genauen Sequenzbereich zu isolieren und die Paketreihenfolge zu vergleichen.

Was DSACK bedeutet

Duplicate SACK kann melden, dass doppelte Daten empfangen wurden. Dies ist nützlich, um fehlerhafte Neuübertragungen oder Neuordnungen zu identifizieren.

DSACK-Beweise könnten darauf hindeuten:

  • Der Absender hat unnötigerweise erneut gesendet.
  • Das Netzwerk hat die Originaldaten verspätet geliefert.
  • Beim Eroberungspunkt gab es Duplikate.
  • Der Empfänger hat sowohl die ursprünglichen als auch die erneut übertragenen Bytes erhalten.
  • Middlebox duplizierte Pakete.

Das ist eine andere Schlussfolgerung als „Das Paket ging verloren“.

Falsche Weiterübertragungen

Eine erneute Übertragung ist nicht immer ein Beweis für einen Verlust. Es kann ausgelöst werden durch:

  • Reordering.
  • Verzögertes ACK-Verhalten.
  • Erfassen Sie Offload-Artefakte.
  • Zu kleines Zeitlimit für erneute Übertragung.
  • ACK-Komprimierung.
  • Timing der Virtualisierung.
  • Pfadasymmetrie.

SACK und DSACK helfen dabei, nachzuweisen, ob Daten wirklich fehlten oder nur zu spät.

Der Eroberungspunkt ist wichtig

Wenn das PCAP einseitig ist oder hinter einem NAT liegt, kann die SACK-Interpretation schwierig sein. Möglicherweise fehlt ein Paket an Ihrem Erfassungspunkt, ist aber beim Empfänger vorhanden.

Nützliche Praxis:

  • Vergleichen Sie senderseitige und empfängerseitige Erfassungen.
  • Halten Sie Zeitstempel synchron.
  • Sequenznummern beibehalten.
  • Vermeiden Sie es, reine ACK-Pakete auszuschneiden.
  • Notieren Sie den Ablade- und Erfassungsort.

Eine SACK-Analyse ohne ACK-Pakete ist keine Analyse.

Debug-Checkliste

Verwenden Sie diesen Workflow:

  1. Behalten Sie den TCP-Handshake bei.
  2. Bestätigen Sie, dass SACK zulässig ist.
  3. Finden Sie das erste Duplikat von ACK.
  4. SACK-Blöcke dekodieren.
  5. Ordnen Sie SACK-Bereiche Datenpaketen zu.
  6. Identifizieren Sie erneut übertragene Sequenzbereiche.
  7. Suchen Sie nach DSACK.
  8. Trennen Sie Verlust von Nachbestellung.
  9. Überprüfen Sie den Erfassungspunkt und den Offload-Kontext.
  10. Bewahren Sie Vorher/Nachher-Pakete rund um das Wiederherstellungsereignis auf.

Endgültige Diagnose

TCP SACK und DSACK liefern präzise Beweise für Paketverlust, Neuordnung, doppelte Zustellung und falsche Neuübertragungen. Der Schlüssel besteht darin, Handshake-Optionen, Nur-ACK-Pakete, SACK-Blöcke und erneut übertragene Sequenzbereiche beizubehalten.

Die PCAP-Chirurgie trägt dazu bei, dass diese Beweise erhalten bleiben, sodass die TCP-Verlustanalyse über die generische doppelte ACK-Zählung hinausgehen kann.