CN1725732A - 一种报文限速方法 - Google Patents

一种报文限速方法 Download PDF

Info

Publication number
CN1725732A
CN1725732A CNA2005100751285A CN200510075128A CN1725732A CN 1725732 A CN1725732 A CN 1725732A CN A2005100751285 A CNA2005100751285 A CN A2005100751285A CN 200510075128 A CN200510075128 A CN 200510075128A CN 1725732 A CN1725732 A CN 1725732A
Authority
CN
China
Prior art keywords
message
time window
pass
allow
time
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
CNA2005100751285A
Other languages
English (en)
Other versions
CN100433711C (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.)
New H3C Technologies Co Ltd
Original Assignee
Hangzhou Huawei 3Com Technology Co Ltd
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 Hangzhou Huawei 3Com Technology Co Ltd filed Critical Hangzhou Huawei 3Com Technology Co Ltd
Priority to CNB2005100751285A priority Critical patent/CN100433711C/zh
Publication of CN1725732A publication Critical patent/CN1725732A/zh
Application granted granted Critical
Publication of CN100433711C publication Critical patent/CN100433711C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种报文限速方法,包括:A.预设时间窗宽度及其允许通过报文的数量;B.获取当前系统时刻,并根据前一个时间窗截止时刻计算当前时间窗已过时间;C.判断当前时间窗已过时间是否小于时间窗宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗截止时刻,结束;若是,执行步骤D;D.判断当前时间窗已通过报文数量是否大于允许通过的报文数量,若是,计算超出通过的报文数量,并对所述报文进行流量延迟处理后允许通过;否则,允许当前时间窗内的报文通过,并更新当前时间窗的截止时刻。本发明通过对超标的报文进行流量限速或流量整形,以达到优化CPU资源使用、在系统遭受广播风暴或黑客攻击时对CPU进行保护等问题。

Description

