网络通信 频道

带宽延时如何产生的?如何有效地计算?

  【IT168 专稿】现在,我们对带宽延时及计算方法开始进行讨论,大家基本确定,带宽延时就是串行延时。会后偶再查阅相关也资料表明,这个结论是正确的。那么什么是串行延迟?确切的讲,串行延迟产生的根本原因是将数字数据放到传输线路中的串行化的结果,所以,其延迟大小取决于传送线路的速度。也就是说,无论我数据包大小如何,把它放到线路上串行化传输所花的时间,跟带宽是有真接关系的。

  当我们明白这个定义后,对于计算带宽延迟和精确计算带宽是多少就有了理论依据。其结果就是,在特定条件下,我们只要一个数据包,就可以得出带宽延迟及精确计算出这条线路的带宽。当然,这个数据包最好的满负荷的,也就是1500字节左右。

  下面我们通过实例来求证:

  偶测试的环境是10M的小区宽带,当前状况下没有其他网络应用,偶通过IE到本地电信最近的一个测试网站,下载一下大文件,同时进行抓包,并进行分析。结果如下:

  

  大家可以看到红色方框中的数据。我们先来给出计算方法:
  1,每个红色方框中的两个数据包的延时,下面的减去上面的,就是这个带宽的延时,也就是串行延迟。比如第二个方框:0.017009-0.015850=0.001159,也就是说,带宽延迟约1MS。大家可以每个都计算下,得出结果的约值是一样的。

  2,当我们计算出传送这个数据包后的时候,通过这个数据包的大小,除以这个延迟,那么就可以得到带宽。还是比如第二个方框:(1438+8+12)*8/0.001159=10063848.144952545297670405522002 =10 M   ,这个结果相当精确!

  相信大家觉得这里面还有一些问题,如下:
  1,这样计算延时,其实里面还包含有其他延时,比如距离延时、交换延时、服务器的响应延时,所以这个值并不精确!
  答:OK,这个值确实不精确。但是据有关资料显示,光速是300000公里/S,对于陆地电缆连接来说,延迟大约是200公里/MS,那么从偶所在位置,到本地电信的的距离,而且是光纤到楼的,那么这个延迟会是多少呢?基本上,个人以为,城内到电信的距离延时可以人为不计^-^;另外就是交换延时,现在交换机性能越来越好,更何况到本地电信,也不会有太多交换,那这个值是不是也可以人为不计呢?^-^;倒是服务器响应延时,这个是比较有影响的一个重要因素,必竟就这一块就包含了数据库查寻时间,应用本身响应的延时等,还跟服务器当前硬件负荷有关,所以不可不查!因此,我们在选择数据包时,可以选择连续过来的两个数据包,因为第二个数据块跟第一个数据块已经都同时在服务器的发用队列的缓冲里面,只不过第一个先发,第二个立即接着发送,这样,基本就不用考虑服务器的响应时间了。(这其实是已经可以考虑到的最为精确的了)

  2,带宽可能还会被其他数据暂用,你如何确定这个数据包上没有其他数据?
  答:这个就要回到理论,看串行延迟了。所谓串行延迟,就说明数据包是串着发出来的,也就是说,当我们有足够的时间细粒度观察,那么可以发现,线缆上有一个数据包时,就不会有另一个数据包,所以数据包是一个接着一个串着发送过来的。也就是说,一个数据包就可以暂用整个电缆的频率。

  这些都是偶个人的理解,并且在这两天做了大量的计算,基本跟理论一致。欢迎大家拍砖!!也期待大家可以一起讨论。

  注:本文由睿博工作室合作提供,睿博工作室系一群在网络性能,网络安全及网络故障方面的资深团队。
 

0
相关文章