一种未知组播报文的处理方法和装置转让专利

申请号 : CN201610571457.7

文献号 : CN107645452B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李大鹏

申请人 : 中兴通讯股份有限公司

摘要 :

本发明提供一种未知组播报文的处理方法和装置,该方法可包括:接收专用集成电路发送的未知组播报文;判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录;在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送。本发明实施例可以解决由于大量未知组播报文上送协议栈,导致CPU占用率过高,影响其他正常业务的问题。

权利要求 :

1.一种未知组播报文的处理方法,其特征在于,包括:接收专用集成电路发送的未知组播报文;

判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;

若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加未知组播流记录;

在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送;

所述在所述未知组播流数据库中添加所述未知组播流记录包括:在所述未知组播流数据库中添加所述未知组播流记录,在所述未知组播流记录中添加上送标记,并为所述未知组播流记录创建计数,其中,所述上送标记用于记录所述未知组播报文已经上送;

若所述未知组播流数据库存在所述未知组播流记录,则判断所述未知组播流记录是否存在所述上送标记;

若存在所述上送标记,则丢弃所述未知组播报文;

若不存在所述上送标记,则将所述未知组播报文上送至所述协议栈,并为所述未知组播报文所在的未知组播流添加所述上送标记。

2.如权利要求1所述的方法,其特征在于,所述方法还包括:设置计时器,在所述接收专用集成电路发送的未知组播报文的同时开始计时,当计时器时间到达预先设定的时间时,遍历所述未知组播流数据库记录,并将当前遍历的记录的计数加1;

若所述计数不大于预设的阈值,则删除所述未知组播流记录中的所述上送标记,并向所述专用集成电路发送转发表项,所述转发表项用于在所述协议栈向所述专用集成电路发送正式转发表项前再次上送所述未知组播报文;

若所述计数大于所述预设的阈值,则删除该未知组播流记录,并删除该未知组播流记录对应的所述转发表项。

3.如权利要求2所述的方法,其特征在于,所述方法还包括:在所述协议栈接收所述未知组播报文后,接收所述协议栈发送的所述正式转发表项,判断在所述未知组播流数据库中是否存在所述未知组播流记录;

若不存在所述未知组播流记录,则向所述专用集成电路发送所述正式转发表项;

若存在所述未知组播流记录,则删除所述未知组播流数据库中的所述未知组播流记录,并向所述专用集成电路发送所述正式转发表项。

4.一种未知组播报文的处理装置,包括:

接收模块,用于接收专用集成电路发送的未知组播报文;

第一判断模块,用于判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;

第一发送模块,用于若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加未知组播流记录;

第二发送模块,用于在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送;

所述第一判断模块包括:添加单元,用于在所述未知组播流数据库中添加所述未知组播流记录,在所述未知组播流记录中添加上送标记,并为所述未知组播流记录创建计数,其中,所述上送标记用于记录所述未知组播报文已经上送;

第二判断模块,用于若所述未知组播流数据库存在所述未知组播流记录,则判断所述未知组播流记录是否存在所述上送标记;

丢弃模块,用于若存在所述上送标记,则丢弃所述未知组播报文;

上送模块,用于若不存在所述上送标记,则将所述未知组播报文上送至所述协议栈,并为所述未知组播报文所在的未知组播流添加所述上送标记。

5.如权利要求4所述的装置,其特征在于,所述装置还包括:计时模块,用于设置计时器,在所述接收专用集成电路发送的未知组播报文的同时开始计时,当计时器时间到达预先设定的时间时,遍历所述未知组播流数据库记录,并将当前遍历的记录的计数加1;

第一删除模块,用于若所述计数不大于预设的阈值,则删除所述未知组播流记录中的所述上送标记,并向所述专用集成电路发送转发表项,所述转发表项用于在所述协议栈向所述专用集成电路发送正式转发表项前再次上送所述未知组播报文;

第二删除模块,用于若所述计数大于所述预设的阈值,则删除该未知组播流记录,并删除该未知组播流记录对应的所述转发表项。

