QoS技术中令牌桶算法实现方式比较.docx

上传人:牧羊曲112 文档编号:4888571 上传时间:2023-05-21 格式:DOCX 页数:10 大小:320.08KB
返回 下载 相关 举报
QoS技术中令牌桶算法实现方式比较.docx_第1页
第1页 / 共10页
QoS技术中令牌桶算法实现方式比较.docx_第2页
第2页 / 共10页
QoS技术中令牌桶算法实现方式比较.docx_第3页
第3页 / 共10页
QoS技术中令牌桶算法实现方式比较.docx_第4页
第4页 / 共10页
QoS技术中令牌桶算法实现方式比较.docx_第5页
第5页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《QoS技术中令牌桶算法实现方式比较.docx》由会员分享,可在线阅读,更多相关《QoS技术中令牌桶算法实现方式比较.docx(10页珍藏版)》请在三一办公上搜索。

1、QoS技术中令牌桶算法实现方式比较Comparison Between Token Bucket Algorithms in QoS Technology 作者:李晓利,郭宇春摘要:令牌桶算法是目前IP QoS中最常采用的一种流量测量方法,广泛应用于约定访问速率技术、通用流量整形技 术以及物理接口总速率限制等技术中。IETF RFC建议规范了单速率三色标记和双速率三色标记两种令牌桶算法,在 桶的构成、令牌添加和报文处理流程方面前者较后者简单,成为目前业界比较常用的流量标记方式。在实际应用中, 应针对不同的流量特征选择恰当的标记方式。关键词:令牌桶;单速率三色标记;双速率三色标记;流量监管Abs

2、tract:The token bucket algorithm is the most popular method of traffic measuring in IP QoS technology. It has been widely used in Committed Access Rate (CAR), Generic Traffic Shaping (GTS), and Line Rate (LR) technologies. Two kinds of token bucket algorithmsa single rate three color marker and a tw

3、o rate three color markehave been recommended in the Internet Engineering Task Force (IETF) Request for Comment (RFC) documents. In view of the bucket architecture, the token adding, and the packet process, the single rate three color marker is easier than the two rate one. For practical application

4、s, different traffic characteristics choose different algorithm.Key words:token bucket; a single rate three color marker; a two rate three color marker; traffic policing随着因特网的发展,IP业务不断快速增长。提高信息在IP网络上传输的质量是IP网发展中 的一个关键所在。IP QoS技术的开发,目的就是为用户业务提供端到端的服务质量保证,已成为近 几年业界研究的热点。目前存在多种IP QoS服务模型,其中应用最广的是区分服务模型

5、(DiffServ)。 DiffServ模型通过数据包分类、拥塞管理、拥挤避免、速率限制和流量整形技术来实现服务质量控 制,在其速率限制和流量整形中,主要使用了令牌桶算法来评估流量速率是否超过规定值1】本文第一部分阐述了一下网络工程师任务小组(IETF)请求注解(RFC)建议规范的两种令 牌桶算法;第二部分简要介绍了令牌桶算法在IP QoS中的应用;第三部分详细说明了目前业界常 用的两种实现方式,并对两种方式的实现过程进行了具体的比较分析。1令牌桶算法基本原理令牌桶是网络设备的内部存储池,而令牌则是以给定速率填充令牌桶的虚拟信息包。每个到达的令牌都会从数据队列领出相应的数据包进行发送,发送完数

6、据后 令牌被删除。RFC中定义了两种令牌桶算法一一单速率三色标记算法和双速率三色标记算法,其评估结 果都是为报文打上红、黄、绿三色标记。QoS会根据报文的颜色,设置报文的丢弃优先级,其中单 速率三色标记比较关心报文尺寸的突发,而双速率三色标记则关注速率上的突发,两种算法都可工 作于色盲模式和非色盲模式。以下结合这两种工作模式介绍一下RFC中所描述的这两种算法。1.1单速率三色标记算法 IETF的RFC文件2定义了单速率三色标记算法,评估依据 以下3个参数:承诺访问谏率(CIR),即向令牌桶中填充令牌的谏率:承诺突发尺寸(CBS),即令牌 桶的容量,每次突发所允许的最大流量尺寸(注:设置的突发尺

7、寸必须大于最大报文长度);超额 突发尺寸住8$)。一般采用双桶结构:C桶和E桶。Tc表示C桶中的令牌数,Te表示E桶中令牌数,两桶 的总容量分别为CBS和EBS。初始状态时两桶是满的,即Tc和Te初始值分别等于CBS和EBS。 令牌的产生速率是CIR,通常是先往C桶中添加令牌,等C桶满了,再往E桶中添加令牌,当两桶 都被填满时,新产生的令牌将会被丢弃。色盲模式下,假设到达的报文长度为B。若报文长度B小 于C桶中的令牌数Tc,则报文被标记为绿色,且C桶中的令牌数减少B;若TcB Te,标记为红色,两桶总令牌数都不减少。在非色 盲模式下,若报文已被标记为绿色或B Tc,则报文被标记为绿色,Tc减少

