【发布时间】:2011-10-22 18:09:08
【问题描述】:
我想知道如何在运行时最好地测量网络吞吐量。我正在编写一个客户端/服务器应用程序(都在 java 中)。服务器定期通过套接字向客户端发送消息(压缩媒体数据)。我想调整服务器使用的压缩级别以匹配网络质量。
所以我想测量大量数据(例如 500kb)完全到达客户端所需的时间,包括其间的所有延迟。像 Iperf 这样的工具似乎不是一种选择,因为它们通过创建自己的流量来进行测量。
我能想到的最好的主意是:以某种方式确定客户端和服务器的时钟差异,在每条消息中包含一个服务器发送时间戳,然后让客户端向服务器报告这个时间戳和时间之间的差异客户端收到消息。然后,服务器可以确定消息到达客户端所用的时间。
有没有更简单的方法来做到这一点?有没有这方面的库?
【问题讨论】:
-
我不明白为什么在开始服务客户端时很难在服务器端节省时间并检查结束时的持续时间。
-
那么您将如何检查持续时间?
标签: java networking bandwidth latency throughput