Mengapa menurut WireShark bingkai ini adalah segmen TCP dari PDU yang dipasang kembali

9

Silakan temukan file pcap kecil di sini yang menggambarkan masalah saya.

Saya memiliki handshake TCP tiga arah, diikuti oleh dua login FIX. (FIX adalah protokol yang digunakan dalam perdagangan.) Log masuk FIX pertama (frame 4) ditafsirkan dan diuraikan dengan baik oleh WireShark, tetapi logon kedua (frame 6) ditafsirkan sebagai a TCP segment of a reassembled PDU.

Namun frame 6 bukan merupakan segmen TCP dari PDU yang dipasang kembali. Ini berisi TCP PDU lengkap yang harus ditafsirkan dan diurai sebagai log masuk FIX. Saya telah memeriksa bahwa nomor urut, angka ACK, panjang total IP, dll semuanya baik.

Mengapa frame 6 ditafsirkan sebagai segmen TCP dari PDU yang dipasang kembali?

Randomblue
sumber
Apakah ada masalah yang Anda alami karena ini?
Nathan C
1
Ya, saya membuat semua bingkai ini, dan jelas ada yang salah dengan apa yang saya lakukan.
Randomblue
1
Saya akan sangat menyarankan untuk memasukkan rincian penting dari frame 4 dan 6 (dan mungkin frame yang berdekatan) dalam pertanyaan Anda. Tautan ke file pcap sangat bagus, tetapi hanya sebagian kecil pembaca yang cenderung untuk mengunduh dan melihatnya.
Skyhawk
Pada pandangan pertama, tidak ada yang bisa saya temukan. Segmen 4 tidak terfragmentasi. Frame 6 berasal dari tujuan dan Anda mengatakan bahwa frame 6 ini harus ditafsirkan sebagai respons server dari frame 4. yaitu logon FIX harus dilakukan di sana. Baik.
Soham Chakraborty

Jawaban:

15

Memiliki host bernomor .76 dan .67 adalah sedikit mematikan pikiran.

Wireshark menyebut frame 6 sebuah "segmen TCP dari PDU yang dipasang kembali" karena implementasi TCP Anda pada 10.10.10.67 memilih untuk mengirim ACK tanpa payload (ACK "telanjang") daripada memasukkan muatan yang dikirimkan dalam frame 6 dg ACK dalam bingkai 5. (Ini adalah perilaku yang bergantung pada OS / IP stack.) Ini, pada gilirannya, memicu perilaku dalam dissector TCP untuk melepaskan muatan dari beberapa segmen TCP ke dissector FIX. Untuk alasan apa pun, dissector FIX tidak menafsirkan bingkai 6.

Jika Anda mematikan opsi "Izinkan subdissektor ke desegmen aliran TCP" di opsi TCP dissector, Anda akan menemukan bahwa Wireshark menafsirkan ini secara berbeda:

Tangkapan layar Wireshark

Inilah beberapa diskusi dari daftar pengguna wireshark tentang hal yang sama .

Evan Anderson
sumber