Terlalu banyak kesalahan checksum yang salah dalam TCPDUMP

23

Saya menemukan terlalu banyak kesalahan checksum yang salah dari TCPDUMP yang dilakukan pada server GNU Linux 64bit. Ada hampir 50% chekcums yang salah dalam ekspor?

cksum 0xe61f (salah (-> 0x8c37)

Bagaimana kita bisa menafsirkan data ini? Apakah itu banyak mempengaruhi kinerja?

Vishal
sumber
4
Gunakan tcpdump --dont-verify-checksumsuntuk mengabaikan ini.
Willem

Jawaban:

31

Anda melihat checksum "salah" karena fitur yang disebut TCP checksum offloading. Bidang checksum untuk paket TCP yang keluar tidak dihitung sebelumnya oleh sistem operasi, tetapi ditetapkan ke 0 dan dibiarkan untuk perhitungan oleh prosesor NIC. The Wireshark FAQ memiliki penjelasan yang lebih rinci.

the-wabbit
sumber
Saya melihat itu tetapi itu khusus untuk "Jika paket yang memiliki checksum TCP salah semuanya dikirim oleh mesin yang menjalankan Wireshark" dan tidak jelas berapa banyak checksum yang sah gagal akan berdampak pada kinerja jaringan.
Vishal
4
Anda hanya akan melihat checksum yang salah pada paket yang dikirim oleh mesin Anda. Ini tidak khusus untuk Wireshark, perangkat lunak penangkapan paket apa pun yang bekerja pada level ini akan menghasilkan hasil yang serupa. Jika Anda melihat checksum gagal pada paket yang diterima, mungkin memang ada masalah - paket-paket ini dibuang oleh TCP stack dan memicu transmisi ulang serta algoritma kontrol kemacetan - yang akan berdampak langsung pada throughput data.
the-wabbit
Kesalahan checksum hanya pada paket yang dikirim. Terima kasih!
Vishal
Saya melihat checksum yang salah pada paket SMB besar yang masuk yang harus dipasang kembali. tcpdumpmencetak paket pertama dengan "checksum yang salah" bersama dengan komentar "PERINGATAN: Paket dilanjutkan di segmen TCP selanjutnya". Lalu ada beberapa lagi dengan "checksum yang salah" diikuti dengan komentar "" Paket SMB-over-TCP: (data mentah atau lanjutan?) ". Saya kira checksum dalam paket pertama set akan benar jika semua yang berikutnya paket (yang sebenarnya tidak memiliki checksum di tempat tcpdumpmeraih nilai checksum) telah disusun kembali menjadi keseluruhan ≤ 64KiB keseluruhannya.
David Tonhofer