一种BIER报文转发方法、装置、设备和存储介质与流程

文档序号:25596121发布日期:2021-06-22 17:14阅读:196来源:国知局
本申请涉及数据通信领域,具体涉及一种bier报文转发方法、装置、设备和存储介质。
背景技术
::rfc8279定义了bier(bitindexedexplicitreplication,位索引显式复制)架构,是组播数据报文转发的一种新的架构,为组播数据报文在组播域中提供最优路径转发。不需要使用协议建立组播分发树,也不需要中间节点维护任何流状态。当组播报文从域外到达bfir(bit-forwardingingressrouter,位转发入口路由器)时,bfir先确定报文将在哪个biersd(sub-domain)内发送并发往哪些bfer(bit-forwardingegressrouter,位转发出口路由器)。bfir然后在报文头中插入“bierheader”,其中包含一个bitstring,bitstring的每一位表示相应bfer的bfr-id。一个报文能转发至的bfer的个数,取决于bsl(bitstringlength,bitstring的长度)。有可能,sub-domain中包含的bfer个数会超过bsl,为了支持这种情况,在bierheader中再引入si(setidentifier,集合标识)。si与bitstring一起确定报文要转发至哪些bfer。若si为n,bitstring中的第k位为1(记最低位为第1位),则报文将会发给bfr-id为n*bsl+k的bfer。rfc8296描述了bierheader的具体封装方式,具体包含多种,能适用于mpls(multiprotocollabelswitching多协议标签交换)网络的mplsbier报文,与能适用于non-mpls网络的non-mplsbier报文。对于mplsbier报文,bierheader中的bift-id是mplslabel,通过该mplslabel能查询得到相应的<sd,bsl,si>信息,这种方式的好处是利用了已有的成熟的mpls转发平面,通过命中的标签表项来识别是一个bier报文,即bier报文本质上是一个标签报文,但坏处是需要浪费很多标签资源。对于non-mplsbier报文,bierheader中的bift-id直接标识了特定的<sd,bsl,si>对应的bift子表,此时任何承载bier报文的封装头(如ethernet,、ip、udp、mpls等)均需要具备识别bier报文的能力,如ethernet就扩展了其协议类型字段的取值,当etherttype取值为0xab37时,表示所封装的是一个non-mplsbier报文。non-mplsbier封装方式的好处不需要浪费数量众多的标签资源,与<sd,bsl,si>对应的bift-id是bier特有的资源,非常充足,它可以是全局含义的,也可以是本地含义的。但non-mplsbier封装方式的问题是需要直接扩展现有的数量众多的封装头,如ethernet、ip、udp、mpls等拓展的封装头,将会面临显然的互联互通问题,因为网络中并非所有厂商的节点都已升级完成相应的扩展,特别是mpls封装中根本就没有可扩展的协议字段去识别内层载荷。考虑到mpls已经在现网中得到了大量的部署,在网络演进中,更多的会面临mpls网络连接许多新建的non-mplsbier孤岛的情况,缺少bier报文在不同协议报文格式网域中转发的方案。技术实现要素:本申请提出了一种bier报文转发方法、装置、设备和存储介质。本申请实施例提供了一种bier报文转发方法,应用于发送节点,该方法包括:在bift(bitindexforwardingtable,位索引转发表)转发表项中设置bier转发邻居节点的节点信息;根据所述节点信息确认所述bier转发邻居节点存在处理目标报文格式的能力时,按照所述目标报文格式封装bier报文;将所述bier报文发送至所述bier转发邻居节点。本申请实施例提供了一种bier报文转发方法,应用于转发节点,该方法包括:接收报文发送节点发送的bier报文;根据bier报文中的bnmgl标签查找bnmgl入标签映射表项,确定本节点存在对目标报文格式的处理能力时,解析所述bier报文获取目标节点信息;根据所述目标节点信息将所述bier报文转发。本申请实施例还提供了一种bier报文转发装置,其特征在于,应用于发送节点,该装置包括:信息查找模块,用于在bift转发表项中设置bier转发邻居节点的节点信息;报文封装模块,用于根据所述节点信息确认所述bier转发邻居节点存在处理目标报文格式的能力时,按照所述目标报文格式封装bier报文;报文发送模块,用于将所述bier报文发送至所述bier转发邻居节点。本申请实施例还提供了一种bier报文转发装置,其特征在于,应用于转发节点,该装置包括:报文接收模块,用于接收报文发送节点发送的bier报文;信息解析模块,用于根据bier报文中的bnmgl标签查找bnmgl入标签映射表项,确定本节点存在对目标报文格式的处理能力时,解析所述bier报文获取目标节点信息;报文转发模块,用于根据所述目标节点信息将所述bier报文转发。本申请实施例还提供了一种设备,该设备包括:一个或多个处理器;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如本申请实施例中任一所述的bier报文转发方法。本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本申请实施例中任一所述的bier报文转发方法。本申请实施例的技术方案,通过在bift转发表项设置转发节点的节点信息,根据节点信息确定转发邻居节点存在处理目标报文格式的能力,根据目标报文格式封装bier报文,并将封装后的bier报文转发到转发邻居节点,实现了不同网域下的bier报文转发,可以将non-mplsbier报文承载在mpls隧道上发送,解决了报文转发互联互通的问题。关于本申请的以上实施例和其他方面以及其实现方式,在附图说明、具体实施方式和权利要求中提供更多说明。附图说明图1为本申请实施例提供的一种bier报文转发方法的步骤流程图;图2a为本申请实施例提供的一种网络拓扑图;图2b为本申请实施例提供的一种网络拓扑图;图3为本申请实施例提供的一种bier报文转发方法的步骤流程图;图4为本申请实施例提供的一种bier报文转发方法的网络拓扑图;图5a为本申请实施例提供的一种泛洪报文的结构示意图;图5b为本申请实施例提供的一种泛洪报文的结构示意图;图6a为本申请实施例提供的一种bnmgl标签的结构示意图;图6b为本申请实施例提供的一种bnmgl标签的结构示意图;图7为本申请实施例提供的一种bier报文转发方法的步骤流程图;图8为本申请实施例提供的一种bier报文转发方法的步骤流程图;图9为本申请实施例提供的一种bier报文转发方法的网络拓扑图;图10为本申请实施例提供的一种bier报文转发装置的结构示意图;图11为本申请实施例提供的一种bier报文转发装置的结构示意图;图12为本申请实施例提供的一种设备的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。图1为本申请实施例提供的一种bier报文转发方法的步骤流程图,本申请实施例可以适用于bier报文转发的情况,该方法可以由bier报文转发装置来执行,该装置可以通过软件和/或硬件的方式实现,该装置可以集成在发送节点,参见图1,本申请实施例的bier报文转发方法包括:步骤101、在bift(bitindexforwardingtable,位索引转发表)转发表项中设置bier转发邻居节点的节点信息。其中,bift转发表项中包含有bier转发邻居节点的节点信息,bier转发邻居节点可以是转发bier报文的节点,bier转发邻居节点可以与报文发送节点处于直接相邻或不直接相邻状态,报文发送节点可以与bier转发邻居节点进行数据传输,本申请实施例中bier转发邻居节点可以是根据igp(interiorgatewayprotocol,内部网关协议)或者bgp(bordergatewayprotocol,边界网关协议)进行报文转发的bfr(bit-forwardingrouter,位转发路由器)节点。具体的,节点信息可以是转发邻居节点的相关信息,可以包括bier转发邻居节点的标识号和bier转发邻居节点的报文格式标识,其中,报文格式标识可以具体是bnmgl标签。示例性的,bift转发表项中可以包含各bier转发邻居节点的bfr-id,bfr-id可以标识各bier转发邻居节点,用于后续的bier报文转发。进一步的,bier转发邻接节点可以根据接收bier报文中的目标节点继续查找bift转发表项进行报文转发。本申请实施例中,可以在bift转发表项中设置转发bier报文的bier转发邻居节点的节点信息,可以理解的是,bier转发邻居节点可以是与报文发送节点直接相邻或不直接相邻的节点,bier报文可以通过bier转发邻居节点转发到目标节点处,bier转发邻居节点可以与报文发送节点属于相同的网域或者属于不同的网域,图2a和图2b为本申请实施例提供的一种网络拓扑图,参见图2a,报文发送节点10可以位于发送non-mplsbier格式报文的网域中,报文转发节点11可以位于发送mpls格式报文的网域中;参见图2b,报文发送节点10和bier转发邻居节点11可以同时位于发送mpls格式报文的网域中。步骤102、根据所述节点信息确认所述bier转发邻居节点存在处理目标报文格式的能力时,按照所述目标报文格式封装bier报文。其中,目标报文格式可以是将bier报文进行跨网域发送的报文格式,可以通过对non-mplsbier格式报文进行处理生成,例如,可以在bier报文头部增加bnmgl标签的形式生成,目标报文格式的bier报文可以在mpls网域中转发。具体的,bier转发邻居节点在加入sub-domain内构成的网域时,bier转发邻居节点可以具有对目标格式报文的处理能力,bier转发邻居节点声明加入sub-domain构成的网域后,其他通讯节点可以将该bier转发邻居节点的节点信息存储到相应的bift转发表项中,发送节点可以将bier报文按照目标报文格式封装后发送,可以理解的是,bier转发邻居节点可以与发送节点位于相同网域或者位于不同网域。步骤103、将所述bier报文发送至所述bier转发邻居节点。在本申请实施例中,报文发送节点在按照目标报文格式将bier报文封装后,可以将封装后的bier报文发送到bier转发邻居节点。本申请实施例的技术方案,通过在bift转发表项中设置bier转发邻居节点的节点信息,根据节点信息确认bier转发邻居节点存在处理目标报文格式的能力,将bier报文按照目标报文格式封装并进行转发,实现了不同网域下的bier报文转发,可以将non-mplsbier报文承载在mpls隧道上,解决了不同网域下的互联问题,减少了转发协议不兼容导致的通信孤岛。图3为本申请实施例提供的一种bier报文转发方法的步骤流程图,本申请实施例对发送节点加入控制面进行了具体化,参见图3,本申请实施例的bier报文转发方法包括:步骤201、接收至少一个通信节点发送的bier信息,根据各所述bier信息创建相应的bift转发表项。其中,通信节点可以是与报文发送节点进行通信的节点,具体可以是bier转发邻居节点,通信节点发送的bier信息可以是bier转发邻居节点本身的bier信息,也可以是bier转发邻居节点转发的其他通信节点的bier信息,bier信息可以包括bnmgl标签,当bier信息包括bnmgl标签时,该bnmgl标签对应的通信节点可以发送non-mplsbier报文。具体的,在进行bier报文转发之前,参与转发报文的通信节点需要加入同一个sub-domain网域,各通信节点可以向同网域的其他通信节点发送声明,加入sub-domain网域,报文发送节点可以接收相同sub-domain网域的通信节点发送的bier信息,报文发送节点在获取到各通信节点发送的bier信息后,可以将bier信息存储到相应的bift转发表项中以便后续的bier报文转发。示例性的,假设所有通信节点属于同一个igp(ineriorgatewayprotocol内部网关协议)域内,各通信节点在各自节点内部建立<sd,bsl,si>与bift-id的映射,一个通信节点bfr-1可以建立<sd=0,bsl=256,si=0>,对应的bift-id为1。bift-id与<sd,bsl,si>的映射关系可以全局静态配置,此时各节点上维护的bift-id值是一致的,具有全局含义;或者可以通过igp发送到其他通信节点,此时各节点上维护的bift-id值是本地含义的,可以互不相同。各节点在通告自身bier信息时,还可以分配用于转发目标报文格式的bier报文的bnmgl标签一同通告,发送节点可以将接收到的bnmgl标签存储到相应的bift转发表项中。在发送节点上为至其他通信节点而建立的bift转发表项可以表示如下:flag可以是报文格式的封装标识,可以用于确定是否存在处理目标报文格式的能力;inner-label可以是用于报文跨域发送的内部标签;next-hop可以是报文转发的下一跳;fbm可以是包含多个目标节点标识信息的位串。步骤202、将所述通信节点的bier信息继续泛洪到至少一个其他通信节点,以使其他通信节点建立对应的bift转发表项。其中,一个报文发送节点即可以是报文发送节点又可以是报文转发节点,例如,从远端节点经过报文发送节点向另一个远端节点发送bier报文时,该报文发送节点可以为转发节点。在本申请实施例中,报文发送节点在进行bier报文发送之前,也可以将获取到的bier信息继续进行发送,可以将bier信息发送到其他通信节点,可以使得其他通信节点也可根据bier信息建立起bift转发表项,进一步的,报文发送节点也将自身的bier信息进行泛洪,通过将自身的bier信息泛洪到其他节点以加入到相同sub-domain。可以理解的是,其他通讯节点可以根据接收到的bier信息在该通讯节点内建立bift转发表项。步骤203、在bift转发表项中设置bier转发邻居节点的节点信息。一种实施方式中,节点信息至少包括节点标识、路由信息、报文格式标识和bnmgl标签中一种。在本申请实施例中,节点信息可以是转发节点的相关信息,可以包括节点标识、路由信息、报文格式标识和bnmgl标签,其中,节点标识可以是在通信网络中的唯一标识信息,可以用于标识各转发节点,路由信息可以用于描述至该转发节点的转发信息,报文格式标识可以是标识该转发节点处理报文对应的报文格式,例如,flag为采用non-mplsbier封装,可以表示该转发节点可以处理non-mplsbier格式的bier报文。步骤204、若在所述节点信息中包含non-mplsbier报文对应的报文格式标识,则确认所述bier转发邻居节点存在处理所述目标格式报文的能力。具体的,节点信息可以包括目标报文格式的标识,若bift转发表项节点信息中包含non-mplsbier报文的标识,可以确定bier转发邻居节点可以处理non-mplsbier格式的报文,转发节点可以处理目标格式报文解析到其中的non-mplsbier格式报文。步骤205、获取所述节点信息中的bnmgl标签,将所述bnmgl标签与non-mplsbier报文格式的bier报文载荷封装为mpls报文。其中,bnmgl标签可以是本申请实施例中标识同时具有mpls标签报文转发能力和non-mplsbier标签报文的通用标签,可以设置在mpls标签报文的栈底,在bnmgl标签后的载荷可以为non-mplsbier报文。具体的,可以获取到转发节点的bnmgl标签,将bngml标签与non-mplsbier报文格式的bier报文载荷一同进行封装为mpls报文,用于在mpls隧道中发送。示例性的,图4为本申请实施例提供的一种bier报文转发方法的网络拓扑图,参见图4,节点bfir-1、bfr-1、bfr-2、bfer-1和bfer-2加入相同的sub-domain,假设组播源驻留在bfir-1侧,两个组播接收端分别驻留在bfer-1和bfer-2侧。beir-1按照non-mplsbier报文封装方式封装组播流,bierheader中的bitstring包括bfer-1和bfer-2的bfr-id信息。bierheader中的bift-id填写为1,即提示报文接收方按照<sd=0,bsl=256,si=0>解读bitstring。报文向bfr-1发送时,将根据bfir-1上创建的bift表项将non-mplsbier报文直接封装在已升级支持non-mplsbier报文的ethernet头中,etherttype取值为0xab37。报文达到节点bfr-1后,解封装bierheader后发现bitstring包括bfer-1和bfer-2的bfr-id信息,查找并命中相应的bift表项,继续将报文按照non-mplsbier报文封装方式向下游邻居bfr-2发送,此时根据bift表项中的flag提示bier转发邻居节点bfr-2支持non-mplsbier报文格式,则先non-mplsbier报文封装相应的bnmgl标签变成一个mpls报文,然后再封装在至bfr-2的外层单播隧道(可能是一条ldplsp,或rsvp-telsp,或segmentroutinglsp等)中转发。在本申请实施例中,各节点可以通过在igp的prefix可达泛洪报文中包含bier信息,实现加入sub-domain的声明,图5a和图5b为本申请实施例提供的一种泛洪报文的结构示意图,参见图5a,通过isis(intermediatesystemtointermediatesystem,中间系统至中间系统)协议通告bier信息时,可以在bierinfosub-tlv中携带bnmgl标签。参见图5b,通过ospfv2(openshortestpathfirst,开放最短路径优先)协议通告bier信息时,可以在biersub-tlv中携带bnmgl标签。具体的,bnmgl标签可以用来标识转发报文中封装non-mplsbier载荷的标签,在转发报文中bnmgl标签后方封装有non-mplsbier载荷。图6a和图6b,可以是bnmgl在isis协议下和在ospfv2协议下的结构示意图,参见图6a,可以直接将bnmgl信息作isis协议报文中sub-sub-tlvs字段的值,参见图6b,可以直接将bnmgl信息作为ospgv2协议报文中sub-tlvs字段的值。步骤206、将所述bier报文转发至所述bier转发邻居节点。具体的,将封装为mpls格式的bier报文发送到bier转发邻居节点,可以通过bier转发邻居节点将该bier报文转发至接收端。本申请实施例的技术方案,接收通信节点发送的bier信息,并根据bier信息创建相应的bift转发表项,在bitf转发表项中包含bier转发邻居节点的节点信息,若节点信息中包含有non-mplsbier报文对应的报文格式标识,则确定bier转发邻居节点存在处理目标格式报文的能力,将bnmgl标签与non-mplsbier报文格式的bier报文载荷封装为mpls报文并发送到bier转发邻居节点,实现了将non-mplsbier报文承载在mpls隧道发送,解决了报文转发互联互通的问题,减少了转发协议不兼容导致的通信孤岛,增强了bier报文在不同协议下的兼容性。图7为本申请实施例提供的一种bier报文转发方法的步骤流程图,本申请实施例可以适用于bier报文转发的情况,该方法可以由bier报文转发装置来执行,该装置可以通过软件和/或硬件的方式实现,该装置可以集成在转发节点,参见图7,本申请实施例的bier报文转发方法包括:步骤301、接收报文发送节点发送的bier报文。其中,报文发送节点可以是通信网络中组播源的驻留节点,报文发送节点可以向转发节点发送bier报文。具体的,报文转发节点可以接收由报文发送节点发送的bier报文,报文转发节点可以与报文发送节点处于相同网域,也可以处于不同网域,报文发送节点、报文转发节点和报文接收节点可以预先通过igp/bgp协议通告以加入到相同的sub-domain中。步骤302、根据bier报文中的bnmgl标签查找bnmgl入标签映射表项,确定本节点存在对目标报文格式的处理能力时,解析所述bier报文获取目标节点信息。其中,目标报文格式可以是non-mplsbier报文格式。可以在mpls报文的标签栈底部添加bnmgl标签,在bnmgl标签之后跟随non-mplsbier报文载荷。bnmgl入标签映射表项的键值为本转发节点的bnmgl标签。一个发送节点即可以是发送节点又可以是转发节点,例如,从远端节点经过发送节点向另一个远端节点发送bier报文时,该发送节点可以为转发节点。具体的,可以先确定是否存在处理目标报文格式的处理能力,例如,根据转发报文的当前顶层标签查找标签转发表项时能够命中本地的bnmgl入标签映射表项,则可以确定存在处理目标格式的处理能力。可以根据目标报文格式对bier报文进行解析获取到报文载荷中的目标节点信息。例如,先将bnmgl标签弹出,获取标签后方的non-mplsbier报文载荷。示例性的,一种bnmgl入标签映射表项可以表示为如下格式:其中,labeloperation可以是操作类型,flag可以是负载标识,可以用于标识可以处理的报文的操作类型和负载类型,例如,当flag标识为non-mplsbierpayload时,该转发节点可以处理non-mplsbier类型的报文载荷。步骤303、根据所述目标节点信息将所述bier报文转发。本申请实施例的技术方案,通过接收发送节点发送的bier报文,根据bnmgl入标签映射表项中的bnmgl标签确定报文转发节点存在目标报文格式的处理能力时,解析bier报文获取目标节点信息,根据目标节点信息将bier报文转发,实现了不同通信协议的兼容,可以将non-mplsbier报文承载在mpls隧道上,提高了bier报文转发的兼容性,可解决由于通信协议导致的互联互通问题,减少了通信孤岛情况的发生。图8为本申请实施例提供的一种bier报文转发方法的步骤流程图,本申请实施例的技术方案对转发节点加入控制面进行了具体化,参见图8,本申请实施例的bier报文转发方法包括:步骤401、获取至少一个通信节点发送的bier信息,根据各所述bier信息创建相应的bift转发表项。具体的,在进行bier报文转发之前,参与转发报文的通信节点需要加入同一个sub-domain网域,各通信节点可以向同网域的其他通信节点发送声明,加入sub-domain网域,报文转发节点可以接收相同sub-domain网域的通信节点发送的bier信息,报文转发节点在获取到各通信节点发送的bier信息后,可以根据bier信息创建相应的bift转发表项以便后续的bier报文转发。步骤402、将本节点的bier信息泛洪到至少一个其他通信节点,并创建相应的bnmgl入标签映射表项。具体的,报文转发节点可以通过igp/bgp将自身的bier信息泛洪到其他节点以加入相同sub-domain。报文转发节点可以根据自身的bier信息中的bnmgl创建相应的bnmgl入标签映射表项。步骤403、接收报文发送节点发送的bier报文。步骤404、在bnmgl入标签映射表项中查找到所述bier报文内的bnmgl标签,则存在对目标报文格式的处理能力。步骤405、去除所述bier报文内的bnmgl标签,并以non-mplsbier报文格式提取bier报文头,根据bier报文头中的bift-id获取相应的<sd,bsl,si>,然后根据<sd,bsl,si>解析bier报文头中的bitstring获取目标节点信息。具体的,转发节点对bier报文进行解析时,先将bnmgl标签弹出,通过non-mplsbier报文格式获取bift-id,根据bift-id获取到<sd,bsl,si>,按照<sd,bsl,si>解析bitstring信息获取目标节点信息。示例性的,bier报文到达转发节点bfr-2后,根据报文顶层标签bnmgl-200查找并命中上述转发节点的ilm(incominglabelmap,入标签映射)表项,弹掉标签bnmgl-200,继续按照non-mplsbier载荷的格式解读报文,根据bierheader中的bift-id为1,按照<sd=0,bsl=256,si=0>解读bitstring,获取bitstring中包括bfer-1和bfer-2的bfr-id信息作为目标节点信息。步骤406、根据所述目标节点信息将所述bier报文转发。具体的,可以根据目标节点信息在bift转发表项中查找可以转发bier报文的bier转发邻居节点,可以将bier报文转发到该bier转发邻居节点,而可以由bier转发邻居节点继续转发直到转发到目标节点。示例性的,图9为本申请实施例提供的一种bier报文转发方法的网络拓扑图,在完整的mpls域内也可以采取non-mplsbier封装方式以节约标签资源。如图9所示,假设图中所有节点均处于同一个igp域(isislevel或者ospfarea)内,这些节点均使能bier并通过igp泛洪自身加入biersub-domain0的bier信息,biersub-domain0将包含由节点bfir-1、bfr-1、bfer-1、bfer-2及其相连链路组成的区域。假设通过静态配置或者其它动态学习的方式,在biersub-domain0的各节点上建立<sd,bsl,si>与bift-id的映射关系,比如<sd=0,bsl=256,si=0>对应的bift-id为1。bier报文转发方法的具体步骤如下:步骤411,节点bfir-1、bfr-1、bfer-1、bfer-2均通过igp泛洪自身的bier信息,加入biersub-domain0,在通告的bier信息中包含本节点为支持non-mplsbier封装而本地分配的bnmgl标签,比如节点bfr-1分配的bnmgl标签为bnmgl-100,节点bfr-1上将为bnmgl-100建立相应的ilm表项,如下:类似的,节点bfer-1和bfer-2上也分别分配bnmgl标签为bnmgl-1000和bnmgl-2000并建立相应如上ilm表项。步骤412,节点bfr-1上将分别建立至bfer-1和bfer-2的bift表项,这两个bift表项的下一跳均为直连下一跳,由于采用non-mplsbier报文封装方式,并且bfr-1收到了相应下一跳节点的bnmgl通告,所以bfr-1可根据本地策略选择在bift表项中引入bnmgl,而不管bift表项中的下一跳节点是否为直连。上述两bift表项的转发信息可以表示如下:步骤413,类似的,bfir-1也分别建立至bfer-1和bfer-2的bift表项,并根据本地策略选择在bift表项中引入bnmgl,不管bift表项的下一跳是否为直连,如下:步骤414,假设组播源驻留在bfir-1侧,两个组播接收端分别驻留在bfer-1和bfer-2侧。bfir-1上按照non-mplsbier报文封装方式封装组播流,bierheader中的bitstring包括bfer-1和bfer-2的bfr-id信息。bierheader中的bift-id填写为1,即提示报文接收方按照<sd=0,bsl=256,si=0>解读bitstring。报文向bfr-1发送时,根据bfir-1上创建的bift表项,non-mplsbier报文先被封装标签bnmgl-100变成一个mpls报文,然后再封装链路二层头(如ethernet)。步骤415,报文到达节点bfr-1后,根据报文顶层标签bnmgl-100查找并命中上述ilm表项,弹掉标签bnmgl-100,继续按照non-mplsbier载荷的格式解读报文,根据bierheader中的bift-id为1,按照<sd=0,bsl=256,si=0>解读bitstring,发现bitstring中包括bfer-1和bfer-2的bfr-id信息,则继续根据bfr-1上创建的bift表项,报文将被复制两份分别向bfer-1和bfer-2发送,non-mplsbier报文先被封装标签bnmgl-1000(向bfer-1发送时)或bnmgl-2000(向bfer-2发送时)变成一个mpls报文,然后再封装链路二层头(如ethernet)。步骤416,报文分别到达bfer-1和bfer-2后,将按照现有技术解封装non-mplsbier自身封装的内部载荷。本申请实施例的技术方案,报文发送节点通过获取通信节点发送的bier信息建立相应的bift转发表项,报文转发节点将自身的bier信息泛洪到其他通信节点并建立相应的bnmgl入标签映射表项。报文转发节点接收报文发送节点发送的bier报文,根据报文的顶层标签查找对应的bnmgl入标签映射表项以确定对目标报文格式的处理能力,去除bier报文的bnmgl标签,并以non-mplsbier报文格式提取bier报文头,根据bier报文中的bift-id获取相应的<sd,bsl,si>并据此解析bier报文头中的bitstring,获得目标节点信息,根据所述目标节点信息将所述bier报文继续查找bift表转发,实现了不同通信协议的兼容,可以将non-mplsbier报文承载在mpls隧道上,提高了bier报文转发的兼容性,可解决由于通信协议导致的互联互通问题,减少了通信孤岛情况的发生。一种实施方式中,将本节点的bier信息泛洪到至少一个其他通信节点,并创建相应的bnmgl入标签映射表项,包括:分配所述本节点的bnmgl标签,将所述bnmgl标签包含在prefix可达泛洪报文内的bier信息中,将所泛洪报文进行泛洪发送到至少一个通信节点;以所述bnmgl标签为键值创建bnmgl入标签映射表项,其中,所述bnmgl入标签映射表项还包括操作类型和负载标记。具体的,可以将bier信息随prefix可达报文泛洪,实现加入sub-domain的声明,通过isis(intermediatesystemtointermediatesystem,中间系统至中间系统)协议通告bier信息时,可以在bierinfosub-tlv中携带bnmgl标签。通过ospfv2(openshortestpathfirst,开放最短路径优先)协议通告bier信息时,可以在biersub-tlv中携带bnmgl。bnmgl标签可以用于标识转发报文中bnmgl标签后跟随的是non-mplsbier载荷。其中,所述bnmgl入标签映射表项还包括操作类型和负载标记。图10为本申请实施例提供的一种bier报文转发装置的结构示意图,本申请实施例提供的bier报文转发装置可执行本申请任意实施例所提供的bier报文转发方法,具备执行方法的相应功能模块和有益效果。该装置可以由软件和/或硬件实现,该装置可以集成在发送节点中,该装置具体包括:信息查找模块501、报文封装模块502和报文发送模块503。其中,信息查找模块501,用于在bift转发表项中设置bier转发邻居节点的节点信息。报文封装模块502,用于根据所述节点信息确认所述bier转发邻居节点存在处理目标报文格式的能力时,按照所述目标报文格式封装bier报文。报文发送模块503,用于将所述bier报文发送至所述bier转发邻居节点。本申请实施例的技术方案,通过信息查找模块在bift转发表项中查找bier转发邻居节点的节点信息,报文封装模块根据节点信息确认bier转发邻居节点存在处理目标报文格式的能力,将bier报文按照目标报文格式封装,报文发送模块将封装后的报文进行转发,实现了不同网域下的bier报文转发,可以将non-mplsbier报文承载在mpls隧道上,解决了不同网域下的互联问题,减少了转发协议不兼容导致的通信孤岛。一种实施方式中,信息查找模块501中的所述节点信息至少包括节点标识、路由信息、报文格式标识和bnmgl标签中一种。一种实施方式中,报文封装模块502包括:能力确定单元,用于若在所述节点信息中包含non-mplsbier报文对应的报文格式标识,则确认所述bier转发邻居节点存在处理所述目标格式报文的能力。报文封装单元,用于获取所述节点信息中的bnmgl标签,将所述bnmgl标签与non-mplsbier报文格式的bier报文载荷封装为mpls报文。一种实施方式中,bier报文转发装置还包括:转发表项模块,用于接收至少一个通信节点发送的bier信息,根据各所述bier信息创建相应的bift转发表项。信息泛洪模块,用于将所述通信节点的bier信息继续泛洪到至少一个其它通信节点,以使其他通讯节点建立对应的bift转发表项。图11为本申请实施例提供的一种bier报文转发装置的结构示意图,本申请实施例提供的bier报文转发装置可执行本申请任意实施例所提供的bier报文转发方法,具备执行方法的相应功能模块和有益效果。该装置可以由软件和/或硬件实现,该装置可以集成在转发节点中,该装置具体包括:报文接收模块601、信息解析模块602和报文转发模块603。其中,报文接收模块601,用于接收报文发送节点发送的bier报文。信息解析模块602,用于根据bier报文中的bnmgl标签查找bnmgl入标签映射表项,确定本节点存在对目标报文格式的处理能力时,解析所述bier报文获取目标节点信息。报文转发模块603,用于根据所述目标节点信息将所述bier报文转发。本申请实施例的技术方案,通过报文接收模块接收报文发送节点发送的bier报文,信息解析模块确定存在目标报文格式的处理能力时,解析bier报文获取目标节点信息,报文转发模块根据目标节点信息将bier报文转发,实现了不同通信协议的兼容,可以将non-mplsbier报文承载在mpls隧道上,提高了bier报文转发的兼容性,可解决由于通信协议导致的互联互通问题,减少了通信孤岛情况的发生。一种实施方式中,信息解析模块602包括:能力确定单元,用于在bnmgl入标签映射表项中查找到所述bier报文中的bnmgl标签,则存在对目标报文格式的处理能力。信息提取单元,用于去除所述bier报文内的bnmgl标签,并以non-mplsbier报文格式提取bier报文头,根据bier报文头中的bift标识获取相应的<sd,bsl,si>,然后根据<sd,bsl,si>解析bier报文头中的bitstring获取目标节点信息。一种实施方式中,还包括:转发表项模块,用于获取至少一个通信节点发送的bier信息,根据各所述bier信息创建相应的bift转发表项。入标签表项模块,用于将本节点的bier信息泛洪到至少一个其他通信节点,并创建相应的bnmgl入标签映射表项。一种实施方式中,入标签表项模块还包括:通告单元,用于分配所述本节点的bnmgl标签,将所述bnmgl标签包含在prefix可达泛洪报文内的bier信息中,将所泛洪报文进行泛洪发送到至少一个通信节点。标签单元,用于以所述bnmgl标签为键值创建bnmgl入标签映射表项,其中,所述bnmgl入标签映射表项还包括操作类型和负载标记。图12为本申请实施例提供的一种设备的结构示意图,如图12所示,该设备包括处理器70、存储器71、输入装置72和输出装置73;设备中处理器70的数量可以是一个或多个,图12中以一个处理器70为例;设备处理器70、存储器71、输入装置72和输出装置73可以通过总线或其他方式连接,图12中以通过总线连接为例。存储器71作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本申请任意实施例的bier报文转发装置对应的模块(信息查找模块501、报文封装模块502和报文发送模块503,或者,报文接收模块601、信息解析模块602和报文转发模块603)。处理器70通过运行存储在存储器71中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的bier报文转发方法。存储器71可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器71可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器71可进一步包括相对于处理器70远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。输入装置72可用于接收输入的数字或字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入。输出装置73可包括显示屏等显示设备。本申请实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种bier报文转发方法,该方法包括:在bift转发表项中设置bier转发邻居节点的节点信息;根据所述节点信息确认所述bier转发邻居节点存在处理目标报文格式的能力时,按照所述目标报文格式封装bier报文;将所述bier报文发送至所述bier转发邻居节点。或者,接收报文发送节点发送的bier报文;根据bier报文中的bnmgl标签查找bnmgl入标签映射表项,确定本节点存在对目标报文格式的处理能力时,解析所述bier报文获取目标节点信息;根据所述目标节点信息将所述bier报文转发。当然,本申请实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的bier报文转发方法中的相关操作。以上所述,仅为本申请的示例性实施例而已,并非用于限定本申请的保护范围。本领域内的技术人员应明白,术语用户终端涵盖任何适合类型的无线用户设备,例如移动电话、便携数据处理装置、便携网络浏览器或车载移动台。一般来说,本申请的多种实施例可以在硬件或专用电路、软件、逻辑或其任何组合中实现。例如,一些方面可以被实现在硬件中,而其它方面可以被实现在可以被控制器、微处理器或其它计算装置执行的固件或软件中,尽管本申请不限于此。本申请的实施例可以通过移动装置的数据处理器执行计算机程序指令来实现,例如在处理器实体中,或者通过硬件,或者通过软件和硬件的组合。计算机程序指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码。本申请附图中的任何逻辑流程的框图可以表示程序步骤,或者可以表示相互连接的逻辑电路、模块和功能,或者可以表示程序步骤与逻辑电路、模块和功能的组合。计算机程序可以存储在存储器上。存储器可以具有任何适合于本地技术环境的类型并且可以使用任何适合的数据存储技术实现,例如但不限于只读存储器(rom)、随机访问存储器(ram)、光存储器装置和系统(数码多功能光碟dvd或cd光盘)等。计算机可读介质可以包括非瞬时性存储介质。数据处理器可以是任何适合于本地技术环境的类型,例如但不限于通用计算机、专用计算机、微处理器、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(fgpa)以及基于多核处理器架构的处理器。通过示范性和非限制性的示例,上文已提供了对本申请的示范实施例的详细描述。但结合附图和权利要求来考虑,对以上实施例的多种修改和调整对本领域技术人员来说是显而易见的,但不偏离本发明的范围。因此,本发明的恰当范围将根据权利要求确定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1