Zu viele falsche Prüfsummenfehler in TCPDUMP

23

Ich finde zu viele falsche Prüfsummenfehler von einem TCPDUMP , der auf einem GNU Linux 64-Bit-Server ausgeführt wurde. Gibt es fast 50% falsche Prüfsummen beim Export?

cksum 0xe61f (falsch (-> 0x8c37)

Wie können wir diese Daten interpretieren? Beeinträchtigt es die Leistung sehr?

Vishal
quelle
4
Verwenden Sie tcpdump --dont-verify-checksums, um diese zu ignorieren.
Willem

Antworten:

31

Sie sehen die "falschen" Prüfsummen aufgrund einer Funktion namens TCP-Prüfsummenverschiebung. Die Prüfsummenfelder für ausgehende TCP-Pakete werden vom Betriebssystem nicht vorberechnet, sondern auf 0 gesetzt und vom NIC-Prozessor zur Berechnung belassen. Die Wireshark-FAQ enthält eine detailliertere Erklärung.

das-wabbit
quelle
Ich habe das gesehen, aber es war spezifisch für "Wenn die Pakete mit falschen TCP-Prüfsummen alle von dem Computer gesendet werden, auf dem Wireshark ausgeführt wird", und es war nicht klar, wie sich zu viele legitime Prüfsummenfehler auf die Netzwerkleistung auswirken würden.
Vishal
4
Auf Paketen, die von Ihrem Computer gesendet werden, sollten nur falsche Prüfsummen angezeigt werden. Dies ist nicht spezifisch für Wireshark. Jede Paketerfassungssoftware, die auf dieser Ebene arbeitet, führt zu ähnlichen Ergebnissen. Wenn Sie feststellen, dass die Prüfsumme bei empfangenen Paketen fehlschlägt, liegt möglicherweise tatsächlich ein Problem vor: Diese Pakete werden vom TCP-Stack verworfen und lösen eine erneute Übertragung sowie Überlastungskontrollalgorithmen aus. Dies hat direkte Auswirkungen auf den Datendurchsatz.
The-Wabbit
Die Prüfsummenfehler betrafen nur die gesendeten Pakete. Vielen Dank!
Vishal
Bei großen eingehenden SMB-Paketen, die neu zusammengestellt werden müssen, werden falsche Prüfsummen angezeigt. tcpdumpdruckt ein erstes Paket mit "falscher Prüfsumme" zusammen mit dem Kommentar "WARNUNG: Paket wird in späteren TCP-Segmenten fortgesetzt". Dann gibt es nur noch wenige mit "falscher Prüfsumme", gefolgt von einem Kommentar "SMB-over-TCP-Paket: (Rohdaten oder Fortsetzung?)". Ich nehme an, dass die Prüfsumme im ersten Paket des Satzes korrekt ist, wenn alle nachfolgenden korrekt sind Pakete (die tatsächlich keine Prüfsumme an der Stelle haben, an der tcpdumpder Prüfsummenwert
erfasst