一种建立组播隧道的方法及装置与流程

文档序号:13744709阅读:269来源:国知局

本发明涉及信息传输技术领域,尤其涉及一种建立组播隧道的方法及装置。



背景技术:

目前,VPN(VirtualPrivateNetwork,虚拟专用网络)的流量可以通过MPLS(Multi-ProtocolLabelSwitching,多协议标签交换)组播隧道进行组播。其中,MPLS组播隧道也称为MPLS组播树。

根节点可以通过RSVP-TE(ResourceReSerVationProtocol-TrafficEngineering,基于流量工程扩展的资源预留)协议建立P2MP(PointtoMulti-point,点对多点)的MPLS组播隧道,具体过程如下:根节点根据内部存储的叶子节点和自身的信息以及路径计算约束信息计算组播隧道的路径,生成路径信息,并沿着路径向中间节点和叶子节点发送路径信息;其中,中间节点或叶子节点接收到的路径信息包含该节点所在路径的各个节点的标识及自身对应的出接口信息;出接口信息用于使节点确定自身对应的下一节点,节点对应的下一节点即组播隧道中经过该节点的路径上的相对于该节点的下一节点;各节点根据路径信息生成转发表项,其中,根节点和中间节点的转发表项中包含标签操作、标签信息(包括出标签和/或入标签)和出接口信息等,叶子节点的转发表项中包含标签操作和标签信息(入标签)等。各节点生成转发表项的具体过程为:根节点根据路径信息确定自身为根节点,中间节点或叶子节点根据接收到的路径信息确定自身为中间节点或叶子节点;叶子节点和中间节点根据接收到的路径信息生成自身的入标签,并确定组播隧道中经过该节点的路径上的相对于该节点的上一节点,向该上一节点发送自身的入标签,该上一节点将该入标签作为自身的出标签;各节点根据路径信息以及自身的标签信息生成转发表项。

根节点接收到组播数据时,确定该组播数据要进入的组播隧道,根据该组播隧道传输组播数据,具体过程如下:根节点根据自身的标签操作为该组播数据封装自身的出标签,并根据自身的出接口信息向自身对应的下一节点发送该组播数据;中间节点接收到该组播数据时,根据自身的标签操作将该组播数据携带的标签替换为自身的出标签,并根据自身的出接口信息向自身对应的下一节点发送该组播数据;叶子节点接收到该组播数据时,根据自身的标签操作解封装携带标签的组播数据,向其他设备发送。

通过上述MPLS组播隧道传输组播数据时,当根节点对应多个下一节点时,根节点需要复制多份组播数据,并为复制的多份组播数据各封装一个自身的出标签;当中间节点对应多个下一节点时,中间节点接收到携带标签的组播数据时也需要复制多份组播数据,并为复制的多份组播数据各替换一个自身的出标签,这样,MPLS组播隧道传输组播数据的过程较复杂,导致传输效率较低。



技术实现要素:

本发明实施例提供一种建立组播隧道的方法及装置,用于提高MPLS组播隧道传输组播数据的传输效率。

为达到上述目的,本发明的实施例采用如下技术方案:

第一方面,提供一种建立组播隧道的方法,包括:

获取组播隧道对应的路径信息和所述组播隧道中各节点的标签操作;其中,所述各节点包含根节点、中间节点和叶子节点;所述路径信息包含所述各节点的标识、所述根节点的出接口信息和所述中间节点的出接口信息;所述标签操作是指对组播数据进行操作的操作类型;

为所述组播隧道分配全局标签;

根据所述各节点的标识向所述各节点发送标签映射表,以使得所述各节点根据接收到的标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述根节点和所述中间节点的转发表项中包括的出标签为所述全局标签;

其中,向所述根节点发送包含所述根节点的标签操作、所述根节点的出接口信息和所述全局标签的标签映射表,向所述中间节点发送包含所述中间节点的标签操作、所述中间节点的出接口信息和所述全局标签的标签映射表,向所述叶子节点发送包含所述叶子节点的标签操作和所述全局标签的标签映射表。

结合第一方面,在第一种可能的实现方式中,所述向所述各节点发送标签映射表,包括:

按照南向协议向所述各节点发送标签映射表。

第二方面,提供一种建立组播隧道的方法,包括:

组播隧道中的节点接收标签映射表;其中,所述节点为根节点或中间节点时,所述标签映射表包含标签操作、出接口信息和所述组播隧道对应的全局标签;所述节点为叶子节点时,所述标签映射表包含标签操作和所述组播隧道对应的全局标签;所述标签操作是指对组播数据进行操作的操作类型;