8、B;若报文已被标记为 黄色或TcB Te,则标记为红 色,Tc和Te都不减少。1.2双速率三色标记算法 IETF的RFC文件3定义了双速率三色算法,主要是根据4 种流量参数来评估:CIR、CBS、峰值信息谏率(PIR),峰值突发尺寸(PBS)。前两种参数与单谏率 三色算法中的含义相同,PIR这个参数只在交换机上才有,路由器没有这个参数。该值必须不小于 CIR的设置值,如果大于CIR,则速率限制在CIR于PIR之间的一个值。与单速率三色标记算法不同,双速率三色标记算法的两个令牌桶C桶和P桶填充令牌的速 率不同,C桶填充速率为CIR,P桶为PIR;两桶的容量分别为CBS和PBS。用Tc和Tp表示两

9、 桶中的令牌数目,初始状态时两桶是满的,即Tc和Tp初始值分别等于CBS和PBS。色盲模式下,如果到达的报文速率大于PIR,超过Tp+Tc部分无法得到令牌,报文被标 记为红色,未超过Tp+Tc而从P桶中获取令牌的报文标记为黄色,从C桶中获取令牌的报文被标 记为绿色;当报文速率小于PIR,大于CIR时,报文不会得不到令牌,但超过Tp部分报文将从P 桶中获取令牌,被标记为黄色报文,从C桶中获取令牌的报文被标记为绿色;当报文速率小于CIR 时,报文所需令牌数不会超过Tc,只从C桶中获取令牌,所以只会被标记为绿色报文。在非色盲模式下,如果报文已被标记为红色或者超过Tp+Tc部分无法得到令牌的报文, 被

10、标记为红色;如果标记为黄色或者超过Tc未超过Tp部分报文记为黄色;如果报文被标记为绿或 未超过Tc部分报文,被标记为绿色。2令牌桶算法的应用2.1在流量监管中的应用约定访问速率(CAR)是流量监管常用技术之一4,它的监管原理如图1所示。根据预设的匹配规则先对报文进行分类,不符合匹配规则的报文不需要经过令牌桶的处 理,直接发送;符合匹配规则的报文,则需要令牌桶进行处理。当桶中有足够的令牌则报文可以被 继续发送下去,同时令牌桶中的令牌量按报文的长度做相应的减少;当令牌桶中的令牌不足时,报 文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送。这就可以限制报文的流量只能 是小于等于令牌生成的速

11、度,达到限制流量的目的。2.2在通用流量整形中的应用通用流量整形中(GTS)4(如图2所示)与CAR的原理稍有差别:第一,GTS只用于出方向流量限速,CAR出入方向均可以,但一般多用于入方向;第二, 利用CAR进行报文流量控制时,对超过速率限制的报文直接丢弃,而GTS则是对超过速率限制的 报文进行缓冲,即当令牌桶中的令牌少到报文不能再发送时,报文将被缓存入队列,等有了足够的 令牌之后再发送,这样就减少了报文的丢弃,但是要注意的是,如果缓存队列已满,这时到达的报 文仍旧会被丢弃。2.3在端口限速中的应用端口限速(LR)4(如图3所示)也用于出方向,但不同于GTS的是:第一,GTS与CAR是在IP

12、层实现的,所以对于不经过IP层处理的报文不起作用,而LR则 能够限制在物理接口上通过的所有报文;第二,LR不但能够对超过流量限制的报文进行缓存,并且可以利用QoS丰富的队列如优先级队列(PQ)、自定义队列(CQ)、加权公平对列(WFQ)等来缓存报 文。3令牌桶实现上面介绍了 RFC中定义的令牌桶技术原理以及其在IP QoS中的应用,但是在实际应用中,令牌桶究竟是怎么实现的?令牌桶中的令牌是怎么添加的?报文的处理流程又 是什么样的?下面就简单谈一谈令牌桶在业界的实现方式5】3.1单速率三色标记算法的实现3.1.1桶的构成在令牌桶的构成上,目前业界有两种方式,如图4所示。14单速率三色标记耸法的令

