CN101188547A - 结合虚拟监控组和car速率限制提高转发效率的路由器 - Google Patents
结合虚拟监控组和car速率限制提高转发效率的路由器 Download PDFInfo
- Publication number
- CN101188547A CN101188547A CNA2006101458224A CN200610145822A CN101188547A CN 101188547 A CN101188547 A CN 101188547A CN A2006101458224 A CNA2006101458224 A CN A2006101458224A CN 200610145822 A CN200610145822 A CN 200610145822A CN 101188547 A CN101188547 A CN 101188547A
- Authority
- CN
- China
- Prior art keywords
- formation
- packet
- bandwidth
- virtual monitor
- router
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种路由器,位于相邻网络之间,包括:端口:用于接收通过CAR速率限制的数据包和发送数据包;存储器:划分给各个队列并由虚拟监控组监控;中心处理器:依触发根据所述虚拟监控组的优先级从其内所述队列中调用并转发数据包。这种路由器,选取简单的令牌计算方法,同时兼顾了网络转发效率,利用虚拟监控组管理队列,使调度更加简单快捷,同时可以提供低时延服务和带宽统计复用服务,绝对资源保证服务和尽力而为服务,其适用面广,可以应用于基于流的服务质量保证,基于类的服务质量保证,点到点或者点到多点的服务质量保证。
Description
技术领域
本发明涉及计算机网络通信,具体涉及一种互联网协议(IP)网络中为实现服务质量保证而提高转发效率和速度的路由器。
背景技术
随着互联网的迅速发展,网络提供的业务功能日趋完善,网络的服务质量成为网络运营商,网络设备制造商以及网络用户关注的重点,也是开发人员的研究热点。
研究人员已经设计出多种装置和调度算法来保证网络的服务质量,各种装置包括拥塞避免,报文分类,拥塞管理,流量整形等,各种装置的作用体现在服务质量保证的不同阶段,例如拥塞避免是在数据入口处对数据包进行过滤以避免发送队列出现拥塞;报文分类是在接收到数据包后,送入队列之前,是队列设计的基础;拥塞管理是队列调度时决定以何种方式发送队列中的数据包;流量整形是对某一网络的某一连接的流量进行监控,以防止流量的突发。调度方法包括公平队列调度(Fair Queuing,FQ),优先级队列调度(Priority Queuing,PQ),定制队列调度(Custom Queuing,CQ),加权公平队列(Weighted Fair Queuing,WFQ)以及基于类的加权公平队列(Class BasedWeighted Fair Queuing,CBWFQ)等。每种调度方法都针对不同的网络服务要求,以保证相应的网络服务质量。例如公平队列调度给与所有的队列相同的调度机会;优先级队列调度将数据流根据优先级进行简单分级并实施基于优先级的队列调度;定制队列调度根据用户对资源的分配给不同的队列分配不同的调度比例;加权公平队列调度是在保证公平的基础上对不同优先级业务的区别对待。基于类的加权公平队列相当于CQ,PQ和WFQ的结合,提供了实时调度队列和加权队列。每种调度队列都有其优点和不足,适用范围也都有一定的限制,需要针对具体的情况进行选择。
但是现有方法中对队列的管理还没有给予特别的关注。一般路由器中可以允许用户配置的服务质量保证队列的数目少至几十条多至几百条,如何有效的管理这些队列,对提高路由器的转发速度有很大的影响。另外,网络流量都是突发性的,往往是一段时间内有持续且大量的流量经过,而其他时间没有流量,因此对服务队列的管理和调度也不应该是一成不变的。
中国专利CN01117978与本发明提出的路由器较为相似。中国专利CN01117978将数据包分类进入三种服务队列,包括尽力而为服务队列,负载可控服务队列和保证服务队列,每种队列中可以包含多条虚拟队列,存放不同分类的数据包。这种方法仅提供三种服务队列,且仅仅是将虚拟队列简单的罗列进三种队列中,没有进行有效的监控和管理,可以满足的服务质量要求也比较少。
发明内容
本发明需要解决的技术问题是一种路由器,在对队列进行分类的基础上,进一步管理从而提高数据包的转发速度和效率、提供高质量的网络服务质量保证。
本发明的上述技术问题这样解决,提供一种路由器,位于相邻网络之间,包括:
端口:用于接收通过CAR速率限制的数据包和发送数据包;
存储器:划分给各个队列并由虚拟监控组监控;
中心处理器:依触发根据所述虚拟监控组的优先级从其内所述队列中调用并转发数据包。
按照本发明提供的路由器,所述虚拟监控组中的所有队列是同一类,包括实时队列、默认队列、统计复用队列和绝对资源保证队列中的一种或多种。
按照本发明提供的路由器,所述转发是根据定时器或接收的数据包触发。
按照本发明提供的路由器,所述CAR速率限制包括字节令牌或数据包令牌方式。
按照本发明提供的路由器,若Lasttick小于Nowtick,Token=(Nowtick-Lasttick)*Bandwidth+Lasttoken;Lasttick大于Nowtick,Token=(Lasttick-Nowtick+0xffffffff)*Bandwidth+Lasttoken;其中,Token是该队列获得的令牌数,Lasttoken是上次发包结束时该队列剩余的队列数,Lasttick是该队列上一次收到数据包的系统时间,Nowtick是本次收到数据包的系统时间;Bandwidth是该队列分配的带宽,如果该队列允许统计复用,则Bandwidth是该队列分配带宽与其他队列可统计复用的带宽的总和。
按照本发明提供的路由器,若Lasttick小于Nowtick,Nowtoken=(Nowtick-Lasttick)*Bandwidth;若Lasttick大于Nowtick,Nowtoken=(Lasttick-Nowtick+0xffffffff)*Bandwidth;其中Nowtoken是该队列当前所剩余的令牌。
按照本发明提供的路由器,所述监控是指一定时间内有或没有新数据包的被端口接收放入所述虚拟监控组内的队列,有为可用队列;所述转发仅从所述可用队列中读取。
本发明提供的路由器,入队时采用承诺访问速率Committed AccessRate,简称CAR,进行速率限制,选取简单的令牌计算方法,同时兼顾了网络转发效率,首次提出虚拟监控组的概念,利用虚拟监控组管理实队列,在实施具体转发之前,实队列不直接面对调度模块,使调度更加简单快捷,出队时根据队列所属虚拟监控组的优先级以及队列本身的带宽要求决定数据包出队的顺序和数量,可以同时提供低时延服务和带宽统计复用服务,绝对资源保证服务和尽力而为服务,充分利用接口带宽。该方法适用面比较广,可以应用于基于流的服务质量保证,基于类的服务质量保证,点到点或者点到多点的服务质量保证,可以提供实时队列,默认队列,统计复用队列和绝对资源保证队列。
附图说明
下面结合附图和具体实施例进一步对本发明进行详细说明。
图1为本发明路由器中各模块间的关系示意图。
图2为本发明路由器中虚拟监控组模块的结构及其与实队列的关系示意图。
图3为本发明路由器中接口管理模块结构与虚拟监控组模块的关系示意图。
图4为本发明的CAR队列管理实现方法的数据包进入实队列的处理流程图。
图5为本发明的CAR队列管理实现方法的队列调度处理流程图。
具体实施方式
按照本发明提供的CAR队列管理方法,所述虚拟监控组管理两类队列,即空闲队列和可用队列。一定时间内没有数据包到达的队列称为空闲队列,否则称为可用队列。关于空闲队列和可用队列的实现和管理,本发明申请人已在另一篇专利申请文档《一种计算机网络数据包转发的队列管理方法》中详细介绍。本发明具体实施例中出现的队列指可用队列。
首先,说明本发明主要思想:本发明提出一种可以满足复杂的网络服务质量要求、用于服务质量保证的计算机网络节点装置和方法,入队时采用承诺访问速率Committed Access Rate,简单CAR进行速率限制,选取简单的令牌计算方法,同时兼顾了网络转发效率,首次提出虚拟监控组的概念,利用虚拟监控组管理实队列,在实施具体转发之前,实队列不直接面对调度模块,使调度更加简单快捷,出队时根据队列所属虚拟监控组的优先级以及队列本身的带宽要求决定数据包出队的顺序和数量,可以同时提供低时延服务和带宽统计复用服务,绝对资源保证服务和尽力而为服务,充分利用接口带宽。该方法适用面比较广,可以应用于基于流的服务质量保证,基于类的服务质量保证,点到点或者点到多点的服务质量保证,可以提供实时队列,默认队列,统计复用队列和绝对资源保证队列。
第二,说明本发明提供的计算机网络节点装置,该装置包括以下模块:
收包模块,用于从物理接口接收数据包;
分类模块,用于对数据包进行分类,也就是为数据包选择合适的队列;
CAR模块,用于对流量进行监控,防止某网络连接的流量突发或者限制其流出网络连接的速度;
令牌计算模块,用于计算某个流或者某个类在一段时间内获得的令牌数目;
虚拟监控组模块,用于对具有相同属性的某些队列进行统一管理,简化调度过程;
接口管理模块,用于存储某个接口的收发包统计数据,接口下虚拟监控组的配置数目,该接口最近一次调用的虚拟监控组,该接口的带宽分配大小,该接口待发送的数据包数目,该接口收发数据包的统计数据等。
实队列模块,用于存放待发送的数据包,实队列模块中包含所有根据用户的配置所生成的实队列。
调度模块,用于从队列中取出待发送的数据包,并发送该数据包,调度模块针对用户不同的配置采用不同的调度算法。
其中,所述收包模块是整个服务质量保证流程的辅助模块,分类模块是服务质量保证流程的真正的操作入口,CAR模块是服务质量保证流程的第一步骤,令牌计算模块是CAR模块的辅助部分,CAR模块和令牌计算模块和虚拟监控组模块对实队列进行操作,调度模块同时对虚拟监控组模块和虚拟监控组中的实队列进行操作。
进一步地,收包模块根据不同的物理接口类型对该接口接收到的数据包进行处理,将数据包整合成统一的结构,方便后面模块对数据包的统一处理;
进一步地,所述分类模块可以有多种分类标准和规则,例如根据数据包的优先级分类,或者根据数据包的目的地址和源地址分类等;
进一步地,CAR是流量整形的一种方法,它规定了数据包以何种速度进入或者离开队列,对超过速度限制的包进行丢弃。
进一步地,所述令牌是CAR操作中的一种限速方式,可以分为字节令牌和包令牌,使用字节令牌的CAR仅允许包容量小于令牌大小的数据包进入队列,使用包令牌的CAR仅当令牌大于0时才允许数据包进入队列。
进一步地,实队列就是真正存储待发送数据包的队列,虚拟监控组是某些具有相同特征实队列的集合,它本身并不存储数据包,但是它对属于本虚拟监控组的所有实队列中的数据包进行管理。
进一步地,调度是指数据包的出队,调度往往是采用某种算法来决定何时取某个队列的某个数据包。
第三,说明本发明用于服务质量保证的所述CAR队列管理方法,包括:
步骤A.用户在使用服务质量保证功能之前对需要服务质量保证的网络流量进行配置,系统根据用户的配置预先生成与各种流量类别相对应的实队列;
进一步地,用户进行服务质量保证的配置方法包括网络流量分类和带宽申请,其中网络流量分类包括根据数据包的优先级进行数据包分类,或者根据数据包的源地址和目的地址进行数据包分类,又或者根据数据包的某些字段进行数据包分类等;带宽申请是为各个网络流量在网络某个节点处所允许的最大带宽进行设置,网络实际转发时,该流量的转发速度不能超过最大带宽;
进一步地,接口管理模块中记录了接口的带宽分配信息,如果用户申请的带宽超过接口剩余带宽的分配能力,用户的带宽申请将会失败,用户对此网络流量的配置也会失败,不会生成相应的实队列;
步骤B.虚拟监控组模块根据已配置队列的服务质量要求和分类情况实时的调整已创建的虚拟监控组的数目,以及每个虚拟监控组中包含实队列的数目,同时虚拟监控组中还包含该虚拟监控组所辖实队列的收发包统计数据,该虚拟监控组最近被调用模块调用的实队列,该虚拟监控组中所辖实队列中待发送的数据包的总和,以及该虚拟监控组所辖实队列的头队列指针等。完成用户配置后就等待数据包的到来;
步骤C.收包模块从物理接口接收数据包;
步骤D.分类模块对接收的数据包进行分类:
进一步地,分类标准可以根据数据包的优先级,或者数据报文中的某些字段进行分类,提供基于类的服务质量保证;也可以是根据数据包的源地址,目的地址,源端口和目的端口进行分类,提供基于流的服务质量保证;还可以是根据目的地址和/或源地址进行分类,提供点到点或者点到多点的服务质量保证;
步骤E.CAR模块操作的对象是各个实队列,对于某个实队列,CAR根据该队列对带宽的要求计算出需要进行限速的上限,操作过程如步骤F,凡是超过上限的网络流量都被丢弃;
步骤F.在CAR模块进行限速的操作中,需要调用令牌计算模块计算在某一个时刻,某个队列所能接受的网络流量的上限。令牌计算模块采用以下算法:
其中:Token是此时该队列获得的令牌数,Lasttoken是上次发包结束时该队列剩余的队列数。Lasttick是该队列上一次收到数据包的系统时间,Nowtick是本次收到数据包的系统时间,如果Lasttick小于Nowtick说明系统时间没有发生翻转,则采用表达式1;如果Lasttick大于Nowtick说明系统时间发生翻转了,采用表达式2。Bandwidth是该队列分配的带宽,如果该队列允许统计复用,则Bandwidth是该队列分配带宽与其他队列可统计复用的带宽的总和;
步骤G.通过CAR模块限速后的数据包,根据其分类情况选择进入实队列模块的相应队列中;
步骤H.调度模块通过定时器触发,或者通过收包触发,从实队列中调用并转发数据包。调度模块的调度算法采用基于优先级和带宽保证的轮转调度方法,也就是调度模块会首先保证优先级高的虚拟监控组中的数据包优先发送,对于同属一个虚拟监控组的实队列采用轮转调度的方法;
进一步地,各实队列带宽通过前面的CAR模块来保证,调度模块可以采用多种调度方法来调用并转发数据包,例如WFQ,CQ或者PQ等,在本发明实例中,仅以轮转调度为例说明调度的具体过程;
进一步地,调度模块首先检查接口管理模块中记录的最近一次做过发包操作的虚拟监控组,如果该虚拟监控组的优先级最高,调度模块进行步骤I;如果该虚拟监控组的优先级居中,调度模块进行步骤J;如果该虚拟监控组的优先级最低,调度模块进行步骤K;
步骤I.虚拟监控组模块中记录了该虚拟监控组最近被调用模块调用的最后一个实队列,调用模块从该实队列开始检查,如果该队列有待发送的数据包则转发这些数据包,然后继续向下检查其它实队列是否有待发送的数据包,直到调用模块发送完该虚拟监控组中所有后续实队列的数据包。调度模块继续按照优先级从高到低的顺序检查并发送其他优先级的虚拟监控组中待发送的数据包,所有这些调度转发的前提是该接口仍有发送数据包的能力,在调度过程中实时更新虚拟监控组模块和接口管理模块中的收发包统计数据以及待发送数据包的数目,在此次调度模块操作结束后,更新接口管理模块中的最近一次调度的虚拟监控组,和更新最后调用的虚拟监控组中最近被调用的实队列;
步骤J.调度模块首先检查高优先级虚拟监控组模块,如果高优先级虚拟监控组模块中记录有待发送的数据包,调度模块将更新接口管理模块中的最近一次调度的虚拟监控组,改为高优先级的虚拟监控组,然后依照步骤H进行调度转发;
步骤K.调度模块首先检查高优先级虚拟监控组,如果高优先级虚拟监控组中记录有待发送的数据包,调度模块依照步骤I进行调度转发;如果高优先级虚拟监控组中没有待发送的数据包,调度模块检查中优先级的虚拟监控组,如果中优先级虚拟监控组中记录有待发送的数据包,调度模块将更新接口管理模块中的最近一次调度的虚拟监控组,改为中优先级的虚拟监控组,然后依照步骤H进行调度转发;
进一步地,通常高优先级的数据包对服务质量的要求是绝对保证网络流量的带宽并且实现低时延,也就是当网络流量在带宽允许范围内,只要有高优先级的数据包待发送,调度模块将停止对中优先级和低优先级虚拟监控组的调度,转而调度高优先级虚拟监控组;
进一步地,通常中优先级的数据包对服务质量的要求是绝对保证网络流量的带宽,但是对时延的要求并不是高,有时也会要求对中优先级的所有网络流量进行带宽的统计复用;
进一步地,带宽的统计复用是为了充分利用物理接口的带宽而提出的一种带宽复用方式,当某个队列在某时刻网络流量低于其分配的带宽时,统计复用原则允许其他队列占用该队列已经申请分配的带宽;
进一步地,为保证高优先级队列中数据包的低时延,分配给高优先级队列的带宽不被用作统计复用;
进一步地,带宽统计复用的实现在令牌计算模块所采用的算法中有体现;
最后,结合本发明在路由器中的具体实现进一步详细说明本发明方法:
(一)本发明路由器,结构如图1所示,包括收包模块11,分类模块12,CAR模块13,令牌计算模块14,虚拟监控组模块15,接口管理模块16和调度模块17;其中:
收包模块11,用于从物理接口接收数据包,丢弃有错误的数据包,将有效的数据包送往分类模块。
分类模块12,用于根据用户事先配置好的分类标准对收包模块送来的数据包进行分类,判断该数据包所对应的实队列。
CAR模块13,用于根据用户为某队列配置的带宽对该队列的网络流量进行限速,其操作的对象是各个实队列。
令牌计算模块14,用于计算一段时间内,某实队列应该获得的令牌数,算法如下:
若Lasttick<Nowtick,Nowtoken=(Nowtick-Lasttick)*Bandwidth;若Lasttick>Nowtick,Nowtoken=(Lasttick-Nowtick+0xffffffff)*Bandwidth;其中,Lasttick是该队列上一次收到数据包的系统时间,Nowtick是本次收到数据包的系统时间,如果Lasttick小于Nowtick说明系统时间没有发生翻转,则采用表达式1;如果Lasttick大于Nowtick说明系统时间发生翻转了,采用表达式2。Bandwidth是该队列分配的带宽,如果该队列允许统计复用,则Bandwidth是该队列分配带宽与其他队列可统计复用的带宽的总和;
虚拟监控组模块15,用于集合具有相同优先级的所有实队列,它包括该虚拟监控组所辖实队列的收发包统计数据,该虚拟监控组所辖实队列的数目,该虚拟监控组最近被调用模块调用的实队列,该虚拟监控组中所辖实队列中待发送的数据包的总和,亦即所辖实队列的头队列指针等,虚拟监控组方便调度模块判断某一优先级队列是否需要调度处理,并决定采用怎样的调度方式。
接口管理模块16,用于存储某个接口的收发包统计数据,接口下虚拟监控组的配置数目,该接口最近一次发包来自于哪个虚拟监控组,该接口的带宽分配情况,该接口待发送的数据包数目,以及所辖第一个虚拟监控组的指针等。
实队列模块17,用于存储待发送的数据包,并记录该实队列的下面一个实队列的指针。
调度模块18,用于根据接口的队列配置和当前的数据包存储情况决定采用怎样的队列调度方式。
收包模块11是服务质量保证流程的入口,虚拟监控组模块15和接口模块16根据用户对网络流量的配置预先生成,并在流程中实时更新,CAR模块13通过调用令牌计算模块14对进入实队列的网络流量进行限速,限速后把待发送的数据包送入实队列模块17的相应实队列中,调度模块18实施对数据包的调用和转发。
(二)如图2所示,实队列模块17是根据用户对网络流量的分类和配置实时生成的,数据包在实队列中首尾相连的排放。同属一个虚拟监控组的实队列按照其加入虚拟监控组的先后顺序组成一条实队列的链,位于链头的实队列的指针被记录在虚拟监控组中,每个实队列都记录它下面一个实队列的指针。
(三)如图3所示,接口管理模块16中记录了该接口下根据用户配置所生成的虚拟监控组的数目,第一个虚拟监控组的指针,该接口已经分配的带宽的大小,该接口所辖虚拟监控组待发送的数据包的总和,最近被调用的虚拟监控组,以及该接口所辖虚拟监控组收发数据包的总和。
(四)当接收数据包进入实队列时,本发明路由器虚拟监控组分类和队列CAR限速的处理流程,如图4所示,具体包括以下步骤:
401)收包模块从物理端口接收数据包。
402)分类模块对数据包进行分类。
403)该数据包是否需要进行服务质量保证。如果是则跳往步骤405,否则跳往步骤404。
404)直接转发该数据包。
405)确定该数据包所属的虚拟监控组,根据虚拟监控组中的服务类型判断该数据包所属实队列是否需要进行统计复用。如果是则跳往步骤407,否则跳往步骤406。
406)确定该数据包所属实队列,读取实队列中记录的上一次收到数据包的系统时间Lasttick,当前系统时间Nowtick,以及该队列的带宽Bandwidth。
407)确定该数据包所属实队列,读取实队列中记录的上一次收到数据包的系统时间Lasttick,当前系统时间Nowtick,该队列的带宽Bandwidth1,以及该接口目前可复用的带宽Bandwidth2。该实队列目前总共可用的带宽为Bandwidth=Bandwidth1+Bandwidth2。
408)调用令牌计算模块计算该实队列当前所剩余的令牌Nowtoken。如果Lasttick<Nowtick,Nowtoken=(Nowtick-Lasttick)*Bandwidth;如果Lasttick>Nowtick,Nowtoken=(Lasttick-Nowtick+0xffffffff)*Bandwidth。
409)该数据包的大小是否大于Nowtoken?如果是则跳往步骤410,否则跳往步骤411。
410)丢弃该数据包。
411)将该数据包放入所属实队列中,如果实队列中有多个数据包,则将该数据包放在最后面。
412)修改该数据包所属虚拟监控组的收发包统计数据。
413)驱动调度模块进行数据包的调度。
414)结束数据包进入实队列的处理流程。
(五)本发明路由器按虚拟监控组优先级出队调度处理流程,如图5所示,
具体包括以下步骤:
501)调度模块受到驱动,开始调度流程。
502)调度模块读接口控制模块中的最近一次调度过的虚拟监控组。
503)判断该虚拟监控组的优先级是高优先级虚拟监控组,中优先级虚拟监控组,和低优先级虚拟监控组的哪一组。如果是高优先级虚拟监控组则跳往步骤504,如果是中优先级虚拟监控组则跳往步骤512,如果是低优先级虚拟监控组则跳往步骤515。
504)将接口控制模块中最近一次调用的虚拟监控组更新为高优先级虚拟监控组,读取高优先级虚拟监控组中最近一次调度的实队列。
505)判断该实队列中是否有待发送数据包,如果是则跳往步骤506,否则跳往步骤508。
506)判断物理接口是否仍有发送数据包的能力。如果是则跳往步骤507,否则跳往步骤520。
507)将该虚拟监控组中最近一次调度的实队列更新为本实队列,发送该实队列中待发送的数据包。返回步骤505继续进行。
508)寻找该虚拟监控组所辖实队列链中下一个有待发送数据包的实队列。
509)是否找到有待发送数据包的实队列。如果是则跳往步骤506,否则跳往步骤510。
510)将接口管理模块中最近一次调度的虚拟监控组更新为优先级仅次于本优先级的下一优先级虚拟监控组。如果本虚拟监控组是最低优先级,则接口管理模块中最近一次调度的虚拟监控组更新为最高优先级虚拟监控组。
511)判断接口管理模块中最近一次调度的虚拟监控组是哪一个虚拟监控组。如果是高优先级虚拟监控组则跳往步骤504,如果是中优先级虚拟监控组则跳往步骤512,如果是低优先级虚拟监控组则跳往步骤515。
512)将接口控制模块中最近一次调用的虚拟监控组更新为中优先级虚拟监控组,读取中优先级虚拟监控组中最近一次调度的实队列。
513)读取高优先级虚拟监控组中待发送数据包数目。
514)待发送数据包是否为0。如果是则跳往步骤505,否则跳往步骤504。
515)将接口控制模块中最近一次调用的虚拟监控组更新为低优先级虚拟监控组,读取中优先级虚拟监控组中最近一次调度的实队列。
516)读取高优先级虚拟监控组中待发送数据包数目。
517)待发送数据包是否为0。如果是则跳往步骤518,否则跳往步骤504。
518)读取中优先级虚拟监控组中待发送数据包数目。
519)待发送数据包是否为0。如果是则跳往步骤505,否则跳往步骤512。
520)停止本次调度。
Claims (7)
1.一种路由器,位于相邻网络之间,其特征在于,包括:
端口:用于接收通过CAR速率限制的数据包和发送数据包;
存储器:划分给各个队列并由虚拟监控组监控;
中心处理器:依触发根据所述虚拟监控组的优先级从其内所述队列中调用并转发数据包。
2.根据权利要求1所述路由器,其特征在于,所述虚拟监控组中的所有队列是同一类,包括实时队列、默认队列、统计复用队列和绝对资源保证队列中的一种或多种。
3.根据权利要求1所述路由器,其特征在于,所述转发是根据定时器或接收的数据包触发。
4.根据权利要求1所述路由器,其特征在于,所述CAR速率限制包括字节令牌或数据包令牌方式。
5.根据权利要求1或4所述路由器,其特征在于,若Lasttick小于Nowtick,Token=(Nowtick-Lasttick)*Bandwidth+Lasttoken;Lasttick大于Nowtick,Token=(Lasttick-Nowtick+0xffffffff)*Bandwidth+Lasttoken;其中,Token是该队列获得的令牌数,Lasttoken是上次发包结束时该队列剩余的队列数,Lasttick是该队列上一次收到数据包的系统时间,Nowtick是本次收到数据包的系统时间;Bandwidth是该队列分配的带宽,如果该队列允许统计复用,则Bandwidth是该队列分配带宽与其他队列可统计复用的带宽的总和。
6.根据权利要求5所述路由器,其特征在于,若Lasttick小于Nowtick,Nowtoken=(Nowtick-Lasttick)*Bandwidth;若Lasttick大于Nowtick,Nowtoken=(Lasttick-Nowtick+0xffffffff)*Bandwidth;其中Nowtoken是该队列当前所剩余的令牌。
7.根据权利要求1所述路由器,其特征在于,所述监控是指一定时间内有或没有新数据包的被端口接收放入所述虚拟监控组内的队列,有为可用队列;所述转发仅从所述可用队列中读取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101458224A CN101188547A (zh) | 2006-11-17 | 2006-11-17 | 结合虚拟监控组和car速率限制提高转发效率的路由器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2006101458224A CN101188547A (zh) | 2006-11-17 | 2006-11-17 | 结合虚拟监控组和car速率限制提高转发效率的路由器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101188547A true CN101188547A (zh) | 2008-05-28 |
Family
ID=39480744
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006101458224A Withdrawn CN101188547A (zh) | 2006-11-17 | 2006-11-17 | 结合虚拟监控组和car速率限制提高转发效率的路由器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101188547A (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836750A (zh) * | 2015-05-04 | 2015-08-12 | 大连理工大学 | 一种基于时间片轮转的数据中心网络流调度方法 |
CN105743788A (zh) * | 2016-01-26 | 2016-07-06 | 北京小米移动软件有限公司 | 数据包转发方法及装置 |
CN106656864A (zh) * | 2017-02-21 | 2017-05-10 | 中国联合网络通信集团有限公司 | 一种报文转发调度方法及装置 |
WO2018137581A1 (en) * | 2017-01-25 | 2018-08-02 | Huawei Technologies Co., Ltd. | A multi-core lock-free rate limiting apparatus and method |
CN111327611A (zh) * | 2020-02-17 | 2020-06-23 | 辽宁大学 | 一种命名数据网络中的针对多种攻击的安全防护方法 |
CN115396384A (zh) * | 2022-07-28 | 2022-11-25 | 广东技术师范大学 | 一种数据包调度方法、系统及存储介质 |
-
2006
- 2006-11-17 CN CNA2006101458224A patent/CN101188547A/zh not_active Withdrawn
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104836750A (zh) * | 2015-05-04 | 2015-08-12 | 大连理工大学 | 一种基于时间片轮转的数据中心网络流调度方法 |
CN104836750B (zh) * | 2015-05-04 | 2017-12-05 | 大连理工大学 | 一种基于时间片轮转的数据中心网络流调度方法 |
CN105743788A (zh) * | 2016-01-26 | 2016-07-06 | 北京小米移动软件有限公司 | 数据包转发方法及装置 |
WO2018137581A1 (en) * | 2017-01-25 | 2018-08-02 | Huawei Technologies Co., Ltd. | A multi-core lock-free rate limiting apparatus and method |
CN110214436A (zh) * | 2017-01-25 | 2019-09-06 | 华为技术有限公司 | 一种多核无锁速率限制装置和方法 |
US10659372B2 (en) | 2017-01-25 | 2020-05-19 | Futurewei Technologies, Inc. | Multi-core lock-free rate limiting apparatus and method |
CN106656864A (zh) * | 2017-02-21 | 2017-05-10 | 中国联合网络通信集团有限公司 | 一种报文转发调度方法及装置 |
CN106656864B (zh) * | 2017-02-21 | 2020-04-28 | 中国联合网络通信集团有限公司 | 一种报文转发调度方法及装置 |
CN111327611A (zh) * | 2020-02-17 | 2020-06-23 | 辽宁大学 | 一种命名数据网络中的针对多种攻击的安全防护方法 |
CN115396384A (zh) * | 2022-07-28 | 2022-11-25 | 广东技术师范大学 | 一种数据包调度方法、系统及存储介质 |
CN115396384B (zh) * | 2022-07-28 | 2023-11-28 | 广东技术师范大学 | 一种数据包调度方法、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101179486B (zh) | 一种计算机网络数据包转发的car队列管理方法 | |
US7289514B2 (en) | System and method for scheduling data traffic flows for a communication device | |
CN100348003C (zh) | 用于可编程调度器的设备和系统及用于可编程调度的方法 | |
CN109714275B (zh) | 一种用于接入业务传输的sdn控制器及其控制方法 | |
CN100562006C (zh) | 路由系统中差异排队的系统和方法 | |
US7983287B2 (en) | Backpressure mechanism for switching fabric | |
CN100463451C (zh) | 一种网络数据流的多维队列调度与管理方法 | |
CN104885420B (zh) | 用于管理多个数据分组的方法、系统和介质 | |
CN102368741A (zh) | 支持层次化队列调度和流量整形的方法及装置 | |
CN101436987A (zh) | QoS服务的调度配置方法和装置 | |
CN101616097A (zh) | 一种网络处理器输出端口队列的管理方法及系统 | |
CN101188547A (zh) | 结合虚拟监控组和car速率限制提高转发效率的路由器 | |
CN101692648A (zh) | 一种队列调度方法及系统 | |
CA2462793C (en) | Distributed transmission of traffic streams in communication networks | |
CN102387076A (zh) | 一种结合整形的分级式队列调度方法 | |
CN102780630B (zh) | 一种基于FPGA队列实现QoS队列的方法和设备 | |
CN100466593C (zh) | 一种支持多业务的综合队列调度的实现方法 | |
CN102404213A (zh) | 报文缓存管理方法及系统 | |
CN101179487B (zh) | 一种计算机网络数据包转发的队列管理方法 | |
CN110247859B (zh) | 一种基于airt-ros节点的数据发送方法及装置 | |
Gibbens et al. | On packet marking at priority queues | |
EP1232627A1 (en) | Method and system for controlling transmission of packets in computer networks | |
KR100588001B1 (ko) | 가중치 기반의 패킷 스케줄링 시스템 및 그 방법 | |
EP1458149A2 (en) | System and method for scheduling data traffic flows for a communication device | |
CN101193051A (zh) | 采用虚拟监控组提高转发速度和效率的路由器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C04 | Withdrawal of patent application after publication (patent law 2001) | ||
WW01 | Invention patent application withdrawn after publication |