组播数据传输方法、相关装置及系统与流程

文档序号:19149352发布日期:2019-11-15 23:54阅读:322来源:国知局
本申请涉及组播
技术领域
:,尤其涉及组播数据传输方法、相关装置及系统。
背景技术
::随着互联网视频业务、虚拟现实(virtualreality,vr)、增强现实(augmentedreality,ar)等大视频业务开展,数据中心(datacenter,dc)内部及dc间的流量复制、备份,以及分布式存储的应用,组播业务需求呈现爆炸式增长。传统组播技术带来了中间网络组播表、组播状态等的爆炸式增长,成为组播网络中最复杂、不可控的部分。位索引显式复制(bitindexedexplicitreplication,bier)技术提供了一个非常简化的方式来解决中间网络的组播转发问题,可以高效的进行组播的分发,解决了组播技术中的重大难题。bier技术可参考ietf草案draft-ietf-bier-architecture-07。位索引显式复制(bier)是无状态组播协议的典型代表,具有如下特点:1.不需要使用用于显式创建组播分布树的协议;2.不需要中间节点维护任何每流状态(per-flowstate)。bier技术可以与各种虚拟私有网(virtualprivatenetwork,vpn),如组播虚拟私有网(multicastvirtualprivatenetwork,mvpn),层三虚拟私有网(layer3virtualprivatenetwork,l3vpn)和以太网虚拟私有网(ethernetvirtualprivatenetwork,evpn)等结合,可以实现完善的vpn组播。其中,mvpn超越了传统虚拟私有网(vpn)的概念和束缚,充分利用随处可及的互联网,提供了两个优越的明显不同的选择:虚拟私有内网和虚拟私有广域网,可实现无缝地、安全地、简单地连接地区和用户。mvpn已经成为企业异地互联互通的重要桥梁。因此,bier势必需要对mvpn给予全面的支持。但是,在bier技术和mvpn结合的现有方案中,组播传输存在收敛时间长、时效性差的问题。技术实现要素:本申请提供了组播数据传输方法、相关装置及系统,可显著缩短组播传输的收敛时间,改善了组播传输的时效性。第一方面,本申请提供了一种组播数据传输方法,应用于组播源侧的位转发入口路由器(bit-forwardingingressrouter,bfir),该方法可包括:第一bier域中的第一bfir确定出组播数据在第二bier域中对应的位索引转发表(bitindexforwardingtable,bift)的标识(简称为bift-id)和位串(bitstring),其中,该bift-id至少由第一位转发出口路由器(bit-forwardingegressrouter,bfer)的bfr-id所属的子集标识(setidentifier,si)以及第一bfer支持的位串长度(bitstringlength,bsl)确定,该bitstring至少由第一bfer的位转发路由器(bit-forwardingrouter,bfr)标识(简称bfr-id)确定,第一bfer为第二bier域中用于接收该组播数据的bfer。然后,第一bfir将该组播数据封装成bier数据包,该bier数据包的bier头包括该组播数据在第二bier域中对应的bift-id和位串。最后,第一bfir为该bier数据包打上标签,向第二bfir发送打上该标签后的该bier数据包,其中该标签为第二bier域中的第二bfir的前缀对应的标签。在第一方面中,第一bier域即发送方所处的bier域,第二bier域即非发送方所处的bier域,可以称为其他bier域。第一bfir即发送方,为组播源侧的bfir。第二bfir为其他bier域中的bfir。第一bfer为其他bier域中用于接收该组播数据的bfer,即其他bier域中对该组播数据所对应的组播组感兴趣的bfer。上述标签可以为多协议标签转发(multi-protocollabelswitching,mpls)标签或通用路由封装(genericroutingencapsulation,gre)标签。可以看出,针对发往其他bier域的组播数据,发送方对该组播数据进行bier封装得到bier数据包,然后将bier数据包打上标签(如mpls标签或gre标签)后单播发送到其他bier域的bfir。然后,bier域内的组播数据转发遵循现有的bier机制转发机制,可参考ietf草案draft-ietf-bier-mvpn-08中描述的现有的bier-mvpn方案。可以理解的,与现有的bier-mvpn方案不同,本申请中的组播数据转发不是分段式的,bier头仅在发送方侧被构造,不再需要中间设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,可实现更高效率的组播转发。在第一方面中,在一些可选的实施例中,发送方可具体从第一映射表中确定出该组播数据在第二bier域中对应的位串和bift-id。这里,第一映射表可包括该组播数据在至少一个bier域中分别对应的bift-id、位串。这至少一个bier域包括第二bier域。结合第一方面,在一些可选的实施例中,发送方在为bier数据包打上标签之前,还可以确定出发送方在第二bier域中的逻辑下一跳的前缀。其中,发送方在第二bier域中的逻辑下一跳为第二bfir。这样,对于其他bier域,发送方能够自主确定下一跳(即将其他bier域的bfir作为下一跳),而不是将直接相邻的bfr(即bfr-nbr)作为下一跳,可避免发往其他bier域的组播数据再经过发送方所在的bier域内的bfr的转发,可实现将组播数据通过mpls或gre封装后直接发送到其他bier域的bfir,转发效率更高。在第一方面中,在一些可选的实施例中,发送方可具体根据组播数据在第二bier域中对应的bift-id,从第二映射表中确定出发送方在第二bier域中的逻辑下一跳的前缀。发送方在第二bier域中的逻辑下一跳的前缀为组播数据在第二bier域中对应的bift-id所对应的前缀。这里,第二映射表可包括:组播数据在至少一个bier域中分别对应的bift-id、第一bfir在至少一个bier域中的逻辑下一跳的前缀。下面说明上述bift-id、上述bitstring、第一映射表、第二映射表是如何确定的。(1)首先,发送方可以通过组播信息发布和反馈来了解哪些bier域中的bfer对组播组感兴趣。本申请中,发送方与其他bier域中的bfir、bfer之间构成边界网关协议(bordergatewayprotocol,bgp)对等体。组播信息发布和反馈可包括:1.组播信息发布发送方可以通过bgp连接直接向其他bier域中的bfir、bfer发送bgp消息,该bgp消息中携带p组播服务接口自动发现路由(p-multicastserviceinterfaceauto-discoveryroute,pmsia-droute),用于发布组播信息(如组播组地址)。该intrapmsia-droute可携带bier标识、组播数据对应的组播组的标识(如组播组地址(multicastgroup)232.1.1.1)。这里,该bier标识用于指示携带该intrapmsia-droute的bgp消息是一个bier组播消息。2.组播信息反馈相应的,如果对组播组感兴趣,则其他bier域中的bfir、bfer可以分别通过bgp连接直接向发送方发送携带叶子节点自动发现路由(leafauto-discoveryroute,leafa-droute)的bgp消息。相应的,发送方通过bgp连接分别接收来自其他bier域中的bfir、bfer的bpg消息,该bgp消息携带leafa-droute。为了让发送方了解哪些bier域中的bfer对组播组感兴趣,以及知道如何转发组播数据到这些bfer,leafa-droute可以携带下述信息:其一,其他bier域中的bfer(即第一bfer)反馈的leafa-droute中可以携带第一bfer的bfr-id、第一bfer所属的sub-domain、第一bfer的bfr-id所属的si、第一bfer支持的bsl和第一bfer所属bier域的标识。具体可以在leafa-droute新增用于携带sub-domain、si、bsl和bfr-id的字段,以及开启扩展团体属性(“source-asextendedcommunity”)以指示bier域的标识。这样,发送方就可以根据sub-domain、si和bsl这三项参数确定出bift-id,并可以根据bfr-id生成bitstring。也即是说,其他bier域中的bfer的bfr-id、bfr-id所属的si、该其他bier域的标识可用于发送方确定组播数据在该其他bier域中对应的bift-id、位串。然后,发送方可以利用bier域的标识、bift-id和bitstring生成第一映射表,具体见后续内容。在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,第一bfer反馈的leafa-droute中不必须携带该bfer所属的sub-domain。在一种可能的情况下,整个组播域支持的bsl可以是一致的,即无需额外通知,发送方也知道bsl。因此,第一bfer反馈的leafa-droute中不必须携带bsl。其二,其他bier域中的bfir(即第二bfir)反馈的leafa-droute中可以携带第二bfir的bfr-prefix、第二bfir的所属bier域的标识。其他bier域中的bfir的前缀和该其他bier域的标识用于发送方确定组播数据在该其他bier域中的逻辑下一跳的前缀。这样,发送方便可以根据这信息生成发送方的第二映射表,具体见后续内容。可以看出,不同bier域之间的边缘bfr之间构建成bgp对等体,可通过bgp连接直接交互bgp消息,进行组播信息的快速发布和快速反馈。也即是说,组播信息发布和反馈不再是分段进行bgp交互,而是直接跨域交互bgp消息,组播发布和反馈的收敛时间明显缩短,实效性高。(2)发送方确定bift-id。具体的,发送方可以根据来自各个bier域的leafa-droute中携带的sub-domain、si和bsl确定特定组播组在各个bier域中各自对应的bift-id。bift-id用于各个bier域中的bfr(包括bfir、中转bfr)根据bift-id所标识的bift转发组播数据。bift-id是一个固定长度(如20个比特)的索引,由sub-domain、si和bsl这三项参数确定。其中,在一个bier域仅配置有一个sub-domain的特殊情况下,sub-domain不是必选项。可以看出,与其他bier域中确定bift-id所依据的参数一样,发送方也依据sub-domain、si、bsl确定该特定组播组在其他bier域中对应的bift-id。这意味着发送方能构建可在其他bier域内用于bier路由转发的bift-id,整个组播域(多个bier域)统一视角来确定bift-id,可实现发送方能够生成在其他bier域中成功进行bier路由转发的bier数据包。需要说明的,该特定组播组在各个bier域中各自对应的bift-id即该特定组播组对应的组播数据在各个bier域中各自对应的bift-id。(3)发送方确定bitstring。具体的,发送方可以根据来自各个bier域的leafa-droute中携带的bfr-id确定特定组播组在各个bier域中各自对应的bitstring。bitstring用于各个bier域中的bfr(包括bfir、中转bfr)转发组播数据到bitstring所标识的bfer(即接收者)。(4)发送方生成第一映射表。具体的,发送方根据各个bier域的bier域标识、bift-id、bitstring生成第一映射表。第一映射表可包括特定组播数据在至少一个bier域中分别对应的bift-id、bitstring。这至少一个bier域可包括发送方所在的bier域和非发送方所在的bier域(即其他bier域)。第一映射表可以是组播组标识(如组播组地址)和bier域标识、bift-id、bitstring的对应关系。一个组播组标识对应的bier域标识、bift-id、bitstring即表示该组播组标识对应的组播数据在该bier域标识表示的bier域中对应的bift-id、bitstring。本申请中,第一映射表可用于构造bier头。针对某个组播组的组播数据,其bier头仅在发送方侧被构造,无需中间设备参与bier头的重新构造。(5)发送方生成第二映射表。对于其他bier域,发送方自主确定下一跳(即将其他bier域的bfir作为下一跳),而不是将直接相邻的bfr(即bfr-nbr)作为下一跳。对于一个特定的第二bier域,发送方在该bier域中的下一跳可以是该bier域中的多个bfir,即存在多个下一跳。这多个bfir中的部分bfir可负责转发组播数据到该bier域中的一些sub-domain,这多个bfir中的另一部分bfir可负责转发组播数据到该bier域中的另一些sub-domain。这样,针对发往该bier域中的组播数据,发送方可根据该组播数据在该bier域中对应的bift-id(bift-id与sub-domain一一对应)确定将该组播数据转发到哪一个bfir。因为bift-id能够指示该组播数据将会被发往的sub-domain。关于这多个bfir分别负责转发组播数据到哪一个(些)sub-domain,本申请不作限制,可参考实际需求而定。例如,可从负载均衡的角度来设置多个下一跳各自承载的数据转发量。对于一个特定的其他bier域,发送方在该bier域中的下一跳可以是该bier域中的某一个bfir,即仅存在一个下一跳。这一个bfir可负责转发组播数据到该bier域中的全部目标sub-domain。这里,目标sub-domain是指组播数据的接收者所处的sub-domain。发送方可以根据自主确定的下一跳生成第二映射表。第二映射表可包括:组播组在至少一个bier域中分别对应的bift-id、发送方在该至少一个bier域中的下一跳的bfr-prefix。这至少一个bier域可包括发送方所在的bier域和非发送方所在的bier域(即其他bier域)。在发送方所在的bier域内,参考现有的bier-mvpn方案,发送方的下一跳可以是bfr-nbr。而在其他bier域内,发送方的下一跳可以是其他bier域的bfir。可选的,第二映射表可以是组播组标识(如组播组地址)和bier域标识、bift-id、bfr-prefix的对应关系。一个组播组标识对应的bier域标识、bift-id、bfr-prefix即表示该组播组标识对应的组播数据在该bier域标识表示的bier域中对应的bift-id、逻辑下一跳的bfr-prefix。可选的,第二映射表也可以是bift-id、bfr-prefix的对应关系。这样,发送方可以使用从第一映射表查到的bift-id来在第二映射表中查到该bift-id对应bfr-prefix。对于一个特定的其他bier域,在发送方在该bier域中存在多个下一跳的情况下,第二映射表中该bier域的域标识所对应的(一个或多个)bift-id对应多个bfr-prefix;在发送方在该bier域中仅存在一个下一跳的情况下,第二映射表中该bier域的域标识所对应的(一个或多个)bift-id对应一个bfr-prefix。本申请中,第二映射表可用于为由组播数据封装得到的bier数据包打上mpls标签或gre标签,实现跨域(域间)转发。可选的,发送方可配置有用于将组播数据发往至少一个bier域的出端口。第二映射表还可包括:该出端口的标识。这样,发送方可以根据组播数据在其他bier域中对应的bift-id,从第二映射表中确定出用于将该组播数据发往其他bier域的出端口的标识。这里,用于将该组播数据发往其他bier域的出端口可以称为第一端口。第二方面,本申请提供了一种组播数据传输方法,应用于其他bier域中的bfir,该方法可包括:第一bier域中的第一bfir接收第二bier域中的第二bfir发送的打上标签后的bier数据包,该标签为第一bfir的前缀对应的标签,该bier数据包由第二bfir封装组播数据得到,该bier数据包的bier头包括所述组播数据在第一bier域中对应的bift-id和位串。其中,该bift-id至少由第一bfer的bfr-id所属的si以及第一bfer支持的位串长度确定,该位串至少由第一bfer的bfr-id确定。其中,第一bfer为第一bier域中用于接收该组播数据的bfer。然后,第一bfir可以去掉该标签得到该bier数据包,并从该bier数据包的bier头中获得bift-id和位串。最后,第一bfir可以根据该bift-id指示的bift以及该位串转发该bier数据包到第一bfer。在第二方面中,第一bier域即非发送方所处的bier域,第二bier域即发送方所处的bier域。第一bfir为第一bier域中的bfir。第二bfir即发送方,为组播源侧的bfir。第一bfer为第一bier域中用于接收该组播数据的bfer。上述标签可以为mpls标签或gre标签。可以看出,针对发往其他bier域的组播数据,发送方对该组播数据进行bier封装得到bier数据包,然后将bier数据包打上mpls标签或gre标签后单播发送到其他bier域的bfir。然后,bier域内的组播数据转发遵循现有的bier机制转发机制。与现有的bier-mvpn方案不同,本申请中的组播数据转发不是分段式的,bier头仅在发送方侧被构造,不再需要中间设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,可实现更高效率的组播转发。结合第二方面,在一些可选的实施例中,该组播数据在第一bier域中对应的bift-id还由第一bfer所属的sub-domain确定。可选的,在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,第一bfer反馈的leafa-droute中不必须携带该bfer所属的sub-domain。结合第二方面,在一些可选的实施例中,第二bfir与第一bfir之间构成bgp对等体。该方法还可包括:第一bfir通过bgp连接接收第二bfir发送的第一bgp消息,第一bgp消息中携带的intrapmsia-droute包括bier标识、该组播数据对应的组播组的标识。相应的,第一bfir通过bgp连接向第二bfir发送第二bgp消息,第二bgp消息携带的leafa-droute包括第一bfir的前缀和第一bier域的标识。这样,发送方便可以根据这信息生成发送方的第二映射表,具体可参考第一方面中描述的相关内容。也即是说,不同bier域之间的bfir之间构建成bgp对等体,可通过bgp连接直接交互bgp消息,进行组播信息的快速发布和快速反馈。也即是说,组播信息发布和反馈不再是分段进行bgp交互,而是直接跨域交互bgp消息,组播发布和反馈的收敛时间明显缩短,实效性高。第三方面,本申请提供了一种组播数据传输方法,应用于用户设备侧的bfer,该方法可包括:第一bier域中的第一bfer接收第一bier域中的第一bfir发送的bier数据包,该bier数据包由第二bier域中的第二bfir封装组播数据得到,该bier数据包的bier头包括该组播数据在第一bier域中对应的bift-id和位串。其中,该bift-id至少由第一bfer的bfr-id所属的si以及第一bfer支持的位串长度确定,该位串至少由第一bfer的bfr-id确定。其中,第一bfer为第一bier域中用于接收所述组播数据的bfer。然后,第一bfer解封装该bier数据包得到该组播数据,并发送该组播数据到用户侧设备。在第三方面中,第一bier域即非发送方所处的bier域,第二bier域即发送方所处的bier域。第一bfir为第一bier域中的bfir。第二bfir即发送方,为组播源侧的bfir。第一bfer为第一bier域中用于接收该组播数据的bfer。上述标签可以为mpls标签或gre标签。可以看出,针对发往其他bier域的组播数据,发送方对该组播数据进行bier封装得到bier数据包,然后将bier数据包打上mpls标签或gre标签后单播发送到其他bier域的bfir。然后,bier域内的组播数据转发遵循现有的bier机制转发机制。与现有的bier-mvpn方案不同,本申请中的组播数据转发不是分段式的,bier头仅在发送方侧被构造,不再需要中间设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,可实现更高效率的组播转发。结合第三方面,在一些可选的实施例中,第二bfir与第一bfer之间构成bgp对等体。该方法还可包括:第一bfer通过bgp连接接收第二bfir发送的第一bgp消息,第一bgp消息中携带的intrapmsia-droute包括bier标识、该组播数据对应的组播组的标识。相应的,第一bfer通过bgp连接向第二bfir发送第二bgp消息,第二bgp消息携带的leafa-droute包括第一bfer的bfr-id、第一bfer的bfr-id所属的si、第一bier域的标识。这样,发送方便可以根据这信息生成第一映射表,具体可参考第一方面中描述的相关内容。也即是说,发送方和其他bier域中的bfer之间构建成bgp对等体,可通过bgp连接直接交互bgp消息,进行组播信息的快速发布和快速反馈。也即是说,组播信息发布和反馈不再是分段进行bgp交互,而是直接跨域交互bgp消息,组播发布和反馈的收敛时间明显缩短,实效性高。结合第三方面,在一些可选的实施例中,该组播数据在第一bier域中对应的bift-id还由第一bfer所属的sub-domain确定。可选的,第一bfer反馈的leafa-droute中还可以携带第一bfer所属的sub-domain。即,第二bgp消息携带的leafa-droute还可包括第一bfer所属的sub-domain。可选的,在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,第一bfer反馈的leafa-droute中不必须携带该bfer所属的sub-domain。结合第三方面,在一些可选的实施例中,第二bgp消息携带的leafa-droute还可包括第一bfer支持的bsl。可选的,整个组播域支持的bsl可以是一致的,即无需额外通知,发送方也知道bsl。因此,第一bfer反馈的leafa-droute中不必须携带bsl。第四方面,本申请提供了一种路由器,该路由器可包括多个功能模块或单元,用于相应的执行第一方面所提供的组播数据传输方法,或者第一方面可能的实施方式中的任意一种所提供的组播数据传输方法。第五方面,本申请提供了一种路由器,该路由器可包括多个功能模块或单元,用于相应的执行第二方面所提供的组播数据传输方法,或者第二方面可能的实施方式中的任意一种所提供的组播数据传输方法。第六方面,本申请提供了一种路由器,该路由器可包括多个功能模块或单元,用于相应的执行第三方面所提供的组播数据传输方法,或者第三方面可能的实施方式中的任意一种所提供的组播数据传输方法。第七方面,本申请提供了一种路由器,用于执行第一方面描述的组播数据传输方法。该路由器可包括:存储器以及与存储器耦合的处理器、收发器,其中:收发器用于与其他通信设备通信。存储器用于存储第一方面描述的组播数据传输方法的实现代码,处理器用于执行存储器中存储的程序代码,即执行第一方面所提供的组播数据传输方法,或者第一方面可能的实施方式中的任意一种所提供的组播数据传输方法。第八方面,本申请提供了一种路由器,用于执行第二方面描述的组播数据传输方法。该路由器可包括:存储器以及与存储器耦合的处理器、收发器,其中:收发器用于与其他通信设备通信。存储器用于存储第二方面描述的组播数据传输方法的实现代码,处理器用于执行存储器中存储的程序代码,即执行第二方面所提供的组播数据传输方法,或者第二方面可能的实施方式中的任意一种所提供的组播数据传输方法。第九方面,本申请提供了一种路由器,用于执行第三方面描述的组播数据传输方法。该路由器可包括:存储器以及与存储器耦合的处理器、收发器,其中:收发器用于与其他通信设备通信。存储器用于存储第三方面描述的组播数据传输方法的实现代码,处理器用于执行存储器中存储的程序代码,即执行第三方面所提供的组播数据传输方法,或者第三方面可能的实施方式中的任意一种所提供的组播数据传输方法。第十方面,提供了一种通信系统,通信系统可包括:第一路由器和第二路由器。其中:第一路由器可以是上述第五方面描述的路由器,第二路由器可以是上述第六方面描述的路由器。通信系统还可包括:第三路由器,第三路由器可以是上述第四方面描述的路由器。可选的,第一路由器可以是上述第八方面描述的路由器,第二路由器可以是上述第九方面描述的路由器,第三路由器可以是上述第七方面描述的路由器。第十一方面,提供了一种计算机可读存储介质,可读存储介质上存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或上述第二方面或上述第三方面描述的组播数据传输方法。第十二方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第二方面或上述第三方面描述的组播数据传输方法。附图说明为了更清楚地说明本申请实施例或
背景技术
:中的技术方案,下面将对本申请实施例或
背景技术
:中所需要使用的附图进行说明。图1为本申请涉及的bier架构的示意图;图2为本申请涉及的bier头的数据结构示意图;图3为bier域内的拓扑结构的示例性示意图;图4为bier域内的组播信息发布和反馈的示意图;图5为bier域内的bfer反馈加入组播组的示意图;图6为本申请设计的bier-mvpn的应用场景的示意图;图7为现有的bier-mvpn方案的流程示意图;图8为现有的组播信息发布和反馈过程的示意图;图9为本申请中扩展的intrapmsia-droute的数据结构示意图;图10为现有的mvpn框架下的组播数据传输方式的示意图;图11为本申请中的通过底层标签映射构建tcp连接的示意图;图12为本申请中的构建bgp对等体的示意图;图13为本申请中的跨域进行组播信息发布和反馈的示意图;图14为本申请中提供的一种组播数据传输方法的示意图;图15为本申请中扩展的intrapmsia-droute携带组播信息的示意图;图16为其他bier域内的接收者bfer反馈的扩展的leafa-droute的数据结构示意图;图17为其他bier域内的bfir反馈的扩展的leafa-droute的数据结构示意图;图18为本申请中的bift-id的数据结构示意图;图19为本申请中发送方接收来自各个bier域的bier信息的示意图;图20为本申请中的第一映射表的示意图;图21为本申请中的发送方的第二映射表的示意图;图22为本申请中的发送方的组播数据转发的工作原理的示意图;图23为本申请中的在组播域中转发组播数据的示意图;图24为本申请提供的另一种组播数据传输方法的流程示意图;图25为本申请提供的一种路由器的结构示意图;图26为本申请提供的提供的通信系统,及相关装置的结构示意图。具体实施方式本申请的实施方式部分使用的术语仅用于对本申请的具体实施例进行解释,而非旨在限定本申请。图1示出了本申请涉及的bier架构。在该bier架构中,支持bier的路由器被称为位转发路由器(bit-forwardingrouter,bfr)。bier控制面协议运行在bier域内,允许该bier域内的bfr交换它们之间使用bier转发机制转发bier数据包的信息。如图1所示,一个bier域可包括以下路由器:位转发入口路由器(bit-forwardingingressrouter,bfir)101、位转发出口路由器(bit-forwardingegressrouter,bfer)105、中转bfr(transitbfr)103。具体的,组播数据包在位转发入口路由器(bfir)101处进入bier域,在位转发出口路由器(bfer)105处离开bier域。中转bfr用于从相同bier域内的另一个bfr接收组播数据包,并将该组播数据包转发至相同bier域内的另一个bfr。对于一些组播数据流(multicasttraffic)来说,单个bfr可以是bfir;而对于另一些组播数据流来说,该单个bfr也可以是bfer;对于再一些组播数据流来说,该单个bfr又可以是中转bfr。事实上,对于给定数据包,一个bfr可以是一个bfir和/或中转bfr和/或该bfr对应的bfer中的一个。一个bier域可以包含一个或多个子域(sub-domain)。每一个sub-domain被配置一个sub-domain标识(表示为sub-domain-id),sub-domain-id的范围为[0,255]。针对特定bfr所属的子域,如果该bfr能够作为bfir/bfer,那么该bfr分配一个bfr-id,该bfr-id在该子域中是唯一的。例如,如果一个bier子域包含1,374个bfr,那么每一个bfr均可以被分配一个bfr-id(取值范围为1-1374)。如果一个特定bfr属于多个子域,那么该bfr在这多个子域中可以拥有不同的bfr-id(尽管不必须是这样)。另外,每一个bfr在其所属的sub-domain中被分配一个“bfr前缀(bfr-prefix)”。一个bfr的bfr前缀是该bfr的ip地址(ipv4或ipv6)。一个给定bfr的bfr前缀在其所属的sub-domain中是可路由的。当一个组播数据包在bfir处从外部到达bier域时,bfir确定该组播数据包会被发送到哪些bfer集合,以及该数据包要传输在哪些sub-domain中。一旦bfir为该组播数据包确定出bfer集合和sub-domain,bfir利用bier头对该组播数据包进行bier封装。即,组播数据包需要被封装成bier数据包才能在bier域内进行转发。bier封装采用的bier头的格式可以如图2所示包括:bift-id和bitstring。其中,bift-id为位索引转发表(bitindexforwardingtable,bift)的标识,用于指示bfr查找哪一个bift来转发bier数据包;bitstring(称为位串)表示组播数据在bier域内的接收者,bitstring中的每一个比特表示一个bfr-id。为了指示会加入组播组的特定bfer,bfir可以设置该特定bfer的bfr-id在bitstring中对应的比特,例如,bitstring“0110”表示组播组的接收者为:bfr-id为2的bfer、bfr-id为3的bfer。下面分别说明bier域内的组播转发机制涉及的关键技术点:bift和bitstring。(1)bift1.bfr-id和bfr-prefix的发布在一个bier域中,每一个bfer将其bfr-id发布到其他所有bfr。例如,可以通过不透明链路状态发布(opaquelinkstateadvertisement,opaquelsa)消息发布bfr-id,该消息中添加了用于携带bier信息(如sub-domain、bfr-id等)的扩展字段。opaquelsa为运行ibgp协议的一种选择。类似的,每一个bfr将其bfr-prefix发布到其他所有bfr。2.bfr先生成位索引路由表(bitindexroutingtable,birt)位索引路由表(birt)是从bfer的bfr-id映射到该bfer的bfr-prefix,并映射到到达该bfer的路径上的bfr邻居(bfrneighbour,bfr-nbr)的表。以图3所示的bier拓扑结构为例。在图3中,可以通过si:bitstring的格式来表示每一个bfr的bfr-id。si表示bfr-id所属的子集标识(setidentifier)。si和bitstring都由bfr-id转换得到,该转换由参数“位串长度(bitstringlength,bsl)”决定。例如,假设位串长度(bsl)为4。如果bfr-id为1,那么,si等于0,bitstring为“0001”。如果bfr-id为2,那么,si等于0,bitstring为“0010”。这里,如果si不大于bsl,则si就等于0。示例仅仅用于解释本申请,不应构成限定。图3所示的拓扑结构会在bfr-b处产生表1所示的birt。其中,第一列表示bfr-b可以到达的各个bfer(bfer-a、bfer-e、bfer-f、bfer-d)的bfr-id,第二列表示bfr-b可以到达的各个bfer的bfer-prefix,第三列表示bfr-b到达各个bfer的路径上的bfr-nbr(即下一跳)。表13.bfr根据birt生成位索引转发表(bift)假设birt中存在几行具有相同的si和bfr-nbr,通过对这几行中的bfr-id对应的bitstring做逻辑或操作,便可得到bift中的位掩码(bitmask),即f-bm。例如,表2示出了由表1产生的bfr-b的bift,bift用于从bfer的bfr-id映射到相应的f-bm和bfr-nbr。其中,f-bm表示从bfr-b的各个bfr-nbr出去可达的bfer有哪些。可以看出,通过对表1所示的birt中具有相同的si(0)和相同的bfr-nbr(bfr-c)的两行中的bitstring做逻辑或操作可以得到位掩码(f-bm)“0011”。表2一旦bier域内所有bfir、中转bfr都生成了各自的bift,该bier域内的bfir、中转bfr便能够根据接收到的bier数据包中的bier头进行组播转发了。(2)bitstringbfir需要知道哪些bfer对特定组播组感兴趣,这样才能确定向哪些bfer发送该组播组对应的组播数据。对该特定组播组感兴趣的bfer会被bfir确定为该特定组播组的接收者,该特定组播组的接收者即该特定组播组对应的组播数据的接收者。在mvpn中,bfir和bfer都是网络侧边缘设备(provideredge,pe),它们之间通过边界网关协议(bordergatewayprotocol,bgp)消息来交互组播信息(如组播组地址)。图4示出了bier域内的组播信息发布和反馈过程。如图4所示,在一个bier域中,bfir发送携带p组播服务接口自动发现路由(p-multicastserviceinterfaceauto-discoveryroute,pmsia-droute)的bgp消息,以向bfer通告某个组播信息。相应的,对该组播信息表示的组播组感兴趣的bfer会通过携带叶子节点自动发现路由(leafa-droute)的bgp消息来反馈。举例说明,如图5所示,当bfir知道某个组播组的接收者(bfer)是哪些后,bfir可以生成表3所示的组播接收者表。在表3所示的组播组接收者表中,receiver表示组播组g1的接收者的prefix,groupid为组播组标识,joined表示bfer是否加入一个组播组g1。receivergroupidjoinedbg1是cg1是dg1否表3然后,bfir可以根据组播组的接收者的bfr-id确定bitstring。例如,如表2所示,组播组g1的接收者为:bfer-b(bfr-id为2)、bfer-c(bfr-id为3)。bfir可以将bfer-b的bfr-id转换成“0010”,将bfer-c的bfr-id转换成“0100”,然后对“0010”和“0100”进行逻辑或操作得到bitstring“0110”。关于bier技术,上述内容中没有提及的部分可参考ietfbier_arch,这里不赘述。为了成为下一代被广泛应用的组播协议,bier技术需要对mvpn给予全面的支持。图6示例性示出了的bier-mvpn应用场景。其中,组播域可包括多个bier域(如bier域100、bier域200、bier域300),组播数据需要从发送方(组播源侧的bfir)出发,经历多次bier域内转发以及bier域间转发,最终到达各个接收者(用户侧bfer)。从整个组播域来看,一个bier域相当于一个自治系统(autonomoussystem,as)。bier域间的bfir、bfer也可以称为自治系统边界路由器(autonomoussystemborderrouter,asbr)。以图6所示的bier-mvpn应用场景为例,图7示出了现有的使用bier技术的mvpn草案(后续简称现有的bier-mvpn方案)(可参考draft-ietf-bier-mvpn)。该草案提供了在整个组播域中进行组播数据转发的方法。下面展开如下:(1)阶段1(s101):bier域内bfir、bfr都生成各自的bift由上述内容中介绍的关键技术点“bift”可知,在一个bier域内,bfir和bfr都可以生成到达各个bfer的bift。该bier域内的bfer还会发布bift的bift-id,用以隐式指示该bfer所属的subdomain、该bfer的bfr-id所属的si以及该bfer支持的bsl。也即是说,向一个bfer转发组播数据所依据的bift-id由该bfer所属的subdomain、该bfer的bfr-id所属的si以及该bfer支持的bsl这三个参数确定。另外,bfir还可以为其所在bier域内的bfer生成bfr-prefix和bfr-id的对应表。由于bier域内bfir、bfr都生成各自的bift,因此,bfir、bfr在接收到bier数据包后,就可以根据bier头中的bift-id、bitstring进行组播转发。其中,bift-id为用于告知bier路由器查找哪张bift来转发组播数据。bitstring表示了一个组播数据的所有接收者(bfer)的bfr-id。(2)阶段2(s102-s107):组播信息发布和反馈组播信息发布用于一个bier域内的bfir了解该bier域内的哪些bfer对组播组感兴趣,包括:bier域内的组播信息发布和反馈、bier域间的组播信息发布和反馈。图8示出了组播信息发布和反馈的过程。图8中的资源预留协议(resourcereservationprotocol,rsvp)、组播标签分发协议(multicastlabeldistributionprotocol,mldp)都可用来实现标签分发;入口复制(又称头端复制)(ingressreplication,ir)协议可用来实现点到多点的数据转发,如泛洪转发。具体的:s102,bier域100内的组播信息发布。如图8所示,发送方通过域内bgp消息向bier域100内的bfer发送intrapmsia-droute来发布组播信息。如果bier域100内的bfer对该组播信息表示的组播组(multicastgroup)感兴趣,则需要反馈leafa-droute来通知发送方,以加入发送方的组播隧道。在现有的bier-mvpn方案中,如图9所示,发送方需要在intrapmsia-droute的pmsi隧道属性(pmsitunnelattribute)中增加bier标识,用以指示携带该intrapmsia-droute的bgp消息是一个bier组播消息。s103,bier域100内的组播反馈。如图8所示,在接收到发送方发送的携带intrapmsia-droute的域内bgp消息后,如果bier域100内的bfer对该组播信息表示的组播组感兴趣,则会通过域内bgp消息向发送方反馈leafa-droute,该leafa-droute中携带该bfer的bfr-prefix。特别的,当bier域100内的asbr1收到发送方发出的intrapmsia-droute后,为了向其他bier域扩散这个组播信息,asbr1需要通过bgp消息向发送方反馈leafa-droute。这里,对组播组感兴趣的bfer即该组播组的接收者。这样,发送方就可以根据接收者的bfr-prefix找到接收者的bfr-id,便可根据这些接收者的bfr-id确定组播组在bier域100中对应的bitstring。另外,通过s101,发送方可以知道向不同bfr-id的bfer发送组播数据所需的bift-id。bitstring和bfit-id是bier头中最重要的两个元素,用来指示在bier域100内接收到bier数据包的bfr如何转发组播组数据。s104,bier域间的组播信息发布。如图8所示,当bier域100内的asbr1收到发送方发送的intrapmsia-droute后,asbr1会解析该intrapmsia-droute,记录组播组和mvpn信息,并生成以该bfer为源的域间bgp消息。然后,asbr1会通过域间bgp消息发送interpmsia-droute,以泛洪的方式发送给其所有外部边界网关协议(externalbordergatewayprotocol,ebgp)邻居,比如asbr2。s105,bier域间的组播信息反馈。如图8所示,当asbr2收到asbr1发出的interpmsia-droute后,为了向其他bier域内的bfr扩散组播信息,asbr2需要向asbr1反馈leafa-droute,该leafa-droute中携带asbr2的bfr-prefix。这样,asbr1就可以生成组播组与接收者的bfr-prefix的对应表,便可在组播数据到来时知道将该组播数据发送给哪些asbr。注意,和bier域内转发不同,组播数据的域间转发不再是进行bier封装,而是打标签,后续内容中会进行说明,这里先不赘述。s106,bier域200内的组播发布。如图8所示,asbr2通过域内bgp消息向bier域200内的bfer发送intrapmsia-droute,用以发布来自发送方的组播信息。bier域200内的组播信息发布机制与bier域100内的组播信息发布机制相同,具体可参考s102。s107,bier域200内的组播反馈。如图8所示,在接收到asbr2发送的携带intrapmsia-droute的域内bgp消息后,如果bier域200内的bfer对该组播信息表示的组播组感兴趣,则会通过域内bgp消息向发送方反馈leafa-droute,该leafa-droute中携带该bfer的bfr-prefix。这里,对组播组感兴趣的bfer即该组播组的接收者。这样,asbr2就可以根据接收者的bfr-prefix找到接收者的bfr-id,便可根据这些接收者的bfr-id确定组播组在bier域200中对应的bitstring。另外,通过s101,asbr2可以知道向不同bfr-id的bfer发送组播数据所需的bift-id。bitstring和bfit-id是bier头中最重要的两个元素,用来指示在bier域200内接收到bier数据包的bfr如何转发组播数据。综合s102-s107,组播信息发布和反馈总结如下:1.bier域内的组播信息发布和反馈(s102-s103、s106-s107)a.通过域内bgp消息,bfir向bfer发送intrapmsia-droute(增添bier标识)来发布组播信息;b.通过域内bgp消息,对组播组感兴趣的bfer向bfir反馈leafa-droute(携带bfer的prefix)。这样,bfir就可以根据bfer的bfr-prefix找到该bfer的bfr-id,便可知道该域内有哪些bfer对组播组感兴趣(即接收者),可以确定组播组在该域内对应的bitstring。另外,通过步骤1,bfir还可以找到向这些接收者发送组播组所需的bift-id。bift-id和bitstring是bier头中的最重要的两个元素,用来指示接收到bier数据包的bfr在域内如何转发组播组。可以看出,bitstring的作用效力局限在bier域内,只能够指示在某个bier域内组播组的接收者是哪些。2.bier域间的组播信息发布和反馈(s104-s105)a.通过域间bgp消息,一个bier域的bfer(如bier域100中的asbr1)向相邻另一个bier域的bfir(如bier域200中的asbr2)发送interpmsia-droute(增添bier标识)来发布组播;b.通过域间bgp消息,该另一个bier域的bfir向该一个bier域的bfer反馈leafa-droute(携带该bfir的bfr-prefix)。这样,该bfer就可以生成组播组和bfir的bfr-prefix的对应表,便可在特定组播组对应的组播数据到来时知道发给哪些bfir。可以看出,在现有的bier-mvpn方案中,组播信息发布和反馈是分段式的。对同一个组播信息,不同bier域需要分别生成bgp消息来将组播信息最终发布到各个域的bfer,,组播发布&反馈的收敛时间很长,实效性差。(3)组播数据转发(步骤8-10):域内转发和域间转发在介绍现有的bier-mvpn方案中的组播数据转发方式之前,先介绍一下mvpn框架下的分段跨域组播传输方式。例如,如图10所示,当发送方有组播数据需要发送时,可以为该组播数据封装上域内隧道对应的多协议标签转发(multi-protocollabelswitching,mpls)头,并在as100内对封装了mpls头的组播数据进行mpls标签转发,将数据发送到as100内的pe和asbr1。然后,asbr1可以解析接收到的封装了mpls头的组播数据,重新为该组播数据封装相应域间隧道对应的通用路由封装(genericroutingencapsulation,gre)头,并在域间对封装了gre头的组播数据进行gre标签转发,将数据发送到as200内的asbr2。然后,asbr2可以解析接收到的封装了gre头的组播数据,重新为该组播数据封装相应域内隧道对应的mpls头,并在as200内对封装了mpls头的组播数据进行mpls标签转发,将数据发送到接收者pe。最后,接收者pe去掉mpls头将组播数据转发到用户侧设备。与mvpn框架下的分段跨域组播传输方式不同的是,现有的bier-mvpn方案在bier域内采用bier转发机制来转发组播数据。下面展开:s108,bier域100内的组播数据转发。具体的,当某个组播数据到来时,发送方查找该组播数据在bier域100内对应的bitstring,该bitstring已经在s103中确定。另外,发送方还需要确定向bier域100内的接收者转发组播数据所需依据的bift-id,该bift-id已经在s101中确定。然后,发送方利用该bitstring以及bift-id生成bier头,对该组播数据进行bier封装得到bier数据包。这样,发送方以及bier域100内的中转bfr便可以基于bier头,按照bier转发机制将该组播数据转发到bier域100内的接收者(如asbr1)。s109,bier域间的组播数据转发。具体的,当接收到bier数据包时,asbr1先查找该bier数据包中的组播数据对应的bfr-prefix(即asbr2的bfr-prefix),该bfr-prefix已经在步骤s105中确定,用于指示将该组播数据发送给asbr2。然后,asbr1便将该组播数据封装上gre或mpls头,发送到asbr2。s110,bier域200内的组播数据转发。具体的,asbr2解析接收到的封装了gre或mpls头的组播数据。然后,asbr2查找该组播数据在bier域200内对应的bitstring,该bitstring已经在s103中确定。另外,asbr2还需要确定向bier域200内的接收者转发组播数据所需依据的bift-id,该bift-id已经在s101中确定。然后,asbr2利用该bitstring以及bift-id生成bier头,对该组播数据进行bier封装得到bier数据包。这样,asbr2以及bier域200内的中转bfr便可以基于bier头,按照bier转发机制将该组播数据转发到bier域200内的接收者。最终,bier域200内的接收者去掉bier数据包的bier头,读取组播数据,将组播数据转发给用户侧设备。综合s108-s110,组播数据的转发总结如下:1.bier域内的组播数据转发(s108、s110)a.当组播数据到来时,一个bier域的bfir先查找出该组播数据在该bier域内对应的bitstring以及向该bier域内的接收者转发组播数据所需依据的bift-id,为该组播数据生成bier头,并利用该bier头对组播数据进行bier封装,得到bier数据包。b.该bfir以及该bier域内的中转bfr基于bier头,按照bier转发机制(bitstring和bift中f-bm进行逻辑与等操作,具体可参考ietfbier_arch)将该组播数据转发到该bier域的接收者。2.bier域间的组播数据转发(s109)a.当接收到bier数据包时,一个域的bfer(如bier域as100中的asbr1)先解封装bier数据包,读取组播数据,然后查找该组播数据对应的bfr-prefix(如bier域200中的asbr2的bfr-prefix),最后利用该bfr-prefix为该组播数据打上mpls标签或gre标签。b.该bfer向该bfr-prefix表示的其他域的bfir发送打上标签后的组播数据。这样,接收到打上标签后的组播数据后,其他域的bfir也会查找出该组播数据在其他域对应的bitstring以及向其他bier域内的接收者转发组播数据所需依据的bift-id,为该组播数据生成bier头。最终其他域内的bfr按照bier转发机制进行组播转发。可以看出,在现有的bier-mvpn方案中,组播数据转发是分段式的。组播数据从发送方到其它bier域中的接收者pe,需要多个设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,效率低,时效性差。针对现有的bier-mvpn方案存在的问题,本申请提供了一种组播数据传输方法。本申请的主要发明原理可体现在以下两个阶段:1.组播信息发布和反馈;2.组播数据转发。(a)阶段1的主要发明原理可包括:不同bier域中的边缘bfr(bfir、bfer)之间构建成bgp对等体,可通过bgp连接直接交互bgp消息,实现组播信息的快速发布和快速反馈。(b)阶段2的主要发明原理可包括:整个组播域(多个bier域)统一视角来确定bift-id。即,与其他bier域中确定bift-id所依据的sub-domain、si和bsl相同,发送方也依据这些参数确定组播数据在该其他bier域中对应的bift-id。bier头仅在发送方被构造,无需中间设备参与bier头的构造。对于跨域发送的bier数据包,发送方采用其他bier域中的bfir的bfir-prefix进行标签封装,然后单播发送到其他域的bfir。与现有的bier-mvpn方案不同,本申请中的组播数据转发不是分段式的,不再需要中间设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,可实现更高效率的组播转发。在阶段1中,为了实现不同bier域中的边缘bfr能够跨域交互bpg消息,需要提供以下条件:1.底层标签映射构建tcp连接;2.人工配置bgp对等体(bgppeer)。3.通过bgpopen消息建立bgp连接。可以理解的,不同bier域的边缘bfr之间一旦建立了bgp连接,便能够直接交互bgp消息,跨域进行组播信息发布和反馈,而无需采用现有的bier-mvpn方案中的分段式的组播信息发布和反馈。这里,关于人工配置bgppeer的方式,采用相关运营商提供的配置命令即可,本申请不作限制。关于通过bgpopen消息建立bgp连接的具体实现,可参考rfc1105,这里不赘述。关于底层标签映射构建tcp连接,下面进行示例性说明。例如,如图11所示,可以通过下述过程构建不同bier域中的边缘bfr之间的tcp连接:1.bier域200中的bfer通过标签分发协议(labeldistributeprotocol,ldp)将该bfer的bfr-prefix“2.2.2.2”映射到bier域200中的asbr2上。bfr-prefix“2.2.2.2”对应的标签能够用来封装发往该bfer的数据。这样,asbr2便可知道数据转发到2.2.2.2需要用什么标签封装。2.bier域100中的asbr1和bier域200中的asbr2基于外部边界网关协议(externalbordergatewayprotocol,ebgp)相互传递各自的bfr-prefix,并通知对方设置相应的标签。例如,asbr1发往2.2.2.2(即bier域200中的该bfer)数据需要先打上标签“222”,并发给asbr2。3.asbr1直接通过内部网关协议(internalbordergatewayprotocol,ibgp)将bfr-prefix“2.2.2.2”通知给bier域100中的各个边界bfr(包括发送方),这样,发送便可以知道如果要将数据发送给2.2.2.2,只需将数据转发asbr1到即可。由于asbr1和发送方属于同一个bier域(即同一个as),二者之间已经建立了标签转发映射关系,因此,发送方只需要把目标是2.2.2.2的数据打上可达asbr1的标签“22”即可。相应的,asbr1收到目标是2.2.2.2且被打上标签“22”的数据后,将标签“22”换成标签“222”,并将打上标签“222”的数据发给asbr2。asbr2再将标签“222”换成标签“2222”,最后将打上标签“2222”的数据发给2.2.2.2的bier域200中的该bfer。通过上述底层标签映射,bier域200中的边缘bfr的bfr-prefix对应的标签映射到bier域100中的边缘bfr(如发送方)上,bier域100中的发送方和bier域200中的边缘bfr可以建立tcp连接。这样,如图12所示,bier域100中的发送方和bier域200中的边缘bfr进而可以相互构成ebgp邻居(即ebgppeer),可实现通过bgp连接交互bgp消息。基于图12所示的架构,如图13所示,不同bier域中的边缘bfr之间可以直接基于bgp协议交互组播信息。具体的,bier域100中的发送方通过bgp消息直接向bier域200中的边缘bfr(asbr2和bfer)发送intrapmsia-droute来发布组播信息。bier域200中的边缘bfr(asbr2和bfer)通过bgp消息直接向该发送方leafa-droute来进行组播信息反馈。图11仅仅示例性的说明了底层标签映射构建tcp连接的方法,不应构成限定。基于上述主要发明原理以及图6示出的应用场景,下面详细说明本申请提供的组播数据传输方法。如图14所示,本申请提供的组播数据传输方法可包括:(1)阶段1(s201):bier域内bfir、bfr都生成各自的bift由前述内容中介绍的关键技术点“bift”可知,在一个bier域内,bfir和bfr都可以生成到达各个bfer的bift。另外,bfir还可以为其所在bier域内的bfer生成bfr-prefix和bfr-id的对应表。由于bier域内bfir、bfr都生成各自的bift,因此,bfir、bfr在接收到bier数据包后,就可以根据bier头中的bift-id、bitstring进行组播转发。其中,bift-id为用于告知bier路由器查找哪张bift来转发组播数据。bitstring表示了一个组播数据的所有接收者(bfer)的bfr-id。(2)阶段2(s202-s203):组播信息发布和反馈s202,组播信息发布。具体的,如图14所示,bier域100中的发送方可以通过bgp消息将intrapmsia-droute发送到bier域100中的bfer-d,并且可以直接通过bgp消息将intrapmsia-droute发送到bier域200中的bgp对等体(如bfir-e、bfer-g)、bier域300中的bgp对等体(如bfir-e、bfer-g)。也即是说,发送方与其他bier域中的bfir、bfer之间构成bgp对等体。这里,其他bier域是指非发送方所在的bier域。发送方可以通过bgp连接直接向其他bier域中的bfir、bfer发送bgp消息,该bgp消息中携带的intrapmsia-droute,用于发布组播组的组播信息(如组播组地址)。相应的,其他bier域中的bfir、bfer接收到携带intrapmsia-droute的bgp消息,如果对该bgp消息发布的组播组感兴趣,则通过leafa-droute进行反馈。如图15所示,该intrapmsia-droute可携带bier标识、组播组的标识(如组播组地址(multicastgroup)232.1.1.1)。这里,该bier标识用于指示携带该intrapmsia-droute的bgp消息是一个bier组播消息。s203,组播信息反馈。具体的,如图14所示,bier域100中的bfer-d通过bgp消息将leafa-droute发送到发送方,以进行组播信息反馈,具体可参考现有的bier-mvpn方案中的s103。bier域200中的bgp对等体(如bfir-e、bfer-g)、bier域300中的bgp对等体(如bfir-e、bfer-g)也分别通过bgp消息将leafa-droute发送到发送方,以进行组播信息反馈。也即是说,其他bier域中的bfir、bfer可以分别通过bgp连接直接向发送方发送携带leafa-droute的bgp消息。相应的,发送方通过bgp连接分别接收来自其他bier域中的bfir、bfer的bpg消息,该bgp消息携带leafa-droute。为了让发送方了解哪些bier域中的bfer对组播组感兴趣,以及知道如何转发该组播组对应的组播数据到这些bfer,leafa-droute可以携带下述信息:其一,如图16所示,其他bier域中的bfer反馈的leafa-droute中可以携带该bfer的bfr-id、该bfer所属的sub-domain、该bfer的bfr-id所属的si、该bfer支持的bsl和该bfer所属bier域的标识。具体可以在leafa-droute新增用于携带sub-domain、si、bsl和bfr-id的字段,以及开启扩展团体属性(“source-asextendedcommunity”)以指示bier域的标识。这样,发送方就可以根据sub-domain、si和bsl这三项参数确定出bift-id,并可以根据bfr-id确定bitstring。然后,发送方可以利用bier域的标识、bift-id和bitstring生成第一映射表,具体见后续内容。在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,其他bier域中的bfer反馈的leafa-droute中不必须携带该bfer所属的sub-domain。在一种可能的情况下,整个组播域支持的bsl可以是一致的,即无需额外通知,发送方也知道bsl。因此,其他bier域中的bfer反馈的leafa-droute中不必须携带bsl。其二,如图17所示,其他bier域中的bfir(如asbr2)反馈的leafa-droute中可以携带该bfir的bfr-prefix、该bfir的所属bier域的标识。这样,sender便可以根据这信息生成sender的第二映射表,具体见后续内容。综合s202-s203可以看出,本申请中,不同bier域之间的边缘bfr之间构建成bgp对等体,可通过bgp连接直接交互bgp消息,进行组播信息的快速发布和快速反馈。也即是说,组播信息发布和反馈不再是分段进行bgp交互,而是直接跨域交互bgp消息,组播发布和反馈的收敛时间明显缩短,实效性高。(3)阶段3(s204-s206):生成用于组播转发的相关映射表s204,确定bift-id。具体的,如图18所示,bift-id是一个固定长度(如20个比特)的索引,由sub-domain、si和bsl这三项参数确定。其中,在一个bier域仅配置有一个sub-domain的特殊情况下,sub-domain不是必选项。如图19所示,发送方可以根据来自各个bier域的leafa-droute中携带的sub-domain、si和bsl确定相应组播组在各个bier域中各自对应的bift-id。例如,发送方根据来自bier域200的leafa-droute中携带的sub-domain、si和bsl确定相应组播组在bier域200中对应的bift-id。这里,相应组播组是指该leafa-droute所反馈的组播信息指示的组播组。具体的,可以将sub-domain、bsl、si各自的比特序列按序拼接起来形成bift-id。假设,subdomain的比特序列为“011”,bsl的比特序列为“0000100”,si的比特序列为“0001100100”,那么,这三个比特序列按序拼接起来形成长度为20个比特的比特序列“01100001000001100100”,该比特序列即bift-id。可以看出,发送方确定该相应组播组在其他bier域中对应的bift-id所依据的sub-domain、si、bsl与该其他bier域中确定bift-id所依据的sub-domain、si、bsl一样。这意味着发送方能构建可在其他bier域内用于bier路由转发的bift-id,整个组播域(多个bier域)统一视角来确定bift-id,可实现发送方能够生成在其他bier域中成功进行bier路由转发的bier数据包。一个bier域可包括至少一个sub-domain。对此,一个组播组在一个bier域中对应的bift-id是指该组播组在这至少一个sub-domain中分别对应的bift-id,一个组播组在一个bier域中对应的bitstring是指该组播组在这至少一个sub-domain中分别对应的bitstring。这意味着,对于发往该bier域的组播数据,发送方需要为这至少一个sub-domain分别构造bier头,然后向这至少一个sub-domain分别封装bier数据包,不同的sub-domain对应不同的bier头。本申请中,一个组播组在各个bier域中各自对应的bift-id即该组播组对应的组播数据在各个bier域中各自对应的bift-id。一个组播组在各个bier域中各自对应的bitstring即该组播组对应的组播数据在各个bier域中各自对应的bitstring。s205,生成第一映射表。具体的,发送方根据各个bier域的bier域标识、bift-id、bitstring生成图20示例性所示的第一映射表。第一映射表可包括组播组在至少一个bier域中分别对应的bift-id、bitstring。如图20所示,这至少一个bier域可包括发送方所在的bier域和非发送方所在的bier域(即其他bier域)。第一映射表可以是组播组标识(如组播组地址)和bier域标识、bift-id、bitstring的对应关系。一个组播组标识对应的bier域标识、bift-id、bitstring即表示该组播组标识表示的组播组在该bier域标识表示的bier域中对应的bift-id、bitstring。在第一映射表中,组播组在其他bier域中对应的bift-id由其他bier域的接收者所属的sub-domain、该接收者的bfr-id所属的si、该接收者支持的bsl确定;组播组在其他bier域中对应的bitstring由该接收者的bfr-id确定。这里,该接收者是指其他bier域中对该组播组感兴趣的bfer。本申请中,第一映射表可用于构造bier头。针对某个组播组,其bier头仅在发送方侧被构造,无需中间设备参与bier头的重新构造。s206,生成发送方的第二映射表。本申请中,对于其他bier域,发送方自主确定下一跳(即将其他bier域的bfir作为下一跳),而不是将直接相邻的bfr(即bfr-nbr)作为下一跳。这样可避免发往其他bier域的组播数据再经过发送方所在的bier域内的bfr的转发,可实现将组播数据通过mpls或gre封装后直接发送到其他bier域的bfir,转发效率更高。对于一个特定的其他bier域,发送方在该bier域中的下一跳可以是该bier域中的多个bfir,即存在多个下一跳。这多个bfir中的部分bfir可负责转发组播数据到该bier域中的一些sub-domain,这多个bfir中的另一部分bfir可负责转发组播数据到该bier域中的另一些sub-domain。这样,针对发往该bier域中的组播数据,发送方可根据该组播数据在该bier域中对应的bift-id(bift-id与sub-domain一一对应)确定将该组播数据转发到哪一个bfir。因为bift-id能够指示该组播数据将会被发往的sub-domain。关于这多个bfir分别负责转发组播数据到哪一个(些)sub-domain,本申请不作限制,可参考实际需求而定。例如,可从负载均衡的角度来设置多个下一跳各自承载的数据转发量。对于一个特定的其他bier域,发送方在该bier域中的下一跳可以是该bier域中的某一个bfir,即仅存在一个下一跳。这一个bfir可负责转发组播数据到该bier域中的全部目标sub-domain。这里,目标sub-domain是指组播数据的接收者所处的sub-domain。本申请中,发送方可以根据自主确定的下一跳生成图21示例性所示的第二映射表。该第二映射表可包括:组播组在至少一个bier域中分别对应的bift-id、发送方在该至少一个bier域中的下一跳的bfr-prefix。如图21所示,这至少一个bier域可包括发送方所在的bier域和非发送方所在的bier域(即其他bier域)。在发送方所在的bier域内,参考现有的bier-mvpn方案,发送方的下一跳可以是bfr-nbr。而在其他bier域内,发送方的下一跳可以是其他bier域的bfir。第二映射表可以是组播组标识(如组播组地址)和bier域标识、bift-id、bfr-prefix的对应关系。一个组播组标识对应的bier域标识、bift-id、bfr-prefix即表示该组播组表示的组播组在该bier域标识表示的bier域中对应的bift-id、逻辑下一跳的bfr-prefix。对于一个特定的其他bier域,在发送方在该bier域中存在多个下一跳的情况下,第二映射表中该bier域的域标识所对应的(一个或多个)bift-id对应多个bfr-prefix;在发送方在该bier域中仅存在一个下一跳的情况下,第二映射表中该bier域的域标识所对应的(一个或多个)bift-id对应一个bfr-prefix。本申请中,该第二映射表可用于为由组播数据封装得到的bier数据包打上mpls标签或gre标签,实现跨域(域间)转发。例如,发送方可以根据bier数据包的bier头中携带bift-id确定出该bier数据包需要发往的目标bier域,然后可以将发送方在目标bier域中的下一跳,为该bier数据包打上mpls标签或gre标签后发送到该下一跳。示例仅仅用于解释本申请,具体可参考后续内容,这里先不赘述。可选的,发送方可配置有用于将组播数据发往至少一个bier域的出端口。该第二映射表还可包括:该出端口的标识。这样,发送方便可以知道采用哪一个出端口向特定bier域转发组播数据。可选的,第一映射表和第二映射表可以为两个独立的映射关系,即两个表。第一映射表和第二映射表也可以存在于一个映射关系中,即一个表的两个部分。本申请对于第一映射表和第二映射表的数据表现形式不作限制,不必须是表格形式。(4)阶段4:组播数据转发(s207-s211):域内转发和域间转发s207,bier域100内的组播数据转发。具体的,当某个组播数据到来时,发送方可从第一映射表中确定出该组播数据在bier域100中对应的bift-id和bitstring。该组播数据在bier域100中对应的bift-id和bitstring分别为该组播数据对应的组播组在bier域100中对应的bift-id和bitstring。该第一映射表已经在s205中生成。然后,发送方可以利用该bitstring以及bift-id生成bier头,对该组播数据进行bier封装得到bier数据包。这样,发送方以及bier域100内的中转bfr便可以基于bier头,按照bier转发机制将该组播数据转发到bier域100内的接收者。相应的,bier域100内的接收者接收到bier数据包,然后可以解封装该bier数据包得到组播数据,并发送组播数据到用户侧设备。s208,发送方(处于bier域100内)向bier域200中的bfir单播发送组播数据。具体的,当某个组播数据到来时,发送方可从第一映射表中确定出该组播数据在bier域200中对应的bift-id和bitstring,并利用该bitstring以及bift-id生成bier头,对该组播数据进行bier封装得到bier数据包。该第一映射表已经在s205中生成。然后,发送方可以根据该bier头中的bift-id从s206中生成的第二映射表中确定出发送方在bier域200中的下一跳的bfr-prefix,并可以利用该bfr-prefix为该bier数据包打上mpls标签或gre标签,并向bier域200中的bfir发送打上标签后的bier数据包。相应的,bier域200内的bfir可以接收到打上标签后的bier数据包,并可以去掉该标签得到bier数据包。s209,bier域200内基于bier转发机制转发组播数据。bier域200内的bfir、中转bfr可以从该bier数据包的bier头中获得bift-id和bitstring,最终根据该bift-id指示的bift以及该位串转发该bier数据包到bier域200内的接收者。具体可参考现有的bier-mvpn方案中的s108、s110,这里不再赘述。相应的,bier域200内的接收者接收到bier数据包,然后可以解封装该bier数据包得到组播数据,并发送组播数据到用户侧设备。s210-s211描述了向bier域300中的接收者转发组播数据的过程,该过程同于向bier域200中的接收者转发组播数据的过程,这里不再赘述。综合s207-s211,组播数据的转发总结如下:1.bier域间的组播数据转发(s208、s210):针对发往其他bier域的组播数据,发送方对该组播数据进行bier封装得到bier数据包,然后将bier数据包打上mpls标签或gre标签后单播发送到其他bier域的bfir。2.bier域内的组播数据转发(s207、s209、s211):按照bier机制转发组播数据,可参考现有的bier-mvpn方案。可以看出,与现有的bier-mvpn方案不同,本申请中的组播数据转发不是分段式的,bier头仅在sender侧被构造,不再需要中间设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,可实现更高效率的组播转发。本申请中,组播数据转发的关键工作发生在发送方。发送方的工作原理可如图22示例性所示:对于发往多个bier域的组播数据,发送方先复制该组播数据,然后根据s205中生成的第一映射表为发往不同bier域的组播数据构建bier头得到bier数据包。然后,发送方可以根据s206中生成的第二映射表为发往其他bier域的bier数据包打上标签,并单播发送到发送方其他bier域中的下一跳。对于发往域内(即发送方所在的bier域)的bier数据包,发送方基于bier转发机制转发组播数据,可参考现有的bier-mvpn方案。下面通过举例来说明本申请提供组播数据转发方法的具体实施。在图23所示的示例中,假设对组播组(s,g)感兴趣的接收者为:bier域100内的bfer-d(bfr-id为100)、bier域200内的bfer-g(bfr-id为100)、bier域300内的bfer-j(bfr-id为200)。其中,bfer-g的bfr-prefix对应的标签为“200”,bfer-j的bfr-prefix对应的标签为“300”。如图23所示,当组播组(s,g)对应的组播数据到来时,其转发过程如下:1.发送方将组播数据复制成3份。2.发送方基于第一映射表分别为这3份组播数据封装bier头。其中,发往bfer-d的组播数据被封装的bier头包括:组播数据在bier域100中对应的bift-id(即bift-100)和组播数据在bier域100中对应的bitstring(第100个比特为1)。发往bfer-g的组播数据被封装的bier头包括:组播数据在bier域200中对应的bift-id(即bift-200)和组播数据在bier域200中对应的bitstring(第100个比特为1)。发往bfer-j的组播数据被封装的bier头包括:组播数据在bier域300中对应的bift-id(即bift-300)和组播数据在bier域300中对应的bitstring(第200个比特为1)。3.bier域100内基于bier转发机制转发组播数据,具体可参考现有的bier-mvpn方案。当bier域100内的接收者收到bier数据包后,可以解封装bier数据包,读取组播数据,并转发该组播数据到用户侧设备。4.发送方将bier数据包打上标签“200”,并将打上标签“200”的bier数据包单播发送到bier域200内的bfir-e(即asbr2)。当bier域200内的bfir-e收到bier域200内的bfir-e后,可以去掉标签“200”得到bier数据包。bier域200内基于bier转发机制转发组播数据,具体可参考现有的bier-mvpn方案。当bier域200内的接收者收到bier数据包后,可以解封装bier数据包,读取组播数据,并转发该组播数据到用户侧设备。5.发送方将bier数据包打上标签“300”,并将打上标签“300”的bier数据包单播发送到bier域300内的bfir-h(即asbr3)。当bier域300内的bfir-h收到bier域300内的bfir-h后,可以去掉标签“300”得到bier数据包。bier域300内基于bier转发机制转发组播数据,具体可参考现有的bier-mvpn方案。当bier域200内的接收者收到bier数据包后,可以解封装bier数据包,读取组播数据,并转发该组播数据到用户侧设备。从图23所示的示例可以看出,与现有的bier-mvpn方案不同,发往其他bier域(如bier域200)内的接收者的组播数据不再需要经过bier域100、bier域200中的bfr的层层转发,中间设备(如bier域200中的bfir)不再参与bier头的生成,可实现更高效率的组播转发。扩展方案在一些可选的实施例中,发送方可以不向其他bier域中的bfir发送bgp消息来发布组播信息,其他bier域中的bfir可以感知并解析bgp消息中携带的intrapmsia-droute。本扩展方案可以如图24所示,包括:(1)阶段1(s301):bier域内bfir、bfr都生成各自的bift具体可参考图14实施例中的s201,这里不再赘述。(2)阶段2(s302-s304):组播信息发布和反馈与图14实施例中的组播信息发布和反馈(s202-s203)不同的是,发送方不再向其他bier域中的bfir发送bgp消息来发布组播信息,其他bier域中的bfir可以感知并解析bgp消息中携带的intrapmsia-droute,具体可参考s302-s303。为缩小范围,其他bier域中的bfir可以只对类型(routetype)为1、2、3、5的这些可发布组播信息的intrapmsia-droute进行解析,然后解析携带在其中的pmsitunnelattribute,如果pmsitunnelattribute包含bier标识,则向发送方反馈leafa-droute。包含bier标识的intrapmsia-droute可参考图9所示。(3)阶段3(s305-s307):生成用于组播转发的相关映射表具体可参考图14实施例中的s204-s206,这里不再赘述。(4)阶段4:组播数据转发(s308-s312):域内转发和域间转发具体可参考图14实施例中的s307-s311,这里不再赘述。参考图25,图25示出了本申请的一些实施例提供的路由器100。路由器100为bier域中的bfr,可以实施成bier域内的bfir,也可以实施成bier域内的中转bfr,还可以实施成bier域内的bfer。如图25所示,路由器100可包括:一个或多个处理器101、存储器103、通信接口105。这些部件可通过总线104或者其他方式连接,图25以通过总线连接为例。其中:通信接口105可用于路由器100与其他通信设备,例如其他路由器,进行通信。具体的,通信接口105可以包括有线通信接口,例如广域网(wan)接口、局域接入网(lan)接口等。不限于有线通信接口,在一些可能的实施例中,通信接口105还可包括无线通信接口,如无线局域网(wlan)接口等。存储器103与处理器101耦合,用于存储各种软件程序和/或多组指令。具体的,存储器103可包括高速随机存取的存储器,并且也可包括非易失性存储器,例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备。存储器103可以存储操作系统(下述简称系统),例如ucos、vxworks、rtlinux等嵌入式操作系统。存储器103还可以存储网络通信程序,该网络通信程序可用于与一个或多个附加设备,一个或多个用户时设备,一个或多个网络设备进行通信。在本申请的一些实施例中,路由器100可以实施成上述方法实施例中的发送方,如图6中的处于bier域100内的bfir-a。存储器103可用于存储本申请的一个或多个实施例提供的组播数据传输方法在发送方侧的实现程序。处理器101可用于读取和执行计算机可读指令。具体的,处理器101可用于调用存储于存储器103中的程序,例如本申请的一个或多个实施例提供的组播数据传输方法在发送方侧的实现程序,并执行该程序包含的指令。关于本申请的一个或多个实施例提供的组播数据传输方法在该发送方侧的的实现,请参考前述方法实施例。在本申请的一些实施例中,路由器100可以实施成上述方法实施例中的其他域内的bfir(如图6中的处于bier域200内的asbr2)。存储器103可用于存储本申请的一个或多个实施例提供的组播数据传输方法在该bfir侧的实现程序。处理器101可用于读取和执行计算机可读指令。具体的,处理器101可用于调用存储于存储器103中的程序,例如本申请的一个或多个实施例提供的组播数据传输方法在该bfir侧的实现程序,并执行该程序包含的指令。关于本申请的一个或多个实施例提供的组播数据传输方法在该bfir侧的实现,请参考前述方法实施例。在本申请的一些实施例中,路由器100可以实施成上述方法实施例中的其他域内的接收者(如图6中的处于bier域200内的bfer-g)。存储器103可用于存储本申请的一个或多个实施例提供的组播数据传输方法在该接收者侧的实现程序。具体的,处理器101可用于调用存储于存储器103中的程序,例如本申请的一个或多个实施例提供的组播数据传输方法在该接收者侧的实现程序,并执行该程序包含的指令。关于本申请的一个或多个实施例提供的组播数据传输方法在该接收者侧的实现,请参考前述方法实施例。可以理解的,图25所示的路由器100仅仅是本申请实施例的一种实现方式,实际应用中,路由器100还可以包括更多或更少的部件,这里不作限制。参考图26,图26示出了本申请提供另一种通信系统及相关装置。通信系统200可包括如下通信装置:至少一个第一路由器400和至少一个第二路由器500。第一路由器400、第二路由器500处于相同的bier域。第一路由器400可以为上述方法实施例中的其他bier域中的bfir,第二路由器500可以为上述方法实施例中的其他bier域中的接收者bfer。可选的,通信系统200还可包括至少一个第三路由器300,第三路由器300所处的bier域与第一路由器400、第二路由器500所处的bier域不同。第三路由器300可以为上述方法实施例中的发送方。通信系统200以及其中的通信装置可以实施图14或图24实施例描述的组播数据传输方法。下面展开描述。如图26所示,第三路由器300可包括:处理单元301和通信单元303。其中:处理单元301,可用于从第一映射表中确定出组播数据在其他bier域中对应的bift-id和bitstring,其中,该bift-id至少由其他bier域中的第二路由器500的bfr-id所属的si以及第一bfer支持的bsl确定,该bitstring至少由第二路由器500的bfr-id确定,第二路由器500其他bier域中用于接收组播数据的bfer,第一映射表包括该组播数据在至少一个bier域中分别对应的bift-id、位串。处理单元301,还可用于将该组播数据封装成bier数据包,该bier数据包的bier头包括该组播数据在其他bier域中对应的bift-id和位串。处理单元301,还可用于为该bier数据包打上标签,该标签为其他bier域中的bfir的前缀对应的标签。通信单元303,可用于向处于其他bier域的第一路由器400发送打上该标签后的bier数据包。这里,其他bier域即非第三路由器300所处的bier域。上述标签可以为mpls标签或gre标签。可以理解的,与现有的bier-mvpn方案不同,本申请中的组播数据转发不是分段式的,bier头仅在第三路由器300侧被构造,不再需要中间设备(如沿途各个bier域的bfir、bfer)参与bier头的生成,可实现更高效率的组播转发。在一些可选的实施例中,处理单元301还可用于在为bier数据包打上标签之前,还可以根据组播数据在其他bier域中对应的bift-id,从第二映射表中确定出第三路由器300在其他bier域中的逻辑下一跳的前缀。其中,第三路由器300的逻辑下一跳为其他bier域中的bfir。第二映射表包括:组播数据在至少一个bier域中分别对应的bift-id、第三路由器300在至少一个bier域中的逻辑下一跳的前缀。这样,对于其他bier域,第三路由器300能够自主确定下一跳(即将其他bier域的bfir作为下一跳),而不是将直接相邻的bfr(即bfr-nbr)作为下一跳,可避免发往其他bier域的组播数据再经过第三路由器300所在的bier域内的bfr的转发,可实现将组播数据通过mpls或gre封装后直接发送到其他bier域的bfir,转发效率更高。在一些可选的实施例中,第二映射表还可包括:第三路由器300上的分别用于将组播数据发往前述至少一个bier域的端口的标识。具体的,处理单元301还可用于根据组播数据在其他bier域中对应的bift-id,从第二映射表中确定出用于将组播数据发往其他bier域的第一端口的标识。然后,通信单元303还可用于通过第一端口向其他bier域中的第一路由器400发送打上标签后的bier数据包。本申请中,第三路由器300与其他bier域中的第一路由器400、第二路由器500之间构成bgp对等体。在转发组播数据到其他bier域中的bfir之前,第三路由器300可以通过组播信息发布和反馈来了解哪些bier域中的bfer对组播组感兴趣。下面具体说明:通信单元303还可用于通过bgp连接直接向其他bier域中的bfir、bfer发送bgp消息,该bgp消息中携带的intrapmsia-droute,用于发布组播信息(如组播组地址)。该intrapmsia-droute可携带bier标识、组播数据对应的组播组的标识(如组播组地址(multicastgroup)232.1.1.1)。这里,该bier标识用于指示携带该intrapmsia-droute的bgp消息是一个bier组播消息。通信单元303还可用于分别通过bgp连接直接接收来自其他bier域中的第一路由器400、第二路由器500的bpg消息,该bgp消息携带leafa-droute。为了让第三路由器300了解哪些bier域中的bfer对组播组感兴趣,以及知道如何转发组播数据到这些bfer,leafa-droute可以携带下述信息:其一,其他bier域中的第二路由器500反馈的leafa-droute中可以携带第二路由器500的bfr-id、第二路由器500所属的sub-domain、第二路由器500的bfr-id所属的si、第二路由器500支持的bsl和第二路由器500所属bier域的标识。具体可以在leafa-droute新增用于携带sub-domain、si、bsl和bfr-id的字段,以及开启扩展团体属性(“source-asextendedcommunity”)以指示bier域的标识。这样,第三路由器300就可以根据sub-domain、si和bsl这三项参数确定出bift-id,并可以根据bfr-id确定bitstring。然后,第三路由器300可以利用bier域的标识、bift-id和bitstring生成第一映射表。在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,其他bier域中的第二路由器500反馈的leafa-droute中不必须携带第二路由器500所属的sub-domain。在一种可能的情况下,整个组播域支持的bsl可以是一致的,即无需额外通知,第三路由器300也知道bsl。因此,其他bier域中的第二路由器500反馈的leafa-droute中不必须携带bsl。其二,其他bier域中的第一路由器400反馈的leafa-droute中可以携带第一路由器400的bfr-prefix、第一路由器400的所属bier域的标识。这样,第三路由器300便可以根据这信息生成第二映射表。可以看出,不同bier域之间的边缘bfr之间构建成bgp对等体,可通过bgp连接直接交互bgp消息,进行组播信息的快速发布和快速反馈。也即是说,组播信息发布和反馈不再是分段进行bgp交互,而是直接跨域交互bgp消息,组播发布和反馈的收敛时间明显缩短,实效性高。可以理解的,关于第三路由器300的各个功能单元的具体实现可参考图14或图24对应的方法实施例,这里不再赘述。如图26所示,第一路由器400可包括:处理单元401和通信单元403。其中:通信单元403,可用于接收第三路由器300发送的打上标签后的bier数据包,该标签为第一路由器400的前缀对应的标签,该bier数据包由第三路由器300封装组播数据得到,该bier数据包的bier头包括组播数据在其他bier域中对应的bift-id和位串。其中,该bift-id至少由第二路由器500的bfr-id所属的si以及第二路由器500支持的位串长度确定,该位串至少由第二路由器500的bfr-id确定。其中,第二路由器500为其他bier域中用于接收该组播数据的bfer。处理单元401,可用于去掉该标签得到该bier数据包,并从该bier数据包的bier头中获得bift-id和位串。通信单元403,还可用于可以根据该bift-id指示的bift以及该位串转发该bier数据包到第二路由器500。这里,其他bier域即非第三路由器300所处的bier域。上述标签可以为mpls标签或gre标签。在一些可选的实施例中,该组播数据在其他bier域中对应的bift-id还由第二路由器500所属的sub-domain确定。可选的,在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,第二路由器500反馈的leafa-droute中不必须携带该bfer所属的sub-domain。在一些可选的实施例中,第三路由器300与第一路由器400之间构成bgp对等体。通信单元403,还可用于通过bgp连接接收第三路由器300发送的第一bgp消息,第一bgp消息中携带的intrapmsia-droute包括bier标识、该组播数据对应的组播组的标识。相应的,通信单元403,还可用于通过bgp连接向第三路由器300发送第二bgp消息,第二bgp消息携带的leafa-droute包括第一路由器400的前缀和第一路由器400所处bier域的标识。这样,第三路由器300便可以根据这信息生成第二映射表,具体可参考第一方面中描述的相关内容。可以理解的,关于第一路由器400的各个功能单元的具体实现可参考图14或图24对应的方法实施例,这里不再赘述。如图26所示,第二路由器500可包括:处理单元501和通信单元403。其中:通信单元503,可用于接收第三路由器300发送的bier数据包,该bier数据包由第三路由器300封装组播数据得到,该bier数据包的bier头包括该组播数据在其他bier域中对应的bift-id和位串。其中,该bift-id至少由第二路由器500的bfr-id所属的si以及第二路由器500支持的位串长度确定,该位串至少由第二路由器500的bfr-id确定。其中,第二路由器500为其他bier域中用于接收所述组播数据的bfer。处理单元501,可用于解封装该bier数据包得到该组播数据。通信单元503,还可用于发送该组播数据到用户侧设备。这里,其他bier域即非第三路由器300所处的bier域。上述标签可以为mpls标签或gre标签。在一些可选的实施例中,第三路由器300与第二路由器500之间构成bgp对等体。通信单元503,还可用于通过bgp连接接收第三路由器300发送的第一bgp消息,第一bgp消息中携带的intrapmsia-droute包括bier标识、该组播数据对应的组播组的标识。相应的,通信单元503,还可用于通过bgp连接向第三路由器300发送第二bgp消息,第二bgp消息携带的leafa-droute包括第二路由器500的bfr-id、第二路由器500的bfr-id所属的si、其他bier域的标识。这样,第三路由器300便可以根据这信息生成第一映射表,具体可参考第一方面中描述的相关内容。在一些可选的实施例中,该组播数据在其他bier域中对应的bift-id还由第二路由器500所属的sub-domain确定。可选的,第二路由器500反馈的leafa-droute中还可以携带第二路由器500所属的sub-domain。即,第二bgp消息携带的leafa-droute还可包括第二路由器500所属的sub-domain。可选的,在一种可能的情况下,一个bier域仅配置有一个sub-domain。针对这种情况,bift-id可以只由si和bsl这两项参数确定,因此,第二路由器500反馈的leafa-droute中不必须携带该bfer所属的sub-domain。在一些可选的实施例中,第二bgp消息携带的leafa-droute还可包括第二路由器500支持的bsl。可选的,整个组播域支持的bsl可以是一致的,即无需额外通知,第三路由器300也知道bsl。因此,第二路由器500反馈的leafa-droute中不必须携带bsl。可以理解的,关于第二路由器500的各个功能单元的具体实现可参考图14或图24对应的方法实施例,这里不再赘述。综上,实施本申请提供的技术方案,可显著缩短组播传输的收敛时间,改善了组播传输的时效性。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:rom或随机存储记忆体ram、磁碟或者光盘等各种可存储程序代码的介质。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1