首页 / 专利库 / 物理 / 波长 / 波长选择

波长选择

阅读:789发布:2020-05-11

专利汇可以提供波长选择专利检索,专利查询,专利分析的服务。并且本 发明 提供了 波长 选择。公开了一种选择沿着光学网络中的路径传输光学数据的过程中使用的波长的方法。以前公知的选择波长的方法并没有考虑波长选择决定将会如何影响以后沿着具有一条或多条与正在为其进行波长选择的路径共有的链路的路径进行的连接尝试。因此,以后的连接尝试可能受到阻碍,因为沿着所要建立的整个路径没有端到端可用的波长。在所提出的方法中,找出可用于沿着路径端到端使用的波长、找出与路径上的各个 节点 连接在一起的各条链路上可用的波长并且选择端到端可用的且在与路径上的节点连接在一起的链路上比其它波长更加可用的波长。,下面是波长选择专利的具体信息内容。

1.一种选择在沿着光学网络中的路径传输光学数据的过程中使用的波长的方法,所述光学网络包括多个由光纤链路相互连接起来的节点,所述方法包括:找出可用于沿着所述路径端到端使用的波长;找出在与所述路径上的各个节点连接在一起的各条链路上可用的波长;选择端到端可用的并且在与所述路径上的节点连接在一起的链路上比其它波长更加可用的波长。
2.根据权利要求1所述的方法,所述方法还包括使用最短路径优先算法而选择所述路径的再先步骤。
3.根据权利要求2所述的方法,其中在所述算法中使用的衡量标准与链路上的波长使用情况有关。
4.根据权利要求2到3中任何一项所述的方法,其中所述路径的选择过程包括一次延长所述路径一个链路。
5.根据权利要求4所述的方法,所述方法还包括在用所提议的链路延长所述路径之前对包含所述所提议的链路的路径进行端到端可行性检查。
6.根据权利要求5所述的方法,其中所述可行性检查基于所述路径的光学特性。
7.根据权利要求6所述的方法,其中所述可行性检查确定包含所提议的链路的路径的端到端光学损耗是否是可接受的。
8.一种数字数据载体,所述数字数据载体携带着可由处理设备执行的、用来进行权利要求1到7中任何一项所述的方法步骤的指令程序。
9.一种光学网络中使用的节点,所述光学网络包括多个由光纤链路相互连接起来的节点,所述节点包括:找出用构件,用于:找出可用于沿着所述路径端到端使用的波长;找出在与所述路径上的各个节点连接在一起的各条链路上可用的波长;选择构件,用于选择端到端可用的并且在与所述路径上的节点连接在一起的链路上比其它波长更加可用的波长。
10.一种光学网络中使用的节点,所述光学网络包括多个由光纤链路相互连接起来的节点,所述节点包括:存储介质,在该存储介质中记录有处理器可读的代码,该代码可执行用以选择在沿着所述光学网络中的路径传输光学数据的过程中使用的波长的处理,所述代码包括:波长找出用代码,可执行用以:找出可用于沿着所述路径端到端使用的波长;找出在与所述路径上的各个节点连接在一起的各条链路上可用的波长;波长选择代码,可执行用以:选择端到端可用的并且在与所述路径上的节点连接在一起的链路上比其它波长更加可用的波长。
11.根据权利要求9或10所述的节点,其中所述节点包括所述路径上的节点。
12.根据权利要求11所述的节点,其中所述节点包括所述路径的入口节点。
13.一种包括多个由光纤链路相互连接起来的节点的光学网络,其中所述节点中的一个或多个包括根据权利要求9到12中任何一项所述的节点。

说明书全文

波长选择

技术领域

发明涉及一种选择沿着光学网络中的路径传输光学数据的过程中使用的波长的方法。

背景技术

在光学网络中,数据是通过将网络节点(通常称为路由器或交换机)互相连接起来的光纤加以传输的。在数据穿过网络时,它将会穿过一个或更多个网络节点。在各个网络节点上,在输入端口上接收到数据、从光学信号转换到电信号、在电领域中进行处理、从电信号转换到光学信号并且在相关的输出端口上传送出去。这一从光学信号到电信号和再次回到光学信号的转换称为光电光(OEO)转换。
在每个节点上都进行OEO转换有两个主要的结果。首先,OEO转换在每个节点上重新整形、重新定时和重新发送光学信号,这意味着,可以独立地考虑端到端路径中的各个链路,并且一条链路上的任何故障或损伤不会对后续链路造成连影响。其次,OEO转换使得节点能够接收给定波长上的光学信号并且在不同波长上对其进行重新传送,即,节点能够进行波长转换。不过,OEO转换实现起来比较昂贵并且因为将数据从输入端口切换到输出端口的最大速度取决于各个网络节点中的基础电子装置能够进行多快的操作,所以成为了网络中的瓶颈
在全光学网络中,数据也是通过将网络节点相互连接起来的光纤来进行传送的。不过,在各个网络节点上,数据是在输入端口上接收、在光学域中切换并且在相关输出端口上发出的,没有进行任何OEO转换。全光学网络连接节点(较经常称为光学交叉连接单元(OXC))中缺少OEO转换的结果是网络连接节点的成本降低。在全光学网络中,通常通过利用波分复用(WDM)来在各个光纤上同时使用数个不同的波长。
在全光学节点中缺少OEO转换意味着节点不再能够进行波长转换,所以沿着整个端到端路径需要使用相同的波长。这称作波长连续性限制,并且会造成尽管网络拥有空闲容量(即,不用于传输数据的波长),但在端到端路径的所有链路上没有一个可用的公共波长,因而端到端路径不可用的情况。
当前选择在传输数据的过程中使用的波长的方法包括考虑所有可用在实际构成路径的各条链路上的波长并且选择一个端到端可用的波长。在一种这样的方法中,对链路上的所有波长按顺序编号,并且选择端到端可用的编号最小的波长。与这些方法相关联的缺点是,它们没有考虑波长选择决定将会如何影响以后沿着具有与正在为其选择波长的路径共有的一条或多条链路的路径进行的连接尝试。结果,以后的连接尝试可能受到阻碍,因为沿着要建立的整个路径没有端到端可用的波长。
最佳的(但是难以处理的)波长选择方法在做出波长选择决定时会考虑哪些波长在整个网络中可用。这样的方法应该能够考虑到波长选择决定将会如何影响以后使用网络中的任何链路进行的连接尝试。