根据所述标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述节点为根节点或中间节点时,所述节点的转发表项中包括的出标签为所述全局标签。

结合第二方面,在第一种可能的实现方式中,所述根据所述标签映射表获得自身转发引擎能够识别的转发表项,包括:

当所述节点为根节点时,将所述全局标签作为自身的出标签;或,

当所述节点为中间节点时,将所述全局标签作为自身的出标签和入标签;或,

当所述节点为叶子节点时,将所述全局标签作为自身的入标签。

结合第二方面或第二方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述根据所述标签映射表获得自身转发引擎能够识别的转发表项之后,所述方法还包括:

当所述节点为根节点时,根据所述标签操作为所述组播数据封装所述全局标签,并根据所述出接口信息向所述出接口信息所指向的下一节点发送封装所述全局标签后的所述组播数据;或,

当所述节点为中间节点时,根据所述出接口信息向所述出接口信息所指向的下一节点转发携带所述全局标签后的所述组播数据;或,

当所述节点为叶子节点时,接收携带所述全局标签的所述组播数据,并根据所述标签操作解封装携带所述全局标签的所述组播数据。

第三方面,提供一种建立组播隧道的装置,包括:

获取单元,用于获取组播隧道对应的路径信息和所述组播隧道中各节点的标签操作;其中,所述各节点包含根节点、中间节点和叶子节点;所述路径信息包含所述各节点的标识、所述根节点的出接口信息和所述中间节点的出接口信息;所述标签操作是指对组播数据进行操作的操作类型;

分配单元,用于为所述组播隧道分配全局标签;

发送单元,用于根据所述各节点的标识向所述各节点发送标签映射表,以使得所述各节点根据接收到的标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述根节点和所述中间节点的转发表项中包括的出标签为所述全局标签;

其中,向所述根节点发送包含所述根节点的标签操作、所述根节点的出接口信息和所述全局标签的标签映射表,向所述中间节点发送包含所述中间节点的标签操作、所述中间节点的出接口信息和所述全局标签的标签映射表,向所述叶子节点发送包含所述叶子节点的标签操作和所述全局标签的标签映射表。

结合第三方面,在第一种可能的实现方式中,所述发送单元用于:

按照南向协议向所述各节点发送标签映射表。

第四方面,提供一种节点,其特征在于,包括:

接收单元,用于接收标签映射表;其中,所述节点为根节点或中间节点时,所述标签映射表包含标签操作、出接口信息和所述组播隧道对应的全局标签;所述节点为叶子节点时,所述标签映射表包含标签操作和所述组播隧道对应的全局标签;所述标签操作是指对组播数据进行操作的操作类型;

生成单元,用于根据所述标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述节点为根节点或中间节点时,所述节点的转发表项中包括的出标签为所述全局标签。

结合第四方面,在第一种可能的实现方式中,所述生成单元用于:

当所述节点为根节点时,将所述全局标签作为自身的出标签;或,

当所述节点为中间节点时,将所述全局标签作为自身的出标签和入标签;或,

当所述节点为叶子节点时,将所述全局标签作为自身的入标签。

结合第四方面或第四方面的第一种可能的实现方式,在第二种可能的实现方式中,所述节点还包括:

操作单元,用于当所述节点为根节点时,根据所述标签操作为所述组播数据封装所述全局标签,并根据所述出接口信息向所述出接口信息所指向的下一节点发送封装所述全局标签后的所述组播数据;或,

操作单元,用于当所述节点为中间节点时,根据所述出接口信息向所述出接口信息所指向的下一节点转发携带所述全局标签后的所述组播数据;或,

操作单元,用于当所述节点为叶子节点时,接收携带所述全局标签的所述组播数据,并根据所述标签操作解封装携带所述全局标签的所述组播数据。

在利用本发明实施例提供的建立组播隧道的方法及装置建立的组播隧道传输组播数据时,由于组播隧道中的根节点和中间节点的出标签均为全局标签,因此,当根节点对应多个下一节点时,根节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当中间节点对应多个下一节点时,若中间节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,根节点不需要复制多份接收到的组播数据后再为多份组播数据各封装一个自身的出标签,中间节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例一提供的一种建立组播隧道的方法的流程图;

图2为本发明实施例二提供的一种建立组播隧道的方法的流程图;