13、牌桶构成可以由一个桶实现,即C桶是E桶中的一部分(图4上),最终桶的容量是由EBS决定的。 不管有没有突发流量,EBS不能为0,必须大于或等于CBS。这种实现方式完全按照令牌桶的定义 来实现,因为CBS和EBS都是令牌桶的参数,所以放入一个相同的桶实现,通过突发计数器来进 行区分。也可以由两个桶实现(图4下),即C桶和E桶分开实现。如果不允许有突发流量,EBS则 设置成0。3.1.2令牌添加 令牌桶的添加完全依照RFC规定实现,按照恒定的速率CIR添加。即 每隔1/CIR时间添加一个令牌,添加顺序为先添加C桶再添加E桶,当令牌桶添加满的时候,再产 生的令牌就会被丢弃。实际中比较常见的有两种实现

14、方式:(1)周期性的添加,如图5所示,添加的时间间隔就是令牌桶的容量与添加速率的比值:Tc=CBS/CIR,每次添加的令牌数为CBS个;(2)一次性添加, 只有当令牌桶中没有令牌时才添加令牌,如图6所示,添加令牌的数量是AtxCIRIAt是当前时间 与上次添加令牌的时间之差),且是一次添加完毕,并不是按照一定速率添加。3.1.3报文处理流程 一般的报文处理方法如图7所示:当报文到来后,直接与桶中的令 牌数相比较,如果有足够的令牌就转发,如果没有足够的令牌则丢弃或缓存。这种令牌桶处理方式 在突发流量的处理上没有优势,也就是说当存在较大的突发流量时,令牌桶可能会由于没有足够令 牌无法处理报文,而且

15、在没有突发流量且报文到达速率较大时,报文处理流程也不连续,有时会因 为令牌数量不足而造成丢包。为解决这种无谓的丢包问题,目前业界采用了一种借贷机制的报文处理方法,如图8所示。 当报文到来后,只要令牌桶中有令牌,无论数量是否足够,都可以转发报文。当令牌数量小于报文 长度时,就可以欠债转发,即转发后令牌桶中令牌数目为负;当下次添加令牌的时候,先还清所欠 债务,再继续转发报文。这种处理方法较前者在处理突发报文时有优势,能够保证报文发送的连续 性。3.1.4实现方式比较假设令牌桶的总容量为1000kb,CIR为125kb/s,报文到达的速率为 200kb/s,报文长度为 125kB(1000kb)。方

16、式一:周期性添加令牌,只有当令牌数足够时才转发报文。添加令牌的周期为8s,而 转发一条报文的时间为5s。方式二:一次性添加令牌,当令牌数不足时采用借债机制。转发一条报文的时间是5s,但是添加令牌的时间是不一定的,每次添加令牌的数目为CIR*At。图9至图11是对这两种方式的令牌桶中令牌数、报文转发速率和令牌添加过程的比较。:翼原占贰:翼曜占式二两种方式报文处理过程中令牌桶中令牌数的比较分析数据的处理流程得出以下结论:(1)数据包丢弃率:方式二的丢包率远小于方式一。方式一中,由于令牌添加周期与报文发送周期的不一致,导致第6 s到第8 s由于没有令 牌不能转发报文。而第8 s到第16 s虽然在不断

17、添加令牌,但令牌数不足以转发一个报文,所以仍 旧无法转发报文,那在这一段时间内到达的报文将被丢弃掉。在前 16s的时间内丢包率达到了 10/1662.5%,由于添加令牌和发送报文的时间都是固定的,所以整个发送过程中的丢包率也为 62.5%。方式二中,第5 s第一条报文发送结束令牌被消耗光,但第6 s又立即加入了 750 kb令 牌,虽不够转发一条报文,但可以采用借债机制,直到第10 s第二条报文发送结束,累计欠债250 kb。这时若有报文到达,就不能继续欠债,而要注入新的令牌才能继续转发。直到第15 s第三条 报文发送完毕由于一次添加令牌不够还清所欠令牌,所以造成了短暂的丢包现象,而在前17s

