专利名称:路径建立的制作方法
技术领域:
本发明涉及一种建立穿过光学通信网络的路径的方法。
背景技术:
在光学网络中,数据是通过将网络节点(通常称为路由器或交换机)互相连接起来的光纤加以传输的。在数据穿过网络时,它将会穿过一个或更多个网络节点。在各个网络节点上,在输入端口上接收到数据、从光学信号转换到电信号、在电领域中进行处理、从电信号转换到光学信号并且在相关的输出端口上传送出去。这一从光学信号到电信号和再次回到光学信号的转换称为光电光(OEO)转换。
在每个节点上都进行OEO转换有两个主要的结果。首先,OEO转换在每个节点上重新整形、重新定时和重新发送光学信号,这意味着,可以独立地考虑端到端路径中的各个链路,并且一条链路上的任何故障或损伤不会对后续链路造成连锁影响。其次,OEO转换使得节点能够接收给定波长上的光学信号并且在不同波长上对其进行重新传送,即,节点能够进行波长转换。不过,OEO转换实现起来比较昂贵并且因为将数据从输入端口切换到输出端口的最大速度取决于各个网络节点中的基础电子装置操作能有多快,所以成为了网络中的瓶颈。
在全光学网络中,数据也是通过将网络节点相互连接起来的光纤来进行传送的。不过,在各个网络节点上,数据是在输入端口上接收、在光学域中切换并且在相关输出端口上发出的,没有进行任何OEO转换。全光学网络连接节点(较常称为光学交叉连接单元(OXC))中缺少OEO转换的结果是网络连接节点的成本降低。在全光学网络中,通常通过利用波分复用(WDM)来在各个光纤上同时使用数个不同的波长。
不过,在全光学节点中缺少OEO转换意味着节点不再能够进行波长转换,所以沿着整个端到端路径需要使用相同的波长。这称作波长连续性限制,并且会造成尽管网络拥有空闲容量(即,不用于传输数据的波长),但在端到端路径的所有链路上没有一个可用的单个公共波长,因而端到端路径不可用的情况。
当受到波长连续性限制的约束时,不可能孤立地考虑端到端路径上的各条链路,这是因为一个OXC上或任何一条链路上的任何故障或损伤将具有沿着该路径的累积影响。相反,需要关注跨越整个端到端路径的端到端光学损耗(与在OXC内部切换给定波长的光相关的损耗),以便确定路径是否可用。
很多当前的路径选择算法从假设所有的端到端路径都可用开始。结果,直到进行沿着路径传输数据的尝试之前,都发现不了所选的路径不可用。这增加了网络的操作成本并且甚至可能在自动处理中涉及人工干预。
美国专利申请US2003/0011844介绍了选择了完整的路径(端到端路径)后,如何检查端到端路径的可行性。以这种方式检查端到端路径的可行性的缺点是,选择结果为不可行的端到端路径可能会耗费额外(并且因此是多余的)处理。因此,网络的操作成本会增高。
发明内容
根据本发明的一个方面,给出了一种在入口节点与出口节点之间建立穿过光学通信网络的路径的方法,所述光学通信网络包括多个由光纤链路互相连接起来的节点,所述方法包括(i)按照第一种标准评价一条或多条局部路径;(ii)按照第二种标准评价候选端到端路径,其中所述端到端路径评价不理会包含不符合所述第一种标准的局部路径的候选端到端路径;(iii)通过根据所述第二种标准选择所述候选端到端路径之一来建立所述路径。
通过在按照第二种标准评价候选端到端路径时不理会不符合第一种标准的局部路径,并且根据第二种标准选择候选端到端路径之一,一有可能的机会就能够从路径建立处理中消除不可用的局部路径,得到了效率更高的处理,因为没有资源浪费在建立不可用的端到端路径上。
在权利要求中定义了本发明的其它方面。
现在将参照附图、仅仅作为示例介绍本发明的实施例,其中相同的附图标记指代相同的部分,并且其中图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映射到1510 nm的波长)。在前面提到的例子中,波长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为单位)的总量,即为(PMD12+PMD22+PMD32+...+PMDn2)]]>,其中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的光纤的以km为单位的长度);令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+L.OXCLossM=2-10*log10((FibreAttennuation*Q.Totallength)+Q.TotalOXLossFibreAttenuation*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,其中WavelengthsAvailablei是链路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)。如果包括当前正在检查的链路的路径不可行(即,它未通过可行性检查),则本算法继续进行,将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]=0
WAVELENGTHCOUNTER[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的连接尝试将不会受到阻碍。
要注意,路径选择算法和波长选择算法是可以组合起来或单独使用的。例如,可以与按照本发明的波长选择算法一起使用任何公知的路径选择算法(例如,任何公知的最短路径首选或有条件最短路径首选算法)。另外,可以与本发明的路径选择算法一起使用任何公知的波长选择算法。其它形式的组合对本领域技术人员来说是显而易见的。
从前面的说明中,显而易见,可以对前面介绍的实施例进行很多种改造或变化,而不会脱离本发明。
权利要求
1.一种在入口节点与出口节点之间建立穿过光学通信网络的路径的方法,所述光学通信网络包括多个由光纤链路互相连接起来的节点,所述方法包括(i)按照第一种标准评价一条或更多条局部路径;(ii)按照第二种标准评价候选端到端路径,其中所述端到端路径评价不理会包含不符合所述第一种标准的局部路径的候选端到端路径;(iii)通过根据所述第二种标准选择所述候选端到端路径之一来建立所述路径。
2.根据权利要求1所述的方法,其中所述第一种标准包括局部路径可行性测试。
3.根据权利要求2所述的方法,其中所述可行性测试基于局部路径的光学特性。
4.根据权利要求3所述的方法,其中所述可行性测试基于下列属性中的一种或更多种与所述局部路径上的光纤链路相关的光纤衰减、跨越所述局部路径上的节点的光学损耗、与所述局部路径上的光纤链路相关的偏振模式色散。
5.根据前述任何一项权利要求所述的方法,其中所述候选端到端路径评价包括为各个候选端到端路径计算代价衡量标准,所述代价衡量标准代表选择光学数据传输中使用的候选端到端路径的相关代价。
6.根据权利要求5所述的方法,其中所述代价衡量标准基于构成候选端到端路径的光纤链路的使用情况。
7.根据权利要求5或6所述的方法,其中所述代价衡量标准基于构成光学数据传输中使用的候选端到端路径的光纤链路上的可用波长的数量。
8.根据权利要求5到7中任何一项所述的方法,其中单条光纤链路的代价衡量标准的数值在每次沿着所述单条光纤链路传输光学数据时发生改变。
9.根据权利要求1所述的方法,其中所述候选端到端路径选择包括选择具有最低相关代价的候选端到端路径。
10.一种选择在沿着光学网络中的路径传输光学数据的过程中使用的波长的方法,所述光学网络包括多个由光纤链路相互连接起来的节点,所述方法包括(i)根据前述任何一项权利要求所述的方法建立路径;(ii)找出可用于沿着所述路径端到端使用的波长;(iii)找出在与所述路径上的各个节点连接在一起的各条链路上可用的波长;(iv)选择端到端可用的并且在与所述路径上的节点连接在一起的链路上比其它波长更加可用的波长。
11.一种数字数据载体,所述数字数据载体携带着可由处理设备执行的、用来进行权利要求1到10中任何一项所述的方法步骤的指令的程序。
12.一种光学网络中使用的节点,所述光学网络包括多个由光纤链路相互连接起来的节点,所述节点包括用于按照第一种标准评价一条或更多条局部路径的构件;用于按照第二种标准评价候选端到端路径的构件,其中所述端到端路径评价构件不理会包含不符合所述第一种标准的局部路径的候选端到端路径;用于根据所述第二种标准选择所述候选端到端路径之一的构件。
13.一种光学网络中使用的节点,所述光学网络包括多个由光纤链路相互连接起来的节点,所述节点包括存储介质,在该存储介质中记录有处理器可读的代码,该代码可进行用以建立穿过所述光学网络的路径的处理,所述代码包括局部路径评价代码,可进行按照第一种标准评价一条或更多条局部路径的处理;候选端到端路径评价代码,可进行按照第二种标准评价候选端到端路径的处理,其中所述候选端到端路径评价代码可进行不理会包含不符合所述第一种标准的局部路径的候选端到端路径的处理;路径建立代码,可进行根据所述第二种标准选择所述候选端到端路径之一的处理。
14.一种包括多个由光纤链路相互连接起来的节点的光学网络,其中所述一个或更多个节点包括根据权利要求12或13所述的节点。
全文摘要
本发明提供了路径建立。公开了一种建立穿过光学通信网络的路径的方法。以前公知的建立穿过光学通信网络的路径的方法包括在选择了完整的端到端路径之后检查端到端路径的可行性。不过,选择原本结果为不可行的端到端路径可能会耗费额外的(并且因此是多余的)处理,这增加了网络操作成本。在所提出的方法中,按照第一种标准评价一条或多条局部路径,然后按照第二种标准评价候选端到端路径,其中端到端路径评价不理会包含不符合第一种标准的局部路径的候选端到端路径。通过根据第二种标准选择候选端到端路径之一来建立路径。
文档编号H04L12/56GK1989718SQ200580024297
公开日2007年6月27日 申请日期2005年7月12日 优先权日2004年7月19日
发明者本杰明·保罗·尼文·詹金斯, 约翰·罗伯特·金, 安德鲁·洛德 申请人:英国电讯有限公司