如何衡量套接字消息的传输时间?

时间:2011-03-28 15:08:03

标签: c++ sockets optimization network-programming

我在Intranet中的2个不同服务器上有客户端和服务器应用程序。如何衡量从服务器发送到客户端的消息所需的时间? (我不能依赖机器时间戳,因为它们可能已关闭)

4 个答案:

答案 0 :(得分:2)

从客户端ping服务器,将报告的时间除以2。虽然对实际延迟的估计略微乐观,但这是一个非常好的。 (Ping使用ICMP协议;由于TCP首先需要set up a connection,因此您将使用TCP应用程序获得不同的测量值。)

如果要在C ++应用程序中执行此操作,最佳选择可能是调用ping命令并解析其输出。 ESP。在Unix上,您通常需要root个权限才能发送ICMP数据包。

答案 1 :(得分:0)

如果你不能依赖同步时钟,那么唯一的方法就是让一条消息在那里传回,就像ping一样。如果你想知道只有那里的旅行(或旅行回来)需要多长时间,你可以除以2。

答案 2 :(得分:0)

您可以使用ping来估算从客户端到服务器并返回的数据包往返时间。

答案 3 :(得分:0)

如果您可以在每台机器上访问准确的时间源,您可以直接使用它来计算时间戳,或者使用它来计算机器时钟之间的差异。什么准确的时间源?全球定位系统。这是Google提供的产品的第一个链接:(link)