计算连接速率(ms)(延迟)

时间:2012-05-05 00:07:34

标签: c# tcp

我正在尝试计算连接客户端(服务器 - >客户端)的延迟,我想在ping循环期间执行此操作(测试以查看客户端是否仍然连接)这是我的ping它(尝试发送数据,如果失败,客户端已断开连接)。

        while (information.connectionEst)
        {
            try
            {


                byte[] data = Encoding.ASCII.GetBytes("");

                stream.Write(data, 0, data.Length);


            }
            catch (Exception e)
            {

                killConnection();
                thread.Abort();
            }

        }

我假设我需要计算发送数据包所花费的时间。但我不知道该怎么做。任何帮助都会被指定。

1 个答案:

答案 0 :(得分:2)

很难获得连接的单向延迟(服务器→客户端)。如果您知道连接的每一端都有非常准确的时间(例如GPS或原子钟或非常接近的高质量NTP同步时钟)以及专用于该任务的每一侧运行的软件,则可以执行此操作。 p>

否则,您可以做的最好是计算两个方向的延迟(RTT,往返时间),除以2,并希望连接是数据包的路径是对称的。如果数据包的路径不对称,那么数据包在一个方向上的传输时间要比另一个方向长,而且您无法知道先验的长度。

计算RTT是微不足道的:让第一方发出短消息并让另一方立即返回另一方。第一面从发送请求消息到获取RTT的时间中减去收到响应消息的时间。

相关问题