CN1194509C - 一种控制路由器接口报文发送速率的方法 - Google Patents
一种控制路由器接口报文发送速率的方法 Download PDFInfo
- Publication number
- CN1194509C CN1194509C CNB021212694A CN02121269A CN1194509C CN 1194509 C CN1194509 C CN 1194509C CN B021212694 A CNB021212694 A CN B021212694A CN 02121269 A CN02121269 A CN 02121269A CN 1194509 C CN1194509 C CN 1194509C
- Authority
- CN
- China
- Prior art keywords
- message
- token bucket
- token
- router interface
- send
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种控制路由器接口报文发送速率的方法,该方法在路由器接口接收到上层发来的报文后,如果报文发送队列中没有待发送报文,通过令牌桶技术判断是否可以进行报文发送,如果可以,直接发送该报文,否则丢弃该报文或将报文放入报文发送队列,在满足报文发送条件时按照令牌桶技术发送报文发送队列中的报文;如果报文发送队列中有待发送报文,则直接将报文放入报文发送队列,在满足报文发送条件时按照令牌桶技术发送报文发送队列中的报文;采用上述方案,会使所有通过路由器接口发送的报文都能够被限速,限速精度高,适用范围广。
Description
技术领域
本发明涉及通信系统中控制报文发送速率的方法,尤其是涉及控制路由器接口报文发送速率的方法。
背景技术
在通信系统中,网络运营商为了商业运作的需要或是为了对路由器的接口带宽进行管理,需要对基于路由器接口的报文发送速率进行定制,为此,可以在不同的网络层完成上述任务。现有的对路由器接口报文的速率控制是在IP层完成的,例如服务质量(QoS)中的约定访问速率(CAR,Committed Access Rate)和通用流量整形(GTS,Generic Traffic Shaping)等,通过在IP层采用令牌桶技术控制报文的发送令牌生成速率来控制IP层报文的发送速率。现有方法的缺点在于这些方法对于不经过IP层处理的报文根本不起作用,适用范围小,同时,由于IP层位于物理层和链路层之上,控制报文发送速率耗费的网络资源较多,还限制了报文发送控制的精度。
发明内容:
本发明的目的在于提供一种适用范围广、控制精度高的控制路由器接口报文发送速率的方法。
为达到上述目的,本发明提供的控制路由器接口报文发送速率的方法,包括:
(1)设置路由器接口用于报文发送的令牌桶的容量、报文发送队列以及报文发送速率,按照报文发送速率生成令牌桶中的令牌;
(2)路由器接口在接收到上层发来的报文后,判断报文发送队列中是否有待发送报文,如果有,转步骤(6),否则,转步骤(3);
(3)通过令牌桶技术判断是否可以进行报文发送,如果不可以,转步骤(5),否则发送该报文;
(4)判断报文是否发送成功,如果成功,结束,否则转步骤(6);
(5)如果报文需要丢弃,丢弃该报文,然后结束;如果报文需要重新放入队列时,则,
(6)将报文放入报文发送队列,在报文发送定时器时间到或网络底层有能力时按照令牌桶技术发送报文发送队列中的报文。
所述步骤(1)中设置用于报文发送的令牌桶的容量是将所述容量设置为报文的突发量,即每个时间间隔发送报文的位数。
所述步骤(1)中设置用于报文发送的令牌桶的容量也可以将所述容量设置为报文的突发量和过度突发量的和,所述报文的突发量为每个时间间隔发送报文的位数,所述报文的过度突发量为第一个时间间隔发送报文的最大位数。
步骤(6)所述在报文发送定时器时间到或网络底层有能力时按照令牌桶技术发送报文发送队列中的报文,按照下述步骤进行:
(A1)判断报文发送队列中是否有待发送报文,如果没有,结束报文发送操作,否则,
(A2)从报文发送队列中取出一个报文,通过令牌桶技术判断是否可以进行报文发送,如果不可以,转步骤(A4),否则发送该报文;
(A3)判断报文是否发送成功,如果成功,转步骤(A1),否则转步骤(A5);
(A4)如果报文需要丢弃,丢弃该报文,然后转步骤(A1);如果报文需要重新放入队列时,则,
(A5)将报文放入报文发送队列,结束报文发送操作。
步骤(3)所述通过令牌桶技术判断是否可以进行报文发送以及步骤(A2)所述通过令牌桶技术判断是否可以进行报文发送按照下述步骤进行:
(B1)判断报文长度是否大于令牌桶容量,如果大于,设置报文处理标志为丢弃标志,然后结束判断,否则,
(B2)判断报文长度是否小于令牌桶中当前令牌数,如果小于,设置报文处理标志为允许发送标志,然后结束判断,否则,
(B3)计算新增令牌数,并将新增令牌数放入令牌桶;
(B4)判断报文长度是否小于令牌桶中重新计算后的令牌数,如果小于,设置报文处理标志为允许发送标志,然后结束判断,否则,设置报文处理标志为报文重入队列标志。
由于本发明在路由器接口接收到上层发来的报文后,通过令牌桶技术进行报文的发送,由于通过令牌桶可以限制报文的发送速率,且本发明在链路层与物理层之间实现,使得一旦在某个接口上使用了本发明所述方法,则所有通过该接口发送的报文都能够被限速,而不必去考虑报文是否经过了IP层的处理,由于报文发送限速作用于链路层之下,所以限速精度更高,适用范围更广;另外,本发明可以软件方式实现,不需进行硬件设施的更换,因此配置简单,操作灵活,接口发送速率选择范围广,易于满足网络运营商为客户提供灵活的带宽定制租用的需求。
附图说明
图1是本发明所述方法的实施例流程图;
图2是图1所述实施例采用的按照令牌桶技术发送报文发送队列中的报文流程图;
图3是图1所述实施例采用的通过令牌桶技术判断是否可以进行报文发送的流程图;
图4是本发明所述方法的原理图。
具体实施方式:
本发明所述方法能够限制在路由器物理接口上通过的所有报文,该方法可以软件方式实现对路由器接口的报文发送速率进行限制。当需要在路由器接口使用该功能时,可以通过在路由器相应的物理接口上运行依据该方法编制的软件,同时指定所期望的报文流量速度、突发量、过度突发量等。下面结合附图对本发明作进一步详细的描述。
首先参考图4,图4是本发明所述方法的原理图。由图4可知,本发明所述方法提供的路由器接口速率限制的处理过程采用了令牌桶技术来判断是否允许报文发送,令牌桶技术的采用是实现路由器接口报文流量控制技术关键。如果在路由器的某个接口上采用了本发明所述方法,规定了该接口报文发送的流量特性,则所有经由该接口发送的报文都会首先经过令牌桶进行处理。该接口一方面按规定速率向令牌桶中存放令牌,另一方面将从上层接收报文,对于接收到的报文判断是否需要放入QoS队列,如果需要,将接收到的报文送入QoS队列等待发送,否则直接发送。报文在发送时需要经过令牌桶控制,当报文长度小于令牌桶中的令牌数时,才能够被发送,由于可以对令牌桶中的令牌生成速率进行设定,因此可以通过令牌桶技术达到本发明的目的。
本发明的具体实施过程参考图1。首先在步骤1,设置路由器接口用于报文发送的令牌桶的容量、报文发送队列以及报文发送速率。该步骤设置的报文发送队列为服务质量(QoS)队列,具体为先进先出(FIFO)队列,实际中也可以采用优先(PQ)队列、定制(CQ)队列或加权公平队列(WFQ)等。在该步骤中设置令牌桶的容量以及报文发送速率可以通过配置命令实现,例如本例中采用下述配置命令:
line-rate bps burst-size excess-burst-size
其中,line-rate为配置命令关键字;bps为欲保持的报文发送速率;burst-size为报文发送突发量,即每个时间间隔可发送报文的二进制位数;excess-burst-size为过度突发量,即第一个时间间隔可发送的最大位数;
按照报文发送速率生成令牌桶中的令牌,即令牌个数按照用户配置的流量速度(报文发送速率bps)放入令牌桶中。令牌桶中的令牌数不能超过令牌桶的最大容量,本例中该最大容量由用户配置的突发量和过度突发量决定,即设置令牌桶的最大容量为报文的突发量和过度突发量的和。实际中也可以将所述容量设置为报文的突发量。
基于步骤1,在步骤2路由器接口在接收到上层发来的报文后,在步骤3判断报文发送队列中是否有待发送报文,如果有,需要按照报文的接收顺序发送报文,因此转步骤9进行将报文加入发送队列的操作,否则,说明目前网络底层空闲,可以直接发送该报文,因此在步骤4通过令牌桶技术判断是否可以进行报文发送,如果不可以,说明该报文要么正处于速率限制状态,要么其长度超过令牌桶的发送能力,根据上述情况,此时进行步骤5,判断是否需要丢弃该报文,如果不发送该报文的原因在于该报文正处于速率限制状态,则不应丢弃该报文,需要转步骤9进行将报文加入发送队列的操作;如果不发送该报文的原因在于该报文的长度超过令牌桶的发送能力,则要进行步骤6丢弃该报文,然后结束报文发送操作。如果在步骤4通过令牌桶技术判断可以进行报文发送,则转步骤7调用底层发送函数发送该报文,然后在步骤8判断报文是否发送成功,如果成功,结束报文发送操作;如果报文发送由于以外原因没成功,例如网络物理层故障,则要在步骤9进行将报文加入发送队列的操作,等待以后发送。在步骤9,将报文放入报文发送队列,以便在满足报文发送条件时按照令牌桶技术发送报文发送队列中的报文。由于报文发送队列中报文可以在网络底层有发送能力时发送,也可以通过定时发送,因此在步骤10还要判断是否已经存在报文发送定时器,如果不存在,在步骤11创建所述报文发送定时器,然后结束报文发送操作。
在上述步骤9中,所述满足报文发送条件即为报文发送定时器时间到或网络底层有能力发送报文。
上述步骤9中所述在满足报文发送条件时按照令牌桶技术发送报文发送队列中的报文过程参考图2,按照下述步骤进行:首先在步骤21判断报文发送队列中是否有待发送报文,如果没有,在步骤22删除报文发送定时器,然后结束报文发送操作,否则,在步骤23从报文发送队列中取出一个报文,然后在步骤24通过令牌桶技术判断是否可以进行报文发送,如果不可以,说明该报文或者正处于速率限制状态,或者其长度超过令牌桶的发送能力,根据上述情况,如果经步骤24判断不能进行报文的发送,则进行步骤25,判断是否需要丢弃该报文,如果不发送该报文的原因在于该报文正处于速率限制状态,则不应丢弃该报文,需要转步骤28进行将报文加入发送队列的操作;如果不发送该报文的原因在于该报文的长度超过令牌桶的发送能力,则要进行步骤29丢弃该报文,然后转步骤21继续报文发送操作。如果在步骤24通过令牌桶技术判断可以进行报文发送,则在步骤26调用底层发送函数发送该报文,然后在步骤27判断报文是否发送成功,如果成功,转步骤21继续报文发送操作;如果报文发送由于意外原因没成功,则要在步骤28进行将报文加入发送队列的操作,等待以后发送,然后结束报文发送操作。
上述通过令牌桶技术判断是否可以进行报文发送参考图3。图中所述的利用令牌桶技术来判断当前是否可以发送报文的实质是:查看令牌桶中的令牌个数,如果令牌桶中有足够的令牌可以用来发送报文,则允许报文发送。如果令牌桶中的令牌个数不满足报文的发送条件,则报文入QoS队列进行拥塞管理。这样,就可以对通过该物理接口的报文流量进行控制。具体参考下述步骤:首先在步骤31判断报文长度是否大于令牌桶容量,如果大于,在步骤32设置报文处理标志为丢弃标志,以便根据该标志执行丢弃该报文的操作,然后结束判断;否则,继续在步骤33判断报文长度是否小于令牌桶中当前令牌数,如果小于,在步骤34设置报文处理标志为允许发送标志,以便根据该标志执行发送报文的操作,然后结束判断;否则,在步骤35计算新增令牌数,并将新增令牌数放入令牌桶;该步骤是为了补充统计前继步骤,例如步骤31、32操作期间生成的令牌,然后在步骤36判断报文长度是否小于令牌桶中重新计算后的令牌数,如果小于,在步骤34设置报文处理标志为允许发送标志,以便根据该标志执行发送报文的操作,然后结束判断;否则,说明令牌桶中的令牌数不足以发送要发送报文,该报文正处于速率限制状态,因此在步骤37设置报文处理标志为报文重入队列标志,以便根据该标志重新将该报文送入报文发送队列进行拥塞管理,等待以后发送。
由于采用了令牌桶来控制报文发送的流量,当令牌桶中积存有令牌时,可以允许报文的突发性传输。当令牌桶中没有令牌的时候,报文将不能被发送,只有等到桶中生成了新的令牌,报文才可以发送,这就可以限制报文发送的流量,使其只能小于等于令牌生成的速度。而令牌的生成速度即用户配置的报文发送速率(即配置命令中的参数bps),于是就达到了限制流量,同时允许突发流量通过的目的,实现对路由器物理接口的报文发送速率进行限制的功能。
Claims (8)
1、一种控制路由器接口报文发送速率的方法,包括:
(1)设置路由器接口用于报文发送的令牌桶的容量、报文发送队列以及报文发送速率,按照报文发送速率生成令牌桶中的令牌;
(2)路由器接口在接收到上层发来的报文后,判断报文发送队列中是否有待发送报文,如果有,转步骤(6),否则,转步骤(3);
(3)通过令牌桶技术判断是否可以进行报文发送,如果不可以,转步骤(5),否则发送该报文;
(4)判断报文是否发送成功,如果成功,结束,否则转步骤(6);
(5)如果报文需要丢弃,则丢弃该报文,然后结束;如果报文需要重新放入队列时,则,
(6)将报文放入报文发送队列,在报文发送定时器时间到或网络底层有能力时按照令牌桶技术发送报文发送队列中的报文。
2、根据权利要求1所述的控制路由器接口报文发送速率的方法,其特征在于:所述步骤(1)中设置用于报文发送的令牌桶的容量是将所述容量设置为报文的突发量,即每个时间间隔发送报文的位数。
3、根据权利要求1所述的控制路由器接口报文发送速率的方法,其特征在于:所述步骤(1)中设置用于报文发送的令牌桶的容量是将所述容量设置为报文的突发量和过度突发量的和,所述报文的突发量为每个时间间隔发送报文的位数,所述报文的过度突发量为第一个时间间隔发送报文的最大位数。
4、根据权利要求1、2或3所述的控制路由器接口报文发送速率的方法,其特征在于:所述报文发送队列为服务质量队列。
5、根据权利要求4所述的控制路由器接口报文发送速率的方法,其特征在于所述步骤(5)还包括:当报文需要重新放入队列时,判断是否已经存在报文发送定时器,如果不存在,创建所述报文发送定时器。
6、根据权利要求5所述的控制路由器接口报文发送速率的方法,其特征在于步骤(6)所述在报文发送定时器时间到或网络底层有能力时按照令牌桶技术发送报文发送队列中的报文,按照下述步骤进行:
(61)判断报文发送队列中是否有待发送报文,如果没有,结束报文发送操作,否则,
(62)从报文发送队列中取出一个报文,通过令牌桶技术判断是否可以进行报文发送,如果不可以,转步骤(64),否则发送该报文;
(63)判断报文是否发送成功,如果成功,转步骤(61),否则转步骤(65);
(64)如果报文需要丢弃,丢弃该报文,然后转步骤(61);如果报文需要重新放入队列时,则;
(65)将报文放入报文发送队列,结束报文发送操作。
7、根据权利要求6所述的控制路由器接口报文发送速率的方法,其特征在于步骤(61)还包括,在结束报文发送操作前,删除报文发送定时器。
8、根据权利要求7所述的控制路由器接口报文发送速率的方法,其特征在于步骤(3)所述通过令牌桶技术判断是否可以进行报文发送以及步骤(62)所述通过令牌桶技术判断是否可以进行报文发送按照下述步骤进行:
(81)判断报文长度是否大于令牌桶容量,如果大于,设置报文处理标志为丢弃标志,然后结束判断,否则,
(82)判断报文长度是否小于令牌桶中当前令牌数,如果小于,设置报文处理标志为允许发送标志,然后结束判断,否则,
(83)计算新增令牌数,并将新增令牌数放入令牌桶;
(84)判断报文长度是否小于令牌桶中重新计算后的令牌数,如果小于,设置报文处理标志为允许发送标志,然后结束判断,否则,设置报文处理标志为报文重入队列标志。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021212694A CN1194509C (zh) | 2002-06-12 | 2002-06-12 | 一种控制路由器接口报文发送速率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB021212694A CN1194509C (zh) | 2002-06-12 | 2002-06-12 | 一种控制路由器接口报文发送速率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1466334A CN1466334A (zh) | 2004-01-07 |
CN1194509C true CN1194509C (zh) | 2005-03-23 |
Family
ID=34142158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB021212694A Expired - Fee Related CN1194509C (zh) | 2002-06-12 | 2002-06-12 | 一种控制路由器接口报文发送速率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1194509C (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100433718C (zh) * | 2005-10-31 | 2008-11-12 | 华为技术有限公司 | 保障数据分组业务服务等级的方法及速率限制方法 |
CN101299719B (zh) * | 2008-06-04 | 2012-07-25 | 北京星网锐捷网络技术有限公司 | 数据流的检测处理方法、中央处理器及交换机 |
CN103139103B (zh) * | 2011-12-02 | 2015-11-04 | 京信通信系统(中国)有限公司 | 一种网络拥塞的控制方法及装置 |
CN103197754B (zh) * | 2013-04-01 | 2016-05-25 | 华为技术有限公司 | 一种降低芯片功耗的方法和装置 |
CN104699635B (zh) * | 2013-12-06 | 2018-10-12 | 联想(北京)有限公司 | 一种电子设备和信息处理方法 |
CN104486239A (zh) * | 2014-12-16 | 2015-04-01 | 安徽皖通邮电股份有限公司 | 一种控制radius报文发送速率的方法 |
CN107026849A (zh) * | 2017-02-28 | 2017-08-08 | 千目聚云数码科技(上海)有限公司 | 提高实时压缩视频流网络发送效率的方法及系统 |
CN110572465B (zh) * | 2019-09-12 | 2022-04-15 | 浙江齐治科技股份有限公司 | 一种报文传输方法及装置 |
CN113938439B (zh) * | 2021-10-25 | 2023-12-15 | 深圳市风云实业有限公司 | 一种基于定时器的端口队列调度方法及电子设备 |
CN114172848B (zh) * | 2021-11-18 | 2024-02-09 | 新华三技术有限公司合肥分公司 | 通信方法及装置 |
CN115174486B (zh) * | 2022-06-01 | 2024-05-28 | 湖南天冠电子信息技术有限公司 | 一种报文传输方法、系统及存储介质 |
-
2002
- 2002-06-12 CN CNB021212694A patent/CN1194509C/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN1466334A (zh) | 2004-01-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1214589C (zh) | 用数据通信协议控制层间数据流的通信方法和终端 | |
CN1293733C (zh) | 用于传输具有不同质量的应用数据的方法 | |
US6901593B2 (en) | Active queue management with flow proportional buffering | |
CN1194509C (zh) | 一种控制路由器接口报文发送速率的方法 | |
US7724750B2 (en) | Expedited data transmission in packet based network | |
CA2302218C (en) | Packet network | |
JP3321043B2 (ja) | Tcpネットワーク内のデータ端末 | |
CN1279728C (zh) | 在分组交换数据流之间调度可用链路带宽的方法和设备 | |
CN1541474A (zh) | 路由系统中差异排队的系统和方法 | |
CN1344456A (zh) | 用于tcp连接的增强确认定步设备和方法 | |
CN1658575A (zh) | 一种在sgsn网络处理器中提高服务质量的方法 | |
CN1878144A (zh) | 一种多队列流量控制的方法 | |
CN1153379C (zh) | 帧中继-atm数据转换接口电路和方法与处理网络 | |
CN1593044A (zh) | 在包交换装置中用于避免拥堵的方法和系统 | |
CN1658611A (zh) | 一种保证无线局域网中的服务质量方法 | |
CN101047615A (zh) | 一种以太网数据流量控制方法 | |
CN1742469A (zh) | 用于在存储区域网之间传输数据的方法和设备 | |
CN1939005B (zh) | 基于分组的网络中的加速数据传输 | |
CN1643858A (zh) | 服务质量请求关联 | |
CN100417156C (zh) | 一种流控传输协议中数据传输实现方法及系统 | |
WO2007067388A2 (en) | Starvation reduction in tcp/ip applications | |
CN1677957A (zh) | 用于控制从分布式系统到中央系统的数据流的方法和系统 | |
CN1705295A (zh) | 具有优先级的包传输系统及其方法 | |
CN1549511A (zh) | 一种流量整形处理方法 | |
CN1297127C (zh) | 基于aal2信令协议的节点间连接释放的处理方法 |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20050323 Termination date: 20110612 |