图3为本发明实施例三提供的一种建立组播隧道的方法的流程图;

图4为本发明实施例四提供的一种建立组播隧道的装置的结构示意图;

图5为本发明实施例五提供的一种建立组播隧道的装置的结构示意图;

图6为本发明实施例六提供的一种节点的结构示意图;

图7为本发明实施例六提供的另一种节点的结构示意图;

图8为本发明实施例七提供的一种节点的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本文中字符“/”,一般表示前后关联对象是一种“或”的关系。另外,本文中的术语“多个”是指两个或两个以上。

实施例一

本发明实施例提供一种建立组播隧道的方法,如图1所示,包括:

101、获取组播隧道对应的路径信息和所述组播隧道中各节点的标签操作;其中,所述各节点包含根节点、中间节点和叶子节点;所述路径信息包含所述各节点的标识、所述根节点的出接口信息和所述中间节点的出接口信息;所述标签操作是指对组播数据进行操作的操作类型。

本发明实施例的执行主体可以为服务器。本发明实施例中均以执行主体为服务器进行示例性说明。“组播隧道”可以为MPLS组播隧道,MPLS组播隧道具体可以为P2MP的MPLS组播隧道,或MP2MP(Multi-pointtoMulti-point,多点对多点)的MPLS组播隧道。

其中,节点的标识用于区分不同的节点,以便于服务器根据节点的标识向各节点发送信息。各节点的标识具体可以为各节点的IP(InternetProtocol,网络之间互连的协议)地址或者ID(Identifier,标识),当然还可以为其他标识。

具体的,步骤101中的组播隧道可以由多个路径组成。根节点/中间节点的出接口信息可以只包含出接口;也可以包含出接口和下一跳。其中,根节点/中间节点的下一跳可以为组播隧道中经过该根节点/中间节点的路径上的相对于该根节点/中间节点的下一节点的地址,根节点和中间节点对应的下一跳可能有多个。

示例性的,对于根节点,标签操作可以为封装(PUSH)操作;对于中间节点,标签操作可以为转发(SWAP)操作;对于叶子节点,标签操作可以为解封装(POP)操作。

步骤101在具体实现时,服务器自身可以计算组播隧道对应的路径信息,也可以接收其他设备发送的组播隧道对应的路径信息。

示例性的,当服务器自身计算组播隧道对应的路径信息时,步骤101具体可以实现为:获取组播隧道中根节点和叶子节点的信息,该信息可以为根节点和叶子节点的标识,具体可以为根节点和叶子节点的IP地址或者ID;获取组播隧道上的流量带宽、根节点到叶子节点的显示路径等路径计算约束信息;根据根节点和叶子节点的信息以及路径计算约束信息计算组播隧道对应的路径信息。具体的,服务器可以通过人为配置获取根节点和叶子节点的信息以及路径计算约束信息,也可以接收其他设备发送的根节点和叶子节点的信息以及路径计算约束信息。需要说明的是,在计算组播隧道对应的路径信息之后,服务器即可获知哪些节点为中间节点。

102、为所述组播隧道分配全局标签

示例性的,全局标签可以用GL(Global)表示,当然,还可以用其他标识表示。

需要说明的是,步骤101和步骤102的执行顺序不分先后,即可以先执行步骤101,再执行步骤102;也可以先执行步骤102,再执行步骤101;还可以同时执行步骤101和步骤102。

本发明实施例中采用全局标签表示组播隧道,不同的组播隧道采用不同的全局标签表示。对于一个组播隧道来说,服务器只需要为组播隧道分配一个全局标签,组播隧道中的各节点均使用该全局标签;具体的:组播隧道中的根节点将该全局标签作为自身的出标签,中间节点将该全局标签作为自身的入标签和出标签,叶子节点将该全局标签作为自身的入标签。

需要说明的是,对于一个组播隧道中的中间节点/叶子节点来说,中间节点/叶子节点也可能是其他组播隧道中的节点,因此,中间节点/叶子节点中可以有多个转发表项,中间节点/叶子节点需要根据接收到的组播数据携带的标签与自身的入标签进行比较来确定该组播数据对应的转发表项。

103、根据所述各节点的标识向所述各节点发送标签映射表,以使得所述各节点根据接收到的标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述根节点和所述中间节点的转发表项中包括的出标签为所述全局标签;

