【问题标题】:tcpreplay is sending packets out of order?tcpreplay 乱序发送数据包?
【发布时间】:2020-01-16 18:25:55
【问题描述】:

当我使用 'tcpreplay' 向我的交换机发送数据包时,我发现数据包乱序。例如,使用tcpreplay -i eth1 test.pcap,我得到:

我发**[1,2,3,4,5,……]**之类的包, 但开关收到**[1,3,4,2,5,……]**

这个问题是不是很眼熟?你是怎么解决的?

【问题讨论】:

  • 网络有时会重新排序数据包,这是更高级别的协议处理的事情。
  • 我的服务器上有一个 pcap 文件,其中包含大约 100,000 个数据包。我只是想用tcpreplay按顺序将数据包从服务器网口发送出去。

标签: linux ubuntu networking tcpreplay


【解决方案1】:

当您说交换机收到不同的数据包顺序时,您如何确定是这种情况?我问是因为如果您正在嗅探交换机端口,这似乎是一种有效的检查方法,但是如果您使用的是 SPAN 端口,那么是的,根据我的经验,交换机可以重新排序帧,所以我不是那样惊讶。

当您在 tcpreplay 机器上运行 tcpdump 时,它显示正在发送的数据包的顺序是什么?另外,两者之间是否有另一个开关?因为很多交换机使用“存储和转发”方法来重新排序帧(这也是 SPAN 端口倾向于重新排序的原因)。

最后,tcpreplay 总是按顺序向内核/NIC 驱动程序/NIC 发送数据包,因为它按顺序处理 pcap 文件。如果您的计算机实际上是在乱序发送帧,那么这发生在内核、NIC 驱动程序或 NIC 硬件/固件中。

【讨论】:

  • 好吧,我重放了pcpa来点击,据我所知,它会直接转发流量,我将pcap从eth1发送到swicth并从eth2捕获pcap,当我在wireshark中打开pcapfile时,我发现它重新-命令。到目前为止,我只发现很少有“tcpreplay 时重新排序”的信息,我不知道它的确切概念。
  • 所以有两个地方可以改变数据包顺序: 1. NIC / NIC Driver。没有什么说写入 eth1 的数据包必须按照发送的顺序发送。 2. 交换机对帧重新排序。交换机由于其存储转发架构,明确不保证数据包的输入/输出顺序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 2018-02-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多