一种报文限速方法
技术领域
本发明涉及报文的处理技术领域,特别是涉及一种报文限速方法。
背景技术
随着通信芯片技术的迅速发展,目前包括路由器、以太网交换机等在内的数据通信设备处理速度越来越快,端口密度也越做越大,支持的功能、协议特性也越来越丰富。需要设备的CPU处理的各种协议报文、中断、消息等也越来越多。而这些协议报文一方面是由CPU接收后,进行解析,然后放到相应的软件协议处理单元的报文处理队列中等待处理;另一方面,现在的CPU处理速度也越来越快,在有的设备上也出现因为短时间内CPU上送协议栈的报文速度太快而导致一些协议处理单元的报文处理队列溢出和内存占用太多等问题。
在上述设备中,特别是低端路由器、以太网交换机设备等一般是单CPU架构,CPU除了处理上述任务外,还需要处理很多重要的工作:比如响应命令行串口的输入、输出,执行相应的命令,对设备的单板操作系统进行任务调度和维护,对硬件转发芯片和外围设备的状态进行维护,内存和FLASH、SRAM等各种存储器读写等,对路由器来说还可能需要由CPU进行报文转发。这样在网络流量大,运行的协议特性较多时CPU就经常处于高负荷甚至满负荷状态,在这种情况下再接收报文时,会出现串口响应慢、协议报文丢失、动态路由丢失和动态地址解析协议(ARP,Address Resolution Protocol)丢失等问题。如何在大流量情况下,尤其是在网络存在广播风暴或者设备遭受攻击时,有效的地利用CPU资源,保证系统运行稳定是以太网交换机设备需要解决的重要问题。
从目前对以太网交换机设备的CPU工作情况分析可知,对CPU接收报文进行限制是优化CPU资源利用的主要手段之一。因为有许多报文都要求上送CPU处理,但是其中有些报文例如ARP广播报文是会被重复送到CPU的,而实际上对一个IP地址到MAC地址的映射关系的建立,CPU只需要收到一个ARP报文即可。而且往往很多以太网交换机设备因为各种原因都将广播和多播报文上送CPU,这在网络上有广播风暴的时候对设备的CPU造成很大的压力。
目前,对于报文的控制方法主要有三种。
第一种是CPU接收报文限制的方法,该方法是从转发芯片硬件设计上做一些控制,例如Intel公司的IXE2412芯片,对互联网组管理协议(IGMP,InternetGroup Management Protocol)、ARP报文都有单独的队列管理,通过寄存器设置来保证这些报文能够得到优先处理,而对一般的广播、多播报文则给以较低优先级,在CPU工作繁忙时对低优先级报文进行随机丢弃。但问题是目前很多ASIC转发芯片都没有提供这种硬件上的CPU收包分类控制功能,或者提供的控制功能有限,无法满足目前以太网交换机设备支持丰富协议特性的需要。
第二种是采用流分类的方法来控制报文的流量。所述方法通过设置接入控制列表ACL对各种报文上送CPU进行限制以及带宽保证。但基于上述第一种方法的原因,要支持较多的协议特性需要添加几十条甚至更多的ACL表项,这对硬件流分类资源占用太大;并且还受一些转发芯片的流分类处理能力限制(能够支持的从报文中提取的流分类关键字的数量、字段位置有限),还有些协议报文无法通过流分类来识别和控制。
第三种是采用软件方法对上送CPU的报文进行限制和带宽保证。所述采用软件方法主要是对上报CPU报文进行限制是采用定时器,并用专门的单元来监控定时器的运行。所述方法包括:首先,根据用户需要编写定时器的回调函数;其次,向系统申请硬件定时器资源,如果申请失败,则结束;再次,预设定时器时间间隔和定时器的超时的回调函数,启动定时器;最后,定时器自动运行,每次超时时就自动调用设定的回调函数作相应的报文限速或者流量整形操作。
由上述分析可知,现有技术的缺点是:1)不能有效的利用CPU资源;2)需要占用硬件的定时器资源,且预设定时器超时的回调函数需要消耗大量的软件资源,且增加了操作系统的复杂度,增加操作系统任务调度的工作量和风险。3)在系统遭受广播风暴或黑客攻击时不能有效的对CPU进行保护。
发明内容
本发明解决的技术问题是提供一种报文限速方法,该方法以解决在CPU接收到的报文超过预定的报文数量时,通过对超标的报文进行流量限速或者流量整形,从而达到优化CPU资源使用、在系统遭受广播风暴或黑客攻击时对CPU进行保护等问题。
为解决上述问题,本发明提供一种报文限速方法,所述方法包括步骤:
A1、预设时间窗宽度和该时间窗内允许通过的报文数量;
B1、获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
C1、判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束;若是,执行步骤D1;
D1、判断当前时间窗已通过的报文数量是否大于允许通过的报文数量,若是,计算超出允许通过的报文数量,并对其进行流量延迟处理后允许通过;否则,允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻。
该方法是嵌入到收发报文任务中的。
在步骤A1之前,所述处理器对接收到的报文进行过滤处理。
步骤D1中所述计算超出允许通过的报文数量,并对其进行流量延迟处理的实现过程包括:
41)通过当前时间窗接收到的报文数量与预设的单位时间窗内允许通过的报文数量之差来计算超出允许通过的报文数量;
42)根据单位时间窗内允许通过的报文速率来计算超出允许通过的报文需要延迟的时间;
43)将所述超出允许通过的报文根据所述需要延迟的时间进行延迟处理;
44)当到达延迟时间时允许所述超出允许通过的报文通过,并更新当前时间窗的截止时刻。
步骤42)中所述计算超出允许通过的报文需要延迟的时间的计算公式为:需要延迟的时间=(超过预设的单位时间窗内允许通过的报文数量一单位时间窗内允许通过的报文数量)/单位时间允许接收报文的数量*时间窗宽度。
另外,本发明还提供一种报文限速方法,所属方法包括步骤:
A2、预设时间窗宽度和时间窗内允许通过的报文数量;
B2、获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
C2、判断当前时间窗的已过时间是否小于时间窗宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束;若是,执行步骤D2;
D2、判断当前时间窗已通过报文的数量是否大于预设的允许通过的报文数量,若是,直接丢弃超标的报文,结束;否则,允许当前时间窗正常接收上送的报文直至达到预设通过的数量。
该方法是嵌入到收发报文任务中的。
在步骤A2之前,所述处理器对接收到的报文进行过滤处理。
此外,本发明再提供一种报文限速方法,所述方法包括步骤:
A3、分别预设各个队列的时间窗宽度和该时间窗内分别允许通过的报文数量;
B3、获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
C3、判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束;若是,执行步骤D3;
D3、判断当前时间窗已通过的各个队列的报文数量是否分别大于各个队列允许通过的报文数量,若是,分别计算超出允许通过的报文数量,并对其进行延迟处理后允许通过;否则,允许各个当前时间窗中的报文通过,并更新当前时间窗的截止时刻。
步骤A3中根据各个队列优先级的不同来预设单位时间窗内允许通过的报文数量。
步骤D3中所述分别计算超出允许通过的报文数量,并对其进行流量延迟处理的实现过程包括:
a)通过各个队列当前时间窗接收到的报文数量与预设的单位时间窗内允许通过的报文数量之差来计算各个队列超出允许通过的报文数量;
b)根据各个队列单位时间窗内允许通过的报文速率来计算各个队列超出允许通过的报文需要延迟的时间;
c)将所述超出允许通过的报文根据所述需要延迟的时间分别进行延迟处理;
d)当到达延迟时间时允许所述各个队列超出允许通过的报文通过,并更新各个队列当前时间窗的截止时刻。
步骤b)中所述计算各个队列超出允许通过的报文需要延迟的时间的计算公式分别为:需要延迟的时间=(超过预设的单位时间窗内允许通过的报文数量-单位时间窗内允许通过的报文数量)/单位时间允许接收报文的数量*时间窗宽度。
在步骤A3之前还包括所述CPU对接收到的报文进行过滤处理。
与现有技术相比,本发明具有以下有益效果:本发明通过设置时间窗宽度和单位时间窗内通过的数量来对上送CPU报文进行流量限制或流量整形,以保证在单位时间窗内上送报文的数量基本稳定,从而有效的保证CPU在大流量报文的冲击下降低CPU的使用率,同时又不影响各种协议功能的正常运行。本发明与现有技术通过创建定时器和收发报文任务的软件限制方式相比,有实现简便、占用资源少,限速时间窗、最大流量阈值等易于在实际运行中实时调整等优点。特别是在某在交换设备(比如以太网交换机)上应用了本发明所述的方法,不但保证在单位时间窗内上送报文的数量基本稳定,而且还能较好地实现对CPU的保护,显著地降低了CPU使用率,同时不影响各种协议功能的正常运行。此外,在CPU负载较重时,最好分队列进行操作,也就是将每个报文转发到CPU的硬件队列,并在各队列中设定不同的阈值,以保证优先级较高的重要报文先上送,以避免重要的报文被丢弃。
附图说明
图1是本发明报文限速方法的一种流程图;
图2是本发明报文限速方法的另一种流程图;
图3是本发明报文限速方法的优化流程图。
具体实施方式
本发明的核心是通过设置时间窗内通过报文的流量来控制CPU接收报文的流量,并对超出单位时间窗内报文采取相应的惩罚机制,即延迟处理,以保证单位时间窗内上送的报文数量基本稳定,从而达到优化CPU资源的使用以及在系统遭受广播风暴或黑客攻击时对CPU进行保护的目的。
本发明提供一种通用简便的报文限速方法,该方法通过软件手段对上送的CPU报文进行流量限速或流量整形,适用于各种类型的CPU和软件操作系统。下面以在嵌入式操作系统Vxworks上的实现为例来进一步讲述该发明的技术方案。
请参考图1,为本发明报文限速方法的流程图,该方法在控制过程中,以太网交换机设备运行时会运行一个专门负责接收报文的任务,本发明的先将相应的代码嵌入到该收发报文任务的处理函数中,在每次报文接收过程中得到处理。所述方法具体包括:
步骤S10:预设时间窗的宽度和时间窗内允许通过报文的数量;
步骤S11:获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
步骤S12:判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束(步骤S13);若是,执行(步骤S14);
步骤S14:判断当前时间窗已通过报文的数量是否大于允许通过报文的数量,若是,计算超出允许通过的报文数量,并对所述报文进行惩罚性延迟处理后允许通过(步骤S15);否则,允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻(步骤S13)。
在步骤S10之前,收发报文任务接收到上送CPU的报文,对上报CPU的报文进行过滤处理,这是由于有些报文可能是系统不感兴趣的,或者某些协议、功能模块要求将其丢弃的报文,则提前将其过滤掉。例如,如果系统并未启动最短路径优先协议(OSPF,Open Short Path First),所述最短路径优先协议是一种网络路由协议。在该步骤中,对于接收任务如果接收到OSPF协议报文,就可以直接将其过滤掉,即在此步骤直接丢弃,不作下一步处理;这样可以在收发报文任务处就限制一部分报文的流量控制。
在步骤S10中,通过操作系统提供的处理函数来获取当前系统时刻,并将其保存在变量ulNowTicks。比如,VxWorks系统可以使用sysTimeBaseIn函数。所述处理函数中已预先嵌入本发明相应的代码,以便每次报文接收过程中的得到相应的处理。在该步骤中所述当前时间窗的已过时间通过当前系统时刻与上一个时间截止时刻之差来计算。其计算公式为:当前时间窗已过时间ulTicksGo=当前系统时刻ulNowTicks-上一个时间窗截止时刻ulOldTicks,其中,所述时间窗截止时刻是指当报文通过时间窗时所记录的时刻。在初始启动时,上一个时间窗截至时刻初始化为0。所述时刻都是有Tick来计数的。当当前时间窗接收报文时,并将其报文数量PacketsReceived加一,其中,所述PacketsReceived初始化时预设为0。
在步骤S12中,判断当前时间窗是否已经超时,即当前时间窗的已过时间ulTicksGo是否小于预设的时间窗宽度ulTimeWindow,其中,所述时间窗宽度是初始化时预设的,是根据系统性能和需求来设置的,并保存在全局变量中,在运行中可以根据实际情况调整。
若当前时间窗超时,也就是说当前时间窗的已过时间小于预设的时间窗宽度时,则当前时间窗没有结束,再判断当前时间窗已通过报文的数量PacketsReceived是否已经大于允许通过报文的数量PacketsPermit(步骤S14);若是,则说明在该时间窗内正常接收的报文上送的数量已经超标,需要采取流量控制措施,也就是说,当前时间窗内接收的报文数量已经超过初始化时预设的单位时间窗内允许通过的报文数量PacketsPermit,为了优化CPU的资源利用,本发明对超标的报文通过惩罚机制以控制其流量,来保证在平均单位时间窗内上送的报文数量基本稳定(步骤S15)。其中所述单位时间窗内允许通过的报文数量是根据系统性能和需求来设置,并保存在全局变量中,在运行中可以根据实际情况调整,计算超出允许的报文数,其计算公式为:当前单位时间窗内接收到的报文数量与预设的单位时间窗内允许通过的数量之差为单位时间窗内超标的报文数量。
其中,所述惩罚机制也就是需要对所计算出的超标报文进行一定流量延迟处理,即“惩罚性”延时,以达到时间轴上的接收整形处理的效果。所述惩罚性延迟的实现过程包括:
a.通过当前时间窗接收到的报文数量与预设的单位时间窗内允许通过的报文数量之差来计算超出允许通过的报文数量;
b.根据单位时间窗内允许通过的报文速率来计算超出允许通过的报文需要延迟的时间;
c.将所述超出允许通过的报文根据所述需要延迟的时间进行延迟处理;
d.当到达延迟时间时允许所述超出允许通过的报文通过,并更新当前时间窗的截止时刻。
也就是说所述惩罚延迟是根据允许通过报文平均速率计算需要延时的时间。而所述惩罚机制可以有多种,本发明目前实现的处理是:如果报文上送速率较高,在不到时间窗的单位时间就超过了预设的单位时间窗内允许通过的报文数量PacketsPermit,那就根据超过的报文数量PacketsReceived-单位时间窗内允许通过的报文数量PacketsPermit,然后再除以单位时间窗内允许接收报文数量PacketsPermit,最后再乘以预设的时间窗宽度ulTimeWindow,就得到需要延时的时间,该时间也是以Tick计数。但是本发明并不限于所述的惩罚机制,还可以通过其它的方式来实现。此外,对当前报文进行缓存,并根据所计算的延时值,对当前的报文作延时处理;当到达延迟时刻时允许当前的报文通过,即将该报文上送到协议栈进行处理。
当当前时间窗已过的时间不小于时间宽度时,则结束当前时间窗,允许当前报文通过,并对当前时间窗接收的报文数量清零(步骤S13)。以当前时刻ulNowTicks作为新的当前时间窗截止时刻,即ulOldTicks等于ulNowTicks。然后开始下一个处理循环。
本发明通过上述过程来保证在单位时间窗内允许上送CPU的报文速率限定在一定的时间范围内,如果短时上送CPU报文速率超标,则采取相应的“惩罚”延迟机制,以保证平均单位时间窗上送CPU的报文数量基本稳定。在上送CPU报文平均速率不大但偶尔有较大峰值速率时,本发明所述的方法可以有效地实现对CPU的保护并可保证不丢失重要的报文。在延时过程中操作系统可调度CPU处理其它任务。
另外,本发明还提供另一种报文限速方法,其流程图详见图2,所述方法包括步骤:
步骤H10:预设时间窗的宽度和时间窗内允许通过报文的数量;
步骤H11:获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
步骤H12:判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束(步骤H13);若是,执行(步骤H14);
步骤H14:判断当前时间窗已通过报文的数量是否大于预设的允许通过报文的数量,若是,直接丢弃超标的报文,结束(步骤H15);否则,允许当前时间窗正常接收上送的报文直至达到预设通过的数量(步骤H16)。
本发明所述的这种方法也可以保证将单位时间窗内允许上送CPU的报文速率限制在一定的范围内。所述这种方法主要是在检测到上送CPU报文已经超标时,直接丢弃该报文。虽然在实现过程中可能会丢包,但是,本方法在设备运行协议繁多、CPU负载较重时可以有效的实现对CPU的保护。
本发明所述的这种报文限速方法是对第一种报文限速方法的简化,其实现步骤与第一种方法的实现步骤部分类似,具体为:
在步骤H10之前,收发报文任务接收到上送CPU的报文,对上报CPU的报文进行过滤处理,这是由于有些报文可能是系统不感兴趣的,或者某些协议、功能模块要求将其丢弃的报文,则提前将其过滤掉。例如,如果系统并未启动最短路径优先协议(OSPF,Open Short Path First),所述最短路径优先协议是一种网络路由协议。在该步骤中,对于接收任务如果接收到OSPF协议报文,就可以直接将其过滤掉,即在此步骤直接丢弃,不作下一步处理;这样可以在收发报文任务处就限制一部分报文的流量控制。
在步骤H10中,通过操作系统提供的处理函数来获取当前系统时刻,并将其保存在变量ulNowTicks。比如,VxWorks系统可以使用sysTimeBaseIn函数。所述处理函数中已预先嵌入本发明相应的代码,以便每次报文接收过程中的得到相应的处理。在该步骤中所述当前时间窗的已过时间通过当前系统时刻与上一个时间截止时刻之差来计算。其计算公式为:当前时间窗已过时间ulTicksGo为当前系统时刻ulNowTicks减去上一个时间窗截止时刻ulOldTicks,其中,所述时间窗截止时刻是指当报文通过时间窗时所记录的时刻。在初始启动时,上一个时间窗截至时刻初始化为0。所述时刻都是有Tick来计数的。当当前时间窗接收报文时,并将其报文数量PacketsReceived加一,其中,所述PacketsReceived初始化时预设为0。
  在步骤H12中,判断当前时间窗是否已经超时,即当前时间窗的已过时间ulTicksGo是否小于预设的时间窗宽度ulTimeWindow,其中,所述时间窗宽度是初始化时预设的,是根据系统性能和需求来设置的,并保存在全局变量中,在运行中可以根据实际情况调整。若当前时间窗的已过时间小于预设的时间窗宽度,则当前时间窗内有结束,再判断当前时间窗已通过报文的数量是否已经大于允许通过的数量,如果没有超过,则将该时间窗内正常接收报文的数量正常上送,直至达到预定的限额才停止上送,并结束本次处理;如果超过,则说明该时间窗内正常接收报文的数量已经超标,直接丢弃所述超标的报文。