其中,向所述根节点发送包含所述根节点的标签操作、所述根节点的出接口信息和所述全局标签的标签映射表,向所述中间节点发送包含所述中间节点的标签操作、所述中间节点的出接口信息和所述全局标签的标签映射表,向所述叶子节点发送包含所述叶子节点的标签操作和所述全局标签的标签映射表。

具体的,组播数据可以是二层组播数据或三层组播数据,还可以是公网组播数据或VPN组播数据。

步骤103在具体实现时,服务器可以同时向各节点发送标签映射表,也可以先后向各节点发送标签映射表。

另外,根节点的标签映射表中还可以包括隧道标识,该情况下,所述方法还可以包括:服务器向根节点发送组播地址和隧道标识的关系,用于根节点将组播数据导入组播隧道,其中,组播地址包含在组播数据中。需要说明的是,一个网络设备可能是多个组播隧道的根节点,因此,在根节点接收到组播数据时,需要根据组播地址和组播隧道的关系确定将接收到的组播数据导入到哪个组播隧道中。

可选的,步骤103在具体实现时可以为:按照南向协议向所述各节点发送标签映射表。

具体的,南向协议可以为PCEP(PathComputationElementProtocol,路径计算单元协议)、Netconf(NetworkConfiguration)协议,Openflow协议等。在步骤103之前,可以预先在服务器与各节点之间部署南向协议,用于服务器按照南向协议向各节点发送标签映射表。

需要说明的是,各节点接收到服务器发送的标签映射表之后,若自身转发引擎能够识别该标签映射表,则各节点直接将接收到的标签映射表作为转发表项;若自身转发引擎不能识别该标签映射表,则各节点需要根据标签映射表生成自身转发引擎能够识别的转发表项。

根节点/中间节点根据自身的出接口信息可以确定自身对应的下一节点;当组播隧道中经过该根节点/中间节点的路径有多个时,该根节点/中间节点节点对应多个下一节点。

另外,各节点生成转发表项时,由于各节点使用的标签均为全局标签,因此,虽然中间节点和根节点对应的下一节点可能有多个,但是中间节点和根节点的出标签只有一个;而现有技术中,由于根节点和中间节点的出标签来自于自身对应的下一节点,因此,当中间节点和根节点对应多个下一节点时,中间节点和根节点的出标签也有多个。

需要说明的是,当中间节点接收到携带全局标签后的组播数据且中间节点对应多个下一节点时,可以对现有的节点中的转发引擎进行部分修改,使得中间节点若发现接收到的组播数据携带的标签和自身的出标签相同时,可以根据自身的标签操作确定自身不对接收到的组播数据携带的标签进行替换,而是复制多份接收到的组播数据后,向自身对应的多个下一节点发送该组播数据。当然,中间节点也可以将接收到的组播数据携带的标签替换为自身的出标签(仍然为全局标签)后,复制多份该组播数据后向其对应的多个下一节点发送。

还需要说明的是,现有技术中中间节点和叶子节点都需要生成自身的入标签,而根节点和中间节点的出标签来自于自身对应的下一节点;一方面,各节点的标签分配过程复杂;另一方面,当多个组播隧道中的某个组播隧道出现故障时,由于同一组播隧道中的各节点分配的标签可能不同,设备维护人员在确定出现故障的组播隧道的过程中,需要确定每个节点的上下游标签是否匹配,导致确定出现故障的组播隧道的过程较复杂。而本发明实施例中采用全局标签表示组播隧道时,由于组播隧道中的各节点的标签均为全局标签,设备维护人员比较容易确定每个节点的上下游标签是否匹配,使得当多个组播隧道中的某个组播隧道出现故障时,可以更加快速的确定出出现故障的组播隧道。其中,节点的上下游标签匹配是指:该节点对应的上一节点的出标签与该节点的入标签相同,该节点的出标签与该节点对应的下一节点的入标签与相同。

在利用本发明实施例提供的建立组播隧道的方法建立的组播隧道传输组播数据时,由于组播隧道中的根节点和中间节点的出标签均为全局标签,因此,当根节点对应多个下一节点时,根节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当中间节点对应多个下一节点时,若中间节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,根节点不需要复制多份接收到的组播数据后再为多份组播数据各封装一个自身的出标签,中间节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,本发明实施例提供的建立组播隧道的方法,为各节点分配标签的过程简单,并且当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

实施例二

本发明实施例提供一种建立组播隧道的方法,如图2所示,包括:

