CN101179486A - 一种计算机网络数据包转发的car队列管理方法 - Google Patents

一种计算机网络数据包转发的car队列管理方法 Download PDF

Info

Publication number
CN101179486A
CN101179486A CNA200610138706XA CN200610138706A CN101179486A CN 101179486 A CN101179486 A CN 101179486A CN A200610138706X A CNA200610138706X A CN A200610138706XA CN 200610138706 A CN200610138706 A CN 200610138706A CN 101179486 A CN101179486 A CN 101179486A
Authority
CN
China
Prior art keywords
packet
queue
formation
virtual monitor
monitor group
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.)
Granted
Application number
CNA200610138706XA
Other languages
English (en)
Other versions
CN101179486B (zh
Inventor
顾颖杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN200610138706XA priority Critical patent/CN101179486B/zh
Publication of CN101179486A publication Critical patent/CN101179486A/zh
Application granted granted Critical
Publication of CN101179486B publication Critical patent/CN101179486B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种计算机网络数据包转发的CAR队列管理方法,采用CAR速率限制和虚拟监控组,包括:计算机网络节点将通过CAR速率限制的接收数据包放入其所属队列;计算机网络节点根据定时器或接收的数据包触发,根据所述虚拟监控组的优先级从其内所述队列中调用并转发数据包。这种方法,选取简单的令牌计算方法,同时兼顾了网络转发效率,利用虚拟监控组管理实队列,使调度更加简单快捷,同时可以提供低时延服务和带宽统计复用服务,绝对资源保证服务和尽力而为服务,其适用面广,可以应用于基于流的服务质量保证,基于类的服务质量保证,点到点或者点到多点的服务质量保证。

Description

一种计算机网络数据包转发的CAR队列管理方法
技术领域
本发明涉及计算机网络通信和承诺访问速率Committed Access Rate,简称CAR,具体涉及一种互联网协议IP网络中为实现服务质量保证而提高转发效率和速度的CAR队列管理方法。
背景技术
随着互联网的迅速发展,网络提供的业务功能日趋完善,网络的服务质量成为网络运营商,网络设备制造商以及网络用户关注的重点,也是开发人员的研究热点。
研究人员已经设计出多种装置和调度算法来保证网络的服务质量,各种装置包括拥塞避免,报文分类,拥塞管理,流量整形等,各种装置的作用体现在服务质量保证的不同阶段,例如拥塞避免是在数据入口处对数据包进行过滤以避免发送队列出现拥塞;报文分类是在接收到数据包后,送入队列之前,是队列设计的基础;拥塞管理是队列调度时决定以何种方式发送队列中的数据包;流量整形是对某一网络的某一连接的流量进行监控,以防止流量的突发。调度方法包括公平队列Fair Queuing调度,简称FQ调度,优先级队列Priority Queuing调度,简称PQ调度,定制队列Custom Queuing调度,简称CQ调度,加权公平队列Weighted Fair Queuing调度,简称WFQ调度以及基于类的加权公平队列Class Based Weighted Fair Queuing调度,简称CBWFQ调度等。每种调度方法都针对不同的网络服务要求,以保证相应的网络服务质量。例如公平队列调度给与所有的队列相同的调度机会;优先级队列调度将数据流根据优先级进行简单分级并实施基于优先级的队列调度;定制队列调度根据用户对资源的分配给不同的队列分配不同的调度比例;加权公平队列调度是在保证公平的基础上对不同优先级业务的区别对待。基于类的加权公平队列相当于CQ,PQ和WFQ的结合,提供了实时调度队列和加权队列。每种调度队列都有其优点和不足,适用范围也都有一定的限制,需要针对具体的情况进行选择。
但是现有方法中对队列的管理还没有给予特别的关注。一般路由器中可以允许用户配置的服务质量保证队列的数目少至几十条多至几百条,如何有效的管理这些队列,对提高路由器的转发速度有很大的影响。另外,网络流量都是突发性的,往往是一段时间内有持续且大量的流量经过,而其他时间没有流量,因此对服务队列的管理和调度也不应该是一成不变的。
中国发明专利,申请号CN01117978,“一种适合实现路由器服务质量的综合业务中的调度方法”与本发明提出的一种队列管理方法较为相似。该发明专利队列管理的主要技术内容是将数据包分类进入三种服务队列,包括尽力而为服务队列,负载可控服务队列和保证服务队列,根据入队列时的虚拟时钟计算出其出队列的虚拟时钟,同时考虑到三种队列的不同优先级进行区别调度,借以提高公平性和效率;这种方法仅提供三种服务队列,可以满足的服务质量要求比较少,而且计算虚拟时钟的算法以及调度方法比较复杂,不便于在高速转发时使用。
发明内容
本发明需要解决的技术问题是一种计算机网络数据包转发的队列管理方法,在对队列进行分类管理的基础上,进一步按简单的CAR限速入队和组优先级出队,从而提高数据包的转发速度和效率、提供高质量的网络服务质量保证。
本发明的上述技术问题这样解决,提供一种计算机网络数据包转发的CAR队列管理方法,入队时采用CAR进行速率限制,使用虚拟监控组分类管理存放接收或发送数据包的队列,包括以下对应入队和出队步骤:
A)入队:计算机网络节点将通过所述速率限制的接收数据包放入所属队列;
B)出队:计算机网络节点根据定时器或接收的数据包触发,根据所述虚拟监控组的优先级从其内所述队列中调用并转发数据包,首先调用高优先级虚拟监控组内的队列,再调用优先级较低虚拟监控组内的队列。
按照本发明提供的CAR队列管理方法,所述虚拟监控组分类管理区分空闲和可用队列,该方法具体包括步骤:
A)入队:计算机网络节点将将通过所述速率限制的接收数据包放入所属可用队列或放入所属空闲队列并将队列状态改为可用,从空闲队列链移至可用队列;所述虚拟监控组定时检查所述可用队列,根据其在一定时间内没有新的数据包被放入,则把该可用队列状态改为空闲队列,从可用队列链移至空闲队列;
B)出队:计算机网络节点根据定时器或接收的数据包触发,根据所述虚拟监控组的优先级从其内所述可用队列中调用并转发数据包。
按照本发明提供的CAR队列管理方法,虚拟监控组内的队列的调用包括但不限制于以下三种方式:
(一)优先级方式:所述出队步骤B)还包括进一步根据所述虚拟监控组内各队列的优先级调用并转发数据包。
(二)轮转方式:所述出队步骤B)还包括进一步轮转调用所述虚拟监控组内各队列的并转发数据包。
(三)优先级与轮转相结合方式:所述出队步骤B)还包括进一步结合所述虚拟监控组内各队列的优先级和轮转顺序调用并转发数据包。
按照本发明提供的CAR队列管理方法,所述入队步骤还包括丢弃超出所述速率限制的接收数据包。
按照本发明提供的CAR队列管理方法,所述CAR包括字节令牌或数据包令牌方式。
按照本发明提供的CAR队列管理方法,若Lasttick小于Nowtick,Token=(Nowtick-Lasttick)*Bandwidth+Lasttoken;Lasttick大于Nowtick,Token=(Lasttick-Nowtick+0xffffffff)*Bandwidth+Lasttoken;其中,Token是该队列获得的令牌数,Lasttoken是上次发包结束时该队列剩余的队列数,Lasttick是该队列上一次收到数据包的系统时间,Nowtick是本次收到数据包的系统时间;Bandwidth是该队列分配的带宽,如果该队列允许统计复用,则Bandwidth是该队列分配带宽与其他队列可统计复用的带宽的总和。
按照本发明提供的CAR队列管理方法,若Lasttick小于Nowtick,Nowtoken=(Nowtick-Lasttick)*Bandwidth;若Lasttick大于Nowtick,Nowtoken=(Lasttick-Nowtick+0xffffffff)*Bandwidth;其中Nowtoken是该队列当前所剩余的令牌。
按照本发明提供的CAR队列管理方法,所述虚拟监控组中的所有队列是同一类,包括实时队列、默认队列、统计复用队列和绝对资源保证队列中的一种或多种。
按照本发明提供的CAR队列管理方法,所述虚拟监控组的分类可以基于流、基于类或基于转发方式。
按照本发明提供的CAR队列管理方法,所述计算机网络节点可以是路由器;所述队列即实队列。
按照本发明提供的CAR队列管理方法,所述虚拟监控组管理两类队列,即空闲队列和可用队列。一定时间内没有数据包到达的队列称为空闲队列,否则称为可用队列。关于空闲队列和可用队列的实现和管理,本发明申请人已在另一篇专利申请文档《一种计算机网络数据包转发的队列管理方法》中详细介绍。本发明出现的队列指可用队列。
本发明提供的计算机网络数据包转发的CAR队列管理方法,入队时采用承诺访问速率Committed Access Rate,简称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模块进行限速的操作中,需要调用令牌计算模块计算在某一个时刻,某个队列所能接受的网络流量的上限。令牌计算模块采用以下算法:
Figure A20061013870600111
其中: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 (10)