发明内容

根据本发明的第一个方面,给出了一种选择在沿着光学网络中的路径传输光学数据的过程中使用的波长的方法,所述光学网络包括多个由光纤链路相互连接起来的节点,所述方法包括:找出可用于沿着所述路径端到端使用的波长;找出在与所述路径上的各个节点连接在一起的各条链路上可用的波长;选择端到端可用的并且在与所述路径上的节点连接在一起的链路上比其它波长更加可用的波长。
通过找出可用于沿着所选路径端到端使用的波长和通过找出在与所选路径上的各个节点连接在一起的各条链路上可用的波长以及通过选择端到端可用的并且在与所选路径上的节点连接在一起的链路上比其它波长更加可用的波长,做出了关于选用哪个波长的更好决定,并且提高了路径建立尝试的成功率。
本发明给出了一种方法,该方法能够考虑波长选择决定将会如何影响以后沿着具有一条或更多条与正在为其进行波长选择的路径共有的链路的路径进行的路径建立尝试。这样,前面介绍的路径建立尝试受到阻碍的情形将会得到缓解,并且对于等同数量的尝试,将会有更加成功的路径建立。选择在正与正为其选择波长的路径上的节点连接在一起的链路上广泛可用的波长比选择不广泛可用的波长更加不可能导致对后续的路径建立尝试的阻拦。结果,对于给定数量的配置好的波长和光纤,能够建立更多的端到端路径,这能够实现更高的可用网络容量的利用率。
权利要求中定义了本发明的其它方面。
附图说明
现在将参照附图、仅仅作为示例介绍本发明的实施例,其中相同的附图标记指代相同的部分,并且其中:图1示出了光学网络;图2是详细列出构成图1的光学网络的节点和链路的各种特性的表格;图3到图8表示图1的光学网络的不同构成;图9和10是介绍路径选择算法中的步骤的流程图;图11到13是介绍波长选择算法中的步骤的流程图。

具体实施方式

