CN106817308B - 一种组播流的转发系统、方法及装置 - Google Patents
一种组播流的转发系统、方法及装置 Download PDFInfo
- Publication number
- CN106817308B CN106817308B CN201611261825.4A CN201611261825A CN106817308B CN 106817308 B CN106817308 B CN 106817308B CN 201611261825 A CN201611261825 A CN 201611261825A CN 106817308 B CN106817308 B CN 106817308B
- Authority
- CN
- China
- Prior art keywords
- node
- forwarding
- multicast
- information
- leaf
- 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.)
- Active
Links
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/02—Topology update or discovery
-
- 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
- H04L49/00—Packet switching elements
- H04L49/20—Support for services
- H04L49/201—Multicast operation; Broadcast operation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请公开了一种组播流的转发系统、方法及装置。本申请所公开的组播流的转发系统,包括:根节点、N个叶节点以及M个转发节点;根节点获取能够接收待发送的组播流的叶节点的叶节点信息,在预设的组播指示信息中查找到与获取的叶节点信息分别对应的比特位,将查找到的比特位置1、其它比特位置0,将置位后的组播指示信息与组播流发送给下游节点;预设的组播指示信息中每个比特位分别对应一个不同的叶节点信息;转发节点接收上游节点发送的组播指示信息和组播流,根据组播指示信息,确定能够接收组播流的叶节点;将接收的组播指示信息和组播流转发给下游节点;叶节点接收上游节点发送的组播指示信息和组播流。本申请能够降低组播延迟。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种组播流的转发系统、方法及装置。
背景技术
RFC6513和RFC6514讨论了运营商(service provider,SP)提供组播虚拟专用网(virtual private network,VPN)业务时的各种消息和流程的运用。支持组播的边界网关协议(Border Gateway Protocol,BGP)/多协议标签交换(Multi-Protocol LabelSwitching,MPLS)网络互联协议(Internet Protocol,IP)VPN服务被称为组播VPN或组播虚拟专用网(multicast virtual private network,MVPN)。
MVPN可提供相容性运营商组播业务接口(inclusive provider multicastservice interface,I-PMSI)隧道的数据承载模式。I-PMSI隧道可以是基于点到多点流量工程(point-to-multipoint traffic engineering,P2MP TE)或者基于点到多点多标签分发协议(point-to-multipoint Multi-Label Distribution Protocol,P2MP MLDP)等创建的隧道。MVPN还可提供选择性运营商组播业务接口(Selective provider multicastservice interface,S-PMSI)隧道的数据承载模式。一个MVPN的一个特定的PE能组播消息,然后被该MVPN的其它PE的一个子集接收到。
依据RFC6513、RFC6514中定义的MVPN以及Selective PMSI隧道建立的信令过程,以及RFC6625中定义的在建立Selective PMSI隧道中使用通配符(*,*)AD路由和SPMSI-only的组播转发。图1示出了传统Selective PMSI隧道建立方案的信令流程示意图。
如图1所述,传统Selective PMSI隧道建立过程中,从组播加入到完成SelectivePMSI隧道的建立,实现组播,需要资源预留协议(Resource Reservation Protocol,RSVP)或多标签分发协议LDP(multi-Label Distribution Protocol,mLDP)信令逐跳完成,组播加入延迟大(多跳),如图1所示,CE2组播加入延迟为3跳,CE5组播加入延迟为4跳。
因此,如何解决传统Selective PMSI隧道建立方案中组播加入延迟大的缺陷,是业界所亟待研究和解决的问题。
发明内容
本申请提供一种组播流的转发系统、方法及设备,用以降低组播延迟,提高组播流的传输效率。
第一方面,本申请提供了一种组播流的转发系统,包括:根节点、N个叶节点以及M个转发节点;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;其中:
所述根节点,用于获取能够接收待发送的组播流的至少一个叶节点的叶节点信息,在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0,将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同;
所述转发节点,用于接收与所述转发节点连接的上游节点发送的组播指示信息和组播流,根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;并将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点;
所述叶节点,用于接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1。
本申请所提供的上述组播流的转发系统中,各个转发节点通过置位后的组播流指示信息来确定组播流的叶节点,实现组播流的正确转发,因而能够降低组播延迟,提高组播流的传输效率。
在一种可能的实现方式中,所述叶节点,还用于确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点;
所述转发节点,还用于接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点;
所述根节点,还用于接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;根据接收的各个信息对生成并保存预设的组播指示信息。
通过上述过程,根节点能获知各个叶节点的叶节点信息和比特位信息构成的信息对,进而可基于所获取到的信息对生成预设的组播指示信息。
在一种可能的实现方式中,所述根节点,还用于将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点;
所述转发节点,还用于接收并保存与所述转发节点连接的上游节点发送的组播指示信息。
通过上述过程,转发节点能获知各个叶节点的叶节点信息和比特位信息构成的信息对,进而可以在根节点下发置位后的组播流指示信息时,根据置位后的组播流指示信息来确定组播流的叶节点,实现组播流的正确转发,因而能够降低组播延迟,提高组播流的传输效率。
第二方面,本申请提供了一种组播流的转发方法,应用于包括有根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;该方法包括:
所述根节点获取能够接收待发送的组播流的至少一个叶节点的叶节点信息;
所述根节点在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
所述根节点将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
在一种可能的实现方式中,所述方法还包括:
所述根节点接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;
所述根节点根据接收的各个信息对生成并保存预设的组播指示信息。
在一种可能的实现方式中,所述方法还包括:
所述根节点将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点。
由于该方法解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的组播流的转发系统中根节点的实施方式以及所带来的有益效果,因此该方法的实施可以参见上述第一方面和第一方面的各可能的组播流的转发系统中根节点的实施,重复之处不再赘述。
第三方面,本申请提供了一种组播流的转发装置,所述装置部署在根节点,应用于包括有所述根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;所述装置包括:
获取模块,用于获取能够接收待发送的组播流的至少一个叶节点的叶节点信息;
置位模块,用于在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
发送模块,用于将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
在一种可能的实现方式中,所述装置还包括:
接收模块,用于接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;
生成模块,用于根据接收的各个信息对生成并保存预设的组播指示信息。
在一种可能的实现方式中,所述发送模块,还用于:
将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点。
由于该装置解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的组播流的转发系统中根节点的实施方式以及所带来的有益效果,因此该装置的实施可以参见上述第一方面和第一方面的各可能的组播流的转发系统中根节点的实施,重复之处不再赘述。
第四方面,本申请提供了一种组播流的转发方法,应用于包括有根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;该方法包括:
所述转发节点接收与所述转发节点连接的上游节点发送的组播指示信息和组播流;
所述转发节点根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;
所述转发节点将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点。
在一种可能的实现方式中,所述方法还包括:
所述转发节点接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点。
在一种可能的实现方式中,所述方法还包括:
所述转发节点接收并保存与所述转发节点连接的上游节点发送的组播指示信息;所述组播指示信息为所述根节点生成并发送的。
由于该方法解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的组播流的转发系统中转发节点的实施方式以及所带来的有益效果,因此该方法的实施可以参见上述第一方面和第一方面的各可能的组播流的转发系统中转发节点的实施,重复之处不再赘述。
第五方面,本申请提供了一种组播流的转发装置,所述装置部署在转发节点,应用于包括有根节点、N个叶节点以及M个所述转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;所述装置包括:
接收模块,用于接收与所述转发节点连接的上游节点发送的组播指示信息和组播流;
确定模块,用于根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;
转发模块,用于将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点。
在一种可能的实现方式中,所述装置还包括:
第一保存模块,用于接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点。
在一种可能的实现方式中,所述装置还包括:
第二保存模块,用于接收并保存与所述转发节点连接的上游节点发送的组播指示信息;所述组播指示信息为所述根节点生成并发送的。
由于该装置解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的组播流的转发系统中转发节点的实施方式以及所带来的有益效果,因此该装置的实施可以参见上述第一方面和第一方面的各可能的组播流的转发系统中转发节点的实施,重复之处不再赘述。
第六方面,本申请提供了一种组播流的转发方法,应用于包括有根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;该方法包括:
所述叶节点接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1。
在一种可能的实现方式中,所述方法还包括:
所述叶节点确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点。
由于该方法解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的组播流的转发系统中叶节点的实施方式以及所带来的有益效果,因此该方法的实施可以参见上述第一方面和第一方面的各可能的组播流的转发系统中叶节点的实施,重复之处不再赘述。
第七方面,本申请提供了一种组播流的转发装置,所述装置部署在叶节点,应用于包括有根节点、N个所述叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;所述装置包括:
接收模块,用于接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1。
在一种可能的实现方式中,所述装置还包括:
上报模块,用于确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点。
由于该装置解决问题的原理以及有益效果可以参见上述第一方面和第一方面的各可能的组播流的转发系统中叶节点的实施方式以及所带来的有益效果,因此该装置的实施可以参见上述第一方面和第一方面的各可能的组播流的转发系统中叶节点的实施,重复之处不再赘述。
附图说明
图1为传统组播方案的信令流程示意图;
图2为本发明一些实施例提供的组播流的转发系统的结构示意图;
图3为本发明一些实施例提供的组播流的转发系统的在实际场景中的拓扑结构示意图;
图4为本发明一些实施例提供的组播流的转发系统中根节点执行的方法流程示意图;
图5为本发明一些实施例提供的组播流的转发系统中转发节点执行的方法流程示意图;
图6为本发明一些实施例提供的组播流的转发系统中叶节点执行的方法流程示意图;
图7为本发明一些实施例提供的组播流的转发系统中预设的组播指示信息的生成流程示意图;
图8为本发明一些实施例提供的组播流的转发系统中根节点、转发节点以及叶节点之间通信过程的示意图;
图9为本发明一些实施例提供的组播流的转发系统中根节点下发的报文以及转发节点根据根节点下发的报文进行转发的示意图;
图10为本发明一些实施例提供的组播流的转发装置的结构示意图;
图11为本发明一些实施例提供的组播流的转发装置的结构示意图;
图12为本发明一些实施例提供的组播流的转发装置的结构示意图;
图13为本发明一些实施例提供的组播流的转发装置的结构示意图;
图14为本发明一些实施例提供的组播流的转发装置的结构示意图;
图15为本发明一些实施例提供的组播流的转发装置的结构示意图。
具体实施方式
下面将结合附图对本发明实施例提供的组播流的转发方案进行阐述。
图2示出了本发明一些实施例提供的组播流的转发系统的结构示意图。
如图2所示,该系统中包括有:
根节点201、M个转发节点202以及N个叶节点203;M、N均为大于或等于1的正整数。
如图2所示,根节点201、转发节点202和叶节点203以树状结构连接,根节点201位于树状结构的最顶层,转发节点202位于树状结构的中间层,叶节点203位于树状结构的最底层。
具体地,在上述树状结构中,根节点201为连接组播源的节点,叶节点为连接组播流的接收者的节点。来自于组播源的组播流从根节点201沿着该树状结构中的各个转发节点202转发至连接有组播流接收者的叶节点303。
作为一个示例,图3示出了本发明一些实施例提供的组播流的转发系统在实际场景中的拓扑结构示意图。
如图3所示,该拓扑结构中包括有:
用户边缘(Customer Edge,CE)设备(图示CE1、CE2、CE3、CE4、CE5);运营商边缘(Provider Edge,PE)设备(图示PE1、PE2、PE3、PE4、PE5);以及运营商(Provider,P)设备(图示P6、P7、P8)。
CE设备可以是路由器,也可以是交换机或主机。PE设备可以是运营商边缘路由器,位于骨干网络,可与CE直接相连。P设备可以是运营商网络中的骨干路由器,不与CE直接相连。
该拓扑结构呈现树状结构:CE1与PE1连接,PE1与P6连接,P6与P7连接,P7与P8、PE2以及PE3连接,P8与PE4以及PE5连接,PE2与CE2连接,PE3与CE3连接,PE4与CE4连接,PE5与CE5连接。
假设CE1连接组播源,CE2、CE3、CE4、CE5均连接有组播流的接收者,那么在该树状结构中,PE1相当于根节点201、P6、P7、P8相当于3个转发节点202,PE2、PE3、PE4、PE5相当于4个叶节点203。
基于上述树状结构,在本发明一些实施例中,为了实现组播流的转发,根节点201用于执行如图4所示的过程,该过程包括:
步骤401:获取能够接收待发送的组播流的至少一个叶节点203的叶节点信息;
步骤402:在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
步骤403:将置位处理后的组播指示信息与该组播流发送给与根节点201连接的每个转发节点202;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
相应地,每个转发节点202用于执行如图5所示的过程,该过程包括:
步骤501:接收与该转发节点202连接的上游节点发送的组播指示信息和组播流;
步骤502:根据组播指示信息中被置位为1的比特位,以及该组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收该组播流的叶节点203;
步骤503:将接收的该组播指示信息和组播流转发给与该转发节点202连接的、且与确定出的叶节点203之间存在通信路径的下游节点。
相应地,每个叶节点203用于执行如图6所示的过程,具体包括:
步骤601:接收该叶节点203连接的上游节点发送的组播指示信息和组播流;
步骤602:该叶节点确认所接收到的组播指示信息中包括的、与该叶节点的叶节点信息对应的比特位被置位为1。
在上述组播流的转发系统中,根节点根据组播流的叶节点的叶节点信息,可以对预设的组播指示信息进行置位处理,得到能够指示组播流的叶节点的组播指示信息后,可以将该组播指示信息下发到下游节点;下游的各转发节点接收到组播指示信息后,可以根据该组播指示信息确定出组播流的叶节点,从而可以使得组播流沿着根节点到能够接收该组播流的叶节点之间的通信路径逐跳转发到相应的叶节点,实现组播流的正确转发。
可以看到,在本发明实施例所提供的组播流的转发系统中,各个转发节点通过置位后的组播流指示信息来确定组播流的叶节点,实现组播流的正确转发,因而能够降低组播延迟,提高组播流的传输效率。
具体地,在本发明一些实施例中,还提供了上述预设的组播指示信息的生成过程。图7示出了本发明一些实施例所提供的组播流的转发系统中预设的组播指示信息的生成流程示意图。
如图7所示,该流程中包括:
步骤701:每个叶节点确定该叶节点占据组播指示信息中的比特位信息,并将该叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与该叶节点连接的上游节点;
步骤702:每个转发节点接收并保存与该转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将该信息对上报给与该转发节点连接的上游节点;
步骤703:根节点接收与该根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;根据接收的各个信息对生成并保存预设的组播指示信息。
可以看到通过上述过程,根节点能获知各个叶节点的叶节点信息和比特位信息构成的信息对,进而可基于所获取到的信息对生成预设的组播指示信息。
具体地,预设的组播指示信息的比特位数可以与系统中的PE数量相同,从而可以分配各个比特位分别指示系统中的一个PE。
具体地,本发明上述实施例中各个叶节点占据组播指示信息中的比特位信息具体可以是预先配置到各个叶节点上的,各个叶节点的叶节点信息具体可以是叶节点的标识ID(比如叶节点的IP地址);上述由叶节点信息与比特位信息构成的信息对具体可以是叶节点的标识ID与比特位信息构成的信息对。
举例来说,对于一个叶节点,假设该叶节被配置的该叶节点占据组播指示信息中的比特位为2,该叶节点的ID为该叶节点的IP地址,那么该叶节点所上报的信息对可以表示为(叶节点的IP地址,2);位于该叶节点与根节点的通信路径上的各转发节点可以逐跳接收该信息对并进行保存,根节点接收该信息对后,便可以设置组播指示信息的第2个比特位对应该叶节点的IP地址;
在后续组播流的转发过程中,如果该叶节点为组播组成员,那么根节点便可以将组播指示信息的第2个比特位置1,以指示该叶节点可以接收组播流;相应地,如果该叶节点不是组播组成员,那么根节点便可以将组播指示信息的第2个比特位置0,以指示该叶节点不可以接收组播流。
进一步地,在本发明一些实施例中,根节点生成预设的组播指示信息之后,可以将生成的组播指示信息发送给与该根节点分别连接的各个下游节点;各个转发节点接收并保存与该转发节点连接的上游节点发送的组播指示信息。
具体地,根节点可以将组播指示信息以信令报文的形式单独下发,并指示接收到组播指示信息的各个转发节点保存所接收到的组播指示信息。
对于本发明上述实施例中根节点、各个转发节点以及各个叶节点上的处理过程,下面以图3所示的树状结构为例,进行示例性地说明。
为了简化描述,下文将使用(S,G)表示待发送的组播流,其中,S表示组播源IP地址,G表示组播组IP地址;使用叶节点ID表示叶节点信息;使用比特(BIT)表示叶节点占据组播指示信息中的比特位信息;使用比特流(BitString)表示预设的组播指示信息,BitString中包括若干个比特位,每个比特位对应一个叶节点的ID。
假设CE1连接组播流(S,G)的组播源,CE2、CE4连接有组播流(S,G)的接收者,如图3所示的树状结构中的PE1相当于根节点201;PE2、PE4相当于能够接收待发送组播流(S,G)的2个叶节点203;P6、P7、P8相当于3个转发节点202。P6、P7这两个转发节点位于根节点PE1与叶节点PE2之间的通信路径上,P6、P7、P8这三个转发节点位于根节点PE1与叶节点PE4之间的通信路径上。
具体地,作为根节点的PE1可以首先获取作为待发送组播流(S,G)叶节点的PE2、PE4的BIT(假设PE2的BIT被配置为2,指示在预设的BitString中表示该PE2的比特位为第2个比特位;假设PE4的BIT被配置为4,指示在预设的BitString中表示该PE4的比特位为第4个比特位);
进而,作为根节点的PE1可以在预设的BitString(假设为由5个比特位构成)的各个比特位中查找到与获取的PE2、PE4的BIT分别对应的比特位,再进行置位,得到对应组播流(S,G)的BitString=0x01010,其中,第2位比特位和第4位比特位被置1,其它比特位被置0;
进而,作为根节点的PE1可以将置位处理后的对应组播流(S,G)的BitString发送给与PE1连接的转发节点P6,转发节点P6接收并保存后,可以根据该对应组播流(S,G)的BitString(0x01010)中被置位为1的比特位(第2位和第4位),确定能够接收该组播流(S,G)的叶节点PE2和PE4,进而在接收到该组播流(S,G)后,可以将该组播流(S,G)的下发到与其连接的PE2,以及与其连接的、并与PE4之间存在通信路径的P8,由P8根据所保存的该对应组播流(S,G)的BitString(0x01010),将该组播流(S,G)的下发到与其连接的PE4。
为了更清楚地说明本发明上述实施例所提供的组播流的转发系统,下面将基于互联网信息文档(Request For Comments,RFC)中的RFC6513、RFC6514、RFC6625,以及申请号为CN201610546280.5(一种建立组播隧道的方法和装置)的专利申请文件,并基于图3所示的系统架构示意图,对本发明一些实施例所提供的组播流的转发系统中根节点、转发节点以及叶节点之间的通信过程进行示例性的说明。
图8示出了本发明一些实施例提供的组播流的转发系统中根节点、转发节点以及叶节点之间通信过程的示意图。
首先对下文中涉及到的部分术语列举如下:
BGP:Border Gateway Protocol,边界网关协议;
RSVP:Resource Reservation Protocol,资源预留协议;
RSVP-TE:Resource Reservation Protocol-Traffic Engineering,基于流量工程扩展的资源预留协议;
PIM:Protocol Independent Multicast,协议无关组播;
P2MP:Point to Multi-Point,点到多点;
LSP:Label Switch Path,标签交换路径;
LSR:Label Switching Route,LSP上的节点可称为标签交换路由器;
P2MP LSP:点到多点的标签交换路径;
Sub LSP:P2MP LSP中,从一个根节点到一个叶节点的LSP路径;
Inclusive-PMSI:Inclusive provider multicast service interface,相容性运营商组播业务接口;本文中使用相容性点到多点(Inclusive P2MP)隧道表示Inclusive-PMSI隧道;
Selective-PMSI:Selective provider multicast service interface,选择性运营商组播业务接口;本中文使用选择性点到多点(Selective P2MP)隧道表示Selective-PMSI隧道。
如图8所示:
首先,根节点(PE1)通过转发节点(P6、P7、P8)与叶节点(PE2、PE3、PE4、PE5)之间进行路由发现:
S1:PE2、PE3、PE4、PE5上报BGP自动发现(auto-discovery,AD)路由(route)消息(BGP Intra AD route);
S2:PE1向PE2、PE3、PE4、PE5下发SPMSI(BGP Spmsi(*,*)AD route)消息,通过该消息收集组播流(S,G)的叶节点列表。
然后,根节点(PE1)建立Inclusive P2MP隧道,其中,根节点(PE1)与各个叶节点(PE2、PE3、PE4、PE5)分别建立起SubLSP,:
S3:PE1下发与PE2之间的SubLSP(1)路径消息(SubLSP(1)Path),并在该消息中携带指示转发节点(Branch节点)(P6、P7)的转发面下发为BUD节点的指令信息;SubLSP(1)Path消息沿着PE1与PE2之间的通信路径透传至叶节点PE2,沿途建立路径状态;
类似地,PE1还下发与PE3间的SubLSP(2)路径消息(SubLSP(2)Path)、与PE4之间的SubLSP(3)路径消息(SubLSP(3)Path)、以及与PE5之间的SubLSP(4)路径消息(SubLSP(4)Path);
SubLSP(2)Path消息沿着PE1与PE3间的通信路径透传至叶节点PE3,指示Branch节点(P6、P7)的转发面下发为BUD节点,沿途建立路径状态;
SubLSP(3)Path消息沿着PE1与PE4间的通信路径透传至叶节点PE4,指示Branch节点(P6、P7、P8)的转发面下发为BUD节点,沿途建立路径状态;
SubLSP(4)Path消息沿着PE1与PE5间的通信路径透传至叶节点PE5,指示Branch节点(P6、P7、P8)的转发面下发为BUD节点,沿途建立路径状态;
S4:PE2接收SubLSP(1)Path消息后,进行资源预留,上报RSVP下的Resv消息,并在其中携带由PE2的LSR ID(具体可以是PE2的IP地址)和PE2被配置的BIT组成的信息对(Resv(LSRPE2ID,LSRPE2BIT));
Resv(LSRPE2ID,LSRPE2BIT)消息沿着PE2与PE1之间的通信路径透传至根结点PE1,沿途建立资源预留状态,(LSRPE2ID,LSRPE2BIT)被沿途各个转发节点(P6、P7)接收并保存;
类似地,PE3接收SubLSP(2)Path消息后,进行资源预留,上报Resv(LSRPE3ID,LSRPE3BIT)消息;Resv(LSRPE3ID,LSRPE3BIT)消息沿着PE3与PE1之间的通信路径透传至根结点PE1,沿途建立资源预留状态,(LSRPE3ID,LSRPE3BIT)被沿途各个转发节点(P6、P7)接收并保存;
类似地,PE4接收SubLSP(3)Path消息后,进行资源预留,上报Resv(LSRPE4ID,LSRPE4BIT)消息;Resv(LSRPE4ID,LSRPE4BIT)消息沿着PE4与PE1之间的通信路径透传至根结点PE1,沿途建立资源预留状态,(LSRPE4ID,LSRPE4BIT)被沿途各个转发节点(P6、P7、P8)接收并保存;
类似地,PE5接收SubLSP(4)Path消息后,进行资源预留,上报Resv(LSRPE5ID,LSRPE5BIT)消息;Resv(LSRPE5ID,LSRPE5BIT)消息沿着PE5与PE1之间的通信路径透传至根结点PE1,沿途建立资源预留状态,(LSRPE5ID,LSRPE5BIT)被沿途各个转发节点(P6、P7、P8)接收并保存;
通过上述步骤,根节点PE1建立起Inclusive P2MP隧道,PE1与各个叶节点(PE2、PE3、PE4、PE5)之间分别建立起SubLSP,并且在建立Inclusive P2MP隧道的各SubLSP的过程中:
根节点PE1获取到了叶节点PE2、PE3、PE4、PE5的(LSRPE2ID,LSRPE2BIT)、(LSRPE3ID,LSRPE3BIT)、(LSRPE4ID,LSRPE4BIT)、(LSRPE5ID,LSRPE5BIT);各个转发节点的转发面下发为BUD;同时各个转发节点保存了其所位于的通信路径对应的叶节点的(LSR ID,LSR BIT)。
具体地,在本发明一些实施例中,可以使用申请号为CN201610546280.5(一种建立组播隧道的方法和装置)的专利申请文件所公开的技术方案建立组播隧道,通过该技术方案可建立同路径的多个组播隧道(共路批量隧道)。
具体地,基于申请号为CN201610546280.5(一种建立组播隧道的方法和装置)的专利申请文件所公开的技术方案,在本发明一些实施例中:
根节点在创建隧道时,可以指定批量隧道的数目(blocksize),在批量隧道建立时,每个下游节点申请大小为blocksize的连续的标签块,并将标签块基值(LabelBase)发给上游,形成一个大小为blocksize的共路批量隧道,批量隧道中的每个隧道通过偏移值(offset)标识;
同时,根节点可以配置所建立的批量隧道中的首隧道(偏移值offset=0的隧道)作为信令隧道,并指示Branch节点强制变更为BUD节点,将Branch节点下发转发面时按BUD节点下发,使得隧道上的每个LSR节点都将信令报文落地送给控制面;具体比如,根节点可以在下发RSVP(sessID,LSR ID<每个LSR一条>,range)建立隧道时,扩展携带两个字段(Flag=CTL-PMSI,offset=0),来指示RSVP-TE建隧道时将offset=0的子隧道的Branch节点强制变更为BUD。
进一步地,由于通过上述过程,PE1获取到了PE2、PE3、PE4、PE5的(LSRPE2ID,LSRPE2BIT)、(LSRPE3ID,LSRPE3BIT)、(LSRPE4ID,LSRPE4BIT)、(LSRPE5ID,LSRPE5BIT);各个转发节点的转发面下发为BUD;同时各个转发节点保存了其所位于的通信路径对应的叶节点的(LSR ID,LSR BIT);
进而,在本发明一些实施例中,PE1便可以基于所获取到的PE2、PE3、PE4、PE5的(LSRPE2ID,LSRPE2BIT)、(LSRPE3ID,LSRPE3BIT)、(LSRPE4ID,LSRPE4BIT)、(LSRPE5ID,LSRPE5BIT),生成组播指示消息BitString,BitString中的各个比特位所对应的叶节点的ID,由各个叶节点的BIT确定。
比如,假设LSRPE2BIT为2,LSRPE3BIT为3,LSRPE4BIT为4,LSRPE5BIT为5,并假设BitString包括5个比特位(位数可以由当前网络的所有PE决定),因而在BitString的这5个比特位中,第2位对应PE2的ID,指示PE2;第3位对应PE3的ID,指示PE3;第4位对应PE4的ID,指示PE4;第5位对应PE5的ID,指示PE5。
基于上述过程,PE1便可以根据获取到的能够接收待发送的组播流(S,G)的叶节点的ID,对BitString进行置位处理。根节点可通过SPMSI(*,*)AD路由收集组播流(S,G)的叶节点列表;
假设组播流(S,G)的叶节点的ID包括PE2,那么置位处理后的BitString可表示为0x01000,PE1进而可以将置位处理后的BitString发送逐跳传递给各个转发节点,各个转发节点保存该BitString,完成Selective P2MP的建立;
进而,根节点可以将组播流(S,G)通过建立起的Selective P2MP到达能够接收该组播流(S,G)的PE2,完成组播数据的按需复制。
具体地,图8中进一步地示出了本发明一些实施例所提供的组播流的转发系统实现组播流转发的信令流程。如图8所示,该流程包括有:
S5:CE2向PE2发送用于请求获取组播流(S,G)的协议无关组播加入请求消息(PIMJion);
S6:PE2向PE1透传BGP客户组播(Customer-multicast)路由消息(BGP C-mcastroute)消息;
S7:PE2向PE1透传BGP叶子AD路由消息(BGP Leaf AD route);该leaf A-D路由用于表示该叶节点PE2请求建立Selective P2MP隧道,该Leaf A-D路由包括该叶节点PE2的IP地址;
S8:PE1向CE1发送协议无关组播加入请求消息PIM Jion报文;
PE1建立Selective P2MP隧道,并根据所接收到的BGP C-mcast route消息,确定接收组播流(S,G)的叶节点为PE2,进而置位BitString为0x01000;
S9:PE1将BitString(0x01000)沿着所建立的Inclusive P2MP隧道Flush到各个转发节点,由各个转发节点进行保存;
S10:由于通过上述过程,各个转发节点上均保存了用于确定组播流(S,G)的叶节点信息BitString(0x01000),因而,PE1可以将组播流(S,G)导入Selective P2MP隧道,复制到PE2上;
可以看到,通过上述过程,CE2的组播加入延迟仅为1跳,组播加入延迟得到了明显的改善,解决了传统Selective P2MP的组播加入延迟大的问题。
进一步地,如果PE5接收到CE5发送的用于请求获取组播流(S,G)的PIM Jion报文(S11),则;
S12:PE5向PE1透传BGP C-mcast route消息;
S13:PE5向PE1透传BGP Leaf AD route消息;该leaf A-D路由用于表示该叶节点PE5请求加入Selective P2MP隧道,该Leaf A-D路由包括该叶节点PE5的IP地址;
PE1刷新Selective P2MP隧道,并根据所接收到的BGP C-mcast route消息,确定接收组播流(S,G)的叶节点还包括PE5,进而刷新BitString为0x01001;
S14:PE1将新的BitString(0x01001)沿着所建立的Inclusive P2MP隧道再次Flush到各个转发节点,由各个转发节点刷新所保存的BitString为0x01001;
S15:由于通过上述过程,各个转发节点上均保存了组播流(S,G)新的BitString(0x01001),因而,组播流(S,G)保持在Selective P2MP隧道,复制到PE5上。
可以看到,通过上述过程,CE5的组播加入延迟仅为1跳,因而解决了传统Selective P2MP的组播加入延迟大的问题。
与前文相应地,假设本发明一些实施例使用申请号为CN201610546280.5(一种建立组播隧道的方法和装置)的专利申请文件所公开的技术方案,建立有同路径的多个组播隧道,且在这些实施例中根节点配置所建立的批量隧道中的首隧道(offset=0的隧道)作为信令隧道,并指示offset=0的隧道的Branch节点强制变更为BUD节点:
进而,根节点PE1可通过SPMSI(*,*)AD路由收集每组播流(S,G)的叶(Leaf)节点列表,当叶节点上报组播流(S,G)的叶节点信息时,根节点PE1为组播流(S,G)分配offset(假设表示为offset=NNN),并将根据组播流(S,G)的叶节点信息组装成BitString,然后通过信令隧道(offset=0)发送(offset=NNN,BitString)信息;各个转发节点控制面接收同样的(offset=NNN,BitString)信息之后,下发(offset=NNN的隧道)转发信息,完成Selective P2MP的建立;
完成上述过程之后,可以继续使用上述申请号为CN201610546280.5的专利申请文件所公开的技术方案,由根节点PE1将组播流(S,G)导入到(offset=NNN)的隧道中,流量Selective P2MP到达相应的叶节点,完成组播数据的按需复制。
为了更清楚地说明本发明实施例中组播指示信息的生成以及如何通过组播指示信息实现组播流的转发、降低组播时延,下面对本发明一些实施例在基于使用申请号为CN201610546280.5的专利申请文件所公开的技术方案的基础上,建立同路径的多个组播隧道并实现组播流的转发过程进行阐述。
基于图3所示的本发明一些实施例所提供的组播流的转发系统在实际场景中的拓扑结构,图9示出了本发明一些实施例提供的组播流的转发系统中根节点下发的报文以及转发节点根据根节点下发的报文进行转发的示意图
如图9所示,该组播流的转发系统中,CE1连接BTV服务器(Server),BTV服务器提供组播流(S,G1)、组播流(S,G2)以及组播流(S,G3);CE1连接到PE1;能够接收组播流(S,G1)的叶节点包括PE2、PE3、PE4、PE5;能够接收组播流(S,G2)的叶节点为PE2;能够接收组播流(S,G3)的叶节点包括PE3、PE4、PE5;
P6与P7之间进行通信的接口为if1;P7与PE2之间进行通信的接口为if1;P7与PE3之间进行通信的接口为if2;P7与P8之间进行通信的接口为if3;P8与PE4之间进行通信的接口为if1;P8与PE5之间进行通信的接口为if2。
如图9所示,PE1在实现组播流的转发过程中:
1、使用申请号为CN201610546280.5的专利申请文件所公开的技术方案建立同路径的多个组播隧道(批量隧道);
2、在使用上述技术方案建立批量隧道时,按照预先确定的策略,将所建立的批量隧道中的首隧道(Offset=0的隧道)标识为CTL-PMSI,其特征在于Branch节点强制变更为Bud节点处理,进而该隧道上的协议报文除了按P2MP往下游节点复制之外,还会本地上送,在本地进行保存。
具体比如,可以在下发RSVP消息用以建立批量隧道时,扩展携带两个字段(Flag=CTL-PMSI,Offset=0),以指示RSVP-TE建隧道时将Offset=0的隧道的Branch节点强制变更为Bud节点;
3、下发(sessID,List<LSR BIT,LSR ID>);用于将PE2、PE3、PE4、PE5的LSR BIT与LSR ID的对应关系下发到各个节点,由各个节点往下游节点复制并在本地上送保存;
4、下发(sessID,Offset=1/2/3,BitString>;分别用于创建(S,G1)、(S,G2)、(S,G3)的Selective P2MP隧道;
具体地,根据能接收组播流(S,G1)的叶节点信息,PE1为组播流(S,G1)分配Offset=1的隧道,置位BitString=0x01111;根据能接收组播流(S,G2)的叶节点信息,PE1为组播流(S,G2)分配Offset=2的隧道,置位BitString=0x01000;根据能接收组播流(S,G3)的叶节点信息,PE1为组播流(S,G3)分配Offset=3的隧道,置位BitString=0x00111;
具体地,上述2、3的报文通过offset=0的首隧道,发送给各个LSR节点。
由于在本发明一些实施例中,各个转发节点在建立隧道的过程中能够接收并保存叶节点的信息对<LSR BIT,LSR ID>,因而2中的报文为可选下发的。
进而,P6、P7以及P8在接收PE1发送的上述报文后可以在本地进行保存报文,进而可以根据所保存的报文执行本地处理,实现组播流的转发:
如图9所示,P6根据本地保存的上述报文,在控制面的处理包括:
Offset=1,BitString=0x01111;
{根据该BitString=0x01111,确定出接口列表(Out-interface-List,OifList)的过程如下:
==>BIT(0x01000)if1;
==>BIT(0x00100)if1;
==>BIT(0x00010)if1;
==>BIT(0x00001)if1;
==>(Offset=1,OifList=if1);}
Offset=2,BitString=0x01000;
{相应地,==>(Offset=2,OifList=if1);}
Offset=3,BitString=0x00111;
{相应地,==>(Offset=3,OifList=if1);}
类似地,P7根据本地保存的上述报文,在控制面的处理包括:
Offset=1,BitString=0x01111;
{根据该BitString=0x01111,确定出接口列表的过程如下:
==>BIT(0x01000)if1;
==>BIT(0x00100)if2;
==>BIT(0x00010)if3;
==>BIT(0x00001)if3;
==>(Offset=1,OifList=if1/if2/if3);}
Offset=2,BitString=0x01000;
{相应地,==>(Offset=2,OifList=if1);}
Offset=3,BitString=0x00111;
{相应地,==>(Offset=3,OifList=if2/if3);}
类似地,P8根据本地保存的上述报文,在控制面的处理包括:
Offset=1,BitString=0x01111;
{根据该BitString=0x01111,确定出接口列表的过程如下:
==>BIT(0x01000)if-;(if-表示无效出接口)
==>BIT(0x00100)if-;
==>BIT(0x00010)if1;
==>BIT(0x00001)if2;
==>(Offset=1,OifList=if1/if2);}
Offset=2,BitString=0x01000;
{相应地,==>(Offset=2,OifList=null);}
Offset=3,BitString=0x00111;
{相应地,==>(Offset=3,OifList=if1/if2);}
进而,P6、P7与P8在接收到组播流((S,G1)、(S,G2)、(S,G3)中的任一个或多个)以后,都可以根据各自所保存的报文在控制面进行本地处理,从而分别确定出对应各个组播流的Offset和OifList,实现组播流的转发。
通过以上描述可以看出,在本发明一些实施例中,根节点可以将所建立的多个隧道的首隧道(offset=0的隧道)作为信令隧道,将Branch节点下发转发面时按Bud节点下发,使得隧道上的每个LSR节点都会将信令报文落地送给控制面;并通过在创建InclusiveP2MP隧道的各SubLSP的过程中,将各叶子节点的(LSR ID,LSR BIT)的对应关系传递到各LSR节点;进而根节点可以收集到各个组播流的叶子节点,根据(LSR ID,LSR BIT)信息组成BitString,并将组播流(S,G)对应的offset值,以及组播流(S,G)的BitString,组成(offset,BitString)的信息,通过信令隧道传递到Inclusive P2MP的各LSR节点,各LSR节点建立或刷新转发信息,完成Selective P2MP的建立。
基于相同的技术构思,图10为本发明一些实施例提供的组播流的转发装置的结构示意图。如图10所示的装置部署在根节点,可应用于如图2所示的组播流的转发系统中。如图10所示,该装置1000包括:
获取模块1001,用于获取能够接收待发送的组播流的至少一个叶节点的叶节点信息;
置位模块1002,用于在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
发送模块1003,用于将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
在本发明一些实施例中,该装置还包括有:
接收模块,用于接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;
生成模块,用于根据接收的各个信息对生成并保存预设的组播指示信息。
在本发明一些实施例中,发送模块1003,还用于:
将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点。
基于相同的技术构思,本发明一些实施例所提供的组播流的转发装置解决问题的原理以及有益效果可以参见上述图2所示组播流的转发系统的实施方式的相关描述以及所带来的有益效果,该组播流的转发装置的实施可以参见上述组播流的转发系统实施例中的相关实施,重复之处不再赘述。
基于相同的技术构思,本发明一些实施例还提供一种组播流的转发方法,该方法流程可由根节点执行,应用于如图2所示的组播流的转发系统中,所述根节点上具体可部署有如图10所示的组播流的转发装置,该方法流程可参见图4,该组播流的转发方法的实施可以参见上述组播流的转发系统实施例中的相关实施,此处不再赘述。
基于相同的技术构思,图11为本发明一些实施例提供的组播流的转发装置的结构示意图。如图11所示的装置部署在转发节点,可应用于如图2所示的组播流的转发系统中。如图11所示,该装置1100包括:
接收模块1101,用于接收与所述转发节点连接的上游节点发送的组播指示信息和组播流;
确定模块1102,用于根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;
转发模块1103,用于将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点。
在本发明一些实施例中,该装置还包括:
第一保存模块,用于接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点。
在本发明一些实施例中,该装置还包括:
第二保存模块,用于接收并保存与所述转发节点连接的上游节点发送的组播指示信息;所述组播指示信息为所述根节点生成并发送的。
基于相同的技术构思,本发明一些实施例所提供的组播流的转发装置解决问题的原理以及有益效果可以参见上述图2所示组播流的转发系统的实施方式的相关描述以及所带来的有益效果,该组播流的转发装置的实施可以参见上述组播流的转发系统实施例中的相关实施,重复之处不再赘述。
基于相同的技术构思,本发明一些实施例还提供一种组播流的转发方法,该方法流程可由转发节点执行,应用于如图2所示的组播流的转发系统中,所述转发节点上具体可部署有如图11所示的组播流的转发装置,该方法流程可参见图5,该组播流的转发方法的实施可以参见上述组播流的转发系统实施例中的相关实施,此处不再赘述。
基于相同的技术构思,图12为本发明一些实施例提供的组播流的转发装置的结构示意图。如图12所示的装置部署在叶节点,可应用于如图2所示的组播流的转发系统中。如图12所示,该装置1200包括:
接收模块1201,用于接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1。
在本发明一些实施例中,该装置还包括:
上报模块1202,用于确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点。
基于相同的技术构思,本发明一些实施例所提供的组播流的转发装置解决问题的原理以及有益效果可以参见上述图2所示组播流的转发系统的实施方式的相关描述以及所带来的有益效果,该组播流的转发装置的实施可以参见上述组播流的转发系统实施例中的相关实施,重复之处不再赘述。
基于相同的技术构思,本发明一些实施例还提供一种组播流的转发方法,该方法流程可由叶节点执行,应用于如图2所示的组播流的转发系统中,所述叶节点上具体可部署有如图12所示的组播流的转发装置,该方法流程可参见图6,该组播流的转发方法的实施可以参见上述组播流的转发系统实施例中的相关实施,此处不再赘述。
图13为本发明一些实施例提供的组播流的转发装置的结构示意图。如图13所示的装置部署在根节点,可应用于如图2所示的组播流的转发系统中。
如图13所示,装置1300包括通信接口1301、存储器1303和处理器1302,其中,通信接口1301、处理器1302、存储器1303、通过总线1304相互连接;总线1304可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extendedindustry standard architecture,EISA)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述通信接口1301用于与对端进行通信。存储器1303,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1303可能包含随机存取存储器(random access memory,简称RAM),也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存器。
处理器1302执行存储器1303所存放的程序,用于执行如图4所示流程:
用通信接口1301获取能够接收待发送的组播流的至少一个叶节点的叶节点信息;
在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
用通信接口1301将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
处理器1302还用于:
用通信接口1301接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;根据接收的各个信息对生成并保存预设的组播指示信息。
处理器1302还用于:用通信接口1301将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点。
上述的处理器1302可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图14为本发明一些实施例提供的组播流的转发装置的结构示意图。如图14所示的装置部署在转发节点,可应用于如图2所示的组播流的转发系统中。
如图14所示,装置1400包括通信接口1401、存储器1403和处理器1402,其中,通信接口1401、处理器1402、存储器1403、通过总线1404相互连接;总线1404可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图14中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述通信接口1401用于与对端进行通信。存储器1403,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1403可能包含随机存取存储器,也可能还包括非易失性存储器,例如至少一个磁盘存器。
处理器1402执行存储器1403所存放的程序,用于执行如图5所示流程:
用通信接口1401接收与所述转发节点连接的上游节点发送的组播指示信息和组播流;
根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;
用通信接口1401将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点。
处理器1402还用于:
用通信接口1401接收与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对并保存,并用通信接口1401将所述信息对上报给与所述转发节点连接的上游节点。
处理器1402还用于:
用通信接口1401接收与所述转发节点连接的上游节点发送的组播指示信息并保存;所述组播指示信息为所述根节点生成并发送的。
上述的处理器1402可以是通用处理器,包括中央处理器、网络处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
图15为本发明一些实施例提供的组播流的转发装置的结构示意图。如图15所示的装置部署在叶节点,可应用于如图2所示的组播流的转发系统中。
如图15所示,装置1500包括通信接口1501、存储器1503和处理器1502,其中,通信接口1501、处理器1502、存储器1503、通过总线1504相互连接;总线1504可以是PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图15中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
所述通信接口1501用于与对端进行通信。存储器1503,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器1503可能包含随机存取存储器,也可能还包括非易失性存储器,例如至少一个磁盘存器。
处理器1502执行存储器1503所存放的程序,用于执行如图6所示流程:
用通信接口1501接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1。
处理器1502还用于:
确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,用通信接口1501上报给与所述叶节点连接的上游节点。
上述的处理器1502可以是通用处理器,包括中央处理器、网络处理器等;还可以是数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本领域内的技术人员应明白,本发明实施例可提供为方法、系统、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本申请的范围。这样,倘若本发明实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (19)
1.一种组播流的转发系统,其特征在于,包括:根节点、N个叶节点以及M个转发节点;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;其中:
所述根节点,用于获取能够接收待发送的组播流的至少一个叶节点的叶节点信息,在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0,将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同;
所述转发节点,用于接收与所述转发节点连接的上游节点发送的组播指示信息和组播流,根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;并将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点;
所述叶节点,用于接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1。
2.如权利要求1所述的系统,其特征在于,
所述叶节点,还用于确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点;
所述转发节点,还用于接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点;
所述根节点,还用于接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;根据接收的各个信息对生成并保存预设的组播指示信息。
3.如权利要求2所述的系统,其特征在于,
所述根节点,还用于将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点;
所述转发节点,还用于接收并保存与所述转发节点连接的上游节点发送的组播指示信息。
4.一种组播流的转发方法,其特征在于,应用于包括有根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;该方法包括:
所述根节点获取能够接收待发送的组播流的至少一个叶节点的叶节点信息;
所述根节点在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
所述根节点将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
5.如权利要求4所述的方法,其特征在于,还包括:
所述根节点接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;
所述根节点根据接收的各个信息对生成并保存预设的组播指示信息。
6.如权利要求5所述的方法,其特征在于,还包括:所述根节点将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点。
7.一种组播流的转发装置,其特征在于,所述装置部署在根节点,应用于包括有所述根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;所述装置包括:
获取模块,用于获取能够接收待发送的组播流的至少一个叶节点的叶节点信息;
置位模块,用于在预设的组播指示信息包括的各个比特位中查找到与获取的至少一个叶节点信息分别对应的比特位,并将查找到的比特位置1、且将未被查找到的比特位置0;
发送模块,用于将置位处理后的组播指示信息与所述组播流发送给与所述根节点连接的每个转发节点;其中,预设的组播指示信息中包括的每个比特位分别对应一个叶节点信息、且各个比特位分别对应的叶节点信息不同。
8.如权利要求7所述的装置,其特征在于,还包括:
接收模块,用于接收与所述根节点连接的各个下游节点分别上报的叶节点信息和比特位信息构成的信息对;
生成模块,用于根据接收的各个信息对生成并保存预设的组播指示信息。
9.如权利要求8所述的装置,其特征在于,所述发送模块,还用于:
将生成的组播指示信息发送给与所述根节点分别连接的各个下游节点。
10.一种组播流的转发方法,其特征在于,应用于包括有根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;该方法包括:
所述转发节点接收与所述转发节点连接的上游节点发送的组播指示信息和组播流;
所述转发节点根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;
所述转发节点将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点。
11.如权利要求10所述的方法,其特征在于,还包括:
所述转发节点接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点。
12.如权利要求11所述的方法,其特征在于,还包括:
所述转发节点接收并保存与所述转发节点连接的上游节点发送的组播指示信息;所述组播指示信息为所述根节点生成并发送的。
13.一种组播流的转发装置,其特征在于,所述装置部署在转发节点,应用于包括有根节点、N个叶节点以及M个所述转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;所述装置包括:
接收模块,用于接收与所述转发节点连接的上游节点发送的组播指示信息和组播流;
确定模块,用于根据所述组播指示信息中被置位为1的比特位,以及所述组播指示信息中各个比特位分别对应的叶节点信息,确定能够接收所述组播流的叶节点;
转发模块,用于将接收的所述组播指示信息和组播流转发给与所述转发节点连接的、且与确定出的叶节点之间存在通信路径的下游节点。
14.如权利要求13所述的装置,其特征在于,还包括:
第一保存模块,用于接收并保存与所述转发节点连接的下游节点发送的叶节点信息和比特位信息构成的信息对,并将所述信息对上报给与所述转发节点连接的上游节点。
15.如权利要求14所述的装置,其特征在于,还包括:
第二保存模块,用于接收并保存与所述转发节点连接的上游节点发送的组播指示信息;所述组播指示信息为所述根节点生成并发送的。
16.一种组播流的转发方法,其特征在于,应用于包括有根节点、N个叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;该方法包括:
所述叶节点接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1;所述组播指示信息用于指示所述上游节点确定能够接收所述组播流的叶节点。
17.如权利要求16所述的方法,其特征在于,还包括:
所述叶节点确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点。
18.一种组播流的转发装置,其特征在于,所述装置部署在叶节点,应用于包括有根节点、N个所述叶节点以及M个转发节点的组播流的转发系统;所述根节点、所述转发节点以及所述叶节点以树状结构连接,所述根节点位于所述树状结构的最顶层,所述转发节点位于所述树状结构的中间层,所述叶节点位于所述树状结构的最底层;所述N、M均为大于或等于1的正整数;所述装置包括:
接收模块,用于接收所述叶节点连接的上游节点发送的组播指示信息和组播流,所述组播指示信息中包括的、与所述叶节点的叶节点信息对应的比特位被置位为1;所述组播指示信息,用于指示所述上游节点确定能够接收所述组播流的叶节点。
19.如权利要求18所述的装置,其特征在于,还包括:
上报模块,用于确定所述叶节点占据所述组播指示信息中的比特位信息,并将所述叶节点的叶节点信息和确定的比特位信息构成信息对,上报给与所述叶节点连接的上游节点。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611261825.4A CN106817308B (zh) | 2016-12-30 | 2016-12-30 | 一种组播流的转发系统、方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611261825.4A CN106817308B (zh) | 2016-12-30 | 2016-12-30 | 一种组播流的转发系统、方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106817308A CN106817308A (zh) | 2017-06-09 |
CN106817308B true CN106817308B (zh) | 2019-12-24 |
Family
ID=59110034
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611261825.4A Active CN106817308B (zh) | 2016-12-30 | 2016-12-30 | 一种组播流的转发系统、方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106817308B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109246624B (zh) * | 2017-07-11 | 2020-04-03 | 华为技术有限公司 | 一种组播转发方法及相关设备 |
CN107547377B (zh) * | 2017-07-19 | 2020-04-03 | 新华三技术有限公司 | 一种组播流量传输方法和装置 |
CN108337176B (zh) * | 2017-12-27 | 2021-04-20 | 华为技术有限公司 | 一种报文处理方法和装置 |
CN112769745B (zh) * | 2019-11-01 | 2022-07-22 | 华为技术有限公司 | 传输组播报文的方法和相关装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242342A (zh) * | 2007-02-05 | 2008-08-13 | 华为技术有限公司 | 组播方法及组播路由方法 |
CN101741588A (zh) * | 2008-11-14 | 2010-06-16 | 中国移动通信集团公司 | 数据存储系统及方法 |
CN102546352A (zh) * | 2010-12-08 | 2012-07-04 | 中兴通讯股份有限公司 | 一种实现点到多点标签交换路径保护的方法及系统 |
CN104811387A (zh) * | 2014-01-24 | 2015-07-29 | 思科技术公司 | 具有位索引显式复制的等价多路径 |
CN105763411A (zh) * | 2014-12-15 | 2016-07-13 | 华为技术有限公司 | 一种建立组播隧道的方法及装置 |
US9438432B2 (en) * | 2013-09-17 | 2016-09-06 | Cisco Technology, Inc. | Bit indexed explicit replication packet encapsulation |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9253250B2 (en) * | 2013-03-15 | 2016-02-02 | Cisco Technology, Inc. | Local reroute protection for multicast multiprotocol label switching |
-
2016
- 2016-12-30 CN CN201611261825.4A patent/CN106817308B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242342A (zh) * | 2007-02-05 | 2008-08-13 | 华为技术有限公司 | 组播方法及组播路由方法 |
CN101741588A (zh) * | 2008-11-14 | 2010-06-16 | 中国移动通信集团公司 | 数据存储系统及方法 |
CN102546352A (zh) * | 2010-12-08 | 2012-07-04 | 中兴通讯股份有限公司 | 一种实现点到多点标签交换路径保护的方法及系统 |
US9438432B2 (en) * | 2013-09-17 | 2016-09-06 | Cisco Technology, Inc. | Bit indexed explicit replication packet encapsulation |
CN104811387A (zh) * | 2014-01-24 | 2015-07-29 | 思科技术公司 | 具有位索引显式复制的等价多路径 |
CN105763411A (zh) * | 2014-12-15 | 2016-07-13 | 华为技术有限公司 | 一种建立组播隧道的方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106817308A (zh) | 2017-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9716648B2 (en) | System and method for computing point-to-point label switched path crossing multiple domains | |
US9860163B2 (en) | MPLS traffic engineering for point-to-multipoint label switched paths | |
US7602702B1 (en) | Fast reroute of traffic associated with a point to multi-point network tunnel | |
US9998353B2 (en) | System and method for finding point-to-multipoint label switched path crossing multiple domains | |
USRE47260E1 (en) | System and method for point to multipoint inter-domain MPLS traffic engineering path calculation | |
KR100693052B1 (ko) | Mpls 멀티캐스트의 고속 재경로 설정 장치 및 방법 | |
US8462635B1 (en) | Resource reservation protocol with traffic engineering point to multi-point label switched path hierarchy | |
US20160006614A1 (en) | Source Routing Using Path Computation Elements | |
CN106817308B (zh) | 一种组播流的转发系统、方法及装置 | |
US20140003425A1 (en) | Implementing a Multicast Virtual Private Network by Using Multicast Resource Reservation Protocol-Traffic Engineering | |
US8570871B2 (en) | Signaling extension for a label switched path over a composite link | |
JP2013520889A (ja) | ポイント・ツー・マルチポイント・ラベル・スイッチ・パスのバックアップ・イングレスを計算するシステムおよび方法 | |
WO2015054904A1 (zh) | 转发报文的方法、控制器、转发设备和网络系统 | |
CN103973459A (zh) | IPv6组播孤岛间的组播报文的传输方法及装置 | |
CN106357541B (zh) | 一种信息传递方法和装置 | |
US20160142284A1 (en) | Establishing a multicast backup path | |
CN106230730B (zh) | 一种组播传输方法和装置 | |
US20140161124A1 (en) | Enhanced Upstream Label Assignment (ULA) Mechanism For Point To Multi-Point (P2MP) and/or Multi-Point To Multi-Point (MP2MP) Facility Protection | |
WO2015014197A1 (zh) | 组播负载场景下选路的方法和路由器 | |
WO2013148661A1 (en) | Rsvp-te mp2mp solution | |
US8995304B2 (en) | Enhanced upstream label assignment (ULA) mechanism for point to multi-point (P2MP) and/or multi-point to multi-point (MP2MP) facility protection | |
WO2018010568A1 (zh) | 信息的通告方法、转发条目的生成方法及装置 | |
CN112054962B (zh) | 一种实现组播的方法和装置 | |
KR100310302B1 (ko) | 멀티프로토콜 레이블 스위칭 망에서의 멀티캐스트레이블을 이용한 멀티캐스트 레이블 교환경로 설정방법 | |
WO2020021558A1 (en) | Methods, apparatus and machine-readable media relating to path computation in a communication network |
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 |