1.一种计算机网络数据包转发的CAR队列管理方法,入队时采用CAR进行速率限制,其特征在于,使用虚拟监控组分类管理存放接收或发送数据包的队列,包括以下对应入队和出队步骤:
A)入队:计算机网络节点将通过所述速率限制的接收数据包放入所属队列;
B)出队:计算机网络节点根据定时器或接收的数据包触发,根据所述虚拟监控组的优先级从其内所述队列中调用并转发数据包。
2.根据权利要求1所述CAR队列管理方法,其特征在于,所述虚拟监控组分类管理区分空闲和可用队列,该方法具体包括步骤:
A)入队:计算机网络节点将将通过所述速率限制的接收数据包放入所属可用队列或放入所属空闲队列并将队列状态改为可用,从空闲队列链移至可用队列;所述虚拟监控组定时检查所述可用队列,根据其在一定时间内没有新的数据包被放入,则把该可用队列状态改为空闲队列,从可用队列链移至空闲队列;
B)出队:计算机网络节点根据定时器或接收的数据包触发,根据所述虚拟监控组的优先级从其内所述可用队列中调用并转发数据包。
3.根据权利要求1所述CAR队列管理方法,其特征在于,所述出队步骤B)还包括进一步根据所述虚拟监控组内各队列的优先级调用并转发数据包。
4.根据权利要求1所述CAR队列管理方法,其特征在于,所述出队步骤B)还包括进一步轮转调用所述虚拟监控组内各队列的并转发数据包。
5.根据权利要求2或3所述CAR队列管理方法,其特征在于,所述出队步骤B)还包括进一步结合所述虚拟监控组内各队列的优先级和轮转顺序调用并转发数据包。
6.根据权利要求1所述CAR队列管理方法,其特征在于,所述入队步骤还包括丢弃超出所述速率限制的接收数据包。
7.根据权利要求1所述CAR队列管理方法,其特征在于,所述CAR包括字节令牌或数据包令牌方式。
8.根据权利要求1或7所述CAR队列管理方法,其特征在于,若Lasttick小于Nowtick,Token=(Nowtick-Lasttick)*Bandwidth+Lasttoken;Lasttick大于Nowtick,Token=(Lasttick-Nowtick+0xffffffff)*Bandwidth+Lasttoken;其中,Token是该队列获得的令牌数,Lasttoken是上次发包结束时该队列剩余的队列数,Lasttick是该队列上一次收到数据包的系统时间,Nowtick是本次收到数据包的系统时间;Bandwidth是该队列分配的带宽,如果该队列允许统计复用,则Bandwidth是该队列分配带宽与其他队列可统计复用的带宽的总和。
9.根据权利要求1所述CAR队列管理方法,其特征在于,所述虚拟监控组中的所有队列是同一类,包括实时队列、默认队列、统计复用队列和绝对资源保证队列中的一种或多种。
10.根据权利要求9所述CAR队列管理方法,其特征在于,所述虚拟监控组的分类可以基于流、基于类或基于转发方式。
CN200610138706XA 2006-11-10 2006-11-10 一种计算机网络数据包转发的car队列管理方法 Expired - Fee Related CN101179486B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200610138706XA CN101179486B (zh) 2006-11-10 2006-11-10 一种计算机网络数据包转发的car队列管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200610138706XA CN101179486B (zh) 2006-11-10 2006-11-10 一种计算机网络数据包转发的car队列管理方法