201、组播隧道中的节点接收标签映射表;其中,所述节点为根节点或中间节点时,所述标签映射表包含标签操作、出接口信息和所述组播隧道对应的全局标签;所述节点为叶子节点时,所述标签映射表包含标签操作和所述组播隧道对应的全局标签;所述标签操作是指对组播数据进行操作的操作类型。

需要说明的是,本实施例中的相关解释可以参见上述实施例。

示例性的,对于根节点,标签操作可以为封装操作,代表根节点为接收到的组播数据进行封装标签的操作;对于中间节点,标签操作可以为转发操作,若中间节点发现接收到的组播数据携带的标签与自身的出标签相同时,该标签操作可以代表该节点对接收到的组播数据携带的标签进行不替换标签的操作;对于叶子节点,标签操作可以为解封装操作,代表叶子节点解封装接收到的携带标签的组播数据。

202、根据所述标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述节点为根节点或中间节点时,所述节点的转发表项中包括的出标签为所述全局标签。

具体的,步骤202在具体实现时,各节点接收到服务器发送的标签映射表之后,若自身转发引擎能够识别该标签映射表,则各节点直接将接收到的标签映射表作为转发表项;若自身转发引擎不能识别该标签映射表,则各节点需要根据标签映射表生成自身转发引擎能够识别的转发表项。

可选的,步骤202具体实现时可以为:当所述节点为根节点时,将所述全局标签作为自身的出标签;或,当所述节点为中间节点时,将所述全局标签作为自身的出标签和入标签;或,当所述节点为叶子节点时,将所述全局标签作为自身的入标签。

需要说明的是,本发明实施例中的各节点生成转发表项时,由于各节点使用的标签均为全局标签,因此,虽然根节点和中间节点对应的下一节点可能有多个,但是根节点和中间节点的出标签只有一个;而现有技术中,由于根节点和中间节点的出标签来自于自身对应的下一节点,因此,当根节点和中间节点对应多个下一节点时,根节点和中间节点的出标签也有多个。

具体的,步骤202在具体实现时,各节点还可能将标签映射表中的其他信息(例如,出接口信息)生成自身转发引擎能够识别的转发表项。

可选的,在步骤202之后,所述方法还可以包括:

当所述节点为根节点时,根据所述标签操作为所述组播数据封装所述全局标签,并根据所述出接口信息向所述出接口信息所指向的下一节点发送封装所述全局标签后的所述组播数据;或,

当所述节点为中间节点时,根据所述出接口信息向所述出接口信息所指向的下一节点转发携带所述全局标签后的所述组播数据;或,

当所述节点为叶子节点时,接收携带所述全局标签的所述组播数据,并根据所述标签操作解封装携带所述全局标签的所述组播数据。

需要说明的是,利用本发明实施例提供的建立组播隧道的方法建立的组播隧道,当根节点接收到组播数据时,首先根据组播地址和组播隧道的关系将接收到的组播数据导入到组播隧道中,然后根节点为该组播数据封装全局标签,并根据转发表项中的出接口信息向根节点对应的下一节点发送封装全局标签后的组播数据;在对现有的节点中的转发引擎进行部分修改后,可以使得中间节点若发现接收到的组播数据携带的标签和自身的出标签相同时,可以根据自身的标签操作确定自身不对接收到的组播数据携带的标签进行替换,而是复制多份接收到的组播数据后,向自身对应的多个下一节点发送该组播数据。当然,中间节点也可以将接收到的组播数据携带的标签替换为自身的出标签(仍然为全局标签)后,复制多份该组播数据后向其对应的多个下一节点发送。

在利用本发明实施例提供的建立组播隧道的方法建立的组播隧道传输组播数据时,由于组播隧道中的根节点和中间节点的出标签均为全局标签,因此,当根节点对应多个下一节点时,根节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当中间节点对应多个下一节点时,若中间节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,根节点不需要复制多份接收到的组播数据后再为多份组播数据各封装一个自身的出标签,中间节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,本发明实施例提供的建立组播隧道的方法,为各节点分配标签的过程简单,并且当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

实施例三

本实施例对上述实施例提供的建立组播隧道的方法进行示例性说明,相关解释可参见上述实施例。如图3所示,该建立组播隧道的方法具体可以包括以下步骤:

301、服务器获取组播隧道中根节点和叶子节点的IP地址和组播隧道的路径计算约束信息。

具体的,路径计算约束信息可以为组播隧道上的流量带宽、根节点到叶子节点的显示路径等。

