Linux上UDP上的延迟测量
Latency measurement over UDP on Linux
我想测量Linux上两台机器之间的UDP延迟和丢弃率。优选地(但不是关键的)同时在多个机器之间执行测量。
因此,我想得到一个直方图,例如,在测量过程中的每个时刻,每个单独数据包的RTT时间。预期频率约为每秒10个数据包。
你知道我能用什么工具吗?
到目前为止,我尝试的是:
- ping-使用icmp而不是UDP
- iperf-只测量抖动,不测量延迟
- D-ITG-按流量统计的测量值,无直方图
- tshark-使用TCP进行ping而不是UDP
- 我还创建了一个简单的C++套接字程序,其中每侧都有客户端和服务器,我发送带有计数器和时间戳的UDP数据包。我的程序似乎运行良好,尽管由于我不是网络程序员,我不能100%确定我是否正确处理了缓冲区(特别是在部分数据包等情况下)。所以我更愿意使用一些经过验证的软件来完成这项任务
你能推荐点什么吗?
感谢
这取决于情况。如果你只想要一个有时间戳的轨迹,Wireshark就是你的朋友:https://www.wireshark.org/
我想提醒您,UDP是一种基于消息的协议,数据包有明确的边界。无法接收部分数据包。也就是说,你要么会得到完整的消息,要么就不会得到。所以,你不必担心UDP中的部分数据包。
使用计数器&使用时间增量计算延迟对于UDP来说似乎很好。然而,需要考虑的重要一点是确保客户端和服务器的系统时间同步。
相关文章:
- 在C++中测量postscript字体宽度
- 如何仅为一个函数添加延迟
- 有没有一种方法可以测量c++程序的运行时内存使用情况
- 以在Qt中的IF语句中设置时间延迟
- 用时钟测量程序的运行时间
- 模板化类中静态成员的延迟初始化
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 将自定义函数传递到基抽象类中以延迟执行
- 我希望改进或要求我目前的延迟/睡眠方法。C++
- 用于测量微秒的QueryPerformanceCounter的奇怪行为
- 如何在 c++ 中延迟?
- 为什么根据测量位置测量经过的时间时会有很大的不同?
- 为什么我的程序在输入某个形状的面积的测量值后没有结束?
- 如何测量管道延迟?
- 如何测量paho mqtt网络中的延迟
- FPGA - 使用 C/C++ 进行 CPU 延迟测量
- 测量网络的延迟
- 测量记忆的延迟
- 如何测量低延迟 c++ 应用程序的延迟
- Linux上UDP上的延迟测量