我确实有以下情况 - 有时当我使用Wireshark记录TCP流量时,我会收到一些无序的数据包。然后我需要将数据保存为PDML(Wireshark detail XML)并逐个处理每个主标记。问题是我期望数据以正确的顺序保存,但是对于无序数据包而言并非如此。 基本上数据包如下所示:
所以第3个数据包是服务器响应的实际开始,第2个数据包是它的继续。
这种情况很少发生,我可以在生成的PDML中手动切换这些数据包。但是,如果可能的话,我想自动执行此操作,以确保无法解决此问题。
所以问题 - 是否有一些默认的可能性在Wireshark中配置排序以避免此类问题?或者唯一的选择是为生成的PDML编写我自己的解析器,其中必须处理描述的情况。
我需要的是获得第二和第三个数据包切换的输出。
答案 0 :(得分:0)
如何在Wireshark
中避免无序TCP数据包
假设数据包实际上没有按顺序传送到您的计算机,您可以通过在不会将数据包无序传送到libpcap / WinPcap使用的捕获机制的操作系统上进行捕获来避免它们。在多处理器/多核机器上,至少某些版本的Linux有时会这样做,可能是因为这两个数据包是由不同的内核处理的,而稍后在机器上到达的数据包首先使它成为PF_PACKET套接字。
示例中的数据包按时间戳顺序排列,它们之间存在显着的时间差;是你的捕获中发生了什么?如果是这样,那么可能的数据包无法按顺序到达捕获主机。
Wireshark中没有任何机制可以按TCP序列号对数据包进行排序,并按顺序写出来。