Publications (2)

Publication Number Publication Date
CN101179486A true CN101179486A (zh) 2008-05-14
CN101179486B CN101179486B (zh) 2010-07-14

Family

ID=39405579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610138706XA Expired - Fee Related CN101179486B (zh) 2006-11-10 2006-11-10 一种计算机网络数据包转发的car队列管理方法

Country Status (1)

Country Link
CN (1) CN101179486B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360049B (zh) * 2008-09-23 2011-02-09 福建星网锐捷网络有限公司 一种报文转发方法及装置
WO2011113264A1 (zh) * 2010-03-15 2011-09-22 中兴通讯股份有限公司 交换网中流量管理的方法和装置
CN101729373B (zh) * 2008-10-29 2012-10-17 阿尔卡特朗讯 对多优先级业务进行调度的方法及装置
CN102984077A (zh) * 2012-12-04 2013-03-20 中国联合网络通信集团有限公司 网络拥塞的控制方法及系统
CN104836750A (zh) * 2015-05-04 2015-08-12 大连理工大学 一种基于时间片轮转的数据中心网络流调度方法
CN105162724A (zh) * 2015-07-30 2015-12-16 华为技术有限公司 一种数据入队与出队方法及队列管理单元
CN106789721A (zh) * 2017-03-24 2017-05-31 深圳市吉祥腾达科技有限公司 一种基于令牌桶的智能qos方法及系统
CN106843170A (zh) * 2016-11-30 2017-06-13 浙江中控软件技术有限公司 基于令牌的任务调度方法
CN106921586A (zh) * 2015-12-25 2017-07-04 华为技术有限公司 一种数据流整形方法、数据调度方法以及装置
CN107332773A (zh) * 2016-04-29 2017-11-07 华为技术有限公司 一种学习arp表项的方法及ptn设备
CN113067778A (zh) * 2021-06-04 2021-07-02 新华三半导体技术有限公司 一种流量管理方法及流量管理芯片
CN113079111A (zh) * 2020-01-03 2021-07-06 瑞昱新加坡有限公司 一种速率管理和频宽控制的装置和方法
CN114066456A (zh) * 2022-01-13 2022-02-18 环球数科集团有限公司 一种基于erc1155的跨链nft转移和结算系统
CN114600434A (zh) * 2019-10-22 2022-06-07 华为技术有限公司 通过带内信令区分服务的系统和方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1165184C (zh) * 2001-05-08 2004-09-01 华为技术有限公司 一种适合实现路由器服务质量的综合业务中的调度方法
CN100411474C (zh) * 2004-06-17 2008-08-13 大唐移动通信设备有限公司 适用于移动通信系统的下行分组数据调度方法
CN100463451C (zh) * 2005-12-29 2009-02-18 中山大学 一种网络数据流的多维队列调度与管理方法

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101360049B (zh) * 2008-09-23 2011-02-09 福建星网锐捷网络有限公司 一种报文转发方法及装置
CN101729373B (zh) * 2008-10-29 2012-10-17 阿尔卡特朗讯 对多优先级业务进行调度的方法及装置
WO2011113264A1 (zh) * 2010-03-15 2011-09-22 中兴通讯股份有限公司 交换网中流量管理的方法和装置
CN102984077A (zh) * 2012-12-04 2013-03-20 中国联合网络通信集团有限公司 网络拥塞的控制方法及系统
CN102984077B (zh) * 2012-12-04 2015-09-16 中国联合网络通信集团有限公司 网络拥塞的控制方法及系统
CN104836750A (zh) * 2015-05-04 2015-08-12 大连理工大学 一种基于时间片轮转的数据中心网络流调度方法
CN104836750B (zh) * 2015-05-04 2017-12-05 大连理工大学 一种基于时间片轮转的数据中心网络流调度方法
CN105162724B (zh) * 2015-07-30 2018-06-26 华为技术有限公司 一种数据入队与出队方法及队列管理单元
CN105162724A (zh) * 2015-07-30 2015-12-16 华为技术有限公司 一种数据入队与出队方法及队列管理单元
US10326713B2 (en) 2015-07-30 2019-06-18 Huawei Technologies Co., Ltd. Data enqueuing method, data dequeuing method, and queue management circuit
CN106921586B (zh) * 2015-12-25 2020-02-14 华为技术有限公司 一种数据流整形方法、数据调度方法以及装置
CN106921586A (zh) * 2015-12-25 2017-07-04 华为技术有限公司 一种数据流整形方法、数据调度方法以及装置
CN107332773A (zh) * 2016-04-29 2017-11-07 华为技术有限公司 一种学习arp表项的方法及ptn设备
CN107332773B (zh) * 2016-04-29 2020-01-10 华为技术有限公司 一种学习arp表项的方法及ptn设备
CN106843170B (zh) * 2016-11-30 2019-06-14 浙江中控软件技术有限公司 基于令牌的任务调度方法
CN106843170A (zh) * 2016-11-30 2017-06-13 浙江中控软件技术有限公司 基于令牌的任务调度方法
CN106789721A (zh) * 2017-03-24 2017-05-31 深圳市吉祥腾达科技有限公司 一种基于令牌桶的智能qos方法及系统
CN106789721B (zh) * 2017-03-24 2021-01-05 深圳市吉祥腾达科技有限公司 一种基于令牌桶的智能qos方法及系统
CN114600434A (zh) * 2019-10-22 2022-06-07 华为技术有限公司 通过带内信令区分服务的系统和方法
CN113079111A (zh) * 2020-01-03 2021-07-06 瑞昱新加坡有限公司 一种速率管理和频宽控制的装置和方法
CN113067778A (zh) * 2021-06-04 2021-07-02 新华三半导体技术有限公司 一种流量管理方法及流量管理芯片
CN114066456A (zh) * 2022-01-13 2022-02-18 环球数科集团有限公司 一种基于erc1155的跨链nft转移和结算系统
CN114066456B (zh) * 2022-01-13 2022-04-08 环球数科集团有限公司 一种基于erc1155的跨链nft转移和结算系统

