一种组播报文的转发方法及装置的制造方法

文档序号:8925150阅读:783来源:国知局
一种组播报文的转发方法及装置的制造方法
【技术领域】
[0001]本发明涉及通信领域中的数据转发技术,尤其涉及一种组播报文的转发方法及装置。
【背景技术】
[0002]随着互联网、云计算、互联网协议(IP, Internet Protocol)组播的快速发展,高清视频,实况在线视频等越来越多的组播新型应用业务已经逐渐渗透到各个领域中。而组播数据流的转发依靠协议层面和转发层面的共同作用才能完成,在基于组播数据流驱动的组播协议网络中,通常需要将组播报文上送至CPU进行处理,但是在实际组网和测试过程中,往往会有批量用户和组播数据流同时作用。在这种场景下,中央处理器(CPU,CentralProcessing Unit)处理组播报文的效率显得至关重要,否则就会成为转发组播报文的瓶颈。所以,怎样提高CPU处理组播数据流的效率是非常有意义的。
[0003]在现有很多方法中,大部分都只是解决未知组播源攻击CPU,来提高CPU处理组播报文效率的问题,并没有考虑到所有可能存在的组播报文需要上送时,对CPU造成冲击的场景;另外,现有的方法中,多数是从软件的角度去处理,而软件处理方法是在CPU收到组播数据包后才开始进行处理,并不能从源头上切断组播数据的重复上送,所以也会增加CPU的负担,造成CPU资源的浪费,存在一定的缺陷,影响业务质量。

【发明内容】