6.如权利要求5所述的装置,其特征在于,所述装置还包括:第三判断模块,用于在所述协议栈接收所述未知组播报文后,接收所述协议栈发送的所述正式转发表项,判断在所述未知组播流数据库中是否存在所述未知组播流记录;

第三发送模块,用于若不存在所述未知组播流记录,则向所述专用集成电路发送所述正式转发表项;

第三删除模块,用于若存在所述未知组播流记录,则删除所述未知组播流数据库中的所述未知组播流记录,并向所述专用集成电路发送所述正式转发表项。

说明书 :

一种未知组播报文的处理方法和装置

技术领域

[0001] 本发明涉及通信技术领域,特别涉及一种未知组播报文的处理方法和装置。

背景技术

[0002] 目前,对于组播,中央处理器(Central Processing Unit,简称CPU)运行组播相关路由协议,并将转发路由给专用集成电路(Application Specific Integrated Circuit,ASIC芯片),当组播报文进入ASIC芯片时,芯片查找内部表项,确定组播复制出口,并向各个出接口转发报文。当接收的报文没有找到内部表项时,ASIC芯片一般提供两个操作可供选择,一是直接丢弃,二是上送CPU。一般情况下,需要将报文上送CPU供组播路由协议栈分析,在等待协议分析结果前,会有大量组播报文上送,给CPU造成较大负担。
[0003] 传统的方法是不做特殊处理,组播数据流持续上送,等待CPU协议分析完成下发正式的转发表项,这时未知组播已经可以查到转发表项,根据表项进行转发。这样,在正式转发表项下发前会有大量的未知组播报文上送协议栈,容易导致CPU占用率过高,影响其他正常业务。

发明内容

[0004] 本发明实施例的目的在于提供一种未知组播报文的处理方法,解决了大量未知组播报文上送协议栈,导致CPU占用率过高,影响其他正常业务的问题。
[0005] 为了达到上述目的,本发明实施例提供一种未知组播报文的处理方法,包括:
[0006] 接收专用集成电路发送的未知组播报文;
[0007] 判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;
[0008] 若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录;
[0009] 在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送。
[0010] 本发明实施例还提供一种计算机存储介质,所述计算机存储介质中存储有计算机可执行的一个或多个程序,所述一个或多个程序被所述计算机执行时使所述计算机执行如上述提供的一种未知组播报文的处理方法。
[0011] 上述技术方案中的一个技术方案具有如下优点或有益效果:
[0012] 本发明实施例接收专用集成电路发送的未知组播报文;判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;若不存在,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录;在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,以控制所述未知组播报文不再继续上送。这样能够防止报文大量上送而影响CPU性能及其他正常业务模块的运行。

附图说明

[0013] 图1为本发明实施例提供的一种未知组播报文的处理方法流程示意图;
[0014] 图2为本发明实施例提供的另一种未知组播报文的处理方法流程示意图;
[0015] 图3为本发明实施例提供的一种未知组播报文的处理方法举例;
[0016] 图4为本发明实施例提供的一种未知组播报文的处理装置;
[0017] 图5为本发明实施例提供的另一种未知组播报文的处理装置;
[0018] 图6为本发明实施例提供的另一种未知组播报文的处理装置;
[0019] 图7为本发明实施例提供的另一种未知组播报文的处理装置;
[0020] 图8为本发明实施例提供的另一种未知组播报文的处理装置。

具体实施方式

