【发布时间】:2010-02-03 16:03:56
【问题描述】:
我想知道在通过 TCP 流发送数据时是否有一种编程方式来测量使用的全部带宽。由于我似乎不知道网络堆栈如何将流分成数据包,或者当它发送 TCP SYN 或 ACK 或它在后台为您执行的许多事情时,我只能对此进行粗略估计。
我能想到的唯一解决方案是实际嗅探接口,但我想认为堆栈已经可以为我收集这些统计信息。
这是在 Windows 或 Linux 下的 Java 中运行的(当然,首选可移植的解决方案),但我可以 JNI 化 C/C++ 答案,这样(和 OS API 调用)也是一个很好的答案。谢谢!
【问题讨论】:
-
如果您询问可用于收集此信息的操作系统工具,这确实是一个服务器故障问题。
-
不,我问的不是操作系统工具,我问的是可能收集此信息的 API。
-
嗯,除了嗅探还有什么解决办法吗?我有一个收集音频/视频流的应用程序,如果知道由于网络拥塞和 TCP 开销而使用的确切带宽,我真的会受益匪浅。
-
是的,我需要这个用于 .NET。
-
@Daniel:你需要问自己的问题。您可以使用指向此链接的链接并解释它的相似之处和不同之处(至少不同平台),但不要劫持。
标签: performance networking tcp measurement