测量网络延时的思路
一、目的
测量两个互相网络连接的电脑之间的网络传播延时。
二、思路
1、设备A作为服务端,设备B作为客户端。
2、两个设备之间建立TCP协议连接。
3、一旦建立连接,设备A就进入定时发送脉冲包的步骤。
设备A每隔500毫秒,发送一个值是整数1的字节。
设备A发送5次后,发送值是0的字节,关闭连接。
4、设备B建立连接后,进入循环:
读到字节1,就记录一次当前的毫秒数。
读到字节0,跳出循环。
5、设备B根据这5次接收的时间点,求出各自的间隔时间。
假设结果如下:
第一次和第二次之间间隔540毫秒。
第二次和第三次之间间隔535毫秒。
第三次和第四次之间间隔542毫秒。
第四次和第五次之间间隔551毫秒。
已知服务端是每隔500毫秒发送一次的,那么从设备A发给设备B的数据每次传输需要的时间如下:
样本1: 540 - 500 = 40毫秒
样本2: 535 - 500 = 35毫秒
样本3: 542 - 500 = 42毫秒
样本4 : 551 - 500 = 51毫秒
最后求传输延时的平均数。
三、缺点
1、发送者不可能精确的定时500毫秒。
2、每次发送需要的时间可能不一样。
有时候网速快,有时候网速慢。
3、延时有两部分:
把数据从电脑内存里面发送到网线里的时间。
把数据从网线送到对方电脑内存里的时间。
缺陷:没有考虑程序记录当前时间这一过程需要的时间。