CN109039902A - 一种组播报文的转发方法及装置 - Google Patents
一种组播报文的转发方法及装置 Download PDFInfo
- Publication number
- CN109039902A CN109039902A CN201810819968.5A CN201810819968A CN109039902A CN 109039902 A CN109039902 A CN 109039902A CN 201810819968 A CN201810819968 A CN 201810819968A CN 109039902 A CN109039902 A CN 109039902A
- Authority
- CN
- China
- Prior art keywords
- multicast
- message
- equipment
- router
- advertising
- 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
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/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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种组播报文的转发方法及装置,可包括:在接收到由接收者侧的DR设备发出的组播通告消息时,提取该组播通告消息中携带的组播组地址和绑定该组播组地址的该接收者侧DR设备的路由器标识Router ID并记录;当接收到组播源设备发往该组播组地址的组播报文时,确定绑定该组播组地址的Router ID所对应的段路由SR标签栈;所述SR标签栈中记录了到达该Router ID所经过的所有转发设备的SR标签;使用确定出的SR标签栈将该组播报文封装成SR报文进行标签转发。使用本申请提供的方法不需要维护大量复杂的组播协议,可以提高组播报文的转发效率。
Description
技术领域
本申请涉及计算机通信领域,尤其涉及一种组播报文的转发方法及装置。
背景技术
组播技术可以有效地解决单点发送、多点接收的问题,从而实现了网络中点到多点的高效数据传送,能够节约大量的网络带宽、降低网络负载。
组播通常由组播控制层面和组播转发层面构成。在传统的组播技术中,组播控制层面需要基于IGP(Interior Gateway Protocol,内部网关协议)、PIM(ProtocolIndependent Multicast,独立组播协议)、IGMP(Internet Group Management Protocol,网际组管理协议)等组播协议构建组播分发树以及组播路由表等,转发层面需要查找组播路由表进行IP转发。
在传统的组播技术中,由于组播控制层面需要基于很多的复杂的组播协议才能构建组播分发树以及组播路由表,造成组播控制层面构建和维护该组播分发树和组播路由表等的压力较大。
发明内容
有鉴于此,本申请提供一种组播报文的转发方法及装置。
具体地,本申请是通过如下技术方案实现的:
根据本申请的第一方面,提供一种组播报文的转发方法,所述方法应用在组播源侧的指定路由器DR设备,包括:
在接收到由接收者侧的DR设备发出的组播加入通告消息时,记录该组播加入通告消息中携带的第一组播组地址和该接收者侧DR设备的路由器标识Router ID的绑定关系;
当接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的段路由SR标签栈;所述SR标签栈中记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者;
使用确定出的SR标签栈将该组播报文封装成SR报文进行转发。
可选的,所述确定该组播组地址绑定的Router ID所对应的SR标签栈,包括:
在已学习到的Router ID和SR标签栈的对应关系中,查找所述绑定该第一组播组地址的Router ID所对应的SR标签栈。
可选的,所述方法还包括:
在接收到由该接收者侧DR设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和该接收者侧DR设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
可选的,所述组播加入通告消息和组播离开通告消息通过如下方式确定:
接收邻居设备转发的路由通告消息;其中,所述路由通告消息携带有第一字段和第二字段;所述第一字段用于指示所述路由通告消息是否是组播通告消息;所述第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第二预设值时,则确定该路由通告消息为组播加入通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第三预设值时,则确定该路由通告消息为组播离开通告消息。
根据本申请的第二方面,提供一种组播报文的转发方法,所述方法应用在接收者侧的指定路由器DR设备,包括:
接收接收者发送的组播加入报文;所述组播加入报文里至少携带了该接收者所要加入的组播组的第一组播组地址;
向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息,以使组播源侧的DR设备记录该组播加入通告消息里携带的第一组播组地址和本设备的Router ID的绑定关系,并使该组播源侧的DR设备在接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的SR标签栈,并使用确定出的SR标签栈将该组播报文封装成SR报文进行转发;
接收由组播源侧的DR设备发出的SR报文,去掉SR报文的SR标签还原成组播报文,将该组播报文发送至加入指定组播组的接收者;所述指定组播组为该组播报文的目的地址所指示的组播组。
可选的,所述方法还包括:
接收所述接收者发送的组播离开报文;所述组播离开报文里至少携带了该接收者所要离开的组播组的第二组播组地址;
向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,以使组播源侧DR设备在接收到由本设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和本设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
可选的,所述向所有邻居设备发送携带有所述第一组播组地址和本设备的RouterID的绑定关系的组播加入通告消息,包括:
将所述第一组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值,以及将该路由通告消息中的第二字段的取值设置为第二预设值,生成组播加入通告消息;
向所有邻居设备发送生成的所述组播加入通告消息;
所述向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,包括:
将所述第二组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将路由通告消息的第一字段的取值设置为第一预设值、以及将所述路由通告消息的第二字段的取值设置为第三预设值,生成组播离开通告消息;
向所有邻居设备发送生成的组播离开通告消息;
其中,所述路由通告消息携带的第一字段用于指示所述路由通告消息是否是组播通告消息;所述路由通告消息携带的第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息。
根据本申请的第三方面,提供一种组播报文的转发装置,所述装置应用在组播源侧的指定路由器DR设备,包括:
接收单元,用于接收到由接收者侧的DR设备发出的组播加入通告消息;
记录单元,用于记录该组播加入通告消息中携带的第一组播组地址和该接收者侧DR设备的路由器标识Router ID的绑定关系;
确定单元,用于当接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的段路由SR标签栈;所述SR标签栈中记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者;
转发单元,用于使用确定出的SR标签栈将该组播报文封装成SR报文进行转发。
可选的,所述确定单元,在确定该组播组地址绑定的Router ID所对应的SR标签栈时,具体用于在已学习到的Router ID和SR标签栈的对应关系中,查找所述绑定该第一组播组地址的Router ID所对应的SR标签栈。
可选的,所述接收单元,还用于接收到由该接收者侧DR设备发出的组播离开通告消息;
所述装置还包括:
删除单元,用于以该组播离开通告消息携带的第二组播组地址和该接收者侧DR设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
可选的,所述组播加入通告消息和组播离开通告消息通过如下方式确定:
接收邻居设备转发的路由通告消息;其中,所述路由通告消息携带有第一字段和第二字段;所述第一字段用于指示所述路由通告消息是否是组播通告消息;所述第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第二预设值时,则确定该路由通告消息为组播加入通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第三预设值时,则确定该路由通告消息为组播离开通告消息。
根据本申请的第四方面,提供一种组播报文的转发装置,所述装置应用在接收者侧的指定路由器DR设备,包括:
接收单元,用于接收接收者发送的组播加入报文;所述组播加入报文里至少携带了该接收者所要加入的组播组的第一组播组地址;
发送单元,用于向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息,以使组播源侧的DR设备记录该组播加入通告消息里携带的第一组播组地址和本设备的Router ID的绑定关系,并使该组播源侧的DR设备在接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的SR标签栈,并使用确定出的SR标签栈将该组播报文封装成SR报文进行转发;
转发单元,用于接收由组播源侧的DR设备发出的SR报文,去掉SR报文的SR标签还原成组播报文,将该组播报文发送至加入指定组播组的接收者;所述指定组播组为该组播报文的目的地址所指示的组播组。
可选的,所述接收单元,还用于接收所述接收者发送的组播离开报文;所述组播离开报文里至少携带了该接收者所要离开的组播组的第二组播组地址;
所述发送单元,还用于向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,以使组播源侧DR设备在接收到由本设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和本设备的RouterID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
可选的,所述发送单元,在向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息时,具体用于将所述第一组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值,以及将该路由通告消息中的第二字段的取值设置为第二预设值,生成组播加入通告消息;向所有邻居设备发送生成的所述组播加入通告消息;
所述发送单元,在向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息时,具体用于将所述第二组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将路由通告消息的第一字段的取值设置为第一预设值、以及将所述路由通告消息的第二字段的取值设置为第三预设值,生成组播离开通告消息;向所有邻居设备发送生成的组播离开通告消息;其中,所述路由通告消息携带的第一字段用于指示所述路由通告消息是否是组播通告消息;所述路由通告消息携带的第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息。
本申请将组播技术与SR标签转发技术进行了融合,一方面,接收者侧的DR设备可以将接收者加入的组播组地址和该接收者侧的DR设备的Router ID在网络内进行通告,使得组播源侧的DR设备可以接收到该组播组地址和Router ID,从而建立了组播源和接收者的联系。因此,本申请提供的组播技术不需要维护大量复杂的组播协议(如PIM等协议)来建立组播源和接收者联系(比如本申请不需要维护PIM协议来建立PIM-SM工作机制),所以可以节省网络资源,减少转发设备的设备压力。
另一方面,由于本申请的转发设备在转发组播报文时不是采用IP转发的方式,而是采用SR标签转发的方式,所以组播报文的转发效率较高。
附图说明
图1是一种现有技术中的组播网络架构的示意图;
图2a是本申请一示例性实施例示出的一种组播报文的转发方法的流程图;
图2b是本申请一示例性实施例示出的另一种组播报文的转发方法的流程图;
图3是本申请一示例性实施例示出的一种报文格式的示意图;
图4是本申请一示例性实施例示出的一种组播报文的转发方法的示意图;
图5是本申请一示例性实施例示出的一种组播源侧DR设备的硬件结构图;
图6是本申请一示例性实施例示出的一种组播报文的转发装置的框图;
图7是本申请一示例性实施例示出的一种接收者侧DR设备的硬件结构图;
图8是本申请一示例性实施例示出的一种组播报文的转发装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
首先,以PIM-SM(Protocol Independent Multicast-Sparse Mode,稀疏模式独立组播协议)工作机制为例,并结合图1来介绍传统的组播技术。
在图1所示的组网架构中,主要包括接收者侧的DR(Designated Router,指定路由器)设备、组播源侧的DR设备以及RP(Rendezvous Point,汇集点)设备。接收者侧的DR设备是与接收者直连的转发设备。组播源侧的DR设备是与组播源直连的转发设备。
其中,接收者侧的DR设备负责向RP设备发送组播加入报文;组播源侧的DR设备负责向RP设备发送组播注册报文。
RP设备是PIM-SM域中的核心设备。每个组播组在任意时刻,只能由唯一的一个RP设备为其转发数据,而不能由多个RP设备转发数据。RP设备可以通过手工方式静态配置,也可以通过BSR机制动态选举产生。
当接收者加入一个组播组时,接收者可以向该接收者直连的DR设备(接收者侧的DR设备)发送组播加入报文,该组播加入报文里至少携带了接收者所要加入的组播组地址。该DR设备可将该组播加入报文发送给RP设备。该组播加入报文从DR设备到RP设备所经过的设备就形成了RPT(汇聚路径树)的分支,并且该组播加入报文经过的设备上形成了(*,G)表项。
其中,该RPT分支的根节点为该RP设备,叶子节点为与该接收者直连的DR设备。
该(*,G)表项中的“*”表示来自任意组播源,G表示组播组地址。(*,G)表项记录了组播信息,比如组播组地址、加入该组播组的接收者地址等。
当组播源向该组播组发送组播报文时,组播源可以将该组播报文发送给与该组播源直连的DR设备(组播源侧的DR设备)。组播源侧的DR设备可将该组播报文封装成组播注册报文,然后将该组播注册报文以单播的方式发送给RP设备。
RP设备在接收到该组播注册报文后,可以解封装该组播注册报文,并将解封装后的组播报文沿着上述建立好的RPT转发给接收者侧的DR设备。此外,RP设备基于上述生成的(*,G)表项以及该组播报文的源地址和目的地址(组播组地址),生成(S,G)表项。该(S,G)表项中的“S”表示组播源的地址,G表示组播组地址。
然后,RP设备可以向组播源发送(S,G)加入报文。该(S,G)加入报文从RP设备到组播源所经过的设备就形成了SPT(最短路径树)分支,(S,G)加入报文所经过的设备上都生成了(S,G)表项。
当组播源向组播接收者发送组播报文时,组播报文可以沿着SPT发送至RP设备,然后RP设备再将报文沿着RPT发送给组播接收者。
由于上述描述可知,一方面,在传统的组播技术中,需要基于大量复杂的组播协议比如PIM等组播协议生成组播表项和组播分发树(比如RPT分支、SPT分支),以及需要选举组播分发树的根节点RP设备等等,这些协议报文的交互会大大占用网络资源,此外设备维护这些协议建立好的组播表项和组播分发树的压力巨大。
另一方面,在传统的组播技术中,组播报文的转发需要查找组播路由表进行IP转发,使得组播报文的转发效率较低。
参见图2a,图2a是本申请一示例性实施例示出的一种组播报文转发方法的流程图。该流程可包括如下所示步骤。
这里为了方便叙述,将组播源侧的DR设备记为源DR设备,将接收者侧的DR设备记为目的DR设备。
步骤201:目的DR设备接收接收者发送的组播加入报文;所述组播加入报文里至少携带了接收者所要加入的组播组的第一组播组地址(这里为了方便叙述,将接收者所要加入的组播组的组播组地址记为第一组播组地址)。
其中,该组播加入报文里携带了组播组信息。该组播组信息包括但不限于:第一组播组地址,加入该第一组播组地址所指示的组播组的接收者的地址、目的DR设备接收该组播加入报文的端口(也可被称为加入组播组的端口)等等。
步骤202:目的DR设备向所有邻居设备发送携带有本设备的Router ID(路由器标识)和该第一组播组地址绑定关系的组播加入通告消息。
本申请对路由通告消息的进行了扩展,使得该路由通告消息中携带第一字段和第二字段。
其中,第一字段用于指示所述路由通告消息是否是组播通告消息。当该第一字段的取值为第一预设值时,表明该路由通告消息是组播通告消息。当该第一字段的取值为第四预设值时,表明该路由通告消息是普通的路由通告消息。
第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息。比如,当第二字段的取值为第二预设值时,表明该组播通告消息为组播加入通告消息,当第二字段的取值为第三预设值时,表明该组播通告消息为组播离开通告消息。
上述路由通告消息可以是基于IS-IS协议的SR功能扩展的路由通告消息,以下称为IS-IS SR路由通告消息。
以路由通告消息是基于IS-IS SR的路由通告消息为例,对上述报文的扩展进行详细地说明。
IS-IS SR路由通告消息是对IS-IS路由通告消息进行了SR扩展而产生的一种路由通告消息,
例如,如图3中的(a)所指示的TLV就是对IS-IS路由通告消息的TLV进行扩展形成的SR TLV。
本申请是在SR TLV的基础上进一步进行了扩展。
通常SR TLV的Type由8个bit组成,前6个bit已经被规定好,后两个bit为保留位,可以用户配置。本申请为SR TLV中的Type的后两个bit位中的任意一个bit位设置了M标志,该M标志就是上文的第一字段。当该M标志为第一预设值(如1)时,表明该IS-IS SR路由通告消息是组播通告消息。当该M标志位第四预设值(如0)时,表明该IS-IS SR路由通告消息是普通的IS-IS SR路由通告消息。
此外,本申请还对SR TLV的载荷部分进行了扩展,比如在SR TLV的载荷部分扩展了sub-TLV,使得SR TLV的载荷部分携带了sub-TLV。该sub-TLV可参见图3中的(b)所指示的报文格式。
在该sub-TLV中,sub-TLV中的Type字段就是上文所述的第二字段,该第二字段用于指示组播通告消息的类型(该组播通告消息的类型包括组播加入通告消息和组播离开通告消息)。比如,当Type取值为第二预设值(如0x01)时表明该组播通告消息为组播加入通告消息。当Type取值为第三预设值(如0x02)是表明该组播通告消息为组播离开通告消息。该sub-TLV的载荷部分携带了组播组地址和Router ID的绑定关系。
当然,上述路由通告消息也可以是基于OSPF SR等其他协议的路由通告消息,这里只是对路由通告消息进行示例性的说明,不对其进行具体地限定。
基于OSPF SR等其他协议的路由通告消息,是对OSPF(Open Shortest PathFirst,开放式最短路径优先)等其他协议进行SR扩展所产生的协议。该OSPF SR等其他路由协议的路由通告消息不仅可以用于通告路由,还可以用于SR标签的分配、通告等。
本申请在对基于OSPF等其他协议的路由通告消息进行SR扩展时,也可以采用上述基于IS-IS协议的SR路由通告消息扩展的方式,在对TLV进行SR扩展后生成的SR TLV的Type中增加第一字段,对SR TLV的载荷部分进行扩展生成sub-TLV,在sub-TLV中增加第二字段,这里不再赘述。
在本申请实施例中,当目的DR设备接收到接收者发送的组播加入报文后,还可以获取该组播加入报文携带的第一组播组地址。然后,目的DR设备可以绑定该第一组播组地址与本目的DR设备的Router ID。
然后,目的DR设备可以将本设备的Router ID和第一组播组地址的绑定关系添加在待发送的第一路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值以及将该路由通告消息中的第二字段的取值设置为第二预设值。
目的DR设备可以向所有的邻居设备发送该路由通告消息。邻居设备在接收到该路由通告消息后,也会将该路由通告消息发送给本设备的邻居设备,依次类推,最终该路由通告消息会发送到源DR设备。
此外,当目的DR设备接收到接收者发送的组播加入报文后,目的DR设备可以在本地生成(*,G)表项,该(*,G)表示用于指导目的DR设备将与该(*,G)表项匹配的组播报文转发给该(*,G)表项所指示的接收者。该(*,G)表项可以包括上述组播组信息。
下面对(*,G)表项进行举例说明。
display igmp group;(展示组播组信息)
IGMP groups in total:1;(组播组总个数:1个)
GigabitEthernet1/0/1(133.133.4.2);(GigabitEthernet1/0/1为当前加入组播组的端口,133.133.4.2为加入该组播组的接收者地址)
IGMP groups reported in total:1;(当前接口上动态加入的IGMP组播组总数)
Group address 225.0.0.1;(组播组地址)
Last reporter 133.133.4.1;(最后发送报告报文的接收者地址)
步骤203:当源DR设备接收到由接收者侧的DR设备发出的组播加入通告消息时,记录该组播加入通告消息里携带的该目的DR设备的Router ID和组播组地址的绑定关系。
当源DR设备接收到路由通告消息后,可以检查该路由通告消息中的第一字段和第二字段的取值。
若该路由通告消息的第一字段的取值是第一预设值且第二字段的取值为第二预设值,则确定接收到的路由通告消息为目的DR设备发出的组播加入通告消息。
若该路由通告消息的指定字段的取值是第四预设值,则确定该路由通告消息为普通的路由通告消息,此时可以按照现有方式来处理该路由通告消息。
当源DR设备确定接收到了由目的DR设备发出的组播加入通告消息时,源DR设备可以获取该组播加入通告消息中携带的第一组播组地址和目的DR设备的Router ID的绑定关系。
然后,源DR设备可以记录该第一组播组地址和目的DR设备的Router ID的绑定关系。
步骤204:当源DR设备接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的SR标签栈;所述SR标签栈中记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者。
需要说明的是,本申请的源DR设备、目的DR设备,以及源DR设备和目的DR设备之间的转发设备都应用在SR域内。
通常,SR域内头节点记录有Router ID和到达该Router ID所指示的节点的SR标签栈的对应关系。该对应关系可以记录在标签转发表项,这里不对该对应关系的数据组织形式进行具体地限定。
例如,在SR域内,SR头节点记录有标签转发表,该标签转发表中包含若干条标签转发表项,每个标签转发表项至少记录有Router ID和SR标签栈的对应关系。该SR标签栈记录该SR头节点到该记录的Router ID所经过的所有转发设备的SR标签,这里所有转发设备包括:本设备到记录的Router ID所指示转发设备之间的转发设备、以及该Router ID对应的转发设备。换句话来说,SR的头节点记录有从SR头节点到达该Router ID的标签转发路径。
例如,如图4所示,图4中的转发设备S是组播源侧的DR设备,转发设备R1和R2是接收者侧的DR设备,转发设备A、转发设备B是转发设备S和转发设备R1之间的转发设备,转发设备M、转发设备N是转发设备S和转发设备R2之间的转发设备。
转发设备S、转发设备R1、转发设备R2、转发设备A、转发设备B转发设备M、转发设备N组成SR域。转发设备S(组播源侧的DR设备)是该SR域内的SR头节点。
假设,转发设备A、转发设备B和转发设备R1的SR标签分别为10,20,30。转发设备M、转发设备N和转发设备R2的SR标签分别为40,50,60。转发设备R1的Router ID为2.2.2.2,转发设备R2的Router ID为3.3.3.3。
转发设备S上记录有针对转发设备R1的标签转发表项和针对转发设备R2的标签转发表项。
针对转发设备R1的标签转发表项记录了转发设备R1的Router ID(即2.2.2.2)和到达转发设备R1的SR标签栈(即{10,20,30})。针对转发设备R2的标签转发表项记录了转发设备R2的Router ID(即3.3.3.3)和到达转发设备R2的SR标签栈(即{40,50,60}),如表1所示。
Router ID | SR标签栈 |
2.2.2.2 | {10,20,30} |
3.3.3.3 | {40,50,60} |
表1
下面以针对转发设备R1的标签转发表项(即表1中的第一行)为例,对标签转发表项记载的内容进行说明。
表1中的第一行记录的2.2.2.2为转发设备R1的Router ID,记录的SR标签栈记录了从转发设备S到用户主机1或用户主机2所经过的所有转发设备的SR标签。比如转发设备S到用户主机1或用户主机2顺序经过了转发设备A、转发设备B和转发设备R1,所以SR标签栈顺序记录了10(转发设备A对应的SR标签)、20(转发设备B对应的SR标签)和30(转发设备R1对应的SR标签)。
对于上述Router ID和组播组地址的对应关系的形成可以由用户预先配置,也可以由SR域中的转发设备通过现有的标签分配机制、标签通告机制等动态学习得到,这里不再赘述。
以上是对Router ID和组播组地址的对应关系的介绍。
在本申请实施例中,当源DR设备接收到组播源设备发往该第一组播组地址的组播报文时,源DR设备可以在已记录的组播组地址和Router ID的绑定关系中,查找该第一组播组地址对应的Router ID。
然后,源DR设备可在已学习到的Router ID和SR标签栈的对应关系中,查找所述绑定该第一组播组地址的Router ID所对应的SR标签栈。
例如,源DR设备可在预设的标签转发表中,查找包含绑定该第一组播组地址的Router ID的标签转发表项,并将该标签转发表项记录的SR标签栈确定为该Router ID对应的SR标签栈。该SR标签栈记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者。该到达指定接收者所经过的转发设备包括:源DR设备到达目的DR设备之间的转发设备和目的DR设备。
步骤205:源DR设备使用确定出的SR标签栈将该组播报文封装成SR报文进行转发。
在实现时,源DR设备可以将该SR标签栈添加在该组播报文中,形成SR报文。然后对该SR报文进行标签转发。比如,对于每个转发SR报文的转发设备来说,可以顺序地弹出SR标签栈中自身的SR标签,然后将SR报文转发给当前最外层的SR标签所指示的转发设备。
步骤206:目的DR设备接收由源DR设备发出的SR报文,去掉SR报文的SR标签还原成组播报文,将该组播报文发送至加入指定组播组的接收者;所述指定组播组为该组播报文的目的地址所指示的组播组。
在实现时,当目的DR设备接收到SR报文后,可以去掉该SR报文的SR标签,还原成组播报文。目的DR设备可以根据该组播报文的目的地址,查找组播地址为该目的地址的(*,G)表项,然后依据该(*,G)表项记录的组播信息,查找加入该组播的接收者的地址和加入端口,并基于该接收者的地址和加入端口将该组播报文发送至该接收者。
参见图2b,图2b是本申请一示例性实施例示出的另一种组播报文的转发方法的流程图,该流程可包括如下所示的步骤。
步骤211:目的DR设备接收接收者发送的组播离开报文;该组播离开报文里至少携带了该接收者所要离开的组播组的第二组播组地址。
需要说明的是,这里为了方便叙述,将接收者所要离开的组播组的组播组地址记为第二组播组地址。
而上文所述的第一组播组地址,是为了方便叙述,将接收者所要加入的组播组的组播组地址记为第一组播组地址。
这里的第一、第二并无实际的含义,只是为了方便叙述而进行的区分。该第二组播组地址与上述第一组播组地址可以是同一个组播组地址,也不可以是不同的组播组地址。
其中,该组播离开报文里携带了组播组信息。该组播组信息包括但不限于:第二组播组地址,离开第二组播组地址所指示的组播组的接收者的地址、目的DR设备接收该组播离开报文的端口(也可被称为离开组播组的端口)等等。
步骤212:目的DR设备向所有邻居设备发送携带有本设备Router ID和该第二组播组地址绑定关系的组播离开通告消息。
在实现时,当目的DR设备接收到接收者发送的组播离开报文后,还可以获取该组播离开报文携带的第二组播组地址。然后,目的DR设备可以绑定该第二组播组地址与本目的DR设备的Router ID。
然后,目的DR设备可以将本设备的Router ID和第二组播组地址的绑定关系添加在待发送的路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值以及将该路由通告消息中的第二字段的取值设置为第三预设值。
目的DR设备可以向所有的邻居设备发送该路由通告消息。邻居设备在接收到该路由通告消息后,也会将该路由通告消息发送给本设备的邻居设备,依次类推,最终该路由通告消息会发送到源DR设备。
此外,当目的DR设备接收到接收者发送的组播离开报文后,目的DR设备可以删除与该组播离开报文里携带的第二组播组地址对应的(*,G)表项。
步骤213:当源DR设备接收到由接收者侧的DR设备发出的组播离开通告消息时,获取该组播离开通告消息里携带的该目的DR设备的Router ID和第二组播组地址的绑定关系。
当源DR设备接收到路由通告消息后,可以检查该路由通告消息中的第一字段和第二字段的取值。
若该路由通告消息的第一字段的取值是第一预设值且第二字段的取值为第三预设值,则确定接收到的路由通告消息为目的DR设备发出的组播离开通告消息。然后,源DR设备可以获取该组播离开通告消息里携带的该目的DR设备的Router ID和第二组播组地址的绑定关系。
若该路由通告消息的指定字段的取值是第四预设值,则确定该路由通告消息为普通的路由通告消息,此时可以按照现有方式来处理该路由通告消息。
步骤214:源DR设备以该组播离开通告消息携带的第二组播组地址和该目的DR设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
由上述描述可知,本申请将组播技术与SR标签转发技术进行了融合,一方面,接收者侧的DR设备可以将接收者加入的组播组地址和该接收者侧的DR设备的Router ID在网络内进行通告,使得组播源侧的DR设备可以接收到该组播组地址和Router ID,从而建立了组播源和接收者的联系。因此,本申请提供的组播技术不需要维护大量复杂的组播协议(如PIM等协议)来建立组播源和接收者联系(比如本申请不需要维护PIM协议来建立PIM-SM工作机制),所以可以节省网络资源,减少转发设备的设备压力。
另一方面,由于本申请的转发设备在转发组播报文时不是采用IP转发的方式,而是采用SR标签转发的方式,所以组播报文的转发效率较高。
第三方面,由于在组播源侧的DR设备会将本地到接收者侧的DR设备的路径上所有转发设备的SR标签压入到组播报文中,所以组播报文会沿着该路径进行转发,最终到达接收者侧的DR设备,由接收者侧的DR设备对该组播报文进行复制转发,而不是由现有的组播机制中的RP设备、中间转发设备进行组播报文的复制转发,所以可以有效地减少网络带宽的消耗。
此外,采用本申请提供的组播机制,只需要组播源侧DR设备和接收者侧的DR设备支持组播,这两个DR设备之间的转发设备无需支持组播,所以大大减少了这些转发设备的设备压力。
下面通过具体地例子,并结合图4,对本申请提供的组播报文的转发方法进行详细地说明。
图4中的服务器为组播源,用户主机1、用户主机2和用户主机3均为接收者。转发设备S为组播源侧的DR设备,转发设备R1为与用户主机1和用户主机2相连的接收者侧的DR设备。转发设备R2为与用户主机3相连的接收者侧的DR设备。
转发设备A和转发设备B是转发设备S和转发设备R1之间的中间转发设备。
转发设备M和转发设备N是转发设备S和转发设备R2之间的中间转发设备。
转发设备S、转发设备R1和转发设备R2支持组播技术,转发设备A、转发设备B、转发设备M和转发设备N无需支持组播技术,转发设备S、转发设备A、转发设备B、转发设备M、转发设备N、转发设备R1和转发设备R2均支持SR技术。
假设,转发设备A的SR标签为10,转发设备B的SR标签为20,转发设备R1的SR标签为30。用户主机1的地址为133.133.4.1。假设,组播组1的组播组地址为225.0.0.1。转发设备R1的Router ID为2.2.2.2。
假设,转发设备M的SR标签为40,转发设备N的SR标签为50,转发设备R2的SR标签为60。组播组2的组播地址为225.0.0.2,转发设备R2的Router ID为3.3.3.3。
当用户主机1需要加入组播组1时,用户主机1可以向转发设备R1(接收者侧的DR设备)发送组播加入报文。该组播加入报文里携带了组播组信息。该组播组信息包括但不限于:组播组地址(225.0.0.1),加入该组播组的用户主机1的地址(133.133.4.1)、目的DR设备接收该组播加入报文的端口(也可被称为加入组播组的端口,假设为GigabitEthernet1/0/1)等等。
转发设备R1可以生成(*,225.0.0.1)的表项,该(*,225.0.0.1)里记录了用户加入组播组1的组播组地址(225.0.0.1)、用户主机1地址(133.133.4.1)、以及用户主机1加入组播组的端口(GigabitEthernet1/0/1)。
同理,当用户主机2加入组播组1时,转发设备R1可在上述(*,255.0.0.1)的表项中,增加用户主机2的地址和加入组播组的端口等针对用户主机2的信息。
此外,转发设备R1还可将本设备的Router ID和组播组1的组播组地址进行绑定,生成2.2.2.2和225.0.0.1绑定关系。
然后,转发设备R1可以在待发送的路由通告消息1中添加2.2.2.2和225.0.0.1的绑定关系,并将该路由通告消息1中的指定第一字段的取值设置为第一预设值(比如设置1),并将该路由通告消息1中的第二字段的取值设置为第二预设值(比如为0x01)。这里需要说明的是,第一字段取值为1的路由通告消息为组播通告消息,第二字段取值为0x01表明该组播通告消息为组播加入通告消息。
然后,转发设备R1可将该路由通告消息1发送给所有的邻居设备,邻居设备在收到该路由通告消息1后,可以将该路由通告消息1发送给本设备的邻居设备。依次类推,最终该路由通告消息1会被扩散到转发设备S(即组播源侧的DR设备)。比如,转发设备R1可将该路由通告消息1发送给转发设备B,转发设备B可将该路由通告消息1发送给转发设备A,转发设备A可将该路由通告消息1发送给转发设备S。
当转发设备S接收到邻居设备发送的路由通告消息1后,可以检查该路由通告消息1中的第一字段的取值以及第二字段的取值。若该路由通告消息1中第一字段的取值为1且该路由通告消息1中第二字段的取值为0x01则表明该路由通告消息1为组播加入通告消息。此时,转发设备S可获取该路由通告消息1里携带的组播组地址和Router ID的绑定关系(即获取2.2.2.2和225.0.0.1的绑定关系)。转发设备S可以记录2.2.2.2和225.0.0.1的绑定关系。
同理,假设组播组2的地址为225.0.0.2,当转发设备R2接收到用户主机3的组播加入报文后,转发设备R2可以建立转发设备R2的Router ID(即3.3.3.3)和组播组2(即225.0.0.2)的绑定关系。然后将该绑定关系发送给转发设备S,由转发设备S记录3.3.3.3和225.0.0.2的绑定关系。发送该绑定关系的方式参见转发设备R1发送2.2.2.2和225.0.0.1的绑定关系的方式,这里不再赘述。
此时,转发设备S上记录的接收者侧DR设备的Router ID和组播组地址的绑定关系如表2所示。
接收者侧DR设备的Router ID | 组播组地址 |
2.2.2.2 | 255.0.0.1 |
3.3.3.3 | 255.0.0.2 |
表2
此外,该转发设备S上还记录有已学习到的Router ID和到该Router ID所指示的转发设备的SR标签栈,如表1所示。
当转发设备S接收到组播源发往组播组1的组播报文后,转发设备S可以在表2中,查找绑定225.0.0.1的Router ID(即2.2.2.2)
然后,转发设备S可以在表1中,查找Router ID为2.2.2.2的标签转发表项,然后将该标签转发表项中的SR标签栈1(即{10,20,30})确定为Router ID 2.2.2.2对应的SR标签栈1。
然后,转发设备S可以在组播报文的报文头外侧再封装该SR标签栈1,形成SR报文。接着,转发设备S可以将该SR报文发送给该SR标签栈1最外层的SR标签对应的转发设备。
比如该SR标签栈1为{10,20,30},该SR标签栈最外层的标签为10,所以转发设备S可以将该SR报文发送至转发设备A(转发设备A对应的SR标签为10)。
转发设备A在收到该SR报文后,可以弹出SR标签栈中的最外层的SR标签(即10),然后将该SR报文发送至当前SR标签栈中的最外层的SR标签(即20)对应的转发设备B。需要说明的是,发往转发设备B的SR报文的SR标签栈为{20,30}
转发设备B在接收到该SR报文后,可以弹出此时SR标签栈中最外层的SR标签(即20),然后将该SR报文发送至当前SR标签中的最外层SR标签(即30)对应的转发设备R1。发送转发设备R1的SR报文的SR标签栈{30}。
当转发设备R1接收到该SR报文后,由于SR标签栈中只有一个SR标签,转发设备R1可以弹出最后一层SR标签,将该SR报文还原成组播报文。
接着,转发设备R1可以查找组播组地址为该组播报文的目的地址(即225.0.0.1)的(*,G)表项,查找出的(*,G)表项为(*,225.0.0.1)表项,然后转发设备R1可将该组播报文通过该(*,225.0.0.1)表项记录的端口,发送给该(*,225.0.0.1)表项记录的用户主机1和用户主机2。
当然,当转发设备S接收到发往组播组2的组播报文时,转发设备S可以参照上述转发发往组播组1的组播报文的方式进行转发,这里不再赘述。
当用户主机1需要离开组播组1时,用户主机1可以向转发设备R(接收者侧的DR设备)发送组播离开报文。该组播离开报文里携带了组播组信息。该组播组信息包括但不限于:需要离开的组播组的组播组地址(225.0.0.1),离开该组播组的接收者的地址(133.133.4.1)、目的DR设备接收该组播离开报文的端口(也可被称为加入组播组的端口,假设为GigabitEthernet1/0/1)等等。
此外,转发设备R1还可将本设备的Router ID和组播组1的组播组地址进行绑定,生成2.2.2.2和225.0.0.1绑定关系。
然后,转发设备R1可以在待发送的路由通告消息2中添加2.2.2.2和225.0.0.1的绑定关系,并将路由通告消息2中的指定第一字段的取值设置为第一预设值(比如设置1),并将路由通告消息2中的第二字段的取值设置为第三预设值(比如为0x02)。这里需要说明的是,第一字段取值为1的路由通告消息为组播通告消息,第二字段取值为0x02表明组播通告消息为组播离开通告消息。
然后,转发设备R1可将路由通告消息2发送给所有的邻居设备,邻居设备在收到路由通告消息2后,可以将该路由通告消息2发送给本设备的邻居设备。依次类推,最终该路由通告消息2会被扩散到转发设备S(即组播源侧的DR设备)。比如,转发设备R1可将该路由通告消息2发送给转发设备B,转发设备B可将该路由通告消息2发送给转发设备A,转发设备A可将该路由通告消息2发送给转发设备S。
当转发设备S接收到邻居设备发送的路由通告消息2后,可以检查该路由通告消息2第一字段的取值以及第二字段的取值。若该路由通告消息2中第一字段的取值为1且该路由通告消息2中第二字段的取值为0x02则表明该路由通告消息2为组播离开通告消息。此时,转发设备S可获取该路由通告消息里2携带的组播组地址和Router ID的绑定关系(即获取2.2.2.2和225.0.0.1的绑定关系)。
然后,转发设备S可以以2.2.2.2和225.0.0.1为关键字,在表2中,删除已记录的2.2.2.2和225.0.0.1的绑定关系。
参见图5,本申请还提供一种组播源侧DR设备的硬件架构图,该组播源侧DR设备包括:通信接口501、处理器502、机器可读存储介质503和总线504;其中,通信接口501、处理器502和机器可读存储介质503通过总线504完成相互间的通信。处理器402通过读取并执行机器可读存储介质503中与组播报文的转发控制逻辑对应的机器可执行指令,可执行上文描述的组播报文的转发方法。
本文中提到的机器可读存储介质503可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
参见图6,图6是本申请一示例性实施例示出的一种组播报文的转发装置的框图。该装置可应用在组播源侧DR设备上,可包括如下所示单元。
接收单元601,用于接收到由接收者侧的DR设备发出的组播加入通告消息;
记录单元602,用于记录该组播加入通告消息中携带的第一组播组地址和该接收者侧DR设备的路由器标识Router ID的绑定关系;
确定单元603,用于当接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的段路由SR标签栈;所述SR标签栈中记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者;
转发单元604,用于使用确定出的SR标签栈将该组播报文封装成SR报文进行转发。
可选的,所述确定单元603,在确定该组播组地址绑定的Router ID所对应的SR标签栈时,具体用于在已学习到的Router ID和SR标签栈的对应关系中,查找所述绑定该第一组播组地址的Router ID所对应的SR标签栈。
可选的,所述接收单元601,还用于接收到由该接收者侧DR设备发出的组播离开通告消息;
所述装置还包括:
删除单元605,用于以该组播离开通告消息携带的第二组播组地址和该接收者侧DR设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
可选的,所述组播加入通告消息和组播离开通告消息通过如下方式确定:
接收邻居设备转发的路由通告消息;其中,所述路由通告消息携带有第一字段和第二字段;所述第一字段用于指示所述路由通告消息是否是组播通告消息;所述第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第二预设值时,则确定该路由通告消息为组播加入通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第三预设值时,则确定该路由通告消息为组播离开通告消息。
参见图7,本申请还提供一种接收者侧DR设备的硬件架构图,该接收者侧DR设备包括:通信接口701、处理器702、机器可读存储介质703和总线704;其中,通信接口701、处理器702和机器可读存储介质703通过总线704完成相互间的通信。处理器402通过读取并执行机器可读存储介质703中与组播报文的转发控制逻辑对应的机器可执行指令,可执行上文描述的组播报文的转发方法。
本文中提到的机器可读存储介质703可以是任何电子、磁性、光学或其它物理存储装置,可以包含或存储信息,如可执行指令、数据,等等。例如,机器可读存储介质可以是:RAM(Radom Access Memory,随机存取存储器)、易失存储器、非易失性存储器、闪存、存储驱动器(如硬盘驱动器)、固态硬盘、任何类型的存储盘(如光盘、dvd等),或者类似的存储介质,或者它们的组合。
参见图8,图8是本申请一示例性实施例示出的一种组播报文的转发装置的框图。该装置可应用在接收者侧的DR设备,可包括如下所示单元。
接收单元801,用于接收接收者发送的组播加入报文;所述组播加入报文里至少携带了该接收者所要加入的组播组的第一组播组地址;
发送单元802,用于向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息,以使组播源侧的DR设备记录该组播加入通告消息里携带的第一组播组地址和本设备的Router ID的绑定关系,并使该组播源侧的DR设备在接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的SR标签栈,并使用确定出的SR标签栈将该组播报文封装成SR报文进行转发;
转发单元803,用于接收由组播源侧的DR设备发出的SR报文,去掉SR报文的SR标签还原成组播报文,将该组播报文发送至加入指定组播组的接收者;所述指定组播组为该组播报文的目的地址所指示的组播组。
可选的,所述接收单元801,还用于接收所述接收者发送的组播离开报文;所述组播离开报文里至少携带了该接收者所要离开的组播组的第二组播组地址;
所述发送单元802,还用于向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,以使组播源侧DR设备在接收到由本设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和本设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
可选的,所述发送单元802,在向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息时,具体用于将所述第一组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值,以及将该路由通告消息中的第二字段的取值设置为第二预设值,生成组播加入通告消息;向所有邻居设备发送生成的所述组播加入通告消息;
所述发送单元802,在向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息时,具体用于将所述第二组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将路由通告消息的第一字段的取值设置为第一预设值、以及将所述路由通告消息的第二字段的取值设置为第三预设值,生成组播离开通告消息;向所有邻居设备发送生成的组播离开通告消息;其中,所述路由通告消息携带的第一字段用于指示所述路由通告消息是否是组播通告消息;所述路由通告消息携带的第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (14)
1.一种组播报文的转发方法,其特征在于,所述方法应用在组播源侧的指定路由器DR设备,包括:
在接收到由接收者侧的DR设备发出的组播加入通告消息时,记录该组播加入通告消息中携带的第一组播组地址和该接收者侧DR设备的路由器标识Router ID的绑定关系;
当接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的段路由SR标签栈;所述SR标签栈中记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者;
使用确定出的SR标签栈将该组播报文封装成SR报文进行转发。
2.根据权利要求1所述的方法,其特征在于,所述确定该组播组地址绑定的Router ID所对应的SR标签栈,包括:
在已学习到的Router ID和SR标签栈的对应关系中,查找所述绑定该第一组播组地址的Router ID所对应的SR标签栈。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在接收到由该接收者侧DR设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和该接收者侧DR设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
4.根据权利要求3所述的方法,其特征在于,所述组播加入通告消息和组播离开通告消息通过如下方式确定:
接收邻居设备转发的路由通告消息;其中,所述路由通告消息携带有第一字段和第二字段;所述第一字段用于指示所述路由通告消息是否是组播通告消息;所述第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第二预设值时,则确定该路由通告消息为组播加入通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第三预设值时,则确定该路由通告消息为组播离开通告消息。
5.一种组播报文的转发方法,其特征在于,所述方法应用在接收者侧的指定路由器DR设备,包括:
接收接收者发送的组播加入报文;所述组播加入报文里至少携带了该接收者所要加入的组播组的第一组播组地址;
向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息,以使组播源侧的DR设备记录该组播加入通告消息里携带的第一组播组地址和本设备的Router ID的绑定关系,并使该组播源侧的DR设备在接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的SR标签栈,并使用确定出的SR标签栈将该组播报文封装成SR报文进行转发;
接收由组播源侧的DR设备发出的SR报文,去掉SR报文的SR标签还原成组播报文,将该组播报文发送至加入指定组播组的接收者;所述指定组播组为该组播报文的目的地址所指示的组播组。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述接收者发送的组播离开报文;所述组播离开报文里至少携带了该接收者所要离开的组播组的第二组播组地址;
向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,以使组播源侧DR设备在接收到由本设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和本设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
7.根据权利要求6所述的方法,其特征在于,所述向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息,包括:
将所述第一组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值,以及将该路由通告消息中的第二字段的取值设置为第二预设值,生成组播加入通告消息;
向所有邻居设备发送生成的所述组播加入通告消息;
所述向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,包括:
将所述第二组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将路由通告消息的第一字段的取值设置为第一预设值、以及将所述路由通告消息的第二字段的取值设置为第三预设值,生成组播离开通告消息;
向所有邻居设备发送生成的组播离开通告消息;
其中,所述路由通告消息携带的第一字段用于指示所述路由通告消息是否是组播通告消息;所述路由通告消息携带的第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息。
8.一种组播报文的转发装置,其特征在于,所述装置应用在组播源侧的指定路由器DR设备,包括:
接收单元,用于接收到由接收者侧的DR设备发出的组播加入通告消息;
记录单元,用于记录该组播加入通告消息中携带的第一组播组地址和该接收者侧DR设备的路由器标识Router ID的绑定关系;
确定单元,用于当接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的Router ID所对应的段路由SR标签栈;所述SR标签栈中记录了到达指定接收者所经过的转发设备的SR标签;所述指定接收者为所述接收者侧DR设备连接的接收者;
转发单元,用于使用确定出的SR标签栈将该组播报文封装成SR报文进行转发。
9.根据权利要求8所述的装置,其特征在于,所述确定单元,在确定该组播组地址绑定的Router ID所对应的SR标签栈时,具体用于在已学习到的Router ID和SR标签栈的对应关系中,查找所述绑定该第一组播组地址的Router ID所对应的SR标签栈。
10.根据权利要求8所述的装置,其特征在于,所述接收单元,还用于接收到由该接收者侧DR设备发出的组播离开通告消息;
所述装置还包括:
删除单元,用于以该组播离开通告消息携带的第二组播组地址和该接收者侧DR设备的Router ID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
11.根据权利要求10所述的装置,其特征在于,所述组播加入通告消息和组播离开通告消息通过如下方式确定:
接收邻居设备转发的路由通告消息;其中,所述路由通告消息携带有第一字段和第二字段;所述第一字段用于指示所述路由通告消息是否是组播通告消息;所述第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第二预设值时,则确定该路由通告消息为组播加入通告消息;
若该路由通告消息的第一字段的取值为第一预设值且第二字段取值为第三预设值时,则确定该路由通告消息为组播离开通告消息。
12.一种组播报文的转发装置,其特征在于,所述装置应用在接收者侧的指定路由器DR设备,包括:
接收单元,用于接收接收者发送的组播加入报文;所述组播加入报文里至少携带了该接收者所要加入的组播组的第一组播组地址;
发送单元,用于向所有邻居设备发送携带有所述第一组播组地址和本设备的RouterID的绑定关系的组播加入通告消息,以使组播源侧的DR设备记录该组播加入通告消息里携带的第一组播组地址和本设备的Router ID的绑定关系,并使该组播源侧的DR设备在接收到组播源设备发往该第一组播组地址的组播报文时,确定绑定该第一组播组地址的RouterID所对应的SR标签栈,并使用确定出的SR标签栈将该组播报文封装成SR报文进行转发;
转发单元,用于接收由组播源侧的DR设备发出的SR报文,去掉SR报文的SR标签还原成组播报文,将该组播报文发送至加入指定组播组的接收者;所述指定组播组为该组播报文的目的地址所指示的组播组。
13.根据权利要求12所述的装置,其特征在于,所述接收单元,还用于接收所述接收者发送的组播离开报文;所述组播离开报文里至少携带了该接收者所要离开的组播组的第二组播组地址;
所述发送单元,还用于向所有邻居设备发送携带有所述第二组播组地址和本设备的Router ID绑定关系的组播离开通告消息,以使组播源侧DR设备在接收到由本设备发出的组播离开通告消息时,以该组播离开通告消息携带的第二组播组地址和本设备的RouterID的绑定关系作为关键字,在已记录的组播组地址和接收者侧DR设备的Router ID的绑定关系中删除与该关键字匹配的绑定关系。
14.根据权利要求13所述的装置,其特征在于,所述发送单元,在向所有邻居设备发送携带有所述第一组播组地址和本设备的Router ID的绑定关系的组播加入通告消息时,具体用于将所述第一组播组地址和本设备的Router ID的绑定关系添加在待发送的路由通告消息中,并将该路由通告消息的第一字段的取值设置为第一预设值,以及将该路由通告消息中的第二字段的取值设置为第二预设值,生成组播加入通告消息;向所有邻居设备发送生成的所述组播加入通告消息;
所述发送单元,在向所有邻居设备发送携带有所述第二组播组地址和本设备的RouterID绑定关系的组播离开通告消息时,具体用于将所述第二组播组地址和本设备的RouterID的绑定关系添加在待发送的路由通告消息中,并将路由通告消息的第一字段的取值设置为第一预设值、以及将所述路由通告消息的第二字段的取值设置为第三预设值,生成组播离开通告消息;向所有邻居设备发送生成的组播离开通告消息;其中,所述路由通告消息携带的第一字段用于指示所述路由通告消息是否是组播通告消息;所述路由通告消息携带的第二字段用于指示组播通告消息的类型,所述组播通告消息的类型包括组播加入通告消息和组播离开通告消息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810819968.5A CN109039902B (zh) | 2018-07-24 | 2018-07-24 | 一种组播报文的转发方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810819968.5A CN109039902B (zh) | 2018-07-24 | 2018-07-24 | 一种组播报文的转发方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109039902A true CN109039902A (zh) | 2018-12-18 |
CN109039902B CN109039902B (zh) | 2021-02-26 |
Family
ID=64645590
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810819968.5A Active CN109039902B (zh) | 2018-07-24 | 2018-07-24 | 一种组播报文的转发方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109039902B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511443A (zh) * | 2020-03-26 | 2021-03-16 | 中兴通讯股份有限公司 | 消息处理方法、装置、设备、存储介质及系统 |
WO2022262579A1 (zh) * | 2021-06-18 | 2022-12-22 | 华为技术有限公司 | 报文传输方法以及装置 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1747447A (zh) * | 2005-10-21 | 2006-03-15 | 清华大学 | 区分服务网络域内支持不同服务质量的ip组播方法 |
CN1905530A (zh) * | 2006-08-08 | 2007-01-31 | 杭州华为三康技术有限公司 | 组播点播方法及系统 |
CN101459596A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 一种发送组播数据的方法、系统和设备 |
CN104219142A (zh) * | 2013-05-30 | 2014-12-17 | 中国电信股份有限公司 | 访问跨idc迁移的虚拟机的方法、系统与dcbr |
CN104243302A (zh) * | 2013-06-20 | 2014-12-24 | 华为技术有限公司 | 业务路由报文处理方法、装置及网络系统 |
CN104604192A (zh) * | 2012-10-05 | 2015-05-06 | 思科技术公司 | Mpls分段路由 |
CN104980350A (zh) * | 2014-04-02 | 2015-10-14 | 华为技术有限公司 | 报文处理的方法及标签交换路由器 |
CN105323176A (zh) * | 2014-06-20 | 2016-02-10 | 中兴通讯股份有限公司 | 地址信息的发布方法及装置 |
US20160277291A1 (en) * | 2015-03-20 | 2016-09-22 | Telefonaktiebolaget L M Ericsson (Publ) | Shortest path bridge with mpls labels |
CN105991432A (zh) * | 2015-03-18 | 2016-10-05 | 丛林网络公司 | 提供商边缘路由器及方法 |
CN107046500A (zh) * | 2017-05-19 | 2017-08-15 | 合肥工业大学 | 一种应用于层次化片上网络的两级拆分路由器及其路由算法 |
CN107070798A (zh) * | 2016-12-23 | 2017-08-18 | 华为技术有限公司 | 网络区域划分方法、网络设备和系统 |
CN107666438A (zh) * | 2016-07-27 | 2018-02-06 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
-
2018
- 2018-07-24 CN CN201810819968.5A patent/CN109039902B/zh active Active
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1747447A (zh) * | 2005-10-21 | 2006-03-15 | 清华大学 | 区分服务网络域内支持不同服务质量的ip组播方法 |
CN1905530A (zh) * | 2006-08-08 | 2007-01-31 | 杭州华为三康技术有限公司 | 组播点播方法及系统 |
CN101459596A (zh) * | 2007-12-14 | 2009-06-17 | 华为技术有限公司 | 一种发送组播数据的方法、系统和设备 |
US20170302571A1 (en) * | 2012-10-05 | 2017-10-19 | Cisco Technology, Inc. | Mpls segment routing |
CN104604192A (zh) * | 2012-10-05 | 2015-05-06 | 思科技术公司 | Mpls分段路由 |
CN104219142A (zh) * | 2013-05-30 | 2014-12-17 | 中国电信股份有限公司 | 访问跨idc迁移的虚拟机的方法、系统与dcbr |
CN104243302A (zh) * | 2013-06-20 | 2014-12-24 | 华为技术有限公司 | 业务路由报文处理方法、装置及网络系统 |
CN104980350A (zh) * | 2014-04-02 | 2015-10-14 | 华为技术有限公司 | 报文处理的方法及标签交换路由器 |
CN105323176A (zh) * | 2014-06-20 | 2016-02-10 | 中兴通讯股份有限公司 | 地址信息的发布方法及装置 |
CN105991432A (zh) * | 2015-03-18 | 2016-10-05 | 丛林网络公司 | 提供商边缘路由器及方法 |
US20160277291A1 (en) * | 2015-03-20 | 2016-09-22 | Telefonaktiebolaget L M Ericsson (Publ) | Shortest path bridge with mpls labels |
CN107666438A (zh) * | 2016-07-27 | 2018-02-06 | 中兴通讯股份有限公司 | 报文转发方法及装置 |
CN107070798A (zh) * | 2016-12-23 | 2017-08-18 | 华为技术有限公司 | 网络区域划分方法、网络设备和系统 |
CN107046500A (zh) * | 2017-05-19 | 2017-08-15 | 合肥工业大学 | 一种应用于层次化片上网络的两级拆分路由器及其路由算法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112511443A (zh) * | 2020-03-26 | 2021-03-16 | 中兴通讯股份有限公司 | 消息处理方法、装置、设备、存储介质及系统 |
WO2022262579A1 (zh) * | 2021-06-18 | 2022-12-22 | 华为技术有限公司 | 报文传输方法以及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109039902B (zh) | 2021-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110460522B (zh) | 组播数据传输方法、相关装置及系统 | |
CN106572017B (zh) | Bier信息的发送方法、接收方法及装置 | |
US9338079B2 (en) | Method of routing multicast traffic | |
CN104579728B (zh) | 网元设备配置和管理方法、装置及网元设备 | |
US9525563B2 (en) | Forwarding packets in an edge device | |
CN105812259B (zh) | 一种报文转发方法和设备 | |
US8121056B1 (en) | Aggregate multicast trees for multicast virtual private networks | |
CN107592262A (zh) | 报文发送方法和装置、报文跨域转发的网络架构 | |
CN101155130B (zh) | 学习mac地址的方法及传送vpls客户数据的系统及设备 | |
WO2019214589A1 (zh) | 组播数据传输方法、相关装置及系统 | |
CN109150730A (zh) | 组播跨域方法、装置、系统及计算机可读存储介质 | |
CN106603407B (zh) | 组播地址的传输方法和装置 | |
WO2021068641A1 (zh) | 基于IPv6网络的虚拟专用网络组播方法及电子设备 | |
US20130003732A1 (en) | Abstracting accepting interface to optimize parent and child entry lookup for bidirectional pim | |
CN105871565A (zh) | 用于组播转发的方法及装置 | |
CN105264834A (zh) | 一种在nvo3网络中处理组播报文的方法、装置和nvo3网络 | |
CN100481817C (zh) | 一种基于ip/mpls/bgp的多域组播一体化数据分发结构及方法 | |
CN104539545B (zh) | Trill网络中的组播报文转发方法和设备 | |
CN108964940A (zh) | 消息发送方法及装置、存储介质 | |
CN103973459B (zh) | IPv6组播孤岛间的组播报文的传输方法及装置 | |
CN102510414A (zh) | 一种传递主机名的方法和装置 | |
CN101656663A (zh) | 一种mpls多播报文的转发方法、装置及系统 | |
CN106851435A (zh) | 一种组播流的发送方法以及后端设备 | |
CN104579981B (zh) | 一种组播数据报文转发方法及设备 | |
CN109039902A (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 |