若当前时间窗的已过时间不小于预设的时间窗宽度,则允许当前时间窗内的报文通过,并结束当前时间窗和对当前时间窗的数量清零,以及更新当前时间窗的截止时间ulOldTicks。
本方法所述过程也能有效的保证在单位时间窗内将允许上送CPU的报文速率限定在一定的范围内。若单位时间窗内上送CPU报文超标则报文被直接丢弃。该方法可能会丢包,但是可以也很好地实现对CPU的保护,因为在设备运行协议繁多、支持特性丰富,CPU负载较重时比较适用。
此外,本发明再提供一种报文限速方法,该方法对于CPU负荷较重时为优化报文限速方法,其流程图详见图3。该方法在CPU负载较重时,采用分队列进行操作,并在各队列中设定不同的阈值,以保证优先级较高的重要报文先上送,以保证重要报文基本不被丢弃。其中,所述用分队列的实现方式也就是对每个报文转发到CPU的硬件队列,都采用如图3所述报文流量控制的方法,该方法可以对高优先级队列设定较大的单位时间报文通过数量,对低优先级队列设定较小的单位时间报文通过数量,来实现对CPU保护的同时,对不同业务的分级控制和服务。
如图3所示的报文限速方法的优化流程包括步骤:
步骤M10:分别预设各个队列的时间窗宽度和该时间窗内分别允许通过的报文数量;
步骤M11:获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
步骤M12:分别判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束(步骤M13);若是,执行步骤M14;
步骤M14:、分别判断当前时间窗已通过的各个队列的报文数量是否分别大于各个队列允许通过的报文数量,若是,分别计算超出允许通过的报文数量,并对其进行延迟处理后允许通过(步骤M15);否则,允许各个当前时间窗中的报文通过,并更新当前时间窗的截止时刻(步骤M13)。
所述方法与上述方法的相同之处,在这里不再赘述,其不同之处为:先将接收到的报文按照报文的类型或优先级等分成不同的各个队列,然后再根据各个队列优先级的不同来预设单位时间窗内允许通过的报文数量,对高优先级队列设定较大的单位时间窗内通过的报文数量,对低优先级队列设定较小的单位时间窗内通过的报文数量,从而当当前时间窗已通过的各个队列的报文数量大于各个队列允许通过的报文数量时,先计算各个队列超出允许通过的报文数量,然后再对此进行流量延迟处理后允许其通过。其中对于超标的数据报文通过流量控制(即流量延迟处理)的具体实现过程包括:通过各个队列当前时间窗接收到的报文数量与预设的单位时间窗内允许通过的报文数量之差来计算各个队列超出允许通过的报文数量;根据各个队列单位时间窗内允许通过的报文速率来计算各个队列超出允许通过的报文需要延迟的时间,其计算各个队列延迟的时间的计算公式为:需要延迟的时间=(超过预设的单位时间窗内允许通过的报文数量-单位时间窗内允许通过的报文数量)/单位时间允许接收报文的数量*时间窗宽度;将所述超出允许通过的报文根据所述需要延迟的时间分别进行延迟处理;当到达延迟时间时允许所述各个队列超出允许通过的报文通过,并更新各个队列当前时间窗的截止时刻。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (13)

