一.现行的带宽估计方法
现行的可用带宽估计得方法多为基于包在链路上延时的方法,如下图:
数据流分为背景数据流(正常数据),探测数据包。
由于转发链路间的带宽不同,导致包的链路延时随着链路发生变化。我们就可以通过探测包的延时时间,来估计链路的瓶颈带宽(即最小链路带宽)。
二.包探测带宽估计原理简析
如上面两个图,得出如下结论:
无论以怎样的带宽发送,中间链路如何,最终的带宽等于链路上的最小带宽,即平均带宽。
忽略其他条件,在理想条件下,带宽等于接收带宽。
三.方法分类:
分为单端探测和两端探测。
单端探测:利用ICMP协议,发送time-exp不同的ip包,从而取得各个路由器的时延,只通过发送一端来进行探测。
两端探测:send端和rev段,通过两端联合计时来计算。
下面列出了下面主流的探测方法和工具:
四.链路延时估计的五个问题
1.时间的准确性
通过测量发送达到时间的链路延时估计,依赖与计算机的时钟。有如下几个问题。
a.有的系统是ms级别的系统时钟,而控制包对需要us级别的时钟
b.系统调用函数延时大概为100us级别,以及网卡及其他延时。
2.包乱序与包丢失
包乱序与包丢失都会导致估计不准
3.路由算法
一般的路由算法为FIFO先进先出算法。也有的路由不是这种算法,如过载丢弃等等。
4.突发的背景数据
上述假设背景数据局部稳定的情况下。如果背景数据突发变化,会导致时间间隔错乱,如下图:
根据以上的缺点,一般的解决方法是用长序列的数据包队列,来获得相对稳定的探测,不过包丢列长度为多少,占用带宽等等也是问题。
五.接着单独分析单端和两端的缺点。
单端缺点:
1.反向的数据流对于正向流的影响很大
2.据研究,A—〉B的链路在小时单位内是稳定的,即端到端路径基本不变,但是B—〉A的路径不一定等于A—〉B路径。
3.ICMP的处理时间是100ms级别的,会有浮动。
4.现代的路由对于ICMP都有限速,不允许过多过快的ICMP
两端缺点:
1.两端都要有软件
2.时钟同步问题
文章整理归纳致:可用带宽度量系统中的若干基本问题。
上面介绍了带宽估计的基本面貌,接下来几篇blog具体分析各个协议。