pathload --有效的网络带宽估计方法

时间:2022-10-23 16:35:09

上一篇博客简述了现行的带宽估计的方法,分类,以及一些问题。

见:http://blog.csdn.net/ice110956/article/details/11071969

上文列出了13种现行的方法,这里首先介绍性能,准确性都较好的一个方法:pathload.

Pathload

首先介绍Pathload方法所属的类别

1.    正如上一篇blog所述,带宽估计的方法分为单端探测和两端探测,pathload属于两端探测;

2.    我们还可以根据发送的是包对,还是一系列紧相连的包,分为包对探测,包序列探测。Pathload属于包序列探测。如下图所示:

pathload --有效的网络带宽估计方法

3.    接上篇blog的一幅图:

pathload --有效的网络带宽估计方法

同样是包序列探测,还有许多不同的方法,比较直观的有两种:

一个是直接计算到达包的个数/秒,上图可得带宽为2packets/s.

另一个是用接收端到的时间-发送端发出的时间,具体到上图就是:

Da=t1+t2+0-0=t1+t2+0

Db=t1+t2+2-1=t1+t2+1

Dc=t1+t2+2

Dd=t1+t2+3;

接着再根据D来作进一步的计算,pathload就是用这种方法,具体实现下面介绍。

两个方法一个横向计算,一个纵向计算。

下面具体介绍pathload的方法。

一.判断是否过载

Pathload方法发送一个包序列,并记录发出时间以及到达时间。据证明,如果发送速率大于链路带宽,包的间隔会有增大的趋势;相反,发送速率小于链路带宽,没有这种趋势。发送端再根据这种趋势迭代地更新发送速率,直至收敛。

根据我们上面的图也能看出来,Da,Db,Dc,DD是直线上升的。

如下面两个图,横坐标是包间隔,纵坐标是单向的链路延时,即到达时间减去发送时间。

图1是在发送速率达于链路的情况下统计的,表明发送带宽达于链路带宽,D成增长趋势。

图2表明,小于的情况下,没有这种趋势。

图3表示网络带宽突然的增长导致曲线突然上升。

pathload --有效的网络带宽估计方法

pathload --有效的网络带宽估计方法

pathload --有效的网络带宽估计方法

上面我们只是直观地判断是否有增长的趋势,下面具体提出两个指标公式。

pathload --有效的网络带宽估计方法

PCT指标为增加的百分比;一直上升为1,不变为0;

PDT指标为绝对差值比去相对总浮动。直线上升为1,直线下降为-1,水平为0.

pathload --有效的网络带宽估计方法

pathload --有效的网络带宽估计方法

如上图所示,这两个指标有的时候是有差异以及盲点的。第一幅,虽然呈现上升趋势,当偶然的误差导致PDT为0;第二幅,同样也是上升,PCT却为4/11.

于是我们取如下的综合策略来进行综合评估。

1,  如果其中某个为上升,另一个是上升或不确定,则判断为上升。

2,  同样,如果其中一个为下降,另一个是下降或不确定,判断为下降。

3,  如果都为不确定,则判断为不确定

4,  一个上升,一个下降,结果丢弃。

pathload设置的PCT和PDT的阈值分别为:

PCT:0-0.54,下降;0.54-0.66,不确定;0.66-1,上升。

PDT:-1-0.45,下降;0.45-0.55,不确定;0.55-1,上升。

下面两个图分别展示着两个指标的准确度。

pathload --有效的网络带宽估计方法

pathload --有效的网络带宽估计方法

二.参数选择问题:

首先是包大小与发送周期的关系;

包的大小不能达于链路最小分包的大小,否则会被链路层切成小块;同样也不能过小,防止链路层填充包大小。

一般包大小为48-96byte.

发包的周期越小越好。

操作系统最小周期可达30us,pathload采用100us的周期。即间隔100us发送一个探测包。

于是首先确定要发送的包序列的带宽R,然后周期为T,再计算应该发送的包的大小,用如下的公式:

pathload --有效的网络带宽估计方法

然后是序列的长度。序列过长导致路由阻塞丢包。过短不能有效判断带宽。这里的长度为K=100,这样的一个序列成为一个stream.

一个stream的判断准确度有限,pathload里面用N个stream来综合评定是否上升。

Stream之间有一个小的间隔,只为等待两端的计算处理。

pathload中N是12,这样的12个stream称为一个fleet.

最后,根据N个序列的结果,我们还要做一次综合评定。取f=70%为阈值,即这N个fleet里面,增长或减少的判断数要分别大于70%才能下结论,否者定为不确定。

三.二分法收敛到估计带宽

我们上面最后的计算结果过载,不确定,或不过载。那么我们要如何估计网络的具体带宽呢?pathload用二分法来收敛到网络带宽。

一个fleet用于判定是否过载,接下来要用多个fleet进行带宽准确估计。每个fleet得到一个判定后,用二分法迭代,直到满足一定的收敛条件,程序如下:

pathload --有效的网络带宽估计方法

如上图,其中的R分别表示当前的发送速率,G表示当前的不确定区间。用二分法迭代收敛R和G,当满足一个阈值w,x的时候,表示收敛,可以得到最终的链路速率。这种方法最后确定的是一个速率区间。

四.几个注意事项:

1.接受方还要计算丢包率,当有丢包时,这个stream就被标记为不可用。如果多余一个stream丢包,或丢包率很大,直接把当前的速率作为上限,继续计算。