[0021] 为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合附图及具体实施例进行详细描述。
[0022] 如图1所示,本发明实施例提供一种未知组播报文的处理方法,包括以下步骤:
[0023] 步骤S101、接收专用集成电路发送的未知组播报文。
[0024] 上述未知组播报文可以是ASIC芯片接收上述组播报文并查找硬件转发表项,未匹配到转发表项时所述的组播报文。
[0025] 上述ASIC芯片接收上述未知组播报文后,将上述未知组播报文发送至芯片驱动,由上述芯片驱动接收。
[0026] 步骤S102、判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录。
[0027] 上述未知组播流数据库可以是预先建立的,上述未知组播流数据库可以用于存放上述未知组播流记录。上述判断上述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录可以是查询上述未知组播流数据库中的上述未知组播流记录,判断上述未知组播流在上述未知组播流数据库中是否存在记录。其中,上述未知组播报文可以是步骤S101中接收到的上述未知组播报文。
[0028] 步骤S103、若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录。
[0029] 若上述未知组播流数据库中不存在上述未知组播流记录,芯片驱动向协议栈发送上述未知组播报文,并在上述未知组播流数据库中添加上述未知组播流记录,上述记录可以是采用多种方式来记录,本实施例对此不作限定。
[0030] 例如,在上述未知组播流数据库中没有查询到上述未知组播数据流,驱动芯片向上述协议栈发送上述未知组播报文,并在上述未知组播流数据库中添加上述未知组播流记录,并在该记录中添加上送标记。
[0031] 步骤S104、在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送。
[0032] 上述限速表可以是上述芯片驱动向专用集成电路发送的的转发表项,上述限速表可以是出接口为空的转发表项,用于控制上述未知组播报文不再继续上送。例如,芯片驱动向专用集成电路发送限速表,上述限速表的出接口为空,可以用于控制上述未知组播报文不再继续上送。此处仅是举例,本实施例对此不作限定。
[0033] 在所述未知组播流数据库中添加所述未知组播流记录后,上述芯片驱动向上述专用集成电路发送上述限速表项,控制上述未知组播报文不再继续上送。
[0034] 本实施例中,上述方法可以应用于交换机。
[0035] 本发明实施例接收专用集成电路发送的未知组播报文;判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录;在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,以控制所述未知组播报文不再继续上送。这样能够防止报文大量上送而影响CPU性能及其他正常业务模块的运行。
[0036] 如图2所示,图2为本发明实施例提供的另一种未知组播报文的处理方法,包括:
[0037] 步骤S201、接收专用集成电路发送的未知组播报文。
[0038] 步骤S202、判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录。
[0039] 步骤S203、若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录,在所述未知组播流记录中添加上送标记,并为所述未知组播流记录创建计数,其中,所述上送标记用于记录所述未知组播报文已经上送。
[0040] 上述上送标记用于记录上述未知组播报文已经上送至上述协议栈,上述上送标记可以是以多种形式进行标记,本实施例对此不作限定。在上述未知组播报文添加已上送标记后,为该条记录创建计数。
[0041] 这样,在上述未知组播流记录中添加上述上送标记,并为上述未知组播流记录创建计数,可以更好地统计上述未知组播流记录。
[0042] 步骤S204、在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送。
[0043] 可选的,上述实施例还可以包含以下步骤:
[0044] 步骤S205、在所述协议栈接收所述未知组播报文后,接收所述协议栈发送的所述正式转发表项,判断在所述未知组播流数据库中是否存在所述未知组播流记录。
[0045] 上述协议栈接收芯片驱动上送的上述未知组播报文后,向芯片驱动发送正式转发表项,上述正式转发表项可以是用于在若干个上述定时周期后,由协议栈发送的转发表项,结束该若干个定时周期的循环过程。上述芯片驱动接收上述正式转发表项,查询上述未知组播流数据库,判断在上述未知组播流数据库中是否存在上述未知组播流记录。
[0046] 步骤S206、若不存在所述未知组播流记录,则向所述专用集成电路发送所述正式转发表项。
[0047] 判断上述未知组播流数据库中是否存在上述未知组播流记录,若不存在上述未知组播流记录,则向上述ASIC芯片发送上述正式转发表项,上述正式转发表项可以是在若干个上述定时周期后,由协议栈发送的转发表项,结束该若干个定时周期的循环过程。
[0048] 步骤S207、若存在所述未知组播流记录,则删除所述未知组播流数据库中的所述未知组播流记录,并向所述专用集成电路发送所述正式转发表项。
[0049] 若存在上述未知组播流记录,则删除上述未知组播流数据库中的上述未知组播流记录,则删除上述未知组播流记录,向上述ASIC芯片发送上述正式转发表项,覆盖上述ASIC芯片里的之前下发的限速表项,完成限速表到正式转发表的转换,上述ASIC芯片按照正式转发表进行转发。
[0050] 本实施例能够提高正式转发表的发送效率,防止报文大量上送,影响CPU性能。
[0051] 可选的,上述实施例还可以包含以下步骤:
[0052] 若所述未知组播流数据库存在所述未知组播流记录,则判断所述未知组播流记录是否存在所述上送标记;
[0053] 若存在所述上送标记,则丢弃所述未知组播报文;
[0054] 若不存在所述上送标记,则将所述未知组播报文上送至所述协议栈,并为所述未知组播报文所在的未知组播流添加所述上送标记。
[0055] 判断上述未知组播报文所在的未知组播流在上述未知组播流数据库中是否存在记录,若存在上述记录,则判断上述未知组播流记录是否存在上述上送标记。上送标记用于记录所述未知组播报文已经上送。
[0056] 判断上述未知组播流记录是否存在上述上送标记,若存在上述上送标记,则说明上述未知组播报文已经上送,则丢弃上述未知组播报文;若不存在上述上送标记,则说明上述未知组播流已经超过了一个定时周期,将上述未知组播报文继续上送至协议栈,并为上述未知组播报文所在的未知组播流添加上述上送标记,记录上述未知组播报文已经上送。
[0057] 本实施例通过判断上述未知组播流是否已经上送,可以对上述未知组播报文有针对性地分别进行处理,提高处理上述未知组播报文的效率。
[0058] 可选的,上述实施例还可以包含以下步骤:
[0059] 设置计时器,在所述接收未知组播报文的同时开始计时,当计时器时间到达预先设定的时间时,遍历所述未知组播流数据库记录,并将当前遍历的记录的计数加1;
[0060] 若所述计数不大于预设的阈值,则删除所述未知组播流记录中的所述上送标记,并向所述专用集成电路发送转发表项,所述转发表项用于在所述协议栈向所述专用集成电路发送正式转发表项前再次上送所述未知组播报文;
[0061] 若所述计数大于所述预设的阈值,则删除该未知组播流记录,并删除该未知组播流记录对应的所述转发表项。
[0062] 其中,上述计时器可以是从上述接收未知组播报文开始计时,当计时器到达上述预先设定的时间时,芯片驱动遍历上述未知组播流数据库记录,查找到记录后,将当前遍历到的记录的计数加1,表示该条记录经历了一个计时周期。例如,当前遍历到的记录的计数为5,在当前遍历到的记录的计数加1后计数为6。
[0063] 其中,上述阈值可以是预先设定的阈值,上述阈值可以是预先接收用户输入的,或者预先生成并存储于交换机上的或者交换机出厂时设置的等等,本实施例对此不作限定。
[0064] 若上述计数不大于预设的阈值,上述芯片驱动删除上述未知组播记录中的上述上送标记,将记录更新至上述未知组播流数据库,并向ASIC芯片发送接口为CPU的限速表,该限速表用于使需要上送至CPU的未知组播报文在一个定时周期后,恢复上送。
[0065] 若上述计数大于上述预设的阈值,则删除该条未知组播流在数据库中的记录,并删除该条未知组播流记录对应的上述转发表项,这样,可以使一些无用表项占用的芯片资源在一段时间后得到释放。
[0066] 本实施例通过设置计时器,控制上述未知组播流周期性地上送至上述CPU,并控制上述驱动芯片资源合理利用,能够防止报文大量上送而影响CPU性能及其他正常业务模块的运行。
[0067] 为方便说明上述实施例,对上述实施例进行举例说明。
[0068] 图3为本发明实施例的一种未知组播报文的处理方法的举例。如图3所示,在芯片驱动接收上述未知组播报文时开始计时,芯片驱动提取上述未知组播报文信息,查找在未知组播流数据库中是否存在上述未知组播报文所在的未知组播流记录,如果不存在,则上述芯片驱动将上述未知组播报文上送给协议栈,并在上述未知组播流数据库中添加上述未知组播报文所在的未知组播流记录,并为该记录添加已上送标记,创建该记录的计数,上述标记用于记录上述未知组播报文已上送。芯片驱动向ASIC芯片发送出接口为空的限速表,限制上述未知组播流继续上送。
[0069] 若上述未知组播流数据库中存在上述未知组播报文所在的未知组播流记录,则判断上述未知组播流记录是否存在上述上送标记,若存在上述上送标记,则将该未知组播报文直接丢弃,若不存在上述上送标记,则说明该未知组播流已经经历了一个定时周期,应该继续上送至协议栈,则将上述未知组播报文上送至协议栈,并为该未知组播流记录添加上送标记,更新到上述未知组播流数据库。芯片驱动向ASIC芯片发送出接口为空的限速表,限制上述未知组播流继续上送。
[0070] 当上述计时器时间到了预先设定的时间时,驱动遍历上述未知组播流数据库记录,将遍历到的记录的计数加1,表示该条记录经历了一个计时周期。判断该条记录的计数是否大于预设的阈值,若不大于上述预设的阈值,则上述芯片驱动删除该未知组播流记录的上送标记,并将记录更新至上述未知组播数据库,并下发出接口为CPU的限速表,使未知组播报文恢复上送至CPU。
[0071] 当未知组播流记录的计数大于预设的阈值时,直接删除该条未知组播流记录,并删除该未知组播流记录对应的上述转发表项,以控制部分无用的表项占用的芯片资源在一定时间后得到释放。
[0072] 上述协议栈接收到上述未知组播报文后,向芯片驱动发送正式转发表项,芯片驱动接收到上述正式转发表项,查找未知组播流数据库中是否存在上述未知组播报文所在的未知组播流记录,如果未找到上述未知组播流记录,则上述芯片驱动向ASIC芯片发送上述正式转发表项;如果上述芯片驱动在上述未知组播流数据库中查找到上述未知组播流记录,则删除该未知组播流记录,然后向上述ASIC芯片发送正式转发表项。
[0073] 在每一个计时周期内,都会由ASIC芯片向CPU上送一份未知组播报文,后续报文由空接口限速表丢弃,直至协议栈下发正式转发表项结束这一循环过程。这样能够防止报文大量上送而影响CPU性能及其他正常业务模块的运行。
[0074] 如图4所示,图4为本发明实施例提供的未知组播报文的处理装置,所述装置可以应用于交换机,如图4,未知组播报文处理装置400包括:接收模块401,第一判断模块402,第一发送模块403,第二发送模块404。
[0075] 接收模块401,用于接收专用集成电路发送的未知组播报文;
[0076] 第一判断模块402,用于判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;
[0077] 第一发送模块403,用于若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录;
[0078] 第二发送模块404,用于在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送。
[0079] 可选的,如图5所示,所述第一判断模402块包括:
[0080] 添加单元4021,用于在所述未知组播流数据库中添加所述未知组播流记录,在所述未知组播流记录中添加上送标记,并为所述未知组播流记录创建计数,其中,所述上送标记用于记录所述未知组播报文已经上送。
[0081] 可选的,如图6所示,所述装置还包括:
[0082] 第二判断模块405,用于若所述未知组播流数据库存在所述未知组播流记录,则判断所述未知组播流记录是否存在所述上送标记;
[0083] 丢弃模块406,用于若存在所述上送标记,则丢弃所述未知组播报文;
[0084] 上送模块407,用于若不存在所述上送标记,则将所述未知组播报文上送至所述协议栈,并为所述未知组播报文所在的未知组播流添加所述上送标记。
[0085] 可选的,如图7所示,所述装置还包括:
[0086] 计时模块408,用于设置计时器,在所述接收未知组播报文的同时开始计时,当计时器时间到达预先设定的时间时,遍历所述未知组播流数据库记录,并将当前遍历的记录的计数加1;
[0087] 第一删除模块409,用于若所述计数不大于预设的阈值,则删除所述未知组播流记录中的所述上送标记,并向所述专用集成电路发送转发表项,所述转发表项用于在所述协议栈向所述专用集成电路发送正式转发表项前再次上送所述未知组播报文;
[0088] 第二删除模块410,用于若所述计数大于所述预设的阈值,则删除该未知组播流记录,并删除该未知组播流记录对应的所述转发表项。
[0089] 可选的,如图8所示,所述装置还包括:
[0090] 第三判断模块411,用于在所述协议栈接收所述未知组播报文后,接收所述协议栈发送的所述正式转发表项,判断在所述未知组播流数据库中是否存在所述未知组播流记录;
[0091] 第三发送模块412,用于若不存在所述未知组播流记录,则向所述专用集成电路发送所述正式转发表项;
[0092] 第三删除模块413,用于若存在所述未知组播流记录,则删除所述未知组播流数据库中的所述未知组播流记录,并向所述专用集成电路发送所述正式转发表项。
[0093] 本实施例中,上述未知组播报文处理装置400可以应用于交换机。
[0094] 未知组播报文处理装置400能够实现图1至图2的方式实施例中的各个过程,为避免重复,这里不再赘述。未知组播报文处理装置400能够防止报文大量上送而影响CPU性能及其他正常业务模块的运行。
[0095] 本领域普通技术人员可以理解实现上述实施例方法的全部或者部分步骤是可以通过程序指令相关的硬件来完成,所述的程序可以存储于一计算机可读取介质中,该程序在执行时,包括以下步骤:
[0096] 接收专用集成电路发送的未知组播报文;
[0097] 判断所述未知组播报文所在的未知组播流在未知组播流数据库中是否存在记录;
[0098] 若不存在所述记录,则向协议栈发送所述未知组播报文,并在所述未知组播流数据库中添加所述未知组播流记录;
[0099] 在所述未知组播流数据库中添加所述未知组播流记录后,向所述专用集成电路发送接口为空的限速表,所述限速表用于控制所述未知组播报文不再继续上送。
[0100] 可选的,所述在所述未知组播流数据库中添加所述未知组播流记录包括:
[0101] 在所述未知组播流数据库中添加所述未知组播流记录,在所述未知组播流记录中添加上送标记,并为所述未知组播流记录创建计数,其中,所述上送标记用于记录所述未知组播报文已经上送。
[0102] 可选的,所述方法还包括:
[0103] 若所述未知组播流数据库存在所述未知组播流记录,则判断所述未知组播流记录是否存在所述上送标记;
[0104] 若存在所述上送标记,则丢弃所述未知组播报文;
[0105] 若不存在所述上送标记,则将所述未知组播报文上送至所述协议栈,并为所述未知组播报文所在的未知组播流添加所述上送标记。
[0106] 可选的,所述方法还包括:
[0107] 设置计时器,在所述接收未知组播报文的同时开始计时,当计时器时间到达预先设定的时间时,遍历所述未知组播流数据库记录,并将当前遍历的记录的计数加1;
[0108] 若所述计数不大于预设的阈值,则删除所述未知组播流记录中的所述上送标记,并向所述专用集成电路发送转发表项,所述转发表项用于在所述协议栈向所述专用集成电路发送正式转发表项前再次上送所述未知组播报文;
[0109] 若所述计数大于所述预设的阈值,则删除该未知组播流记录,并删除该未知组播流记录对应的所述转发表项。
[0110] 可选的,所述方法还包括:
[0111] 在所述协议栈接收所述未知组播报文后,接收所述协议栈发送的所述正式转发表项,判断在所述未知组播流数据库中是否存在所述未知组播流记录;
[0112] 若不存在所述未知组播流记录,则向所述专用集成电路发送所述正式转发表项;
[0113] 若存在所述未知组播流记录,则删除所述未知组播流数据库中的所述未知组播流记录,并向所述专用集成电路发送所述正式转发表项。
[0114] 所述的存储介质,如只读存储器(Read‑Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等。
[0115] 以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明所述原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。