一种报文转发方法及装置与流程

文档序号:14185685
一种报文转发方法及装置与流程
本申请涉及通信
技术领域
,特别是涉及一种报文转发方法及装置。
背景技术
:IRF(IntelligentResilientFramework,智能弹性架构)系统中包括CB(ControllingBridge,控制桥)和多个PE(PortExtender,端口扩展设备)。CB用于管理和控制PE。基于IRF系统转发组播数据报文时,终端通过PE向CB发送携带组播地址的播组加入请求报文。CB为每一组播组加入请求报文中携带的组播地址分配组播ECID。当CB接收到组播数据报文时,根据组播数据报文具有的组播地址确定组播ECID,并将组播ECID封装在组播数据报文中发送给PE。PE根据组播ECID,确定多个扩展口,在这多个扩展口上分别复制一个组播数据报文,进而将组播数据报文转发出去。目前,PE受本身性能的影响,组播能力是有限制的。组播能力包括组播组数和每一组播组中成员设备的个数等。其中,一个组播地址对应一个组播组,加入一个组播组的终端为该组播组的成员设备。若PE的组播数量超过了组播能力,例如,组播组数超过组播能力中规定的组播组数,和/或某一组播组中的成员设备的个数超过了组播能力中规定的成员设备个数,将使得PE无法复制出足够多的组播数据报文给各个终端,进而导致一部分终端无法接收到组播数据报文,用户体验不佳。技术实现要素:本申请实施例的目的在于提供一种报文转发方法及装置,以保证用户设备在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高用户体验。具体技术方案如下:为实现上述目的,本申请实施例提供了一种报文转发方法,应用于CB,该方法包括:通过连接PE的级联口接收多个组播组加入请求报文;每一组播组加入请求报文中携带组播地址和PE接收该组播组加入请求报文的扩展口对应的单播ECID(ExtenderChannelIdentifier,扩展通道标识);确定PE对应的组播数量超过PE的组播能力;将每一组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;当接收到具有组播地址的组播数据报文时,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID;通过级联口将每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。为实现上述目的,本申请还实施例提供了一种报文转发装置,应用于CB,该装置包括:接收单元,用于通过连接PE的级联口接收多个组播组加入请求报文;每一组播组加入请求报文中携带组播地址和PE接收该组播组加入请求报文的扩展口对应的单播ECID;确定单元,用于确定PE对应的组播数量超过PE的组播能力;分配单元,用于将每一组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;封装单元,用于当接收到具有组播地址的组播数据报文时,为组播地址对应的每一单播ECID复制一份组播数据报文并封装每个单播ECID;发送单元,用于通过级联口将每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。为实现上述目的,本申请实施例还提供了一种CB,包括处理器和机器可读存储介质,该机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使实现上述报文转发方法。本申请实施例中,当PE对应的组播数量超过PE的组播能力时,CB为组播地址分配单播ECID。当CB获取到具有该组播地址的组播数据报文时,CB为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID,进而通过PE将组播数据报文单播给各个终端。CB性能较好,能够复制足够多的组播数据报文。PE不需要再复制组播数据报文,即PE不再受本身组播能力的限制,只需要单播CB复制的组播数据报文给各个终端就可以了,保证了终端在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高了用户体验。当然,实施本申请的任一产品或方法必不一定需要同时达到以上的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的报文转发方法的一种流程示意图;图2为本申请实施例提供的一种组网示意图;图3为本申请实施例提供的报文转发装置的一种结构示意图;图4为本申请实施例提供的CB的一种结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。目前,PE受本身性能的影响,组播能力是有限制的。若PE的组播数量超过了组播能力,将使得PE无法复制出足够多的组播数据报文给各个终端,进而导致一部分终端无法接收到组播数据报文,用户体验不佳。为了保证终端在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高用户体验,本申请实施例提供了一种报文转发方法及装置。参考图1,图1为本申请实施例提供的报文转发方法的一种流程示意图。该方法应用于CB,方法包括:步骤101:通过连接PE的级联口接收多个组播组加入请求报文;每一组播组加入请求报文中携带组播地址和PE接收该组播组加入请求报文的扩展口对应的单播ECID。步骤102:确定PE对应的组播数量超过PE的组播能力。步骤103:将每一组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址。步骤104:当接收到具有组播地址的组播数据报文时,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID。步骤105:通过级联口将每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。本申请实施例中,当PE对应的组播数量超过PE的组播能力时,CB为组播地址分配单播ECID。当CB获取到具有该组播地址的组播数据报文时,CB为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID,进而通过PE将组播数据报文单播给各个终端。CB性能较好,能够复制足够多的组播数据报文。PE不需要再复制组播数据报文,即PE不再受本身组播能力的限制,只需要单播CB复制的组播数据报文给各个终端就可以了,保证了终端在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高了用户体验。下面结合图2所示的组网,对本申请实施例提供的报文转发方法进行说明。图2所示组网中,包括CB10、PE20-21、通过PE20与CB10关联的终端30-31、通过PE21与CB10关联的终端32-36。其中,端口40、41为CB10的级联口,端口42为PE20的上游口,端口43为PE21的上游口,端口44、45为PE20的扩展口,端口46、47、48、49、50为PE21的扩展口。在链路发现阶段,PE20通过端口42向CB10发送扩展端口建立请求(ExtendedPortCreaterequest)报文1。扩展端口建立请求报文1中携带端口44的标识和端口45的标识。PE21通过端口43向CB10发送扩展端口建立请求报文2。扩展端口建立请求报文2中携带端口46的标识、端口47的标识、端口48的标识、端口49的标识、端口50的标识。这里,扩展端口建立请求报文1和扩展端口建立请求报文2为LLDP(LinkLayerDiscoveryProtocol,链路层发现协议)报文。在本申请的一个实施例中,为了便于CB获取到各个PE的组播能力信息,PE向CB发送的扩展端口建立请求报文中可以携带自身的组播能力信息。这里,组播能力信息包括PE支持的最大组播组个数,即组播组数阈值。组播能力信息还包括每一组播组PE支持的最大成员设备个数,即成员设备数阈值。具体地,PE20向CB10发送的扩展端口建立请求报文1中可以携带自身的组播能力信息1。这里,组播能力信息1包括PE20支持的组播组数阈值和PE20支持的成员设备数阈值。PE21向CB10发送的扩展端口建立请求报文2中可以携带自身的组播能力信息2。这里,组播能力信息2包括PE21支持的组播组数阈值和PE21支持的成员设备数阈值。CB10通过端口40接收扩展端口建立请求报文1,根据扩展端口建立请求报文1中携带的端口44的标识和端口45的标识,为端口44和端口45分别建立E-Channel(ExtenderChannel,扩展通道),为端口44和端口45分别分配单播ECID。例如,CB10为端口44分配的单播ECID为ECID1,为端口45分配的单播ECID为ECID2。CB10通过端口41接收扩展端口建立请求报文2,根据扩展端口建立请求报文2中携带的端口46的标识、端口47的标识、端口48的标识、端口49的标识、端口50的标识,为端口46、端口47、端口48、端口49、端口50分别建立E-Channel,为端口46、端口47、端口48、端口49、端口50分别分配单播ECID。例如,CB10为端口46分配的单播ECID为ECID3,为端口47分配的单播ECID为ECID4,为端口48分配的单播ECID为ECID5,为端口49分配的单播ECID为ECID6,为端口50分配的单播ECID为ECID7。此时,CB10记录单播ECID和扩展口二者间的对应关系,如表1所示。表1单播ECID扩展口ECID144ECID245ECID346ECID447ECID548ECID649ECID750若扩展端口建立请求报文1中和扩展端口建立报文2中携带组播能力信息,CB10存储接收扩展端口建立请求报文的级联口和组播能力信息二者的对应关系,如表2所示。表2级联口组播能力信息40组播能力信息141组播能力信息2表2中记录的信息也可以为用户预先将PE的组播能力信息配置在CB中。本申请实施例对比不进行限定。CB10通过端口40向PE20反馈针对扩展端口建立请求报文1的扩展端口建立响应(ExtendedPortCreateresponse)报文1,扩展端口建立响应报文1中携带为端口44分配的ECID1和为端口45分配的ECID2。CB10通过端口41向PE21反馈针对扩展端口建立请求报文2的扩展端口建立响应报文2,扩展端口建立响应报文2中携带:为端口46分配的ECID3,为端口47分配的ECID4,为端口48分配的ECID5,为端口49分配的ECID6,为端口50分配的ECID7。这里,扩展端口建立响应报文1和扩展端口建立响应报文2为LLDP报文。PE20通过端口42接收扩展端口建立响应报文1,根据扩展端口建立响应报文1中携带的信息,记录单播ECID和扩展口二者的对应关系,如表3所示。表3单播ECID扩展口ECID144ECID245PE21通过端口43接收扩展端口建立响应报文2,根据扩展端口建立响应报文2中携带的信息,记录单播ECID和扩展口二者的对应关系,如表4所示。表4单播ECID扩展口ECID346ECID447ECID548ECID649ECID750终端30、31需要加入组播地址IP1对应组播组时,终端30向PE20发送组播组加入请求报文1,终端31向PE20发送组播组加入请求报文2。其中,组播组加入请求报文1和组播组加入请求报文2中均携带有请求加入的组播组对应的组播地址IP1。PE20通过端口44接收组播组加入请求报文1,根据表3中记录的对应关系,确定端口44对应的ECID1,将ECID1封装在组播组加入请求报文1中,通过端口42发送给CB10。PE20通过端口45接收组播组加入请求报文2,根据表3中记录的对应关系,确定端口45对应的ECID2,将ECID2封装在组播组加入请求报文2中,通过端口42发送给CB10。CB10通过端口40接收组播组加入请求报文1和组播组加入请求报文2,组播组加入请求报文1和组播组加入请求报文2携带的组播地址IP1,确定组播地址IP1对应的组播组中包括2个成员设备。CB10根据表2,确定接收组播组加入请求报文1和组播组加入请求报文2的端口40对应组播能力信息1。CB10检测PE20当前组播数量是否超过组播能力信息1。具体的,CB10检测PE20组播组的个数是否超过组播能力信息1中的组播组数阈值,检测组播地址IP1对应的组播组中成员设备个数是否超过组播能力信息1中的成员设备数阈值。这里,PE组播组的个数为:1与CB中存储的针对该PE的组播地址与组播ECID二者的对应关系的个数的总和。若CB10确定PE20组播组的个数未超过组播能力信息1中的组播组数阈值,且组播地址IP1对应的组播组中成员设备个数未超过组播能力信息1中的成员设备数阈值,CB10为组播地址IP1分配组播ECID,例如为组播地址IP1分配的组播ECID为ECID8。CB10记录针对PE20的组播地址和组播ECID二者的对应关系,如表5所示。表5组播地址组播ECIDIP1ECID8CB10记录针对PE20的组播地址和接收组播组加入请求报文的级联口二者的对应关系,如表6所示。表6组播地址级联口IP1端口40CB10根据表1确定组播组加入请求报文1中携带的ECID1对应端口44,将端口44作为组播ECID8对应的扩展口。CB10将组播ECID8与端口44携带在针对组播组加入请求报文1的组播组加入响应报文1中,通过端口40发送给PE20。另外,CB10根据表1确定组播组加入请求报文2中携带的ECID2对应端口45,将端口45作为组播ECID8对应的扩展口。CB10将组播ECID8与端口45携带在针对组播组加入请求报文2的组播组加入响应报文2中,通过端口40发送给PE20。PE20通过端口42接收组播组加入响应报文1和组播组加入响应报文2,记录组播ECID与扩展口二者的对应关系,如表7所示。表7组播ECID扩展口ECID8端口44ECID8端口45此时,若CB10接收到组播地址为IP1的组播数据报文1,则根据表5确定IP1对应的ECID8,根据表6确定IP1对应端口40。CB10将ECID8封装在组播数据报文1中,通过端口40发送给PE20。PE20通过端口42接收到组播数据报文1后,根据表7确定组播数据报文1中携带的ECID8对应2个扩展口,包括端口44和端口45。PE20在端口44和端口45分别复制一个组播数据报文1。之后,PE20通过端口44将组播数据报文1发送给终端30,通过端口45将组播数据报文1发送给终端31。在本申请实施例中,若CB10确定PE20组播组的数量超过了组播能力信息1中的组播组数阈值,例如,组播能力信息1中的组播组数阈值为10,若CB10中若已存储了10个针对PE20的组播地址与组播ECID的对应关系,也就是,PE20已有10个组播组,再加上组播地址IP1对应的组播组,PE20将有11个组播组,11>10,超过了组播能力信息1中的组播组数阈值,则不论组播地址IP1对应的组播组中成员设备的个数是否超过组播能力信息1中的成员设备数阈值,CB10将组播组加入请求报文1携带的ECID1分配给组播地址IP1,将组播组加入请求报文2携带的ECID2分配给组播地址IP1,CB10记录针对PE20的组播地址与单播ECID二者的对应关系,如表8所示。表8组播地址单播ECIDIP1ECID1IP1ECID2CB10记录针对PE20的组播地址和接收组播组加入请求报文的级联口二者的对应关系,如上面表6所示。此时,若CB10接收到组播地址为IP1的组播数据报文2,则根据表8确定IP1对应的2个单播ECID,包括ECID1和ECID2。CB10根据表6确定IP1对应的端口40。CB10为ECID1复制一个组播数据报文2并封装ECID1,为ECID2复制一个组播数据报文2并封装ECID2,将这2个封装ECID后的组播数据报文2分别通过端口40发送给PE20。PE20通过端口42接收到组播数据报文2后,根据表3确定组播数据报文2中携带的ECID1对应端口44,组播数据报文2中携带的ECID2对应端口45。对于封装ECID1的组播数据报文2,PE20通过端口44将该组播数据报文2发送给终端30。对于封装ECID2的组播数据报文2,PE20通过端口45将该组播数据报文2发送给终端31。本申请的一个实施例中,组播能力信息2中的成员设备数阈值为4。当终端32、33、34、35需要加入组播地址IP2对应组播组时,终端32、33、34、35这4个终端向PE21发送携带有请求加入的组播地址IP2的组播组加入请求报文,可以确定PE21组播地址IP2对应的组播组的成员设备个数为4,未超过组播能力信息2中的成员设备数阈值。若CB10还确定PE21组播组的个数未超过组播能力信息2中的组播组数阈值,则基于表4、表2、表1,通过PE21与CB10间的交互,CB10为组播地址IP2分配组播ECID,例如为组播地址IP2分配的组播ECID为ECID9,确定ECID9对应的扩展口,并将ECID9与ECID9对应的扩展口发送给PE21。此时,CB10记录针对PE21的组播地址和组播ECID二者的对应关系,如下表9所示。表9组播地址组播ECIDIP2ECID9CB10记录针对PE21的组播地址和接收组播组加入请求报文的级联口二者的对应关系,如表10所示。表10组播地址级联口IP2端口41PE21记录组播ECID与扩展口二者的对应关系,如表11所示。表11组播ECID扩展口ECID9端口46ECID9端口47ECID9端口48ECID9端口49终端32、33、34、35加入组播地址IP2对应组播组的过程,可参考上面终端30、31加入组播地址IP1对应组播组的过程,此处不再赘述。当终端36需要加入组播地址IP2对应组播组时,终端36向PE21发送携带有请求加入的组播地址IP2的组播组加入请求报文3,可以确定组播地址IP2对应的组播组的成员设备个数为5,5>4,超过了组播能力信息2中的成员设备数阈值。其中,组播组加入请求报文3中携带端口50对应的ECID7。在本申请的一个实施例中,为了节约CB的资源,当CB10确定组播地址IP2对应的组播组中成员设备个数超过了组播能力信息2中的成员设备数阈值时,若PE21组播组的个数未超过组播能力信息2中的组播组数阈值,则CB10将组播组加入请求报文3中携带的ECID7分配给组播地址IP2,CB10记录针对PE21的组播地址与单播ECID二者的对应关系,如表12所示。表12组播地址单播ECIDIP2ECID7此时,若CB10接收到组播地址为IP2的组播数据报文3,则根据表9确定IP2对应的组播ECID9,根据表12确定IP2对应的单播ECID7。CB10根据表10确定IP2对应端口41。CB10为ECID9复制一个组播数据报文3并封装ECID9,为ECID7复制一个组播数据报文3并封装ECID7,将这2个封装ECID后的组播数据报文3分别通过端口41发送给PE21。PE21通过端口43接收到组播数据报文3后,根据表4确定组播数据报文3中携带的ECID7对应端口50,根据表11确定组播数据报文3中携带的ECID9对应端口46、47、48、49。对于携带ECID7的组播数据报文3,PE21通过端口50将该组播数据报文3发送给终端36。对于携带ECID9的组播数据报文3,PE21在端口46、47、48、49分别复制一个组播数据报文3。之后,PE21通过端口46将组播数据报文3发送给终端32,通过端口47将组播数据报文3发送给终端33,通过端口48将组播数据数据报文3发送给终端34,通过端口49将组播数据报文3发送给终端35。在本申请的一个实施例中,为了提高终端获取到信息的同步性,当CB10确定组播地址IP2对应的组播组中成员设备个数超过了组播能力信息2中的成员设备数阈值时,不论PE21组播组的个数是否超过组播能力信息2中的组播组数阈值,CB10将组播组加入请求报文3中携带的ECID7分配给组播地址IP2。并且,CB10根据表9确定组播地址IP2对应的ECID9,根据表10确定组播地址IP2对应的端口41。CB10通过端口41向PE21发送携带ECID9的信息获取请求报文1。PE21通过端口43接收信息获取请求报文1,根据表11,确定信息获取请求报文1中携带的ECID9对应的扩展口,包括端口46、47、48、49。PE21根据表4确定端口46对应ECID3,端口47对应ECID4,端口48对应ECID5,端口49对应ECID6。PE21将端口46对应的ECID3、端口47对应的ECID4、端口48对应的ECID5、端口49对应的ECID6携带在针对信息获取请求报文1的信息获取响应报文1中,通过端口43发送给CB10。CB10通过端口41接收信息获取响应报文1。CB10将信息获取响应报文1中携带的ECID3、ECID4、ECID5、ECID6分配给组播地址IP2。CB10删除表9,记录针对PE21的组播地址与单播ECID二者的对应关系,如表13所示。表13组播地址单播ECIDIP2ECID7IP2ECID3IP2ECID4IP2ECID5IP2ECID6此时,若CB10接收到组播地址为IP2的组播数据报文4,则根据表13确定IP2对应的5个单播ECID,包括ECID7、ECID3、ECID4、ECID5、ECID6。CB10根据表10确定IP2对应端口41。CB10为5个单播ECID分别复制1个组播数据报文4并封装每个单播ECID,其中,一个组播数据报文4中封装ECID7,一个组播数据报文4中封装ECID3,一个组播数据报文4中封装ECID4,一个组播数据报文3中封装ECID5,一个组播数据报文4中封装ECID6,将这5个封装ECID后的组播数据报文4分别通过端口41发送给PE21。PE21通过端口43接收到5个组播数据报文4后,根据表4确定组播数据报文4中携带的ECID7对应端口50,ECID3对应端口46,ECID4对应端口47,ECID5对应端口48,ECID6对应端口49。对于携带ECID7的组播数据报文4,PE21通过端口50将该组播数据报文4发送给终端36。对于携带ECID3的组播数据报文4,PE21通过端口46将该组播数据报文4发送给终端32。对于携带ECID4的组播数据报文4,PE21通过端口47将该组播数据报文4发送给终端33。对于携带ECID5的组播数据报文4,PE21通过端口48将该组播数据报文4发送给终端34。对于携带ECID6的组播数据报文4,PE21通过端口49将该组播数据报文4发送给终端35。与报文转发方法实施例对应,本申请实施例还提供了一种报文转发装置。参考图3,图3为本申请实施例提供的报文转发装置的一种结构示意图,应用于CB,该装置包括:接收单元301,用于通过连接PE的级联口接收多个组播组加入请求报文;每一组播组加入请求报文中携带组播地址和PE接收该组播组加入请求报文的扩展口对应的单播ECID;确定单元302,用于确定PE对应的组播数量超过PE的组播能力;分配单元303,用于将每一组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;封装单元304,用于当接收到具有组播地址的组播数据报文时,为组播地址对应的每一单播ECID复制一份组播数据报文并封装每个单播ECID;发送单元305,用于通过级联口将每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。在本申请的一个实施例中,组播能力可以包括成员设备数阈值;这种情况下,确定单元302,具体可以用于确定PE对应的组播地址的成员设备的个数超过PE对应的成员设备数阈值,则确定PE对应的组播数量超过PE的组播能力。在本申请的一个实施例中,组播能力可以包括组播组数阈值;这种情况下,确定单元302,具体可以用于确定PE对应的组播组数超过PE对应的组播组数阈值,则确定PE对应的组播数量超过PE的组播能力。在本申请的一个实施例中,组播能力还可以包括成员设备数阈值;这种情况下,确定单元302,还可以用于确定PE对应的组播组数未超过PE对应的组播组数阈值,确定PE对应的组播地址的成员设备的个数超过PE对应的成员设备数阈值;分配单元303,还可以用于为第一组组播组加入请求报文中携带的组播地址分配对应的组播ECID,并将第二组组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;第一组组播组加入请求报文中包括的组播组加入请求报文的个数为PE对应的成员设备数阈值,第二组组播组加入请求报文包括除第一组组播组加入请求报文外的组播组加入请求报文;封装单元304,还可以用于当接收到具有组播地址的组播数据报文时,为组播地址对应的组播ECID复制一份组播数据报文并封装组播ECID,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID;发送单元305,还可以用于通过级联口将封装组播ECID后的组播数据报文和每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID或组播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。在本申请的一个实施例中,确定单元302,还可以用于确定PE对应的组播组数未超过PE对应的组播组数阈值,确定PE对应的组播地址的成员设备的个数未超过PE对应的成员设备数阈值;分配单元303,还可以用于为多个组播组加入请求报文中携带的组播地址分配对应的组播ECID;封装单元304,还可以用于当接收到具有组播地址的组播数据报文时,将组播地址对应的组播ECID封装在组播数据报文中;发送单元305,还可以用于通过级联口将封装组播ECID后的组播数据报文发送给PE,以使PE确定组播数据报文携带的组播ECID对应的扩展口,并通过确定的扩展口转发组播数据报文。应用本申请实施例,当PE对应的组播数量超过PE的组播能力时,CB为组播地址分配单播ECID。当CB获取到具有该组播地址的组播数据报文时,CB为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID,进而通过PE将组播数据报文单播给各个终端。CB性能较好,能够复制足够多的组播数据报文。PE不需要再复制组播数据报文,即PE不再受本身组播能力的限制,只需要单播CB复制的组播数据报文给各个终端就可以了,保证了终端在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高了用户体验。与报文转发方法实施例对应,本申请实施例还提供了一种CB,包括处理器和机器可读存储介质,机器可读存储介质存储有能够被处理器执行的机器可执行指令,处理器被机器可执行指令促使实现上述报文转发方法。如图4所示,CB包括处理器401和机器可读存储介质402,机器可读存储介质402存储有能够被处理器401执行的机器可执行指令。另外,如图4所示,CB还可以包括:通信接口403和通信总线404;其中,处理器401、机器可读存储介质402、通信接口403通过通信总线404完成相互间的通信,通信接口403用于上述CB与其他设备之间的通信。其中,机器可执行指令包括:接收指令412、确定指令422、分配指令432、封装指令442和发送指令452。处理器401被接收指令412促使实现:通过连接PE的级联口接收多个组播组加入请求报文;每一组播组加入请求报文中携带组播地址和PE接收该组播组加入请求报文的扩展口对应的单播ECID;处理器401被确定指令422促使实现:确定PE对应的组播数量超过PE的组播能力;处理器401被分配指令432促使实现:将每一组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;处理器401被封装指令442促使实现:当接收到具有组播地址的组播数据报文时,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID;处理器401被发送指令452促使实现:通过级联口将每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。在本申请的一个实施例中,组播能力可以包括成员设备数阈值;处理器401被确定指令422促使具体可以实现:确定PE对应的组播地址的成员设备的个数超过PE对应的成员设备数阈值,则确定PE对应的组播数量超过PE的组播能力。在本申请的一个实施例中,组播能力可以包括组播组数阈值;处理器401被确定指令422促使具体可以实现:确定PE对应的组播组数超过PE对应的组播组数阈值,则确定PE对应的组播数量超过PE的组播能力。在本申请的一个实施例中,组播能力还可以包括成员设备数阈值;处理器401被确定指令422促使还可以实现:确定PE对应的组播组数未超过PE对应的组播组数阈值,确定PE对应的组播地址的成员设备的个数超过PE对应的成员设备数阈值;处理器401被分配指令432促使还可以实现:为第一组组播组加入请求报文中携带的组播地址分配对应的组播ECID,并将第二组组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;第一组组播组加入请求报文中包括的组播组加入请求报文的个数为PE对应的成员设备数阈值,第二组组播组加入请求报文包括除第一组组播组加入请求报文外的组播组加入请求报文;处理器401被封装指令442促使还可以实现:当接收到具有组播地址的组播数据报文时,为组播地址对应的组播ECID复制一份组播数据报文并封装组播ECID,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID;处理器401被发送指令452促使还可以实现:通过级联口将封装组播ECID后的组播数据报文和每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID或组播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。在本申请的一个实施例中,处理器401被确定指令422促使还可以实现:确定PE对应的组播组数未超过PE对应的组播组数阈值,确定PE对应的组播地址的成员设备的个数未超过PE对应的成员设备数阈值;处理器401被分配指令432促使还可以实现:为多个组播组加入请求报文中携带的组播地址分配对应的组播ECID处理器401被封装指令442促使还可以实现:当接收到具有组播地址的组播数据报文时,将组播地址对应的组播ECID封装在组播数据报文中;处理器401被发送指令452促使还可以实现:通过级联口将封装组播ECID后的组播数据报文发送给PE,以使PE确定组播数据报文携带的组播ECID对应的扩展口,并通过确定的扩展口转发组播数据报文。应用本申请实施例,当PE对应的组播数量超过PE的组播能力时,CB为组播地址分配单播ECID。当CB获取到具有该组播地址的组播数据报文时,CB为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID,进而通过PE将组播数据报文单播给各个终端。CB性能较好,能够复制足够多的组播数据报文。PE不需要再复制组播数据报文,即PE不再受本身组播能力的限制,只需要单播CB复制的组播数据报文给各个终端就可以了,保证了终端在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高了用户体验。通信总线404可以是PCI(PeripheralComponentInterconnect,外设部件互连标准)总线或EISA(ExtendedIndustryStandardArchitecture,扩展工业标准结构)总线等。该通信总线404可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。机器可读存储介质402可以包括RAM(RandomAccessMemory,随机存取存储器),也可以包括NVM(Non-VolatileMemory,非易失性存储器),例如至少一个磁盘存储器。另外,机器可读存储介质402还可以是至少一个位于远离前述处理器的存储装置。处理器401可以是通用处理器,包括CPU(CentralProcessingUnit,中央处理器)、NP(NetworkProcessor,网络处理器)等;还可以是DSP(DigitalSignalProcessing,数字信号处理器)、ASIC(ApplicationSpecificIntegratedCircuit,专用集成电路)、FPGA(Field-ProgrammableGateArray,现场可编程门阵列)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。与报文转发方法实施例对应,本申请实施例还提供了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,机器可执行指令促使处理器实现上述报文转发方法。其中,机器可执行指令包括:接收指令、确定指令、分配指令、封装指令和发送指令。在被处理器调用和执行时,接收指令促使处理器实现:通过连接PE的级联口接收多个组播组加入请求报文;每一组播组加入请求报文中携带组播地址和PE接收该组播组加入请求报文的扩展口对应的单播ECID;在被处理器调用和执行时,确定指令促使处理器实现:确定PE对应的组播数量超过PE的组播能力;在被处理器调用和执行时,分配指令促使处理器实现:将每一组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;在被处理器调用和执行时,封装指令促使处理器实现:当接收到具有组播地址的组播数据报文时,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID;在被处理器调用和执行时,发送指令促使处理器实现:通过级联口将每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。在本申请的一个实施例中,组播能力可以包括成员设备数阈值;在被处理器调用和执行时,确定指令促使处理器具体可以实现:确定PE对应的组播地址的成员设备的个数超过PE对应的成员设备数阈值,则确定PE对应的组播数量超过PE的组播能力。在本申请的一个实施例中,组播能力可以包括组播组数阈值;在被处理器调用和执行时,确定指令促使处理器具体可以实现:确定PE对应的组播组数超过PE对应的组播组数阈值,则确定PE对应的组播数量超过PE的组播能力。在本申请的一个实施例中,组播能力还可以包括成员设备数阈值;在被处理器调用和执行时,确定指令促使处理器还可以实现:确定PE对应的组播组数未超过PE对应的组播组数阈值,确定PE对应的组播地址的成员设备的个数超过PE对应的成员设备数阈值;在被处理器调用和执行时,分配指令促使处理器还可以实现:为第一组组播组加入请求报文中携带的组播地址分配对应的组播ECID,并将第二组组播组加入请求报文中携带的单播ECID作为组播地址对应的单播ECID分配给组播地址;第一组组播组加入请求报文中包括的组播组加入请求报文的个数为PE对应的成员设备数阈值,第二组组播组加入请求报文包括除第一组组播组加入请求报文外的组播组加入请求报文;在被处理器调用和执行时,封装指令促使处理器还可以实现:当接收到具有组播地址的组播数据报文时,为组播地址对应的组播ECID复制一份组播数据报文并封装组播ECID,为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID;在被处理器调用和执行时,发送指令促使处理器还可以实现:通过级联口将封装组播ECID后的组播数据报文和每个封装单播ECID后的组播数据报文发送给PE,以使PE确定每个组播数据报文携带的单播ECID或组播ECID对应的扩展口,并通过确定的扩展口转发每个组播数据报文。在本申请的一个实施例中,在被处理器调用和执行时,确定指令促使处理器还可以实现:确定PE对应的组播组数未超过PE对应的组播组数阈值,确定PE对应的组播地址的成员设备的个数未超过PE对应的成员设备数阈值;在被处理器调用和执行时,分配指令促使处理器还可以实现:为多个组播组加入请求报文中携带的组播地址分配对应的组播ECID;在被处理器调用和执行时,封装指令促使处理器还可以实现:当接收到具有组播地址的组播数据报文时,将组播地址对应的组播ECID封装在组播数据报文中;在被处理器调用和执行时,发送指令促使处理器还可以实现:通过级联口将封装组播ECID后的组播数据报文发送给PE,以使PE确定组播数据报文携带的组播ECID对应的扩展口,并通过确定的扩展口转发组播数据报文。应用本申请实施例,当PE对应的组播数量超过PE的组播能力时,CB为组播地址分配单播ECID。当CB获取到具有该组播地址的组播数据报文时,CB为组播地址对应的每个单播ECID复制一份组播数据报文并封装每个单播ECID,进而通过PE将组播数据报文单播给各个终端。CB性能较好,能够复制足够多的组播数据报文。PE不需要再复制组播数据报文,即PE不再受本身组播能力的限制,只需要单播CB复制的组播数据报文给各个终端就可以了,保证了终端在组播数量超过PE的组播能力的情况下接收到组播数据报文,提高了用户体验。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于报文转发装置、CB和机器可读存储介质实施例而言,由于其基本相似于报文转发方法实施例,所以描述的比较简单,相关之处参见报文转发方法实施例的部分说明即可。以上仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页1 2 3 
再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1