CN108696438A - Bier报文的转发方法及装置 - Google Patents
Bier报文的转发方法及装置 Download PDFInfo
- Publication number
- CN108696438A CN108696438A CN201710218992.9A CN201710218992A CN108696438A CN 108696438 A CN108696438 A CN 108696438A CN 201710218992 A CN201710218992 A CN 201710218992A CN 108696438 A CN108696438 A CN 108696438A
- Authority
- CN
- China
- Prior art keywords
- forwarding
- bier
- bier messages
- forwarding information
- cache
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
- 238000000034 method Methods 0.000 title claims abstract description 51
- 230000008569 process Effects 0.000 claims description 26
- 239000012634 fragment Substances 0.000 claims description 18
- 230000001934 delay Effects 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 claims 1
- 230000007246 mechanism Effects 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 7
- 235000008694 Humulus lupulus Nutrition 0.000 description 6
- 238000012217 deletion Methods 0.000 description 6
- 230000037430 deletion Effects 0.000 description 6
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000032683 aging Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种BIER报文的转发方法及装置,其中,该方法包括:接收位索引显式复制BIER报文;解析BIER报文得到BIER报文的转发信息;根据转发信息建立与BIER报文对应的高速缓冲存储器cache表项;根据cache表项转发BIER报文。通过本发明,解决了相关技术中BIER报文转发机制性能差的技术问题,提高了BIER报文的转发效率。
Description
技术领域
本发明涉及通信领域,具体而言,涉及一种BIER报文的转发方法及装置。
背景技术
相关技术中,位索引显式复制(Bit Indexed Explicit Replication,简称为BIER)描述了组播数据报文转发的一种新的架构,为组播数据报文在组播域中提供最优路径转发。不需要使用协议建立组播分发树,也不需要中间节点维护任何流状态。当组播报文从域外到达BFIR(Bit-Forwarding Ingress Router,位转发入口路由器)时,BFIR先确定报文将在哪个BIER SD(sub-domain)内发送并发往哪些BFER(Bit-Forwarding EgressRouter,位转发出口路由器)。BFIR然后在报文头中插入“BIER header”,其中包含一个BitString,BitString的每一位表示相应BFER的BFR-id。一个报文能转发至的BFER的个数,取决于BSL(BitString Length,BitString的长度)。有可能,sub-domain中包含的BFER个数会超过BSL,为了支持这种情况,在BIER header中再引入SI(Set Identifier,集合标识)。SI与BitString一起确定报文要转发至哪些BFER。若SI为n,BitString中的第K位为1(记最低位为第1位),则报文将会发给BFR-id为n*BSL+K的BFER。
相关技术中的draft-ietf-bier-architecture-05描述了BIER domain内转发BIER封装报文的规则,为了转发BIER封装的报文,需要:1)确定报文的sub-domain、BSL、BitString、SI,这些信息即确定了报文的目的BFERs集;2)使用sub-domain对应的路由信息,确定至每个BFER的下一跳(有可能某些BFR-id无效或者无可达转发信息,则这些BFR-id的下一跳为空);3)按相同下一跳对BFERs划分;4)对于每个下一跳对应的BitString分片:拷贝报文,清除BitString中不属于该分片内的位,向该下一跳发送报文(下一跳为空的分片被丢弃)。这种转发规则将导致很差的转发性能,因为需要对报文的BitString多次遍历,处理完某个下一跳对应的BitString分片后,才能确定其它下一跳对应的BitString分片。草案中也声明这些规则不代表具体实现,只要具体实现时能达到这些规则的结果即可。
针对相关技术中存在的上述问题,目前尚未发现有效的解决方案。
发明内容
本发明实施例提供了一种BIER报文的转发方法及装置,以至少解决相关技术中BIER报文转发机制性能差的技术问题。
根据本发明的一个实施例,提供了一种BIER报文的转发方法,包括:接收位索引显式复制BIER报文;解析所述BIER报文得到所述BIER报文的转发信息;根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;根据所述cache表项转发所述BIER报文。
可选地,根据所述cache表项转发所述BIER报文包括:根据所述cache表项转发当前的所述BIER报文;在所述BIER报文在下一次转发时,命中所述cache表项的转发信息转发所述BIER报文。
可选地,所述转发信息至少包括:所述BIER报文的下一跳节点,每个下一跳节点对应的位串BitString分片。
可选地,在根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项之后,所述方法还包括以下至少之一:在所述BIER报文的转发信息发生变化时,更新所述cache表项;在所述BIER报文的转发过程中,在预设时间内或预设次数内都未命中所述cache表项时,删除所述cache表项。
可选地,在所述BIER报文的转发信息发生变化时,更新所述cache表项,包括:在所述报文未命中所述cache表项时,确定所述BIER报文的转发信息发生变化;解析所述BIER报文得到所述BIER报文变化后的转发信息;根据变化后的转发信息更新所述cache表项。
根据本发明的另一个实施例,提供了一种BIER报文的转发装置,包括:接收模块,用于接收位索引显式复制BIER报文;解析模块,用于解析所述BIER报文得到所述BIER报文的转发信息;创建模块,用于根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;转发模块,用于根据所述cache表项转发所述BIER报文。
可选地,所述转发模块包括:第一转发单元,用于根据所述cache表项转发当前的所述BIER报文;第二转发单元,用于在所述BIER报文在下一次转发时,命中所述cache表项的转发信息转发所述BIER报文。
可选地,所述转发信息至少包括:所述BIER报文的下一跳节点,每个下一跳节点对应的位串BitString分片。
可选地,所述装置还包括以下至少之一:更新模块,用于在所述创建模块根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项之后,在所述BIER报文的转发信息发生变化时,更新所述cache表项;删除模块,用于在所述创建模块根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项之后,在所述BIER报文的转发过程中,在预设时间内或预设次数内都未命中所述cache表项时,删除所述cache表项。
可选地,所述更新模块包括:确定单元,用于在所述报文未命中所述cache表项时,确定所述BIER报文的转发信息发生变化;解析单元,用于解析所述BIER报文得到所述BIER报文变化后的转发信息;更新单元,用于根据变化后的转发信息更新所述cache表项。
根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:
接收位索引显式复制BIER报文;
解析所述BIER报文得到所述BIER报文的转发信息;
根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;
根据所述cache表项转发所述BIER报文。
通过本发明,接收位索引显式复制BIER报文;解析所述BIER报文得到所述BIER报文的转发信息;根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;根据所述cache表项转发所述BIER报文。通过使用cache表项直接转发BIER报文,解决了相关技术中BIER报文转发机制性能差的技术问题,提高了BIER报文的转发效率。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的BIER报文的转发方法的流程图;
图2是根据本发明实施例的BIER报文的转发装置的结构框图;
图3是本发明实施例的cache表项结构示意图;
图4是本发明实施例的BIER报文转发示意图;
图5是本发明实施例的cache表项建立示意图;
图6是本发明实施例的cache表项更新示意图;
图7是本发明实施例的cache表项老化删除示意图;
图8是实施例的网络拓扑图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
实施例1
在本实施例中提供了一种BIER报文的转发方法,图1是根据本发明实施例的BIER报文的转发方法的流程图,如图1所示,该流程包括如下步骤:
步骤S102,接收位索引显式复制BIER报文;
步骤S104,解析BIER报文得到BIER报文的转发信息;
步骤S106,根据转发信息建立与BIER报文对应的高速缓冲存储器cache表项;
步骤S108,根据cache表项转发BIER报文。
通过上述步骤,接收位索引显式复制BIER报文;解析所述BIER报文得到所述BIER报文的转发信息;根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;根据所述cache表项转发所述BIER报文。通过使用cache表项直接转发BIER报文,解决了相关技术中BIER报文转发机制性能差的技术问题,提高了BIER报文的转发效率。
可选地,上述步骤的执行主体可以为组播路由器等,但不限于此。
可选的,根据cache表项转发BIER报文包括:
S11,根据cache表项转发当前的BIER报文;
S12,在BIER报文在下一次转发时,命中cache表项的转发信息转发BIER报文。
可选的,本实施例的转发信息至少包括:BIER报文的下一跳节点,每个下一跳节点对应的位串BitString分片。具体的cache表项的关键字可以为{SI,BSL,Entropy,BitString},或者基于{SI,BSL,Entropy,BitString}计算得到的压缩信息,比如采用HASH算法。
在根据本实施例的可选实施方式中,在根据转发信息建立与BIER报文对应的高速缓冲存储器cache表项之后,方法还包括以下至少之一:
S13,在BIER报文的转发信息发生变化时,更新cache表项;
S14,在BIER报文的转发过程中,在预设时间内或预设次数内都未命中cache表项时,删除cache表项。
具体的,更新cache表项的过程包括:
S21,在报文未命中cache表项时,确定BIER报文的转发信息发生变化;
S22,解析BIER报文得到BIER报文变化后的转发信息;
S23,根据变化后的转发信息更新cache表项。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
实施例2
在本实施例中还提供了一种BIER报文的转发装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图2是根据本发明实施例的BIER报文的转发装置的结构框图,如图2所示,该装置包括:
接收模块20,用于接收位索引显式复制BIER报文;
解析模块22,用于解析BIER报文得到BIER报文的转发信息;
创建模块24,用于根据转发信息建立与BIER报文对应的高速缓冲存储器cache表项;
转发模块26,用于根据cache表项转发BIER报文。
可选的,转发模块包括:第一转发单元,用于根据cache表项转发当前的BIER报文;第二转发单元,用于在BIER报文在下一次转发时,命中cache表项的转发信息转发BIER报文。
在本实施例中,转发信息至少包括:BIER报文的下一跳节点,每个下一跳节点对应的位串BitString分片。
可选的,装置还包括以下至少之一:更新模块,用于在创建模块根据转发信息建立与BIER报文对应的高速缓冲存储器cache表项之后,在BIER报文的转发信息发生变化时,更新cache表项;删除模块,用于在创建模块根据转发信息建立与BIER报文对应的高速缓冲存储器cache表项之后,在BIER报文的转发过程中,在预设时间内或预设次数内都未命中cache表项时,删除cache表项。
可选的,更新模块包括:确定单元,用于在报文未命中cache表项时,确定BIER报文的转发信息发生变化;解析单元,用于解析BIER报文得到BIER报文变化后的转发信息;更新单元,用于根据变化后的转发信息更新cache表项。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
实施例3
本实施例描述了一种基于cache的BIER报文转发方法,可以提升BIER封装报文的转发性能。本实施例所描述的方法不能简单的认为是违背BIER架构避免在中间节点上维护流状态,它并没有在控制平面引入组播协议用于维护具体组播业务流的状态以及下发转发平面,而是转发面将与具体组播业务无关的BIER封装的转发结果进行cache。
本实施例采用以下技术方案:在转发规则中增加cache环节,特定的BIER报文在首次转发时按照draft-ietf-bier-architecture-05定义的常规转发流程,解析出报文将向哪些下一跳转发以及每个下一跳对应的BitString分片;然后建立该特定BIER报文相应的cache表项,表项中包含上述解析得到转发信息;该特定的BIER报文在下一次转发时,将直接命中cache表项,根据cache表项中给出的下一跳以及每个下一跳对一个的BitString分片快速的转发,略过draft-ietf-bier-architecture-05定义的常规转发流程;当BFR-id或者拓扑发生变化时,及时更新cache表项;当某个cache表项长时间没有被命中时,将根据策略超时老化。
本实施例的一种基于cache的BIER报文转发方法包括以下步骤:
转发平面在转发BIER封装的报文时,首先根据draft-ietf-bier-architecture-05与draft-ietf-bier-mpls-encapsulation-06定义的常规转发流程(以下简称常规转发流程),解析出报文所属的SD,以及报文的SI、BSL、BitString、Entropy、TTL等信息。若根据常规转发流程,报文需要丢弃(比如因为TTL<1),则报文丢弃,或需要终结上送控制平面(比如因为TTL=1),则报文终结上送,禁止转发;否则如果报文需要继续按照BitString包含的信息转发,则直接根据{SD,SI,BSL,Entropy,BitString}去该SD对应的cache表中尝试命中某个cache表项。如果命中,则根据命中的cache表项中包含的转发信息直接转发,略过常规转发流程;如果没有命中,则继续按照常规转发流程转发报文,并且向控制平面上报一个“cache未命中{SD,SI,BSL,Entropy,BitString}”的事件。控制平面收到该事件后将在该SD对应的cache表中新建相应的cache表项,cache表项的关键字可以为{SI,BSL,Entropy,BitString}或者基于{SI,BSL,Entropy,BitString}计算得到的压缩信息(比如采用HASH算法),cache表项的转发信息将根据常规转发流程包含报文要发往的所有下一跳以及每个下一跳对应的BitString分片,特别是下一跳如果为空则表示报文要丢弃。控制平面将新建的cache表项向转发平面下发,转发平面将之放入该SD对应的cache表中。转发平面为每个SD都维护相应的cache表。
需要说明的是,某些特殊的转发硬件可能直接自己产生cache表项,而不需要向控制平面上报事件。
根据draft-ietf-bier-architecture-05,控制平面维护了每个下一跳对应的F-BM(Forwarding Bit Mask,转发位掩码)信息,即最短路径转发时每个下一跳可达的所有BFER信息。在感知拓扑变化或者BFR-id发生变化时,将实时更新每个下一跳对应的F-BM信息并向转发平面下发最新的BIFT(Bit Index Forwarding Table,位索引转发表)表。除此之外,本专利还要求当下一跳对应的F-BM发生变化并且旧的F-BM中包含的一些BFER不再包含在新的F-BM中时,甚至下一跳本身不再可用时,需要检查有哪些cache表项的转发信息中包含了该下一跳,如果包含了,则这些cache表项的转发信息需要重新根据常规转发流程计算,并将更新后的cache表项向转发平面下发更新。注意如果下一跳对应的F-BM虽然发生了变化,但只不过是新的F-BM包含了旧F-BM包含的BFER以及其它更多的BFER,则无需检查cache表项。
转发平面可以和控制平面一起对那些长期未被命中的cache表项做超时老化,这个可以配置策略,比如超过一个小时未被命中即可删除,以节约cache表的资源。具体可以为,转发平面在每个cache表项中设置一个命中统计计数字段,每次被命中时自增1(若计数发生翻转,则直接翻转为1,不要翻转为0),并定期(比如每隔一小时)将其拥有的cache表项分批上次上报给控制平面,上报时只需要包含cache表项的关键字以及其命中统计计数值。控制平面对那些命中统计计数值为0的cache表项执行删除,并向转发平面下发删除;控制平面对那些命中统计计数值不为0的cache表项,将其统计计数值修改为0,然后向转发平面下发更新。
图3是本发明实施例的cache表项结构示意图,如图3所示的cache表项结构示意图,在转发平面,为每个BIER sub-domain维护相应的cache表。如图中描述了sub-domain 0内的具体cache表项,cache表项有两类关键字,一类是原始关键字如{SI,BSL,Entropy,BitString},一类是基于原始关键字计算得到的压缩关键字如cache id。BIER sub-domain内的BIER报文在尝试命中cache表项时,可以先根据报文相关的{SI,BSL,Entropy,BitString}进行压缩计算,得到相应的cache id,然后去查找该sub-domain对应的cache表。具体压缩算法不在本专利讨论范围内,但是建议不同的{SI,BSL,Entropy,BitString}要能尽量计算得到不同的cache id,否则相同的cache id下将会有多个{SI,BSL,Entropy,BitString}对应的子表项,此时报文需要再根据{SI,BSL,Entropy,BitString}去匹配看真正命中哪个cache子表项,比如cache id=200时包含了多个子表项。cache表项中包含的转发信息给出了相应BIER报文按照常规转发流程欲发往的所有下一跳以及下一跳对应的BitString分片,如cache id=100的表项中,报文需发往{nexthop1,port1},该下一跳对应的BitString分片为Sub-BitString_1,也需发往{nexthop2,port2},该下一跳对应的BitString分片为Sub-BitString_2,等等。相应下一跳对应的BIFT-id字段与draft-ietf-bier-mpls-encapsulation-06定义的BIER Header中的BIFT-id含义相同,即表示该下一跳为相应{SD,SI,BSL}分配的MPLS Label(MPLS网络时)或者全局为相应{SD,SI,BSL}分配的BIFT-id(非MPLS网络时)。当下一跳是非直连邻居时,报文转发时还需要迭代外层隧道。
可选的,本实施方式也可以稍作变动,不将Entropy作为cache关键字之一,而是在cache表项的转发信息中,再根据Entropy取值不同维护多组转发信息,报文命中cache后,再根据报文BIER Header中的Entropy从命中的cache表项中获取相应的那套转发信息。
图4是本发明实施例的BIER报文转发示意图,如图4所示的BIER报文转发示意图,具体的:
步骤S210,转发平面收到BIER封装的报文,这可能是从本节点的控制平面收到的或者从其它节点收到的。
步骤S220,转发平面先按照常规转发流程解析出具体的BIER封装信息,如SD、SI、BSL、BitString、Entropy、TTL等信息。
步骤S230,转发平面继续按照常规转发流程,判断报文TTL是否小于等于1,以确定报文是否需要继续转发。
步骤S240,若TTL小于1则报文丢弃,若等于1则报文上送控制平面,都不能继续转发。
步骤S250,若TTL>1,则表明报文可以继续转发。此时不走常规转发流程,而是根据{SI,BSL,Entropy,BitString}计算压缩后的cache id,根据cache id去该SD对应的cache表中查找是否存在相应的cache表项。
步骤S260,若命中cache表项,则报文将直接按照cache表项中给出的转发信息转发,即报文向转发信息中包含的所有下一跳转发,根据给出的下一跳对应的BitString分片以及BIFT-id封装相应的BIER Header,BIER Header中的其它字段赋值与常规转发流程无异,此处不赘述。
步骤S270,若没有命中cache表项,则报文继续按照常规转发流程转发。同时向控制平面上报一个“cache未命中{SD,SI,BSL,Entropy,BitString}”的事件。
图5是本发明实施例的cache表项建立示意图,如图5所示的cache表项建立示意图,具体的:
步骤S310,控制平面收到转发平面上报的“cache未命中{SD,SI,BSL,Entropy,BitString}”的事件。
步骤S320,控制面查找是否已经存在有相应cache表项。控制面同样根据{SI,BSL,Entropy,BitString}计算压缩后的cache id,根据cache id去该SD对应的cache表中查找是否存在相应的cache表项。
步骤S330,如果cache表项不存在,则控制平面新建相应的cache表项,其中包含的转发信息是控制平面根据常规转发流程获得的报文欲发往哪些下一跳以及各下一跳对应的BitString分片和BIFT-id。
步骤S340,控制平面向转发平面下发新建的cache表项,或者如果cache表项已经存在时向转发平面下发已存在的cache表项。
图6是本发明实施例的cache表项更新示意图,如图6所示的cache表项更新示意图,具体的:
步骤S410,控制平面感知拓扑发生变化或者BFR-id信息发生变化。
步骤S420,控制平面更新每个下一跳对应的F-BM信息。可能新的F-BM不再包含旧F-BM所包含的BFER,甚至该下一跳本身不再可用,这两种都属于不兼容变化。还有一种变化是兼容变化,即新的F-BM里包含旧F-BM所包含的所有BFER以及其它额外的BFER。
步骤S430,对于某个下一跳其对应F-BM发生了不兼容变化时,触发那些转发信息中包含有该下一跳的cache表项重新计算转发信息。
步骤S440,对于重新计算了转发信息的cache表项,将向转发平面下发更新。
图7是本发明实施例的cache表项老化删除示意图,如图7所示的cache表项老化删除示意图,具体的:
步骤S510,转发平面定期(根据策略配置,比如每隔一个小时或每隔一天)将其拥有的所有cache表项上报控制平面。上报时可以只包含cache关键字和命中统计计数字段。
步骤S520,控制平面检查上报的cache表项的命中统计计数值是否为0。
步骤S530,如果命中统计计数值为0,则控制平面删除其维护的相同关键字的cache表项,并向转发平面下发删除。
步骤S540,如果命中统计计数值不为0,则控制平面将相应cache表项的命中统计计数值修改为0后向转发平面下发更新。
注意控制平面向转发平面下发新建的cache表项时,其命中统计计数值初始为0。
本实施还包括多个具体实施例,用于结合具体的使用场景对本申请进行详细说明:
具体实施例一
图8是实施例的网络拓扑图,如图8所示,BIER sub-domain 0内,节点A上需要将组播报文发往4个BFER:G、H、J、K,其中至G、H的下一跳为B,至J、K的下一跳为C,则节点A的控制平面将构造BIER封装的报文,BIER Header的关键字段比如如下:
TTL:255
BSL:64
Entropy:0
BFIR-id:A
BitString:{G,H,J,K}
该BIER封装的报文由于是首次发送,在转发平面尝试命中cache时失败,所以将被转发平面首次按照常规转发流程分别向下一跳B和下一跳C复制。
向下一跳B复制的报文的BIER Header的关键字段如下:
BIFT-id:label_B
TTL:255
BSL:64
Entropy:0
BFIR-id:A
BitString:{G,H}
向下一跳C复制的报文的BIER Header的关键字段如下:
BIFT-id:label_C
TTL:255
BSL:64
Entropy:0
BFIR-id:A
BitString:{J,K}
由于命中cache失败,转发平面同时会向控制平面上报一个“cache未命中{SD=0,SI=0,BSL=64,Entropy=0,BitString={G,H,J,K}}”的事件。控制平面收到后,在SD 0内新建相应的cache表项,比如如下:
cache id:100
cache key:SI=0,BSL=64,Entropy=0,BitString={G,H,J,K}
forwarding info:
nexthop1:nexthop=B,BIFT-id=label_B,sub-BitString={G,H}
nexthop2:nexthop=C,BIFT-id=label_C,sub-BitString={J,K}
控制平面将上述cache表项向转发平面下发,后续同样的组播报文将直接在转发平面命中cache表项被快速的转发。
具体实施例二
本实施例是在具体实施例一的基础上,描述拓扑发生变化时,cache表项如何更新。如图8所示,当链路B-D发生故障时,A节点上至G、H的下一跳将从B改为C,即故障发生前,下一跳B的F-BM为{G,H,I},C的F-BM为{I,J,K},而故障发生后,下一跳B的F-BM为空,C的F-BM为{G,H,I,J,K},则下一跳B的F-BM发生了不兼容变化,下一跳C的F-BM发生了兼容变化。
针对下一跳B的F-BM发生的不兼容变化,控制平面检查发现cache id=100的表项中包含有下一跳B,则触发该表项重新计算转发信息,更新为:
cache id:100
cache key:SI=0,BSL=64,Entropy=0,BitString={G,H,J,K}
forwarding info:
nexthop1:nexthop=C,BIFT-id=label_C,sub-BitString={G,H,J,K}
控制平面将上述更新的cache表项重新下发至转发平面。
具体实施例三
本实施例是在具体实施例一的基础上,描述负载均衡的转发效果。如图8所示,BFER I节点也加入到接收组播流的队伍中,A节点上至目的节点I存在两个下一跳B、C形成负载分担,A可以通过设置报文BIER Header中的Entropy值来控制报文走B或者C到达目的节点I。比如Entropy值为0时,报文走B,Entropy值为1时,报文走C。
与具体实施例一类似,控制平面可以构造如下BIER封装的报文,BIER Header的关键字段如下:
TTL:255
BSL:64
Entropy:0
BFIR-id:A
BitString:{G,H,I,J,K}
以及构造如下BIER封装的报文,BIER Header的关键字段如下:
TTL:255
BSL:64
Entropy:1
BFIR-id:A
BitString:{G,H,I,J,K}
这两份报文的BIER Header的区别是Entropy不相同。
对于第一份报文,转发面首次转发它时将按照常规转发流程转发之,具体为,向下一跳B复制的报文的BIER Header的关键字段如下:
BIFT-id:label_B
TTL:255
BSL:64
Entropy:0
BFIR-id:A
BitString:{G,H,I}
向下一跳C复制的报文的BIER Header的关键字段如下:
BIFT-id:label_C
TTL:255
BSL:64
Entropy:0
BFIR-id:A
BitString:{J,K}
并上报控制平面相应的cache未命中事件,使得控制平面新建相应的cache表项,如下:
cache id:200
cache key:SI=0,BSL=64,Entropy=0,BitString={G,H,I,J,K}
forwarding info:
nexthop1:nexthop=B,BIFT-id=label_B,sub-BitString={G,H,I}
nexthop2:nexthop=C,BIFT-id=label_C,sub-BitString={J,K}
控制平面将上述cache表项向转发平面下发,后续同样的组播报文将直接在转发平面命中cache表项被快速的转发。
同理,对于第二份报文,转发面首次转发它时将按照常规转发流程转发之,具体为,向下一跳B复制的报文的BIER Header的关键字段如下:
BIFT-id:label_B
TTL:255
BSL:64
Entropy:1
BFIR-id:A
BitString:{G,H}
向下一跳C复制的报文的BIER Header的关键字段如下:
BIFT-id:label_C
TTL:255
BSL:64
Entropy:1
BFIR-id:A
BitString:{I,J,K}
并上报控制平面相应的cache未命中事件,使得控制平面新建相应的cache表项,如下:
cache id:300
cache key:SI=0,BSL=64,Entropy=1,BitString={G,H,I,J,K}
forwarding info:
nexthop1:nexthop=B,BIFT-id=label_B,sub-BitString={G,H}
nexthop2:nexthop=C,BIFT-id=label_C,sub-BitString={I,J,K}
控制平面将上述cache表项向转发平面下发,后续同样的组播报文将直接在转发平面命中cache表项被快速的转发。
通过本发明实施例的方案,提供一种提升BIER报文转发性能的方法,解决了相关技术中BIER报文转发机制性能很差的问题。
实施例4
本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:
S1,接收位索引显式复制BIER报文;
S2,解析所述BIER报文得到所述BIER报文的转发信息;
S3,根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;
S4,根据所述cache表项转发所述BIER报文。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行接收位索引显式复制BIER报文;
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行解析所述BIER报文得到所述BIER报文的转发信息;
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;
可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行根据所述cache表项转发所述BIER报文。
可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种BIER报文的转发方法,其特征在于,包括:
接收位索引显式复制BIER报文;
解析所述BIER报文得到所述BIER报文的转发信息;
根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;
根据所述cache表项转发所述BIER报文。
2.根据权利要求1所述的方法,其特征在于,根据所述cache表项转发所述BIER报文包括:
根据所述cache表项转发当前的所述BIER报文;
在所述BIER报文在下一次转发时,命中所述cache表项的转发信息转发所述BIER报文。
3.根据权利要求1所述的方法,其特征在于,所述转发信息至少包括:所述BIER报文的下一跳节点,每个下一跳节点对应的位串BitString分片。
4.根据权利要求1所述的方法,其特征在于,在根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项之后,所述方法还包括以下至少之一:
在所述BIER报文的转发信息发生变化时,更新所述cache表项;
在所述BIER报文的转发过程中,在预设时间内或预设次数内都未命中所述cache表项时,删除所述cache表项。
5.根据权利要求4所述的方法,其特征在于,在所述BIER报文的转发信息发生变化时,更新所述cache表项,包括:
在所述报文未命中所述cache表项时,确定所述BIER报文的转发信息发生变化;
解析所述BIER报文得到所述BIER报文变化后的转发信息;
根据变化后的转发信息更新所述cache表项。
6.一种BIER报文的转发装置,其特征在于,包括:
接收模块,用于接收位索引显式复制BIER报文;
解析模块,用于解析所述BIER报文得到所述BIER报文的转发信息;
创建模块,用于根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项;
转发模块,用于根据所述cache表项转发所述BIER报文。
7.根据权利要求6所述的装置,其特征在于,所述转发模块包括:
第一转发单元,用于根据所述cache表项转发当前的所述BIER报文;
第二转发单元,用于在所述BIER报文在下一次转发时,命中所述cache表项的转发信息转发所述BIER报文。
8.根据权利要求6所述的装置,其特征在于,所述转发信息至少包括:所述BIER报文的下一跳节点,每个下一跳节点对应的位串BitString分片。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括以下至少之一:
更新模块,用于在所述创建模块根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项之后,在所述BIER报文的转发信息发生变化时,更新所述cache表项;
删除模块,用于在所述创建模块根据所述转发信息建立与所述BIER报文对应的高速缓冲存储器cache表项之后,在所述BIER报文的转发过程中,在预设时间内或预设次数内都未命中所述cache表项时,删除所述cache表项。
10.根据权利要求9所述的装置,其特征在于,所述更新模块包括:
确定单元,用于在所述报文未命中所述cache表项时,确定所述BIER报文的转发信息发生变化;
解析单元,用于解析所述BIER报文得到所述BIER报文变化后的转发信息;
更新单元,用于根据变化后的转发信息更新所述cache表项。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710218992.9A CN108696438A (zh) | 2017-04-05 | 2017-04-05 | Bier报文的转发方法及装置 |
PCT/CN2018/080637 WO2018184487A1 (zh) | 2017-04-05 | 2018-03-27 | Bier报文的转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710218992.9A CN108696438A (zh) | 2017-04-05 | 2017-04-05 | Bier报文的转发方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108696438A true CN108696438A (zh) | 2018-10-23 |
Family
ID=63712332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710218992.9A Withdrawn CN108696438A (zh) | 2017-04-05 | 2017-04-05 | Bier报文的转发方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN108696438A (zh) |
WO (1) | WO2018184487A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187647A (zh) * | 2019-07-05 | 2021-01-05 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
WO2021109744A1 (zh) * | 2019-12-02 | 2021-06-10 | 中兴通讯股份有限公司 | 数据压缩方法、装置、网络设备及存储介质 |
CN113014486A (zh) * | 2019-12-20 | 2021-06-22 | 中兴通讯股份有限公司 | 一种bier报文转发方法、装置、设备和存储介质 |
WO2021196717A1 (zh) * | 2020-04-03 | 2021-10-07 | 中兴通讯股份有限公司 | 组播流量传输方法、装置、通信节点及存储介质 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115473847A (zh) * | 2021-06-10 | 2022-12-13 | 中兴通讯股份有限公司 | 转发方法、转发系统、电子设备和计算机可读存储介质 |
CN115314436B (zh) * | 2022-07-11 | 2023-05-23 | 烽火通信科技股份有限公司 | 一种bier报文转发方法及装置 |
CN115460133B (zh) * | 2022-08-12 | 2023-11-03 | 烽火通信科技股份有限公司 | 一种bier组播的硬件学习及转发的方法、装置及设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160119159A1 (en) * | 2014-10-24 | 2016-04-28 | Futurewei Technologies, Inc. | Bit Index Explicit Replication Forwarding Using Replication Cache |
CN105556899A (zh) * | 2013-09-17 | 2016-05-04 | 思科技术公司 | 位索引显式复制 |
CN105743793A (zh) * | 2014-12-31 | 2016-07-06 | 瞻博网络公司 | 用于网络设备组件的比特索引显式复制(bier)转发 |
CN105933228A (zh) * | 2015-02-26 | 2016-09-07 | 思科技术公司 | 用于位索引显式复制的流量工程 |
CN106341327A (zh) * | 2015-07-08 | 2017-01-18 | 中兴通讯股份有限公司 | 一种bier报文的传输方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104811387B (zh) * | 2014-01-24 | 2018-06-01 | 思科技术公司 | 具有位索引显式复制的等价多路径 |
US9432205B2 (en) * | 2014-11-04 | 2016-08-30 | Telefonaktiebolaget L M Ericsson (Publ) | Explicit block encoding of multicast group membership information with bit index explicit replication (BIER) |
CN106330718B (zh) * | 2016-08-23 | 2019-08-06 | 新华三技术有限公司 | 组播报文转发方法及装置 |
-
2017
- 2017-04-05 CN CN201710218992.9A patent/CN108696438A/zh not_active Withdrawn
-
2018
- 2018-03-27 WO PCT/CN2018/080637 patent/WO2018184487A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105556899A (zh) * | 2013-09-17 | 2016-05-04 | 思科技术公司 | 位索引显式复制 |
US20160119159A1 (en) * | 2014-10-24 | 2016-04-28 | Futurewei Technologies, Inc. | Bit Index Explicit Replication Forwarding Using Replication Cache |
CN105743793A (zh) * | 2014-12-31 | 2016-07-06 | 瞻博网络公司 | 用于网络设备组件的比特索引显式复制(bier)转发 |
CN105933228A (zh) * | 2015-02-26 | 2016-09-07 | 思科技术公司 | 用于位索引显式复制的流量工程 |
CN106341327A (zh) * | 2015-07-08 | 2017-01-18 | 中兴通讯股份有限公司 | 一种bier报文的传输方法及系统 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112187647A (zh) * | 2019-07-05 | 2021-01-05 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
WO2021004156A1 (zh) * | 2019-07-05 | 2021-01-14 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
CN112187647B (zh) * | 2019-07-05 | 2021-12-14 | 华为技术有限公司 | 报文转发方法、设备及计算机可读存储介质 |
EP3979576A4 (en) * | 2019-07-05 | 2022-08-10 | Huawei Technologies Co., Ltd. | METHOD FOR TRANSFERRING PACKET, DEVICE, AND COMPUTER READABLE STORAGE MEDIA |
WO2021109744A1 (zh) * | 2019-12-02 | 2021-06-10 | 中兴通讯股份有限公司 | 数据压缩方法、装置、网络设备及存储介质 |
CN113014486A (zh) * | 2019-12-20 | 2021-06-22 | 中兴通讯股份有限公司 | 一种bier报文转发方法、装置、设备和存储介质 |
CN113014486B (zh) * | 2019-12-20 | 2023-08-01 | 中兴通讯股份有限公司 | 一种bier报文转发方法、装置、设备和存储介质 |
US12192092B2 (en) | 2019-12-20 | 2025-01-07 | Zte Corporation | BIER packet forwarding method, device, apparatus, and storage medium |
WO2021196717A1 (zh) * | 2020-04-03 | 2021-10-07 | 中兴通讯股份有限公司 | 组播流量传输方法、装置、通信节点及存储介质 |
US12206577B2 (en) | 2020-04-03 | 2025-01-21 | Zte Corporation | Multicast traffic transmission method and apparatus, communication node, and storage medium |
Also Published As
Publication number | Publication date |
---|---|
WO2018184487A1 (zh) | 2018-10-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11082342B2 (en) | System and method to facilitate content forwarding using Bit Index Explicit Replication (BIER) in an Information-Centric Networking (ICN) environment | |
CN108696438A (zh) | Bier报文的转发方法及装置 | |
US7826451B2 (en) | Method of stateless group communication and repair of data packets transmission to nodes in a distribution tree | |
US20160182680A1 (en) | Interest acknowledgements for information centric networking | |
CN110401599B (zh) | 数据包的处理方法及装置、存储介质、电子装置 | |
US9973400B2 (en) | Network flow information collection method and apparatus | |
WO2018032961A1 (zh) | 一种管理信息的方法,装置及系统 | |
US9407549B2 (en) | System and method for hash-based forwarding of packets with hierarchically structured variable-length identifiers | |
WO2018032962A1 (zh) | 一种信息同步的方法,装置及系统 | |
US10791051B2 (en) | System and method to bypass the forwarding information base (FIB) for interest packet forwarding in an information-centric networking (ICN) environment | |
US9130887B2 (en) | Hash-based forwarding of packets with hierarchically structured variable-length identifiers over ethernet | |
Marandi et al. | BFR: a bloom filter-based routing approach for information-centric networks | |
US10979340B2 (en) | Link state addition and deletion based on reception of a single message in link state vector routing | |
WO2017190559A1 (zh) | 路由查找方法、装置、分配节点、查找节点及入口节点 | |
CN101932065A (zh) | 分布式卫星网络资源发现方法 | |
CN114025020B (zh) | 一种基于二分法的命名数据网络缓存方法 | |
Marandi et al. | A comparative analysis of bloom filter-based routing protocols for information-centric networks | |
CN106657181A (zh) | 一种基于内容中心网络的数据推送方法 | |
Zhang et al. | Reverse-trace routing scheme in content centric networking | |
Yan et al. | A forwarding strategy of counteracting redundancy data in named data networking | |
CN114257654B (zh) | 一种基于分级思想的命名数据网络顺序缓存方法 | |
Shi | Named data networking in local area networks | |
CN114041279B (zh) | 用于对igp分区进行抽象化的系统和方法 | |
US20050071497A1 (en) | Method of establishing transmission headers for stateless group communication | |
Tokunaga et al. | A Link State Routing Method for CCN with Blockchain |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181023 |