1、一种报文限速方法,其特征在于,包括步骤:
A1、预设时间窗宽度和该时间窗内允许通过的报文数量;
B1、获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
C1、判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束;若是,执行步骤D1;
D1、判断当前时间窗已通过的报文数量是否大于允许通过的报文数量,若是,计算超出允许通过的报文数量,并对其进行流量延迟处理后允许通过;否则,允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻。
2、根据权利要求1所述报文限速方法,其特征在于,该方法是嵌入到收发报文任务中的。
3、根据权利要求1所述报文限速方法,其特征在于,在步骤A1之前,所述处理器对接收到的报文进行过滤处理。
4、根据权利要求3所述报文限速方法,其特征在于,步骤D1中所述计算超出允许通过的报文数量,并对其进行流量延迟处理的实现过程包括:
41)通过当前时间窗接收到的报文数量与预设的单位时间窗内允许通过的报文数量之差来计算超出允许通过的报文数量;
42)根据单位时间窗内允许通过的报文速率来计算超出允许通过的报文需要延迟的时间;
43)将所述超出允许通过的报文根据所述需要延迟的时间进行延迟处理;
44)当到达延迟时间时允许所述超出允许通过的报文通过,并更新当前时间窗的截止时刻。
5、根据权利要求4所述报文限速方法,其特征在于,步骤42)中所述计算超出允许通过的报文需要延迟的时间的计算公式为:需要延迟的时间=(超过预设的单位时间窗内允许通过的报文数量-单位时间窗内允许通过的报文数量)/单位时间允许接收报文的数量*时间窗宽度。
6、一种报文限速方法,其特征在于,包括步骤:
A2、预设时间窗宽度和时间窗内允许通过的报文数量;
B2、获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
C2、判断当前时间窗的已过时间是否小于时间窗宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束;若是,执行步骤D2;
D2、判断当前时间窗已通过报文的数量是否大于预设的允许通过的报文数量,若是,直接丢弃超标的报文,结束;否则,允许当前时间窗正常接收上送的报文直至达到预设通过的数量。
7、根据权利要求6所述报文限速方法,其特征在于,该方法是嵌入到收发报文任务中的。
8、根据权利要求6所述报文限速方法,其特征在于,在步骤A2之前,所述处理器对接收到的报文进行过滤处理。
9、一种报文限速方法,其特征在于,包括步骤:
A3、分别预设各个队列的时间窗宽度和该时间窗内分别允许通过的报文数量;
B3、获取当前系统时刻,并根据前一个时间窗截止时间计算当前时间窗的已过时间;
C3、判断当前时间窗的已过时间是否小于时间窗的宽度,若否,则允许当前时间窗中的报文通过,并更新当前时间窗的截止时刻,结束;若是,执行步骤D3;
D3、判断当前时间窗已通过的各个队列的报文数量是否分别大于各个队列允许通过的报文数量,若是,分别计算超出允许通过的报文数量,并对其进行延迟处理后允许通过;否则,允许各个当前时间窗中的报文通过,并更新当前时间窗的截止时刻。
10、根据权利要求9所述报文限速方法,其特征在于,步骤A3中根据各个队列优先级的不同来预设单位时间窗内允许通过的报文数量。
11、根据权利要求9所述报文限速方法,其特征在于,步骤D3中所述分别计算超出允许通过的报文数量,并对其进行流量延迟处理的实现过程包括:
a)通过各个队列当前时间窗接收到的报文数量与预设的单位时间窗内允许通过的报文数量之差来计算各个队列超出允许通过的报文数量;
b)根据各个队列单位时间窗内允许通过的报文速率来计算各个队列超出允许通过的报文需要延迟的时间;
c)将所述超出允许通过的报文根据所述需要延迟的时间分别进行延迟处理;
d)当到达延迟时间时允许所述各个队列超出允许通过的报文通过,并更新各个队列当前时间窗的截止时刻。
12、根据权利要求11所述报文限速方法,其特征在于,步骤b)中所述计算各个队列超出允许通过的报文需要延迟的时间的计算公式分别为:需要延迟的时间=(超过预设的单位时间窗内允许通过的报文数量-单位时间窗内允许通过的报文数量)/单位时间允许接收报文的数量*时间窗宽度。
13、根据权利要求11所述报文限速方法,其特征在于,在步骤A3之前还包括所述处理器对接收到的报文进行过滤处理。
CNB2005100751285A 2005-06-08 2005-06-08 一种报文限速方法 Expired - Fee Related CN100433711C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2005100751285A CN100433711C (zh) 2005-06-08 2005-06-08 一种报文限速方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2005100751285A CN100433711C (zh) 2005-06-08 2005-06-08 一种报文限速方法