Also Published As

Publication number Publication date
CN101179486B (zh) 2010-07-14

Similar Documents

Publication Publication Date Title
CN101179486B (zh) 一种计算机网络数据包转发的car队列管理方法
CN100348003C (zh) 用于可编程调度器的设备和系统及用于可编程调度的方法
US7289514B2 (en) System and method for scheduling data traffic flows for a communication device
CN100562006C (zh) 路由系统中差异排队的系统和方法
CN101228737B (zh) 分级QoS行为模型
CN100463451C (zh) 一种网络数据流的多维队列调度与管理方法
CN102368741A (zh) 支持层次化队列调度和流量整形的方法及装置
CN100593926C (zh) 用于隐式区分网络中的服务质量的方法和设备
CN101436987A (zh) QoS服务的调度配置方法和装置
CN101557340B (zh) 一种数据网络中实现多级队列调度的方法及装置
CN101692648B (zh) 一种队列调度方法及系统
US20050175014A1 (en) Hierarchical prioritized round robin (HPRR) scheduling
CN101616097A (zh) 一种网络处理器输出端口队列的管理方法及系统
TW200415891A (en) Class-based rate control using a multi-threshold leaky bucket
CN102387076B (zh) 一种结合整形的分级式队列调度方法
CN101188547A (zh) 结合虚拟监控组和car速率限制提高转发效率的路由器
CN101414958A (zh) 一种业务调度方法及装置
CN102780630B (zh) 一种基于FPGA队列实现QoS队列的方法和设备
CN100466593C (zh) 一种支持多业务的综合队列调度的实现方法
CN102404213A (zh) 报文缓存管理方法及系统
CN101179487B (zh) 一种计算机网络数据包转发的队列管理方法
CN110247859B (zh) 一种基于airt-ros节点的数据发送方法及装置
Shreedhar et al. E cient fair queuing using de cit round robin
JP2003515978A (ja) コンピュータ・ネットワークでパケットの伝送を制御する方法およびシステム
KR100588001B1 (ko) 가중치 기반의 패킷 스케줄링 시스템 및 그 방법

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20100714

Termination date: 20151110

EXPY Termination of patent right or utility model