302、服务器根据根节点和叶子节点的信息和路径计算约束信息计算组播隧道对应的路径信息。

需要说明的是,服务器在计算组播隧道对应的路径信息之后,服务器即可获知哪些节点为中间节点。

具体的,路径信息可以包含:组播隧道中的各节点的标识、根节点的出接口信息和中间节点的出接口信息。其中,各节点包括根节点、中间节点和叶子节点。

303、获取组播隧道中各节点的标签操作;其中,标签操作是指对组播数据进行操作的操作类型。

步骤303在具体实现时,服务器可以根据各节点的节点角色生成各节点的标签操作,节点的节点角色是指节点在组播隧道中是根节点、中间节点还是叶子节点。

具体的,对于根节点,标签操作可以为封装操作,代表根节点为接收到的组播数据进行封装标签的操作;对于中间节点,标签操作可以为转发操作,若中间节点发现接收到的组播数据携带的标签与自身的出标签相同时,该标签操作可以代表该节点对接收到的组播数据携带的标签进行不替换标签的操作;对于叶子节点,标签操作可以为解封装操作,代表叶子节点解封装接收到的携带标签的组播数据。

304、服务器为组播隧道分配全局标签GL。

具体的,步骤304可以在步骤305之前的任何一个步骤之前或者之后执行。

305、服务器按照PCEP协议向各节点发送标签映射表。

其中,向根节点发送包含根节点的标签操作、根节点的出接口信息和全局标签的标签映射表,向中间节点发送包含中间节点的标签操作、中间节点的出接口信息和全局标签的标签映射表,向叶子节点发送包含叶子节点的标签操作和全局标签的标签映射表。

306、各节点根据标签映射表生成自身转发引擎能够识别的转发表项。

步骤306具体实现时可以为:根节点将GL作为自身的出标签;中间节点将GL作为自身的出标签和入标签;叶子节点将GL作为自身的入标签。

其中,根节点的转发表项具体可以为[PUSH,GL,IntfX-IntfY];其中,PUSH表示根节点的标签操作为封装操作;GL表示根节点的出标签;IntfX-IntfY为根节点的出接口信息,具体的,出接口信息可以为一个出接口列表,该出接口列表中的元素可以为IntfX、Intf(X+1)、…、Intf(Y-1)、IntfY,每个元素都可以包含出接口和下一跳;该转发表项可以表示根节点对组播数据封装GL并向出接口信息为IntfX-IntfY所指向的一组下一节点发送封装GL后的组播数据。

中间节点的转发表项具体可以为[SWAP,GL,GL,IntfM-IntfN];其中,SWAP表示中间节点的标签操作为转发操作;GL,GL为中间节点的入标签和出标签,其中,入标签用于中间节点接收到携带GL的组播数据时根据该入标签确定该组播数据对应的转发表项;IntfM-IntfN为中间节点的出接口信息,具体的,出接口信息可以为一个出接口列表,该出接口列表中的元素可以为IntfM、Intf(M+1)、…、Intf(N-1)、IntfN,每个元素都可以包含出接口和下一跳;该转发表项可以表示当中间节点携带的标签与自身的出标签相同时,中间节点直接向出接口信息为IntfM-IntfN所指向的一组下一节点发送该组播数据。

叶子节点的转发表项具体可以为[POP,GL];其中,POP表示叶子节点的标签操作为解封装操作;GL即叶子节点的入标签,用于叶子节点接收到携带GL的组播数据时根据该入标签确定该组播数据对应的转发表项;该转发表项可以表示当叶子节点接收到组播数据时,叶子节点解封装接收到的携带标签的组播数据。

在利用本发明实施例提供的建立组播隧道的方法建立的组播隧道传输组播数据时,由于组播隧道中的根节点和中间节点的出标签均为全局标签,因此,当根节点对应多个下一节点时,根节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当中间节点对应多个下一节点时,若中间节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,根节点不需要复制多份接收到的组播数据后再为多份组播数据各封装一个自身的出标签,中间节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,本发明实施例提供的建立组播隧道的方法,为各节点分配标签的过程简单,并且当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

实施例四

本发明实施例提供一种建立组播隧道的装置40,用以执行图1所示的建立组播隧道的方法,如图4所示,该建立组播隧道的装置40包括:获取单元401、分配单元402和发送单元403,其中:

获取单元401,用于获取组播隧道对应的路径信息和所述组播隧道中各节点的标签操作;其中,所述各节点包含根节点、中间节点和叶子节点;所述路径信息包含所述各节点的标识、所述根节点的出接口信息和所述中间节点的出接口信息;所述标签操作是指对组播数据进行操作的操作类型。

分配单元402,用于为所述组播隧道分配全局标签。

发送单元403,用于根据所述各节点的标识向所述各节点发送标签映射表,以使得所述各节点根据接收到的标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述根节点和所述中间节点的转发表项中包括的出标签为所述全局标签;

其中,向所述根节点发送包含所述根节点的标签操作、所述根节点的出接口信息和所述全局标签的标签映射表,向所述中间节点发送包含所述中间节点的标签操作、所述中间节点的出接口信息和所述全局标签的标签映射表,向所述叶子节点发送包含所述叶子节点的标签操作和所述全局标签的标签映射表。

可选的,所述发送单元403用于:按照南向协议向所述各节点发送标签映射表。

在利用本发明实施例提供的建立组播隧道的装置建立的组播隧道传输组播数据时,由于组播隧道中的根节点和中间节点的出标签均为全局标签,因此,当根节点对应多个下一节点时,根节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当中间节点对应多个下一节点时,若中间节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,根节点不需要复制多份接收到的组播数据后再为多份组播数据各封装一个自身的出标签,中间节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,本发明实施例提供的建立组播隧道的方法,为各节点分配标签的过程简单,并且当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

实施例五

在硬件实现上,实施例四中的发送单元可以为发送器;其他单元可以以硬件形式内嵌于或独立于建立组播隧道的装置中,也可以以软件形式存储于建立组播隧道的装置的存储器中,以便于处理器调用执行以上各个单元对应的操作,该处理器可以为中央处理单元(CPU)、微处理器、单片机等。

如图5所示,为本发明实施例提供的一种建立组播隧道的装置50,用以执行图1所示的建立组播隧道的方法,该建立组播隧道的装置50包括:存储器501、处理器502、发送器503和总线系统504。

其中,存储器501、处理器502和发送器503之间是通过总线系统504耦合在一起的,其中总线系统504除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统504。

存储器501,用于存储一组代码。

存储器501中存储的代码用于控制处理器502执行以下动作:

获取组播隧道对应的路径信息和所述组播隧道中各节点的标签操作;其中,所述各节点包含根节点、中间节点和叶子节点;所述路径信息包含所述各节点的标识、所述根节点的出接口信息和所述中间节点的出接口信息;所述标签操作是指对组播数据进行操作的操作类型;

为所述组播隧道分配全局标签。

发送器503用于,根据所述各节点的标识向所述各节点发送标签映射表,以使得所述各节点根据接收到的标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述根节点和所述中间节点的转发表项中包括的出标签为所述全局标签;

其中,向所述根节点发送包含所述根节点的标签操作、所述根节点的出接口信息和所述全局标签的标签映射表,向所述中间节点发送包含所述中间节点的标签操作、所述中间节点的出接口信息和所述全局标签的标签映射表,向所述叶子节点发送包含所述叶子节点的标签操作和所述全局标签的标签映射表。

可选的,所述发送器503用于:按照南向协议向所述各节点发送标签映射表。

在利用本发明实施例提供的建立组播隧道的装置建立的组播隧道传输组播数据时,由于组播隧道中的根节点和中间节点的出标签均为全局标签,因此,当根节点对应多个下一节点时,根节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当中间节点对应多个下一节点时,若中间节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,根节点不需要复制多份接收到的组播数据后再为多份组播数据各封装一个自身的出标签,中间节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,本发明实施例提供的建立组播隧道的方法,为各节点分配标签的过程简单,并且当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

实施例六

本发明实施例提供一种节点60,用以执行图2所示的建立组播隧道的方法,如图6所示,该节点60包括:接收单元601、生成单元602,其中:

接收单元601,用于接收标签映射表;其中,所述节点为根节点或中间节点时,所述标签映射表包含标签操作、出接口信息和所述组播隧道对应的全局标签;所述节点为叶子节点时,所述标签映射表包含标签操作和所述组播隧道对应的全局标签;所述标签操作是指对组播数据进行操作的操作类型。

生成单元602,用于根据所述标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述节点为根节点或中间节点时,所述节点的转发表项中包括的出标签为所述全局标签。

可选的,所述生成单元602用于:

当所述节点为根节点时,将所述全局标签作为自身的出标签;或,

