链路状态协议控制的网络中路由选择信息的分布式存储的制作方法

文档序号:7679774阅读:184来源:国知局
专利名称:链路状态协议控制的网络中路由选择信息的分布式存储的制作方法
技术领域
本发明涉及路由选择信息管理,并且更具体来说,涉及用于链路 状态协议控制的网络中的路由选择信息的分布式存储的方法和设备。
背景技术
数据通信网络可包括耦合在一起并且配置成相互传递数据的各种 计算机、服务器、节点、路由器、交换机、网桥、集线器、代理和其 它网络装置。这些装置在本文将称作"网络元件"。通过利用一条或 多条通信链路在网络元件之间传送例如数据帧、分组、信元或段等的 协议数据单元,经由数据通信网络来传递数据。当特定的协议数据单 元(PDU)通过网络在其源与其目的地之间传播时,它可以由多个网络 元件和交叉的多条通信链路来处理。
当网络元件接收到向未知网络地址传送数据的请求时,网络元件 可尝试获得到达该未知网络地址所需的路由选择信息。存在确定PDU 的路由选择信息的若干常见方式。例如,在以太网网络中,请求可由 网络元件广播到网络上,以便查看是否任何其它网络元件知道如何到 达该特定地址。当广播网络元件接收到应答时,它知道如何将以太网帧转发给预期的地址。这通常结合提供商边缘节点发生,所述提供商 边缘节点需要将特定客户地址映射到提供商MAC地址,使得帧可被 转发通过提供商网络。在这种情况下,提供商边缘节点可具有到达所 有其它提供商边缘节点的路由选择信息,但是可能没有通过所有其它 提供商边缘节点可得到的所有客户路由的路由选择信息。提供商边缘 节点将需要确定其它提供商边缘节点的哪一个能够到达该客户路由,
之后将PDU转发到那个提供商边缘节点上。
在所请求地址是IP地址的情况下,查找与该IP地址关联的资源
的网络位置的常见方式是将请求传递到域名服务(DNS)。 DNS系统是 一种分级系统,它依靠将更通用的地址緩存到整个网络的分布式DNS 服务器上,使得下级服务器能够处理许多IP解析请求而无需DNS根 服务器或者分级结构中更高级的那些服务器涉及到其中。具体来说, 具有未知IP地址的节点将请求传递给它的本地DNS服务器,并且如 果那个服务器不具有必要的信息,那么它将请求进一步沿分级结构向 上传递,直至到达具有所需信息的副本的服务器。
随着提供商网络上的节点数量增加,以及通过网络可得到的客户 路由数量增加,通过对所有节点广播请求来解析路由请求变得越来越 低效。具体来说,广播请求需要网络上的各节点处理每个请求,这在 节点数量增加以及请求数量增加时变得低效。
类似地,随着IP电话的出现,对IP地址的一次性请求的数量预 计会增加。例如,如果所请求的IP地址与网络上所进行的电话呼叫的 目的地关联,则预计对与这些IP地址关联的路由选择信息的请求中的 大多数将是一次性请求,因为不可能许多人始终呼叫电话号码的同一 小集合。随着对IP地址的一次性请求的比例增加,DNS服务的分级性 质的效率可预计会降低,因为多个请求更加不可能对同一个IP地址进 行。具体来说,緩存对IP地址的相对近的请求可预计不太有价值,其 中在特定时间周期内将会^t妾收到对同 一个IP地址的第二次请求更加不 可能。这可预计增加对DNS根服务器的需求,并且可能使DNS服务成为网络上的瓶颈。
因此,有利的是提供一种使路由选择信息在网络上可得到的新方式。

发明内容
实现分布式哈希表以便存储网络上的路由选择信息。根据本发明
的一个实施例,结合链路状态路由选择协议的实现来交换的节点ID用 作分布式哈希表中的密钥,并且路由存储在网络上的一个或多个节点 处。当路由被获知时,对照密钥集合来处理该路由以便确定哪些节点 应当存储该路由。当需要路由时,对照密钥集合来处理该路由以便确 定哪些节点应当具有路由信息。对照密钥集合来处理路由的方式在两 种情况下都是相同的,使得DHT可用于存储和检索网络上的路由信 息。DHT可实现为存储MAC地址、IP地址、MPLS标签或者其它受 关注信息,以便使路由能够由网络上的网络元件存储和获知。


