发明内容
本发明提供一种路由的方法、设备及系统,能够解决现有技术中无法实现动态负载分担的问题。
本发明第一方面提供一种路由的方法,所述方法包括:
路由设备统计接收到的第一组播流的传输速率;
所述路由设备根据当前所述路由设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述路由设备的负载分担信息,为所述第一组播流配置第一选路表,所述第二组播流为先于所述第一组播流到达所述路由设备的组播流;
所述路由设备根据所述第一选路表转发所述第一组播流。
在一些发明设计中,所述路由设备包括转发设备和控制设备;
所述路由设备统计接收到的第一组播流的传输速率;所述路由设备根据当前所述路由设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述路由设备的负载分担信息,为所述第一组播流配置第一选路表,所述第二组播流为先于所述第一组播流到达所述路由设备的组播流;所述路由设备根据所述第一选路表转发所述第一组播流,具体包括:
所述路由设备中的所述转发设备统计接收到的第一组播流的传输速率;
所述路由设备中的所述转发设备将所述第一组播流的传输速率发送至所述路由设备中的所述控制设备;
所述路由设备中的所述控制设备根据当前所述路由设备中的所述转发设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述转发设备的负载分担信息,为所述第一组播流配置第一选路表;
所述路由设备中的所述转发设备接收所述路由设备中的所述控制设备发送的第一选路表后,根据所述第一选路表转发所述第一组播流。
在一些发明设计中,所述路由设备中的所述转发设备统计接收到的第一组播流的传输速率之前,所述方法还包括:
所述路由设备中的所述转发设备接收所述路由设备中的所述控制设备发送的第一流表;
所述路由设备中的所述转发设备统计接收到的第一组播流的传输速率,包括:
所述路由设备中的所述转发设备根据所述第一流表的指示统计所述第一组播流的传输速率。
在一些发明设计中,所述路由设备中的所述转发设备下辖转发所述第一组播流的目标链路聚合Trunk接口,所述目标Trunk接口包括多个Trunk成员口;
所述第一组播流的路由信息包括所述第一组播流的复制份数和每份第一组播流的Trunk接口信息;可知,由所述第一组播流的复制份数和每份第一组播流的Trunk接口信息可以知道第一组播流在Trunk接口复制的份数。
所述转发设备当前的负载分担信息包括:每个Trunk成员口当前的传输速率;
所述第二组播流在当前所述转发设备的负载分担信息包括:所述第二组播流在每个Trunk成员口当前的传输速率。
在一些发明设计中,所述预设更新路径条件包括:
所述目标Trunk接口中高于预设比例的Trunk成员口的传输速率与速率均值之差超出预设阈值区间,所述速率均值为所述目标Trunk接口的各Trunk成员口的传输速率的均值。
在一些发明设计中,所述转发设备接收到所述控制设备发送的所述第一选路表后,所述根据所述第一选路表转发所述第一组播流之前,所述方法还包括:
所述路由设备中的所述转发设备依次查找组播转发表、叶子标识ID映射表、多级叶子表以及所述第一选路表,确定转发所述第一组播流的目标Trunk成员口。
在一些发明设计中,所述路由设备中的所述转发设备依次查找组播转发表、叶子ID映射表、多级叶子表以及所述第一选路表,确定转发所述第一组播流的目标Trunk成员口,具体包括:
所述路由设备中的所述转发设备根据所述组播转发表确定所述第一组播流的组播组ID;
根据所述第一组播流的组播组ID查询得到目标叶子ID映射表,确定携带复制第一组播流的Trunk接口信息的目标叶子表的ID;
根据所述目标叶子表的ID查询得到目标多级叶子表,并根据所述目标多级叶子表确定所述目标Trunk接口ID,所述目标叶子表为所述目标多级叶子表中的第一个叶子表,所述目标多级叶子表包含每份第一组播流的叶子表ID;
根据每份第一组播流的叶子表ID、所述目标Trunk接口ID查询所述第一选路表,确定每份第一组播流的Trunk成员口编号,得到所述目标Trunk接口中转发每份第一组播流的Trunk成员口;
所述根据所述第一选路表转发所述第一组播流,包括:
所述路由设备中的所述转发设备根据每份第一组播流的Trunk成员口编号,将每份第一组播流发送至对应的Trunk成员口。
在一些发明设计中,所述目标叶子ID映射表包括:组播组ID与所述目标叶子表ID的第一映射关系;
所述目标多级叶子表中的每个叶子表包括:Trunk出接口ID、叶子表ID与下一级叶子表ID三者之间的第二映射关系;
所述第一选路表包括:组播组ID、叶子表ID、Trunk接口ID及Trunk成员口编号四者之间的第三映射关系,以及每份第一组播流的封装信息;
所述路由设备中的所述转发设备依次查找组播转发表、叶子ID映射表、多级叶子表以及所述第一选路表,确定转发所述第一组播流的目标Trunk成员口,包括:
所述路由设备中的所述转发设备根据获取到的所述第一组播流的源网络协议IP地址和组IP地址,查询所述组播转发表,确定所述第一组播流的组播组ID;
根据所述组播组ID和所述第一映射关系确定所述目标叶子表的ID;
根据所述目标叶子表的ID确定所述目标多级叶子表,并根据所述第二映射关系确定所述第一组播流对应的目标Trunk接口ID;
根据所述第一组播流的组播组ID、每份第一组播流的叶子表ID、所述目标Trunk接口ID及所述第三映射关系,确定每个叶子表ID对应的目标Trunk成员口编号,得到每份第一组播流对应的Trunk成员口。
在一些发明设计中,所述根据所述第一流表统计所述第一组播流的流量大小之前,所述方法还包括:
所述路由设备中的所述转发设备接收所述控制设备发送的第二选路表,根据所述第二选路表转发所述第一组播流;
在接收到所述第一选路表后,所述路由设备中的所述转发设备将所述第二选路表更新为所述第一选路表;
所述根据所述第一选路表转发所述第一组播流,包括:
所述路由设备中的所述转发设备根据所述第一选路表将转发所述在第一组播流的路径切换至所述第一选路表指示的路径。
本发明第二方面提供一种路由设备,包括:
转发单元,用于统计接收到的第一组播流的传输速率;
控制单元,用于根据当前所述路由设备的负载分担信息确定所述转发单元统计得到的所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述路由设备的负载分担信息,为所述第一组播流配置第一选路表,所述第二组播流为先于所述第一组播流到达所述路由设备的组播流;
所述转发单元还用于根据所述控制单元所述第一选路表转发所述第一组播流。
该路由设备具有实现上述方法设计中转发设备和控制设备行为的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
本发明第三方面提供一种通信系统,所述通信系统包括:
执行上述第一方面的可能的设计中的任一可能的设计中所述的方法的转发设备;
执行上述第一方面的可能的设计中的任一可能的设计中所述的方法的控制设备;
或者,所述通信系统包括:
第二方面所述的路由设备。
该通信系统具有上述方法设计中转发设备和控制设备行为的功能,该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。所述模块可以是软件和/或硬件。
跟现有技术相比,本发明中,路由设备统计第一组播流的传输速率,根据当前所述路由设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据第一组播流的传输速率、当前第一组播流的路由信息和第二组播流在当前所述转发设备的负载分担信息,为所述第一组播流配置第一选路表,重新选择转发第一组播流的路径,实现动态选择负载分担的路径,提高负载分担的均匀性。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或模块的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或模块,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或模块,本文中所出现的模块的划分,仅仅是一种逻辑上的划分,实际应用中实现时可以有另外的划分方式,例如多个模块可以结合成或集成在另一个系统中,或一些特征可以忽略,或不执行,另外,所显示的或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,模块之间的间接耦合或通信连接可以是电性或其他类似的形式,本文中均不作限定。并且,作为分离部件说明的模块或子模块可以是也可以不是物理上的分离,可以是也可以不是物理模块,或者可以分不到多个电路模块中,可以根据实际的需要选择其中的部分或全部模块来实现本发明实施例方案的目的。
本发明实施例提供了一种路由的方法、设备及系统,用于无线通信技术领域,能够解决现有技术中无法实现动态负载分担的问题。
本文中的路由设备可以是包括相互独立的转发设备和控制设备,也可以是同时具备转发单元和控制单元的设备,本文中的转发单元可以是转发引擎、转发器等名称,可以认为是与控制设备相互独立的转发设备,也可以是与控制单元集成于一体的设备,具体本文均不作限定。
为解决现有机制中静态负载分档的局限性,本发明主要提供以下技术方案:
1、转发设备实时统计进入路由设备的组播流的传输速率,并上报至控制设备。
2、控制设备根据组播流的传输速率、该组播流的路由信息以及当前路由设备的负载状态,在确定需要更新该组播流的负载分担选路表时,实时为该组播流配置新的负载分担选路表,并将新的负载分担选路表下发至转发设备。
3、转发设备根据新的负载分担选路表转发该组播流。
通过根据当前路由设备的负载状态,为组播流实时更新负载分担选路表,实现动态负载分担的目的,提高负载分担的均匀性。
请参照图1,下面对本发明实施例中一种路由的方法进行描述,本发明实施例包括:
101、路由设备统计接收到的第一组播流的传输速率。
所述路由设备可以包括转发设备和控制设备,或者所述路由设备为集转发设备和控制设备一体的路由器,文中多个转发设备可以成为转发单元,控制设备可以成为控制单元。
102、所述路由设备根据当前所述路由设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述路由设备的负载分担信息,为所述第一组播流配置第一选路表。
其中,所述第二组播流为先于所述第一组播流到达所述路由设备的组播流。
所述路由设备或所述路由设备中的转发设备下辖多个Trunk接口,所述多个Trunk接口包括转发所述第一组播流的目标Trunk接口,所述目标Trunk接口包括多个Trunk成员口;
所述第一组播流的路由信息包括所述第一组播流的复制份数和每份第一组播流的Trunk接口信息,可知,由所述第一组播流的复制份数和每份第一组播流的Trunk接口信息可以知道第一组播流在Trunk接口复制的份数;
所述转发设备当前的负载分担信息包括:每个Trunk成员口当前的传输速率;
所述第二组播流在当前所述转发设备的负载分担信息包括:所述第二组播流在每个Trunk成员口当前的传输速率。
可选的,所述预设更新路径条件包括:所述目标Trunk接口中高于预设比例的Trunk成员口的传输速率与速率均值之差超出预设阈值区间,所述速率均值为所述目标Trunk接口的各Trunk成员口的传输速率的均值。举例来说,路由设备中的控制设备先计算Trunk1接口的各Trunk成员口的传输速率的均值,然后将每个Trunk成员口的传输速率与速率均值比较,例如如果预设阈值区间为±5%,则只要有一个成员口的传输速率与速率均值相差超过5%,则确定当前Trunk1的各Trunk成员口的负载不均匀。
103、所述路由设备根据所述第一选路表转发所述第一组播流。
本发明实施例中,路由设备统计第一组播流的传输速率,根据当前所述路由设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据第一组播流的传输速率、当前第一组播流的路由信息和第二组播流在当前所述转发设备的负载分担信息,为所述第一组播流配置第一选路表,重新选择转发第一组播流的路径,实现动态选择负载分担的路径,提高负载分担的均匀性。
可选的,在一些发明实施例中,上述路由设备可以包括转发设备和控制设备,所述转发设备和所述控制设备可以是集成于所述路由设备中的功能模块,也可以是独立的设备,两者之间进行交互完成转发第一组播流的操作,具体的对转发第一组播流的操作流程如下:
所述路由设备中的所述转发设备统计接收到的第一组播流的传输速率;
所述路由设备中的所述转发设备将所述第一组播流的传输速率发送至所述路由设备中的所述控制设备;
所述路由设备中的所述控制设备根据当前所述路由设备中的所述转发设备的负载分担信息确定所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述转发设备的负载分担信息,为所述第一组播流配置第一选路表;
所述路由设备中的所述转发设备接收所述路由设备中的所述控制设备发送的第一选路表后,根据所述第一选路表转发所述第一组播流。
本可选实施例中,转发设备将统计的第一组播流的传输速率发送给控制设备,使得控制设备根据第一组播流的传输速率、当前第一组播流的路由信息和第二组播流在当前所述转发设备的负载分担信息,为所述第一组播流配置第一选路表,使得转发设备根据第一选路表重新选择转发第一组播流的路径,通过动态选择负载分担的路径,能够提高负载分担的均匀性。
可选的,所述路由设备中的所述转发设备在统计第一组播流的传输速率时,需要根据所述路由设备中的所述控制设备发送的第一流表执行,故在统计之前,所述路由设备中的所述控制设备下发第一流表至所述路由设备中的所述控制设备;
所述路由设备中的所述转发设备接收所述路由设备中的所述控制设备发送的第一流表,则根据所述第一流表的指示统计所述第一组播流的传输速率。
可选的,在第一组播流进入所述转发设备后,控制设备不知道第一组播流的传输速率前提下,需要为第一组播流配置用于转发的选路表,故所述控制设备可以从路由设备中的组播协议处理模块获取所述第一组播流的路由信息,根据所述第一组播流的路由信息为所述第一组播流配置第二选路表,并将所述第二选路表和第一流表下发至所述转发设备,使得所述转发设备根据所述第二选路表转发所述第一组播流,所述第一流表用于指示所述转发设备统计所述第一组播流的流量大小。
可选的,在一些发明实施例中,所述转发设备接收到所述控制设备发送的所述第一选路表后,所述转发设备根据所述第一选路表转发所述第一组播流之前,所述方法还包括:
所述路由设备中的所述转发设备依次查找组播转发表、叶子标识ID映射表、多级叶子表以及所述第一选路表,确定转发所述第一组播流的目标Trunk成员口。
具体的,所述路由设备中的所述转发设备可以查询所述组播转发表,得到所述第一组播流的组播组ID;
查询所述叶子ID映射表,得到携带复制第一组播流的Trunk接口信息的目标叶子表的ID,即第一个复制第一组播流的叶子表的ID;
查询所述多级叶子表,得到所述目标Trunk接口ID;
查询所述第一选路表,得到每份第一组播流的Trunk接口编号,从而得到所述目标Trunk接口中每个Trunk成员口编号对应的目标Trunk成员口。
举例来说,所述路由设备中的所述转发设备查表的过程,具体如下:
所述路由设备中的所述转发设备根据所述组播转发表确定所述第一组播流的组播组ID;
根据所述第一组播流的组播组ID查询得到目标叶子ID映射表,确定携带复制第一份第一组播流的Trunk接口信息的目标叶子表的ID,即第一个复制第一组播流的叶子表的ID;
根据所述目标叶子表的ID查询得到目标多级叶子表,并根据所述目标多级叶子表确定所述目标Trunk接口ID,所述目标叶子表为所述目标多级叶子表中的第一个叶子表,所述目标多级叶子表包含每份第一组播流的叶子表ID;
根据每份第一组播流的叶子表ID、所述目标Trunk接口ID查询所述第一选路表,确定每份第一组播流的Trunk成员口编号,得到所述目标Trunk接口中转发每份第一组播流的Trunk成员口。
则,在得到转发每份第一组播流的Trunk成员口后,所述路由设备中的所述转发设备根据每份第一组播流的Trunk成员口编号,即可将每份第一组播流发送至对应的Trunk成员口。
下面对上述组播转发表、叶子ID映射表、多级叶子表以及第一选路表的结构以及相互之间的关联进行说明,如图2所示:
所述组播转发表(如图2中的a)包括:源网络协议(IP,Internet Protocol)地址、组IP地址与组播组ID之间的映射关系,查表索引为源IP地址、组IP地址。则转发设备可以直接从第一组播流中获取到所述第一组播流的源IP和组IP,通过查询所述组播转发表,即可确定所述第一组播流的组播组ID,然后根据所述第一组播流的组播组ID查询得到目标叶子ID映射表。
所述目标叶子ID映射表(如图2中的b)包括:组播组ID与所述目标叶子表ID的第一映射关系,查表索引为组播组ID。则转发设备可以根据所述组播组ID和所述第一映射关系确定携带第一份复制的第一组播流Trunk接口信息的目标叶子表的ID(即所述多级叶子表中的第一个叶子表的ID),根据所述目标叶子表的ID查询得到所述目标多级叶子表。
所述目标多级叶子表(如图2中的c)中的每个叶子表包括:Trunk出接口ID、叶子表ID与下一级叶子表ID三者之间的第二映射关系,查表索引为叶子表ID。可知,每个叶子表中都包含相同的目标Trunk接口的ID,每个叶子表有唯一的叶子表ID,每个叶子表都包含每份第一组播流的封装信息,则转发设备可以根据所述第二映射关系确定所述第一组播流对应的目标Trunk接口ID。
所述第一选路表(如图2中的d)包括:组播组ID、叶子表ID、Trunk接口ID及Trunk成员口编号四者之间的第三映射关系,以及每份第一组播流的封装信息。查表索引为组播组ID、叶子表ID、Trunk接口ID。则转发设备可以根据所述第一组播流的组播组ID、每份第一组播流的叶子表ID、所述目标Trunk接口ID及所述第三映射关系,确定每个叶子表ID对应的目标Trunk成员口编号,得到每份第一组播流对应的Trunk成员口,以及每个Trunk成员口转发第一组播流的份数,从而可以按照第一组播流的Trunk成员口的编号,以及每个Trunk成员口转发第一组播流的份数转发每份第一组播流。可以理解的是,第二选路表与第一选路表的结构相同,第一选路表基于第二选路表更新,此处不赘述。
为便于理解,下面以一具体应用场景对上述实施例进行举例说明,场景如下:如图1-1所示,路由设备为路由器,路由器下辖Trunk接口1,Trunk接口1聚合三个Trunk成员口:成员口1、成员口2和成员口3。组播流A进入路由器,传输速率为100兆比特每秒(Mbps,Million bits per second),从Trunk接口1复制5份流量,一段时间后,组播流B进入该路由器,传输速率为40Mbps,从Trunk接口1复制3份流量。下面举例描述组播组B进入该路由器之后,重新更改转发的路径的过程。
1、当组播流A的流量刚进入路由器时,路由器中的控制器不知晓组播流A的传输速率,仅知道组播流A在Trunk接口1上要复制5份流量,则控制器为组播流A在Trunk接口1配置的负载分担选路表如下表1所示:
查表索引 |
内容 |
Multicast-group-id1+Leaf-id11+Trunk id1 |
Trunk接口1的成员口1 |
Multicast-group-id1+Leaf-id12+Trunk id1 |
Trunk接口1的成员口1 |
Multicast-group-id1+Leaf-id13+Trunk id1 |
Trunk接口1的成员口2 |
Multicast-group-id1+Leaf-id14+Trunk id1 |
Trunk接口1的成员口2 |
Multicast-group-id1+Leaf-id15+Trunk id1 |
Trunk接口1的成员口3 |
表1
表1中,Multicast-group-id1表示组播流A的组播组标识,Leaf-id11表示复制第一份组播流A的叶子表的标识,Leaf-id12表示复制第二份组播流A的叶子表的标识,Leaf-id13、Leaf-id14及Leaf-id15类似,不再赘述,Trunk id1表示转发组播流A的Trunk接口的标识。
2、路由器中的转发引擎统计组播流A的传输速率,并将组播流A的传输速率上报至控制单元。在组播流B还未进入该路由器之前,控制器根据播流A的传输速率、在每个成员口上复制的份数以及当前每个成员口的负载状态确定之前为组播流A配置的负载分担选路表是最优的,暂时不需要修改。
3、在组播流B进入路由器后,控制单元同样不知晓组播流B的传输速率,故按照正常流程,根据组播流B的路由信息为组播流B在Trunk接口1配置相应的负载分担选路表,如下表2所示:
查表索引 |
内容 |
Multicast-group-id2+Leaf-id21+Trunk id1 |
Trunk接口1的成员口1 |
Multicast-group-id2+Leaf-id22+Trunk id1 |
Trunk接口1的成员口2 |
Multicast-group-id2+Leaf-id23+Trunk id1 |
Trunk接口1的成员口3 |
表2
表2中,Multicast-group-id2表示组播流B的组播组标识,Leaf-id21表示复制第一份组播流B的叶子表的标识,Leaf-id22表示复制第二份组播流B的叶子表的标识,Leaf-id2类似,不再赘述,Trunk id1表示转发组播流B的Trunk接口的标识。
由上表2可知,组播流B在Trunk接口1的复制带宽分别是:成员口1复制2份,总带宽是200Mbps;成员口2复制2份,总带宽是200Mbps;成员口3复制1份,总带宽是100Mbps。
4、路由器中的转发引擎统计组播流B的传输速率,并将组播流B的传输速率上报至控制单元。控制单元根据组播流B的传输速率、组播流B在Trunk接口1的复制份数以及当前三个成员口的传输速率判断成员口1和成员口2的负载远远高于成员口3的负载,故需要重新为组播流B配置其在Trunk接口1的负载分担选路表,如下表3所示。
查表索引 |
内容 |
Multicast-group-id2+Leaf-id21+Trunk id1 |
Trunk接口1的成员口3 |
Multicast-group-id2+Leaf-id22+Trunk id1 |
Trunk接口1的成员口3 |
Multicast-group-id2+Leaf-id23+Trunk id1 |
Trunk接口1的成员口3 |
表3
由表3可知,在重新配置负载分担选路表后,最终Trunk接口1的传输速率分别是:成员口1为200Mbps,成员口2为200Mbps,成员口3为220Mbps,分担比较均匀。
通过重新为组播B分配新的Trunk成员口,充分的利用空闲的链路,减少某些链路的负载,实现负载分担均匀,以及提高链路的利用率。
可以理解的是,后续随着其他组播流进入的增加或删除等其他变化,控制单元会实时根据当前的成员口的负载状态动态的调整每个组播流在该Trunk接口的负载分担选路表,以保持各Trunk成员口之间的负载分担尽可能均匀。另外,在修改之前下发的负载分担选路表时,尽可能较小的改变已下发的负载分担选路表中的参数,避免过于频繁地刷新负载分担选路表,增加控制单元的开销。
请参照图3,本发明还提供一种用于执行上述图1中路由的方法的路由设备30,该路由设备30具有实现上述图1所述的方法实际中路由设备行为的功能。所述路由设备30包括:
转发单元301,用于统计接收到的第一组播流的传输速率;
控制单元302,用于根据当前所述路由设备的负载分担信息确定所述转发单元301统计得到的所述第一组播流满足预设更新路径条件时,根据所述第一组播流的传输速率、第一组播流的路由信息和第二组播流在当前所述路由设备的负载分担信息,为所述第一组播流配置第一选路表,所述第二组播流为先于所述第一组播流到达所述路由设备的组播流;
所述转发单元301还用于根据所述控制单元302配置的所述第一选路表转发所述第一组播流。
本发明实施例中,转发单元301将统计的第一组播流的传输速率发送给控制单元302,使得控制单元302根据第一组播流的传输速率、当前第一组播流的路由信息和第二组播流在当前所述转发设备的负载分担信息,为所述第一组播流配置第一选路表,使得转发单元301根据第一选路表重新选择转发第一组播流的路径,通过动态选择负载分担的路径,能够提高负载分担的均匀性。
可选的,在一些可能的设计中,所述转发单元301统计接收到的第一组播流的传输速率之前,所述转发单元301还用于:
接收所述控制单元302发送的第一流表;
所述转发单元301具体用于:
根据所述控制单元302发送的所述第一流表的指示统计所述第一组播流的传输速率。
可选的,在一些可能的设计中,所述路由设备下辖转发所述第一组播流的目标链路聚合Trunk接口,所述目标Trunk接口包括多个Trunk成员口;
所述第一组播流的路由信息包括所述第一组播流的复制份数和每份第一组播流的Trunk接口信息;
所述转发设备当前的负载分担信息包括:每个Trunk成员口当前的传输速率;
所述第二组播流在当前所述转发设备的负载分担信息包括:所述第二组播流在每个Trunk成员口当前的传输速率。
可选的,在一些可能的设计中,所述预设更新路径条件包括:
所述目标Trunk接口中高于预设比例的Trunk成员口的传输速率与速率均值之差超出预设阈值区间,所述速率均值为所述目标Trunk接口的各Trunk成员口的传输速率的均值。
可选的,在一些可能的设计中,所述转发单元301在接收到所述控制单元302发送的所述第一选路表后,根据所述第一选路表转发所述第一组播流之前,还用于:
依次查找组播转发表、叶子标识ID映射表、多级叶子表以及所述第一选路表,确定转发所述第一组播流的目标Trunk成员口。
可选的,在一些可能的设计中,所述转发单元301具体用于:
根据所述组播转发表确定所述第一组播流的组播组ID;
根据所述第一组播流的组播组ID查询得到目标叶子ID映射表,确定携带复制第一组播流的Trunk接口信息的目标叶子表的ID;
根据所述目标叶子表的ID查询得到目标多级叶子表,并根据所述目标多级叶子表确定所述目标Trunk接口ID,所述目标叶子表为所述目标多级叶子表中的第一个叶子表,所述目标多级叶子表包含每份第一组播流的叶子表ID;
根据每份第一组播流的叶子表ID、所述目标Trunk接口ID查询所述第一选路表,确定每份第一组播流的Trunk成员口编号,得到所述目标Trunk接口中转发每份第一组播流的Trunk成员口;
根据每份第一组播流的Trunk成员口编号,将每份第一组播流发送至对应的Trunk成员口。
可选的,在一些可能的设计中,所述目标叶子ID映射表包括:组播组ID与所述目标叶子表ID的第一映射关系;
所述目标多级叶子表中的每个叶子表包括:Trunk出接口ID、叶子表ID与下一级叶子表ID三者之间的第二映射关系;
所述第一选路表包括:组播组ID、叶子表ID、Trunk接口ID及Trunk成员口编号四者之间的第三映射关系;
所述转发单元301具体用于:
根据获取到的所述第一组播流的源网络地址IP和组IP,查询所述组播转发表,确定所述第一组播流的组播组ID;
根据所述组播组ID和所述第一映射关系确定所述目标叶子表的ID;
根据所述目标叶子表的ID确定所述目标多级叶子表,并根据所述第二映射关系确定所述第一组播流对应的目标Trunk接口ID;
根据所述第一组播流的组播组ID、每份第一组播流的叶子表ID、所述目标Trunk接口ID及所述第三映射关系,确定每个叶子表ID对应的目标Trunk成员口编号,得到每份第一组播流对应的Trunk成员口。
可选的,在一些可能的设计中,所述转发单元301在根据所述第一流表统计所述第一组播流的流量大小之前,还用于:
接收所述控制单元302发送的第二选路表,根据所述第二选路表转发所述第一组播流;
将所述第二选路表更新为所述第一选路表。
如图5所示,上述路由设备30的结构中包括处理器503、接收器501和发送器502,所述处理器503被配置为支持路由设备30执行上述方法中相应的功能。所述发送器502用于支持转发设备与控制设备之间的通信,向控制设备发送上述方法中所涉及的信息。所述路由设备30还可以包括存储器,所述存储器用于与处理器503耦合,其保存路由设备30必要的程序指令和数据。
本发明实施例中的转发单元301对应的实体设备为接收器501和发射器502,控制单元302对应的实体设备为处理器503。
本发明实施例涉及的路由设备30可以具有比图3所示出的更多或更少的部件,可以组合两个或更多个部件,或者可以具有不同的部件配置或设置,各个部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件或硬件和软件的组合实现。
请参照图4,以下对本发明实施例中用于执行上述图1中路由的方法的通信系统40进行描述,所述通信系统40包括:
一种通信系统,其特征在于,如图4所示,所述通信系统40包括:
执行图1对应的实施例中所述的方法的转发设备402;
执行图1对应的实施例中所述的方法的控制设备401;
或者,如图4-1所示,所述通信系统40包括:
图3中的路由设备30。
本发明还提供一种计算机存储介质,该介质存储有程序,该程序执行时包括上述路由设备30或转发设备401或控制设备402执行一种路由的方法中的部分或者全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上对本发明所提供的一种路由的方法、设备及系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。