Publications (2)

Publication Number Publication Date
CN1725732A true CN1725732A (zh) 2006-01-25
CN100433711C CN100433711C (zh) 2008-11-12

Family

ID=35924981

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2005100751285A Expired - Fee Related CN100433711C (zh) 2005-06-08 2005-06-08 一种报文限速方法

Country Status (1)

Country Link
CN (1) CN100433711C (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008080324A1 (fr) * 2006-12-31 2008-07-10 Huawei Technologies Co., Ltd. Procédé et appareil pour empêcher une attaque par messages igmp
WO2008122186A1 (fr) * 2007-04-05 2008-10-16 Huawei Technologies Co., Ltd. Procédé et dispositif permettant d'empêcher une attaque d'un petit paquet de données
CN101083563B (zh) * 2007-07-20 2010-08-11 杭州华三通信技术有限公司 一种防分布式拒绝服务攻击的方法及设备
CN101924679A (zh) * 2009-06-12 2010-12-22 中兴通讯股份有限公司 一种以太网口报文限速方法、装置及数据通信设备
CN101951339A (zh) * 2010-08-24 2011-01-19 北京星网锐捷网络技术有限公司 报文限速方法、装置及网络设备
CN102098215A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种多应用收包的优先级管理方法
CN101299719B (zh) * 2008-06-04 2012-07-25 北京星网锐捷网络技术有限公司 数据流的检测处理方法、中央处理器及交换机
CN102710502A (zh) * 2012-05-12 2012-10-03 杭州迪普科技有限公司 一种基于消耗时间的网络限速方法及装置
CN102769564A (zh) * 2011-04-29 2012-11-07 库柏技术公司 具有按需分优先级路由协议的多径无线电传输输入/输出设备、网络、系统和方法
CN102882809A (zh) * 2012-10-26 2013-01-16 杭州迪普科技有限公司 一种基于报文缓存的网络限速方法及装置
CN102938722A (zh) * 2012-10-30 2013-02-20 中兴通讯股份有限公司 一种网络设备周期性协议发包的方法及装置
CN103117871A (zh) * 2012-12-31 2013-05-22 广东东研网络科技股份有限公司 用于olt网络管理通道的报文限制系统及方法
CN104038494A (zh) * 2014-06-11 2014-09-10 普联技术有限公司 一种记录攻击来源的方法及交换机
CN105897365A (zh) * 2016-03-23 2016-08-24 京信通信技术(广州)有限公司 一种处理器的防冲击处理方法及装置
CN106230741A (zh) * 2016-09-18 2016-12-14 杭州迪普科技有限公司 一种对报文进行限速的方法和装置
CN106572073A (zh) * 2015-10-13 2017-04-19 广达电脑股份有限公司 通过滤除广播讯息减少负担的方法与系统及存储装置
WO2019127597A1 (zh) * 2017-12-31 2019-07-04 华为技术有限公司 一种发送报文的方法、设备和系统
CN110852903A (zh) * 2019-11-15 2020-02-28 积成电子股份有限公司 一种基于fpga的阶梯型弹性网络风暴过滤方法
CN111526060A (zh) * 2020-06-16 2020-08-11 网易(杭州)网络有限公司 业务日志的处理方法及系统
CN111740870A (zh) * 2020-08-27 2020-10-02 苏州浪潮智能科技有限公司 一种网络动态管理方法、系统及装置
CN112468413A (zh) * 2020-11-26 2021-03-09 迈普通信技术股份有限公司 报文处理方法、装置、电子设备及存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100546301C (zh) * 2003-02-25 2009-09-30 株式会社日立制作所 流量整形方法及流量整形装置
US7388836B2 (en) * 2003-03-07 2008-06-17 Cisco Technology, Inc. System and method for communicating data in a network environment
US7627675B2 (en) * 2003-05-01 2009-12-01 Cisco Technology, Inc. Methods and devices for regulating traffic on a network
CN1324840C (zh) * 2003-06-18 2007-07-04 中兴通讯股份有限公司 一种网络处理器对数据流量进行限速的方法
GB0322770D0 (en) * 2003-09-29 2003-10-29 British Telecomm Bandwith allocation
US7355969B2 (en) * 2003-10-07 2008-04-08 Alcatel Line card port protection rate limiter circuitry
FI114598B (fi) * 2003-10-17 2004-11-15 Tellabs Oy Menetelmä ja laitteisto palvelunlaadun säilyttävän vuonmuokkauksen tekemiseksi pakettikytkentäisessä tietoliikenteessä
CN1301626C (zh) * 2004-05-10 2007-02-21 中兴通讯股份有限公司 一种对移动交换中心进行系统负荷控制的方法

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008080324A1 (fr) * 2006-12-31 2008-07-10 Huawei Technologies Co., Ltd. Procédé et appareil pour empêcher une attaque par messages igmp
WO2008122186A1 (fr) * 2007-04-05 2008-10-16 Huawei Technologies Co., Ltd. Procédé et dispositif permettant d'empêcher une attaque d'un petit paquet de données
CN101083563B (zh) * 2007-07-20 2010-08-11 杭州华三通信技术有限公司 一种防分布式拒绝服务攻击的方法及设备
CN101299719B (zh) * 2008-06-04 2012-07-25 北京星网锐捷网络技术有限公司 数据流的检测处理方法、中央处理器及交换机
CN101924679A (zh) * 2009-06-12 2010-12-22 中兴通讯股份有限公司 一种以太网口报文限速方法、装置及数据通信设备
CN101951339A (zh) * 2010-08-24 2011-01-19 北京星网锐捷网络技术有限公司 报文限速方法、装置及网络设备
CN101951339B (zh) * 2010-08-24 2012-08-15 北京星网锐捷网络技术有限公司 报文限速方法、装置及网络设备
CN102098215B (zh) * 2010-12-17 2014-03-12 曙光信息产业股份有限公司 一种多应用收包的优先级管理方法
CN102098215A (zh) * 2010-12-17 2011-06-15 天津曙光计算机产业有限公司 一种多应用收包的优先级管理方法
CN102769564B (zh) * 2011-04-29 2017-09-12 库柏技术公司 具有按需分优先级路由协议的多径无线电传输输入/输出设备
CN102769564A (zh) * 2011-04-29 2012-11-07 库柏技术公司 具有按需分优先级路由协议的多径无线电传输输入/输出设备、网络、系统和方法
CN102710502B (zh) * 2012-05-12 2015-01-07 杭州迪普科技有限公司 一种基于消耗时间的网络限速方法及装置
CN102710502A (zh) * 2012-05-12 2012-10-03 杭州迪普科技有限公司 一种基于消耗时间的网络限速方法及装置
CN102882809A (zh) * 2012-10-26 2013-01-16 杭州迪普科技有限公司 一种基于报文缓存的网络限速方法及装置
CN102882809B (zh) * 2012-10-26 2015-07-15 杭州迪普科技有限公司 一种基于报文缓存的网络限速方法及装置
US9667479B2 (en) 2012-10-30 2017-05-30 Zte Corporation Method and apparatus for periodical protocol packet transmission by network device
CN102938722A (zh) * 2012-10-30 2013-02-20 中兴通讯股份有限公司 一种网络设备周期性协议发包的方法及装置
WO2013182162A1 (zh) * 2012-10-30 2013-12-12 中兴通讯股份有限公司 一种网络设备周期性协议发包的方法及装置
CN102938722B (zh) * 2012-10-30 2017-11-10 中兴通讯股份有限公司 一种网络设备周期性协议发包的方法及装置
CN103117871B (zh) * 2012-12-31 2016-08-31 广东东研网络科技股份有限公司 用于olt网络管理通道的报文限制方法
CN103117871A (zh) * 2012-12-31 2013-05-22 广东东研网络科技股份有限公司 用于olt网络管理通道的报文限制系统及方法
CN104038494A (zh) * 2014-06-11 2014-09-10 普联技术有限公司 一种记录攻击来源的方法及交换机
CN106572073A (zh) * 2015-10-13 2017-04-19 广达电脑股份有限公司 通过滤除广播讯息减少负担的方法与系统及存储装置
CN105897365B (zh) * 2016-03-23 2019-01-18 京信通信系统(中国)有限公司 一种处理器的防冲击处理方法及装置
CN105897365A (zh) * 2016-03-23 2016-08-24 京信通信技术(广州)有限公司 一种处理器的防冲击处理方法及装置
CN106230741A (zh) * 2016-09-18 2016-12-14 杭州迪普科技有限公司 一种对报文进行限速的方法和装置
WO2019127597A1 (zh) * 2017-12-31 2019-07-04 华为技术有限公司 一种发送报文的方法、设备和系统
CN111512602A (zh) * 2017-12-31 2020-08-07 华为技术有限公司 一种发送报文的方法、设备和系统
CN111512602B (zh) * 2017-12-31 2022-12-06 华为技术有限公司 一种发送报文的方法、设备和系统
CN110852903A (zh) * 2019-11-15 2020-02-28 积成电子股份有限公司 一种基于fpga的阶梯型弹性网络风暴过滤方法
CN111526060A (zh) * 2020-06-16 2020-08-11 网易(杭州)网络有限公司 业务日志的处理方法及系统
CN111740870A (zh) * 2020-08-27 2020-10-02 苏州浪潮智能科技有限公司 一种网络动态管理方法、系统及装置
CN112468413A (zh) * 2020-11-26 2021-03-09 迈普通信技术股份有限公司 报文处理方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN100433711C (zh) 2008-11-12

Similar Documents

Publication Publication Date Title
CN1725732A (zh) 一种报文限速方法
Druschel et al. Lazy receiver processing (LRP): A network subsystem architecture for server systems
EP2353017B1 (en) Packet aggregation and fragmentation at layer-2 over a managed network
CN1716914A (zh) 用于业务混合的公平加权随机早期检测
CN101040471A (zh) 数据中心的以太网扩展
CN1787483A (zh) 一种流量控制方法
CN1801778A (zh) 一种网络数据流的多维队列调度与管理系统
CN1825804A (zh) 实现分布式系统板间通信的系统和方法
CN1812367A (zh) 一种多协议标签交换网络的数据传输方法及系统
CN1885799A (zh) 快速检测以太网交换机环路故障的方法
CN101035067A (zh) 一种基于输出队列的流控实现方法及装置
US10728156B2 (en) Scalable, low latency, deep buffered switch architecture
WO2012171460A1 (zh) 一种报文传输方法及装置
CN101075963A (zh) 一种基于网络QoS的动态控制装置及其方法
CN1866905A (zh) 对网络中传输的业务流进行整形的方法及装置
CN1913483A (zh) 一种低时延抖动小突发的亏空轮询方法
CN1863164A (zh) 一种abis接口反向拥塞控制方法和收发基站
KR20100032111A (ko) 네트워크 프로세서를 이용한 라우팅 시스템에서 ip 패킷의 플레그먼테이션 처리 장치 및 방법
WO2012068804A1 (zh) 报文处理方法及装置
CN101060489A (zh) 报文转发方法及装置
CN1266883C (zh) 一种网口流量控制的方法
CN1705295A (zh) 具有优先级的包传输系统及其方法
CN1314238C (zh) 实现嵌入式系统中任务间自适应通讯的方法
Chang et al. Analysis of interrupt coalescing schemes for receive-livelock problem in gigabit ethernet network hosts
CN1747434A (zh) 一种用于管道式分布系统的流量控制方法

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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: 310052 Binjiang District Changhe Road, Zhejiang, China, No. 466, No.

Patentee after: NEW H3C TECHNOLOGIES Co.,Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: HANGZHOU H3C TECHNOLOGIES Co.,Ltd.

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20081112