分布式连接建立和恢复的制作方法

文档序号:7938275阅读:138来源:国知局
专利名称:分布式连接建立和恢复的制作方法
技术领域
本发明涉及网络,并且更具体地,涉及诸如由链路状态协议控制 的以太网之类的网络中的分布式连接的建立和恢复。
背景技术
在以太网络架构中,连接至网络的设备为在任何给定时间使用共 享通信路径的能力而竟争。在多个桥接(bridge)或者节点被用于互 连网络段的情况下,经常存在去往同一目的地的多个潜在路径冗余。 该架构的益处在于,其在桥接之间提供了路径冗余并且允许以附加链 路形式向网络增加容量。尽管如此,为防止形成环路,通常使用生成 树(spanning tree )来限制网络上广播业务的方式。因为路由(route) 是通过对帧进行广纟番并等待响应而知悉的,并且因为纟青求和响应这二 者都会遵循生成树,所以多数(如果不是全部)业务会沿着作为生成 树一部分的链路而行。这通常会导致对生成树上的链路的过度利用、 并且未能利用并非生成树的一部分的链路。为克服以太网络中的固有限制,于2006年10月2日提交的题为 "Provider Link State Bridging"的美国专利申请第11/537,775中披露 了链路状态协议控制的以太网,该申请的内容在此引用以供参考。正 如在该申请中更为详细描述的那样,链路状态协议控制的以太网中的 节点交换链路状态通告(advertisement)以构建对网络拓朴的同步—见 图(view),后者被存储在链路状态数据库中。此后,链路状态数据 库可用于计算贯穿网络的最短路径。链路状态通告可用于向特定网络 层中的所有其它节点分发链路状态更新。点还填充转发信息库(FIB),节点将使用FIB来做出转发决策,以使得在所计算的最短 路径上将帧转发至目的地。因为总是使用去往特定目的地的最短路 径,所以网络业务将通过更大量的链路被分发,并且沿着对于更大量 的节点而言更优的路径而行,所述更优指的是优于使用单个生成树或 甚至多个生成树在网络上承载业务的情况。当客户业务进入供应商网络时,客户MAC目的地址(C-MAC DA) 被解析为供应商MAC目的地址(B-MAC DA),以使得供应商可以 使用供应商MAC地址空间在供应商网络上转发业务。此外,供应商 网络上的网络单元被配置成基于虚拟LANID(VID)来转发业务,以 使得可在整个网络中的不同路径上转发被发往相同目的地但是具有 不同VID的不同帧。在操作中,链路状态协议控制的以太网可将一个 VID范围与最短路径转发关联起来,以使得可使用来自于该范围的 VID来转发单播和多播业务,并且可在不同于最短路径的路径上跨越 网络创建业务工程路径,并通过使用第二 VID范围来对其进行转发。 于2007年4月3日提交的题为"Engineered Paths In A Link State Protocol Controlled Ethernet Network"的美国专利申请第11〃32,381 中更为详细地描述了在链路状态协议控制的以太网中使用业务工程 (TE Traffic Engineered )路径,该申请的内容在此引用以供参考。电工电子工程师学会(IEEE)已研发了草案标准802.1Qay,后者 通常被称为供应商骨干桥接一一业务工程(PBB-TE)。按照惯例,当 PBB-TE将被用于传输IP业务时,会跨越PBB-TE网络建立连接。于 2007年4月19日才是交的题为"GMPLS Control of Ethernet"的美国专 利申请第11/580,796中描述了一种跨越PBB-TE网络建立连接的方 法,该申请的内容在此引用以供参考。正如该申请中更为详细描述的那样,当将^争越PBB-TE网络建立 连接时,将由首端节点或中央管理系统计算连接,并且接着连接建立 消息将在整个PBB-TE网络上被传送。例如,假设节点A被要求建立 到节点E的连接。节点A会执行路径计算过程以计算到节点E的路 径,作为例子,假设该路径包括中间节点B、 C和D。此后,节点A将创建RSVP-TE路径建立消息(该消息包含关于 通过网络的路径的信息),并且向节点B发送路径建立消息。节点B将处理该消息并将其传给节点C。该消息会继续前进,直到其到达其 目的地(节点E)为止。当节点E接收到路径建立消息时,其会生成RSVP-TE响应消息, 该响应消息将通过网络沿相反i 各径而行。作为RSVP-TE信令的一部 分,该路径上的节点保留资源并且安装(install)转发状态以允许沿 该路径转发业务。在于2006年3月22日提交的题为"Method and Apparatus For Establishing Forwarding State Using Path State Advertisements" 的美国 专利申请第11/525,594中,建议使用链路协议控制分组而非使用单独 的信令协议来在网络上承载该连接信息。在该申请中,首端节点会使 用其拓朴数据库中的网络拓朴信息来计算通过网络的路径。尽管如此,并不是使用RSVP-TE来告知(signal)网络上的这些连接,而是 诸如ISIS之类的链路状态协议被扩展为在通过网络的其特定路径中 承载连接信息。在这种情况下,首端节点计算路由,并在整个网络范 围内扩散(flood)路由。网络上的所有节点在其连接数据库中存储连 接。在连接的路由上的节点为连接安装转发状态,以借此允许在 PEE-TB网络上创建连接。申请11/525,594的内容在此引用以供参考。 PEE-TB网络可包括许多连接,每个连接净皮7 义载于网络上所告知 的业务工程路径上。当网络上发生故障时,对于受故障影响的那些连 接的首端节点会为这些连接重新计算新路由,并且在链路状态通告中 扩散新路由。在给定新的网络拓朴以及与路由相关联的约束,诸如所 需的带宽、期望的终端节点以及连接的相对优先级的情况下,首端节 点会计算这些路由。因为网络上存在许多受到给定故障影响的不同首 端节点,并且每个首端节点负责为其受影响的连接计算新的路由集, 所以在两个不同首端节点都试图为用于给定节点/链路上的不同连接 的恢复路径保留资源时,可能会发生沖突。此外,尽管每个节点会优 先考虑其自身的连接,但是协调由网络上的不同节点所建立的连接的 优先级仍然是一种挑战。因而,提供一种在网络上发生故障之后重新 建立连接的新方式,将会颇为有利。发明内容不是由首端节点在网络中为连接计算通过网络的显式(explicit)路径,而是首端节点通告一组连接约束,诸如连接所需的带宽、用于 连接的入口/出口节点对、以及连接优先级。通过使用正被用于控制网
络上的转发(forwarding)的路由协i义的扩展来在网络上扩散连接约 束。
网络可以是分组网络、链路状态协议控制的以太网、或者另一网 络。当网络上的节点接收到包含连接约束信息的控制分组(TLV)时, 节点会在其连接数据库中存储连接约束,并根据当前网络拓朴和所接 收到的约束来为连接计算通过网络的路由,以确定其是否处在用于该 连接的路由上。将根据优先级信息,对于所计算的用于该连接的路由 相对于其它连接进行排位(rank),并且由节点将所计算的用于该连 接的路由存储在连接数据库中。如果节点处于所计算用于该连接的路 由上,则节点会将用于与该连接相关联的DA/VID的转发状态安装到 其转发信息库中。网络上的每个节点执行该相同过程。如果每个节点 对网络拓朴具有一致视图,并且已经被提供了与该连接相关联的约 束,则网络上的每个节点会为该连接计算出相同的路由。因而,该连 接的转发状态会跨越网络而端到端地联系(linkup)起来。
当网络上发生故障时,该故障会被通告给网络上的所有节点。在
收到故障指示时,节点会检查其连接数据库以确定哪些连接受到故障
影响。每个节点会为每个受影响的连接重新计算新路由(恢复路径), 并在其连接数据库中存储经更新的路由信息。节点按优先级次序来处
理连接以由此使得能够针对恢复路由而实施全网络范围(network wide)连接优先化。此后,节点会基于所计算出的新路由来安装/除去 转发状态。具体地,如果节点之前处于用于连接的路由上,并且不再 处于用于恢复路径的路由上,则节点将从它的转发信息库除去用于该 连接的转发状态。相反,如果节点先前不处于用于连接的路由上而是 处在用于恢复路径的路由上,则该节点会将用于该连接的转发状态安 装到其转发信息库中。如果节点对网络都具有一致视图,并且以相同 次序为受到故障影响的连接计算恢复路径,则用于连接的恢复路径也 会跨越网络而端到端地联系起来。此外,创建恢复路径而无需用于连 接的显式信令。
如果网络上的所有节点对网络拓朴具有一致视图,则使网络上的 节点基于约束信息来为连接计算路由会很有效。可能会发生网络上出现多于一个故障的情况。因为节点在接收到第一故障通知时可能开始 为连接重新计算路由,所以故障通知的接收次序会影响节点计算通过 网络的路由的方式。因而,诸如故障通知和连接请求之类的事件通知 可^f皮加上时间戳,以允许节点以一致的方式处理事件通知。为适应加 时间戳的事件通知抵达时次序颠倒,每个节点会保存网络连接的基准 网络视图,以使得节点能够回到在前网络状态,并且无论事件通知被
才妄收的次序如何,都以一致的次序应用(apply)事件通知。