通过所附权利要求书中的详细资料来指出本发明的方面。通过以 下附图中示例来说明本发明,附图中相似的参考标号表示相似元件。 以下附图公开本发明的各种实施例,仅用于说明而不是要限制本发明 的范围。为了简洁起见,可能不是每一个组件都在每张附图中标记。 附图包括
图1是可用来实现其中节点实现DHT的本发明的 一个实施例并且 示出路由添加和路由查询操作的示例网络的原理框图2是根据本发明的一个实施例、可用来实现节点并且参与DHT 的网络元件的原理框图3是示出根据本发明的一个实施例、可用于建立和使用DHT来 存储路由信息的过程的流程图4-6是根据本发明的一个实施例、可用来实现由诸如图2的网络元件之类的网络元件所存储的表以便使网络元件能够参与DHT的 数据结构;
图7-8示出根据本发明的一个实施例、与将节点添加到DHT有关 DHT进行变更的方式;以及
图9-10示出根据本发明的一个实施例、与从DHT删除节点有关 DHT进行变更的方式。
具体实施例方式
图1示出示例通信网络10,其中网络元件12经由链路14而互连。 网络元件可定义自主网络,并且实现诸如中间系统到中间系统(IS-IS) 或开放最短路径优先(OSPF)之类的链路状态路由选择协议,以便允许 计算网络元件12之间的路由。网络10上的网络元件将交换问候消息 以便获知节点之间的相邻性,并且交换链路状态通告以便使网络上的 所有节点能够构建表示网络的拓朴的链路状态数据库。
虽然结合描述实施例将提供特别强调,在所述实施例中网络是实 现链路状态协议以便控制以太网网络上路由选择的以太网网络,但是 本发明并不局限于这种方式,因为网络10也可实现为IP网络、MPLS 网络或者另一种网络。
通过采用无回路最短路径转发(loop-free shortest path forwarding) 提供网络容量的更有效使用,使用链路状态协议来控制以太网网络使 以太网网络能够从LAN空间缩放(scale)到WAN或提供商网络空间。 不是通过使用与透明桥接结合的生成树协议(STP)算法来利用各节点 处获知的网络视图,而是在链路状态协议控制的以太网网络中,形成 网状网络的网桥交换链路状态通告,以便使各节点能够具有网络拓朴 的同步视图。这经由链路状态路由选择系统的充分理解的机制来实现。 网络中的网桥具有网络拓朴的同步视图,了解必要的单播和多播连通 性,能计算网络中任一对网桥之间的最短路径连通性,并且能根据网 络的所计算视图单独装载(populate)其转发信息库(FIB)。在2006年10月2日提交的标题为"提供商链路状态桥接" ("Provider Link State Bridging")的申请No.ll/537,775中公开这种性质 的链路状态协议控制的以太网网络的一个示例,由此通过引用将其内 容结合到本文中。正如那个申请中更详细地描述,链路状态协议控制 的以太网网络中的节点交换问候消息以便获知网络上的其它节点的相 邻性,并且传送链路状态通告以便使网络上的各节点能够构建链路状 态数据库。链路状态数据库可用来计算通过网络的最短路径。然后, 各节点装载转发信息库(FIB),它将由节点用来进行转发判定,使得以 太网帧将通过所计算的最短路径转发到目的地。由于到特定目的地的
最短路径将取决于业务的源,所以网络业务可比一个或多个生成树祐:
用来携带网络上的业务的情况分布于更大数量的链路。
在给定管理域内,形成以太网网络的网络元件可基于作为给定管
理域的部分的网络上网络元件的目标MAC地址来转发分组。当业务 到达网络的边缘时,边缘网络元件将把业务映射到服务,并且在通过 与服务关联的网络的路径上转发业务。
这可能发生的一种常见情况是客户业务将通过提供商的以太网网 络来路由。使用客户MAC寻址空间来寻址的客户帧将穿过(traverse) 客户网络,直至它到达客户网络的边缘。当帧到达提供商网络时,提 供商网络将查看目标地址(C-MAC地址),并且确定提供商网络上的哪 一个节点能够到达那个客户MAC地址。正如下面更详细地进行描述, 分布式哈希表可用于存储提供商-客户关联,使得提供商网络元件能 够通过向DHT发出查询来获知这种关联。
作为另一个示例,在IP网络中,与IP地址关联的资源的位置可 能需要由IP网络上的路由器来查找。根据本发明的一个实施例,IP地 址和网络位置可存储在DHT中,其中网络上的节点实现DHT的部分。 作为又一个示例,在MPLS网络中,标签边缘路由器可能需要获知哪 一个标签将用于在通过网络的标签交换路径上转发业务。标签可存储 在网络元件所实现的DHT中,以便允许才全索业务流的标签。正如下面更详细地进行描述,可形成分布式哈希表,使得网络上 的各节点具有形成分布式哈希表中的密钥的节点ID。各节点则配置成 存储路由选择数据总量的子集,其中哈希值充分接近其密钥。当节点 获知路由时,它存储该路由的本地副本,并且将路由的副本转发给网
络中配置成存储DHT的那个部分的那些节点(即,其ID '接近,路由 的密钥/ID的节点)。节点ID和路由ID可以以一致的方式进行哈希(hash) 或者其它处理,使得节点ID和路由ID占用同一空间。
实现链路状态路由选择协议还使所有节点能够知道网络上所有其 它节点的标识。具体来说,作为链路状态路由选择协议的部分,节点 均将传送包含其节点ID以及与它们所连接的链路相关的信息的链路 状态通告。这种信息将用来形成链路状态数据库。正如本文更详细地 描述,根据本发明的一个实施例,结合链路状态路由选择协议所交换 的节点ID可与分布式哈希表中存储的路由密钥进行比较,使得各节点 从其链路状态数据库了解到哪些节点负责将哪些路由密钥存储在 DHT中。然后,密钥可用于以确定性方式存储以及检索来自DHT的 路由信息。通过使用链路状态数据库中的节点信息来确定应当由那个 节点存储的DHT的密钥,能够简化密钥的计算,以便使DHT更易于 实现。另外,对LSDB的变更可传播入DHT,使得DHT成员可在网 络拓朴改变时自动调整。
分布式哈希表是对等技术,在E.RESCORLA的标题为"分布式哈 希表入门,,("Introduction to Distributed Hash Tables")的论文以及 P.MAYMOUNKOV等人的标题为"Kademlia:基于XOR量度的对等 信息系统"(Kademlia:A Peer-to-Peer Information System Based on the XOR Metric)的论文中对它进行了更详细地描述,由此通过引用将其内 容结合。根据本发明的一个实施例,通过使数据存储在分布式哈希表 来将这类关联的数据均匀地分布于网络,诸如用户到提供商地址关联 和IP路由选择信息之类的路由选择信息可存储在极大的网络中,其中 网络元件各自承担存储分布式哈希表的一部分的职责。从LSDB所确定的节点ID可与DHT中的路由/密钥进行比较,以便使节点能够确定 应当存储已知路由选择信息的位置以及可找到未知路由选择信息的位置。
当节点接收到路由信息时,它将存储该路由信息,并且使那个信 息在请求时可用。通过使各节点存储路由选择信息的一部分,不需要 节点存储整个路由选择表,使得对任一个节点的存储要求可降低。通 过指定冗余因子,信息的多个副本可存储在DHT中,使得任一个节点 的故障不会影响其它节点查找特定路由信息的能力。
图2示出可用于实现本发明的一个实施例的网络元件的一个示 例。如图2所示,网络元件包括数据平面50和控制平面60。数据平 面50 —般包括配置成与网络上的链if^4妾口的输入/输出卡、配置成对 于通过I/O卡52所接收的数据执行功能的数据卡54以及配置成在数 据卡/I/O卡之间交换数据的交换结构(switchfabric)56。控制平面包含处 理器62,所述处理器62包含配置成实现DHT进程64、消息传递进程 66和链路状态路由选择进程67的控制逻辑。消息传递进程可用于例 如格式化DHT添加消息和DHT查询消息、将包含路由选择信息的 DHT条目添加入DHT以及从DHT提取DHT条目。其它进程也可在 控制逻辑中实现。与DHT和消息传递进程关联的数据和指令可作为 DHT软件68存储在存储器70中。与链路状态路由选择进程67关联 的数据和指令可作为协议栈软件69存储在存储器70中。本地数据表 72、远程数据表74、成员表76和链路状态数据库78的示例在本文更 详细地描述,它们可保存在存储器70中、保存在网络元件16内的其 它存储器中或者接口到网络元件并且存储在外部存储器中。
图3示出可用于实现本发明的一个实施例的进程。图3提供该进 程的概览;下面结合图4-9来阐明附加细节,图4-9示出根据本发明的 一个实施例、可用于实现分布式哈希表(DHT)的部分的示例表的数据 结构。
如图3所示,节点交换链路状态通告(IOO),以便获知网络上参与DHT的所有节点的MAC地址。各节点将使用节点ID来构建BHT成 员表(参见图4),它将使节点能够确定节点的哪一个应当用于存储特定 密钥/路由,以及使节点能够确定应当发送特定密钥/路由的查询的位 置。例如,网络上的各节点将具有MAC地址。MAC地址可经过哈希 以便创建节点ID,然后可对节点ID排序(order)以便创建成员表(102)。 备选地,节点MAC地址本身可以是节点ID。虽然将描述其中节点 MAC地址用于创建节点ID的本发明的一个实施例,但是本发明并不 局限于这种方式,因为其它信息可用作DHT的基础。例如,节点的IP 地址可用来形成节点的DHT ID的基础。
网络上的节点被连接到客户LAN,并且获知的=客户-提供商关 联(C-MAC至P-MAC对),它们也将被称作路由。路由与客户MAC地 址(至该对的密钥)关联,所述客户MAC地址可用于确定路由应当存储 在分布式哈希表中的位置。
因此,如图3所示,当节点获知路由时,节点对与该路由关联的 C-MAC地址执行哈希,以便获得路由/密钥ID(104)。该哈希函数与用 于创建节点ID的哈希函数相同,使得路由ID和节点ID具有同 一格式, 并且因此可易于使用XOR过程或其它数学过程进行比较。然后,节点 将对路由ID与(102)中找到的节点ID进行比较,以便确定节点的哪一 个充分"接近"该路由ID。结合图1更详细地描述如何执行比较的一 个示例。如图1所示,假定节点1001获知它要存储在分布式哈希表中 的<密钥,值〉对(本例中为OMAC/P-MAO),使得所有节点能够有权 访问<密钥,值>对。例如,假定节点1001获知路由〈1100,V1〉。节点 1001将对密钥(1100)与所有其它节点ID执行XOR运算,以便确定哪 些节点具有最接近该密钥ID的节点ID。然后,该节点根据所使用的 比较算法(本例中为XOR运算)将把〈密钥,值>对发送给最接近的那些 节点,使得它们可存储该<密钥,值>对。在所示示例中,节点1101 和1110将与1100具有最小XOR距离,因此仅向那些节点发送 〈1100,Vl〉对供存储。由于向两个节点发送该路由供存储,所以本例中的复制因子(r印lication factor)为2(K=2)。接收该路由的节点将在其远程 数据表中存储<密钥,值>对。
如图3所示, 一旦值被存储,当节点需要获知路由时,它将对设 法找到的C-MAC地址执行哈希,以便获得路由/密钥ID(108)。然后, 节点将通过对路由ID与成员表中节点的节点ID进行比较,来确定 DHT中的节点的哪一个应当用于查询路由/密钥ID的路由选择信息。 例如,这可使用上述XOR距离过程来完成。然后,节点将把对<密钥, 值>对的请求传送给节点ID最接近高于(immediately higher)路由ID的 K个节点的至少一个(110)或者传送给具有纟皮认为最接近路由/密钥ID 的节点ID的k个节点。接收请求的节点将从其远程数据表(参见图6) 提取路由信息,并且以路由条目的路由信息(在这种情况下为所请求 C-MAC的P-MAC)响应(112)。
在图1所示的示例中,例如假定节点0011发现它需要其值的密钥。 具体来说,假定节点0011发现密钥1100,但是没有与那个密钥关联 的值。密钥可以是与从客户LAN所接收的帧关联的哈希C-MAC地址, 或者可表示诸如IP地址之类的另一实际量。节点将在密钥与拓朴中的 所有其它节点ID之间执行XOR运算,以便查找两个最接近已知密钥 的节点ID。注意,节点使用如将<密钥,值>对放入DHT时所执行的 相同值来执行同一XOR距离过程,因此可预计节点0011也将确定节 点1101和1110可能具有那个密钥的值的副本。节点0011可向节点 1101和1110传送请求密钥1100的值的请求,并且预计节点的一个或 两个将能够以值VI响应。
虽然本文已经描述了实施例,在所述实施例中通过在节点ID与路 由ID之间执行XOR运算来确定节点ID与路由ID之间的距离,但是, 本发明并不局限于这种方式,因为对值进行比较以确定节点ID与路由 ID之间的相对距离的其它数学方式也可使用。
通过使值VI在DHT中存储多次(特定数目取决于复制因子K), 请求节点可接收多个响应。但是,将值存储在DHT中的一个以上位置提供针对网络中的任一个节点的故障的弹性(resiliency),因为存储在该 节点的信息可从形成DHT的其它剩余节点重新创建和重新分发。下面 结合图7-10更详细地描述对DHT添加和删除节点。
由于网络元件正运行诸如OSPF或ISIS之类的链路状态协议,所 以各节点具有节点的列表和节点地址。这种信息可用于确定:l是供商网
络中的所有提供商节点的节点ID。当DHT用于存储客户端/提供商关 联并且客户端到提供商节点关联被获知时,完成DHT "添加"以便将 <客户端,提供商〉信息插入DHT。因此,在这种情况下,该值是其中 可找到客户端路由的提供商节点,并且客户端MAC地址是与提供商 节点的节点ID进行XOR运算以便确定哪一个提供商节点应当存储< 客户端,提供商>对的密钥。
当客户端首次想要与另 一个客户端通话时,它通过对照DHT进行 查询来向DHT请求与那个客户端的提供商关联。具体来说,客户端值 与节点ID进行XOR运算,以便确定DHT中的哪些节点应当存储那 个<客户端,提供商>地址关联,并且然后查询将被发送给DHT中被 确定存储那个关联的提供商节点。DHT中的节点将以<客户端,提供 商>对响应,使得客户端可获知哪一个提供商节点能够到达预计客户端 地址。这样,DHT添加/查询操作使用链路状态拓朴以确定性方式识别 存储/查询<客户端,提供商〉关联的少量(K)提供商节点。通过使用节 点ID作为对DHT的密钥,密钥计算过程可极大地简化。另外,由于 所有节点具有链路状态数据库的更新副本,所以所有节点具有在DHT 中正i^f吏用的节点ID的集合的当前副本,因此当DHT成员/密钥所有 权随网络拓朴的变更而变更时,无需附加信令机制来更新节点。
密钥可以是以太网MAC地址、诸如EPV4或IPv6地址之类的IP
的其它公共或专有地址。类似地,要随特定密钥一起存储在DHT中的 值也可以是以太网MAC地址、诸如IPV4或IPv6地址之类的IP地址、 NSAP地址或者包括MPLS标签或其它标签的其它公共或专有地址。一般来说,在所有正使用分级路由选择系统并且必须存储映射以便从 上级地址映射到下级地址的情况下,与任一个或两个地址的格式无关,
DHT可用于以有效方式来存储这种关系。类似地,节点和路由ID可 取自开放式系统互连基本参考模型(OSI)层的同 一层,或者可取自不同 的层。例如,节点和if各由ID都可以是第2层值(MAC地址)、都可以 是第3层值(IP地址)或者可以是它们两者,即,节点ID可以是IP地 址而路由ID可以是MAC地址,或者相反地,节点ID可以是MAC地 址而if各由ID可以是IP地址。
图4-6示出可由网络上的节点的一个或多个保存以便实现本文所 述DHT的示例DHT表。在这些图中,图4示出包含节点ID的列表的 DHT成员表的示例。节点ID可以是如从链路状态数据库所获知的网 络上节点的地址值,或者备选地可以由这些地址值的^^合希来形成。在 所示示例中,节点ID表包含从路由选择系统获得的9个值。具体来说, 诸如图1所示的网络之类的网络上的节点假定为实现链路状态路由选 择协议,其中各节点交换链路状态通告以便使网络上的各节点能够构 建链路状态数据库。链路状态通告和/或链路状态数据库将包含节点的 地址。参与DHT的那些节点的节点地址将用于装载图4的DHT成员 表。虽然成员表如图4所示,但是这种信息可作为链路状态数据库的 部分而被包含,因而不需要存储在独立的表中。
图5示出可由网络上的节点保存而与DHT无关的本地数据表的示 例。具体来说,网络上的节点可从与其附连的客户设备获知路由。这 种信息可存储在本地表中,使得节点能够保存通过它是可达的那些路 由的副本。本地表还可用于緩存从DHT所获知的路由,使得可加速与 特定远程路由交换数据的重复尝试。
当获知路由时,将它们添加到本地数据表。通过将路由值与节点 ID进行比较(即进行XOR运算),路由也将被传送给DHT以便查找K 个最接近的匹配节点ID。在图4和图5所示的示例中,复制因子K(DHT 中信息的复制副本的数量)设置为三,使得获知路由的节点将把已获知路由传送给参与DHT、最接近路由的密钥值的三个节点。例如,可将 路由发送给节点ID高于路由的密钥值的三个节点。例如,假定DHT 成员表包含IP地址,并且本地节点获知了到IP地址的路由。已获知 路由的IP地址可与DHT成员表中的节点的IP地址进行XOR运算, 以便查找IP地址与已获知IP地址最相似('接近,)的那三个节点。然 后可将路由发送给那三个节点,以便使那个IP地址的路由信息存储在 分布式哈希表的正确节点处。当然,在比较发生之前IP地址可经过哈 希或者其它处理并且也可使用其它类型的地址,因为IP地址仅用作可 使用的一种类型的地址的示例。这个相同过程也可用于查找表中的IP 地址。
图6示出可由DHT中的节点存储的远程数据表的示例。如图6所 示,当节点接收到来自网络上的其它节点之一的通告路由时,它将把 该路由存储在其远程数据表中。该表可按照与路由的地址关联的密钥 来组织,并且可包含与路由关联的节点的值(即节点ID)。其它数据也 可与路由关联。当网络上的另一个节点需要和与路由的地址关联的路 由进行通信时,该节点可将路由地址(路由密钥)与节点ID(节点密钥) 进行比较,以便确定DHT中的哪些节点应该保存该路由。然后,请求 节点可将请求转发给DHT中的该节点,以便使该节点从其远程数据表 检索路由信息。
如图6的示例远程数据表所示,远程数据表包含密钥的列表以及 网络上可用于到达(reach)那些密钥的节点ID的列表。例如,密钥221 可经由节点ID 598到达,密钥245可经由节点ID 384到达,等等。存 储在远程数据表74中的密钥集合是使用上述XOR距离计算过程确定 为充分接近保存远程数据表的节点ID的数据的那个集合。当网络上的 另一个节点发现诸如密钥245之类的密钥时,它可向保存远程数据表 74的节点发送请求,以便获得路由在网络上所在的节点ID。具体来说, 在接收到该请求时,保存远程数据表74的节点将获得值<密钥245,节 点ID384〉以及与该条目关联的无论什么数据,并且响应请求节点,使得发现密钥245的节点可获知它能够经由节点ID 384而到达与密钥 245关联的路由。
在这方面要注意,进入表中的密钥基于IP地址、以太网MAC地 址等,使得DHT中的各节点在其远程数据表中存储与IP地址、以太 网MAC地址等的特定集合关联的路由。通过将节点IP地址或以太网 MAC地址与DHT中的那个节点以确定性方式所存储的地址集合关 联,其它节点在面临未知地址时可执行同一计算,以便确定要查询哪 一个节点以获得那个地址的路由。
图7-8示出根据本发明的一个实施例、与将节点添加到DHT有关 DHT进行变更的方式。如图7所示,DHT成员表将存储从网络上的其 它节点在获知路由时传送给它的数据。当节点获知路由时,它将4皮存 储在本地数据表72中,并且随后传送给由节点通过查看DHT成员表 70所识别的其它节点。根据复制因子,路由信息将^fc^出一次或多次 到识别为需要将路由信息存储在DHT中的节点。在所示示例中,复制 因子为三(K-3),因此节点将发送路由信息给三个节点以便存储在DHT 中。因此,在所示示例中,密钥346(及其值/路由)将被发送到节点351、 378和384,而密钥378(及其值/路由)将祐义送到节点384、 419和598。
这时假定以节点ID=380将新节点添加到DHT。这种情况的示例 如图8所示。在将新节点添加到网络时,该节点将开始发出链路状态 通告,以便使节点将该节点添加到其链路状态数据库。在链路状态数 据库中包含该节点将自动使节点ID被添加到DHT成员表70。但是, 在DHT成员表中包含新节点将影响网络上的节点执行路由查询的方 式,因为在确定寻找具有特定密钥的路由的位置时将咨询更新DHT成 员表。因此,应当存储在那个DHT中的路由应当传送给新节点,使得 它在其远程数据表中具有路由信息的副本。这样做的 一种方式是使网 络元件确定哪些路由受到成员表的变更影响,并且使节点将路由传送 给新节点,好像它们原本已传送到那里 一样(if they should originally have been transmitted there)。这可通过使各节点基于当前DHT成员表来确定其本地数据表中哪些密钥应当存储在节点上,并且使节点将那 些路由传送给新节点来完成。因此,例如,图8中的节点可确定新节
点380应当具有密钥346的路由信息的副本,并且将那个路由传送给 新节点。该节点也将确定密钥377和378也应当纟皮传送到节点380, 并且还传送那些路由的DHT添加消息。
由于复制因子仍然为三,并且节点384已经提供有路由信息的副 本,因此,节点384将具有不会^皮任何其它节点请求的额外副本,只 要DHT成员表不再变更。因此,可指示节点384删除与密钥346关联 的路由,或者节点384可允许与密钥346关联的路由超时,并且在特 定时间周期它未被请求之后被删除。
图9-10示出根据本发明的一个实施例、与从DHT删除节点有关 DHT进行变更的方式。具体来说,图9示出在结合图7和图8所述的 添加操作期间添加节点380之后的DHT成员表。图9中,假定如以上 结合图8所述,复制过程已经使无关的(extraneous)路由信息被删除或 超时,使得各密钥存储在DHT中的三个不同节点处。
如图IO所示,假定从DHT成员表移除节点380。在移除节点380 时,特定路由仅存储在DHT中的两个位置处。为了使那些路由存储在 三个位置,各本地节点可回顾(review)其本地数据表中的信息,以便确 定它已经使哪些密钥存储在那个节点处的DHT中。对于受影响的那些 密钥,节点可基于新的DHT成员来确定哪些节点应当存储密钥,并且 将密钥传送给那些节点。备选地,由于远程节点中的一些将已经使密 钥存储在DHT远程数据表中,所以节点可以仅向这个过程中确定的最 后一个节点传送路由选择信息。例如,如果复制因子为&=3,则本地 节点可确定DHT中的第三节点应当存储数据的副本,并且仅向第三节 点传送与那个密钥关联的路由信息。
虽然已经描述了 一个实施例,其中节点在DHT成员变更时使用存 储在其本地表中的信息将路由复制到DHT节点,但是本发明并不局限 于这种方式,因为实现这个过程的其它方式也可^t实现。例如,如果节点被添加到DHT,则在新节点的复制因子之内、具有节点ID的DHT 节点可处理其DHT远程数据表中的密钥,以便确定哪些密钥应当存储 在新节点中,并且将那些密钥传送给新节点。作为这个过程的部分, 节点也可确定哪些密钥不再需要存储在其远程数据表中,并且删除那 些路由。
类似地,在从DHT移除节点时,在已经移除的节点的复制因子之 内的那些节点可处理其远程数据表中的路由,以便确定哪些路由存储 在不再是DHT的部分的节点中。存储在旧节点中的那些路由则可根据 需要传送给DHT的其它节点,以便使各路由的复制因子保持相同。因 此,对DHT成员的修改可由DHT节点来实现,而无需已获知路由信 息的节点每当DHT成员变更时将路由信息重新通告到DHT中。
如上所述的功能可实现为一组程序指令,它们存储在计算机可读 存储器中,并且在计算机平台上的一个或多个处理器上运行。然而, 本领域的技术人员将明白,本文所述的所有逻辑可使用分立组件、诸 如专用集成电路(ASIC)之类的集成电路、与诸如现场可编程门阵列 (FPGA)或微处理器之类的可编程逻辑装置结合使用的可编程逻辑、状 态机或者包括它们的任何组合的其它任何装置来体现。可编程逻辑能 暂时或永久固定在诸如只读存储器芯片、计算机存储器、磁盘或其它 存储介质之类的实体介质中。可编程逻辑也能固定在以载波体现的计 算机数据信号中,从而允许可编程逻辑通过诸如计算机总线或通信网 络之类的接口来传送。所有这类实施例意在落入本发明的范围之内。
应当理解,附图中所示以及说明书中所述的实施例的各种变更和 修改可在本发明的精神和范围之内进行。因此,在以上说明书中包含 以及附图中所示的所有事项意在被解释为说明性而不是限制性的。本 发明仅由以下权利要求书及其等效物所定义的内容来限制。
权利要求
1.一种将路由选择信息存储在链路状态协议控制的网络中的方法,所述方法包括以下步骤在所述网络上实现链路状态路由选择协议,以便使所述网络上的多个节点中的每一个实现链路状态数据库;以及使用从所述链路状态数据库中的信息所得出的节点ID作为分布式哈希表中的密钥,以便基于与路由关联的路由ID和所述节点ID的比较而确定存储与所述路由关联的信息的所述网络上的所述多个节点的子集。
2. 如权利要求1所述的方法,其中,使用节点ID的所述步骤包 括在所述路由ID与所述节点ID中的每一个之间执行XOR过程,以 便确定存储所述路由信息的所述多个节点的所述子集。
3. 如权利要求l所述的方法,其中,所述子集基于所述分布式哈 希表的复制因子。
4. 如权利要求l所述的方法,还包括以下步骤将消息中的所述 路由信息传送给所述子集中的所述节点中的每一个,以便使那些节点 将所述路由选择信息存储在它们的所述分布式哈希表的部分中,供所 述网络上的其它节点的后续检索。
5. 如权利要求l所述的方法,其中,所述节点ID是MAC地址或 者从所述网络上的所迷节点的MAC地址得出,并且其中所述路由ID 是目标MAC地址或者从所述路由的目标MAC地址得出。
6. 如权利要求l所述的方法,其中,所述节点ID是IP地址或者 从所述网络上的所述节点的IP地址得出,并且其中所述路由ID是目
7. 如权利要求l所述的方法,其中,所述节点ID是MAC地址或 者从所述网络上的所述节点的MAC地址得出,并且其中所述路由ID
8. 如权利要求l所述的方法,其中,所述节点ID是IP地址或者 从所述网络上的所述节点的IP地址得出,并且其中所述路由ID是目 标MAC地址或者从所述路由的目标MAC地址得出。
9. 如权利要求1所述的方法,其中,所述节点ID是笫一地址或 者从第一 OSI寻址层中的第 一地址得出,并且其中所述路由ID是笫二 地址或者从第二 OSI寻址层中的第二地址得出。
10. —种方法,包括以下步骤由链路状态路由选择协议控制的通信网络中的节点来获知路由信台将与所述路由信息关联的路由ID和与参与分布式哈希表的节点 关联的节点ID进行比较,所述节点ID从链路状态数据库得出,所述 链路状态数据库包含从所述链路状态路由选择协议所指定的协议交换 所获得的信息;以及将所述路由信息传送给具有充分接近于所述路由ID的节点ID的 节点的子集。
11. 如权利要求10所述的方法,其中,所述路由ID是MAC地址; 并且其中所述节点ID是MAC地址。
12. 如权利要求11所述的方法,其中,所述路由ID是客户端MAC 地址,并且其中所述节点ID是提供商MAC地址。
13. 如权利要求10所述的方法,其中,所述路由ID是IP地址, 并且其中所述节点ID是IP地址。
14. 如权利要求10所迷的方法,其中,将所述路由K)与所述节 点ID进行比较的所述步骤包括执行所述路由ID与所述节点ID的数学 比较。
15. 如权利要求14所述的方法,其中,所述数学比较是XOR运算。
16. 如权利要求IO所述的方法,还包括以下步骤 发现第二路由ID;将所述第二路由ID和与参与所述分布式哈希表的节点关联的所述节点ID进行比较;以及将与所述第二路由ID关联的第二路由信息的查询发送给具有充 分接近于所述第二路由ID的节点ID的节点的第二集合。
17. —种网络,包括多个互连网络元件,其中的至少一些配置成实现链路状态路由选 择协议和包含路由选择信息的分布式哈希表(DHT),其中,从与所述 链路状态路由选择协议关联的交换所得出的节点ID用于识别存储在 所述DHT中的信息的集合。
18. 如权利要求17所述的网络,其中,配置成实现所述DHT的 所述网络元件配置成各自存储包含参与所述DHT的节点的节点ID列 表的DHT成员表、包含由所述网络元件所获知的路由的本地数据表以 及包含从来自参与所述DHT的其它网络元件的消息所获知的路由的 远程数据表。
19. 如权利要求18所述的网络,其中,配置成实现所述DHT的 所述网络元件配置成使用经由所述链路状态路由选择协议所传递的网 络拓朴变更来更新它们的DHT成员表中它们的节点ID列表。
20. 如权利要求19所述的网络,其中,配置成实现所述DHT的 所述网络元件配置成在发生网络拓朴变更时重新通告来自它们的本地 数据表的选择信息。
21. —种网络元件,包括 处理器,配置成实现链路状态协议进程,配置成建立链路状态数据库,所述链路 状态数据库包含与网络关联的网络拓朴信息,在所述网络上所述网络 元件配置成接收通信,分布式哈希表(DHT)进程,配置成从所述链路状态数据库提 取信息,以便确定与参与所述DHT的网络元件关联的节点ID,所述 DHT配置成存储所述网络上的路由信息;和消息传递进程,配置成接收和传送包含将存储在所述DHT中的路由信息的消息。
22.如权利要求21所述的网络元件,其中,所述网络元件还配置成实现存储器,所述存储器包含DHT成员表、本地数据表和远程数据表,所述DHT成员表包含参与所述DHT的所述网络元件的所述节点ID,所述本地数据表包含所述网络元件所获知的路由信息,所述远程数据表包含经由所述消息传递进程从其它网络元件所获知的路由信 自
全文摘要
实现分布式哈希表以便存储网络上的路由选择信息。结合链路状态路由选择协议的实现来交换的节点ID用作分布式哈希表中的密钥,并且路由存储在网络上的一个或多个节点处。当路由被获知时,对照密钥集合来处理该路由以便确定哪些节点应当存储该路由。当需要路由时,对照密钥集合来处理该路由以便确定哪些节点应当具有路由信息。对照密钥集合来处理路由的方式在两种情况下都是相同的,使得DHT可用于存储和检索网络上的路由信息。DHT可实现为存储MAC地址、IP地址、MPLS标签或者其它受关注信息,以便使路由能够由网络上的网络元件来存储和获知。
文档编号H04L12/24GK101529809SQ200780040352
公开日2009年9月9日 申请日期2007年11月1日 优先权日2006年11月2日
发明者G·殷, P·阿什伍德-史密斯, W·麦克科尔米克 申请人:北方电讯网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1