2.接受方还要计算两个包的发送间隔,间隔大于一定值时,接受端判断发送端发送线程被抢占,出现错误,以i为界限,把包分为两个部分,取大的一个部分继续计算,丢弃另一部分。如下图,只取后面的一段。

pathload --有效的网络带宽估计方法

五.结果

最后取(Rmin+Rmax)/2作为带宽估计值。试验表明,带宽越高,需要的收敛时间越长,15Mbps的带宽大概需要10个fleet即12S的时间。

参考文献:

Pathload: a measurement tool for end-to-end availablebandwidth

http://www.ece.ucdavis.edu/~chuah/classes/EEC274/refs/02JD-pathload.pdf

pathload --有效的网络带宽估计方法的更多相关文章

  1. Pathchirp—有效的带宽估计方法(二)

    上一个blog介绍了有效带宽估计方法:pathload.http://blog.csdn.net/ice110956/article/details/11126491. 做一个小小的总结:pathlo ...

  2. Eviews 9.0新功能——估计方法(ARDL、面板自回归、门限回归)

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 9.2 估计功能 eviews9.0下载链接: ...

  3. 宽带DOA估计方法

    Wideband DOA Estimation. 语音信号以及野外的车辆信号的声音都是宽带信号,所以传统的窄带DOA算法(MUSIC,ESPRIT等)都不适用.需要采用宽带DOA算法来计算目标信号的波 ...

  4. 基于CNN的人群密度图估计方法简述

    人群计数的方法分为传统的视频和图像人群计数算法以及基于深度学习的人群计数算法,深度学习方法由于能够方便高效地提取高层特征而获得优越的性能是传统方法无法比拟的.本文简单了秒速了近几年,基于单张图像利用C ...

  5. 局部化原理(Laplace渐进估计方法)

    设$f(x)$于$[0,1]$上严格单调递减,且$f(0)=1,f(1)=0$,证明: $$\int_{0}^{1}f^{n}(x)dx \sim \int_{0}^{\delta}f^{n}(x), ...

  6. 手势估计- Hand Pose Estimation

    http://blog.csdn.net/myarrow/article/details/51933651 1. 目前进展 1.1 相关资料      1)HANDS CVPR 2016      2 ...

  7. 增强学习(四) ----- 蒙特卡罗方法(Monte Carlo Methods)

    1. 蒙特卡罗方法的基本思想 蒙特卡罗方法又叫统计模拟方法,它使用随机数(或伪随机数)来解决计算的问题,是一类重要的数值计算方法.该方法的名字来源于世界著名的赌城蒙特卡罗,而蒙特卡罗方法正是以概率为基 ...

  8. 多元线性回归 ——模型、估计、检验与预测

    一.模型假设 传统多元线性回归模型 最重要的假设的原理为: 1. 自变量和因变量之间存在多元线性关系,因变量y能够被x1,x2-.x{k}完全地线性解释:2.不能被解释的部分则为纯粹的无法观测到的误差 ...

  9. 极大似然估计&最大后验概率估计

    https://guangchun.wordpress.com/2011/10/13/ml-bayes-map/ http://www.mi.fu-berlin.de/wiki/pub/ABI/Gen ...

随机推荐

  1. mysql数据库中如何修改已建好的表中的【列名】【列的属性】

    sql命令:alter table tbl_name change old_col_name new_col_name data_type not null auto_increment primar ...

  2. 怎么 才能显示Eclipse中Console的全部内容

    可以如下设置 preference->run/debug->console 设置limit console output 为false,方便调试时,查看全部console. 这个真是太有用 ...

  3. FreeMarker惯用内置函数

    1.sequence?first 返回sequence的第一个值. 2.sequence?last 返回sequence的最后一个值. 3.sequence?reverse 将sequence的现有顺 ...

  4. 禁止VMware用户在系统里删除网卡的操作的方法

    点击选项-常规-配置参数,如下图所示:   8)点击“添加行”,在新的栏目中,左栏输入:devices.hotplug,右边栏输入:false

  5. Object-C中的内存管理小记

    //错解1:内存泄露 - (void)setObj:(Object *)newObj { obj = [newObj retain]; } 当新旧对象指向不同时,执行这段代码后,obj会指向另一个对象 ...

  6. 当chm文档点击左侧,右侧无内容时的解决方案

    右击chm文件->属性->安全选项卡,选择你登陆计算机的用户名,把权限改成完全控制就可以显示了

  7. usaco 2008 月赛 lites 开关灯 题解

      题目:     Farmer John尝试通过和奶牛们玩益智玩具来保持他的奶牛们思维敏捷. 其中一个大型玩具是 牛栏中的灯. N (2 <= N <= 100,000) 头奶牛中的每一 ...

  8. SQL语句的CRUD

    一.基础 .说明:创建数据库 CREATE DATABASE database-name .说明:删除数据库 drop database dbname .说明:备份sql server --- 创建 ...

  9. uboot2012&lpar;一&rpar;分析重定位

    目录 引入 环境配置 编译体验 入口查找 代码分析 board_init_f pie 内存分布分析 SP设置 board_init_f 重定位 代码段重定位实现 变量地址修改 参考 title: ub ...

  10. Linux&lowbar;CentOS-服务器搭建 &lt&semi;一&gt&semi;

    本人CentOS版本6.3 必备的两个小软件: 安装PUTTY远程控制linux的非常小但非常好用的小工具. 安装WINSCP,使用ssh实现我windows上和linux服务器上文件的互传. 呵呵, ...