CN103166867B - 一种流控方法和装置 - Google Patents
一种流控方法和装置 Download PDFInfo
- Publication number
- CN103166867B CN103166867B CN201110426455.6A CN201110426455A CN103166867B CN 103166867 B CN103166867 B CN 103166867B CN 201110426455 A CN201110426455 A CN 201110426455A CN 103166867 B CN103166867 B CN 103166867B
- Authority
- CN
- China
- Prior art keywords
- list item
- multicast packets
- trap
- unknown multicast
- trap list
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 96
- 230000000875 corresponding Effects 0.000 claims abstract description 36
- 238000011084 recovery Methods 0.000 claims description 13
- 230000032683 aging Effects 0.000 claims description 10
- 230000001276 controlling effect Effects 0.000 claims description 10
- 235000013399 edible fruits Nutrition 0.000 claims description 3
- 238000004886 process control Methods 0.000 claims description 2
- 230000001960 triggered Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Abstract
本发明公开了一种流控方法,应用于包括多转发核的网络设备中,该方法包括:任一转发核接收到未知组播报文时,查找该未知组播报文对应的trap表项,若未查找到该未知组播报文对应的trap表项,则为该未知组播报文创建trap表项,并将该未知组播报文上送进行组播协议进程处理的控制核;若查找到该未知组播报文对应的trap表项,则确定该未知组播报文上送进行组播协议进程处理的转发核的速率是否高于预设速率阈值,如果是,将该未知组播报文丢弃;否则,将该未知组播报文上送进行组播协议进程处理的控制核。基于同样的发明构思,本发明还提出一种装置,能够防止大量的未知组播报文上送进行组播协议进程处理的控制核。
Description
技术领域
本发明涉及通信技术领域,特别涉及一种流控方法和装置。
背景技术
随着IP网络的高速发展,组播技术的应用也越来越广泛,同时对CPU的处理能力也提高了要求,因此伴随着多核的网络设备的广泛应用。
由于组播数据流量有时会非常大,在组播转发表项下发之前,会有大量的未知组播报文被上送CPU进行组播协议进行处理,尤其是同一未知组播流量的大量报文在其转发表项由CPU下发之前会重复上送CPU处理,使CPU接收大量无效报文,导致CPU负担过重。
发明内容
有鉴于此,本发明提供一种流控方法和装置,能够防止大量的未知组播报文上送进行组播协议进程处理的控制核,降低处理未知组播报文的负担。
为解决上述技术问题,本发明的技术方案是这样实现的:
一种流控方法,应用于包括多转发核的网络设备中,所述方法包括:
任一所述转发核接收到未知组播报文时,查找该未知组播报文对应的trap表项,若未查找到该未知组播报文对应的trap表项,则为该未知组播报文创建trap表项,并将该未知组播报文上送进行组播协议进程处理的控制核;若查找到该未知组播报文对应的trap表项,则确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值,如果是,将该未知组播报文丢弃;否则,将该未知组播报文上送进行组播协议进程处理的控制核。
一种流控装置,所述装置包括:接收单元、查找单元、创建单元、确定单元和处理单元;
所述接收单元,用于接收未知组播报文;
所述查找单元,用于当所述接收单元接收到未知组播报文时,查找该未知组播报文对应的trap表项;
所述创建单元,用于当所述查找单元未查找到该未知组播报文对应的trap表项时,为该未知组播报文创建trap表项;
所述确定单元,用于当所述查找单元查找到该未知组播报文对应的trap表项时,确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值;
所述处理单元,用于当所述创建单元为该未知组播报文创建trap表项后;或,当所述确定单元确定该未知组播报文上送进行组播协议进程处理的控制核的速率不高于预设速率阈值时,将该未知组播报文上送进行组播协议进程处理的控制核;当所述确定单元确定该未知组播报文上送进行组播协议进程处理的控制核的速率低于预设速率阈值时,将该未知组播报文丢弃。
综上所述,本发明通过对网络设备中的各转发核接收的未知组播报文进行trap表项匹配,已经建立了trap表项的未知组播报文需确定其上送进行组播协议进程处理的转发核的速率进行判断,对于上送速率小的未知组播报文上送,上送速率大的未知组播报文直接丢弃。能够防止大量的未知组播报文上送进行组播协议进程处理的转发核。
附图说明
图1为本发明实施例中流控方法流程示意图;
图2为本发明具体实施例中控制未知组播报文上送进行组播协议进程处理的控制核的流程示意图;
图3为本发明具体实施例中流控装置结构示意图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明所述方案作进一步地详细说明。
本发明提出一种流控方法,通过包括多个转发核的网络设备实现控制未知组播报文上送进行组播协议进程处理的控制核。该网络设备中任一转发核处理未知组播报文流程一致,下面通过任一转发核的处理来说明本发明是如何进行流控的。
参见图1,图1为本发明实施例中流控方法流程示意图。具体步骤包括:
步骤101,任一转发核接收到未知组播报文。
步骤102,该转发核是否查找到该未知组播报文对应的trap表项,如果是,执行步骤103;否则,执行步骤104。
步骤103,确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值,如果是,执行步骤106;否则,执行步骤105。
本步骤中的控制核,可以同多转发核在一个设备上,也可以同转发核在不同设备上。
步骤104,为该未知组播报文创建未知组播业务报文上交限速表项(trap表项)。
步骤105,将该未知组播报文上送进行组播协议进程处理的控制核。该流程结束。
步骤106,将该未知组播报文丢弃。
步骤104之后步骤105之前,将该转发核的trap表项个数加1;
步骤104中为该未知组播报文创建trap表项之前,该方法进一步包括:确定该转发核的trap表项个数是否大于预设门限值,如果是,执行步骤106;否则,执行步骤104。
步骤104中为该未知组播报文创建的trap表项包括该未知组播报文的源地址、组地址、VRF和转发核ID;
步骤102中查找该未知组播报文对应的trap表项的方法为:根据接收的该未知组播报文的转发核ID对应的trap表项,通过源地址、组地址、VRF进行匹配,都匹配则确定查找到该未知组播报文对应的trap表项;否则,确定未查找到该未知组播报文对应的trap表项。即源地址、组地址、VRF任意一项不一致则认为不匹配。
为该未知组播报文创建trap表项,并将该报文上送进行组播协议进程处理的控制核之后,该方法进一步包括:将该trap表项的更新标志位置为有效。
进行trap表项老化定时,定时到时,遍历该转发核上的所有trap表项,确定任一trap表项的更新标志位是否置为无效,如果是,将置为无效的trap表项放入链表回收队列,并将该转发核的trap表项减少对应放入所述链表回收队列的trap表项数目;否则,将该更新标志位置为无效。
该方法进一步包括:
进行trap表项回收定时,定时到时,删除该转发核上所述回收队列里的所有trap表项。
下面结合附图,详细说明本发明具体实施例中如何进行未知组播报文的上送的。
参见图2,图2为本发明具体实施例中控制未知组播报文上送进行组播协议进程处理的控制核的流程示意图。具体步骤为:
步骤201,任一转发核接收组播报文。
网络设备接收到组播报文时,根据该组播报文携带的源地址、组地址和VRF进行hash,将hash值与各转发核的ID值匹配,匹配到哪个转发核,哪个转发核就会接收到该组播报文。
步骤202,确定接收的组播报文是否为未知组播报文,如果是,执行步骤204;否则,执行步骤203。
接收到该组播报文,根据该设备上的所有转发表项中匹配该组播报文携带的源地址、组地址和VRF,匹配到,则根据匹配到的转发表项将该组播报文转发,未匹配到则确定该组播报文为未知组播报文。其中,该设备上的转发表项是进行组播协议进程处理的控制核对未知组播报文进行处理后下发给该设备的转发表项。
步骤203,根据该设备上的转发表项转发该组播报文。本流程结束。
步骤204,查找trap表项,是否存在该未知组播的trap表项,如果是,执行步骤209;否则,执行步骤205
步骤205,确定该转发核的trap表项个数是否大于预设门限值,如果是,执行步骤206;否则,执行步骤210。
步骤206,为该未知组播报文创建trap表项,是否创建成功,如果是,执行步骤207;否则,执行步骤210。
本步骤中如果内存不足等原因,可能造成trap表项创建不成功。创建的该trap表项存储该未知组播报文的源地址、组地址、VRF和转发核ID。由于本发明具体实施例中的网络设备的CPU包括多转发核,因此将创建的新的trap表项挂接到对应转发核的头结点上,因此,在该网络设备启动时需对每个转发核的trap表项进行初始化,即初始化trap表项的头结点,该转发核上创建了新的trap表项相应地挂接到该转发核的头结点后。
步骤207,将该转发核的trap表项个数加1。
该转发核每创建一个新的trap表项,即将该转发核的trap表项个数加1,该trap表项个数将限制是否还能再创建trap表项。
步骤208,将该未知组播报文上送进行组播协议进程处理的控制核。结束本流程。
本步骤进行组播协议进程处理的控制核如果接收到该未知组播报文,进行处理,如果转发该未知组播报文,则下发一个该未知组播报文的转发表项,该转发核根据该转发表项转发该未知组播报文。
未知组播报文上送后,将建立的trap表项的更新标志位置为有效。在具体实现时可以设置为true表示有效,false表示无效。
步骤209,该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值,如果是,执行步骤210;否则,执行步骤208。
当该转发核确定接收到未知组播报文时,在该转发核的trap表项中根据源地址、组地址和VRF进行匹配,匹配到,则确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值,如果是,将该未知组播报文丢弃;否则,将该未知组播报文上送进行组播协议进程处理的控制核。其中,预设速率阈值根据进行组播协议进程处理的转发核的处理能力进行设置。低于该预设阈值时上送未知组播报文保证了该未知组播报文一定可以到达进行组播协议进程处理的控制核,因为当同一时间上送进行组播协议进程处理的转发核的报文太多,这种时候就有可能会将一部分报文丢弃,其中就有可能含有该未知组播报文;如果高于该预设阈值,则直接将该未知组播报文丢弃,不再上送。
步骤210,丢弃该组播报文。
本发明应用的网络设备包括多转发核,对于每个转发核实现trap表项老化定时和trap表项回收定时时,可以为每个转发核设置一个计时器,也可通过一个计时器实现所有转发核的定时。下面详细描述一个计时器来实现对该网络设备上的所有转发核的trap表项定时。
网络设备中设置trap老化计时器,当trap老化计时器到时时,老化某一个转发核的所有trap表项,而当trap老化计时器下次到时则按顺序的老化下一个转发核的所有trap表项,依此循环,老化所有转发核的所有trap表项。这里的按顺序老化,可以按各转发核的转发核ID大小排序。
在trap表项老化时,对于已经设置为无效的trap表项先放入trap表项回收队列,没有立即删除,是为了防止如果此时该转发核在访问该trap表项时导致访问了已经释放的内存单元的情况发生。
本发明具体实施例中,网络设备包括的多转发核进行流控处理和转发报文,上送进行组播协议进程处理的控制核可在该网络设备上,也可在其他网络设备上。为了方便在实际应用中进行流控处理和转发报文的核称为转发转发核,进行组播协议进程处理的核称为控制核。因此本发明通过转发转发核来实现流控功能,控制核对转发核上送的未知组播报文进行处理并下发该未知组播的转发表。
基于同样的发明构思,本发明还提出一种流控装置。参见图3,图3为本发明具体实施例中流控装置结构示意图。该装置包括:接收单元301、查找单元302、创建单元303、确定单元304和处理单元305。
接收单元301,用于接收未知组播报文。
查找单元302,用于当接收单元301接收到未知组播报文时,查找该未知组播报文对应的trap表项。
创建单元303,用于当查找单元302未查找到该未知组播报文对应的trap表项时,为该未知组播报文创建trap表项。
确定单元304,用于当查找单元302查找到该未知组播报文对应的trap表项时,确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值;
处理单元305,用于当创建单元303为该未知组播报文创建trap表项后;或,当确定单元304确定该未知组播报文上送进行组播协议进程处理的控制核的速率不高于预设速率阈值时,将该未知组播报文上送进行组播协议进程处理的控制核;当确定单元304确定该未知组播报文上送进行组播协议进程处理的控制核的速率高于预设速率阈值时,将该未知组播报文丢弃。
较佳地,
创建单元303,进一步用于创建trap表项之后,将自身所在装置的trap表项个数加1。
确定单元304,用于查找单元302未查找到该未知组播报文对应的trap表项时,确定自身所在装置的trap表项个数是否大于预设门限值,如果是,触发处理单元305执行丢弃该未知组播报文操作;否则,触发创建单元303执行创建trap表项操作。
较佳地,
查找单元302,用于根据接收单元301接收的该未知组播报文的转发核ID对应的trap表项,通过源地址、组地址、VRF进行匹配,都匹配则确定查找到该未知组播报文对应的trap表项;否则,确定未查找到该未知组播报文对应的trap表项,其中,所述trap表项包括该未知组播报文的源地址、组地址、VRF和转发核ID。
较佳地,该装置进一步包括:老化单元306。
创建单元303,进一步用于当处理单元305将自身创建trap表项的该未知组播报文上送进行组播协议进程处理的控制核之后,将该trap表项的更新标志位置为无效。
老化单元306,用于进行trap表项老化定时,定时到时,遍历创建单元303上的所有trap表项,确定任一trap表项的更新标志位是否置为无效,如果是,将置为无效的trap表项放入链表回收队列,并将该转发核的trap表项个数减少对应放入所述链表回收队列的trap表项数目;否则,将该更新标志位置为无效。
较佳地,该装置进一步包括:回收单元307。
回收单元307,用于进行trap表项回收定时,定时到时,删除老化单元306放入到所述回收队列里的所有trap表项。
上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元,也可以进一步拆分成多个子单元。
综上所述,本发明通过对网络设备中的各转发核接收的未知组播报文进行trap表项匹配,已经建立了trap表项的未知组播报文需确定其上送进行组播协议进程处理的控制核的速率进行判断,对于上送速率小的未知组播报文上送,上送速率大的未知组播报文直接丢弃。能够防止大量的未知组播报文上送进行组播协议进程处理的控制核,避免了CPU资源的浪费。
有速率限制将未知组播业务报文上交CPU避免了由于CPU太忙或者其他原因造成之前被上交的该报文被丢弃导致了该业务包的组播转发表建立不起来的问题。每个转发核维护自己的trap表项,各个转发核之间没有影响。该方法对硬件要求小,使用灵活,随着多转发核设备的应用,市场应用广,具有很大的实用价值。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种流控方法,应用于包括多转发核的网络设备中,其特征在于,所述方法包括:
任一所述转发核接收到未知组播报文时,查找该未知组播报文对应的未知组播业务报文上交限速trap表项,若未查找到该未知组播报文对应的trap表项,则为该未知组播报文创建trap表项,并将该未知组播报文上送进行组播协议进程处理的控制核;若查找到该未知组播报文对应的trap表项,则确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值,如果是,将该未知组播报文丢弃;否则,将该未知组播报文上送进行组播协议进程处理的控制核。
2.根据权利要求1所述的方法,其特征在于,所述为该未知组播报文创建trap表项之后,所述方法进一步包括:将该转发核的trap表项个数加1;
所述为该未知组播报文创建trap表项之前,该方法进一步包括:确定所述转发核的trap表项个数是否大于预设门限值,如果是,丢弃该未知组播报文;否则,执行所述为该未知组播报文创建trap表项及后续步骤。
3.根据权利要求2所述的方法,其特征在于,所述为该未知组播报文创建的trap表项包括该未知组播报文的源地址、组地址、VRF和转发核ID;
所述查找该未知组播报文对应的trap表项的方法为:根据接收的该未知组播报文的转发核ID对应的trap表项,通过源地址、组地址、VRF进行匹配,都匹配则确定查找到该未知组播报文对应的trap表项;否则,确定未查找到该未知组播报文对应的trap表项。
4.根据权利要求1-3任意一项所述的方法,其特征在于,所述为该未知组播报文创建trap表项,并将该报文上送进行组播协议进程处理的控制核之后,所述方法进一步包括:将该trap表项的更新标志位置为有效;
进行trap表项老化定时,定时到时,遍历该转发核上的所有trap表项,确定任一trap表项的更新标志位是否置为无效,如果是,将置为无效的trap表项放入链表回收队列,并将该转发核的trap表项个数减少对应放入所述链表回收队列的trap表项数目;否则,将该更新标志位置为无效。
5.根据权利要求4所述的方法,其特征在于,所述方法进一步包括:
进行trap表项回收定时,定时到时,删除该转发核上所述回收队列里的所有trap表项。
6.一种流控装置,其特征在于,所述装置包括:接收单元、查找单元、创建单元、确定单元和处理单元;
所述接收单元,用于接收未知组播报文;
所述查找单元,用于当所述接收单元接收到未知组播报文时,查找该未知组播报文对应的未知组播业务报文上交限速trap表项;
所述创建单元,用于当所述查找单元未查找到该未知组播报文对应的trap表项时,为该未知组播报文创建trap表项;
所述确定单元,用于当所述查找单元查找到该未知组播报文对应的trap表项时,确定该未知组播报文上送进行组播协议进程处理的控制核的速率是否高于预设速率阈值;
所述处理单元,用于当所述创建单元为该未知组播报文创建trap表项后;或,当所述确定单元确定该未知组播报文上送进行组播协议进程处理的控制核的速率不高于预设速率阈值时,将该未知组播报文上送进行组播协议进程处理的控制核;当所述确定单元确定该未知组播报文上送进行组播协议进程处理的控制核的速率低于预设速率阈值时,将该未知组播报文丢弃。
7.根据权利要求6所述的装置,其特征在于,
所述创建单元,进一步用于创建trap表项之后,将自身所在装置的trap表项个数加1;
所述确定单元,进一步用于所述查找单元未查找到该未知组播报文对应的trap表项时,确定自身所在装置的trap表项个数是否大于预设门限值,如果是,触发所述处理单元执行丢弃该未知组播报文操作;否则,触发所述创建单元执行创建trap表项操作。
8.根据权利要求7所述的装置,其特征在于,
所述查找单元,用于根据所述接收单元接收的该未知组播报文的转发核ID对应的trap表项,通过源地址、组地址和VRF进行匹配,都匹配则确定查找到该未知组播报文对应的trap表项;否则,确定未查找到该未知组播报文对应的trap表项,其中,所述trap表项包括该未知组播报文的源地址、组地址、VRF和转发核ID。
9.根据权利要求8所述的装置,其特征在于,所述装置进一步包括:老化单元;
所述创建单元,进一步用于当所述处理单元将自身创建trap表项的该未知组播报文上送进行组播协议进程处理的控制核之后,将该trap表项的更新标志位置为无效;
所述老化单元,用于进行trap表项老化定时,定时到时,遍历所述创建单元上的所有trap表项,确定任一trap表项的更新标志位是否置为无效,如果是,将置为无效的trap表项放入链表回收队列,并将该转发核的trap表项个数减少对应放入所述链表回收队列的trap表项数目;否则,将该更新标志位置为无效。
10.根据权利要求9所述的装置,其特征在于,所述装置进一步包括:回收单元;
所述回收单元,用于进行trap表项回收定时,定时到时,删除所述老化单元放入到所述回收队列里的所有trap表项。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110426455.6A CN103166867B (zh) | 2011-12-19 | 一种流控方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110426455.6A CN103166867B (zh) | 2011-12-19 | 一种流控方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103166867A CN103166867A (zh) | 2013-06-19 |
CN103166867B true CN103166867B (zh) | 2016-12-14 |
Family
ID=
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060465A (zh) * | 2006-04-27 | 2007-10-24 | 华为技术有限公司 | 控制组播数据传输的方法及系统 |
CN101626324A (zh) * | 2009-08-19 | 2010-01-13 | 杭州华三通信技术有限公司 | 转发路径检测方法和设备 |
CN101789905A (zh) * | 2010-02-05 | 2010-07-28 | 杭州华三通信技术有限公司 | 防止未知组播攻击cpu的方法和设备 |
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101060465A (zh) * | 2006-04-27 | 2007-10-24 | 华为技术有限公司 | 控制组播数据传输的方法及系统 |
CN101626324A (zh) * | 2009-08-19 | 2010-01-13 | 杭州华三通信技术有限公司 | 转发路径检测方法和设备 |
CN101789905A (zh) * | 2010-02-05 | 2010-07-28 | 杭州华三通信技术有限公司 | 防止未知组播攻击cpu的方法和设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7856019B2 (en) | Convergence of multicast traffic | |
CN105357146B (zh) | 出口网关内缓存队列饱和攻击防御方法、装置及系统 | |
CN1910839A (zh) | 用于建立移动终端的无线承载的装置和方法 | |
WO2010022629A1 (zh) | 一种多链路协议分片数据的重组方法、装置及系统 | |
EP3972208A1 (en) | Network routing method and apparatus | |
CN1228909A (zh) | 用于无线消息传送系统的堵塞控制方法 | |
CN101789905A (zh) | 防止未知组播攻击cpu的方法和设备 | |
CN1596526A (zh) | 在数据通信网络中管理拥挤的方法和设备 | |
WO2007061659A2 (en) | Method and system for processing incoming packets in a communication network | |
CN1863158B (zh) | 一种ip报文分片缓存及转发方法 | |
CN1744569A (zh) | 未知组播报文的处理方法 | |
CN107066341B (zh) | 一种软件模块间的事件路由框架及方法 | |
CN101272254A (zh) | 生成攻击特征库的方法、防范网络攻击的方法以及装置 | |
CN103166867B (zh) | 一种流控方法和装置 | |
CN102868636A (zh) | 多核网络设备报文按流保序方法及系统 | |
CN1567900A (zh) | 一种在路由设备中实现报文转发控制的方法 | |
CN106789671B (zh) | 一种业务报文转发方法及设备 | |
CN101488873B (zh) | 组播加入方法及系统 | |
CN107645452A (zh) | 一种未知组播报文的处理方法和装置 | |
CN106230649A (zh) | 会话资源管理方法及装置 | |
CN113992364B (zh) | 一种网络数据包阻断优化方法以及系统 | |
CN102833082B (zh) | 一种组播剪枝方法和路由设备 | |
Rothermel et al. | A robust and efficient mechanism for constructing multicast acknowledgement trees | |
JPWO2009110445A1 (ja) | アドレス検索方法およびパケット処理装置 | |
CN113132506A (zh) | 基于超级虚拟局域网的报文处理方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |