当我使用“tcpreplay”向我的交换机发送数据包时,我发现数据包乱序。例如,使用tcpreplay -i eth1 test.pcap
,我得到:
我发送数据包喜欢**[1,2,3,4,5,……]**
,但交换机收到**[1,3,4,2,5,……]**
。
这个问题是不是很眼熟?你是怎么解决的?
当我使用“tcpreplay”向我的交换机发送数据包时,我发现数据包乱序。例如,使用tcpreplay -i eth1 test.pcap
,我得到:
我发送数据包喜欢**[1,2,3,4,5,……]**
,但交换机收到**[1,3,4,2,5,……]**
。
这个问题是不是很眼熟?你是怎么解决的?
当您说交换机收到不同的数据包顺序时-您如何确定是这种情况?我问是因为如果您正在嗅探交换机端口,这似乎是一种有效的检查方式,但如果您使用的是 SPAN 端口,那么是的,根据我的经验,交换机可以重新排序帧,所以我不是那样惊讶。
当您在 tcpreplay 框上运行 tcpdump 时,它显示正在发送的数据包的顺序是什么?另外,两者之间是否有另一个开关?因为很多交换机使用“存储和转发”方法来重新排序帧(这也是 SPAN 端口倾向于重新排序的原因)。
最后,tcpreplay 总是按顺序向内核/NIC 驱动程序/NIC 发送数据包,因为它按顺序处理 pcap 文件。如果您的计算机实际上是在乱序发送帧,那么这发生在内核、NIC 驱动程序或 NIC 硬件/固件中。