[发明专利]一种报文调度方法和调度装置有效
申请号: | 200810161837.9 | 申请日: | 2008-10-07 |
公开(公告)号: | CN101374109A | 公开(公告)日: | 2009-02-25 |
发明(设计)人: | 周忠良 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/56 | 分类号: | H04L12/56 |
代理公司: | 北京安信方达知识产权代理有限公司 | 代理人: | 龙洪;霍育栋 |
地址: | 518057广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 报文 调度 方法 装置 | ||
技术领域
本发明涉及网络通信技术领域,具体地说,是一种报文调度方法和调度装置。
背景技术
随着芯片技术和网络处理器的飞速发展,网络设备的转发能力与日俱增,千兆、万兆端口已经很常见。相对来讲,实现协议功能的CPU处理能力发展相对较慢,芯片和CPU处理能力表现出越来越明显的不对称性。随着因特网的高速发展,当前网络中需要处理的数据越来越多。当协议报文流量超过当前CPU的处理能力时就需要采取手段对芯片上送流量进行管理和控制,比如对一些攻击性质的报文进行丢弃和封锁,对不很紧急或不很重要的报文进行缓存、延时处理等。比较常见的流量管理手段是队列管理,即对于拥塞流量先按照一定的规则分类缓存,然后按照某种算法进行调度处理。队列管理中常用技术是优先级队列(PQ,Priority Queue)或加权公平队列(WRR,WeightedRound Robin)。PQ的做法是先对流量分类,然后严格按照分类流量的优先级进行调度,先处理优先级高的再处理优先级低的,其缺陷是如果高优先级流量一直存在那么比它优先级低的流量就一直得不到调度。而WRR调度则是既在整体上保证流量的优先级,又能让每一个队列都有机会得到调度。
现有的WRR报文调度方法主要有两种:一种是严格的按照队列权重进行逐个调度;另一种是基于时间片的概念,轮循过程中有权重就调度一次,没有就跳过。第一种方法的缺点是,权重低的队列优先级被提高,而权重高的队列优先级被降低,对于每个队列流量是突发的,而且队列权重越大突发越严重,很容易造成系统的不稳定。第二种方法对流量突发进行了改善,但是当权重较小的队列权重用完后在调度周期的末端突发现象仍然很严重。因此,现有的WRR报文调度方法容易造成处理过程中流量不均匀,发生数据 突发,数据抖动较大,系统开销较高。
发明内容
本发明要解决的技术问题是提供一种报文调度方法和调度装置,可以均匀地处理流量,降低数据突发、减小数据抖动、减少系统开销。
为了解决上述问题,本发明提供了一种报文调度装置,包括队列权重模块、调度计算模块和调度器模块,其中:
所述队列权重模块,用于记录当前所有队列的权重,并将记录的权重提供给所述调度计算模块;
所述调度计算模块,用于在装置初始化时或队列权重被修改时根据所述队列权重模块提供的队列权重,对所述队列的调度顺序进行计算,得到队列的先后调度顺序,并将计算结果提供给所述调度器模块使用;
所述调度器模块,用于根据所述调度计算模块计算得到的调度结果对队列进行调度,将数据发送到CPU进行处理。
进一步地,还包括调度存储模块,用于存储所述调度计算模块计算得到的队列的先后调度顺序;所述调度器模块根据所述调度存储模块中存储的队列的先后调度顺序,对队列进行调度处理。
进一步地,所述队列权重模块包括一配置接口,用于对队列的权重进行配置。
进一步地,所述调度计算模块对所述队列的调度顺序进行计算的过程为:
在所有队列中找出权重最大的队列;
计算每个队列的权重调度因子,初始化每个队列的调度次数为0;队列的权重调度因子由权重最大的队列的权重除以本队列的权重取整得到;
调度权重最大的队列,确定下一个队列,然后判断该队列的权重是否为零,如果不是,将该队列的调度次数加1,然后判断该队列的调度次数是否大于等于该队列的权重调度因子,如果是,调度该队列,并将该队列的权重减1,同时将该队列的调度次数计数清零;如果该对队列的权重为0或者该 队列的调度次数小于其权重调度因子,则确定对该队列的下一个队列进行处理,直到所有队列的权重为0,调度顺序确定完毕。
本发明还提供了一种报文调度方法,包括:
确定各队列的权重,在所有队列中找出权重最大的队列;
计算每个队列的权重调度因子,初始化每个队列的调度次数为0;队列的权重调度因子由权重最大的队列的权重除于本队列的权重取整得到;
调度权重最大的队列,确定下一个队列,然后判断该队列的权重是否为零,如果不是,将该队列的调度次数加1,然后判断该队列的调度次数是否大于等于该队列的权重调度因子,如果是,调度该队列,并将该队列的权重减1,同时将该队列的调度次数计数清零;如果该对队列的权重为0或者该队列的调度次数小于其权重调度因子,则确定对该队列的下一个队列进行处理,直到所有队列的权重为0,调度完毕。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810161837.9/2.html,转载请声明来源钻瓜专利网。