为什么WireShark认为这个帧是一个重组PDU的TCP段

请在这里find一个小的pcap文件,说明我的问题。

我有一个三方TCP握手,其次是两个FIXlogin。 (FIX是交易中使用的协议。)第一个FIXlogin(第4帧)由WireShark解释和parsing,但第二次login(第6帧)被解释为TCP segment of a reassembled PDUTCP 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截图

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