接收端点的数据包到达时间不同

问题描述 投票:0回答:1

我有两个虚拟机 ubuntu 使用 10G HP 网卡相互连接,现在我想在一个虚拟机上播放 .pcap 文件中的数据包并在另一台虚拟机上接收数据包,但有一个条件,它必须遵守以下中存在的时间戳vm接收端的pcap文件。

现在,为了使用 C 代码中的 libpcap 库根据数据包间隔验证数据包播放,我发送了第一个数据包,在 71.5us(vm1 系统时间)之后,当我使用 tcpdump 捕获 RX 数据包时,我发送了第二个数据包第二个虚拟机,第二个数据包到达时间为 495ns,而不是接近 71.5us,为什么会发生这种情况?

使用 tcpdump 的虚拟机接收端未满足时间戳要求

c networking packet-sniffers packet-capture packet-injection
1个回答
0
投票

据我了解,您正在发送端重放捕获的数据包。那么,就无法直接控制另一端何时收到重放的数据包。

一般来说,内核并不与用户空间程序同步运行。当您将数据包交给内核以供其发送时,系统调用不会阻塞,直到数据包实际传输为止,更不用说直到它被成功接收和确认为止。出站数据包可能遭受不一致的发送延迟(尤其是微秒级)的原因有多种。还有一些原因导致另一端入站的数据包可能表现出不一致的延迟。

使用 tcpdump 的虚拟机接收端未满足时间戳要求

我看不出有任何理由相信会是这样。至少不是几十微秒的分辨率。

© www.soinside.com 2019 - 2024. All rights reserved.