18、内丢 包率仅为1/17”5.9%。(2) 突发流量处理:方式二在突发流量处理方面优于方式一。由图10可知,对方式一来说,由于令牌桶总的容量只有1 000 kb发送完每条报文后桶中剩余令牌数都为0。此时若 有突发流量,则报文必然被丢弃。而方式二令牌数可为负,当突发报文到达时即使令牌数不足仍可 通过欠债方式现将报文转发出去,后续再偿还债务。令牌湿加迎耗诂璨:基原方瓦:反哽左瓦二4图11两种方式添加令牌过 程的比较(3) 大小包混合时:方式一可能会造成大包始终得不到转发,而方式二则不会。如果发送一长度大于1 000 kb的报文,方式一中则始终会由于令牌不足而丢弃报文,方式二则可以 通过借债方式现转发

19、报文后偿还债务。(4) 数据流发送过程平缓程度:方式二数据处理的时间较长,所以趋势明显比方式一平缓。3.2双速率三色算法的实现3.2.1桶的构成双速率三色算法的实现,目前业界的实现基本上完全依照RFC的规定,用两个令牌桶来实现,两个令牌桶的容量不同,第一个是CBS,第二个是PBS。3.2.2令牌添加双速率三色标记算法中两桶添加令牌的速率不同,CBS桶添加令牌的速率是CIR,PBS桶添加令牌的速率则是PIR。添加令牌时先添加CBS 桶, CBS桶填满后再添加PBS 桶。3.2.3报文处理流程当发送连续流量时,先看报文速率是否超过PIR:当报文速率大于PIR时,超过PBS部分流量无法得到令牌,被标

20、记为红色报文;未超过PBS而从PBS桶中获取令 牌的报文标记为黄色报文;从CBS桶中获取令牌的报文被标记为绿色报文。当报文速率小于PIR, 大于CIR时,报文不会得不到令牌,但会超过CBS部分报文将从PBS桶中获取令牌,被标记为黄色报文;其他报文将从CBS桶中取令牌,被标记为绿色报文;当报文速率小于CIR时,报文所需 令牌数不会超过CBS,所以只会被标记为绿色报文。当发送突发报文时,若突发流量大于PBS,则超出部分统计为红色报文;当突发流量大于 CBS,但小于PBS时,则超过CBS部分标记为黄色报文;当突发流量小于CBS时,全部标记为绿 色报文。在流量控制中,用户可针对不同颜色的报文设定不同行

21、为,如;允许通过、丢弃、或重新 标记优先级等。3.3单速率三色算法与双速率三色算法的比较单、双速率三色标记算法的比较如表1所示。*表1单双速率三色标记耸法比较辨制D方式 薛,单神I双flit券用恒定爱洲两做00例的速率不旧椭为匚瑚5,报京枫色;大于所,报交泊色;汀二养目匝时用可采用曲面所说的愉疏方式a单速率三色标记算法采用单桶或双桶结构,令牌添加方式和报文处理流程比较简单;双速 率三色记算法采用双桶结构,令牌添加方式和报文处理流程相对复杂。前者关注报文尺上的突发, 后者关注速率上的突发,两者各有优点。4结束语相对双速率三色标记算法而言,单速率三色标记算法由于实现简单等原因,成为目前业界比较常用

22、流量标记方式。但不同的实现方式决定了其具有一定的性能差异,合理的采 用借债方式可以弥补其在丢包率、突发流量处理性能、大小包混合转发性能、数据转发平缓程度等 性能方面的不足,但当存在较大速率的突发流量时,单速率三色标记算法的借债机制将不能较好的 改善性能问题,所以单速率三色标记算法不能完全取代双速率三色表算法。在实际应用中,应针对 不同的流量特征选择恰当的标记方式。5参考文献:1何宝宏.ip网络的服务质量讲座:第4讲IP网络流量与拥塞控制技术 J.中国数据通信,2003, 5(5): 96-99. 2 Heinanen J, Guerin R. IETF RFC 2697: A single rate three color markerR. Philadelphia, PA, USA: University of Pennsylvania, 1999. 3 Heinanen J, Guerin R. IETF RFC 2698: A two rate three color markerR. Philadelphia, PA, USA: University of Pennsylvania, 1999. 4李建宝,桑海.令牌桶算法在 IP QoS中的应用J.华南金融电脑,2006, 14 (4): 98-99. 5 Qo熨术白皮书EB/OL. http: /www.huawei-

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号