gpt4 book ai didi

c - 如何计算基于 linux 的 pc 上的接收数据包速率?如 pps 或 fps

转载 作者:太空狗 更新时间:2023-10-29 11:09:21 25 4
gpt4 key购买 nike

我正在编写一个网络程序,它可以计算准确的数据包速率(每秒包数、每秒帧数、bps)。现在我有一个名为 testcenter 的设备,它可以将准确的流量发送到 Linux 上的特定 pc(协议(protocol)是 UDP/IP),我想知道我的程序的准确 pps(每秒数据包数),我已经考虑过 gettimeofday (&start,NULL) 在我调用 recvfrom() 并更新数据包计数器之前的函数,之后调用 gettimeofday(&end,NULL) 并获取 pps速度。我希望有比这更好的解决方案,因为在系统调用时会遍历用户/内核屏障。最好的问候。

最佳答案

我认为您应该将 clock_gettime() 与 CLOCK_MONOTONIC_COARSE 一起使用。但它只会准确到最后一个滴答声..所以可能会偏离 10 毫秒。但它肯定比将它与 CLOCK_MONOTONIC_RAW 一起使用更快。您也可以使用 gettimeofday,但带有 CLOCK_MONOTONIC_RAW 的 clock_gettime 比 gettimeofday 稍快且分辨率更高。gettimeofday() 也给出了挂钟时间,即使是夏令时也可能会改变……我认为你不应该用它来衡量流量率。

关于c - 如何计算基于 linux 的 pc 上的接收数据包速率?如 pps 或 fps,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21085370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com