图1示出了包括六个光学网络节点(A、B、C、D、E和F)的全光学网络,所述光学网络节点更经常称为光学交叉连接单元或OXC。当前可得到的适用的OXC是可从美国弗吉尼亚州雷斯顿地区的λOpticalSystems公司得到的λNODE。数据是以特定的波长通过将OXC互相连接起来的光纤链路加以传输的。将光纤链路的各个方向都看作是独立的、单向的链路。在各个OXC上,数据是在输入端口上接收、在光学域中切换并且在相关输出端口上传送出去的,没有进行任何光电光转换。利用波分复用(WDM)可以在各条光纤链路上同时使用数个不同的波长。每条光纤链路能够支持的波长的数量取决于所配置的网络的确切性质并且应该是在网络设计阶段决定的(例如,网络的配置者想要付多少钱、需要多少带宽等)。本领域技术人员都知道光学网络能够每光纤链路支持多达160个波长;不过,在图1的网络中,各条光纤链路在各个方向上最多能够支持5个波长。要注意的很重要的一点是,并不是每条光纤链路(并且也并非单独一条光纤链路的各个方向)都必须支持相同数量的波长;图2中的表格示出了可在图1的网络的各条光纤链路上使用的波长的数量。例如,在将OXC A与OXC B连接起来的光纤链路AB上有5个波长可用,在将OXC C与OXC E连接起来的光纤链路CE上有3个波长可用,而在将OXC B与OXC E连接起来的光纤链路BE上没有波长可用。小于5个波长这一最大值的可用度可能是由技术局限(即,某一链路仅能够支持例如3个波长)造成的或者是由使用(即,某一链路能够支持多达5个波长,但是有3个波长已经在使用,因此只有2个波长可用)造成的。此外,图2还包括各条光纤链路对应的波长向量(WAVELENGTHS),其中1代表波长可用,而0代表波长不可用。用0到4为这些波长标号,其中波长0是所述向量中的第一个波长(向量中最左边一位),波长4是该向量中的最后一个波长(向量中最右边一位)。这些编号直接映射到实际波长值(例如波长0映射到1510nm的波长)。在前面提到的例子中,波长0到4在链路AB上可用(由向量{11111}表示),波长0、3和4在链路CE上可用(由向量{10011}表示)并且没有波长在链路BE上可用(由向量{00000}表示)。
图1的网络在正常情况下还包括网络管理系统(NMS)或操作支持系统(OSS)。NMS/OSS用于执行各种不同的任务,这些任务典型地包括但是不局限于:配置管理,用来监控网络和系统配置并且可能按照要求对装置进行重新配置;故障管理,用来检测、记录和通知用户网络问题和/或故障并且有可能修复网络问题和/或故障;性能管理和结算,用来对照着所签定的服务等级协议衡量网络性能、调整带宽/用量配额和产生计费信息。
图3和图4示出了与图1的光学网络连在一起的NMS/OSS。NMS/OSS通常是经由带外(OOB)网络连在一起的,带外网络可能包含额外的物理网络,该额外的物理网络包括将NMS/OSS一个个地与网络中的各个OXC连接起来的管理/控制链路,如图3所示。另外,可以为管理/控制数据通信保留将OXC相互连接起来的各条光纤链路上的波长,如图4所示。在这种情况下,仍然需要将NMS/OSS与网络连接并且这可以经由专用链路(例如,NMS/OSS到OXC F的链路)或经由光纤链路(例如,NMS/OSS到OCX D的链路)上的专用波长来完成。通常,出于适应能(resiliency)的考虑,NMS/OSS将在多于一个的点处连接到网络。
为了在光学网络中的两个OXC之间建立连接,必须选择一条穿过该网络的路径并且必须为该路径分配一个波长。例如,在图1的网络中,在建立OXC A和OXC F之间的连接的过程中,有10种可能的路径(ABCF、ABEF、ABECF、ABCEF、ADEF、ADECF、ADEBCF、AEF、AECF和AEBCF)和5个可能的波长。必须选择这些路径之一和这些波长之一。路径选择是用路径选择算法实现的,波长选择是用波长选择算法实现的。稍后将给出本实施例中使用的路径选择算法和波长选择算法的确切细节。
在图3和图4的例子中,路径上的第一个节点(连接的入口节点)将运行路径选择算法和波长选择算法,因此计算所要使用的路径(和波长),并且将随后使用适当的信令协议沿着该路径传达这一信息。例如,如果请求的是OXC A和F之间的连接,则OXC A会运行这些算法(因此选择路径和波长)并且随后沿着路径传达这一信息。实际使用的信令协议取决于诸如网络连接技术、个人偏好之类的因素。本领域技术人员在提供和实现适当的信令协议方面不会有困难。因为连接有可能从网络中的任何节点开始(即,任何节点都可能是入口节点),所以网络中的所有OXC都具有路径计算功能,并且因此这些算法可以在网络中的任何一个OXC上运行。不需要除了OXC中已经存在的硬件以外的额外硬件。OXC仅仅需要知道在各条光纤上正在使用哪些波长,并且这一信息是可以导出的,因为该系统知道在启动阶段配置了多少波长并且从启动开始对哪些波长进行过分配。
在另外一种可选的实施例中,可以在路径计算服务器(PCS)上运行所述算法(并且因此进行路径和波长选择)。参照图5和图6,当请求OXC A与F之间的连接时,OXC A将会向PCS请求路径(和波长),PCS将会向节点A返回优选路径和波长,并且节点A将会象前面介绍的那样用合适的信令协议通知并且建立连接。PCS可以是与网络连在一起的只进行路径计算的专用服务器(如图6中所示),或者按照另外一种可选方案,可以将路径计算功能加到网络中现有的OXC中(如在图5中所示的OXC A和F中)。出于诸如适应能力、可扩缩性等原因,给定网络可以具有不止一个PCS。
在其它一些实施方式中,算法(并且因此路径和波长选择)可以如前面介绍的那样在PCS上运行,但是PCS可以与NMS/OSS相连(如图7所示)或者可以将它集成到NMS/OSS中(如图8所示)。在这两种情况下,NMS/OSS从PCS中请求路径/连接,PCS向NMS/OSS返回路径/连接。然后NMS/OSS直接配置所选路径上的OXC。出于诸如适应能力、可扩缩性等原因,给定网络可以具有不止一个PCS。
如前面所提到的,对于给定的通信,数据是通过图1的光学网络以特定的波长在将OXC相互连接起来的光纤链路上进行传输的。在各个OXC上,数据是在输入端口接收、在光学域中切换并且在相关输出端口发送出去的。跨越各个OXC有光学损耗,这一光学损耗是与在OXC内对给定波长的光进行切换相关联的损耗。由于在OXC内不进行光电光转换,因此贯穿整个端到端路径,需要使相同的波长。由于沿着路径长度的恶化是路径上的一个OXC或任何一条链路上的故障/损伤的影响的累积结果,因此检查贯穿整个路径的端到端光学损耗使得能够做出路径是否可用的判断。
为了确定贯穿路径的端到端光学损耗是否是可接受的并且因此路径是否是可用的,可以进行端到端可行性检查(viability check)。可行性检查使用端到端路径的物理特性;更加具体地,它将构成路径的各个OXC和光纤链路的物理特性结合起来。
在建立所选择的路径的时候(使用下面将要介绍的路径选择算法或者任何其它可供选用的路径选择算法),如果等于路径P加上链路L的路径Q(即,如果P=XYZ,则Q=XYZL)基于该路径的物理(光学)特性通过了端到端可行性测试,则可以将链路L包含在路径P中(因此将端到端路径延长到包含链路L)。如果Q通过了端到端可行性检查,则路径Q光学上可行并且链路L可用于延长路径P。本实施例中使用的端到端可行性衡量标准是:其中:光纤衰减=与网络中使用的光纤链路相关联的衰减(以dB/km为单位)。(值得注意的是,在实践中,这在光纤链路与光纤链路之间变化,但是在本实施例中,假设链路与链路之间没有变化。)在优选实施例中,对单个的光纤衰减进行求和。
最大路径长度=网络中的光学器材能够支持的最大路径长度(以km为单位)。这通常是由光学器材的制造商设定的限度,并且在本实施例中,假设网络中的所有器材都来自同一厂家或者具有相同的最大长度限度。
路径长度=路径的总长度,等于 链路长度i,其中链路长度i是沿着路径的链路i的长度(以km为单位)。
总OXC损耗=由沿着路径的光学交叉连接造成的总光学损耗,等于OXC损耗k,其中OXC损耗k是沿着路径跨越OXC k的光学损耗(以dB为单位)。(数值可以通过对网络进行测量/监测获得。)总PMD=跨越路径的端到端偏振模式色散(PMD)(以ps为单位)的总量,即, ,其中PMDn是跨越路径中第n个链路的PMD。(PMD是发生在支持两种靠它们的偏振区分开来进行传播的模式的光纤中的电磁传播现象。由于光纤中的光学双折射,这两种模式以不同的速度传播,并且这一双折射沿着光纤长度的随机变化会造成这两种模式之间的随机耦合。结果造成的PMD导致脉冲变形和系统损伤,这些都会限制光纤的传输能力。数值可以通过网络的测量/监测获得。)如果M>0,则路径(Q或等价的P+L)通过端到端可行性测试并且认为该路径是光学上可行的并能够支持光学跟踪(optical trail)。
如果M≤0,则路径(Q或等价的P+L)未通过测试,并且在光学上是不可行的并不能够支持光学跟踪。
值得注意的是,对于给定网络,端到端可行性检查的确切细节(即,所使用的确切公式)取决于多种因素,包括(但不局限于):在网络中配置了什么光学器材以及网络操作员希望在多大的误差容限内进行操作。例如,网络操作员可以决定仅仅接受他们确知可行的路径。另外,网络操作员可能不太挑剔并且愿意接受是‘边界线’的路径,因为他们可能觉得通过能够使这些边界线连接中的一部分进行工作而增加的收益超过了处理故障的边界线连接的额外费用
端到端可行性检查可以按照下述方式来实现:令P为存储当前优选路径(是可行路径)的变量;令P.TotalPMD为存储路径P的总PMD的变量(其中总PMD=PMD12+PMD22+PMD32+…+PMDn2);]]>(显然,这个针对总PMD的公式稍稍不同于前面给出的公式,因为没有平方根。直到求得路径中各条链路上的PMD的平方和之前,不能计算平方根。由于这个和不断改变(随着新的链路加入到路径中),因此直到在计算出可行性衡量指标之前,是不能计算平方根的。因此,稍后将介绍可行性衡量指标M中的包含总PMD的项的差异。)令P.TotalLength为存储路径P的长度(即,前面的路径长度)(以km为单位)总和的变量;令P.TotalOXCLoss为存储由沿着路径的光学交叉连接造成的总光学损耗(即,前面的总OXC损耗)的变量;令Q为存储临时路径的变量(Q还包含变量Q.TotalPMD、Q.TotalLength和Q.TotalOXCLoss,这些变量的定义与前面针对P的定义类似);令L为存储当前优选链路的变量,如果没有找到更好的候选路径,则路径选择算法会将这个优选链路用作所选择路径中的下一个链路;令L.PMD为存储跨越链路L的PMD的变量;令L.Length为链路L的长度(以km为单位)(更加具体地讲,是用于构成链路L的光纤的以公里为单位的长度);令L.OXCLoss为跨越与链路L相关联的OXC的光学损耗(本实施例将跨越下游OXC的光学损耗与给定链路关联起来,例如,如果链路L存在于节点A和B之间,则与L相关联的OXCLoss是跨越OXC B的损耗)。
令MaxPathLength为常数,该常数保存着网络中的光学器材能够支持的最大路径长度(以km为单位),即前面的最大路径长度;并且令FibreAttenuation为常数,该常数保存着与网络中使用的光纤相关联的衰减(即,前面的光纤衰减)。
在第一次运行该路径选择算法时,所有的变量都从零值开始(P从作为未占用/空白路径开始)并且常数MaxPathLength和FibreAttentuation存储着它们各自的配置值。该路径选择算法将选择链路L,推荐用作路径P中的第一条链路。进行端到端可行性检查并且按照下列方式进行计算(并存储):Q.TotalPMD=P.TotalPMD+(L.PMD*L.PMD)Q.TotalLength=P.TotalLength+L.LengthQ.TotalOXCLoss=P.TotalOXCLoss+LOXCLossM=2-10*log10((FibreAttenuation*Q.TotalLength)+Q.TotalOXCLossFibreAttenuation*MaxpathLength)-e(In2*Q.TotalPMD10)]]>如果(M>0),则令P=Q(即,用链路L延长路径P)。然后该路径选择算法继续进行,以选择路径中的下一条链路(更加具体地讲,由路径选择算法选择优选路径),并且重复前面对路径P+L进行的端到端可行性检查。
如果(M≤0),则令P=P(即,不用链路L延长路径P,并且取而代之,按照路径选择算法的第二种链路选择/推荐重复进行可行性检查,如果没有链路通过可行性检查,则没有光学上可行的端到端路径可用(因此连接尝试失败))。
通过进行端到端可行性检查,可以确定所选择的路径是否可用,并且如果不可用则选择可用的不同路径。这要比假设所有路径都可用、然后在选择了路径之后发现所选择的路径不可用(会增加网络的操作成本并且还可能在自动准备处理中牵涉到人工干预)要好。
现在将更加详细地介绍路径选择算法。下面列出的变量是在路径选择算法的介绍以及图9到10中的相关流程图中使用的。
NODEID[1]—保存网络中第1个节点的NODEID。假设网络中的所有节点都任意分配了连续编号,以便简化对网络中所有节点进行的重读。NODEID[1]在节点的任意编号与其实际NODEID之间进行映射。
PATHSTART一设置给路径上的第一个节点的NODEID,即,连接的入口节点。
PATHEND—设置给路径上的最后一个节点的NODEID,即,连接的出口节点。
S—保存已经由本算法检查过的节点的NODEID的集合。
TOTALNUMNODES—保存网络中节点的总数。
C[NODEID]—保存节点PATHSTART和节点NODEID之间的路径的代价(cost)。
PATH[NODEID]—保存节点PATHSTART与节点NODEID之间的最短路径。该最短路径是代价最低的路径。
INTERFACES[NODEID]—保存与节点NODEID连在一起的链路的数量。
REMOTENODEID[NODEID][INTFACE]—保存与节点NODEID连在一起的链路INTFACE的另一端上的节点的NODEID。
REMOTENODE—保存与当前正在由所述算法进行检查的节点NODEID连在一起的链路INTFACE的另一端上的节点的NODEID。
LINKCOST[NODEID][INTFACE]—保存与节点NODEID连在一起的链路INTFACE的代价。
本路径选择算法基于公知的Dijkstra最短路径算法(Dijkstra ShortestPath Algorithm)(Dijkstra,E.W.的《A note on two problems in connectionwith graphs》,Numerische Mathematik,第1卷,第269-271页,1959年),将这一公知算法改造成基于链路的物理特性计算各条链路的代价。在优选实施例中,链路i的代价LinkCosti=WavelengthsAvailablei-1,其中WavelengthAvailablei是链路i上可用的波长的数量。
参照图9,在步骤901中,将集合S初始化为空集合(即,{}),并且对数组C[NODEID]进行这样的初始化:使到所有节点的路径的代价都为∞。本算法由路径中的第一个节点(即,PATHSTART)开始并且用变量CURNODEID记住正在检查的节点。本算法将PATH[CURNODEID]设置为{PATHSTART}并且将C[CURNODEID]设置为0(步骤901)。
本算法用变量CURINTFACE记住正在检查的链路。为了检查与CURNODEID连在一起的第一个链路,本算法然后将CURINTFACE设置为1并且将CURNODEID添加到集合S中(步骤903)。然后计算当前正在检查的链路CURINTFACE的另一端上的节点的NODEID(步骤905)。
在优选实施例中,现在进行前面介绍的可行性检查(步骤906)。不过要注意,可以运行本路径选择算法而不用进行可行性检查,在这种情况下,应该跳过步骤906并且从步骤907开始进行处理,后面将会对步骤907进行介绍。如果包括当前正在检查的链路的路径不可行(即,它未通过可行性检查),则本算法继续进行,将CURINTFACE递增1(步骤911)、检查是否已经检验了与CURNODEID连在一起的所有链路(步骤913)并且如果还有链路需要检验,则重复步骤905和906。另一方面,如果包括当前正在检验的链路的路径可行(即,它通过了可行性检查),则本算法从步骤907开始继续进行。
在步骤907中,进行这样的测试:检查当前正在检验的节点的代价(C[CURNODEID])与当前正在检验的链路的代价(LINKCOST[CURNODEID][CURINTFACE])的总和是否小于到该链路的另一端相连的远程节点的当前代价(C[REMOTENODEID])。如果测试结果是肯定的,则在步骤909中,本算法将到远程节点的代价设置为到当前节点的代价加上当前链路的代价的总和(即,C[REMOTENODE]=C[CURNODEID]+LINKCOST[CURNODEID][CURINTFACE])并且它将到远程节点的最短路径设置为到当前节点的路径加上远程节点(即,PATH[REMOTENODE]=PATH[CURNODEID]+{REMOTENODE})。然后本算法继续进行,将CURINTFACE递增1(步骤911)、检查是否已经检验了与CURNODEID连在一起的所有链路(步骤913)并且如果还有更多的链路需要检验,则重复进行步骤905到911。如果步骤907中的测试的结果总是否定的,则变量C[REMOTENODE]和PATH[REMOTENODE]不需要进行更新,因为它们已经保存了到正在检验的远程节点的最低代价和最短路径。在这种情况下,本算法跳转到步骤911并且如前面介绍的那样继续进行。
当已经检验了与当前节点连接在一起的所有链路时,即,步骤913中的测试的结果是否定的,本算法进而搜索网络中的所有其它节点,以决定接下来检验哪个节点。由本算法接下来检验的节点是还没有检验过的代价最低的节点,即,还没有包含在集合S中的具有最低C[]值的节点。下面将参照图10介绍这一处理过程。
在这一对所有其它网络节点进行的迭代搜索中,使用三个临时变量:CURNODE(记住当前正在审查的节点)、CHEAPESTNODE(记住当前认为具有最低代价的节点)和COSTOFCHEAPNODE(记住到CHEAPESTNODE的代价)。在步骤915中,初始化这三个变量。
在步骤917中进行测试来检查:(1)当前节点是否还没有进行过检验,即,节点CURNODE是否是集合S的一项;和(2)当前节点是否具有最低代价,即,到CURNODE的代价是否小于COSTOFCHEAPNODE。如果这两个条件都得到满足,则当前正在检验的节点成为具有最低代价的节点,即,将CHEAPESTNODE设置为CURNODE,并且将COSTOFCHEAPNODE设置为C[NODEID[CURNODE]](步骤919)。然后本算法继续进行,将CURNODE递增1(步骤921)、检查是否审查了所有的节点(步骤923)并且如果还有更多的节点需要审查,则重复步骤917到921。如果所述测试中的条件之一得不到满足,即,如果已经检验过了当前节点(是集合S中的一项),或者如果与其相关的代价不小于COSTOFCHEAPNODE,则变量CHEAPESTNODE和COSTOFCHEAPNODE不需要进行更新。在这种情况下,本算法跳转到步骤921并且按照前面介绍的那样继续进行。
当为了确定接下来要检验哪个节点而审查了网络中的所有节点的时候,即,步骤923中的测试的结果是否定的,则本算法检查CHEAPESTNODE变量的值(步骤925)。如果CHEAPESTNODE变量的值不是∞,则迭代搜索已经得到了接下来要检验的节点。将变量CURNODEID设置为最便宜的节点(步骤927)(即,CURNODEID=NODEID[CHEAPESTNODE]),并且重复进行步骤903到925。
不过,如果值为∞,则本算法没有在网络中找到了满足步骤917中的测试条件的任何节点,即,已经检验了网络中的所有节点。在这种情况下,路径选择算法结束,因为它已经计算出了从节点PATHSTART到网络中的每一个其它节点的最短路径。当路径选择算法完成时,将所选择的路径保存在PATH[PATHEND]并且将这个所选路径的代价保存在C[PATHEND]中。
当在图1的网络中运行本路径选择算法时,并且假设所要选择的路径开始于节点A并且结束于节点F(即,PATHSTART=A并且PATHEND=F),则应该按照下列方式建立C[]表格和PATH[]表格。
最初:
S={}
CURNODEID=PATHSTART=AS={CURNODEID}={A}
CURNODEID=BS=S+{CURNODEID}={A,B}
CURNODEID=CS=S+{CURNODEID}={A,B,C}
CURNODEID=ES=S+{CURNODEID}={A,B,C,E}
CURNODEID=DS=S+{CURNODEID}={A,B,C,E,D}
CURNODEID=FS=S+{CURNODEID}={A,B,C,E,D,F}
END因此,在路径选择算法完成时:所选路径=PATH[PATHEND]=PATH[F]={A,E,F}所选路径的代价=C[PATHEND]=C[F]=0.8333。
使用上述路径选择算法的优点在于,每次使用链路上的波长时,链路的代价/衡量标准会发生改变,即,它是‘动态的’。这是因为代价/衡量标准本身是给定链路上可用的波长数量的函数。因此,同一对端点之间的多次连接尝试不必采用穿过网络的相同路径。如果使用‘静态’的代价/衡量标准(即,每次分配波长时不改变代价/衡量标准,例如,链路上可用带宽的某种函数),就象很多公知的最短路径优先(SPF)算法的情况那样,则在为一对端点之间的所有连接使用相同的路径直到沿着该路径的链路之一的容量用尽的情况下,会出现过载。使用基于链路的使用量的代价/衡量标准能够实现对相同量的光纤/波长进行更多的连接,并且在链路故障时还会给出帮助。这是因为使用基于链路使用量的代价/衡量标准有助于比‘静态’代价/衡量标准更加均匀地跨越网络来散布波长用量。因此即使链路发生故障,但由于本算法更加均匀地跨越网络来散布连接,所以它很可能正承载着较少的连接,并且因此会使响应于故障所需要的重新进行路由的连接数量较少。
现在将更加详细地介绍波长选择算法。下面列出的变量是在波长选择算法的介绍以及图11到13中的相关流程图中使用的。
E2EWAVELENGTHS—保存描述沿着所选路径端到端可用的波长的位向量。
PATHNODEID[1]—保存所选路径上第1个节点的NODEID。
PATHINT[1]—保存所选路径上第1个链路的链路编号。
WAVELENGTHS[NODEID][INTFACE]—保存描述节点NODEID上的链路INTFACE上可用的波长的位向量。
PATHLENGTH—保存所选路径上节点的数量。
WAVELENGTHCOUNTER[WAVELENGTH]-保存波长WAVELENGTH‘接触’所选路径的次数。
INTERFACES[NODEID]—保存与节点NODEID连在一起的链路的数量。
WAVELENGTHSONLINK—保存对所选链路上可用的波长进行描述的位向量。
WAVELENGTHSONLINK[WAVELENGTH]-如果波长WAVELENGTH可用在所选链路上则保存数值1,或者如果波长WAVELENGTH不可用,则保存数值0。
E2EWAVELENGTHS[WAVELENGTH]—如果波长WAVELENGTH可沿着所选路径端到端使用(即,如果波长WAVELENGTH包含在位向量E2EWAVELENGTHS中),则保存数值1,或者如果波长WAVELENGTH不可端到端使用,则保存数值0。
TOTALWAVELENGTHSSUPPORTED—保存单独一条链路上允许的波长的最大数量。
MOSTUSEDINDEX—在波长选择算法的结尾,MOSTUSEDINDEX保存最频繁‘接触’所选路径的波长,即,本算法选择用来沿着所选路径端到端可用的波长。
在选择了路径之后(使用前面介绍的路径选择算法或者通过使用另一种可选路径选择算法),波长选择算法计算哪些波长沿着所选路径端到端可用(即,哪些波长满足波长连续性限制)并且将结果存储在E2EWAVELENGTHS位向量中。
为此,参照图11中的步骤1101,本算法一开始假设所有的波长都端到端可用(即,E2EWAVELENGTHS={111...11})。本算法还通过将计数器CURNODE设置为1来对其进行初始化。计数器CURNODE记住当前正在由本算法检验的节点和链路。
这样,由所选路径上的第一个节点和链路开始,本算法更新E2EWAVELENGTHS位向量(步骤1103),使其仅仅描述在所选路径的当前链路上可用并且可沿着所选路径端到端可用的那些波长,即,E2EWAVELENGTHS=E2EWAVELENGTHS BITWISEANDWAVELENGTHS[CURNODEID][CURINTFACE]。
然后,在步骤1105中,本算法将计数器CURNODE递增1,并且在步骤1107中,进行一项测试来检查沿着所选路径的所有节点是否都已经检验过了。如果没有,则重复步骤1103到1107。如果沿着所选路径的所有节点都已经检验过了,则本算法继续进行,初始化所有的WAVELENGTHCOUNTER[WAVELENGTH]表格并且将计数器CURNODE重置为1(步骤1109)。
然后本波长选择算法继续进行,以检验与沿着所选路径的各个节点连在一起的所有链路。将参照图12介绍这个处理过程。
在步骤1111中,本算法得出与当前节点连在一起的链路的数量,将该数值存储为变量NUMINTFACES并且对计数器CURINTFACE进行初始化,这个计数器用于记住当前正由本算法检验的链路。
在步骤1113中,本算法计算哪些波长可用在当前链路上,将结果存储为变量WAVELENGTHSONLINK并且对计数器CURWAVELENGTH进行初始化,该计数器用来记住当前正由本算法检验的波长。
然后进行测试(步骤1115)以检查当前波长是否可用在当前链路上以及是否沿着所选路径端到端可用。如果测试结果是肯定的,则将用于当前波长的WAVELENGTHCOUNTER[WAVELENGTH]表格递增1(步骤1117)并且将CURWAVELENGTH计数器递增1(步骤1119)。如果测试结果是否定的(即,测试中的条件之一或全部条件得不到满足),则本算法向前跳转并且仅仅递增CURWAVELENGTH计数器(步骤1119)。
然后进行进一步测试(步骤1121)来检查当前链路上的所有波长是否都已经检验过了。如果测试结果表明还有更多的波长要检验,则对各个波长重复进行步骤1115到1121。如果测试结果表明当前链路上没有其它的波长要检验了,则将CURINTFACE计数器递增1(步骤1123)。
然后进行另一测试(步骤1125)来检查与当前节点连在一起的所有链路是否都已经检验过了。如果测试结果表明还有更多的链路要检验,则对各条链路重复进行步骤1113到1125。如果测试结果表明没有剩下与当前节点连在一起的链路要检验,则将CURNODE计数器递增1(步骤1127)。
然后进行另一测试(步骤1129)来检查所选路径上的所有节点是否都已经检验过了。如果测试结果表明还有更多的节点要检验,则对各个节点重复进行步骤1111到1129。当测试结果表明没有剩下节点要检验时,从头到尾重读一遍WAVELENGTHCOUNTER[WAVELENGTH]表格并且将可在最多的与所选路径连在一起的链路上使用的端到端波长选择为要使用的端到端波长。现在将参照图13介绍这一重读处理。
在步骤1131中,初始化MOSTUSEDINDEX变量并且设置为1,同时将CURWAVELENGTH计数器重置为1。然后进行一项测试(步骤1133)来检查当前波长是否比由MOSTUSEDINDEX变量当前存储的波长更多地出现在链路上。如果测试结果是肯定的(即,WAVELENGTHCOUNTER[CURWAVELENGTH]>WAVELENGTHCOUNTER[MOSTUSEDINDEX]),则对MOSTUSEDINDEX进行更新,以使其存储当前波长(步骤1135),然后将CURWAVELENGTH计数器递增1(步骤1137)。如果测试结果是否定的,则本算法跳到步骤1137并且将CURWAVELENGTH计数器递增1。
然后进行进一步的测试(步骤1139)来检查是否所有的波长都已经检验过了。如果测试结果表明还有更多的波长要检验,则对各个波长重复进行步骤1133到1139。如果测试结果表明没有更多的波长要检验,则本波长选择算法结束。
当本波长选择算法在图1的网络中运行时,并且假设已经由路径选择算法选择了路径A-E-F,应该按照下列方式建立WAVELENGTHCOUNTER[]表格:E2EWAVELENGTHS={11111}[最初将所有的波长都假设为可用]E2EWAVELENGTHS=        E2EWAVELENGTHS    BITWISEANDWAVELENGTHS[NODEA][LINKA-B]={11111}BITWISEAND{00101}={00101}[经处理的节点A、链路A-E]E2EWAVELENGTHS=        E2EWAVELENGTHS    BITWISEANDWAVELENGTHS[NODEB][LINKB-C]={00101}BITWISEAND{00111}={00101}[经处理的节点E、链路E-F]E2EWAVELENGTHS={00101}[即,编号为1、2和4的波长不可端到端使用]WAVELENGTHCOUNTER[1]=0WAVELENGTHCOUNTER[2]=0等。
最初的WAVELENGTHCOUNTER表格:
处理与节点A(路径中的第一个节点)连在一起的链路:
处理与节点E(路径中的第二个节点)连在一起的链路:
处理与节点F(路径中的第三个/最后一个节点)连在一起的链路:
在已经处理了路径中与最后一个节点连在一起的链路之后,从头到尾重读一遍WAVELENGTHCOUNTER表格并且选择出现最频繁的波长。
因此,在这个例子中,选择和使用编号为5的波长(WAVELENGTHCOUNTER[5])。
应当注意,要实现本发明的优点,并非必需选择出现最频繁的波长。例如,在每条光纤链路上能够支持多达160个波长的网络中,选择出现次数第二多或者第三多的波长,或者选择在与路径上的节点连在一起的链路中的大多数链路上可用的波长,效果都是很好的。实际上,可用率比其它波长高的任何波长应该都是有有益效果的。
在数个波长具有相同的可用度(即,它们可用在相同数量的链路上)的情况下,选择(这些可用度相等的波长中的)第一个波长,其中第一个波长是编号最低的波长,即,如果波长3和5可用度一样,则应该选择波长3。
如已经讨论过的,使用上面介绍的方法的优点是,通过考虑波长选择决定将会如何影响以后使用正在为其选择波长的路径的链路中的一条或多条链路进行的沿着路径的连接尝试,可以做出与选择哪些波长有关的更好的决定。在图1的示例网络中,如果在沿着路径AEF传输光学信号的过程中需要使用波长,则选择第一个可用波长,应该是选择波长3。现在考虑需要沿着路径DEF的连接的情形。由于之前的波长选择结果(选了波长3),在节点D和F之间无法供应路径(因为唯一沿着整个路径DEF端到端可用的波长是波长3,而它已经沿着链路EF在使用了)。因此连接尝试受到阻碍。使用按照本发明的波长选择算法会得到选择波长5的结果,因为这个波长可广泛地用在与节点A、E和F连在一起的链路上。在这种情形下,因为可以选择波长3,所以沿着路径DEF的连接尝试将不会受到阻碍。
要注意,端到端可行性检查、路径选择算法和波长选择算法是可以组合起来或单独使用的。实际上,它们各自可以独立地使用。例如,可以与前面介绍的端到端可行性检查一起使用任何公知的路径选择算法(例如,任何公知的最短路径首选或有条件最短路径首选算法)和/或任何公知的波长选择算法。另外,可以在进行或不进行端到端可行性检查的情况下,一起或独立地使用前面介绍的路径选择和波长选择算法。其它形式的组合对本领域技术人员来说是明显的。
从前面的说明中,显而易见,可以对前面介绍的实施例进行很多种改造或变化,而不会脱离本发明。
相关专利内容
标题 发布/更新时间 阅读量
波长转换元件 2020-05-13 846
一种波长定标仪 2020-05-13 215
波长转换装置 2020-05-13 580
波长转换器 2020-05-11 919
波长路由器 2020-05-11 796
波长管理器 2020-05-11 667
随机波长计 2020-05-12 706
波长变换器 2020-05-12 808
波长监视器 2020-05-11 92
波长转换装置 2020-05-12 108
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