基于全部/部分地共用多点播送实体的动态数据分组的制作方法

文档序号:7733850阅读:186来源:国知局
专利名称:基于全部/部分地共用多点播送实体的动态数据分组的制作方法
技术领域
本发明涉及光网络系统,尤其涉及基于全部/部分地共用多点播送实体、用以提供多点播送通信的动态数据分组的一个系统和方法。
网络上的数据通信量,尤其是在互联网上,在过去的数年里有了显著的增长,而且这个趋势还将随着用户数量的递增和需要更大带宽的新业务的引进而延续。互联网上增长的通信容量需要一个具有高容量路由器的网络,它能路由选择单点播送和多点播送长度可变的数据包。单点播送数据包是由一个需要点对点通信的请求产生的数据包。单点播送数据包通过一套电子的包交换系统交换到它的目的地。多点播送数据包是由一个需要点对多点或是多点对多点通信的请求产生的数据包。多点播送数据包通过一套电子的数据包交换系统交换到多个目的地。
已经提出在交换系统中采用光技术来取代电子技术的不同主张。然而目前的光网络仅仅使用了单根光纤上可用带宽的一小部分。密集波分复用(DWDM)技术的出现已经帮助解决了目前光网络所遇到的带宽问题。单根密集波分复用光纤现在的传输能力是每秒10万亿比特。然而,它会引起与当前交换技术的严重不匹配,目前的交换技术仅能以接近于每秒几百千兆比特的速率交换数据。而当前ATM交换机和IP路由器被用来在DWDM光纤中通过单独的信道交换数据,速率通常为每秒2.4千兆比特或是每秒10千兆比特,这个方法暗示了几十或是几百的交换接口可通过器多个信道来终接一个单一的链路。
一个叫做光成组交换网络的方法试图实现光和电子的交换技术的最佳结合。为了避开电子处理过程中的潜在瓶颈,在光成组交换网中被转换的数据单位是一个数据子帧。一个数据子帧,或简单称作一个子帧,是一个或多个具有一组共同属性的数据包的集合。一个显而易见的例子是光成组交换网络中的公共出口点。电子器件通过在DWDM光纤上信道分配单个用户数据组,来提供对系统资源的动态管理。光学技术用来交换用户数据子帧,这一过程完全在光学领域中完成。光分组交换网络能对单点播送和多点播送数据组进行交换。但是,光学元件技术的局限大大限制了光交换到设备管理应用。
先前发展的光成组交换网络系统是低质施行的,大体趋向于证明目前光学元件的无效性。例如,一项现有技术,光成组交换网络在控制网络时使用的ATM交换,使得控制网络的设计更加错综复杂,更加不尽人意。另一项现有技术,光成组交换网络在光学路由器中使用了电子缓冲器(隔离器),这样,光成组交换网络就不是纯光学的,电子缓冲器不为数据子帧提供端对端的透明的光学路径。因此,很少能够推动任何重大的朝光成组交换方向的技术进步。
本发明提供一种基于全部/部分地共享多点播送树的动态数据成组交换系统和方法。它大体上消除或是减少了与以前发展的用于交换多点播送数据包的系统和方法相关的缺点和问题。
更确切地说,此项发明提供一种系统和方法,它根据一些多点播送成组分类标准,将多个多点播送数据包集合成一个多点播送组,而后通过光成组交换网络交换多点播送组。要根据本发明通过光成组交换网络交换多点播送数据包,须先根据多个多点播送成组传送标准(类),在电子入口边界路由器处将多点播送数据包集合成一个多点传送组。多点播送组通过光成组网络交换到目的电子出口边界路电器,在那里组被分解回多点传送数据包,并被传送到它最终的(多个)目的地。
本发明提供一项技术优势,因为它提供了一种十分有效的方法,根据多个多点播送分组类将多个多点播送数据包集合成一个单一的多点播送数据组,再通过光成组交换网络传送多点播送数据组。
本发明提供一项技术优势,它增加了多点播送通信量的组长度,因而增加了在光成组交换网络中多点播送信息传递的有效性。
本发明提供另一项技术优势,它减少了成组收集的时间间隔,由此减少多点播送数据包到达电子入口边界路由器的延迟现象。
本发明提供另一项技术优势,它减少了递送/路由多点播送组到它们的目的地所需要的控制业务和控制操作的数目。
本发明提供另一项技术优势,因为它大部分独立于基本的光成组交换上控制单元的特性(例如基于ATM),或是独立于光交换矩阵的特性(例如,可使用电子的或光的缓冲器)。
通过阅读下面结合附图对最佳实施例的描述,可以清楚的了解本发明及其优点,附图中相同的参数代表相同的特性。其中

