CN110650094A - 一种发送报文的方法、设备和系统 - Google Patents

一种发送报文的方法、设备和系统 Download PDF

Info

Publication number
CN110650094A
CN110650094A CN201810678773.3A CN201810678773A CN110650094A CN 110650094 A CN110650094 A CN 110650094A CN 201810678773 A CN201810678773 A CN 201810678773A CN 110650094 A CN110650094 A CN 110650094A
Authority
CN
China
Prior art keywords
forwarding
packet
entry
message
entries
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.)
Granted
Application number
CN201810678773.3A
Other languages
English (en)
Other versions
CN110650094B (zh
Inventor
谢经荣
夏阳
闫刚
庄顺万
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810678773.3A priority Critical patent/CN110650094B/zh
Priority to CN202110824494.5A priority patent/CN113726666B/zh
Priority to EP19827130.6A priority patent/EP3806409A4/en
Priority to PCT/CN2019/091437 priority patent/WO2020001299A1/zh
Publication of CN110650094A publication Critical patent/CN110650094A/zh
Priority to US17/135,698 priority patent/US11627084B2/en
Application granted granted Critical
Publication of CN110650094B publication Critical patent/CN110650094B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/15Interconnection of switching modules
    • H04L49/1553Interconnection of ATM switching modules, e.g. ATM switching fabrics
    • H04L49/1569Clos switching fabrics

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种发送报文的方法,该方法包括第一设备生成包含BIER头的第一报文。该BIER头包含Entropy,其中,所述Entropy包括第一部分和第二部分。第一设备根据所述第一报文的目的地址确定存在多条用于转发第一报文的转发表项。第一设备根据第一部分从多条转发表项中选择一条转发表项,所选择的转发表项包含第二设备的地址,所述第二设备为所述第一设备的下一跳设备。第一设备向第二设备发送第一报文,其中,第二部分用于第二设备从多条用于转发第一报文的转发表项中选择第二设备转发第一报文的转发表项。通过上述方法,能够根据Entropy的不同部分,灵活实现对数据流的多级负载分担。

Description

一种发送报文的方法、设备和系统
技术领域
本发明涉及通信技术领域,尤其涉及一种发送报文的方法、设备和系统。
背景技术
比特索引的显示复制(英文:Bit Index Explicit Republication,简称:BIER)是在2014年的因特网工程任务组(英文:Internet Engineering Task Force,简称:IETF)讨论产生的一种组播转发技术。在征求意见稿(英文:Requirement For Comments,简称:RFC)8279中,BIER头部的熵(英文:Entropy)值被定义用于流量负载分担,例如,在图1所示的系统100中,设备A、D、E和F是BIER域的边缘节点,当第一流量和第二流量都需要由设备A发给设备F时,设备A可以对第一流量封装BIER头时将Entropy填写为数值1,对第二流量封装BIER头时将Entropy填写为数值2,这样设备B在接收到第一流量和第二流量时会根据Entropy值的不同使得第一流量依次经过设备A、B、C和F到达设备F,而让第二流量依次经过A、B、E和F到达设备F,从而实现流量的负载分担。
随着多级网络的快速发展和广泛应用,例如在数据中心CLOS网络,该网络中的每级设备的数量达到两个以上,即每级网络中的设备都存在多条等价路径,上述方法并不能使多级网络中的每级网络设备都进行灵活的负载分担。
发明内容
本申请实施例提供了一种发送报文的方法、设备和系统,以根据BIER头的Entropy的不同部分来实现不同设备上的负载分担转发,使多级网络中的每级设备都能根据同一个Entropy的不同部分,灵活实现数据流的负载分担。
第一方面,本申请提供了一种发送报文的方法,该方法包括第一设备生成包含BIER头的第一报文。该BIER头包含熵Entropy。该Entropy用于沿着转发路径转发第一报文,其中,该Entropy包含第一部分和第二部分。第一部分与第二部分不同。第一设备根据第一报文的目的地址,确定存在多条用于转发所述第一报文的转发表项。第一设备根据第一部分从所述多条转发表项中选择一条转发表项。所选择的转发表项包含第二设备的地址,其中,第二设备为所述第一设备的下一跳设备。第一设备向第二设备发送第一报文,其中,第二部分用于所述第二设备从多条用于转发所述第一报文的转发表项中选择转发表项。
通过上述方法,第一设备可以根据第一部分对报文进行负载分担,第二设备也可以根据第二部分对报文进行负载分担,这样可以通过Entropy的不同部分来实现不同设备上的负载分担转发,控制数据流的路径,从而实现对报文的多级负载分担。
结合第一方面,在第一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
通过使用报文BIER头中的Entropy的不同比特位,实现对报文的多级负载分担。
结合第一方面,在第二种可能的实现方式中,第一设备根据第一设备的多条用于转发所述第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。第一设备上存在多条用于转发第一报文的转发表项也就是说第一设备上存在用于转发第一报文的多条负载分担路径,第二设备上存在多条用于转发第一报文的转发表项也就是说第二设备上存在多条用于转发第一报文的负载分担路径,第一设备根据第一设备的负载分担数和第二设备的负载分担数来生成Entropy,可以实现精确控制每个设备上转发第一报文时使用的转发表项,例如:将第一部分设置为0001,则第一设备用多条转发路径中的第一条转发路径发送第一报文,将第二部分设置为0003,则第二设备用多条转发路径中第三条转发路径发送第一报文,从而分别实现多个设备中每个设备转发第一报文的转发路径的控制。
结合第一方面,在第三种可能的实现方式中,第一设备生成包含BIER头的第一报文包括:第一设备从第四设备接收第二报文。第一设备对第二报文封装BIER头生成第一报文。
结合第一方面,在第四种可能的实现方式中,所述转发表项可以是比特索引转发表项(英文:Bit Index Forwarding Table,简称:BIFT)。
结合第一方面,在第五种可能的实现方式中,所述Entropy的值等于第一部分的值和第二部分的值的和,其中第一部分的值根据第一设备的多条用于转发所述第一报文的转发表项的数量生成,第二部分的值根据第二设备的多条用于转发第一报文的转发表项的数量生成。
第二方面,本申请提供了一种发送报文的方法,该方法包括:第二设备接收第一设备发送的第一报文。第一报文包含BIER头,该BIER头包含熵Entropy,该Entropy用于沿着转发路径转发所述第一报文。该Entropy包含第一部分和第二部分,其中,第一部分与第二部分不同。第一部分用于第一设备从多条用于转发第一报文的转发表项中选择一条转发表项。第二设备根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。第二设备根据第二部分从该多条转发表项中选择一条转发表项。所选择的转发表项包含第三设备的地址,该第三设备为第二设备的下一跳设备。第二设备向第三设备发送第一报文。
结合第二方面,在第一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
结合第二方面,在第二种可能的实现方式中,第一设备根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定第一报文的BIER头的Entropy值。
结合第二方面,在第三种可能的实现方式中,该Entropy还包含第三部分,其中,该第三部分和第一部分和第二部分都不相同。该第三部分用于上述第三设备从多条用于转发所述第一报文的转发表项中选择转发表项,其中第三设备有多条发送第一报文的等价路径。
第三方面,本申请提供了一种发送报文的设备。该设备包括生成单元、确定单元、选择单元和发送单元。生成单元用于生成包含BIER头的第一报文。该BIER头包含熵Entropy。该Entropy用于沿着转发路径转发第一报文。该Entropy包含第一部分和第二部分,其中,第一部分与第二部分不同。确定单元用于根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。选择单元用于根据第一部分从多条转发表项中选择一条转发表项。所选择的转发表项包含第二设备的地址,其中,第二设备为设备的下一跳设备。发送单元用于向第二设备发送第一报文。第二部分用于第二设备从多条用于转发第一报文的转发表项中选择一条转发表项。
结合第三方面,在第一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
结合第三方面,在第二种可能的实现方式中,确定单元还用于根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定。
结合第三方面,在第三种可能的实现方式中,该设备还包括接收单元,其中,接收单元用于从第四设备接收第二报文。生成单元用于对所述第二报文封装BIER头生成所述第一报文。
第四方面,本申请提供了一种发送报文的设备。该设备包括接收单元、确定单元、选择单元和发送单元。接收单元用于接收第一设备发送的第一报文。第一报文包含BIER头,该BIER头包含Entropy。该Entropy用于沿着转发路径转发第一报文,其中,Entropy包含第一部分和第二部分,第一部分与所述第二部分不同。第一部分用于第一设备从多条用于转发第一报文的转发表项中选择一条转发表项。确定单元用于根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。选择单元用于根据第二部分从多条转发表项中选择一条转发表项。该选择的转发表项包含第三设备的地址,其中,第三设备为所述第二设备的下一跳设备。发送单元用于向第三设备发送第一报文。
结合第四方面,在第一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
结合第四方面,在第二种可能的实现方式中,所述第一报文的BIER头的Entropy值根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定。
第五方面,本申请提供了一种网络中确定流量传输路径的系统,该系统包括第一设备和第二设备。第一设备用于生成包含BIER头的第一报文,以及根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项,并根据第一部分从多条转发表项中选择一条转发表项,向所述第二设备发送所述第一报文。该BIER头包含熵Entropy。Entropy用于沿着转发路径转发第一报文。该Entropy包含第一部分和第二部分,其中,所述第一部分与所述第二部分不同。所选择的转发表项包含第二设备的地址,该第二设备为所述第一设备的下一跳设备。
第二设备用于接收第一设备发送的第一报文,根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项,以及根据所述第二部分从所述多条转发表项中选择一条转发表项,向第三设备发送第一报文,其中所述第三设备为所述第二设备的下一跳设备。
结合第五方面,在第一种可能的实现方式中,第一部分和第二部分占用该Entropy的比特位不同。
结合第五方面,在第二种可能的实现方式中,所述第一设备还用于根据所述第一设备的多条用于转发所述第一报文的转发表项的数量和第二设备的多条用于转发所述第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
结合第五方面,在第一种可能的实现方式中,所述第一设备还用于从第四设备接收第二报文,并对所述第二报文封装BIER头生成所述第一报文。
第六方面,本申请提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面以及各个可能实现方式的的方法。
第七方面,本申请提供了另一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第二方面以及各个可能实现方式的所述的方法。
第八方面,本申请提供了一种设备,所述网络设备包括网络接口、处理器、存储器和连接所述网络接口、处理器和存储器的总线。所述存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成上述第一方面以及各个可能实现方式的所述的方法。
第九方面,本申请提供了一种设备,所述网络设备包括网络接口、处理器、存储器和连接所述网络接口、处理器和存储器的总线。所述存储器用于存储程序、指令或代码,所述处理器用于执行所述存储器中的程序、指令或代码,完成上述第二方面以及各个可能实现方式的所述的方法。
附图说明
图1为本发明实施例提供的一种发送报文的应用场景示意图。
图2为本发明实施例提供的又一种发送报文的应用场景示意图。
图3为本发明实施例提供的一种发送报文的方法流程示意图。
图4为本发明实施例提供的又一种发送报文的方法流程示意图。
图5为本发明实施例提供的一种发送报文的设备。
图6为本发明实施例提供的又一种发送报文的设备。
图7为本发明实施例提供的又一种发送报文的设备。
图8为本发明实施例提供的又一种发送报文的设备。
图9为本发明实施例提供的一种发送报文的系统。
具体实施方式
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
图1提供了一种发送报文的系统架构示意图,该系统100包括:设备A、设备B、设备C设备D、设备E和设备F以及与设备A连接的主机A,与设备E连接的主机E,与设备F连接的主机F,与设备D连接的主机D,其中,与主机连接的设备还可称为边缘设备,例如设备A还可以称为边缘设备A,边缘设备可以对从BIER域外接收到的报文封装BIER并将携带有BIER头的报文进行转发。该系统100既可以发送组播报文,还可以发送单播报文,并且还可以通过边缘设备A、D、E或F对报文封装BIER头,利用BIER头对报文进行负载分担。例如,第一报文和第二报文都由设备A发给到设备F,设备A可以对第一报文和第二报文封装BIER头,对第一报文封装BIER头时填写Entropy值为1,对第二报文封装BIER头时填写Entropy值为2,并将封装后的第一报文和第二报文发送给设备B,由于设备B到达设备F存在两条等价路径,即设备B可以将报文发送到设备C,也可以将报文发送到设备E,因此设备B存在两条转发表项。设备B接收第一报文和第二报文,根据第一报文和第二报文的各自的BIER头中Entropy值以及该值与设备B的转发表项对第一报文和第二报文进行负载分担,其中,设备B根据报文的BIER头的Entropy以及转发表项转发报文的具体方法可以参考RFC8279协议的第6节中“BIERIntra-Domain Forwarding Procedures”所描述的相关方法,此处不再赘述。
上述方案中,设备B是将Entropy字段的20比特的值作为一个整体使用,是将Entropy字段所填写的数值作为一个整体来确定将组播报文发送的路径,也就是说,与主机相连接的设备A1、B1、A2和B2可以根据报文BIER头中Entropy值对报文进行负载分担,而设备C1、D1、C2和D2等就无法继续根据报文BIER头中Entropy值对报文对接收到的报文进行负载分担。举例来说,在图2中,例如下图设备A1要复制流量给设备A2和B2,可以由A1经过设备C1到达设备S1或S2,其中设备S1或S2再往下复制到设备A2和B2的路径是固定的;或者由设备A1经过设备D1到达设备S3或S4,其中设备S3或S4再往下复制到设备A2和B2的路径是固定的。传统方案中,将流量负载分担到四个不同的路径具体通过对报文封装BIER头并填写Entropy=1,则该报文由设备A1发送到设备C1,而设备C1可能选择将该报文发送到设备S1;如果对报文封装BIER头时填写Entropy=2,则该报文由设备A1选择发送到设备D1,而设备D1可能选择将该报文发送到设备S4;如果对报文封装BIER头时填写Entropy=3,则该报文选择的路径可能是由设备A1经过设备C1到达设备S1;如果报文封装Entropy=4,则该报文选择的路径可能是由设备A1经过设备D1达到设备S4。尽管对报文封装时分别使用4种Entropy值,但由于不能实现每级设备都对发送数据流进行负载分担,使得设备A1经过设备C1到达设备S2和由设备A1经过设备D1到达设备S3这两个路径没有用于数据流的发送,而其他用于发送数据流的路径可能出现流量过大的现象,造成部分路径流量过载的问题。
为了解决上述技术问题,本申请提供一种新的发送报文的方法,该方法可以通过每级设备根据不同的标识实现报文发送的负载分担,该方法不仅可以适用于图1所示的系统100,还可以适用于图2所示的CLOS这种多级网络系统200,实现对报文的负载分担。
以图2所示系统200为例对本申请所提供的新方法进行说明,在系统200中,每层设备都存在多条负载分担的路径。与主机A1连接的设备A1以及与主机B1连接的设备B1在多级网络中可以称为第三层设备,还可以称为一级叶子节点或接入层设备,设备A1和设备B1可以是具备数据转发功能的路由器或交换机等设备,该设备可以对从主机接收的报文封装BIER头。与设备A1和B1类似,设备A2和B2也可以称为三层设备、一级叶子节点或接入层设备,中间层设备C1、D1、C2和D2在多层网路中称为第二级设备,还可以称为二级叶子节点或聚合层设备。上层设备S1、S2、S3和S4在多层网络中可以称为第一层设备、核心层设备等。在多层网络系统200中,三层设备A1从主机A1接收报文,将该报文封装BIER头并填写Entropy值。三层设备根据报文BIER头的Entropy的部分值以及三层设备的BIFT对该报文进行负载分担,发送到二级设备C1和D1。二级设备C1和D1接收到该报文,根据报文BIER头的Entropy的另外一部分以及设备的BIFT对该报文负载分担,发送到一级设备S1和S2,由此,通过对发送数据流的路径进行精确控制,使报文可以在多级网络中实现负载分担。
下面以图2所示系统200为例,对图3中所示发送报文的方法进行说明,具体方法包括:
S310,第一设备生成包含BIER头的第一报文。
在一种可能的实现方式中,第一报文的BIER头包含Entropy。该Entropy用于沿着转发路径转发第一报文。Entropy字段的值可以根据默认值生成,也可以由边缘设备填充生成。如果第一设备是边缘设备,第一设备可以在生成报文时根据需要填充Entropy字段的值。该Entropy字段包括第一部分和第二部分,其中,第一部分和第二部分都用于设备确定发送路径,还可以将第一部分称为第一标识,第二部门称为第二标识。Entropy字段有20比特位,第一部分和第二部分可以是Entropy字段的不同比特位,例如第一部分可以指Entropy字段最右边的一个比特的值,第二部分可以指Entropy字段从右往左第二个比特的值。第一部分和第二部分所占用的比特的数量可以根据设备的BIFT进行选择,即设备的BIFT越多需要的比特就越多。
在一种可能的实现方式中,第一报文的BIER头的Entropy值可以由第一设备填充,也可以是由默认值生成。第一设备根据第一设备存储的多条用于转发所述第一报文的转发表项的数目和第二设备存储的多条用于转发第一报文的转发表项的数目确定所述第一报文的BIER头的Entropy值,其中第一设备和第二设备为多层网络中不同层级的设备,例如第一设备为一级叶子节点或接入层设备,第二设备为二级叶子节点或中间层设备,第一设备将第一报文发送给第二报文。第一设备存储的多条用于转发第一报文的转发表项可以是BIFT。
在一种可能的实现方式中,如果第一设备为边缘设备,第一报文的BIER头的Entropy值可以由第一设备填充。第一设备上存在多条用于转发第一报文的转发表项也就是说第一设备上存在用于转发第一报文的多条负载分担路径,第二设备上存在多条用于转发第一报文的转发表项也就是说第二设备上存在多条用于转发第一报文的负载分担路径,第一设备根据第一设备的负载分担数和第二设备的负载分担数来生成Entropy,可以实现精确控制每个设备上转发第一报文时使用的转发表项,例如:将第一部分设置为0001,则第一设备用多条转发路径中的第一条转发路径发送第一报文,将第二部分设置为0003,则第二设备用多条转发路径中第三条转发路径发送第一报文,从而分别实现多个设备中每个设备转发第一报文的转发路径的控制。Entropy的值可以是第一部分数值和第二部分数值的和,其中第一设备根据第一部分的值选择转发报文的对应的转发路径,第二设备根据第二部分的值选择转发报文的对应的路径。
举例来说,在接入层设备和中间层设备都如图2所示,存在两条发送报文的等价路径。图中设备A1选择往设备C1或设备D1发送第一报文的路径就用P1的值来表示,图中设备C1往设备S1或设备S2的选择、或者设备D2往设备S3或者设备S4发送第一报文的路径就是用P2的值来表示。第一设备根据P1和P2计算出需要封装的Entropy值=(P1-1)*1+(P2-1)*2,P1和P2都可以取值1或2,该取值是根据如前所述设备A1和设备C1都存在发送报文到下一跳的两条等价路径。第一设备将这个计算的Entropy值,在控制面完成计算后下发给转发面。
在一种可能的实现方式中,在多级网络中,第一设备可以是边缘设备,还可以称为一级叶子节点或接入层设备,第一设备从BIER域外接收第一报文,例如组播报文,第一设备对接收到的组播报文封装BIER头。第一设备对组播报文封装的BIER头中包括比特串(BitString),该比特串用于标识发送第一报文到BIER域外的出口设备。
在一种可能的实现方式中,第一设备从第四设备接收第二报文,并对第二报文封装BIER头生成所述第一报文,例如边缘设备从BIER域外第四设备接收第二报文,边缘设备将第二报文封装BIER头生成第一报文。
举例来说,接入层设备达到中间层设备的路径只有两条,因此1个比特用“0”和“1”就可以对这两条路径进行区分,该比特可以对应于设备的两个BIFT。如果接入层设备达到中间层设备的等价路径有三条,对应于三条BIFT,则需要两个比特来进行区分,则第一部分就需要Entropy的中从右往左的第一和第二这两个比特位来区别三条不同的BIFT,第二部分可以从右往左第3比特开始,也可以从右往左的第4比特位开始,本申请并不要求第一部分和第二部分是Entropy中连续的比特位,第一部分和第二部分所使用的比特位可以不是连续的,不重叠。如果接入层设备到达中间层设备的等价路径有48条,对应于48条BIFT,则需要使用Entropy中从右往左的前6比特。
S320,第一设备根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。
在一种可能的实现方式中,在多级网络中存在多级网络设备,第一设备为一级叶子节点或接入设备,第二设备为二级叶子节点或聚合层设备,一级叶子节点到二级叶子节点或聚合层设备存在多条等价多径(英文:equal cost multi path,简称:ECMP),接入设备生成多个BIFT,该多个转发表项对应不同的转发路径。
举例来说,设备A1将报文发送到中间层设备包括两条等价路径,分别为由设备A1到设备C1和由设备A1到设备D1。设备A1根据这两条等价路径生成两条BIFT,这两个BIFT的下一跳分别为设备C1和设备D1。
S330,第一设备根据第一部分从多条转发表项中选择一条转发表项,所选择的转发表项包含第二设备的地址,其中,第二设备为第一设备的下一跳设备。
在一种可能的实现方式中,第一设备存储有参数(X,Y),其中X和Y都为整数,Y的值与第一设备确定的多个等价路径的数量相等,即Y的取值与第一设备确定存在多个转发第一报文的数量相等,例如第一设备确定发送第一报文到下一跳设备存在3条等价路径,则Y取值为3。第一设备根据参数(X,Y)对第一报文的BIER头的Entropy进行计算,并获得计算结果。第一设备可以将上述对应于多条等价路径的多条转发表项进行排序,然后根据计算结果和转发表项的排序从多个转发表项中选择一条转发表项,并根据比特串和该BIFT确定下一跳为第二设备的地址,其中根据比特串和BIFT确定下一跳的实施方法可以参考RFC8279第6节“BIER Intra-Domain Forwarding Procedures”部分的描述,在此不再赘述。该第二设备可以是多级网络的中间层设备。
举例来说,图2中的接入层设备A1从主机A1接收组播报文,该组播报文需要被发送到接入层设备A2和B2。接入层设备A1从BIER域外接收组播报文并对该组播报文封装BIER头,形成新的组播报文。由于接入层设备A1到中间层设备存在两条等价路径,包括由接入层设备A1到中间层设备C1和由接入层设备A1到中间层设备C2,因此接入设备A1将组播报文发送到下一跳可以包括两条不同的BIFT。接入层设备A1根据配置的参数,对BIER头的Entropy值进行计算,然后根据计算结果确定BIFT,例如当计算的数值为0时,则根据第一个BIFT确定下一跳,如果计算结果为1,则根据第二个BIFT确定下一跳。
举例来说,接入设备A1可以存储参数(X1,Y1),其中Y的取值与接入设备发送组播报文可选的BIFT的数量相等。接入设备A1将组播报文的BIER头中的Entropy值除以参数X获得一个值,再将该值对Y取余,设备A1根据最终得出的结果确定发送组播报文的BIFT,然后根据该BIFT中确定下一跳。例如,将X设置为1,Y设置为2,设备A1将Entropy值除以1取整数,再对所取整的数除以2取余数,如果余数为0则根据与0对应的第一个BIFT确定下一跳设备为设备C1,如果余数为1则根据与1对应的第二个BIFT确定下一跳设备为设备D1,其中,上述参数的可以根据需要配置,本申请对参数的设置不做限制。根据计算结果确定使用哪个BIER,具体可以参照RFC8279中的6.5和6.6章节中对转发计算部分内容的描述,在此不再赘述。
接入层设备A1根据对BIER头中的Entropy值进行计算的结果确定BIFT,进而根据BIFT确定发送报文的下一跳,这样可以根据不同Entropy值将报文发送到不同路径,对流量实现负载分担。
S340,第一设备向第二设备发送第一报文,第二部分用于第二设备从多条用于转发第一报文的转发表项中选择第二设备转发第一报文的转发表项。
在一种可能的实现方式中,第二设备为多级网络中的中间设备,还可以称为二级叶子节点或聚合层设备。同第一设备相似,第二设备到上层设备存在两个以上的等价路径,第二设备同样包括两个以上的BIFT。第二设备根据第二部分发送第二报文到第三设备的方法可以参考步骤S303的相关方法,即第二设备通过利用第二设备存储的参数(X2,Y2)对第一报文BIER头的Entropy的第二部分进行计算,并根据计算结果选择转发第一报文的转发表项,具体实施可以参考步骤S303中第一设备选择转发表项的方法,此处不再赘述。
在一种可能的实现方式中,边缘节点可以对从BIER域外接收的报文封装BIER头,并填充Entropy值。例如,第一级设备存储参数(X1=1,Y1=2),那么第二级设备(X2=X1*Y1=2,Y2=2),其中Y1的取值与第一级设备转发报文的路径的数量相等,Y2的取值与第二级设备转发报文的路径的数量相等。第一级设备对报文封装BIER头时填充Entropy=(P1-1)*X1+(P2-1)*X2;其中P1的取值为1到2的整数,P2的取值为1到2的整数。根据上述取值,Entropy可以取值0或1或2或3。还可以举例,如第一级设备的负载分担数为两路,第二级的负载分担数为48路,则第一级设备存数的参数(X1=1,X2=2),第二级设备存数的参数(X2=X1*Y1=2,Y2=48),则边缘节点对报文封装BIER头是填充Entropy=(P1-1)*X1+(P2-1)*X2,其中,P1可以取值1到2的整数,P2可以取值1到48的整数。通过上述方案,根据接入层设备和中间层设备所存储的参数,并将接入层的参数与第一部分进行计算,中间层设备的参与第二部分进行计算,将Entropy分段使用,例如Entropy右边N个比特位为第一部分,或者中间M个比特位为第二部分,或者通过除法的方式取其中的N个比特位,M和N都为大于0的整数,从而实现流量的负载分担。此外,还可以通过接入层设备对该Entropy的值进行填充,使流量的分配路径变得可控,这样有利于将流量均匀的分配在不同的路径上。
下面为本申请提供两种对Entropy值分段使用的方法实施例。
方法一:以图2为例对方法一进行说明。对于接入设备A1,存在两条到达中间层设备C1和C2的路径,根据这两条不同的路径建立两个BIFT,转发表1对应下一跳为中间层设备C1的转发路径,转发表2为对应下一跳为中间层设备D1的转发路径。为了确定报文发送使用的BIFT,接入层设备A1可以存储有两个参数(X1=1,Y1=2),可以是对Entropy值除以X取整数,再对Y取余,接入设备A1根据计算结果和BIFT的关系,选择转发报文的BIFT,例如取余结果为0选择使用BIFT排序为1的BIFT,取余结果为1选择使用BIFT排序为2的BIFT。对于中间层设备C1可以设置两个参数(X2=2,Y2=2),表示对Entropy值除以X取整数,再对Y取余,接入设备A1根据计算结果和BIFT的对应关系,确定转发报文的BIFT,例如取余结果为0选择使用BIFT排序为1的BIFT,取余结果为1选择使用BIFT排序为2的BIFT,具体如下:
如果Entropy值为0,对接入设备A1来说计算后的结果为0,则接入设备A1选择与数值0对应的BIFT,接入设备根据BIFT确定下一跳为C1;对中间层设备C1来说计算后的结果为0,则中间层设备C1选择与0对应的BIFT,并根据该BIFT确定下一跳为上层设备S1,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备C1,再由中间层设备将报文发送到上层设备S1。
如果Entropy值为1,对接入设备A1来说计算后的结果为1,则接入设备A1选择与数值1对应的BIFT,接入设备根据BIFT确定下一跳为D1;对中间层设备D1来说计算后的结果为0,则中间层设备D1选择与0对应的BIFT,并根据该BIFT确定下一跳为上层设备S4,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备D1,再由中间层设备将报文发送到上层设备S4。
如果Entropy值为2,对接入设备A1来说计算后的结果为0,则接入设备A1选择与数值0对应的BIFT,接入设备根据BIFT确定下一跳为C1;对中间层设备C1来说计算后的结果为1,则中间层设备C1选择与1对应的BIFT,并根据该BIFT确定下一跳为上层设备S2,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备C1,再由中间层设备将报文发送到上层设备S2。
如果Entropy值为3,对接入设备A1来说计算后的结果为1,则接入设备A1选择与数值1对应的BIFT,接入设备根据BIFT确定下一跳为D1;对中间层设备D1来说计算后的结果为1,则中间层设备D1选择与1对应的BIFT,并根据该BIFT确定下一跳为上层设备S3,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备D1,再由中间层设备将报文发送到上层设备S3。
上述方法还可以通过使用二进制来计算,其中,第一部分可以为Entropy字段右边第一比特位,第二部分可以为从右往左第二比特位,具体如下:
如果Entropy=(0000 0000 0000 0000 0000),右边第一比特位为0,则接入设备A1选择与数值0对应的BIFT,接入设备根据BIFT确定下一跳为C1。右边第二比特位为0,则中间层设备C1选择与0对应的BIFT,并根据该BIFT确定下一跳为上层设备S1,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备C1,再由中间层设备将报文发送到上层设备S1。
如果Entropy=(0000 0000 0000 0000 0001),右边第一比特位为1,则接入设备A1选择与数值1对应的BIFT,接入设备根据BIFT确定下一跳为D1。右边第二比特位为0,则中间层设备D1选择与0对应的BIFT,并根据该BIFT确定下一跳为上层设备S4,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备D1,再由中间层设备将报文发送到上层设备S4;
如果Entropy=(0000 0000 0000 0000 0010),右边第一比特位为0,则接入设备A1选择与数值0对应的BIFT,接入设备根据BIFT确定下一跳为C1,右边第二比特位为1,则中间层设备C1选择与1对应的BIFT,并根据该BIFT确定下一跳为上层设备S2,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备C1,再由中间层设备将报文发送到上层设备S2。
如果Entropy=(0000 0000 0000 0000 0011),右边第一比特位为1,则接入设备A1选择与数值1对应的BIFT,接入设备根据BIFT确定下一跳为D1,右边第二比特位为1,则中间层设备D1选择与1对应的BIFT,并根据该BIFT确定下一跳为上层设备S3,由此可以确定该报文的转发路径由接入层设备A1发送到中间层设备D1,再由中间层设备将报文发送到上层设备S3。
方法二:多级网络中的各层设备可以设定参数X和Y,其中参数X和Y的值都设置为2的指数,例如接入层设备设定参数(X=20,Y=21),中间层设备设定参数(X=21,Y=21),其表示的含义和用途与上面的方法一中的参数相同。在实施例二中,在每个设备上根据报文BIER头的Entropy值取其部分值时,在算法上可以简化:
对于接入层设备,将Entropy值除以20再对21取余,可以简化为Entropy值右移0比特,再对Y取余。根据取余结果确定使用接入层设备的BIFT,以及确定下一跳的方法可参考实施例一中的方法,在此不再赘述。
对于中间层设备,将Entropy值除以21再对21取余,可以简化为Entropy值右移1个比特,再对Y值取余。
在方法二中,包括20比特位的Entropy值,最右边的比特位的值可以是第一部分,该比特位的值决定了接入层设备的路径选择,从右边第二比特位的值可以是第二部分,该比特位的值决定了中间层设备的路径选择。由于图2中接入层设备进行负载分担的路径只有2条,因此使用1个比特位的0值和1值这两个值就可以表示两条不同的路径。同样的,Entropy值的从右到左第二个比特位的值,决定了中间层设备的路径选择,由于图2的中间层设备负载分担的路径只有2条,因此使用1个比特的0值和1值这两个值就可以表示两条不同的路径。
如果接入层设备到达上层设备的路径选择有3条,可以使用20bit中的右边第一和第二两个比特来表示这3条路径,此时接入层设备的参数为(X=20,Y=22),该参数中X和Y分别表示比特的位置和比特的长度,例如该参数表示从右边第0比特开始的两个比特位。如果中间层设备的路径选择有48条,则可以使用20比特中的6比特来表示这48条路径,此时中间层设备的参数为(X=22,Y=26),表示从最右边第2比特开始的6个比特。该方案中间层设备可以选择最右第2比特开始的6个比特,也可以选择最右第3比特开始的6个比特等等,本申请对第一部分和第二部分并不要求比特位相连。
如图4所示,为本申请提供了一种发送报文的又一种方法流程示意图,第一设备可以是图2中的设备A1、B1、A2和B2,还可以是图3方法流程图中的第一设备,并且可以实现图3中第一设备的功能。第二设备可以是图2中的设备C1、D1、C2和D2。该方法包括:
S410,第一设备生成包含BIER头的第一报文。该步骤的具体实施可以参考图3中的步骤S301,此处不再赘述。
S420,第一设备根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。该步骤的具体实施可以参考图3中的步骤S302,此处不再赘述。
S430,第一设备根据第一部分从该多条转发表项中选择一条转发表项,该转发表项中的下一跳为第二设备。该步骤的具体实施可以参考图3中的步骤S303,此处不再赘述。
S440,第一设备向第二设备发送第一报文。
S450,第二设备接收第一设备的第一报文。
S460,第二设备根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。
在一种可能的实现方式中,第二设备接收第一报文,并根据第二报文中携带的目的地址确定存在多条等价路径,相应的第二设备中存在多条用于转发第一报文到下一跳的转发表项。
S470,第二设备根据第二部分从所述多条转发表项中选择一条转发表项。该步骤的具体实施可以参考图3中的步骤S303,此处不再赘述。
S480,第二设备向第三设备发送第一报文。
在一种可能的实现方式中,第二设备为多级网路中的中间层设备,第三设备为一层设备或者核心设备,第二设备向第三设备发送第一报文存在多条等价路径。第二设备根据第二部分从多条转发表项中选择一条转发表项,并根据该选的转发表项向第三设备发送第一报文。
在一种可能的实现方式中,第一报文的BIER头的Entropy还包括第三部分,该第三部分用于第三设备从多条BIFT中选择一条BIFT。
如图5所示,为本申请提供了一种发送报文的设备,该设备可以是图1中的设备B,也可以是图2中的设备A1、B1、A2和B2,还可以是方法流程图3和图4中的第一设备,可以实现所述第一设备的功能。所述第一设备包括生成单元501、确定单元502,选择单元503和发送单元504。
在一种可能的实现方式中,生成单元501用于生成包含BIER头的第一报文。该BIER头包含Entropy,该Entropy用于沿着转发路径转发所述第一报文。该Entropy包含第一部分和第二部分,其中,第一部分与第二部分不同。确定单元502用于根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。选择单元503用于根据第一部分从多条转发表项中选择一条转发表项。所选择的转发表项包含第二设备的地址,其中第二设备为第一设备的下一跳设备。发送单元504用于向第二设备发送第一报文。第二部分用于第二设备从多条用于转发第一报文的转发表项中选择一条转发表项。
在一种可能的实现方式中,第一部分和第二部分占用的Entropy的比特位不同。
在一种可能的实现方式中,确定单元502还用于根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
在一种可能的实现方式中,该设备还包括接收单元,其中,接收单元用于从第四设备接收第二报文。生成单元501用于对所述第二报文封装BIER头生成所述第一报文。
在该具体实施方式中,所述生成单元501、确定单元502,选择单元503和发送单元504的具体实现可以参考图3和图4中所述的第一设备的功能和实施步骤,为了简洁,不再赘述。
如图6所示,为本申请提供了一种发送报文的设备,该设备可以是图2中的设备C1、D1、C2和D2,还可以是方法流程图3和图4中的第二设备,可以实现所述第二设备的功能。所述第二设备包括该设备包括接收单元601、确定单元602、选择单元603和发送单元604。
在一种可能的实现方式中,接收单元601用于接收第一设备发送的第一报文。第一报文包含BIER头,该BIER头包含Entropy。该Entropy用于沿着转发路径转发第一报文,其中,Entropy包含第一部分和第二部分,第一部分与所述第二部分不同。第一部分用于第一设备从多条用于转发第一报文的转发表项中选择一条转发表项。确定单元602用于根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项。选择单元603用于根据第二部分从多条转发表项中选择一条转发表项。该选择的转发表项包含第三设备的地址,其中,第三设备为所述第二设备的下一跳设备。发送单元604用于向第三设备发送第一报文。
在一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
在一种可能的实现方式中,所述第一报文的BIER头的Entropy值根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定。
在该具体实施方式中,所述接收单元601、确定单元602、选择单元603和发送单元604的具体实现可以参考图3和图4中所述的第二设备的功能和实施步骤,为了简洁,不再赘述。
如图7所示,为本申请提供了另一种第一设备,所述第一设备既可以是图1中的设备B,也可以是图2中的设备A1、B1、A2和B2,还可以是方法流程图3和图4中的第一设备,可以实现所述第一设备的功能。所述第一设备包括网络接口701、处理器702,还可以包括存储器703。
处理器702包括但不限于中央处理器(英文:central processing unit,简称:CPU),网络处理器(英文:network processor,简称:NP),专用集成电路(英文:application-specific integrated circuit,简称:ASIC)或者可编程逻辑器件(英文:programmable logic device,缩写:PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:genericarray logic,缩写:GAL)或其任意组合。处理器702负责管理总线704和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节,电源管理以及其他控制功能。存储器703可以用于存储处理器702在执行操作时所使用的数据,例如存储第一设备用于转发第一报文的转发表项。
网络接口701可以是有线接口,例如光纤分布式数据接口(英文:FiberDistributed Data Interface,简称:FDDI)、以太网(英文:Ethernet)接口。网络接口701也可以是无线接口,例如无线局域网接口。
存储器703可以是包括但不限于内容寻址存储器(英文:content-addressablememory,简称:CAM),例如三态内容寻址存储器(英文:ternary CAM,简称:TCAM),随机存取存储器(英文:random-access memory,简称:RAM)。
存储器703也可以集成在处理器702中。如果存储器703和处理器702是相互独立的器件,存储器573和处理器702相连,例如存储器703和处理器702可以通过总线通信。网络接口701和处理器702可以通过总线通信,网络接口701也可以与处理器702直连。
总线704可以包括任意数量的互联的总线和桥,总线704将包括由处理器702代表的一个或多个处理器702和存储器703代表的存储器的各种电路链接在一起。总线704还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
在一种可能的实现方式中,网络接口701用于向第二设备发送第一报文,其中第一报文BIER头的Entropy的第二部分用于第二设备从多条用于转发第一报文的转发表项中选择一条转发表项。处理器702用于生成包含BIER头的第一报文,还用于根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项,以及用于根据第一部分从多条转发表项中选择一条转发表项。该BIER头包含熵Entropy。该Entropy用于沿着转发路径转发第一报文。该Entropy包含第一部分和第二部分,其中,第一部分与第二部分不同。所选择的转发表项包含第二设备的地址,其中,第二设备为设备的下一跳设备。
在一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
在一种可能的实现方式中,处理器702还用于根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
在一种可能的实现方式中,该设备还包括接收单元,其中,接收单元用于从第四设备接收第二报文。生成单元用于对所述第二报文封装BIER头生成所述第一报文。
在该具体实施方式中,所述处理器702和所述网络接口701的具体实现可以参考图3和图4中所述第一设备的功能和实施步骤,为了简洁,不再赘述。
如图8所示,为本申请提供了另一种发送报文的设备,该设备可以是图2中的设备C1、D1、C2和D2,该设备还可以是方法流程图3和图4中的第二设备,可以实现所述第二设备的功能。该设备包括网络接口801和处理器802,还可以包括存储器803。
处理器802包括但不限于中央处理器(英文:central processing unit,简称:CPU),网络处理器(英文:network processor,简称:NP),专用集成电路(英文:application-specific integrated circuit,简称:ASIC)或者可编程逻辑器件(英文:programmable logic device,缩写:PLD)中的一个或多个。上述PLD可以是复杂可编程逻辑器件(英文:complex programmable logic device,缩写:CPLD),现场可编程逻辑门阵列(英文:field-programmable gate array,缩写:FPGA),通用阵列逻辑(英文:genericarray logic,缩写:GAL)或其任意组合。处理器802负责管理总线804和通常的处理,还可以提供各种功能,包括定时,外围接口,电压调节,电源管理以及其他控制功能。存储器803可以用于存储处理器802在执行操作时所使用的数据,例如可以存储第二设备用于转发第一报文的转发表项。
网络接口801可以是有线接口,例如光纤分布式数据接口(英文:FiberDistributed Data Interface,简称:FDDI)、以太网(英文:Ethernet)接口。网络接口801也可以是无线接口,例如无线局域网接口。
存储器803可以是包括但不限于内容寻址存储器(英文:content-addressablememory,简称:CAM),例如三态内容寻址存储器(英文:ternary CAM,简称:TCAM),随机存取存储器(英文:random-access memory,简称:RAM)。
存储器803也可以集成在处理器802中。如果存储器803和处理器802是相互独立的器件,存储器803和处理器802相连,例如存储器803和处理器802可以通过总线通信。网络接口801和处理器802可以通过总线通信,网络接口801也可以与处理器802直连。
总线804可以包括任意数量的互联的总线和桥,总线804将包括由处理器802代表的一个或多个处理器802和存储器803代表的存储器的各种电路链接在一起。总线804还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。
在一种可能的实现方式中,网络接口801用于接收第一报文以及向第三设备发送第一报文,其中,第一报文包含BIER头,该BIER头包含Entropy。该Entropy用于沿着转发路径转发第一报文,其中,Entropy包含第一部分和第二部分,第一部分与所述第二部分不同。第一部分用于第一设备从多条用于转发第一报文的转发表项中选择一条转发表项。处理器802根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项,以及根据第二部分从多条转发表项中选择一条转发表项。该选择的转发表项包含第三设备的地址,其中,第三设备为所述第二设备的下一跳设备。
在一种可能的实现方式中,第一部分和第二部分占用Entropy的比特位不同。
在一种可能的实现方式中,所述第一报文的BIER头的Entropy值根据第一设备的多条用于转发第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定。
在该具体实施方式中,所述处理器802和所述网络接口801的具体实现可以参考图3和图4中所述的第二设备的功能和实施步骤,为了简洁,不再赘述。
如图9所示,为本申请提供一种发送报文的系统。该系统包括第一设备901和第二设备902。
在一种可能的实现方式中,第一设备901用于生成包含BIER头的第一报文,以及根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项,并根据第一部分从多条转发表项中选择一条转发表项,向所述第二设备发送所述第一报文。该BIER头包含熵Entropy。Entropy用于沿着转发路径转发第一报文。该Entropy包含第一部分和第二部分,其中,所述第一部分与所述第二部分不同。所选择的转发表项包含第二设备902的地址,该第二设备902为所述第一设备901的下一跳设备。
第二设备902用于接收第一设备901发送的第一报文,根据第一报文的目的地址确定存在多条用于转发第一报文的转发表项,以及根据所述第二部分从所述多条转发表项中选择一条转发表项,向第三设备发送第一报文,其中所述第三设备为所述第二设备的下一跳设备。
在一种可能的实现方式中,第一部分和第二部分占用该Entropy的比特位不同。
在一种可能的实现方式中,第一设备901还用于根据所述第一设备901的多条用于转发所述第一报文的转发表项的数量和第二设备902的多条用于转发所述第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
在一种可能的实现方式中,所述第一设备901还用于从第四设备接收第二报文,并对所述第二报文封装BIER头生成所述第一报文。
所述第一设备既可以是图1中的设备B,也可以是图2中的设备A1、B1、A2和B2,还可以是方法流程图3和图4中的第一设备,可以实现第一设备的功能。所述第二设备可以是设备C1、D1、C2和D2,该设备还可以是方法流程图3和图4中的第二设备,可以实现第二设备的功能。
在上述实施方式中,所述第一设备901具体实现可以参考图3和图4中所述的第一设备的功能和实施步骤。所述第二设备902具体实现可以参考图3和图4中所述的第二设备的功能和实施步骤,为了简洁,不再赘述。
应理解,在本申请的各种实施例中,上述各方法的序号的大小并不意味着执行顺序的先后,各方法的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
在本申请所提供的几个实施例中,应该理解到,所公开的方法和设备,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
所述集成的单元如果以硬件结合软件的形式实现并作为独立的产品销售或使用时,所述软件可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案对现有技术做出贡献的部分技术特征可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分或全部步骤。而前述的存储介质可以是U盘、移动硬盘、只读存储器(简称:ROM,英文:Read-Only Memory)、随机存取存储器(简称:RAM,英文:Random Access Memory)、磁碟或者光盘。

Claims (19)

1.一种发送报文的方法,其特征在于,包括:
第一设备生成包含比特索引的显示复制BIER头的第一报文,所述BIER头包含熵Entropy,所述Entropy用于沿着转发路径转发所述第一报文,所述Entropy包含第一部分和第二部分,所述第一部分与所述第二部分不同;
所述第一设备根据所述第一报文的目的地址确定存在多条用于转发所述第一报文的转发表项;
所述第一设备根据所述第一部分从所述多条转发表项中选择一条转发表项,所述选择的转发表项包含第二设备的地址,所述第二设备为所述第一设备的下一跳设备;
所述第一设备向所述第二设备发送所述第一报文,所述第二部分用于所述第二设备从多条用于转发所述第一报文的转发表项中选择一条转发表项。
2.根据权利要求1所述的方法,其特征在于,所述第一部分和所述第二部分占用所述Entropy的比特位不同。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备根据所述第一设备的所述多条用于转发所述第一报文的转发表项的数量和所述第二设备的所述多条用于转发第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
4.根据权利要求1至3所述的方法,其特征在于,所述第一设备生成包含BIER头的第一报文包括:
所述第一设备从第四设备接收第二报文;
所述第一设备对所述第二报文封装BIER头生成所述第一报文。
5.一种发送报文的方法,其特征在于,包括:
第二设备接收第一设备发送的第一报文,所述第一报文包含比特索引的显示复制BIER头,所述BIER头包含熵Entropy,所述Entropy用于沿着转发路径转发所述第一报文,所述Entropy包含第一部分和第二部分,所述第一部分与所述第二部分不同,所述第一部分用于所述第一设备从多条用于转发所述第一报文的转发表项中选择一条转发表项;
所述第二设备根据所述第一报文的目的地址确定存在多条用于转发所述第一报文的转发表项;
所述第二设备根据所述第二部分从所述多条转发表项中选择一条转发表项,所述选择的转发表项包含第三设备的地址,所述第三设备为所述第二设备的下一跳设备;
所述第二设备向所述第三设备发送所述第一报文。
6.根据权利要求5所述的方法,其特征在于,所述第一部分和所述第二部分占用所述Entropy的比特位不同。
7.根据权利要求5或6所述的方法,其特征在于,所述第一报文的BIER头的Entropy值为根据所述第一设备的多条用于转发所述第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定的。
8.一种发送报文的设备,其特征在于,所述设备为多个设备中的第一设备,该设备包括:
生成单元,用于生成包含比特索引的显示复制BIER头的第一报文,所述BIER头包含熵Entropy,所述Entropy用于沿着转发路径转发所述第一报文,所述Entropy包含第一部分和第二部分,所述第一部分与所述第二部分不同;
确定单元,用于根据所述第一报文的目的地址确定存在多条用于转发所述第一报文的转发表项;
选择单元,用于根据所述第一部分从所述多条转发表项中选择一条转发表项,所述选择的转发表项包含第二设备的地址,所述第二设备为所述第一设备的下一跳设备;
发送单元,用于向所述第二设备发送所述第一报文,所述第二部分用于所述第二设备从多条用于转发所述第一报文的转发表项中选择一条转发表项。
9.根据权利要求8所述的设备,其特征在于,所述第一部分和所述第二部分占用所述Entropy的比特位不同。
10.根据权利要求8或9所述的设备,其特征在于,
所述确定单元,还用于根据所述第一设备的多条用于转发所述第一报文的转发表项的数量和第二设备的多条用于转发所述第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
11.根据权利要求8至10所述的设备,其特征在于,该设备还包括接收单元:
所述接收单元,用于从第四设备接收第二报文;
所述生成单元,用于对所述第二报文封装BIER头生成所述第一报文。
12.一种发送报文的设备,其特征在于,所述设备为多个设备中的第一设备,该设备包括:
接收单元,用于接收第一设备发送的第一报文,所述第一报文包含比特索引的显示复制BIER头,所述BIER头包含熵Entropy,所述Entropy用于沿着转发路径转发所述第一报文,所述Entropy包含第一部分和第二部分,所述第一部分与所述第二部分不同,所述第一部分用于所述第一设备从多条用于转发所述第一报文的转发表项中选择一条转发表项;
确定单元,用于根据所述第一报文的目的地址确定存在多条用于转发所述第一报文的转发表项;
选择单元,用于根据所述第二部分从所述多条转发表项中选择一条转发表项,所述选择的转发表项包含第三设备的地址,所述第三设备为所述第二设备的下一跳设备;
发送单元,用于向所述第三设备发送所述第一报文。
13.根据权利要求12所述的设备,其特征在于,所述第一部分和所述第二部分占用所述Entropy的比特位不同。
14.根据权利要求12或13所述设备,其特征在于,所述第一报文的BIER头的Entropy值根据所述第一设备的多条用于转发所述第一报文的转发表项的数量和第二设备的多条用于转发第一报文的转发表项的数量确定。
15.一种发送报文的系统,其特征在于,所述系统包括第一设备和第二设备,
所述第一设备,用于生成包含比特索引的显示复制BIER头的第一报文,根据所述第一报文的目的地址确定存在多条用于转发所述第一报文的转发表项,根据第一部分从所述多条转发表项中选择一条转发表项,向第二设备发送所述第一报文,所述BIER头包含熵Entropy,所述Entropy用于沿着转发路径转发所述第一报文,所述Entropy包含所述第一部分和第二部分,所述第一部分与所述第二部分不同,所述选择的转发表项包含所述第二设备的地址,所述第二设备为所述第一设备的下一跳设备;
所述第二设备,用于接收所述第一报文,根据所述第一报文的目的地址确定存在多条用于转发所述第一报文的转发表项,根据所述第二部分从所述多条转发表项中选择一条转发表项,向第三设备发送所述第一报文,所述第三设备为所述第二设备的下一跳设备。
16.根据权利要求15所述的系统,其特征在于,所述第一部分和所述第二部分占用所述Entropy的比特位不同。
17.根据权利要求15或16所述的系统,其特征在于,所述第一设备还用于根据所述第一设备的多条用于转发所述第一报文的转发表项的数量和第二设备的多条用于转发所述第一报文的转发表项的数量确定所述第一报文的BIER头的Entropy值。
18.根据权利要求15至17所述的系统,其特征在于,所述第一设备还用于从第四设备接收第二报文,并对所述第二报文封装BIER头生成所述第一报文。
19.一种计算机可读介质,包括指令,当其被计算机执行时,使得所述计算机执行如权利要求1至7任意一项所述的方法。
CN201810678773.3A 2018-06-27 2018-06-27 一种发送报文的方法、设备和系统 Active CN110650094B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN201810678773.3A CN110650094B (zh) 2018-06-27 2018-06-27 一种发送报文的方法、设备和系统
CN202110824494.5A CN113726666B (zh) 2018-06-27 2018-06-27 一种发送报文的方法和装置
EP19827130.6A EP3806409A4 (en) 2018-06-27 2019-06-15 PACKET TRANSMISSION PROCESS, DEVICE AND SYSTEM
PCT/CN2019/091437 WO2020001299A1 (zh) 2018-06-27 2019-06-15 一种发送报文的方法、设备和系统
US17/135,698 US11627084B2 (en) 2018-06-27 2020-12-28 Packet sending method, device, and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810678773.3A CN110650094B (zh) 2018-06-27 2018-06-27 一种发送报文的方法、设备和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110824494.5A Division CN113726666B (zh) 2018-06-27 2018-06-27 一种发送报文的方法和装置

Publications (2)

Publication Number Publication Date
CN110650094A true CN110650094A (zh) 2020-01-03
CN110650094B CN110650094B (zh) 2021-07-16

Family

ID=68984710

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201810678773.3A Active CN110650094B (zh) 2018-06-27 2018-06-27 一种发送报文的方法、设备和系统
CN202110824494.5A Active CN113726666B (zh) 2018-06-27 2018-06-27 一种发送报文的方法和装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110824494.5A Active CN113726666B (zh) 2018-06-27 2018-06-27 一种发送报文的方法和装置

Country Status (4)

Country Link
US (1) US11627084B2 (zh)
EP (1) EP3806409A4 (zh)
CN (2) CN110650094B (zh)
WO (1) WO2020001299A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113285878A (zh) * 2020-02-20 2021-08-20 华为技术有限公司 负载分担的方法、第一网络设备
WO2022021818A1 (zh) * 2020-07-31 2022-02-03 中兴通讯股份有限公司 数据报文的处理方法及装置、存储介质、电子装置
WO2023088244A1 (zh) * 2021-11-17 2023-05-25 华为技术有限公司 一种路径确定方法及装置

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11516126B2 (en) 2020-10-14 2022-11-29 Oracle International Corporation Techniques for high performant virtual routing capabilities
US11451468B2 (en) * 2021-01-28 2022-09-20 Cisco Technology, Inc. Management framework for BIER in-band traffic accounting and path monitoring
US11558245B1 (en) 2021-10-29 2023-01-17 Oracle International Corporation Secure bi-directional network connectivity system between private networks
US11736558B2 (en) 2021-10-29 2023-08-22 Oracle International Corporation Transparent mounting of external endpoints between private networks

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811387A (zh) * 2014-01-24 2015-07-29 思科技术公司 具有位索引显式复制的等价多路径
US20160119159A1 (en) * 2014-10-24 2016-04-28 Futurewei Technologies, Inc. Bit Index Explicit Replication Forwarding Using Replication Cache
CN105812197A (zh) * 2014-12-30 2016-07-27 华为技术有限公司 位转发入口路由器、位转发路由器及操作管理维护检测方法
CN105933228A (zh) * 2015-02-26 2016-09-07 思科技术公司 用于位索引显式复制的流量工程
CN106656794A (zh) * 2015-10-30 2017-05-10 中兴通讯股份有限公司 一种报文传输方法及装置
CN107623630A (zh) * 2016-07-13 2018-01-23 中兴通讯股份有限公司 一种位索引显式复制信息传递方法和装置
CN107645446A (zh) * 2016-07-21 2018-01-30 中兴通讯股份有限公司 一种信息确定方法和装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451474B2 (en) * 2013-09-17 2022-09-20 Cisco Technology, Inc. Equal cost multi-path with bit indexed explicit replication
US9942053B2 (en) * 2013-09-17 2018-04-10 Cisco Technology, Inc. Bit indexed explicit replication using internet protocol version 6
US9438432B2 (en) * 2013-09-17 2016-09-06 Cisco Technology, Inc. Bit indexed explicit replication packet encapsulation
US9571897B2 (en) * 2013-09-17 2017-02-14 Cisco Technology, Inc. Bit indexed explicit replication for professional media networks
GB2530311B (en) * 2014-09-19 2017-01-11 Imagination Tech Ltd Data compression
CN106603413B (zh) * 2015-10-14 2020-12-11 中兴通讯股份有限公司 通过指定路径传输流量的方法和装置
CN106603406B (zh) * 2015-10-16 2020-05-26 中兴通讯股份有限公司 一种bier网络中流量工程信息通告的方法和装置
CN106656524A (zh) * 2015-10-30 2017-05-10 中兴通讯股份有限公司 一种bier控制信息的传输方法、装置和系统
US10873524B2 (en) * 2016-01-07 2020-12-22 Telefonaktiebolaget Lm Ericsson (Publ) Optimized equal-cost multi-path (ECMP) forwarding decision in bit index explicit replication (BIER)
CN107124366B (zh) * 2016-02-24 2020-12-11 中兴通讯股份有限公司 一种实现服务质量控制的方法、装置及系统
CN107171977B (zh) * 2016-03-08 2021-08-17 中兴通讯股份有限公司 报文转发方法及装置
CN107294861B (zh) * 2016-03-30 2022-11-18 中兴通讯股份有限公司 组播流量的控制方法及装置
US10630743B2 (en) * 2016-09-23 2020-04-21 Cisco Technology, Inc. Unicast media replication fabric using bit indexed explicit replication
US10164794B2 (en) * 2017-04-28 2018-12-25 Cisco Technology, Inc. Bridging of non-capable subnetworks in bit indexed explicit replication
US10498667B2 (en) * 2017-09-28 2019-12-03 Nokia Technologies Oy Multicast based on bit indexed explicit replication
US10587495B2 (en) * 2018-03-21 2020-03-10 Nokia Solutions And Networks Oy Hierarchical bit indexed replication of multicast packets
US10608922B2 (en) * 2018-03-21 2020-03-31 Nokia Solutions And Networks Oy Hierarchical bit indexed replication of multicast packets

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811387A (zh) * 2014-01-24 2015-07-29 思科技术公司 具有位索引显式复制的等价多路径
US20160119159A1 (en) * 2014-10-24 2016-04-28 Futurewei Technologies, Inc. Bit Index Explicit Replication Forwarding Using Replication Cache
CN105812197A (zh) * 2014-12-30 2016-07-27 华为技术有限公司 位转发入口路由器、位转发路由器及操作管理维护检测方法
CN105933228A (zh) * 2015-02-26 2016-09-07 思科技术公司 用于位索引显式复制的流量工程
CN106656794A (zh) * 2015-10-30 2017-05-10 中兴通讯股份有限公司 一种报文传输方法及装置
CN107623630A (zh) * 2016-07-13 2018-01-23 中兴通讯股份有限公司 一种位索引显式复制信息传递方法和装置
CN107645446A (zh) * 2016-07-21 2018-01-30 中兴通讯股份有限公司 一种信息确定方法和装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113285878A (zh) * 2020-02-20 2021-08-20 华为技术有限公司 负载分担的方法、第一网络设备
CN113285878B (zh) * 2020-02-20 2022-08-26 华为技术有限公司 负载分担的方法、第一网络设备
WO2022021818A1 (zh) * 2020-07-31 2022-02-03 中兴通讯股份有限公司 数据报文的处理方法及装置、存储介质、电子装置
WO2023088244A1 (zh) * 2021-11-17 2023-05-25 华为技术有限公司 一种路径确定方法及装置

Also Published As

Publication number Publication date
CN113726666A (zh) 2021-11-30
US20210119921A1 (en) 2021-04-22
EP3806409A1 (en) 2021-04-14
US11627084B2 (en) 2023-04-11
CN113726666B (zh) 2022-11-18
EP3806409A4 (en) 2021-07-28
WO2020001299A1 (zh) 2020-01-02
CN110650094B (zh) 2021-07-16

Similar Documents

Publication Publication Date Title
CN110650094B (zh) 一种发送报文的方法、设备和系统
US10749794B2 (en) Enhanced error signaling and error handling in a network environment with segment routing
JP5551253B2 (ja) 複数の等コストパスから選択するための方法および装置
US10516549B2 (en) Multicast service with is-is spine-leaf extension in a fabric network
CN104811387B (zh) 具有位索引显式复制的等价多路径
EP2553886B1 (en) Aggregating data traffic from access domains
US8559341B2 (en) System and method for providing a loop free topology in a network environment
CN107409093A (zh) 网络环境中针对路由反射器客户端的自动最优路由反射器根地址分配和快速故障转移
EP3968581A1 (en) Method and related device for forwarding packets in data center network
CN104396197A (zh) 在802.1aq网络中使用分离的平局打破器在等成本最短路径之间选择
CN111147372B (zh) 下行报文发送、转发方法和装置
US10855816B2 (en) Highly parallel programmable packet editing engine with a scalable control infrastructure
CN103259720B (zh) 一种基于mtr的数据传输方法和设备
Erickson et al. An optimal single-path routing algorithm in the datacenter network DPillar
Ferrari et al. Multipath redundancy for industrial networks using IEEE 802.1 aq Shortest Path Bridging
WO2023011153A1 (zh) 负载均衡的哈希算法信息的确定方法、装置及存储介质
CN104469846B (zh) 一种报文处理方法及设备
JP2016103697A (ja) ネットワークシステム、制御装置、通信装置、通信装置の制御方法及びプログラム
US20230068443A1 (en) Dynamic packet routing using prioritized groups
CN114827008A (zh) 一种最短路径的确定方法以及相关设备

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
GR01 Patent grant
GR01 Patent grant