【问题标题】:Getting UDP traffic statistic between particular hosts on Linux获取 Linux 上特定主机之间的 UDP 流量统计信息
【发布时间】:2011-06-08 09:32:10
【问题描述】:

我需要收集一些网络统计数据来测试我的服务器应用程序。我尝试了许多 linux 工具,但没有找到适合我的需求。

基本上,我想收集一些 UDP 统计信息(字节/时间间隔、数据包/时间间隔、数据包丢失),但仅针对两个特定主机 - 例如,我想从从 IP_A:PORT_A 到 IP_B:PORT_B 的流量中获取 UDP 统计信息。

tcpdump/wireshark 之类的工具可以轻松转储此类流量,但我在获取临时速度等统计信息时遇到了问题(也可以查看吞吐量窥视),并且 linux 系统统计信息为我提供了所有流量的数字。

最好能得到文本输出,这样就可以解析它。

有人知道我该如何实现吗?

提前致谢 哈嫩

【问题讨论】:

  • wireshark 有一个 I/O 图,这是你需要的吗?

标签: linux networking statistics udp


【解决方案1】:

这是 libpcap 库的教程:

要确定数据包丢失,您的程序可能需要处理一对日志,并确保在目标上找到源上的 UDP 消息。这样做的一个好方法是保持一个数据包窗口等于您设置的超时时间,将所有数据包加载到窗口中,对它们进行排序,然后在所需时间范围内搜索所有数据包,标记它们如你所见。用完一分钟后,从缓冲区中删除该分钟的一半,然后加载接下来的 30 秒并重新排序。

如果您有很多(数百万?可能应该对其进行分析)数据包,使用所谓的Counting Bloom Filter 可能更快,因此您可以确定您的数据包是否“可能”在很快就到了。

如果您不是在寻找编程建议,请将您的问题提交给 serverfault。

【讨论】:

    猜你喜欢
    • 2017-01-22
    • 1970-01-01
    • 2011-12-26
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多