请在这里find一个小的pcap文件,说明我的问题。
我有一个三方TCP握手,其次是两个FIXlogin。 (FIX是交易中使用的协议。)第一个FIXlogin(第4帧)由WireShark解释和parsing,但第二次login(第6帧)被解释为TCP segment of a reassembled PDU的TCP segment of a reassembled PDU 。
但是,帧6 不是重组PDU的TCP段。 它包含一个完整的TCP PDU,应该被解释和parsing为一个FIXlogin。 我已经检查过序列号,ACK号码,IP总长度等都是好的。
为什么帧6被解释为重组PDU的TCP段?
主持人编号.76和.67有一点麻木。
Wireshark将第6帧称为“重组PDU的TCP段”,因为你在10.10.10.67上的TCP实现select发送一个ACK / W / O有效载荷(“裸”ACK),而不是包含在帧6中发送的有效载荷(这是一个依赖于OS / IP堆栈的行为)。这反过来会触发TCP解剖器中的行为,将多个TCP段的有效载荷交给FIX解剖器。 无论出于何种原因,FIX解剖员不解释框架6。
如果closuresTCPparsing器选项中的“允许子分区器对TCPstream进行取消分段”选项,则会发现Wireshark以不同的方式解释:

以下是关于同一事物的wireshark-users列表的一些讨论 。