[0004]为解决现有技术中存在的问题,在本发明的实施例中提供一种组播报文的转发方法及装置。
[0005]本发明的技术方案是这样实现的:
[0006]本发明提供了一种组播报文的转发方法,该方法包括:
[0007]转发芯片接收组播报文,确定所述组播报文为已知组播报文后,将已知组播报文上送至中央处理器CPU并删除组播转发表出接口的CPU 口,按照接收的组播路由表更新组播转发表和组播状态表,根据更新后的组播状态表确定组播转发表收敛为稳定状态。
[0008]上述方案中,所述将已知组播报文上送至中央处理器CPU为:根据组播状态表中组播转发表的优先级将已知组播报文上送至CPU。
[0009]上述方案中,所述按照接收的组播路由表更新组播转发表和组播状态表为:按照所述组播路由表更新组播转发表中的源互联网协议(SIP, Source Internet Protocol)地址字段、和/或目的互联网协议(DIP,Destinat1n Internet Protocol)地址字段、和/或入虚拟局域网(VLAN, Virtual Local Area Network)字段、和/或出接口字段,并将组播状态表中的状态字段由表示组播转发表未收敛为稳定状态的值更新为表示组播转发表收敛为稳定状态的值,将组播状态表中的命中标志字段由表示在上送周期内组播报文未成功上送的值更新为表示在上送周期内组播报文已经成功上送的值。
[0010]上述方案中,该方法还包括:在更新组播转发表和组播状态表之前,遍历组播状态表中组播转发表优先级Pr1rity字段的值,在小于所述Pr1rity的值个定时器周期内,对组播状态表不进行任何操作,在第Pr1rity的值个定时器周期再对组播状态表执行更新操作。
[0011]上述方案中,该方法还包括:在第Pr1rity的值个定时器周期结束时,检测出组播状态表中的状态字段的值表示组播转发表未收敛为稳定状态,则将删除的CPU 口重新添加到组播转发表出接口中。
[0012]上述方案中,该方法还包括:当转发芯片接收到的组播报文为未知组播报文时,根据组播协议解析规则对未知组播报文的组播信息进行解析,将解析后的组播信息写入临时组播转发表,并写临时组播状态表中的字段,上送所述未知组播报文至CPU。
[0013]上述方案中,该方法还包括:转发芯片根据CPU中各组播协议驱动器下发的组播路由表更新临时组播转发表中的字段和临时组播状态表中的字段,根据更新后的临时组播状态表确定临时组播转发表收敛为稳定状态。
[0014]上述方案中,该方法还包括:所述临时组播状态表包括组播转发表优先级Pr1rity字段,转发芯片在所述Pr1rity的值个定时器周期内没有接收到组播路由表,贝Ij在第Pr1rity的值个定时器周期结束时,检测出临时组播状态表中的状态字段的值表示临时组播转发表未收敛为稳定状态,删除临时组播转发表和临时组播状态表。
[0015]本发明还提供了一种组播报文的转发装置,该转发芯片包括:接收模块、确定模块、发送模块、删除模块、更新模块;其中,
[0016]所述接收模块,用于接收组播报文及组播路由表;
[0017]所述确定模块,用于确定组播所述组播报文为已知组播报文,并根据更新后的组播状态表确定组播转发表收敛为稳定状态;
[0018]所述发送模块,用于将已知组播报文上送至CPU ;
[0019]所述删除模块,用于删除组播转发表出接口的CPU 口 ;
[0020]所述更新模块,用于按照接收的组播路由表更新组播转发表和组播状态表。
[0021]上述方案中,所述发送模块,具体用于根据组播装态表中组播转发表的优先级将已知组播报文上送至CPU。
[0022]上述方案中,所述更新模块,具体用于按照所述组播路由表更新组播转发表中的SIP地址字段、和/或DIP地址字段、和/或入VLAN字段、和/或出接口字段,并将组播状态表中的状态字段由表示组播转发表未收敛为稳定状态的值更新为表示组播转发表收敛为稳定状态的值,将组播状态表中的命中标志字段由表示在上送周期内组播报文未成功上送的值更新为表示在上送周期内组播报文已经成功上送的值。
[0023]上述方案中,所述更新模块,还用于在更新组播转发表和组播状态表之前,遍历组播状态表中组播转发表优先级Pr1rity字段的值,在小于所述Pr1rity的值个定时器周期内,对组播状态表不进行任何操作,在第Pr1rity的值个定时器周期再对组播状态表执行更新操作。
[0024]上述方案中,该装置还包括:添加模块,用于在第Pr1rity的值个定时器周期结束时,检测出组播状态表中的状态字段的值表示组播转发表未收敛为稳定状态,则将删除的CPU 口重新添加到组播转发表出接口中。
[0025]上述方案中,该装置还包括创建模块,用于根据组播协议解析规则对未知组播报文的组播信息进行解析,将解析后的组播信息写入临时组播转发表,并写临时组播状态表中的字段;
[0026]所述发送模块,还用于上送所述未知组播报文至CPU ;
[0027]所述确定模块,还用于当确定接收到的组播报文为未知组播报文时,通知创建模块,并根据更新后的临时组播状态表确定临时组播转发表收敛为稳定状态;
[0028]所述更新模块,还用于根据CPU中各组播协议驱动器下发的组播路由表更新临时组播转发表中的字段和临时组播状态表中的字段。
[0029]上述方案中,所述临时组播状态表包括组播转发表优先级Pr1rity字段;所述删除模块,还用于在第Pr1rity的值个定时器周期结束时,检测出临时组播状态表中的状态字段的值表示临时组播转发表未收敛为稳定状态,删除临时组播转发表和临时组播状态表。
[0030]本发明实施例提供的一种组播报文的转发方法及装置,接收组播报文,确定所述组播报文为已知组播报文后,将已知组播报文上送至CPU并删除组播转发表出接口的CPU口,按照接收的组播路由表更新组播转发表和组播状态表,根据更新后的组播状态表确定组播转发表收敛为稳定状态;如此,能够在保护CPU的前提下,更全面的提高CPU处理组播报文的效率,进而加快组播协议层面的下发路由效率,及时转发组播报文。
【附图说明】
[0031]图1为现有技术中转发组播报文的方法流程示意图;
[0032]图2为本发明实施例一提供的一种组播报文的转发方法的流程示意图;
[0033]图3为本发明实施例二提供的一种组播报文的转发方法的流程示意图;
[0034]图4为本发明实施例三提供的一种组播报文的转发装置的结构示意图。
【具体实施方式】
[0035]为了更好的理解本发明的技术方案,本发明先介绍现有技术中组播报文上送至CPU并进行处理的方法,如图1所示,该方法主要包括以下几个步骤:
[0036]步骤101,接收组播报文;
[0037]步骤102,判断所述组播报文是否存在组播转发表;如果是,则执行步骤103 ;如果否,则执行步骤104;
[0038]本步骤中,当所述CPU接收到组播报文时,根据组播数据帧的目的组播地址查找所述组播报文是否存在组播转发表。
[0039]步骤103,根据接收到的带有上送标记的组播路由表对已知组播报文进行转发,流程结束;
[00
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1