一种基于抽样统计改进CHOKe算法.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
一种基于抽样统计改进CHOKe算法

一种基于抽样统计改进CHOKe算法   摘 要: 对流行的几种CHOKe算法进行了分析,深入研究了CHOKe算法存在的对高速非适应流的处罚力度不够,不能够很好地实现带宽的公平性的问题。利用到达分组的统计特性,提出一种改进的CHOKe算法,仿真结果表明,在不保持流的状态信息下,该机制对非适应流具有更好的识别和控制能力,与其他CHOKe算法相比,能进一步加强对非适应流的惩罚,实现更为公平的带宽分配。 关键词: 主动队列管理; CHOKe; 非适应流; 公平性 中图分类号:TP393 文献标志码:A 文章编号:1006-8228(2013)08-49-03 0 引言 目前Internet网络拥塞控制的主要方法是采用端到端的TCP拥塞控制与中间结点(路由器)拥塞控制相结合的方法[1]。端到端的TCP拥塞控制根据网络的丢包情况来判断网络的拥塞情况,从而调整源端的发送速率,从源头来控制进入网络的包的数量;中间结点的拥塞控制主要依据既定的策略对包进行丢弃,以达到对网络的拥塞控制。 随着非响应流在Internet所占比例的增加,中间结点的拥塞控制在整个拥塞控制中占的比重也随之增加,中间结点拥寒控制算法越来越多地受到人们的关注。CHOKe[2]作为一种工作机制其相对简单、实现容易的无状态的中间结点拥塞控制算法受到人们的青睐,但如何进一步提高其对非适应流的识别的精确率,实现转发流公平性成为当前研究的热点。本文在深入分析现有的CHOKe各种算法基础上,提出一种新的改进的CHOKe,并通过NS2模拟验证了此算法对各流的公平性与对非适应流的精准性的效果。 1 CHOKe算法及其发展 CHOKe(choose and keep for responsive flows, choose and kill for unresponsive flows)算法是一种基于RED的改进算法,是一种完全无状态的近似公平的队列管理算法,即无需保留任何流的状态信息就能实现一定公平的主动队列管理算法(AQM)。当前CHOKe主要有B_CHOKe、M_CHOKe、A_CHOKe和LA_CHOKe等版本。 B_CHOKe算法:即基本的CHOKe算法,当一个分组到达时,就随机从当前队列中取出一个分组与之比较,如果二个分组都属于同一个流,就同时丢弃这两个分组;否则对将取出的分组放回队列中,对刚到达的分组根据当时的拥塞水平计算丢弃概率(该丢弃概率的计算与RED算法相同),再按该概率对到达的分组进行丢弃。 M_CHOKe算法[3]:在B_CHOKe算法的基础上,加大了从当前队列中取出的分组的个数,即增加了比较次数。M_CHOKe算法从当前的队列缓存中取出m(m1),将所有的m个分组与刚到达的分组进行比较,若有与刚到达的分组有相同的流ID则丢弃。事实上,B_CHOKe算法是M_CHOKe算法当m=1的特例。 A_CHOKe算法[3]:由于CHOKe的完全无状态的设计,事先并不能知道有多个非适应流,比较难以选取合适的m参数,为此CHOKe还有一种自适应改进类型,即A_CHOKe算法,该算法将minth和maxth之间划分为k个区间,分别标记为R1,R2,…,Rk。当平均队列长度位于不同的区间时,就选择不同的m值。比如,当平均队列长度位于Ri区间时,m=2i。当平均队列长度越长,则比较的次数越多,从而能够自适应地提高CHOKe算法识别出非适应流的能力。 ECHOKe算法[4]:在M_CHOKe的基础上加大了对非适应流的惩罚力度,将m个分组中与到达分组的流标识匹配,若匹配,将所有匹配分组及到达分组都丢弃;若匹配不成功,将m个分组中的流标识相同者最大者(大于1)的一个分组丢弃。 S_CHOKe算法[5]:按间隔时间T对到达的分组进行采样,将采样分组的流标识放入采样列表,对每一个到达的分组,先从采样列表中随机抽取一个流标识进行比较,若相同,则认为是采样击中,然后再与路由器队列中m个分组相比较,若再次一样,则称为队列击中,删除击中分组。S_CHOKe算法以采样击中来代替提高击中概率。 对上面的算法进一步分析,发现存在以下的不足。 ⑴ B_CHOKe算法采用只比较一次,当网络中流较多时,公平性与惩罚力度都会下降。 ⑵ M_CHOKe算法与A_CHOKe算法通过增加比较的次数,提高了击中概率,在击中精度方面仍存在问题。同时也只是丢弃一个分组,惩罚力度也不够大;另外,m个分组是从整个队列中随机抽出,没能充分体现网络数据包的突发性,同时也没有充分地利用抽出的m个分组的统计信息来进一步加大对非适应流的识别精度。 ⑶ ECHOKe将m个分组中击中的所有分组全部丢弃,在增加了非适应流分组丢弃概率的同时,也增加了适应流的

文档评论(0)

docman126 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档