所附权利要求中具体地指出了本发明的各个方面。以下附图以示 例性的方式阐释了本发明,在附图中,相同的附图标记表示类似元素。 以下附图以阐释为目的揭示了本发明的不同实施例,并非意在限制本 发明的范围。为清楚起见,各附图中并未标示出每个组件。在附图中
图l是网状网络的示意图,该网状网络可用于实现诸如链路状态 协议控制的以太网之类的网络。
图2是诸如链路状态协议控制的以太网单元之类的网络的示意图。
图3-8是示例性网络的网络图,该网络图示出了可由网络上的 节点保存的若干可能的表,并示出了在网络上发生故障时这些表如何 改变。
图9 - 11是示出了接收事件通知以及将事件通知应用于节点的拓 朴数据库的定时的时间线。
图12是示出了节点的基础(base)拓朴与当前拓朴之间的N个 时间单元的滑窗的时间线,在接收到任一事件通知时,节点可使用当 前拓朴来回复到先前拓朴。
图13是示出了具有两个拓朴数据库和连接数据库的节点的功能 性框图。
图14是示出了节点在处理事件通知时所执行的过程的流程图。 图15是示出了节点所执行的过程的流程图,该过程用于记住 (keep track of)网络上的事件的次序以允许节点以 一致的次序处理拓 朴改变通知。
具体实施例方式
链路状态协议扩散机制可用于在诸如网际协议(IP)或链路状态 协议控制的以太网之类的网络上添加和删除连接。扩散机制允许定义 连接的约束被扩散,以使得网络上的每个节点能够独立地计算用于该 连接的路由。
本发明的实施例可用在多种不同类型的网络中,尽管下文针对链 路状态协议控制的以太网描述了 一种实施方式的实例,但是本发明并 不限于在该种性质网络中实施。更确切地,以下描述意在提供一种特 定实施方式的实例。还可针对其它网络实施本发明。例如,可在基于 分组的网络(诸如基于网际协议(IP)的网络)中实施本发明的实施 例。
根据本发明的一个实施例,链路状态协议扩散机制被用于扩散与 连接相关联的约束,诸如入口/出口节点对、连接所需的带宽量、以及 连接优先级。网络上的节点使用这些约束来独立地计算用于连接的路 由,并且如果它们处于用于连接的路由上,则会为连接安装转发状态。 因为节点知道与连接相关联的约束,所以在网络上发生故障时,节点
都可独立地为连接计算恢复路径而无需在发生故障时使用扩散机制 来重建连接。因而,节点能够自动重建连接而无需在网络上重新告知 连接。因为约束信息包括连接的优先级,所以每个节点具有所有连接 的列表,并且知道每个连接的优先级。这使得每个节点能够在为连接 计算恢复路径时以优先级次序处理连接,借此能够在恢复后对连接进 行全网络范围的优先化。
图l示出了示例性网络,该网络例如可被实现为链路状态协议控
制的网络10,网络10包括通过链路14互连的多个节点12。在图1 中,已经通过节点A、 B、 C、 D和E建立了从客户I到客户J的连接 (深黑线)。该连接具有与其相关联的约束,诸如入口节点A和出口 节点E。此外,该连接可指定应被保留的带宽量、服务质量、以及指 定将由连接提供的服务类型的其它类型的约束。该连接还被分配了优 先级别。当节点A从客户I处接收到连接请求时,其会确定与该请求 相关联的约束,并将链路状态通告中的约束扩散至链路状态协议控制
由,并安装转发状态以在网络上建立连接:''、' 5 '图2示出了示例性网络单元,该单元可用于实现图1的网络中的 节点12。如图2中所示,节点包括控制平面70和数据平面72。数据 平面^:配置为处理网络上的数据,并且包括网络处理单元74,网络处 理单元74包含由数据平面安装到转发平面中的转发状态76。交换结 构78将网络处理器互连起来,以使得在与一个网络处理单元74相关 联的一个端口 75处所接收到的数据能够在连接至相同网络处理单元 或连接至不同网络处理器单元的另 一端口处被输出。
控制平面70包括一个或多个处理器82,处理器82包含控制逻辑 84。控制平面还包含存储器86,存储器86包含可被加载到处理器82 的控制逻辑84中以配置处理器来执行此处所描述的操作的数据和指 令。例如,存储器86可包含链路状态路由软件88以使节点能够发送 并接收路由协议控制分组。存储器86还可包含连接管理软件89。
诸如ISIS之类的链路状态路由协议使用控制分组,该控制分组的 格式可包含特定类型长度值(TLV) 。 TLV指定控制分组的字段和格 式,以使得在节点接收控制分组时,该节点能够识别控制分组中包含 什么信息。如本说明书中更为详细地讨论的那样,根据本发明的实施 例,网络上的节点扩散与将在网络上建立的连接相关联的约束信息。 为使节点能够从控制分组中提取约束信息,可创建新的TLV,该新的 TLV指定可以被节点用来交换此种类型信息的字段。TLV中可指定的 特定字段取决于待扩散的约束信息类型,并且可包括例如连接ID、带 宽、起始节点、结束节点、优先级、以及在节点为连接计算路由时有 助于节点的其它任意信息。
链路状态路由协议的两个实例包括开放式最短路径优先(OSPF ) 和中间系统至中间系统(IS-IS),但是也可使用其它链路状态路由协 议。例如在ISO 10589和IETF RFC 1195中描述了 IS-IS, ISO 10589 和IETF RFC 1195的每个内容在此引用以供参考。尽管存在该协议的 当前版本,但是标准随着时间而演进,并且随着标准的发展,本说明 书中所描述的概念可被调整对未来版本的标准起作用。与之类似,本 发明并不限于结合了这些特定协议之 一 而操作的实施方式,原因是还 可使用其它协议来交换路由信息。
当数据和指令被从存储器加载到处理器中时,处理器会执行链路 状态路由过程90以使节点能够参与网络上正常的链路状态路由交换并接收关于将在网络上建立的连接的约束信息。处理器还可执行连接
计算过程92,该过程可以与路由过程分开或者可以与路由过程集成在
一起。正如本说明书所更为详述的那样,连接计算过程执行与计算用 于连接的受限路由以及保存连接数据库相关联的功能。
图2所示的节点包括一个或多个数据库,后者存储供路由过程和 /或连接计算过程使用的信息。例如,节点可以包括拓朴数据库94, 后者包含当前拓朴数据库和 一 个或多个在前版本的拓4卜数据库。例 如,图13示出了示例性节点12,后者已存储多于一个拓朴数据库(基 础拓朴和当前拓朴)。节点还可包括连接数据库96,后者可以是独立 于拓朴数据库的数据库、或者被形成为拓朴数据库的一部分。节点可 选地可包含转发数据库,后者包含已被作为转发状态76编程到数据 平面72中的转发状态的映像(image)。还可使用其它节点配置,并 且图2中所示出的节点配置4叉意在4是供可以如何构造节点的示例性功 能性描述。
因为将在网络上创建连接,所以与该连接相关联的约束会被扩散 至所有节点。节点会在其连接数据库中存储约束,并计算用于该连接 的路由。如果网络上的节点处于用于该连接的路由上,则它们会为该 连接安装转发状态。如果节点不在该路由上,则其不会安装转发状态。
因为多个连接会为有限的资源而竟争,所以每个连接会被排位并 且被给予优先级值。每个节点根据连接的优先级来对连接进行排位, 以使得网络上的所有节点会对给定的连接集进行一致的排位。如果两 个或更多连接具有相同的优先级,则应用平局决胜负(tie-breaking) 规则来确定哪个连接应具有优先级。例如,连接上的首端节点的MAC 地址可用于对连接进行优先化。在相同首端节点扩散具有相同优先级 的两个连接的情况下,创建的次序或在扩散消息中的次序可用于确定 连接的相对优先级。节点保存优先级信息,以使得网络上的所有节点 以相同的方式来对连接进行排位。
在网络中发生故障时,网络上的节点会为连接计算恢复路径。节 点会确定哪些连接受到故障影响并且以优先级次序来处理这些连接。 这允许网络上的节点在处理其它较低优先级的连接之前、先为较高优 先级的连接计算路由。因为节点根据优先级来处理连接,所以在全网 络范围的基础上对恢复进行优先化。与之形成对照,在首端节点计算路由并在网络上告知路由的情况下,全网络范围的恢复优先化不可 用,原因是首端节点只能进行最好的本地(节点)优先化而不能进行全 局(全网络范围)优先化。
在稳态运行时,每个节点对网络拓朴具有一致的视图,并且对网 络上已建立的连接具有 一致的视图。节点还会始终如一地对连接进行 优先化。当将要建立新连接时,与该连接相关联的约束会被扩散至网 络上的节点。每个节点会基于当前拓朴和连接约束来为该连接计算路 由。如果路由上的节点确定它们处于用于该连接的路由上,则它们此 后会安装转发状态。因为每个节点正在根据相同的起始数据执行相同 的计算,所以每个节点会为该连接计算出相同的路由,以使得对于连 接而言路由将跨越网络而端到端地联系起来。节点还会确定连接的优 先级并在其连接数据库中存储该连接。
在网络上发生故障时,故障通知会在网络上被扩散。每个节点会 确定哪些连接受到故障影响并把与受影响的连接相关联的带宽返回 到拓朴数据库。对于每个受影响的连接而言,从最高优先级连接开始, 节点此后会基于其对网络拓朴的当前视图来计算新的恢复路径。如果 节点处于恢复路由上,则节点会为该连接卸载所有现有转发状态,并 且此后为该连接安装必要的转发状态。如果节点不在恢复路由上,则 节点会为该连接卸载所有现有转发状态。因为所有节点对网络拓朴具 有 一致的视图并且对连接进行一致地排位,所以所有节点会计算出相 同的恢复路由集。因而,在网络上发生故障时,没有必要扩散恢复路 由。
图3-8示出了这在示例性网络中可能如何被实现的实例。正如 图3中所示,为了解释,假设示例性网络具有5个节点12,标以节点 A-E。这些节点由链路14互连起来。
每个节点12具有拓朴数据库94,拓朴数椐库94包含网络拓朴的 同步视图。例如,参见节点D的拓朴数据库20,该拓朴数据库包含 描述每个节点12的条目(entry)30。与之类似,拓朴数据库还包括描述 每个链路14的拓朴条目32。与拓朴条目相关联的两个数字描述了链 路代价以及该链路上剩余可用带宽量。因而,链路条目1、 5将指示 链路的代价为1,并且该链路上的可用带宽为5。类似地,链路条目3、 IO将指示链路的代价为3,并且该链路上的可用带宽为10。当链路被
13添加时,可用带宽量被调整成反映链路上的更新的可用带宽。
网络上的节点A-E均包含连接至链路14的端口 16。与之类似,
拓朴数据库包含描述哪个端口连接哪个链路的条目34。在所阐释的实
例中,拓朴数据库已被示为网络图。在运行时,拓朴数据库包含描述
信息的条目。因而,网络单元实际上可能不包含网络的缩小的图形表
示,而是包含描述网络的信息的数据库。申请人已经以图形方式示出 拓朴数据库以帮助解释当网络上发生事件时数据库中的条目部分如
何随时间改变以反映更新的网络状态。然而,在运行时,真实网络单 元会包括传统数据库,后者具有用于在本说明书中所描述的和在图3 的拓朴数据库94的图中示出的网络各方面的数据条目。
节点A-E还包括连接数据库96。连接数据库可以是拓朴数据库的 一部分或者可以是与拓朴数据库分开的。当连接将被添加至网络时, 与每个连接相关联的约束会被扩散至网络上的节点。每个节点会在连 接数据库中存储约束,并且还会将优先级附于连接。该优先级也会被 节点存储在连接数据库中。可选地,连接被存储在连接数据库中的次 序可用于识别连接的相对优先级。
根据这些约束(诸如入口/出口节点和所需带宽),网络上的每个 节点会为连接计算路由。因为每个节点对网络拓朴具有一致的视图, 并且对网络上已建立的其它连接具有一致的视图,所以节点会为该连 接计算出相同的路由。此后这些节点会把用于该连接的路由信息存储 在其连接数据库中。
在图3中所示的实例中,连接数据库包括路由条目40。每个路由 条目包含路由标识符,即红色(Red)、蓝色(Blue),节点/端口列 表,以及被请求/保留用于路由的带宽量。因而,诸如红色—A,P2,P2, B, PI, PI, C}, 7之类的路由条目将指示红色路由起始于节点A,在端 口P2处离开节点A,在节点B处的端口 P2处被接收,经由端口 Pl 离开节点B,并且在端口 Pl上到达节点C。该条目还指示该连接已请 求/保留7个单位带宽。图3示出了发生故障前示例性网络的状态。
图4示出了发生故障时网络的初始状态。假设在该实例中,链路 故障发生在节点B和C之间的链路上。当感测到故障时,节点B和C 中每一个都会向网络中其余部分发出故障通知。节点B和节点C这二 者都会扩散故障通知。由于下文中将会更为详细讨论的原因,每个节点会为故障通知加上时间戳。当节点接收到故障通知时,它们会以时 间戳所指示的次序来应用故障通知,以使得每个节点以相同的次序应 用故障通知。在图4所示的实例中,假设故障为双向故障。在故障仅
发生在一个方向上的情况下,仅节点B和C中的一个节点会发出故障 通知。
图5示出了网络上的节点在故障之后如何更新它们的拓朴数据 库。在图5所示的实例中,节点B和C已经检测到故障并且已经更新 其相应的拓朴数据库。网络上的其它节点还未接收到由节点B和C所 扩散的故障通知。因而,图5中的节点A、 D和E的拓朴数据库与图 3和4中相同。
如图5中所示,当节点B和节点C检测到故障时,它们会将连接 节点B和C的可用链路带宽变为0。具体地,因为节点B与C之间的 链路已发生故障,所以该链路无法用于承载业务。因而,用于该链路 的可用带宽条目50已被设为0。这些节点还会确定哪些连接受到链路 故障的影响。在该实例中,节点B和C会确定红色连接受到影响,并 且会从连接数据库中删除用于红色连接52的路由信息。在识别出受 影响的连接之后,节点还会释放由受影响的连接所占用的带宽,并且 将该带宽返回至拓朴数据库。在图5中所示的实例中,红色连接之前 是在节点A和B之间的链路上被路由的。因而,拓朴数据库中用于该 链路的条目54会被更新为包括从红色连接中所释放的带宽。因为红 色连接占用7个单位带宽,所以用于该链路的可用带宽已从3增加至 10。
一旦节点已经删除用于受影响连接的旧路由信息并向拓朴数据 库返回与受影响连接相关联的带宽,节点就会开始为受影响连接计算 恢复路由。在图6所示的实例中,为红色连接所计算出的恢复路径是 从A到E、然后到C。用于红色连接的连接条目52会被修改为包括 该新路由信息。例如如图6所示,用于红色连接52的新路由已被计 算为《A, P3, P3, E, P4, P4, C}。节点B和C这二者都已为红色连接计 算出相同路由,并将该路由包括在它们的连接数据库中。
当已为连接计算出路由时,该连接所占用的带宽会反映在拓朴数 据库中。因而,如图6所示,因为红色连接需要7个单位带宽,所以 在图6中,用于从节点A到节点E的链路56和从节点E到节点C的链路58上的可用带宽的条目已减少了 7个单位。
此后节点将前进到卸载转发状态,或者安装转发状态,这取决于 它们是否处于恢复路由上。在图6中,节点B处于用于红色连接的原 始路由上,但是恢复路由并不包括节点B。因而,节点B会除去用于 红色连接的转发状态。与之对照,节点C处于原始路由上,同时也处 于恢复路由上。尽管如此,恢复路由在节点C上的不同端口上通过。 因而,节点C或者将从转发信息库中删除旧连接并安装新的转发状 态,或者将改变用于红色连接的现有转发状态以反映新的转发状态 62。
如上提到的那样,靠近故障的节点会检测到故障并向网络上的其 它节点扩散故障通知。靠近故障的节点此后会进行上文中结合图3-6 所描述的过程,以更新其拓朴数据库和连接数据库,以除去用于受影 响连接的路由信息并安装用于受影响连接的恢复路径的路由信息。
在接收到由节点B和C扩散的故障通知时,网络上的其它节点会 进行该相同过程。因为故障通知会花费有限的时间量用来在整个网络 范围内传播,所以不同节点会在不同时间进行该过程,并且在发生处 理时相互之间会略微不同步。为防止其在网络上造成环路,可执行诸 如反向路径转发检查(RPFC)之类的过程,以防止在意外端口到达 的分组在网络上被转发。
图7示出了节点A、 D和E在收到故障通知后所进行的过程。在 图7所示的实例中,已经假设在节点B和C已完成更新其拓朴数据库 等等时,节点A、 D和E将仅接收故障通知。如图7中所示,节点C 已安装用于红色连接的转发状态以在端口 P4上向端口 E输出用于红 色连接的数据。尽管如此,节点E没有安装用于红色连接的转发状态。 因此,节点E会丢弃在红色连接上从节点C接收的分组。节点E还可 实施RPFC以确定其是否正在正确的端口上接收红色分组。因为其需 要有限时间量来在网络上扩散通知,并且在计算路由时需要每个节点 使用网络的一致视图,所以下文将更为详细地描述使用时间戳来说明 这些处理延迟并说明不同故障通知在不同时刻到达的潜在性。
图7示出了节点A、 D和E在收到故障通知时的状态。如图7中 所示,节点会首先确定哪些连接受到故障影响,并从连接数据库中除 去用于那些连接的路由信息。与该连接相关联的带宽还会被返回到拓朴数据库,以使得当节点为受影响的路由计算恢复路径时,其是可用 的。
图8示出了该过程的下一部分,其中,节点为每个受影响的连接 计算恢复路由,更新拓朴数据库以反映分配给恢复路由的带宽,并且 更新转发状态以使得节点能够处理恢复路由上的业务。
具体地,如图8中所示,节点A、 D和E中的每个节点都会将用 于红色连接的新路由计算为红色-(A, P3, P3, E, P4, P4, C},并-把该路 由存储在它们的连接数据库中。这些节点还会更新其拓朴数据库以更 新红色连接已被路由于其上的链路上的可用带宽。因而,节点A-E之 间以及节点E - C之间的链路上的可用带宽量已经减少,减少量为分配 给红色连接的带宽量。
最后,节点会安装转发状态,以使得能在网络上实施恢复路由。 在节点之前安装了用于原始连接的转发状态的情况下,转发状态在必 要时将被删除或修改以反映用于该连接的恢复路由。
如上所述,当要在网络上建立连接时,发起节点会将与连接相关 联的约束扩散到网络上。这允许如果节点处于用于该连接的路由上则 每个节点都为连接计算路由并选择性地安装转发状态,以使得该连接
跨越网络而端到端地联系起来。在检测到故障时,需发生的唯一的扩 散是以下扩散向网络单元通知故障的发生。这些节点可以将故障通 知扩散与被存储在其连接数据库中的连接信息一起使用来确定哪些
连接受到影响并为每个受影响的连接重新计算恢复路由。再一次,如 果这些节点都利用对网络拓朴的 一致视图和对连接的 一致视图来进 行操作,则每个节点会以相同次序执行同一组计算,以便对于受到故 障影响的连接而言达到相同的恢复路由集。因而,类似于原始路由, 恢复路由会跨越网络而端到端地联系起来。因而,可以恢复连接而不 需要在网络上扩散新连接路由。
此外,因为恢复是通过以优先级次序处理连接来实现的,所以不 会出现竟争性连接之间的冲突,所述冲突在恢复路径由首端节点计算 并在网络上扩散的情况下是可能的。此外,通过使得节点根据优先级 次序来针对计算确定恢复路径,实现了全网络范围的恢复优先化。
如结合图3-8所示的那样,拓朴改变通知花费有限的时间量来在 网络上传播。在网络上发生单个故障的情况下,如图3-8所阐释的那
17样,将被应用的拓朴改变通知的数目不会很大。尽管如此,在条件迅 速恶化并且正发生多个故障的情况下,若干拓朴改变通知可能被快速 发出。此外,拓朴改变通知可涉及恢复以及网络上的故障。此外,当 网络上正发生一个或多个故障和/或恢复时,可发生连接添加和/或删 除。因而,被接收和处理的拓朴改变通知的次序可影响网络上的节点 计算用于连接的路由的方式。
根据本发明的 一 个实施例,每个拓朴改变通知由生成拓朴改变通 知的网络节点加上时间戳。网络上的节点根据时间戳按时间次序应用 拓朴改变。因为每个节点以相同的次序应用相同的拓朴改变通知,所 以它们以什么次序被该节点接收,是无关紧要的。换句话说,每个节 点根据时间戳重新安排拓朴改变通知,以使得节点能按时间次序应用 这些通知。
根据本发明的 一 个实施例,所有事件都被加上时间戳以使得在节 点对照拓朴数据库、连接数据库和转发状态来处理这些事件之前,节 点可对这些事件进行排序。这些事件包括链路故障、链路复原
(recovery)、连接添加、连接删除以及影响网络拓朴的其它事件。 为该事件发起扩散的节点对每个此类事件都加上时间戳。
为使节点能够确保它们以正确次序应用拓朴更新(故障通知和复 原通知)以及连接请求和删除,节点为其拓朴保存时间戳。当具有其 时间戳为Ti的拓朴的节点知悉具有时间戳Tj的事件(这指示该事件 在更晚的时间点j〉i上发生)时,节点会应用时间戳为Tj的事件,并 且将拓朴时间戳更新为Tj。该节点还存储事件Tj的副本。
当具有拓朴时间戳Tk的节点知悉时间戳为Tj的事件(该事件发 生在其当前拓朴的时间戳之前,k〉j)时,其会回复到先前拓朴,对这 些事件进行重新排序以包括新接收到的时间,并重新应用自先前拓朴 的时间戳以来已经发生的所有事件。在图9-11上显示这可以如何被实 施的实例。
图9示出了当按次序接收到事件时节点将如何处理拓朴改变。如 图9所示,节点会具有基础拓朴,该基础拓朴被选择成处于一个向后 足够远的时间点,以使得在统计上将不可能接收到在时间上先于基础 拓朴的时间戳的后续事件通知。例如,如果其用最多N个时间单位向 网络上的所有节点散布事件,则基础拓朴会在至少N个时间单位之前,良映网络拓朴。
在图9所示的示例性序列中,节点此后接收到时间戳为Tl的事 件。该事件将被处理以更新该节点的拓朴。该节点的新拓朴将会被加
上时间Tl的时间戳,以与最近应用的事件的时间戳相一致。
如图9所示,如果节点随后接收到时间戳为T2的另一事件(这 指示该事件发生在节点拓朴的时间戳Tl之后的时间点),则节点会 知悉,时间戳T1处的拓朴相对于时间戳为T2的事件而言是最新的, 并且节点此后会直接应用事件T2以更新其拓朴。用于该拓朴的新的 时间戳将被更新为T2。只要事件是以时间次序被接收的,则当事件被 接收到时,该过程会以节点应用事件而继续进行。
尽管如此,在所接收到的事件的时间戳在时间上早于与节点拓朴 相关联的时间戳的情况下,节点将需要回到先前拓朴,应用新接收到 的事件,并继续应用其它事件,以使得以时间戳次序应用事件。图10 和11显示了两种实现其的可能方式。
例如,如图10和11的每个图所示,假设节点最初接收与以上结 合图9所讨论的相同序列的事件。具体地,节点首先接收到时间戳为 Tl的事件,并应用该事件以创建具有时间戳T1的拓朴数据库。接着, 该节点接收到时间戳为T2的事件,并更新其拓朴数据库以反映此第 二事件。因而,在该时间点,节点具有时间戳为T2的拓朴。
现在假设后续接收到具有在当前拓朴的时间戳之前的时间戳T3 的新事件。具体地,T3<T2。在图IO所示的实施例中,节点可回复到 具有在时间上早于与新事件相关联的时间戳的时间戳Tl的中间拓朴, 并且此后重新应用所有自从该时间点以来已经发生的事件。在图10 中,这是通过使节点回复到时间戳为Tl的拓朴、应用新接收到的事 件(事件T3)、并且此后应用之前所接收到的事件(事件T2)来阐 释的。
替代地,如图11中所示,节点可回复到基础拓朴并以时间戳的 次序应用所有事件。因而,例如在图11中,节点会获取(retrieve) 其基础拓朴,丟弃它已存储的任何其它拓朴,并以时间戳的次序将所 有之前所接收到的事件与新接收到的事件一起重新应用,以创建新拓 朴。
如结合图9-11所讨论的那样,在事件可能被无序地接收的情况
19下,节点需要能够回到先前版本的拓朴数据库,以确保在事件被应用 到拓朴数据库之前所有事件能够被正确排序。这确保了网络上的所有 节点以相同次序应用事件,并且因此,在为网络上的连接计算路由时, 所有节点都利用对网络拓朴的相同视图来操作。
因为给定节点可在网络上操作达延长的时间段,从存储器/存储装 置角度看,保存无限数量版本的拓朴数据库可能变得很困难。为緩和 这 一 困难,可能需要网络节点仅存储被有理由认为在稍后时间点上必 要的那些版本的拓朴数据库,以使得网络节点在统计上不可能接收到 时间戳早于其拓4卜数据库的时间戳的事件。
在典型网络中,对扩散遍及全网络所需的时间量存在限制。例如, 如果节点知悉事件并且生成在网络上扩散的通知,则网络上所有可达 到的节点会在特定时间段内接收到扩散。将假设该扩散限制为N个时 间单位,例如,可以是若干秒或更短。因为N表示每个节点接收到来 自于任何其它节点的扩散将花费的理论上最大时间量,所以节点可预 测其不会接收到任何需要其回复到所加时间戳为多于N个时间单位 之前的拓朴的事件。
因而,如图12所示,节点可实施滑窗,以使得其基础拓朴是在 时间上至少早于其当前拓朴N个单位时所计算出的拓朴,或者是在时 间上至少早于其最新事件通知N个时间单位时所计算出的拓朴。取决 于实施方式,节点可保存每个中间拓朴(图IO)或者可仅保存基础拓 朴和当前拓朴(图11)。每个节点还会保存自与基础拓朴相关联的时 间以来已发生的事件的有序列表。如果后来有必要将另 一 事件插入该 有序列表,则节点会回到基础拓朴(或回到中间拓朴)并且重新应用 包括新插入的事件在内的事件,以便根据事件的新序列来重新计算新 拓朴。基础拓朴可被更新以使得基础拓朴被选择成先于当前拓朴至少 N个时间单位的最新拓朴。如果在N个时间单位中没有知悉事件,则 当前拓朴变成基础拓朴,并且可从存储器中删除在前的拓朴。此外, 能够从存储器中删除所存储的至少N个时间单位那么久的所有事件。
图14是可由节点在接收到诸如故障通知之类的事件时,用来更 新其拓朴数据库和转发状态的过程的流程图。如图14所示,当节点
接收到故障通知(100)时,其会删除用于受故障通知影响的所有连 接的路由信息(102)。节点还会将连接所占用的任何带宽沿路由返回至拓朴数据库中(104)。在完成这些过程时,节点准备好为受影
响的连接计算新路由。因而,节点会继续以优先级次序为每个受影响
的连接计算恢复路由(106)。通过首先为较高优先级的连接计算恢 复路径,可在网络上实现全网络范围的连接优先级恢复过程。如果用 于该连接的新路由并未通过该节点,则该节点会除去用于该连接的、 任何所安装的转发状态(108)。尽管如此,如果用于该连接的新路 由确实通过了该节点,则该节点或者安装用于该连接的转发状态或者 修改任何现有转发状态,以便与用于该连4妻的新计算的转发状态相一 致(110)。
图15是可由节点用于把事件序列应用到拓朴数据库的过程的流 程图。如图15所示,当节点接收事件(120)时,它会将事件的时间 戳与其当前拓朴的时间戳进行比较(122)。如果事件的时间戳在当 前拓朴的时间戳之后,则节点无需回复到先前拓朴,并且因此只是会 将事件应用至当前拓朴(124)。例如,在事件为故障通知的情况下, 该节点可使用结合图14所描述的过程来应用事件。在该事件是其它 类型的事件(诸如连接添加)的情况下,该节点会继续为连接确定路 由并且在必要时安装转发状态。对于连接删除,节点可只是更新拓朴 数据库以显示最新可用的带宽,并删除用于该连接的任何转发状态。
如果该事件的时间戳指示其发生在节点的当前拓朴的时间戳之 前的时间点上,则节点将需要回到先前保存的拓朴数据库版本。因而, 节点会选择其时间戳在该事件的时间戳之前的拓朴(126)。所选择 的拓朴可以是基础拓朴或者介入式(intervening)拓朴,在介入式拓 朴中,节点已经存储了多于一个在前拓朴。在选择拓朴之后,节点将 从事件记录中获取事件列表(128),把新事件插入到列表中的适当 的按时间排序的位置处,并且此后把来自事件记录的事件和当前事件 以正确的时间次序应用到所获取的在前拓朴(130)。
一旦已将事件应用到拓朴,节点就会用已经被应用到拓朴的最新 事件的时间戳来更新当前拓朴的时间戳。新接收到的事件也将被添加 至事件记录中(134)。
因为首要目标是使所有节点以相同的次序应用拓朴改变,所以网 络上的节点的同步并不重要。相反,如果节点之一与其它节点不同步, 则其会生成有些不正确的时间戳。因此,其它节点可能会以与真实时间次序不同的次序(即次序颠倒)应用从该节点接收的更新,所述真 实时间次序是网络上事件实际发生的次序。这是可以容许的,原因是 主要目标是使所有节点以相同次序来应用事件,而不考虑所用次序是 否为事件发生的实际次序。换句话说,只要节点都以相同方式来应用 事件,则节点以不正确的次序来应用事件是没有问题的。优选地,节点应该几乎相互同步,以使得当实际发生更新时,可 在时间上紧密应用更新。当节点相互之间严重不同步时,节点用来选择基础拓朴的时间段N (见图12)应被增加至计及非同步。上述功能可被实施为程序指令集,该程序指令集被存储在计算机 可读介质中并在计算机平台上的一个或多个处理器上执行。尽管如 此,对于本领域内的技术人员而言很显然的是,能够使用分立元件、集成电路、诸如专用集成电路(ASIC)、结合可编程逻辑器件(诸如现场可编程门阵列(FPGA))使用的可编程逻辑、或微处理器、状态机、或包括上述各项的任意组合在内的任何其他器件来实现本说明书中所描述的所有逻辑。可编程逻辑可临时或永久固定在有形介质(诸如只读存储器芯片、计算机存储器、磁盘或其它存储介质)中。所有这些实施例意在落入本发明的范围之内。应当理解,在本发明的精神和范围内,可对附图中所示出的以及本说明书中所描述的实施例进行各种改变和修改。因而,本说明书意 在以阐释性而非限制性方式来解释上述描述中所包含的以及附图中所示出的所有内容。本发明仅由所附权利要求及其等价物来限定。2权利要求
1.一种在网络中进行分布式连接建立的方法,所述方法包括以下步骤由在链路状态协议控制的以太网上的节点保存对网络拓扑的一致视图;当将在网络上建立新连接时,通告与新连接相关联的约束;由在链路状态协议控制的以太网上的每个节点基于所述约束来为新连接计算路由;以及由所计算的路由上的节点选择性地为新连接安装转发状态。
2. 根据权利要求1所述的方法,其中所述网络是链路状态协议 控制的以太网。
3. 根据权利要求1所述的方法,其中所述节点保存连接数据库, 所述连接数据库包含定义网络上已建立的连接和用于那些连接的路 由的条目。
4. 根据权利要求1所述的方法,其中所述约束至少包括网络上 的首端节点、网络上的目的节点、对与连接相关联的带宽的指示以及 对连接的优先级指示。
5. 根据权利要求4所述的方法,还包括按优先级次序为连接计 算路由的步骤。
6. 根据权利要求5所述的方法,还包括如果节点处于所计算 的用于连接的路由上,则由节点选择性地为连接安装转发状态。
7. 根据权利要求1所述的方法,其中网络上的每个节点既保存 具有第 一 时间戳的网络拓朴的当前视图、具有第二时间戳的网络拓朴 的先前视图,又保存在与网络拓朴的先前视图相关联的时间和与网络 拓朴的当前视图相关联的时间之间已发生的加时间戳的事件的列表。
8. 根据权利要求7所述的方法,还包括接收包含第三时间戳的 事件通知的步骤。
9. 根据权利要求8所述的方法,其中所述事件通知涉及以下项 中至少之一在网络上添加新节点或链路、在网络上删除节点或链路、 连接添加、连接删除、网络上的节点或链路故障、以及网络上先前故 障的节点或链路的复原。
10. 根据权利要求8所述的方法,还包括将事件通知的第三时间戳与网络拓朴的当前视图的第 一 时间戳进行比较的步骤。
11. 根据权利要求10所述的方法,还包括以下步骤如果事件 通知的第三时间戳在网络拓朴的当前视图的第 一时间戳之后,则将事 件通知应用于当前拓朴。
12. 根据权利要求10所述的方法,还包括以下步骤如果事件 通知的第三时间戳在网络拓朴的当前视图的第 一 时间戳之前,则回复 到网络拓朴的先前视图,并且把来自于加时间戳的事件的列表的事件 与事件通知一起重新应用。
13. —种在链路状态协议控制的以太网中实施基于全网络范围优 先级的连接恢复的方法,所述方法包括以下步骤由网络上的节点存储与网络上已建立的连接相关联的约束和路 由信息,所述约束包含与网络上已建立的连接相关联的优先级信息;接收与网络上的故障相关联的故障通知,所述故障影响网络上已 建立的连接子集;由网络上的节点根据优先级信息为受故障影响的连接子集计算 恢复路由,所述节点根据约束信息来计算所述恢复路由。
14. 根据权利要求13所述的方法,其中所述节点根据优先级信 息来为连接计算恢复路由,以在为较低优先级的连接计算路由之前, 为较高优先级的连接计算恢复路由。
15. 根据权利要求14所述的方法,还包括如果节点处于所计 算的用于连接的路由上,则由节点选择性地为连接安装转发状态。
16. —种由在链路状态协议控制的以太网上的首端节点建立新连 接的方法,所述方法包括由首端节点扩散链路状态协议控制消息,该消息包含与将在链路 状态协议控制的以太网上建立的新连接相关联的约束,所述约束至少 包括与新连接相关联的链路状态协议控制的以太网上的目的节点、与 新连接相关联的带宽、以及新连接的优先级。
17. —种由在链路状态协议控制的以太网上的节点选择性地安装 转发状态的方法,所述方法包括以下步骤接收链路状态协议控制消息,该消息包含与将在链路状态协议控 制的以太网上建立的新连接相关联的约束信息;基于所述约束和链路状态协议控制的以太网的拓朴的视图,为新连接计算路由;更新网络拓朴的视图,以反映所计算的路由上的新连接;以及 如果节点处于所计算的用于新连接的路由上,则由节点选择性地 为新连接安装转发状态。
18. 根据权利要求17所述的方法,还包括以下步骤 由节点保存连接数据库,所述连接数据库包含与网络上已建立的连接相关联的条目,所述条目至少包含与连接相关联的约束信息。
19. 根据权利要求17所述的方法,其中所述连接数据库以优先 级次序保存连接。
20. 根据权利要求17所述的方法,还包括以下步骤 接收指示网络上发生故障的故障通知;更新网络拓朴的视图以反映故障;根据连接数据库来确定哪些连接受到故障影响;以及以优先级次序为受影响的连接计算恢复路由。
21. 根据权利要求20所述的方法,其中为受影响的连接计算恢 复路由的步骤包括获取与连接相关联的约束,并对照网络拓朴的视 图来处理所述约束以便为所述连接确定恢复路由。
22. 根据权利要求21所述的方法,其中为受影响的连接计算恢复路由的步骤包括将与受影响的连接相关联的带宽返回到网络拓朴数据库; 选择最高优先级连接;为最高优先级连接确定恢复路由;为来自于拓朴数据库的最高优先级的连接分配带宽;以及 如果节点处于用于最高优先级连接的恢复路由上,则由节点选择 性地安装转发状态;以优先级次序为剩余连接重复选择、确定、分配和选择性安装的步骤。
23. —种在链路状态协议控制的以太网上的节点,所述节点包括 具有第一时间戳的第一拓朴数据库;以及具有第二时间戳的第二拓朴数据库;其中第 一 和第二拓朴数据库表示在两个不同时间点上链路状态 协议控制的以太网的拓朴的视图。
全文摘要
通过使用正被用于控制网络上的转发的路由协议的扩展来扩散连接约束。节点保存拓扑和连接数据库并基于所述约束来为连接计算路由。如果节点处于所计算的用于连接的路由上,则它将为连接安装转发状态。因为每个节点具有网络拓扑的一致视图,并且已经被提供有与连接相关联的约束,所以网络上的每个节点将为连接计算出相同的路由。当出现故障时,节点将在全网络范围优先级的基础上为连接计算恢复路径,以使得能够为受影响的连接创建恢复路径,而无需告知恢复路径。时间戳被使用来允许无论事件到达的次序如何,节点都以一致次序来应用事件。
文档编号H04L12/413GK101682518SQ200880018483
公开日2010年3月24日 申请日期2008年6月2日 优先权日2007年6月1日
发明者D·斯卡莱基, P·阿什伍德-史密斯 申请人:北方电讯网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1