图1是光成组交换网络的一个例子;图2是基于本发明的在光成组交换网络中的等同树(ETON)的一个例子;图3是基于本发明的在光成组交换网络中的等同覆盖(ECON)的一个例子;图4是基于本发明的在光成组交换网络中的超覆盖(SCON)的一个例子;图5是基于本发明的在光成组交换网络中的超级覆盖的另一个例子;图6是基于本发明的在光成组交换网络中的重叠覆盖(OCON)的一个例子;图7描述的是根据一组电子出口边界路由器来查找多点播送分组类的方法;图8是将两个树通过Breadth-First-Merge算法合并的示意图;图9表示的是运行Breadth-First-Merge算法后将图8中的两个树合并后的结果;图10是应用ETON的一种数据结构;图11是应用ECON,SCON,OCON的一种数据结构;图12是针对ETON,ECON,SCON和OCON的一个多点播送分组类的一种数据结构;图13是针对ETON,ECON,SCON和OCON的多点播送树的一种数据结构。
附图中示出了本发明的优选实施例,图中相同的数字代表相同的部件以及不同附图中的相应部分。
图1表示的是基于本发明的光成组交换(OBS)网络的一个例子。光成组交换网络100包括多个电子入口边界路由器105,光核心路由器110,电子出口边界路由器115和DWDM链路120。多个输入子网125和目标子网130在图1中的位置是在光成组交换网100的外面。光成组交换网络100能够交换单点播送,多点播送和广播的数据子帧。
注意,虽然图1中电子入口边界路由器和电子出口边界路由器在逻辑上明显不同,但这两项功能实际上通常合并成一个单一的物理边界路由器。单点播送数据包被聚集成数据组是根据它们的目的电子出口边界路由器地址115。多点播送数据包被聚集成多点播送数据组是根据它们源地址和多点播送组地址(S,G),或者仅仅根据它们的多点播送组地址(★,G),这取决于所用的多点播送的路由器协议。广播数据包是多点播送数据包的一种特殊情况,其中数据包被广播给光成组交换网络100中的每一个地址。
除了源地址和多点播送群地址之外,多点播送组的聚集还要根据两个参数组聚集的时间间隔和最大的组长度。因为多点播送数据包通常在给定的时间间隔内被聚集成多点播送组(这受到其它设备中端对端延时的限制),单组多点播送通信的平均组长度要比单点播送通信的小得多,由于数据包很少能符合标准而被聚集成一个组。对于一个给定多点播送组的额外开销,这导致在光成组交换网络100中多点播送信息的传递的极低效率。例如,如果在一个10Gbps的信道中,多点播送组的额外开销是10kbits,那么为了达到95%的信道利用率,就要求平均长度为200kbits的多点播送组。
在本发明的一个实施例中,通过增加多点播送组的聚集时间间隔来实现多点播送通信的平均组长度。在本发明的另一个实施例中,多点播送数据包被聚集成多个组,不是仅仅对应一个多点播送群,还对应多个多点播送群的设置。一个多点播送群有一套发送者和接收者,从光成组交换网络100的角度看,一个多点播送组包含一个电子入口边界路由器和一套电子出口边界路由器,多点播送分组类可以根据四种方案中的一种来确定。为简单起见,在描述这四种方案时,多点播送分组类中仅标明两个多点播送组与多点播送树T1和T2有关联。然而,一个多点播送分组类中的多个组可以和多个多点播送树有关联,虽然别的标准(例如服务质量和安全要求等)可以决定分组类,但在这里不作叙述。
在四种方案的任意一种中,T=(C,E,L),T代表光成组交换网络100中一个多点播送组的多点播送树,C是一套光核心路由器110,E是一组成员电子入口和出口边界路由器,分别是105和115,L是DWDM链路120,它由一个给定的用于传递多点播送组的多点播送树充当。而且,如果在电子入口边界路由器上有N个多点播送分组类(MBC),并且第j个多点播送分组类有Rj个多点播送树,那么
MBCj=(Tj1,Tj2,…,TjRj)这里j=1,2,…,N且Tjk=(Cjk,Ejk,Ljk), 这里k=1,2,…,Rj图2是第一个多点播送分组类的一个例子,叫做“光成交换网中的等同树”(ETON)200。光成组交换网中的等同树(ETON)包括一个电子入口边界路由器105,多个光核心路由器110,多个电子出口边界路由器115,多个DWDM链路120,一个第一多点播送树T1205和一个第二多点播送树T2210。在这第一种方案中,与一个多点播送分组类相关的多点播送树们共用相同的链路120,核心路由器110,电子入口边界路由器105,和电子出口边界路由器115。特别地,对MBCj来说,Tj1=Tj2=…=TjRj。
在ETON的一个优选实例中,所有与第一多点播送树T1205有关的多点播送数据包在电子入口边界路由器105处聚集成一个多点播送组,再通过光成组交换网100交换到电子出口边界路由器E4和E8115。同样地,所有与第二多点播送树T2210有关的多点播送数据包在电子入口边界路由器105处聚集成一个多点播送组,再通过光成组交换网100交换到电子出口边界路由器E4和E8115,一旦两个多点播送组到达它们各自的电子出口边界路由器,它们将被分解开并被传送到各自的目标子网130。
在同一个电子入口边界路由器105将多点播送数据包集合成两个独立的组,并将它们传送到同一个电子出口边界路由器115,这样做的问题是每个多点播送组使用了相同的额外开销。另外,由于每个多点播送组必须在给定的时间间隔内聚集成,并且多点播送通信的容量并不很大,因此不可能在短时间内聚集足够多的多点播送数据包。
在ETON的另一个优选实例中,如果一组多点播送数据包和不同的多点播送树相关联,而它们共用了相同的电子入口边界路由器105,DWDM链路120,光核心路由器110,以及电子出口边界路由器115,那么,数据包能够通过一组额外开销聚集成一个单一的多点播送组。因此,在同样的时间间隔内能够聚集更多的多点播送数据包,从而有可能使多点播送数据包的交换更加有效。注意到图2中第一多点播送树T1205和第二多点播送树T2210都使用同样的DWDM链路,光核心路由器110,电子入口边界路由器105和电子出口边界路由器115,从而建立了等同树。因此,所有和第一、第二多点播送树T1205和T2210相关联的多点播送数据包都可以被分在一个多点播送分组类中。于是,这些多点播送数据包可以在电子入口边界路由器105处通过一组额外开销聚集在一个单一的多点播送组里,并通过光成组交换网络100交换,通过第一多点播送树T1205或是第二多点播送树T2210都可以。单一的多点播送组可以在电子出口边界路由器E4和E8115处被分解回多点播送数据包,再传送到输出子网130。
图3表示的是第二多点播送分组类,称为光成组交换网络中的等同覆盖(ECON)300。ECON包含一个电子入口边界路由器105,多个光核心路由器110,多个电子出口边界路由器115,多个DWDM链路120,第一多点播送树T1305,和第二多点播送树T2310。在这第二种方案中,与一个多点播送分组类相关的多点播送树们共用相同的电子入口边界路由器105和电子出口边界路由器115,但不必共用相同的DWDM链路120,或是光核心路由器110,具体地说,在ECON方案中,对于MBCj来说,Ej1=Ej2=…=EjRj。
在ECON的一个优选实施例中,与第一多点播送树T1305相关的所有多点播送数据包可在电子入口边界路由器105处集合成一个多点播送组,并通过光成组交换网100传送到电子出口边界路由器E4和E8115。类似地,所有与第二多点播送树T2310相关的多点播送数据包可在电子入口边界路由器105处集合成一个多点播送组,并通过光成组交换网传送到电子出口边界路由器E4和E8115。一旦两个多点播送组到达它们各自的电子出口边界路由器115,它们将被彼此分离,并被传送到它们各自的目标子网130。
再次地,在同一个电子入口边界路由器105处将多点播送数据包集合成两个独立的组、并将它们传送到同一个电子出口边界路由器115,这样做的问题是每个多点播送组使用了相同的额外开销。由于每个多点播送组必须在给定的时间间隔内聚集成,并且多点播送通信的容量相对较小,因此在短时间间隔内只能聚集相对较少的多点播送数据包。
在ECON的另一个优选实施例中,如果一组多点播送数据包能通过一组额外开销被聚集成一个单一的多点播送组,这些数据包和不同的多点播送树相关联,并共用相同的电子入口边界路由器105、电子出口边界路由器115,那么更多的多点播送数据包在同样的时间间隔中内被聚集,从而使多点播送数据包的交换更加有效是十分可能的。注意到图3中第一多点播送树T1305和第二多点播送T2310都使用了相同的电子入口边界路由器105和电子出口路由器115,从而建立了一种等同覆盖多点播送树。因此,所有和第一、第二多点播送树T1305和T2310相关的多点播送数据包可以被分在一个多点播送类中。于是,多点播送数据包们可以在电子入口边界路由器105处通过一组额外开销集合在一个单一的多点播送组中,并通过光成组交换网络第一多点播送树T1305或是第二多点播送树T2310传送。单一的多点播送组可以在电子出口边界路由器E4和E8115处被分解回多点播送数据包,再传送到输出子网130。
在ECON中,可以用负载平衡来决定通过哪个多点播送树来传送单一的多点播送组,例如,一个平衡负载的方法是平等地交替使用多点播送树T1305和T2310来传送多点播送组。另一种方法,总的多点播送通信量可以在多点播送树中以一种交替的特性不均衡地分布。其它现有技术中已知成熟的负载平衡的技巧也可以使用,负载平衡的判定发生在电子入口边界路由器105。
图4表示的是第三多点播送分组类的一个例子,该类称为光成组交换网络中的超级覆盖(SCON)400。SCON400中或者说是图4中包含一个电子入口边界路由器105,多个光核心路由器110,多个电子出口边界路由器115,多个DWDM链路120,第一多点播送树T1405和第二多点播送树T2410。在该情况中,和一个多点播送分组类相关的多点播送树可以不共用相同的电子出口边界路由器115,DWDM链路120,或是光核心路由器110。但是,至少有一个多点播送树(称为超级树)包括了进口边界路由器105和所有多点播送树共享的所有电子出口边界路由器115。超级树和其它多点播送树在电子出口边界路由器115、DWDM链路120或是光核心路由器的数目上的差别不会比预先设定的值大。
在SCON的一个优选实施例中,所有和第一多点播送树T1405相关的多点播送数据包可在电子入口边界路由器105处集合成一个多点播送组,并通过光成组交换网100传送到电子出口边界路由器E4和E8115。类似地,所有与第二多点播送树T2410相关的多点播送数据包可在电子入口边界路由器105处集合成一个多点播送组,并通过光成组交换网100传送到电子出口边界路由器E4和E8115。最后,通过多点播送树T1405的多点播送组将在电子出口边界路由器E4和E8115处分解开来,并被传送到它们各自的子网130。类似地,通过多点播送树T2410交换的多点播送组将在电子出口边界路由器E3,E4和E8115处分解开来,并被传送到它们各自的子网130。
再次地,在同一个电子入口边界路由器105处将多点播送数据包集合成两个独立的组,并将它们传送到至少有几个相同的电子出口边界路由器115,这样做的问题是一些多点播送组使用了同样的额外开销。由于每个多点播送组必须在给定的时间间隔内聚集成,并且多点播送通信容量相对较小,因此在短时间间隔内集合足够多的多点播送数据包是不可能的。在SCON的另一个优选实施例中,至少有一个多点播送树(称为超级树),它包括电子入口边界路由器105和所有多点播送树组合包含的所有电子出口边界路由器115。多点播送数据包可以通过一组额外开销集合为一个单一的多点播送组,并通过超级树传送到所有电子出口边界路由器115。因此,更多的多点播送数据包在同样的时间间隔内被聚集,从而使多点播送数据包的交换更有效是十分可能的。
在图4中,注意到第一多点播送树T1405和第二多点播送树T2410并没有共用同样的电子出口边界路由器115。然而,多点播送树T2400覆盖了所有被第一和第二多点播送树(T1405和T2410)联合覆盖的所有电子出口边界路由器115,从而建立了一个超级覆盖树。因此,所有与第一和第二多点播送树(T1405和T2410)有关的多点播送数据包可以在电子入口边界路由器处通过一组额外开销集合为一个单一的多点播送组,并通过光分组交换网络100交换到超级树。在图4中,超级树是第二多点播送树T2410。多点播送组可以在电子出口边界路由器E3,E4和E8115处分解开,并被传送到各自的输出子网130。同时也要注意到,与多点播送树T1405相关的多点播送数据包在电子出口边界路由器E3115处被丢弃。
在SCON方案中,需要一些标准来构造一个SCON多点播送分组类。当使用共用多点播送实体概念时,希望这些标准能够确保在光线组交换网中所有多点播送数据包的传送效率。在一个优选实施例中,MBC中超级树和其它多点播送树在DWDM链路120,光核心路由器110和电子出口边界路由器115数目上差别的最大初始限定值可以设定。网络管理员可以设定这些值,电子入口边界路由器105对超级树和每个独立的多点播送树进行比较,以确定这些最大初始限定值没有被违背。在有关DWDM链路120,光核心路由器110和入口、出口边界路由器(105和115)的不同阈值下,下列三个不等式可以用来建立一个多点播送分组类Ejk⊆Ej0]]>对于所有的K=1,2,…Rj|Ejs-∩iRjEji|≤hE-----(1)]]>|Cjs-∪iRjCji|+|∪iRjCji-Cjs|≤hc,---(2)]]>|Ljs-∪iRjLji|+|∪iRjLji-Ljs|≤hL------(3)]]>这里hC,hE和hL分别是光核心路由器C,电子入口和出口边界路由器E以及DWDM链路L的阈值,注意到|Y|是部件Y的基数。
方程1(1)定义了SCON的类,同时控制一些边界路由器上的分组效率和处理额外开销间的平衡关系。方程2(2)和3(3)与多点播送成组递送的平均工作情况有关。方程2(2)和3(3)控制系统标准分组和所有多点播送通信效率之间的平衡关系。
在另一个优选实施例中,使用了分组效率比率,用CER表示。它给出了单个多点播送话路通过它们的多点播送树传送多点播送信息的累计耗费与MBC的通过超级树传送多点播送信息的总耗费之比。我们再次假设电子入口边界路由器有N个多点播送分组类(MBC),第j个多点播送分组类MBCj有Rj个多点播送树,在同一个MBCj中第k个多点播送组的多点播送通信容量是Djk,k=1,2,…,Rj,通过树Tjk传送单位通信量的耗费是Sjk。并且,通过超级Tsj传送单项通信量的耗费是Ssj。下面的不等式可以用于对电子入口边界路由器建立SCON类MBCj。CERj=Σk=1RjDjkSjkSsjΣk=1RjDjk≥hR-----(4)]]>hR(≥1)是一个预定的值。对于不等式(4),在一个优选实施例中,Sjk是树Tjk中DWDM链路的总和,Ssj是超级树中DWDM链路的总和。在另一个优选实施例中,Sjk和Ssj分别是树Tjk和超级树Tsj中DWDM的链路的加权和,例如,在计算耗费时DWDM链路的长度可以作为权重。图5是基于本发明的光成组交换网(SCON)500中超级覆盖的另一个例子。在图5中,由于多点播送树T2510共用了所有多点播送树联合覆盖的相同电子入口和出口边界路由器,因此T2510是个超级树。注意图5中的例子比图4中的例子有更多的额外开销。并注意,对于ETON,hC=hE=hL=0,对于ECON,hE=0。
图6是基于本发明的光成组交换网中(OCON)600中重叠覆盖的一个例子。OCON600是SCON500的一个扩展。在OCON600中,一个多点播送分组类的多点播送树可以不包括所有的出口边界路由器115,但是,可以建立一个覆盖所有出口边界路由器115的联合树,来传送集合了的多点播送组。和SCON500一样,在出口边界路由器115,DWDM链路120和光核心路由器110的数目方面,联合树和多点播送树的差别不会比预定的阈值大。在SCON500下使用的方程(1),(2),(3),(4)对于OCON600也同样有效。
在OCON600的一个优选实施例中,与第一多点播送树T1405相关的所有多点播送数据包可以在电子入口边界路由器105处集合成一个多点播送组,并通过光成组交换网络100交换到电子出口边界路由器E4,E8和E9。类似地,与第二多点播送树T2410相关的所有多点播送数据包可以在电子入口边界路由器105处集合成一个多点播送组,并通过光成组交换网络交换到电子出口边界路由器E3,E4,E8。最后,通过多点播送树T1405交换的多点播送组在电子出口边界路由器E4,E8和E9处被分解,并被传送到它们各自的子网130。类似地,通过多点播送树T2410交换的多点播送组在电子出口边界路由器E3,E4和E8处被分解,并被传送到它们各自的目标子网130。
再次地,在同一个电子入口边界路由器105处将多点播送数据包集合成两个独立的组,并将它们传送到几个相同的电子出口边界路由器115,这样做的问题是一些多点播送组使用了同样的额外开销。由于每个多点播送组必须在给定的时间间隔内集合成,并且多点播送的通信容量不是很大,因此在短时间间隔内要结合足够多的多点播送数据包是不可能的。在OCON600的另一个优选实施例中,多点播送分组类中的多点播送树没有一个包括了所有的入口和出口边界路由器,分别是105和115。要将多点播送组传送到所有的出口边界路由器105和115,可以建立一个联合树,它覆盖所有的入口和出口边界路由器,分别是105和115。因此,一个单一的多点播送组通过一组额外开销可以被集合并通过联合树传送。更多的多点播送数据包在同样的时间间隔内被聚集,从而使多点播送数据包的交换更加有效是十分可能的。
在图6中,注意到第一多点播送树T1605和第二多点播送树T2610并不共用相同的电子出口边界路由器115,然而,多点播送树T1605和T2610的合并就覆盖了所有的电子出口边界路由器115,从而建立一个重叠覆盖的多点播送树。因此,所有通过第一和第二多点播送树的多点数据包可以在电子入口边界路由器105处通过一组额外开销结合成一个单一的多点播送组,并在新形成的重叠覆盖多点播送树上通过光成组交换网络100交换。在电子出口边界路由器E3,E4和E8、E9115处,多点播送组被分解回多点播送数据包并被传送到各自的输出子网130。电子出口边界路由器E3和E9115需要丢掉一些它们接受到的多点播送数据包是为了图6中OCON的平衡调整。
为了多点播送分组类(MBC)查找的有效执行,我们对ETON,ECON,SCON和OCON方案提出了数据结构。图7描述的是ETON方案的数据结构。链接阵列是一个指针阵列,对于它们的树中有相同数目链路的MBC,链接阵列指向相应的边界阵列。该数字用数组的指示数表示。例如,链接阵列[i]含有一个把它们的树里包含数字i链路的所有MBC连系起来的指针。这个指针指向另一个指针数组,该指针数组指向在它们的树里包含相同数字边界路由器的实际的MBC。例如,EdgeArrayi[j],同样地,它指向MBCs中的一个链表,它们的树里都有数字i的链路和数字j的边界路由器。每个MBC有一个属于该MBC的多点播送树(MT)的列表。图8中给出的ECON,SCON和OCON方案的数据结构800,仅包含一个边界阵列,边界阵列指向在它们所代表的树里有着相同数字的边界路由器的MBC列表(与该组链路无关)。
图9描述的是所有方案的MBC的数据结构900。该结构有一个指针指向属于此MBC的所有MT的链表。它通过一个指向MT的指针保存MBC的典型树的信息。它也分别保存典型树和最小树在边界路由器、链路和核心路由器数目上当前的差异。它有分别指向共用的边界路由器、链路和核心路由器的指针。它有两个指针,一前一后,将结构链接在双向链表上。
图10描述的是所有方案的MT的数据结构1000。该数据结构1000含有指向它所用的边界路由器、核心路由器和链路列表的指针。这些列表排列有序(例如,ID的升序排列)。该结构记录了边界路由器、核心路由器和链路的数目。在MT增加和删除的查找过程中,直接访问此信息。每个MT都有链路设置,边界设置和核心设置值,这些值是由LinkID的线性或是非线性函数(用fL(·)表示),以及EdgeID的函数(用fE(·)表示)和核心ID的函数(fC(·)表示)分别得到的。MT数据结构也包含一个指向它的MBC的指针。此信息使得从MBC中删除MT变得容易。该结构提供两个指针,一前一后,用来建立双向链表。
用链路设置,边界设置和核心设置值的目的是进一步收缩MT的查找过程。下面是两个应用(1)所有函数是单射的,当a≠b时,隐含着f(a)≠f(b);(2)至少有一个是非单射的。使用单射函数能极大地简化MT的查找,因为它提供了部件和其设定值之间的唯一关系。单射函数的得到构成了另一个问题。注意到如果相关的信息在某些情况下得不到时,任何一般MT的数据结构的某些内容可以是空的。
这四个分组类的管理是另一项任务。这四个分组类的管理包括两项基本操作对多点播分组类的一个多点播送组进行增加和删除。电子入口边界路由器105运行一个单独的算法来对多点播选分组类的多点播组进行添加和删除。下面是对两个算法的高级类描述。在这两个高级类算法中,X=ETON,ECON,SCON或OCON,多点播送树在每个算法中对应的是T*。
1.添加algorithm X_addition(T*)Search for the X MBC;if there exists MBCjwhich satisfies the X definition;MBCj←MBCjU T*;elseMBCk←create a new MBC;MBCk←T*;end_algorithm2.删除algorithm X_deletion(T*)find MBCjwhich contains T*;MBCj←MBCj-T*;if MBCj=Φthen terminate MBCj;end_algorithm
该算法的优选实施例将在下面更具体地描述,将一个多点播送树加入一个多点播送分组类和从一个多点播送分组类删除一个多点播送树,对于一个已改变的多点播送组,它不再满足它所属的多点播送组类的定义,删除和增加操作都是必需的,从当前多点播送分组类中删除该多点播送组,并把它加入一个新的多点播送分组类。
ETON程序下面给出的程序ETON_addition用来实现增加。该程序直接访问多点播送分组类MBCs列表,这些MBC在它们的典型多点播送树(MT)里有着相同数目的链路和边界路由器,该程序找到其典型MT具有相同多点播送树的MBC。如果函数是单射函数,则仅通过比较设定的值进行连续查找,当找到了正确的MBC,就将该MT加入,否则,就建立一个新的MBC并用该MT对它进行初始化。下面列出ETON_addition程序procedure ETON_addition(MTi)EdgeArray←LinkArray[MTi.Num_of_Links];MBC_ptr←EdgeArray[MTi.Num_of_Edges];if(MBC_ptr≠Null)/*there exists at least one MBC inthe system*/while(MBC_ptr≠Null andMBC_ptr.Representative_MT.LinkSet_value≠MTi.LinkSet_value orMBC_ptr.Representative_MT.EdgeSet_value≠MTi.EdgeSet_valueorMBC_ptr.Representative_MT.CoreSet_value≠MTi.CoreSet_value)oldMBC_ptr←MBC_ptr;MBC_ptr←MBC_ptr.next;end_whileif(MBC_ptr≠Null)Insert(MBC_ptr,MTi);Return;end_ifend_if
MBC_ptr←create(MBC);MBC_ptr.Representative_MT←MTi;Addl(MBC_ptr);Return;end_procedure下面给出Insert和Addl子程序,Insert子程序在一个多点播送类中插入一个多点播送树。
procedure Insert(MBCptr,MT)MT.next←MBC_ptr.ptr_to_MT;MT.prev←Null;if(MBC_ptr.ptr_to_MT≠Null)MBC_ptr.ptr_to_MT.prev←MT;MBC_ptr.ptr_to_MT←MTi;MTi.MBC←MBC_ptr;end_procedureAddl子程序根据典型树的边界路由器和链路数目将MBC加入列表中。
procedure Addl(MBC_ptr)MBC_ptr.next←Null;EdgeArray←LinkArray[MBC_ptr.Representative_MT.Num_of_Links];MBC_ptr.next←EdgeArray[MBC_ptr.Representative_MT.Num_of_Edges];if(EdgeArray[MBC_ptr.Representative_MT.Num_of_Edges]≠Null)EdgeArray[MBC_ptr.Representative_MT.Num_of_Edges].prev←MBC_ptr;EdgeArray[MBC_ptr.Representative_MT.Num_of_Edges]←MBC_ptr;end_procedure下面给出的程序ETON_deletion用来将一个MT从它的MBC中删除。此程序在相应的MBC的MT列表中直接访问MT。如果此MT不是该MBC的典型树,则将MT从该列表中删除,如果此MT是典型树,且在该MBC中还有别的成员树。则根据成员树和典型书间的等价关系,用典型树代替别的成员树。如果该MBC中没有别的成员树,则从系统的MBC列表中终止该MBC。下面列出程序ETON_deletion。
procedure ETON_deletion(MTi)if(MT.MBC.Representative_MT=MTi)if(MT.MBC.ptr_to_MT=Null)if(MTi.MBC.prev=Null)if(MTi.MBC.next=Null)EdgeArray[MTi.Num_of_Edges]←Null;elseEdgeArray[MTi.Num_of_Edges]←MTi.MBC.next;MTi.MBC.next.prev←Null;end_ifelseif(MTi.MBC.next=Null)MTi.MBC.prev.next←Null;elseMTi.MBC.prev.next←MTi.MBC.next;MTi.MBC.next.prev←MTi.MBC.prev;end_ifend_ifelseMT2←MT.MBC.ptr_to_MT;MT.MBC.Representative_MT←MT2 ;MT2.next.prev←Null;MT.MBC.ptr_to_MT←MT2.next;end_ifelseif(MTi.prev=Null)if(MTi.next=Null)MTi.MBC.ptr_to_MT←Null)elseMTi.MBC.MT←MTi.next;MTi.next.prev←Null;end_ifelse
if(MTi.next=Null)MTi.prev.next←Null;elseMTi.prev.next←MTi.next;MTi.next.prev←MTi.prev;end_ifend_ifend_ifend_procedure如果函数不是单射的,则由于函数值不能唯一地说明一个链路和/或边界设置,为了检测两条链路和/或边界设置的等价性,我们引入一个叫做Equi_set的函数。下面列出函数Equi_setfunction Equi_set(A,B,n)for i←1 to nif A.ID≠B.ID return(FALSE);A←A.next;B←B.next;end_forreturn(TRUE);end_function因此,在非单射函数的情况中,添加程序需要作如下改变。
procedure ETON_addition2(MTi)EdgeArray←LinkArray[MTi.Num_of_Links];MBC_ptr←EdgeArray[MTi.Num_of_Edges];if(MBC_ptr≠Null)/*there exists at least a MBC in the system*/while(MBC_ptr≠Null andMBC_ptr.Representative_MT.LinkSet_value≠MTi.LinkSet_value orMBC_ptr.Representative_MT EdgeSet_value≠MTiEdgeSet_value orMBC_ptr.Representative_MT CoreSet_value≠MTiCoreSet_value orEqui_set(MBC_ptr.Representative_MT.ptr_to_Links,MTi.ptr_to_Links,MTi.num_of_Links)orEqui_set(MBC_ptr.Representative_MT.ptr_to_EdgeRouter,MTi.ptr_to_EdgeRouter,num_of_Edge_R))
oldMBC_ptr←MBC_ptr;MBC_ptr.←MBC_ptr.next;end_whileif(MBC_ptr≠Null)Insert(MBC_ptr,MTi);return;end_ifend_ifMBC_ptr←create(MBC);MBC_ptr.Representative_MT←MTi;Addl(MBC_ptr);return;end_procedureECON程序下面给出的程序ECON_addition用来实现一个MT的增加。此程序直接访问在它们的MT中有着相同数目边界路由器的MBC的列表,并连续查找它的MT有着同样边界路由器覆盖范围的MBC。如果函数是单射函数,则只需比较设定的值即可进行连续查找,当找到了正确的MBC,就将该MT加入其中,否则,建立一个新的MBC并用该MT对其初始化。删除程序和ETON方案中的一样。
procedure ECON_addition(MTi)MBC_ptr←EdgeArray[MTi.Num_of_Edges];if(MBC_ptr≠Null)/*there exists at least a MBC in thesystem*/while(MBC_ptr≠Null andMBC_ptr.Representative_MT.EdgeSet_value≠MTi EdgeSet_value)oldMBC_ptr←MBC_ptr;MBC_ptr.←MBC_ptr.next;end_whileif(MBC_ptr≠Null)Insert(MBC_ptr,MTi);return;end_ifend_if
MBC_ptr←create(MBC);MBC_ptr.Representative_MT←MTi;Add1(MBC_ptr);return;end_procedure对于非单射函数的情况,用ECON_addition2程序代替ECON_addition。
procedure ECON_addition2(MTi)MBC_ptr←EdgeArray[MTi.Num_of_Edges]if(MBC_ptr≠Null)/*there exists at least a MBC in the system*/while(MBC_ptr≠Null andMBC_ptr.Representative_MT EdgeSet_value≠MTi.EdgeSet_value orEqui_set(MBC_ptr.Representative_MT.ptr_to_EdgeRouter,MTi.ptr_to_EdgeRouter,num_of_Edge_R))oldMBC_ptr←MBC_ptr;MBC_ptr.←MBC_ptr.next;end_whileif(MBC_ptr≠Null)Insert(MBC_ptr,MTi);return;end_ifend_ifMBC_ptr←create(MBC);MBC_ptr.Representative_MT←MTi;Addl(MBC_ptr);return;end_procedureECON的删除步骤和ETON方案的一样。
SCON程序对于SCON方案,添加程序在先前提到的阈值中查找MBC。它以具有相同数目边界路由器的MBC为起点开始查找,然后在两个方向中的任意一个方向上通过对距离hE以固定增量增加的方法继续查找,如图11所示。因此,它维护了共用的边界路由器和所有链路及核心路由器。它还根据边界路由器的数目从超级树保存当前的距离。
procedure SCON_addition(MTi)p←1;for i←0 to hEj←1;MBC_ptr←EdgeArray[MTi.Num_of_Edges+p*i];while(j=1 or(j=2 and i<hE-MBC_ptr.currentE))while(MBC_ptr≠Null and{p≠1 or!subset(MBC_ptr.Representative_MT.ptr_to_EdgeRouters,MTi.ptr_to_EdgeRouters)orE←(MBC_ptr.Representative_MT.Num_of_Edges-Cardinality(Intersectset(MBC_ptr.EdgeRouterSet,MTi.ptr_to_EdgeRouters))>hEor[Cardinality(Diffset(MBC_ptr.Representative_MT.ptr_to_Links,Unionset(MBC_ptr.LinkSet,MTi.ptr_to_Links)))+Cardinality(Diffset(Unionset(MBC_ptr.LinkSet,MTi.ptr_to_Links),MBC_ptr.Representative_MT.ptr_to_Links))]>hLor[Cardinality(Diffset(MBC_ptr.
Representative_MT.ptr_to_CoreRouters,Unionset(MBC_ptr.AllCoreRouters,MTi.ptr_to_CoreRouters)))+Cardinality(Diffset(Unionset(MBC_ptr.AllCoreRouters,MTi.ptr_to_CoreRouters),MBC_ptr.Representative_MT.ptr_to_CoreRouters))]>hc}and{p≠-1 or!Subset(MTi.ptr_to_EdgeRouters,MBC_ptr.
Representative_MT.ptr_to_EdgeRouters)orE←(MTi.Num_of_Edges-Cardinality(MBC_ptr.EdgeRouterSet)>hEor>hLor[Cardinality(Diffset(MTi.ptr_to_CoreRouters,Unionset(MBC_ptr.CoreRouterSet,MBC_ptr.Representative_MT.ptr_to_CoreRouters)))+Cardinalty(Diffset(Unionset(MBC_ptr.CoreRouterSet,MBC_ptr.Representative_MT.ptr_to_CoreRouters),MTi.ptr_to_CoreRouters))]>hc}oldMBC_ptr←MBC_ptr;MBC_ptr.←MBC_ptr.next;end_whileif(MBC_ptr≠Null)if(p=-1)Insert(MBC_ptr,MBC_ptr.Representative_MT);MBC_ptr.Representative_MT←MTi;MBC_ptr.LinkSet←Unionset(MBC_ptr.LinkSet,MBC_ptr.Representative_MT.ptr_to_Links);MBC_ptr.CoreRouterSet←Unionset(MBC_ptr.CoreRouterSet,MBC_ptr.Representative_MT.ptr_to_CoreRouters);Remove(MBC_ptr);Addl(MBC_ptr);else /*p=1*/MBC_ptr.LinkSet←Unionset(MBC_ptr.LinksSet,MTi.ptr_to_Links);MBC_ptr.CoreRouterSet←Unionset(MBC_ptr.CoreRouterSet,MTi.ptr_to_CoreRouters);Insert(MBC_ptr,MTi);MBC_ptr.EdgeRouterSet←Intersectset(MBC_ptr.EdgeRouterSet,MTi.ptr_to_EdgeRouters;end_if/*if p=1)*/if(E>MBC_ptr.CurrentE) MBC_ptr.CurrentE←E;
return;end_ifp=p*(-1);j←j+1;end_whileend_forMBC_ptr←Create(MBC);MBC_ptr.Representative_MT←MTiMBC_ptr.CurrentE←0;MBC_ptr.EdgeRouterSet←MTi.ptr_to_EdgeRouters;MBC_ptr.LinkSet←φ;MBC_ptr.CoreRouterSet←φ;Addl(MBC_ptr);return;end_procedureRemove程序用于将MBC从它相应的列表中移开。
procedure Remove(MBC_ptr)if(MTi.MBC.prev=Null)if(MTi.MBC.next=Null)EdgeArray[MTi.Num_of_Edges]←Null;elseEdgeArray[MTi.Num_of_Edges]←MTi.MBC.next;MTi.MBC.next.prev←Null;end_ifelseif(MTi.MBC.next=Null)MTi.MBC.prev.next←Null;elseMTi.MBC.prev.next←MTi.MBC.next;MTi.MBC.next.prev←MTi.MBC.prev;end_ifend_ifend_procedure
下面给出的程序SCON_deletion用于将一个MT从它的MBC中删除。程序直接访问相应MBC的MT列表中的MT,若此MT不是该MBC的典型树,则将此MT从列表中删除。若此MT是典型树,则该MBC从系统的MBC列表中被终止。如果MBC包含任何MT,则这些MT是分别被修改后在系统中再次被容纳的。
procedure SCON_deletion(MTi)if (MTi.MBC.Representative_MT=MTi)if (MTi.MBC.ptr_to_MT≠Null)while(Mr_ptr≠Null)Modify(MT_ptr);MT_ptr←MT_ptr.next;end_whileend_ifif(MTi.MBC.prev=Null)if(MTi.MBC.next=Null)EdgeArray[MTi.Num_of_Edges]←Null;elseEdgeArray[MTi.Num_of_Edges]←MTi.MBC.next;MTi.MBC.next.prev←Null;end_ifelseif《MTi.MBC.next=Null)MTi.MBC.prey.next←Null;elseMTi.MBC.prey.next←MTi.MBC.next;MTi.MBC.next.prev←MTi.MBC.prev;end_ifend_ifelseif(MTi.prev=Null)if(MTi.next=Null)MTi.MBC.ptr_to_MT←Null)elseMTi.MBC.MT←MTi.next;MTi.next.prev←Null;end_if
elseif(MTi.next=Null)MTi.prev.next←Null;elseMTi.prev.next←MTi.next;MTi.next.prev←MTi.prev;end_ifend_ifend_ifend_procedureOCON程序对于OCON方案,通过观察阈值构成一个联合树。根据典型树的边界路由器数目的大小提供可直接访问的边界数列。对于SCON方案,所有过程都是类似的,但是,一个新的典型树(叫做联合树)的形成需要将该MT并入先前的典型树。此合并有两种方法可以实现,它们是Breadth-First-Merge(宽度优先合并)和Incremental-Merge(增量合并)。
procedure OCON_addition(MTi)p←1;for i←O to hEj←1 ;while (j=1 or (j=2 and i<hE-MBC_ptr.currentE))MBC_ptr←EdgeArray[MTi.Num of Edges+p*i];MT2←Breadth-First_Merge(MBC_ptr.Representative_MT,MTi);while (MBC_ptr≠Null andE←(MT2.Num of Edges-Cardinality(Intersectset(MBC_ptr.EdgeRouterSet,MTi.ptr_to_EdgeRouters))>hEor[Cardinality(Diffset(MT2.ptr_to_Links,Unionset(MBC_ptr.LinkSet,MTi.ptr_to_Links)))+Cardinality(Diffset(Unionset(MBC_ptr.LinkSet,MTi.ptr_to_Links),MT2.ptr_to_Links))]>hLor>hC)oldMBC_ptr←MBC_ptr;MBC_ptr.←MBC_ptr.next;end_whileif (MBc_ptr≠Null)Insert(MBC_ptr,MTi);MBC_Ptr.Representative_MT←MT2;MBC_Ptr.LinkSet←Unionset(MBC_ptr.LinksSet,MTi.ptr_to_Links);MBC_ptr.CoreRouterSet←Unionset(MBC_ptr.CoreRouterSet,MTi.ptr_to_CoreRouters);Remove(MBC_ptr);Addl(MBC_ptr);MBC_ptr.EdgeRouterSet←Intersectset(MBC_ptr.EdgeRouterSet,MTi.ptr_to_EdgeRouters;if (E>MBC_ptr.CurrentE)MBC_ptr.CurrentE←E;return;end_ifp=p*(-1);j←j+1;end_whileend_forMBC_ptr←Create(MBC);MBC_ptr.Representative_MT←MTiMBC_ptr.CurrentE←O;MBC.ptr.EdgeRouterSet←MTi.ptr_to_EdgeRouters;MBC_ptr.LinkSet←;MBC_ptr.CoreRouterSett←;Addl(MBC_ptr);return;end_procedure
程序Breadth-First-Merge假设两个树的邻接表都是可得的,此程序将MT1作为基树,然后加上第二位的树MT2的边界路由器,核心路由器和链路,这些与MT1的不同。
procedure Breadth-First-Merge(MT1,MT2)for each v which is edge or core router adjacent to MT2destination(root)edge router through link 1enqueue(Q,{v,1});while(Q≠Null){v,1)dequeue(Q);if v  edge or core router of MT1include {v,1}to MTl;for each y which is edge or core router adjacent to vthrough link kenqueue(Q,[y,k});end_whileend_procedure图12是Breadth-first-merge程序的一个例子1200。在图12中有两个树,基树MT1和第二位的树MT2。从第二位树的根E1开始,程序提供一条成对的队列,用Q表示,每个对都有一个边界/核心路由器和相应的链路。程序从Q中对数据项(v,1)解除队列,并检查v是否包含在基树中。若它不被包含,则通过链路将它连接到基树,与v邻接的边界/核心路由器排入队列Q中。下面给出队列逐步的状态。
Q(v,l)C6,L1不包括C6,L1Q(v,l)C2,L2;C5,L3;E8,L4不包括C2,L2Q(v,l)C5,L3;E8,L4;E2,L5不包括C5,L3Q(v,f)E8,L4;E2,L5;C4,L6;E6,L7包括E8,L4Q(v,l)E2,L5;C4,L6;E6,L7包括E2,L5Q(v,l)C4,L6;E6,L7包括C4,L6Q(v,l)E6,L7;E5,L8包括E6,L7Q(v,l)E5,L8包括E5,L8Q(V,l)φ
增量合并根据部件的数目选取最大的多点播送树作为主树,再以增量的方式将其它树的部件加到主树上。一个边界或核心路由器的上游链路表示从上述边界或核心路由器直到多点播送树根的链路。
Procedure Incremental-Merge(MT1,MT2)Tmax←Max(MT1,MT2);Tmin←Min(MT1,MT2);for each v which is a member edge router of Tmin and not containedby the edge routers of Tmax1←upsteam link of v in the tree Tmin;include(v,1)to Tmax;v←upsteam edge or core router in the tree Tmin;while(V  edge or core router of MT1)l←upsteam link of v in the tree Tmin;include(v,1) to Tmax;v←upsteam edge or core router in the tree Tmin;end-whileend-forend-procedure删除算法的工作方式和SCON方案的类似。典型树的移动导致了MBC具有的所有成员树的再组织。图13表示的是应用Breadth-First-Merge程序后,图12中的两个树合并后的结果1300。
单射函数可以用来决定哪个多点播送成组类该是新的多点播送树被加入,或从中删除,或是修改的。因此,代替不得不逐个地比较多点播送树的方法,每个多点播送树的单射函数值能用来比较决定多点播送树是否相同。对单值函数,f(A)中的A是个有序的组,被保存在一个数列中(例如,a[i]提供有序组中的第i个元素)。组中两个元素值的差最大为N。单射函数定义如下
这里p1,是基数,且pi+1-p1>N,i=1,2,…,|A|。
任何线性或非线性函数都能作非单射函数,例如
这里g1(a[i])是a[i]的一个函数(例如,gi(a[i])=a[i]2)。
虽然在此细致地描述了本发明,但本领域的普通技术人员应该理解,在不超出如后附的权利要求书所确定的本发明的范围及精神实质的情况下,对本发明可以在形式和细节方面作出多种变动。
权利要求
1.一种通过光成组交换网交换多点播送数据包的方法,包含的步骤如下根据多点播送分组类将多点播送数据包集合成一个多点播送组;通过所说的光成组交换网络传送所说的多点播送组;将所说的多点播送组分解成所说的多点播送数据包。
2.权利要求1所述方法,其中所说的多点播送分组类包含多个多点播送树,它们共用相同的电子入口边界理路由器,DWDM链路,光核心路由器和电子出口边界路由器。
3.权利要求1所述方法,其中所说的多点播送分组类包含多个多点播送树,它们共用相同的电子入口边界路由器和电子出口边界路由器。
4.权利要求1所述方法,其中所说的多点播送分组类包含多个多点播送树,其中至少有一个所说的多点播送树是超级树,它覆盖了被所有所说的多点播送树联合覆盖的所说的电子入口边界路由器和所有所说的电子出口边界路由器。
5.权利要求4所述方法,其中所说的多点播送树可以不共用相同的DWDM链路,光核心路由器,或是电子出口边界路由器。
6.权利要求5所述方法,其中所说的超级树和每个所说的多点播送树在所说的电子出口边界路由器,DWDM链路,或是光核心路由器的数目上的差异小于预定的阈值。
7.权利要求5所述方法,其中分类效率比率CERj=Σk=1RjDjkSjkSSjΣk=1RjDjk≥hR]]>用来保证多点播送数据包在所说的光成组交换网中的所有传递效率,这里MBCj是第j个多点播送分组类;Djk是同一MBCj中第k个多点播送组的多点播送通信容量;Sjk是树Tjk的耗费;Sjs是超级树的耗费;Rj是多点播送树的数目。
8.权利要求1所述方法,其中第四多点播送分组类包含与多点播送联合树相关的一组所说的多个多点播送数据包,所说的多点播送联合树覆盖了被所有所说的多个多点播送树联合覆盖的所有所说的电子出口边界路由器。
9.权利要求8所述方法,其中所说的多个多点播送树可以不共用所有相同的DWDM链路,光核心路由器,或是电子出口边界路由器。
10.权利要求9所述方法,其中所说的联合树和每一个所说的多点播送树在所说的电子出口边界路由器,DWDM链路,或是光核心路由器的数目上的差异比预定的阈值小。
11.权利要求1所述方法,还包括将一个新的多点播送树加入到所说的多个点播送分组类之一,操作包括对所说的多个已存在的多点播送分组类中的一类进行查找;判断新的多点播送树是否符合所说的已有的多点播送分组类的定义;若所说的新多点播送树符合所说的已有多点播送分组类的定义,将所说的新多点播送树加入到所说的已存在的多点播送分组类中;否则,建立一个新的多点播送分组类,将所说的新的多点播送树加入到所说的新的多点播送分组类中。
12.权利要求1所述方法,还包括从所说的多个多点播送分组类之一中删除一个多点播送树,操作包括查到包含所说的需要删除的多点播送树的已存在的多点播送分组类;从所说的已存在的多点播送分组类中删除所说的多点播送树;若删除了所说的多点播送树后,所说的存在的多点播送分组类空了,将所说的已存在的多点播送分组类移去。
13.权利要求1所述方法,还包括对已存在的多点播送分组类的修改,这是因为在所说的多个多点播送分组类中已存在的多点播送树的改变,操作包括查找所说的存在的多点播送树,因为它已经被改变,从而不再符合所说的已存在的多点播送分组类的定义;从所说的存在的多点播送分组类中删除所说的多点播送树;查找一个新的存在的多点播送分组类,以加入所说的改变了的多点播送树;将所说的改变后的多点播送树加入到新的已存在的多点播送分组类;若没有发现新的已存在的多点播送分组以加入所说的改变了的多点播送树,则建立一个新的多点播送分组类;将所说的改变了的多点播送树加入到新建立的多点播送分组类。
14.权利要求1所述方法,其中所说的多点播送分组类是ETON,所说的ETON具有的数据结构包含一个链接阵列,一个边界阵列,一个MBC列表(包含多个MBC)和一个MT列表(包含器多个MT),其中所说的链接阵列对于任何在它们的树中具有相同链路数目的MBC,是一个指针数组,指向相应的边界阵列,其中所说的MBC列表包括一个属于所说的MBC列表的MT的列表。
15.权利要求1所述方法,其中所说的多点播送分组类是ECON,SCON和OCON,所说的ECON,SCON和OCON具有的数据结构包含一个边界阵列,一个MBC列表(包含多个MBC)和一个MT列表,其中所说的边界阵列指向任何在它们的典型树里具有相同数目边界路由器的MBC。
16.权利要求1所述方法,其中每个多点播送分组类的数据结构包括一个指针一个属于所说的MBC的所有MT的链表。
17.权利要求1所述方法,其中该多点播送分组类的数据结构包括一组指针,一个边界路由器列表,一个核心路由器,一组链路,一个链路设置值,一个边界设置值和一个核心设置值,其中所说的指针指向所说的它所用到的边界路由器,核心路由器和链路的列表,而且,所说的LinkSet,Edge Set和Core Set值用来收缩对MT的查找。
18.一个通过光成组交换网交换多个多点播送数据包的系统,包括一个电子入口边界路由器,可用来将所说的多个多点播送数据包集合成一个多点播送组(根据多点播送分组类),并将所说的多点播送组传送到所说的光成组交换网络;一个电子出口边界路由器,可用来从所说的光成组交换网络接收所说的多点播送组,并将所说的多点播送组分解成所说的多点播送数据包。
19.权利要求18所述系统,其中所说的多点播送分组类包括多个共用了相同电子入口边界路由器,DWDM链路,光核心路由器和电子出口边界路由器的多点播送树。
20.权利要求18所述系统,其中所说的多点播送分组类包括多个共用了相同电子入口边界路由器和电子出口边界路由器的多点播送树。
21.权利要求18所述系统,其中所说的多点播送分组类包括多个多点播送树,所说的多点播送树中至少有一个是超级树,它覆盖了被所有所说的多点播送树联合分享的所有所说的电子入口边界路由器和所说的电子出口边界路由器。
22.权利要求21所述系统,其中所说的多个多点播送树可以不共用DWDM链路,光核心路由器,或是所说的电子出口边界路由器。
23.权利要求22所述系统,其中所说的超级树和所说的每个多点播送树之间在所说的电子出口边界路由器,DWDM链路,和光核心路由器的数目上的差异比预定的阈值小。
24.权利要求18所述系统,其中所说的多点播送分组类包括一个多点播送联合树,所说的多点播送联合树覆盖了被所有所说的多个多点播送树联合覆盖的所有所说的电子出口边界路由器。
25.权利要求24所述系统,其中所说的多个多点播送树可以不共用DWDM链路,光核心路由器,或是所说的电子出口边界路由器。
26.权利要求25所述系统,其中所说的联合树和每个所说的多点播送树之间在所说的电子出口边界路由器,DWDM链路,和光核心路由器的数目上的差异小于一个预定的阈值。
27.一个将一个新的多点播送树并入一个已存在的多点播送树,以建立联合树的方法,包含如下步骤提供一条边界/核心路由器和相应链路对的队列;从队列中释放一个数据项,包括边界/核心路由器和链路对;检查所说的释放的数据项中的边界或核心路由器是否被包含在所说的已存在多点播送树中;如果所说的释放的数据项中的所说的边界或核心路由器不被包括在所说的存在多点播送树中,则将所说的边界或核心路由器通过它相应的链路连接到已存在的多点播送树;将与所说的边界或核心路由器邻接的边界/核心路由器加入到所说的队列。
28.权利要求27所述方法,其中所说的边界/核心路由器和相应的链路对的队列,从所说的新的多点播送树的根边界路由器开始。
29.一个将一个新的多点播送树并入一个已存在的多点播送树以建立联合树的方法,包含如下步骤根据边界/核心路由器和它的相应的链路的数目,找到最大的已存在的多点播送树;以微量递增的方法,将新的边界/核心路由器和它的相应的链路加到所说的已存在的多点播送树中。
全文摘要
一个系统和方法,用于将多点播送数据包根据多点播送分组类集合成一个多点播送组,并通过光成组交换网络交换该多点播送组。基于本发明,要通过光成组交换网交换多点播送数据包,需先将多点播送数据包在电子入口边界路由器处根据多个多点播送分组类集合成一个多点播送组。然后,多点播送组通过光成组交换网交换到指定的电子出口边界路由器,分解回多点播送数据包并被传送到多个目的地。
文档编号H04L12/56GK1305283SQ0013473
公开日2001年7月25日 申请日期2000年9月8日 优先权日1999年9月10日
发明者哈基·C·坎卡亚, 一军·熊, 马克·L·J·万登护特 申请人:阿尔卡塔尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1