当所述节点为中间节点时,将所述全局标签作为自身的出标签和入标签;或,

当所述节点为叶子节点时,将所述全局标签作为自身的入标签。

可选的,如图7所示,所述节点60还可以包括:

操作单元603,用于当所述节点为根节点时,根据所述标签操作为所述组播数据封装所述全局标签,并根据所述出接口信息向所述出接口信息所指向的下一节点发送封装所述全局标签后的所述组播数据;或,

操作单元603,用于当所述节点为中间节点时,根据所述出接口信息向所述出接口信息所指向的下一节点转发携带所述全局标签后的所述组播数据;或,

操作单元603,用于当所述节点为叶子节点时,接收携带所述全局标签的所述组播数据,并根据所述标签操作解封装携带所述全局标签的所述组播数据。

本发明实施例提供的节点,当该节点为根节点且该节点对应多个下一节点时,该节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当该节点为中间节点且该节点对应多个下一节点时,该节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的封装全局标签后的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,当该节点为根节点时,该节点不需要复制多份组播源发送的组播数据后再为多份组播数据各封装一个自身的出标签,当该节点为根节点时,该节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,各节点使用的标签均为全局标签当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

实施例七

在硬件实现上,实施例六中的接收单元可以为接收器;其他单元可以以硬件形式内嵌于或独立于节点中,也可以以软件形式存储于节点的存储器中,以便于处理器调用执行以上各个单元对应的操作,该处理器可以为中央处理单元(CPU)、微处理器、单片机等。

如图8所示,为本发明实施例提供的一种节点80,用以执行图1所示的建立组播隧道的方法,该节点80包括:接收器801、存储器802、处理器803、通信接口804和总线系统805。

通信接口804用于节点80与其他节点通信。

其中,接收器801、存储器802、处理器803和通信接口804之间是通过总线系统805耦合在一起的,其中总线系统805除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统805。

接收器801,用于接收标签映射表;其中,所述节点为根节点或中间节点时,所述标签映射表包含标签操作、出接口信息和所述组播隧道对应的全局标签;所述节点为叶子节点时,所述标签映射表包含标签操作和所述组播隧道对应的全局标签;所述标签操作是指对组播数据进行操作的操作类型。

存储器802,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。

处理器803执行所述存储器802存放的程序,以实现本发明实施例提供的建立组播隧道的方法,包括:根据所述标签映射表获得自身转发引擎能够识别的转发表项;其中,所述转发表项用于传输组播数据,所述节点为根节点或中间节点时,所述节点的转发表项中包括的出标签为所述全局标签。

可选的,所述处理器803用于:当所述节点为根节点时,将所述全局标签作为自身的出标签;或,当所述节点为中间节点时,将所述全局标签作为自身的出标签和入标签;或,当所述节点为叶子节点时,将所述全局标签作为自身的入标签。

可选的,所述处理器803用于:当所述节点为根节点时,根据所述标签操作为所述组播数据封装所述全局标签,并根据所述出接口信息向所述出接口信息所指向的下一节点发送封装所述全局标签后的所述组播数据;或,

所述处理器803用于:当所述节点为中间节点时,根据所述出接口信息向所述出接口信息所指向的下一节点转发携带所述全局标签后的所述组播数据;或,

所述处理器803用于:当所述节点为叶子节点时,接收携带所述全局标签的所述组播数据,并根据所述标签操作解封装携带所述全局标签的所述组播数据。

本发明实施例提供的节点,当该节点为根节点且该节点对应多个下一节点时,该节点只需要将接收到的组播数据封装一次全局标签后,复制多份发送给其对应的多个下一节点;当该节点为中间节点且该节点对应多个下一节点时,该节点发现接收到的组播数据携带的标签和自身的出标签相同时,只需要将接收到的封装全局标签后的组播数据复制多份后发送给其对应的多个下一节点。与现有技术相比,当该节点为根节点时,该节点不需要复制多份组播源发送的组播数据后再为多份组播数据各封装一个自身的出标签,当该节点为根节点时,该节点也不需要将接收到的组播数据复制多份后再为每份组播数据替换一个自身的出标签。因此,可以提高传输效率。另外,各节点使用的标签均为全局标签当多个组播隧道中的某个组播隧道出现故障时,设备维护人员可以更加快速的确定出出现故障的组播隧道。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理包括,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,简称ROM)、随机存取存储器(RandomAccessMemory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1