CN115589381A - 用于处理组播报文的方法及装置 - Google Patents
用于处理组播报文的方法及装置 Download PDFInfo
- Publication number
- CN115589381A CN115589381A CN202110699462.7A CN202110699462A CN115589381A CN 115589381 A CN115589381 A CN 115589381A CN 202110699462 A CN202110699462 A CN 202110699462A CN 115589381 A CN115589381 A CN 115589381A
- Authority
- CN
- China
- Prior art keywords
- node
- multicast
- segment identifier
- message
- list
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000012545 processing Methods 0.000 title claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 70
- 230000015654 memory Effects 0.000 description 24
- 230000006870 function Effects 0.000 description 17
- 238000004590 computer program Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 5
- 238000013461 design Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
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/16—Multipoint routing
-
- 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于处理组播报文的方法及装置。所述方法包括:第一节点在获取第一组播报文后,向第二节点发送第一组播报文。其中,第一组播报文包括第二节点的组播绑定段标识,第二节点的组播绑定段标识用于指示获取第一段标识列表,第一段标识列表用于指示向与第二节点通信的第三节点发送第一组播报文。由于第一组播报文包括第二节点的组播绑定段标识,且该组播绑定段标识用于指示获取第一段标识列表。
Description
技术领域
本申请涉及通信技术领域,特别涉及一种用于处理组播报文的方法及装置。
背景技术
通信系统通常包括多个节点,这些节点之间建立有通信连接,这些节点可以基于这些通信连接传输报文。当这些节点中的一个节点(也称头节点)向多个节点(也称尾节点)发送组播报文时,头节点会在报文中封装段标识列表(segment identity list,SIDlist),该段标识列表用于指示向该多个尾节点发送组播报文。之后,头节点便可以根据该段标识列表向多个尾节点发送该组播报文。目前,组播报文中会封装后续处理该报文的所有节点的段标识(segment identity,SID),使得应用场景受到SID长度的限制。
发明内容
本申请提供了一种用于处理组播报文的方法及装置,可以解决组播报文的应用场景受到SID长度的限制的问题,所述技术方案如下:
第一方面,提供了一种用于处理组播报文的方法,所述方法包括:第一节点在获取第一组播报文后,向第二节点发送所述第一组播报文。其中,所述第一组播报文包括第二节点的组播绑定段标识,第二节点的组播绑定段标识用于指示获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文。
由于该第一组播报文包括了第二节点的组播绑定段标识,且第二节点的组播绑定段标识用于指示获取第一段标识列表,因此,该第一组播报文可以不包括第一段标识列表。第二节点可以基于该第二节点的组播绑定段标识获取第一段标识列表,进而基于第一段标识列表向第三节点发送第一组播报文。可见,第一组播报文封装的节点的SID较少,避免了第一组播报文的应用场景受到SID长度的限制。并且,由于第一组播报文可以不包括段标识列表,因此,减小了第一组播报文的数据量,提升了第一组播报文的传输效率。
另外,在第一组播报文是比特索引显式复制(Bit Index Explicit Replication,BIER)报文时,第一节点发给第二节点的第一组播报文包括第二节点的组播绑定段标识,第二节点可以基于该组播绑定段标识获取第一段标识列表,并基于第一段标识列表向第三节点转发第一组播报文。可见,组播报文在第二节点和第三节点之间转发时,第一段标识列表能够指示第一组播报文需要经过的节点,从而在BIER场景中实现了路径规划。
第一组播报文需要包括第二节点的组播绑定段标识。可选地,第一组播报文包括DA字段,该(Destination Address,DA)字段包括第二节点的组播绑定段标识;或者,第一组播报文包括段路由头(segment routing header,SRH),该SRH包括第二节点的组播绑定段标识。当并不是SRH包括第二节点的组播绑定段标识时,第一组播报文可以包括SRH也可以不包括SRH。
比如,第一组播报文为分段路由(segment routing,SR)报文,该SR报文的DA字段包括第二节点的组播绑定段标识,此时,该SR报文可以包括SRH也可以不包括SRH。或者,该SR报文的SRH包括第二节点的组播绑定段标识。
又比如,第一组播报文为BIER报文,该BIER报文的DA字段包括第二节点的组播绑定段标识。或者,该BIER报文包括SRH,且该SRH包括第二节点的组播绑定段标识。
进一步地,第一节点获取第一组播报文的方式多种多样,以下将以第一节点在以下五种可能实现的场景下获取第一组播报文的方式为例进行讲解。
可能实现的场景1:第一节点是头节点(如第一节点是图1中的节点R),在获取第一组播报文时,第一节点可以先获取第二节点的组播绑定段标识,然后根据第二节点的组播绑定段标识生成该第一组播报文。
可能实现的场景2:第一节点是头节点,在获取第一组播报文时,第一节点获取第一组播报文的方式与可能实现的场景1中的方式相似,但第一组播报文进一步还包括:第一节点和第二节点之间用于转发第一组播报文的节点的组播段标识。
可能实现的场景3:第一节点是头节点和尾节点之间的中间节点,在获取第一组播报文时,第一节点可以先接收头节点(或者头节点和第一节点之间的其他节点)发送的第二组播报文。该第二组播报文包括第一节点的组播段标识和第二节点的组播绑定段标识。之后,第一节点可以基于第二组播报文获得第一组播报文。第一组播报文为第二组播报文包括的第一节点的组播段标识被弹出后所获得的组播报文。换句话说,第一节点可以将第二组播报文中第一节点的组播段标识弹出,得到第一组播报文。
可能实现的场景4:第一节点是头节点和尾节点之间的中间节点,第一组播报文是SR报文。在获取第一组播报文时,第一节点可以先接收头节点(或者头节点和第一节点之间的其他节点)发送的第二组播报文。第二组播报文包括第一节点的组播绑定段标识;之后,第一节点可以基于第一节点的组播绑定段标识获取第二段标识列表,第二段标识列表包括第二节点的组播绑定段标识;最后,第一节点可以基于第二组播报文和第二段标识列表,获得第一组播报文,第一组播报文为第二组播报文包括的第一节点的组播绑定段标识替换为第二节点的组播绑定段标识后所获得的组播报文。
上述可能实现的场景1、2、3和4中,第一组播报文均可以是SR报文或BIER报文。
可能实现的场景5:第一组播报文是基于BIER报文得到的组播报文。在获取第一组播报文时,第一节点可以首先获取一个BIER报文,该BIER报文包括比特串。之后,第一节点可以获取第二节点的组播绑定段标识,第二节点是到达比特串对应的位转发出口路由器(Bit forwarding exit router,BFER)的支持BIER的下一跳。最后,第一节点可以基于该BIER报文和第二节点的组播绑定段标识,获取第一组播报文,第一组播报文包括的DA字段用于携带第二节点的组播绑定段标识。
上述可能实现的场景1、2和5中,第一节点可以接收控制器发送的所述第二节点的组播绑定段标识,以获取到该第二节点的组播绑定段标识。
可选地,所述第一组播报文还包括第一段标识列表的标识。比如,所述第一组播报文包括互联网协议第6版(Internet Protocol version 6,IPv6)报文头,所述IPv6报文头包括所述第一段标识列表的标识;或者所述第一组播报文包括逐跳选项头,所述逐跳选项头包括所述第一段标识列表的标识。
在所述第一组播报文还包括第一段标识列表的标识时,第二节点可以根据该第一段标识列表的标识获取该第一段标识列表。示例地,第二节点在获取第一段标识列表之前,可以接收控制器发送的第二对应关系,第二对应关系包括第一段标识列表的标识和第一段标识列表。第二节点在基于第二节点的组播绑定段标识获取第一段标识列表时,可以基于第二节点的组播绑定段标识,利用第一段标识列表的标识和第二对应关系,获取第一段标识列表。
第二方面,提供了一种用于处理组播报文的方法,所述方法包括:第二节点在接收到第一节点发送的第一组播报文后,基于所述第一组播报文中的第二节点的组播绑定段标识获取第一段标识列表,以及基于所述第一段标识列表向所述第三节点转发所述第一组播报文。其中,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文。
第二节点获取第一段标识列表的方式多种多样,以下将以其中的两种方式为例进行讲解。
(1)在第一种方式中,第二节点在基于第二节点的组播绑定段标识获取第一段标识列表之前,可以接收控制器发送的第一对应关系,第一对应关系包括第二节点的组播绑定段标识和第一段标识列表;第二节点可以根据第二节点的组播绑定段标识以及该第一对应关系,获取第一段标识列表。
(2)在第二种方式中,该第一组播报文不仅包括第二节点的组播绑定段标识,还可以包括第一段标识列表的标识。此时,第二节点在获取第一段标识列表时,可以根据该第一段标识列表的标识获取该第一段标识列表。示例地,第二节点在获取第一段标识列表之前,可以接收控制器发送的第二对应关系,第二对应关系包括第一段标识列表的标识和第一段标识列表。第二节点在基于第二节点的组播绑定段标识获取第一段标识列表时,可以基于第二节点的组播绑定段标识,利用第一段标识列表的标识和第二对应关系,获取第一段标识列表。
可选地,第二节点在基于所述第一段标识列表向所述第三节点转发所述第一组播报文时,可以首先根据所述第一组播报文和所述第一段标识列表获得包括第三节点的组播段标识的第三组播报文,之后再基于第三节点的组播段标识向所述第三节点转发所述第三组播报文。
可选地,所述第三组播报文包括SRH,所述SRH包括所述第三节点的组播段标识。
可选地,第二节点在根据所述第一组播报文和所述第一段标识列表获得第三组播报文时,可以首先基于所述第一段标识列表获得包括所述第三节点的组播段标识的第三段标识列表,之后,根据所述第一组播报文和所述第三段标识列表,获得所述第三组播报文,所述第三组播报文包括所述第三段标识列表。
第三方面,提供了一种用于处理组播报文的方法,所述方法包括:控制器在确定所述第一节点和第二节点后,向所述第二节点发送第一对应关系或第二对应关系,以及向所述第一节点发送所述第二节点的组播绑定段标识。其中,所述第二节点与所述第一节点和所述第三节点通信;所述第一对应关系包括所述第二节点的组播绑定段标识与第一段标识列表,所述第二对应关系包括所述第一段标识列表的标识与第一段标识列表。其中,第二节点的组播绑定段标识可以包含在策略中下发给第一节点,第一对应关系或第二对应关系也可以包含在策略中下发给第二节点。
可选地,在所述确定所述第一节点到第三节点的路径上的第二节点之前,控制器还可以确定第一节点发往第三节点的组播报文需要经过的节点的数量;控制器可以在所述数量大于数量阈值时,确定所述第一节点和所述第二节点。控制器可以在所述数量小于或等于数量阈值时,不确定所述第一节点和所述第二节点。这样一来,可以降低控制器的负载。
第四方面,提供了一种用于处理组播报文的装置,所述装置设于第一节点,所述装置包括:获取模块和发送模块。获取模块用于获取第一组播报文,所述第一组播报文包括第二节点的组播绑定段标识,所述第二节点的组播绑定段标识用于指示获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;发送模块,用于向所述第二节点发送所述第一组播报文。
可选地,所述第一组播报文包括DA字段,所述DA字段包括所述第二节点的组播绑定段标识;或者所述第一组播报文包括SRH,所述SRH包括所述第二节点的组播绑定段标识。
当并不是SRH包括第二节点的组播绑定段标识时,第一组播报文可以包括SRH也可以不包括SRH。
比如,第一组播报文为SR报文,该SR报文的DA字段包括第二节点的组播绑定段标识,此时,该SR报文可以包括SRH也可以不包括SRH。或者,该SR报文的SRH包括第二节点的组播绑定段标识。
又比如,第一组播报文为BIER报文,该BIER报文的DA字段包括第二节点的组播绑定段标识。或者,该BIER报文包括SRH,且该SRH包括第二节点的组播绑定段标识。
进一步地,获取模块获取第一组播报文的方式多种多样,以下将以以下五种获取第一组播报文的方式为例进行讲解。
在第一种方式中,所述获取模块用于:获取所述第二节点的组播绑定段标识;根据所述第二节点的组播绑定段标识生成所述第一组播报文。
在第二种方式中,所述获取模块用于:获取所述第二节点的组播绑定段标识;根据所述第二节点的组播绑定段标识生成所述第一组播报文。所述第一组播报文还包括:所述第一节点和所述第二节点之间用于转发所述第一组播报文的节点的组播段标识。
在第三种方式中,所述获取模块用于:接收第二组播报文,所述第二组播报文包括所述第一节点的组播段标识和所述第二节点的组播绑定段标识;基于所述第二组播报文获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播段标识被弹出后所获得的组播报文。
在第四种方式中,所述获取模块用于:接收第二组播报文,所述第二组播报文包括所述第一节点的组播绑定段标识;基于所述第一节点的组播绑定段标识获取第二段标识列表,所述第二段标识列表包括所述第二节点的组播绑定段标识;基于所述第二组播报文和所述第二段标识列表,获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播绑定段标识替换为所述第二节点的组播绑定段标识后所获得的组播报文。
在第五种方式中,所述第一组播报文为BIER报文,所述获取模块用于:获取BIER报文,所述BIER报文包括比特串;获取所述第二节点的组播绑定段标识,所述第二节点是到达所述比特串对应的BFER的支持BIER的下一跳;基于所述BIER报文和所述第二节点的组播绑定段标识,获取所述第一组播报文,所述第一组播报文包括的DA字段用于携带所述第二节点的组播绑定段标识。
可选地,在上述第一种方式、第二种方式和第五种方式中,所述获取模块用于接收控制器发送的所述第二节点的组播绑定段标识。
本申请中,第一节点在一些可能实现的场景下需要获取第二节点的组播绑定段标识,进而根据第二节点的组播绑定段标识获取第一组播报文。该第二节点的组播绑定段标识可以是控制器或第二节点发送给第一节点的,也可以是静态配置在第一节点上的,本申请对此不作限定。其中,当第二节点的组播绑定段标识是控制器发送的时,第二节点的组播绑定段标识可以包括在控制器发送给第一节点的策略中;当第二节点的组播绑定段标识是第二节点发送的时,第二节点可以会将其组播绑定段标识(由控制器分配给第二节点)在全网泛洪,以使每个节点接收到第二节点的组播绑定段标识。
可选地,所述第一组播报文还包括第一段标识列表的标识。比如,所述第一组播报文包括IPv6报文头,所述IPv6报文头包括所述第一段标识列表的标识;或者所述第一组播报文包括逐跳选项头,所述逐跳选项头包括所述第一段标识列表的标识。
第五方面,提供了一种用于处理组播报文的装置,所述装置设于第二节点,所述装置包括:第一接收模块、获取模块和转发模块。其中,第一接收模块用于接收第一节点发送的第一组播报文,所述第一组播报文包括所述第二节点的组播绑定段标识;获取模块用于基于所述第二节点的组播绑定段标识获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;转发模块用于基于所述第一段标识列表向所述第三节点转发所述第一组播报文。
获取模块获取第一段标识列表的方式多种多样,以下将以其中的两种方式为例进行讲解。
在一种方式中,所述装置还包括:第二接收模块(图7中未示出)。第二接收模块可以用于接收控制器发送的第一对应关系,所述第一对应关系包括所述第二节点的组播绑定段标识和所述第一段标识列表。所述获取模块用于根据所述第二节点的组播绑定段标识以及所述第一对应关系,获取所述第一段标识列表。
在另一种方式中,所述第一组播报文还包括第一段标识列表的标识,所述装置还包括:第三接收模块(图7中未示出)。第三接收模块用于接收控制器发送的第二对应关系,所述第二对应关系包括所述第一段标识列表的标识和所述第一段标识列表;所述获取模块702用于基于所述第二节点的组播绑定段标识,利用所述第一段标识列表的标识和所述第二对应关系,获取所述第一段标识列表。
可选地,所述转发模块用于根据所述第一组播报文和所述第一段标识列表获得第三组播报文,所述第三组播报文包括所述第三节点的组播段标识;基于所述第三节点的组播段标识向所述第三节点转发所述第三组播报文。示例地,所述第三组播报文包括SRH,所述SRH包括所述第三节点的组播段标识。
进一步地,所述转发模块可以用于:基于所述第一段标识列表获得第三段标识列表,所述第三段标识列表包括所述第三节点的组播段标识;根据所述第一组播报文和所述第三段标识列表,获得所述第三组播报文,所述第三组播报文包括所述第三段标识列表。
第六方面,提供了一种用于处理组播报文的装置,该装置设于控制器。所述装置包括:第一确定模块、第一发送模块和第二发送模块。第一确定模块用于确定所述第一节点和第二节点,所述第二节点与所述第一节点和所述第三节点通信。第一发送模块用于向所述第二节点发送第一对应关系或第二对应关系,所述第一对应关系包括所述第二节点的组播绑定段标识与第一段标识列表,所述第二对应关系包括所述第一段标识列表的标识与第一段标识列表;第二发送模块用于向所述第一节点发送所述第二节点的组播绑定段标识。
可选地,控制器还包括:第二确定模块,第二确定模块用于确定第一节点发往第三节点的组播报文需要经过的节点的数量。第一确定模块可以在所述数量大于数量阈值时,确定所述第一节点和所述第二节点。
第七方面,提供了一种通信设备,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行第一方面中任一设计所述的用于处理组播报文的方法。
第八方面,提供了一种通信设备,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行第二方面中任一设计所述的用于处理组播报文的方法。
第九方面,提供了一种通信设备,所述通信设备包括:处理器和存储器,所述存储器中存储有程序;所述处理器用于调用所述存储器中存储的程序,以使得所述通信设备执行第三方面中任一设计所述的用于处理组播报文的方法。
第十方面,提供了一种通信系统,包括:第一节点、第二节点和第三节点,所述第一节点和所述第三节点均与所述第二节点通信;
所述第一节点包括第四方面中任一设计所述的用于处理组播报文的装置,所述第二节点包括第五方面中任一设计所述的用于处理组播报文的装置;
或者,所述第一节点为第七方面中任一设计所述的通信设备,所述第二节点为第八方面中任一设计所述的通信设备。
可选地,该通信系统还包括控制器,所述第一节点包括第六方面中任一设计所述的用于处理组播报文的装置,或者所述第一节点为第九方面中任一设计所述的通信设备。
第十一方面,提供了一种计算机存储介质,所述计算机存储介质内存储有计算机程序;
所述计算机程序在计算机上运行时,使得计算机执行第一方面中任一设计所述的用于处理组播报文的方法;或者,所述计算机程序在计算机上运行时,使得计算机执行第二方面中任一设计所述的用于处理组播报文的方法;或者,所述计算机程序在计算机上运行时,使得计算机执行第三方面中任一设计所述的用于处理组播报文的方法。
第十二方面,提供了一种包含指令的计算机程序产品,当计算机程序产品在通信设备上运行时,使得通信设备执行如第一方面任一设计所述的用于处理组播报文的方法;或者,当计算机程序产品在通信设备上运行时,使得通信设备执行如第二方面任一设计所述的用于处理组播报文的方法;或者,当计算机程序产品在通信设备上运行时,使得通信设备执行如第三方面任一设计所述的用于处理组播报文的方法。
第二方面至第十二方面中任一种设计方式所带来的技术效果可参见第一方面中相应设计方式所带来的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种通信系统的结构示意图;
图2为本申请实施例提供的一种通信设备的结构示意图;
图3为本申请实施例提供的一种用于处理组播报文的方法的流程图;
图4为本申请实施例提供的一种第二节点向第三节点转发组播报文的流程图;
图5为本申请实施例提供的另一种通信系统的结构示意图;
图6为本申请实施例提供的一种用于处理组播报文的装置的框图;
图7为本申请实施例提供的另一种用于处理组播报文的装置的框图;
图8为本申请实施例提供的另一种用于处理组播报文的装置的框图。
具体实施方式
为使本申请的原理和技术方案更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为本申请实施例提供的一种通信系统的结构示意图,如图1所示,该通信系统包括:多个节点(如图1中的节点R、P1、P2、P3、P4、L1、L2、L3和L4)。图1中以通信系统包括9个节点为例,通信系统中节点的个数也可以是其他个数,如100、1000等。
节点可以称为转发节点,节点具有转发报文的功能,节点可以是路由器或网关等具有转发功能的设备。节点是一种通信设备,通信设备可以包括:处理器;处理器用于与存储器耦合,并读取存储器中的指令之后,根据指令执行如本申请实施例描述的由通信设备执行的方法。在该通信设备中,处理器的个数可以为多个,与处理器耦合的存储器可以独立于处理器之外或独立于通信设备之外,也可以在处理器或网络设备之内。存储器可以是物理上独立的单元,也可以是云服务器上的存储空间或网络硬盘等。可选地,存储器可以为一个或多个。当存储器的个数为多个时,可以位于相同的或不同的位置,并且可以独立或配合使用。示例性地,当存储器位于通信设备内部时,请参考图2,图2为本申请实施例提供的一种通信设备的结构示意图。该通信设备200包括:处理器202和存储器201,其中,存储器201用于存储程序,处理器202用于调用存储器201中存储的程序,以使得该通信设备执行相应的方法或功能。可选地,如图2所示,该通信设备200还可以包括至少一个通信接口203和至少一个通信总线204。存储器201、处理器202以及通信接口203通过通信总线204通信连接。其中,通信接口203用于在处理器202的控制下与其他设备通信,处理器202可以通过通信总线204调用存储器201中存储的程序。
通信系统的节点之间建立有通信连接,这些节点可以基于节点之间建立的通信连接传输报文。当这些节点中的一个节点(也称头节点)向多个节点(也称尾节点)发送报文时,该报文称为组播报文。目前,节点可以基于分段路由版本6(Segment Routing Version6,SRv6)技术传输组播报文。SRv6技术是基于源路由理念而设计的在网络上转发IPv6报文的一种协议,头节点在基于SRv6技术向多个尾节点发送组播报文时,头节点会在组播报文中封装段标识列表。该段标识列表用于指示向该多个尾节点发送该组播报文。之后,头节点便可以基于该段标识列表向多个尾节点发送该组播报文。并且,段标识列表包括组播报文需要经过的节点的组播段标识(multicast segment identity,multicast SID),组播报文在从头节点发送至多个尾节点的过程中,需要经过该段标识列表中组播段标识所指示的节点,从而实现了从头节点到多个尾节点的路径规划。
示例地,在组播场景中,段标识列表按照点到多点(Point To Multipoint,P2MP)树的层级来编码。以图1为例,用于指示向节点L1、L2、L3和L4发送该组播报文的段标识列表可以看成以节点P1为根的P2MP树,节点P1在P2MP树的第一层,节点P1的子节点P2和P3在P2MP的第二层,以此类推。段标识列表中的节点的顺序按照节点在P2MP树中的层级排布。比如,当节点R需要向节点L1、L2、L3和L4发送组播报文时,该组播报文可以包含段标识列表,且该段标识列表可以包括:节点P1的组播段标识,节点P2的组播段标识,节点P3的组播段标识,节点L1的组播段标识,节点L2的组播段标识,节点P4的组播段标识,节点L3的组播段标识以及节点L4的组播段标识。
进一步地,段标识列表中每个节点的组播段标识可以包括:定位器(locator)、函数(function)和参数(arguments)。locator又可以表示为B:N,B为节点所在的子网的标识,N为节点在该子网中的段标识,B:N能够唯一指示一个节点。function用于指示locator所指示的节点进行相应的操作。例如,function包括:分支数(N-Branches)和段标识数(N-SIDs),其中,N-Branches用于指示locator所指示的节点在P2MP树中的分支数量;N-SIDs用于指示:在P2MP树中locator所指示的节点下节点的数量。arguments用于指示一些与报文相关的流或服务等信息。示例地,在图1的场景中,节点R向节点L1、L2、L3和L4发送的组播报文,P2MP树的根节点为节点P1,叶子节点为节点L1、L2、L3和L4。节点R向节点L1、L2、L3和L4发送的组播报文中的段标识列表可以如表1所示。
根据表1可以看出:节点P1有2个分支,分别为节点P2和节点P3,且节点P1下有7个节点(分别为节点P2、P3、P4、L1、L2、L3和L4)。节点P2有2个分支,分别为节点L1和节点L2,且节点P2下有2个节点(分别为节点L1和L2)。节点P3有1个分支,为节点P4,且节点P3下有3个节点(分别为节点P4、L3和L4)。节点P4有2个分支,分别为节点L3和L4,且节点P4下有2个节点(分别为节点L3和L4)。节点L1、L2、L3和L4均没有分支,且节点L1、L2、L3和L4下均没有其他节点。
表1
locator | N-Branches | N-SIDs | arguments |
节点P1的locator | 2 | 7 | arguments |
节点P2的locator | 2 | 2 | arguments |
节点P3的locator | 1 | 3 | arguments |
节点L1的locator | 0 | 0 | arguments |
节点L2的locator | 0 | 0 | arguments |
节点P4的locator | 2 | 2 | arguments |
节点L3的locator | 0 | 0 | arguments |
节点L4的locator | 0 | 0 | arguments |
头节点会将包括段标识列表的组播报文向每个尾节点发送,当该组播报文传输至段标识列表中第一个组播段标识所指示的节点时,该节点需要对该段标识列表进行更新,并向尾节点发送更新段标识列表后的组播报文。示例地,请继续参考图1,当节点R在将包括表1所示的段标识列表的组播报文发送至节点P1时,由于节点P1是该段标识列表中第一个段标识是节点P1的组播段标识,所以,节点P1需要对该段标识列表进行更新。比如,节点P1可以首先解析出节点P1的组播段标识中的N-Branches和N-SIDs,之后,节点P1可以根据该N-Branches确定节点P1的分支分别为节点P2和P3,并从该段标识列表中提取节点P2的组播段标识为第一个段标识的段标识列表(如表2所示),以及节点P3的组播段标识为第一个段标识的段标识列表(如表3所示)。最后,节点P1可以将组播报文中的段标识列表分别替换为表2和表3所示的段标识列表,得到用于发往节点P2和P3的组播报文,并将得到的组播报文分别发往节点P2和P3。节点P2和节点P3在接收到组播报文后的操作可以参考节点P1在接收到组播报文后的操作,以此类推,直至组播报文发送至节点L1、L2、L3和L4。
表2
locator | N-Branches | N-SIDs | arguments |
节点P2的locator | 2 | 2 | arguments |
节点L1的locator | 0 | 0 | arguments |
节点L2的locator | 0 | 0 | arguments |
表3
locator | N-Branches | N-SIDs | arguments |
节点P3的locator | 1 | 3 | arguments |
节点P4的locator | 2 | 2 | arguments |
节点L3的locator | 0 | 0 | arguments |
节点L4的locator | 0 | 0 | arguments |
目前,组播报文中会封装后续处理该报文的所有节点的SID,使得组播报文的应用场景受到SID长度的限制。并且,在头节点向多个尾节点发送组播报文时,如果头节点到多个尾节点的路径上的节点较多,那么封装到报文中的段标识列表较长。此时,被转发的报文的数据量较大,从而影响报文转发的效率。即便是对段标识列表中的组播段标识的长度进行压缩,但是由于段标识列表所包含的组播段标识数量较多,因此,段标识列表的长度依然较长。并且,如果设备支持的段标识列表最多包含10个组播段标识的话,那么组播报文的应用场景仍然较为有限。
另外,目前节点还可以基于BIER技术发送组播报文。头节点在基于BIER技术向多个尾节点发送组播报文时,头节点会在组播报文中封装比特串(bitstring)。之后,头节点便可以根据该比特串确定到达比特串对应的BFER的支持BIER的下一跳,并将该组播报文的DA字段设置为该下一跳的位索引显示复制的节点标识(End.Bier),以及将该组播报文发送至该下一跳。该下一跳在接收到该组播报文后,发现该组播报文的DA字段包括自己的End.Bier,此时,该下一跳可以参考头节点更新DA字段以及发送该组播报文。如此往复,直至该组播报文发送至多个尾节点。但是,节点在基于BIER技术发送组播报文的场景下,无法指定组播报文需要经过的节点,所以,无法实现头节点到多个尾节点的路径规划。
本申请实施例提供了一种用于处理组播报文的方法,该方法中的组播报文可以不包括段标识列表,因此,减小了组播报文的数据量,提升了组播报文的传输效率。另外,节点在基于BIER技术发送组播报文的场景下,通过该方法能够实现路径规划。
示例地,图3为本申请实施例提供的一种用于处理组播报文的方法的流程图,如图3所示,该方法可以包括:
S101、第一节点获取第一组播报文,第一组播报文包括第二节点的组播绑定段标识。
在头节点向多个尾节点发送组播报文的场景下,第一节点可以是头节点,也可以是头节点和多个尾节点之间的中间节点。第一节点和第三节点均与第二节点通信,第二节点可以是第一节点和第三节点之间的中间节点。第三节点可以是尾节点,或者第三节点是第二节点和尾节点之间的中间节点。
第一组播报文需要包括第二节点的组播绑定段标识。可选地,第一组播报文包括DA字段,该DA字段包括第二节点的组播绑定段标识;或者,第一组播报文包括SRH,该SRH包括第二节点的组播绑定段标识。当并不是SRH包括第二节点的组播绑定段标识时,第一组播报文可以包括SRH也可以不包括SRH。比如,第一组播报文为SR报文,该SR报文的DA字段包括第二节点的组播绑定段标识,此时,该SR报文可以包括SRH也可以不包括SRH。或者,该SR报文的SRH包括第二节点的组播绑定段标识。又比如,第一组播报文为BIER报文,该BIER报文的DA字段包括第二节点的组播绑定段标识。或者,该BIER报文包括SRH,且该SRH包括第二节点的组播绑定段标识。第二节点的组播段标识用于指示获取第一段标识列表。第一段标识列表能够用于指示向(一个或多个)第三节点发送第一组播报文。示例地,以图1所示的场景为例,假设节点R是第一节点,节点P1是第二节点,节点L1、L2、L3和L4均是第三节点。那么,该第一组播报文是节点R生成的,且该第一组播报文包括节点P1的组播绑定段标识。节点P1的组播绑定段标识用于指示获取的第一段标识列表可以如上述表1所示。可以看出,第一组播报文无需包括表1所示的段标识列表,而是仅需包括节点P1的组播绑定段标识即可,所以第一组播报文的数据量较少。
S102、第一节点向第二节点发送第一组播报文。
第一节点在得到第一组播报文后,可以根据第一组播报文中第二节点的组播绑定段标识,向第二节点发送第一组播报文。
S103、第二节点基于第二节点的组播绑定段标识获取第一段标识列表。
第二节点在接收到第一组播报文后,若检测到该第一组播报文中包括第二节点的组播绑定段标识,则第二节点可以基于该组播绑定段标识获取第一段标识列表。第二节点获取第一段标识列表的方式多种多样,以下将以其中的两种方式为例进行讲解。
(1)在第一种方式中,图1所示的场景中还可以包括控制器,控制器与每个节点通信连接。第二节点在基于第二节点的组播绑定段标识获取第一段标识列表之前,可以接收控制器发送的第一对应关系,第一对应关系包括第二节点的组播绑定段标识和第一段标识列表;第二节点在S103中可以根据第二节点的组播绑定段标识以及该第一对应关系,获取第一段标识列表。本申请实施例中以第一对应关系由控制器发送给第二节点为例,该第一对应关系也可以不由控制器发送给第二节点,比如,该第一对应关系静态配置在第二节点上,本申请实施例对此不作限定。
(2)在第二种方式中,该第一组播报文不仅包括第二节点的组播绑定段标识,还可以包括第一段标识列表的标识(可以称为组播树标识(Tree-ID))。此时,第二节点在获取第一段标识列表时,可以基于第二节点的组播绑定段标识,根据该第一段标识列表的标识获取该第一段标识列表。示例地,第二节点在获取第一段标识列表之前,可以接收控制器发送的第二对应关系,第二对应关系包括第一段标识列表的标识和第一段标识列表。第二节点在基于第二节点的组播绑定段标识获取第一段标识列表时,可以基于第二节点的组播绑定段标识,利用第一段标识列表的标识和第二对应关系,获取第一段标识列表。本申请实施例中以第二对应关系由控制器发送给第二节点为例,该第二对应关系也可以不由控制器发送给第二节点,比如,该第二对应关系静态配置在第二节点上,本申请实施例对此不作限定。
第一段标识列表的标识可以携带在第一组播报文中的任一部分,比如,第一组播报文包括IPv6报文头,该IPv6报文头(如IPv6报文头中的流标签(flowlabel)字段)包括第一段标识列表的标识;又比如,第一组播报文包括逐跳选项头(hop-by-hop optionsheader,HBH header),逐跳选项头包括第一段标识列表的标识。
S104、第二节点基于第一段标识列表向第三节点转发第一组播报文。
第二节点在获取到第一段标识列表之后,可以基于该第一段标识列表向第三节点转发第一组播报文。示例地,如图4所示,S104可以包括:
S1041、第二节点根据第一组播报文和第一段标识列表获得第三组播报文,第三组播报文包括第三节点的组播段标识。
可选地,第三组播报文包括SRH,SRH包括第三节点的组播段标识。第二节点可以首先基于第一段标识列表获得第三段标识列表,第三段标识列表包括第三节点的组播段标识。之后,第二节点根据第一组播报文和第三段标识列表,获得第三组播报文,第三组播报文包括该第三段标识列表。比如,当第一组播报文中的SRH包括第二节点的组播绑定段标识时,第二节点可以将第一组播报文的SRH中的第二节点的组播绑定段标识替换为第三段标识列表,得到第三组播报文。又比如,当第一组播报文中的DA字段包括第二节点的组播绑定段标识时,第二节点可以将第一组播报文的SRH设置为包括第三段标识列表,并将DA字段中第二节点的组播绑定段标识替换为第三段标识列表中的第一个段标识,得到第三组播报文。如果第一组播报文不包括SRH,那么第二节点可以在第一组播报文中增加SRH。
仍然以S101中的例子为例,第一段标识列表如表1所示,节点P1基于第一段标识列表
能够获得如表2和表3所示的两个段标识列表。之后,节点P1可以基于第一组播报文中节点
P1的组播绑定段标识,得到分别包括表2和表3所示的段标识列表的两个第三组播报文。
S1042、第二节点基于第三节点的组播段标识向第三节点转发第三组播报文。
第二节点在得到第三组播报文后,便可以基于该第三组播报文中的第三段标识列表(包括第三节点的组播段标识)向第三节点转发第三组播报文。
仍然以S1041中的例子为例,节点P1可以基于表2所示的第三段标识列表,向节点L1和L2发送包括表2所示的第三段标识列表的第三组播报文,以及基于表3所示的第三段标识列表,向节点P3发送包括表3所示的第三段标识列表的第三组播报文。节点P3在接收到该第三组播报文后,可以基于表3所示的第三段标识列表,得到分别包括节点L3和L4的组播段标识的两个段标识列表,进而将第三组播报文中的第三段标识列表分别替换为这两个段标识列表,得到两个组播报文,并向节点L3和L4分别发送这两个组播报文。
通过上述S1041和S1042,便能够实现第二节点基于第一段标识列表将第一组播报文转发至第三节点。
根据本申请实施例提供的用于处理组播报文的方法可知,第一节点在向第三节点发送第一组播报文时,第一组播报文包括第二节点的组播绑定段标识。第二节点在接收到该第一组播报文后,会基于其中的第二节点的组播绑定段标识获取第一段标识列表,之后再基于该第一段标识列表向第三节点转发第一组播报文。由于该第一组播报文包括了第二节点的组播绑定段标识,且第二节点的组播绑定段标识用于指示获取第一段标识列表,因此,第一节点向第二节点发送的第一组播报文可以无需包括第一段标识列表。这样一来,第一组播报文封装的节点的SID较少,避免了第一组播报文的应用场景受到SID长度的限制。并且,第一组播报文的数据量较少,保证了第一组播报文的传输效率较高。
进一步地,上述S101中第一节点获取第一组播报文的方式多种多样,以下将以第一节点在以下五种可能实现的场景下获取第一组播报文的方式为例进行讲解。
可能实现的场景1:第一节点是头节点(如第一节点是图1中的节点R),在获取第一组播报文时,第一节点可以先获取第二节点的组播绑定段标识,然后根据第二节点的组播绑定段标识生成该第一组播报文。在可能实现的场景1中,第二节点是第一节点的下一跳,第一节点获取的第一组播报文所包括的与SID相关的信息仅包括第二节点的组播绑定段标识。比如,图1中的节点R是第一节点,图1中的节点P1是第二节点,此时,第一组播报文还包括节点P1的组播绑定段标识。
可能实现的场景2:第一节点是头节点,在获取第一组播报文时,第一节点获取第一组播报文的方式与可能实现的场景1中的方式相似,但第一组播报文进一步还包括:第一节点和第二节点之间用于转发第一组播报文的节点的组播段标识。在可能实现的场景2中,第二节点并不是第一节点的下一跳,此时,该第一组播报文需要包括第一节点和第二节点之间用于转发第一组播报文的中间节点的组播段标识。第一节点可以通过该中间节点将该第一组播报文传输至第二节点。中间节点在转发该第一组播报文的过程中,可以将自己的组播段标识弹出。比如,图1中的节点R是第一节点,图1中的节点P2和节点P3均是第二节点,此时,第一组播报文还包括节点P1的组播段标识。又比如,图1中的节点R是第一节点,图1中的节点P2是第二节点,此时,第一组播报文还包括节点P1的组播段标识,以及节点P3、P4、L3和L4的组播段标识。
可能实现的场景3:第一节点是头节点和尾节点之间的中间节点,在获取第一组播报文时,第一节点可以先接收头节点(或者头节点和第一节点之间的其他节点)发送的第二组播报文。该第二组播报文包括第一节点的组播段标识和第二节点的组播绑定段标识。之后,第一节点可以基于第二组播报文获得第一组播报文。第一组播报文为第二组播报文包括的第一节点的组播段标识被弹出后所获得的组播报文。换句话说,第一节点可以将第二组播报文中第一节点的组播段标识弹出,得到第一组播报文。在可能实现的场景3中,头节点可以参考可能实现的场景2中生成第一组播报文的方式,生成包括第一节点的组播段标识和第二节点的组播绑定段标识的第二组播报文,之后,再将该第二组播报文发送至第一节点,以便于第一节点基于该第二组播报文得到第一组播报文。比如,图1中的节点P1是第一节点,节点P2和P3均是第二节点。头节点R会向节点P1发送第二组播报文,该第二组播报文包括节点P1的组播段标识,以及节点P2和节点P3的组播绑定段标识。节点P1会将该第二组播报文中节点P1的组播段标识弹出,并根据剩余的段标识得到分别用于发往节点P2和P3的第一组播报文。其中,用于发往节点P2的第一组播报文包括节点P2的组播绑定段标识,用于发往节点P3的第一组播报文包括节点P3的组播绑定段标识。
可能实现的场景4:第一节点是头节点和尾节点之间的中间节点,第一组播报文是SR报文。在获取第一组播报文时,第一节点可以先接收头节点(或者头节点和第一节点之间的其他节点)发送的第二组播报文。第二组播报文包括第一节点的组播绑定段标识;之后,第一节点可以基于第一节点的组播绑定段标识获取第二段标识列表,第二段标识列表包括第二节点的组播绑定段标识;最后,第一节点可以基于第二组播报文和第二段标识列表,获得第一组播报文。其中,第一组播报文为第二组播报文包括的第一节点的组播绑定段标识替换为第二节点的组播绑定段标识后所获得的组播报文。在可能实现的场景4中,头节点参考可能实现的场景1中生成第一组播报文的方式生成包括第一节点的组播绑定段标识的第二组播报文,之后,再将该第二组播报文发送至第一节点。第一节点可以参考上述S103中基于第一节点的组播绑定段标识获取第二段标识列表(包括第二节点的组播绑定段标识),之后,再将第二组播报文中第一节点的组播绑定段标识替换为第二节点的组播绑定段标识得到第一组播报文。比如,图1中的节点P1是第一节点,节点P2和P3均是第二节点。头节点R会向节点P1发送第二组播报文,该第二组播报文包括节点P1的组播绑定段标识。节点P1会根据该组播绑定段标识,获取包括节点P2和P3的组播绑定段标识的第二段标识列表。之后,节点P1会将第二组播报文中节点P1的组播绑定段标识分别替换为节点P2和P3的组播绑定段标识,得到分别用于发往节点P2和P3的两个第一组播报文。其中,用于发往节点P2的第一组播报文包括节点P2的组播绑定段标识,用于发往节点P3的第一组播报文包括节点P3的组播绑定段标识。
上述可能实现的场景1、2、3和4中,第一组播报文可以是SR报文或BIER报文。
可能实现的场景5:第一组播报文是基于BIER报文得到的组播报文。在获取第一组播报文时,第一节点可以首先获取一个BIER报文,该BIER报文包括比特串。示例地,第一节点是头节点时,第一节点生成该BIER报文;第一节点是中间节点时,第一节点可以通过接收头节点(或者头节点和第一节点之间的其他节点)发送的BIER报文。之后,第一节点可以获取第二节点的组播绑定段标识,第二节点是到达比特串对应的BFER的支持BIER的下一跳。示例地,第一节点可以根据BIER报文中的比特串,确定到达比特串对应的BFER的支持BIER的下一跳(也即第二节点),之后,再获取该第二节点的组播绑定段标识。最后,第一节点可以基于该BIER报文和第二节点的组播绑定段标识,获取第一组播报文,第一组播报文包括的DA字段用于携带第二节点的组播绑定段标识。示例地,第一节点可以将第二节点的组播绑定段标识写入BIER报文中的DA字段,从而得到第一组播报文。
根据以上内容可知,在第一组播报文是BIER报文时,第一节点发给第二节点的第一组播报文包括第二节点的组播绑定段标识,第二节点可以基于该组播绑定段标识获取第一段标识列表,并基于第一段标识列表向第三节点转发第一组播报文。可见,组播报文在第二节点和第三节点之间转发时,第一段标识列表能够指示第一组播报文需要经过的节点,从而在BIER场景中实现了路径规划。
本申请实施例中,第一节点在一些可能实现的场景下需要获取第二节点的组播绑定段标识,进而根据第二节点的组播绑定段标识获取第一组播报文。该第二节点的组播绑定段标识可以由控制器或第二节点发送给第一节点,也可以静态配置在第一节点上,本申请实施例对此不作限定。其中,当第二节点的组播绑定段标识由控制器发送给第一节点时,第二节点的组播绑定段标识可以包括在控制器发送给第一节点的策略(policy)中;当第二节点的组播绑定段标识由第二节点发送给第一节点时,第二节点可以会将其组播绑定段标识(由控制器分配给第二节点)在全网泛洪,以使每个节点接收到第二节点的组播绑定段标识。
以上实施例中以第一节点通过第二节点向第三节点传输第一组播报文为例,对本申请实施例提供的用于处理组播报文的方法进行了说明。这里的第一节点、第二节点和第三节点可以称为一组节点,这组节点中第一节点到第二节点的组播报文的长度进行了压缩。
当头节点通过多个中间节点向尾节点传输组播报文时,头节点到尾节点的路径上可以存在至少一组节点,每组节点至少包括第一节点、第二节点和第三节点。并且,在该路径上存在多组节点时,该多组节点可以存在交叉,比如,一组节点中的第二节点是另一组节点中的第一节点,又比如,两组节点的第三节点可以相同。
(1)以图1所示的场景为例,假设节点R到节点P1之间传输的组播报文的长度进行了压缩,节点P1到节点P2之间传输的组播报文的长度进行了压缩,以及节点P1到节点P3之间传输的组播报文的长度进行了压缩,那么图1所示的场景中共存在三组节点。
第一组节点包括:节点R、节点P1、节点L1、L2、L3和L4,其中,节点R为第一节点,节点P1为第二节点,节点L1、L2、L3和L4均为第三节点。第二组节点包括:节点P1、节点P2、节点L1和L2,其中,节点P1为第一节点,节点P2为第二节点,节点L1和L2均为第三节点。第三组节点包括:节点P1、节点P3、节点L3和L4,其中,节点P1为第一节点,节点P3为第二节点,节点L3和L4均为第三节点。以下将对这三组节点传输组播报文的过程进行讲解。
节点R发送给节点P1的组播报文为SR报文,该组播报文包括节点P1的组播绑定段标识,且不包括段标识列表。节点P1在接收到节点R发出的组播报文后,会根据节点P1的组播绑定段标识,获取段标识列表,该段标识列表包括节点P1的组播段标识、节点P2的组播绑定段标识以及节点P3的组播绑定段标识。并且,节点P1会将该组播报文中节点P1的组播绑定段标识,替换为该段标识列表中节点P2的组播绑定段标识得到用于发往节点P2的组播报文,以及替换为该段标识列表中节点P3的组播绑定段标识得到用于发往节点P3的组播报文。最后,节点P1会将用于发往节点P2的组播报文发往节点P2,以及将用于发往节点P3的组播报文发往节点P3。一方面,节点P2在接收到节点P1发出的组播报文后,会根据节点P2的组播绑定段标识,获取如上述表2所示的段标识列表。之后,节点P2可以基于该段标识列表得到两个段标识列表,这两个段标识列表分别包括节点L1和L2的组播段标识。最后,节点P2可以在该组播报文中设置包括节点L1的组播段标识的段标识列表的SRH,得到用于发往节点L1的组播报文,并向节点L1发送该组播报文。节点P2还可以在该组播报文中设置包括节点L2的组播段标识的段标识列表的SRH,得到用于发往节点L2的组播报文,并向节点L2发送该组播报文。另一方面,节点P3在接收到节点P1发出的组播报文后,会根据节点P3的组播绑定段标识,获取如上述表3所示的段标识列表。之后,节点P3可以基于该段标识列表得到另一段标识列表,该段标识列表包括节点P4、L3和L4的组播段标识。最后,节点P3在该组播报文中设置包括节点P4、L3和L4的组播段标识的段标识列表的SRH,得到用于发往节点P4的组播报文,并向节点P4发送该组播报文。节点P4在接收到节点P3发出的组播报文后,会基于该组播报文中段标识列表,得到两个段标识列表,这两个段标识列表分别包括节点L3和L4的组播段标识。最后,节点P4可以将该组播报文中的段标识列表替换为包括节点L3的组播段标识的段标识列表,得到用于发往节点L3的组播报文,并向节点L3发送该组播报文。节点P4还可以将该组播报文中的段标识列表替换为包括节点L4的组播段标识的段标识列表,得到用于发往节点L4的组播报文;节点P4还可以向节点L4发送该组播报文。
(2)以图5所示的场景为例,假设节点A需要向节点O、P和Q发送组播报文,且该组播报文是BIER报文。如果节点C具有组播绑定段标识,那么图5所示的场景中共存在一组节点。这组节点包括:节点B、节点C、节点O、节点P和节点Q,其中,节点B为第一节点,节点C为第二节点,节点O、P和Q均为第三节点。以下将对这组节点传输组播报文的过程进行讲解。
节点A会生成BIER报文,该BIER报文包括比特串,到达该比特串对应的BFER的支持BIER的下一跳为节点B,该BIER报文中的DA字段包括节点B的End.Bier。节点A可以将该BIER报文发往节点B。节点B在接收到该BIER报文后,可以确定到达该比特串对应的BFER的支持BIER的下一跳为节点C,并且,确定该节点C具有组播绑定段标识。此时,节点B可以将该BIER报文的DA字段中节点B的End.Bier改为节点C的组播绑定段标识,得到用于发往节点C的组播报文,并将该组播报文发往节点C。节点C在接收到该组播报文后,发现该组播报文包括节点C的组播绑定段标识,所以,节点C可以基于该组播绑定段标识获取如表4所示的段标识列表。之后,节点C可以基于该段标识列表得到如表5和表6所示的两个段标识列表,并将该组播报文中节点C的组播绑定段标识替换为表5所示的段标识列表
得到用于发往节点E的组播报文,以及将节点C的组播绑定段标识替换为表6所示的段标识
列表得到用于发往节点F的组播报文。
表4
locator | N-Branches | N-SIDs | arguments |
节点C的locator | 2 | 8 | arguments |
节点E的locator | 2 | 4 | arguments |
节点F的locator | 1 | 2 | arguments |
节点I的locator | 1 | 1 | arguments |
节点J的locator | 1 | 1 | arguments |
节点K的locator | 1 | 1 | arguments |
节点O的locator | 0 | 0 | arguments |
节点P的locator | 0 | 0 | arguments |
节点Q的locator | 0 | 0 | arguments |
表5
locator | N-Branches | N-SIDs | arguments |
节点E的locator | 2 | 4 | arguments |
节点I的locator | 1 | 1 | arguments |
节点J的locator | 1 | 1 | arguments |
节点O的locator | 0 | 0 | arguments |
节点P的locator | 0 | 0 | arguments |
表6
节点E在接收到节点C发出的组播报文后,会基于该组播报文中如表5段标识列表,得到如表7和表8所示的两个段标识列表。最后,节点E可以将该组播报文中的段标识列表替换为表7所示的段标识列表,得到用于发往节点I的组播报文,并向节点I发送该组播报文。节点E还可以将该组播报文中的段标识列表替换为表8所示的段标识列表,得到用于发往节点J的组播报文,并向节点J发送该组播报文。
表7
locator | N-Branches | N-SIDs | arguments |
节点I的locator | 1 | 1 | arguments |
节点O的locator | 0 | 0 | arguments |
表8
locator | N-Branches | N-SIDs | arguments |
节点J的locator | 1 | 1 | arguments |
节点P的locator | 0 | 0 | arguments |
节点I在接收到节点E发出的组播报文后,会将该组播报文中表7所示的段标识列表中节点I的组播段标识弹出,得到用于发往节点O的组播报文,并将该组播报文发送至节点O。节点J在接收到节点E发出的组播报文后,会将该组播报文中表8段标识列表中节点J的组播段标识弹出,得到用于发往节点P的组播报文,并将该组播报文发送至节点P。节点F在接收到节点C发出的组播报文后,会将该组播报文中表6段标识列表中节点F的组播段标识弹出,得到用于发往节点K的组播报文,并将该组播报文发送至节点K。节点K在接收到节点F发出的组播报文后,会将该组播报文中节点K的组播段标识弹出,得到用于发往节点Q的组播报文,并将该组播报文发送至节点Q。
本申请实施例中以节点B为第一节点,节点C为第二节点为例。可选地,也可以是节点A为第一节点,节点C为第二节点。此时,节点A发送给节点B的BIER报文可以包括节点C的组播绑定段标识,比如,该BIER报文包括SRH,且该SRH包括节点C的组播绑定段标识。节点B在接收到该组播报文后,无需将该BIER报文的DA字段中节点B的End.Bier改为节点C的组播绑定段标识,而是可以将该BIER报文的DA字段中节点B的End.Bier改为节点C的End.Bier后,将该组播报文发送给节点C。
以上示例中以图5所示的场景中节点C具有组播绑定段标识,且该场景中共存在一组节点为例。可选地,该场景中的其他节点也可以具有组播绑定段标识,该场景中也可以存在多组节点,本申请实施例对此不作限定。
进一步地,本申请实施例提供的通信系统还可以包括控制器(附图中未示出),控制器用于指定头节点到多个尾节点的组播报文需要经过的节点,以规划头节点到多个尾节点的路径。控制器还可以确定头节点到多个尾节点之间的第一节点和第二节点(也即之间传输的报文的长度需要压缩的节点),以及向第一节点发送第二节点的组播绑定段标识,向第二节点发送上述第一对应关系或第二对应关系。其中,第二节点的组播绑定段标识可以包含在策略中下发给第一节点,第一对应关系或第二对应关系也可以包含在策略中下发给第二节点。
控制器可以在其指定头节点到多个尾节点的组播报文需要经过的节点的数量大于数量阈值时,确定上述第一节点和第二节点,以采用本申请实施例提供的方法对第一节点和第二节点之间的报文的长度进行压缩。控制器在其指定头节点到多个尾节点的组播报文需要经过的节点的数量小于或等于数量阈值时,可以无需确定第一节点和第二节点。这样一来,能够降低控制器的负载。
示例地,控制器可以基于其指定头节点到多个尾节点的组播报文需要经过的节点,生成包括这些节点的组播段标识的段标识列表。控制器可以在该段标识列表的长度大于长度阈值时,确定控制器指定头节点到多个尾节点的组播报文需要经过的节点的数量大于数量阈值。
上文中结合图1至图5,详细描述了本申请所提供的用于处理组播报文的方法,可以理解的是,用于处理组播报文的装置为了实现上述各方法所描述的功能,其需包含执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各方法的执行过程,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方式来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法实施例对相应的设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。
当采用功能模块划分方式时,下面将结合图6、图7和图8描述本申请所提供的用于处理组播报文的装置。
图6为本申请实施例提供的一种用于处理组播报文的装置的框图,该装置例如可以设于前述各实施例中的第一节点。如图6所示,所述用于处理组播报文的装置包括:获取模块601和发送模块602。获取模块601用于获取第一组播报文,所述第一组播报文包括第二节点的组播绑定段标识,所述第二节点的组播绑定段标识用于指示获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文。获取模块601用于执行的操作可以参考上述S101中与第一节点相关的内容。发送模块602用于向所述第二节点发送所述第一组播报文。发送模块602用于执行的操作可以参考上述S102中与第一节点相关的内容。
可选地,所述第一组播报文包括DA字段,所述DA字段包括所述第二节点的组播绑定段标识;或者所述第一组播报文包括SRH,所述SRH包括所述第二节点的组播绑定段标识。当并不是SRH包括第二节点的组播绑定段标识时,第一组播报文可以包括SRH也可以不包括SRH。比如,第一组播报文为SR报文,该SR报文的DA字段包括第二节点的组播绑定段标识,此时,该SR报文可以包括SRH也可以不包括SRH。或者,该SR报文的SRH包括第二节点的组播绑定段标识。又比如,第一组播报文为BIER报文,该BIER报文的DA字段包括第二节点的组播绑定段标识。或者,该BIER报文包括SRH,且该SRH包括第二节点的组播绑定段标识。
进一步地,获取模块601获取第一组播报文的方式多种多样,以下将以以下五种获取第一组播报文的方式为例进行讲解。在第一种方式中,所述获取模块用于:获取所述第二节点的组播绑定段标识;根据所述第二节点的组播绑定段标识生成所述第一组播报文。在第二种方式中,所述获取模块用于:获取所述第二节点的组播绑定段标识;根据所述第二节点的组播绑定段标识生成所述第一组播报文。所述第一组播报文还包括:所述第一节点和所述第二节点之间用于转发所述第一组播报文的节点的组播段标识。在第三种方式中,所述获取模块用于:接收第二组播报文,所述第二组播报文包括所述第一节点的组播段标识和所述第二节点的组播绑定段标识;基于所述第二组播报文获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播段标识被弹出后所获得的组播报文。在第四种方式中,所述获取模块用于:接收第二组播报文,所述第二组播报文包括所述第一节点的组播绑定段标识;基于所述第一节点的组播绑定段标识获取第二段标识列表,所述第二段标识列表包括所述第二节点的组播绑定段标识;基于所述第二组播报文和所述第二段标识列表,获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播绑定段标识替换为所述第二节点的组播绑定段标识后所获得的组播报文。在第五种方式中,所述第一组播报文为BIER报文,所述获取模块用于:获取BIER报文,所述BIER报文包括比特串;获取所述第二节点的组播绑定段标识,所述第二节点是到达所述比特串对应的BFER的支持BIER的下一跳;基于所述BIER报文和所述第二节点的组播绑定段标识,获取所述第一组播报文,所述第一组播报文包括的DA字段用于携带所述第二节点的组播绑定段标识。
可选地,在上述第一种方式、第二种方式和第五种方式中,所述获取模块用于接收控制器发送的所述第二节点的组播绑定段标识。
本申请实施例中,第一节点在一些可能实现的场景下需要获取第二节点的组播绑定段标识,进而根据第二节点的组播绑定段标识获取第一组播报文。该第二节点的组播绑定段标识可以是控制器或第二节点发送给第一节点的,也可以是静态配置在第一节点上的,本申请实施例对此不作限定。其中,当第二节点的组播绑定段标识是控制器发送的时,第二节点的组播绑定段标识可以包括在控制器发送给第一节点的策略中;当第二节点的组播绑定段标识是第二节点发送的时,第二节点可以会将其组播绑定段标识(由控制器分配给第二节点)在全网泛洪,以使每个节点接收到第二节点的组播绑定段标识。
可选地,所述第一组播报文还包括第一段标识列表的标识。比如,所述第一组播报文包括IPv6报文头,所述IPv6报文头包括所述第一段标识列表的标识;或者所述第一组播报文包括逐跳选项头,所述逐跳选项头包括所述第一段标识列表的标识。
图7为本申请实施例提供的另一种用于处理组播报文的装置的框图,该装置例如可以设于前述各实施例中的第二节点。如图7所示,所述用于处理组播报文的装置包括:第一接收模块701、获取模块702和转发模块703。第一接收模块701用于接收第一节点发送的第一组播报文,所述第一组播报文包括所述第二节点的组播绑定段标识。第一接收模块701用于执行的操作可以参考上述S102中与第二节点相关的内容。获取模块702用于基于所述第二节点的组播绑定段标识获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;获取模块702用于执行的操作可以参考上述S103中与第二节点相关的内容。转发模块703用于基于所述第一段标识列表向所述第三节点转发所述第一组播报文。转发模块703用于执行的操作可以参考上述S104中与第二节点相关的内容。获取模块702获取第一段标识列表的方式多种多样,以下将以其中的两种方式为例进行讲解。
在一种方式中,所述用于处理组播报文的装置还包括:第二接收模块(图7中未示出)。第二接收模块可以用于接收控制器发送的第一对应关系,所述第一对应关系包括所述第二节点的组播绑定段标识和所述第一段标识列表。所述获取模块702用于根据所述第二节点的组播绑定段标识以及所述第一对应关系,获取所述第一段标识列表。
在另一种方式中,所述第一组播报文还包括第一段标识列表的标识,所述用于处理组播报文的装置还包括:第三接收模块(图7中未示出)。第三接收模块用于接收控制器发送的第二对应关系,所述第二对应关系包括所述第一段标识列表的标识和所述第一段标识列表;所述获取模块702用于基于所述第二节点的组播绑定段标识,利用所述第一段标识列表的标识和所述第二对应关系,获取所述第一段标识列表。
可选地,所述转发模块703用于根据所述第一组播报文和所述第一段标识列表获得第三组播报文,所述第三组播报文包括所述第三节点的组播段标识;基于所述第三节点的组播段标识向所述第三节点转发所述第三组播报文。示例地,所述第三组播报文包括SRH,所述SRH包括所述第三节点的组播段标识。
进一步地,所述转发模块703可以用于:基于所述第一段标识列表获得第三段标识列表,所述第三段标识列表包括所述第三节点的组播段标识;根据所述第一组播报文和所述第三段标识列表,获得所述第三组播报文,所述第三组播报文包括所述第三段标识列表。
图8为本申请实施例提供的另一种用于处理组播报文的装置的框图,该装置例如可以设于前述各实施例中的控制器。如图8所示,所述用于处理组播报文的装置包括:第一确定模块801、第一发送模块802和第二发送模块803。第一确定模块801用于确定所述第一节点和第二节点,所述第二节点与所述第一节点和所述第三节点通信。第一发送模块802用于向所述第二节点发送第一对应关系或第二对应关系,所述第一对应关系包括所述第二节点的组播绑定段标识与第一段标识列表,所述第二对应关系包括所述第一段标识列表的标识与第一段标识列表;第二发送模块803用于向所述第一节点发送所述第二节点的组播绑定段标识。
可选地,控制器还包括:第二确定模块(图8中未示出),第二确定模块用于确定第一节点发往第三节点的组播报文需要经过的节点的数量。第一确定模块801可以在所述数量大于数量阈值时,确定所述第一节点和所述第二节点。
在采用集成的单元时,本申请所提供的设于控制器、第一节点或第二节点的用于处理组播报文的装置可以包括处理模块、存储模块和通信模块。其中,处理模块可以用于对该装置的动作进行控制管理,例如,可以用于支持该装置执行上述S101至S104中由控制器、第一节点或第二节点执行的动作。存储模块可以用于支持该装置执行存储程序代码和数据等。通信模块,可以用于该装置与其他设备的通信。
其中,处理模块可以是处理器或控制器。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理(digital signal processing,DSP)和微处理器的组合等等。存储模块可以是存储器。通信模块可以为射频电路、蓝牙芯片、Wi-Fi芯片等与其他设备交互的设备。
在一个实施例中,当处理模块为处理器,存储模块为存储器,通信模块为通信接口时,本实施例所涉及的用于处理组播报文的装置可以为具有图2所示结构的通信设备。在一种实现方式中,本用于处理组播报文的装置中包括的上述各个模块等可以为存储器中存储的计算机程序,并由处理器调用以实现各个模块相应的执行功能。
本申请实施例还提供了一种通信系统,该通信系统包括第一节点、第二节点和第三节点。所述第一节点和所述第三节点均与所述第二节点通信。第一节点用于执行本申请实施例提供的任一种用于处理组播报文的方法中由第一节点执行的操作,第二节点用于执行本申请实施例提供的任一种用于处理组播报文的方法中由第二节点执行的操作。
所述第一节点和所述第二节点为本申请实施例提供的两种通信设备。或者,所述第一节点包括本申请实施例提供的任一种设置于第一节点的用于处理组播报文的装置(如图6所示的装置);所述第二节点包括本申请实施例提供的任一种设置于第二节点的用于处理组播报文的装置(如图7所示的装置)。
可选地,该通信系统还包括控制器,控制器用于执行本申请实施例提供的任一种用于处理组播报文的方法中由控制器执行的操作。该控制器为本申请实施例提供的一种通信设备,或者,该控制器包括本申请实施例提供的任一种设置于控制器中的用于处理组播报文的装置(如图8所示的装置)。
本申请实施例提供了一种计算机存储介质,所述存储介质内存储有计算机程序;所述计算机程序在计算机上运行时,使得计算机执行本申请实施例提供的任一种用于处理组播报文的方法中由第一节点或第二节点执行的方法。
本申请实施例还提供了一种包含指令的计算机程序产品,当计算机程序产品在通信设备上运行时,使得通信设备执行本申请实施例提供的任一种用于处理组播报文的方法中由第一节点或第二节点执行的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现,所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机的可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者包含一个或多个可用介质集成的服务器、数据中心等数据存储装置。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质,或者半导体介质(例如固态硬盘)等。
在本申请中,术语“第一”和“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。术语“至少一个”指一个或多个,“多个”指两个或两个以上,除非另有明确的限定。术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例提供的方法实施例和设备实施例等不同类型的实施例均可以相互参考,本申请实施例对此不做限定。本申请实施例提供的方法实施例操作的先后顺序能够进行适当调整,操作也能够根据情况进行相应增减,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
在本申请提供的相应实施例中,应该理解到,所揭露的系统和设备等可以通过其它的构成方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元描述的部件可以是或者也可以不是物理单元,既可以位于一个地方,或者也可以分布到多个设备上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述,仅为本申请的可选实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (32)
1.一种用于处理组播报文的方法,其特征在于,所述方法由第一节点执行,所述方法包括:
获取第一组播报文,所述第一组播报文包括第二节点的组播绑定段标识,所述第二节点的组播绑定段标识用于指示获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;
向所述第二节点发送所述第一组播报文。
2.根据权利要求1所述的方法,其特征在于,所述第一组播报文包括目的地址DA字段,所述DA字段包括所述第二节点的组播绑定段标识;
或者所述第一组播报文包括段路由头SRH,所述SRH包括所述第二节点的组播绑定段标识。
3.根据权利要求1或2所述的方法,其特征在于,所述获取第一组播报文包括:
获取所述第二节点的组播绑定段标识;
根据所述第二节点的组播绑定段标识生成所述第一组播报文。
4.根据权利要求3所述的方法,其特征在于,所述第一组播报文还包括:所述第一节点和所述第二节点之间用于转发所述第一组播报文的节点的组播段标识。
5.根据权利要求1或2所述的方法,其特征在于,所述获取第一组播报文包括:
接收第二组播报文,所述第二组播报文包括所述第一节点的组播段标识和所述第二节点的组播绑定段标识;
基于所述第二组播报文获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播段标识被弹出后所获得的组播报文。
6.根据权利要求1或2所述的方法,其特征在于,所述获取第一组播报文包括:
接收第二组播报文,所述第二组播报文包括所述第一节点的组播绑定段标识;
基于所述第一节点的组播绑定段标识获取第二段标识列表,所述第二段标识列表包括所述第二节点的组播绑定段标识;
基于所述第二组播报文和所述第二段标识列表,获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播绑定段标识替换为所述第二节点的组播绑定段标识后所获得的组播报文。
7.根据权利要求1所述的方法,其特征在于,所述第一组播报文为比特索引显式复制BIER报文,所述获取第一组播报文包括:
获取BIER报文,所述BIER报文包括比特串;
获取所述第二节点的组播绑定段标识,所述第二节点是到达所述比特串对应的位转发出口路由器BFER的支持BIER的下一跳;
基于所述BIER报文和所述第二节点的组播绑定段标识,获取所述第一组播报文,所述第一组播报文包括的DA字段用于携带所述第二节点的组播绑定段标识。
8.根据权利要求3、4或7所述的方法,其特征在于,获取所述第二节点的组播绑定段标识,包括:
接收控制器发送的所述第二节点的组播绑定段标识。
9.根据权利要求1至8任一所述的方法,其特征在于,所述第一组播报文还包括第一段标识列表的标识。
10.根据权利要求9所述的方法,其特征在于,所述第一组播报文包括因特网协议第6版IPv6报文头,所述IPv6报文头包括所述第一段标识列表的标识;
或者所述第一组播报文包括逐跳选项头,所述逐跳选项头包括所述第一段标识列表的标识。
11.一种用于处理组播报文的方法,其特征在于,所述方法由第二节点执行,所述方法包括:
接收第一节点发送的第一组播报文,所述第一组播报文包括所述第二节点的组播绑定段标识;
基于所述第二节点的组播绑定段标识获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;
基于所述第一段标识列表向所述第三节点转发所述第一组播报文。
12.根据权利要求11所述的方法,其特征在于,在基于所述第二节点的组播绑定段标识获取第一段标识列表之前,所述方法还包括:接收控制器发送的第一对应关系,所述第一对应关系包括所述第二节点的组播绑定段标识和所述第一段标识列表;
所述基于所述第二节点的组播绑定段标识获取第一段标识列表包括:根据所述第二节点的组播绑定段标识以及所述第一对应关系,获取所述第一段标识列表。
13.根据权利要求11所述的方法,其特征在于,所述第一组播报文还包括第一段标识列表的标识,在基于所述第二节点的组播绑定段标识获取第一段标识列表之前,所述方法还包括:接收控制器发送的第二对应关系,所述第二对应关系包括所述第一段标识列表的标识和所述第一段标识列表;
所述基于所述第二节点的组播绑定段标识获取第一段标识列表包括:基于所述第二节点的组播绑定段标识,利用所述第一段标识列表的标识和所述第二对应关系,获取所述第一段标识列表。
14.根据权利要求11至13任一所述的方法,其特征在于,所述基于所述第一段标识列表向所述第三节点转发所述第一组播报文包括:
根据所述第一组播报文和所述第一段标识列表获得第三组播报文,所述第三组播报文包括所述第三节点的组播段标识;
基于所述第三节点的组播段标识向所述第三节点转发所述第三组播报文。
15.根据权利要求14所述的方法,其特征在于,所述第三组播报文包括段路由头SRH,所述SRH包括所述第三节点的组播段标识。
16.根据权利要求14或15所述的方法,其特征在于,所述根据所述第一组播报文和所述第一段标识列表获得第三组播报文包括:
基于所述第一段标识列表获得第三段标识列表,所述第三段标识列表包括所述第三节点的组播段标识;
根据所述第一组播报文和所述第三段标识列表,获得所述第三组播报文,所述第三组播报文包括所述第三段标识列表。
17.一种用于处理组播报文的装置,其特征在于,所述装置设置于第一节点,所述装置包括:
获取模块,用于获取第一组播报文,所述第一组播报文包括第二节点的组播绑定段标识,所述第二节点的组播绑定段标识用于指示获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;
发送模块,用于向所述第二节点发送所述第一组播报文。
18.根据权利要求17所述的装置,其特征在于,所述第一组播报文包括目的地址DA字段,所述DA字段包括所述第二节点的组播绑定段标识;
或者所述第一组播报文包括段路由头SRH,所述SRH包括所述第二节点的组播绑定段标识。
19.根据权利要求17或18所述的装置,其特征在于,所述获取模块用于:
获取所述第二节点的组播绑定段标识;
根据所述第二节点的组播绑定段标识生成所述第一组播报文。
20.根据权利要求19所述的装置,其特征在于,所述第一组播报文还包括:所述第一节点和所述第二节点之间用于转发所述第一组播报文的节点的组播段标识。
21.根据权利要求17或18所述的装置,其特征在于,所述获取模块用于:
接收第二组播报文,所述第二组播报文包括所述第一节点的组播段标识和所述第二节点的组播绑定段标识;
基于所述第二组播报文获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播段标识被弹出后所获得的组播报文。
22.根据权利要求17或18所述的装置,其特征在于,所述获取模块用于:
接收第二组播报文,所述第二组播报文包括所述第一节点的组播绑定段标识;
基于所述第一节点的组播绑定段标识获取第二段标识列表,所述第二段标识列表包括所述第二节点的组播绑定段标识;
基于所述第二组播报文和所述第二段标识列表,获得所述第一组播报文,所述第一组播报文为所述第二组播报文包括的所述第一节点的组播绑定段标识替换为所述第二节点的组播绑定段标识后所获得的组播报文。
23.根据权利要求17所述的装置,其特征在于,所述第一组播报文为比特索引显式复制BIER报文,所述获取模块用于:
获取BIER报文,所述BIER报文包括比特串;
获取所述第二节点的组播绑定段标识,所述第二节点是到达所述比特串对应的位转发出口路由器BFER的支持BIER的下一跳;
基于所述BIER报文和所述第二节点的组播绑定段标识,获取所述第一组播报文,所述第一组播报文包括的DA字段用于携带所述第二节点的组播绑定段标识。
24.根据权利要求20、21或23所述的装置,其特征在于,所述获取模块用于接收控制器发送的所述第二节点的组播绑定段标识。
25.根据权利要求17至24任一所述的装置,其特征在于,所述第一组播报文还包括第一段标识列表的标识。
26.根据权利要求25所述的装置,其特征在于,所述第一组播报文包括第6版因特网协议IPv6报文头,所述IPv6报文头包括所述第一段标识列表的标识;
或者所述第一组播报文包括逐跳选项头,所述逐跳选项头包括所述第一段标识列表的标识。
27.一种用于处理组播报文的装置,其特征在于,所述装置设于第二节点,所述装置包括:
第一接收模块,用于接收第一节点发送的第一组播报文,所述第一组播报文包括所述第二节点的组播绑定段标识;
获取模块,用于基于所述第二节点的组播绑定段标识获取第一段标识列表,所述第一段标识列表用于指示向与所述第二节点通信的第三节点发送所述第一组播报文;
转发模块,用于基于所述第一段标识列表向所述第三节点转发所述第一组播报文。
28.根据权利要求27所述的装置,其特征在于,所述装置还包括:
第二接收模块,用于接收控制器发送的第一对应关系,所述第一对应关系包括所述第二节点的组播绑定段标识和所述第一段标识列表;
所述获取模块用于根据所述第二节点的组播绑定段标识以及所述第一对应关系,获取所述第一段标识列表。
29.根据权利要求27所述的装置,其特征在于,所述第一组播报文还包括第一段标识列表的标识,所述装置还包括:
第三接收模块,用于接收控制器发送的第二对应关系,所述第二对应关系包括所述第一段标识列表的标识和所述第一段标识列表;
所述获取模块用于基于所述第二节点的组播绑定段标识,利用所述第一段标识列表的标识和所述第二对应关系,获取所述第一段标识列表。
30.根据权利要求27至29任一所述的装置,其特征在于,所述转发模块用于:
根据所述第一组播报文和所述第一段标识列表获得第三组播报文,所述第三组播报文包括所述第三节点的组播段标识;
基于所述第三节点的组播段标识向所述第三节点转发所述第三组播报文。
31.根据权利要求30所述的装置,其特征在于,所述第三组播报文包括段路由头SRH,所述SRH包括所述第三节点的组播段标识。
32.根据权利要求30或31所述的装置,其特征在于,所述转发模块用于:
基于所述第一段标识列表获得第三段标识列表,所述第三段标识列表包括所述第三节点的组播段标识;
根据所述第一组播报文和所述第三段标识列表,获得所述第三组播报文,所述第三组播报文包括所述第三段标识列表。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699462.7A CN115589381A (zh) | 2021-06-23 | 2021-06-23 | 用于处理组播报文的方法及装置 |
PCT/CN2022/077501 WO2022267500A1 (zh) | 2021-06-23 | 2022-02-23 | 用于处理组播报文的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110699462.7A CN115589381A (zh) | 2021-06-23 | 2021-06-23 | 用于处理组播报文的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115589381A true CN115589381A (zh) | 2023-01-10 |
Family
ID=84545050
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110699462.7A Pending CN115589381A (zh) | 2021-06-23 | 2021-06-23 | 用于处理组播报文的方法及装置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115589381A (zh) |
WO (1) | WO2022267500A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7123620B1 (en) * | 2000-04-25 | 2006-10-17 | Cisco Technology, Inc. | Apparatus and method for scalable and dynamic traffic engineering in a data communication network |
US9680745B2 (en) * | 2014-01-20 | 2017-06-13 | Huawei Technologies Co., Ltd. | Multi-domain source routed forwarding based on collaborating network controllers |
CN116436850A (zh) * | 2019-07-01 | 2023-07-14 | 华为技术有限公司 | 一种报文转发方法、报文处理方法及装置 |
CN112714034B (zh) * | 2019-10-26 | 2022-09-23 | 华为技术有限公司 | 组播报文的处理方法和设备 |
-
2021
- 2021-06-23 CN CN202110699462.7A patent/CN115589381A/zh active Pending
-
2022
- 2022-02-23 WO PCT/CN2022/077501 patent/WO2022267500A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2022267500A1 (zh) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10693765B2 (en) | Failure protection for traffic-engineered bit indexed explicit replication | |
CN110224935B (zh) | 一种处理组播数据报文的方法及装置 | |
CN107404436A (zh) | 用于虚拟可扩展局域网的通信方法和装置 | |
CN112583745A (zh) | 一种在sr网络中转发报文的方法、设备和系统 | |
KR20230093199A (ko) | 하이브리드 네트워크에서 패킷을 포워딩하기 위한 방법, 디바이스, 및 시스템 | |
CN103023773B (zh) | 多拓扑网络中转发报文的方法、装置和系统 | |
EP4009596A1 (en) | Message forwarding method, device, and system in sr network | |
CN111010329B (zh) | 一种报文传输方法及装置 | |
CN110401599A (zh) | 数据包的处理方法及装置、存储介质、电子装置 | |
CN110545229B (zh) | 一种vxlan轴心组网模式下的报文发送方法、装置 | |
JP7448597B2 (ja) | メッセージ生成方法および装置ならびにメッセージ処理方法および装置 | |
CN115065637B (zh) | 传输算力资源信息的方法、装置和电子设备 | |
CN104754521B (zh) | 一种报文转发方法、无线接入点、无线控制器和系统 | |
CN111382115A (zh) | 一种用于片上网络的路径创建方法、装置及电子设备 | |
CN105812221B (zh) | 虚拟可扩展本地区域网络中数据传输的设备和方法 | |
CN112468396A (zh) | 主机网络性能需求可编程化的方法、设备和系统 | |
CN109286564B (zh) | 一种报文转发方法及装置 | |
CN112087381A (zh) | 一种实现业务功能处理的方法及装置 | |
CN109218176B (zh) | 一种报文处理的方法及装置 | |
WO2022134674A1 (zh) | 报文传输的方法、装置、设备、存储介质及系统 | |
CN115589381A (zh) | 用于处理组播报文的方法及装置 | |
CN111447131B (zh) | 报文解封装方法及装置、报文封装方法及装置 | |
CN115695338A (zh) | 一种报文转发的方法及网络设备 | |
CN115883452A (zh) | 一种通信方法和通信装置 | |
CN115473765A (zh) | 报文传输方法、设备及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |