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

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

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


通过所附权利要求书中的详细资料来指出本发明的方面。通过以下附图中示例来说明本发明,附图中相似的參考标号表示相似元件。以下附图公开本发明的各种实施例,仅用于说明而不是要限制本发明的范围。为了简洁起见,可能不是每一个组件都在每张附图中标记。附图包括
图I是可用来实现其中节点实现DHT的本发明的一个实施例并且示出路由添加和路由查询操作的示例网络的原理框 图2是根据本发明的一个实施例、可用来实现节点并且參与DHT的网络元件的原理框
图3是示出根据本发明的一个实施例、可用于建立和使用DHT来存储路由信息的过程的流程 图4-6是根据本发明的一个实施例、可用来实现由诸如图2的网络元件之类的网络元件所存储的表以便使网络元件能够參与DHT的数据结构;
图7-8示出根据本发明的一个实施例、与将节点添加到DHT有关DHT进行变更的方式;
以及
图9-10示出根据本发明的一个实施例、与从DHT删除节点有关DHT进行变更的方式。
具体实施例方式图I示出示例通信网络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 StateBridging”)的申请No. 11/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. RESC0RLA的标题为“分布式哈希表入 门”(“Introduction to Distributed Hash Tables”)的论文以及 P. MAYM0UNK0V 等人的标题为“Kademlia :基于 XOR 量度的对等信息系统”(Kademlia:A Peer-to-Peer InformationSystem Based on the XOR Metric)的论文中对它进行了更详细地描述,由此通过引用将其内容結合。根据本发明的一个实施例,通过使数据存储在分布式哈希表来将这类关联的数据均匀地分布于网络,诸如用户到提供商地址关联和IP路由选择信息之类的路由选择信息可存储在极大的网络中,其中网络元件各自承担存储分布式哈希表的一部分的职责。从LSDB所确定的节点ID可与DHT中的路由/密钥进行比较,以便使节点能够确定应当存储已知路由选择信息的位置以及可找到未知路由选择信息的位置。当节点接收到路由信息吋,它将存储该路由信息,并且使那个信息在请求时可用。通过使各节点存储路由选择信息的一部分,不需要节点存储整个路由选择表,使得对任ー个节点的存储要求可降低。通过指定冗余因子,信息的多个副本可存储在DHT中,使得任一个节点的故障不会影响其它节点查找特定路由信息的能力。图2示出可用于实现本发明的一个实施例的网络元件的ー个示例。如图2所示,网络元件包括数据平面50和控制平面60。数据平面50 —般包括配置成与网络上的链路接ロ的输入/输出卡、配置成对于通过1/0卡52所接收的数据执行功能的数据卡54以及配置成在数据卡/1/0卡之间交换数据的交换结构(switch fabric) 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所示,节点交换链路状态通告(100),以便获知网络上參与DHT的所有节点的MAC地址。各节点将使用节点ID来构建DHT成员表(參见图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。结合图I更详细地描述如何执行比较的ー个示例。如图I所示,假定节点1001获知它要存储在分布式哈希表中的〈密钥,值〉对(本例中为〈C-MAC/P-MAC〉),使得所有节点能够有权访问〈密钥,值〉对。例如,假定节点1001获知路由〈1100,VI〉。节点1001将对密钥(1100)与所有其它节点ID执行XOR运算,以便确定哪些节点具有最接近该密钥ID的节点ID。然后,该节点根据所使用的比较算法(本例中为XOR运算)将把〈密钥,值〉对发送给最接近的那些节点,使得它们可存储该〈密钥,值〉对。在所示示例中,节点1101和1110将与1100具有最小XOR距离,因此仅向那些节点发送〈1100,VI〉对供存储。由于向两个节点发送该路由供存储,所以本例中的复制因子(replication factor)为2 (K=2)。接收该路由的节点将在其远程数据表中存储〈密钥,值〉对。如图3所示,一旦值被存储,当节点需要获知路由吋,它将对设法找到的C-MAC地址执行哈希,以便获得路由/密钥ID(IOS)。然后,节点将通过对路由ID与成员表中节点的节点ID进行比较,来确定DHT中的节点的哪ー个应当用于查询路由/密钥ID的路由选择信息。例如,这可使用上述XOR距离过程来完成。然后,节点将把对〈密钥,值〉对的请求传送给节点ID最接近高于(immediately higher)路由ID的K个节点的至少ー个(110)或者传送给具有被认为最接近路由/密钥ID的节点ID的k个节点。接收请求的节点将从其远程数据表(參见图6)提取路由信息,并且以路由条目的路由信息(在这种情况下为所请求 C-MAC 的 P-MAC)响应(112)。在图I所示的示例中,例如假定节点0011发现它需要其值的密钥。具体来说,假定节点0011发现密钥1100,但是没有与那个密钥关联的值。密钥可以是与从客户LAN所接收的帧关联的哈希C-MAC地址,或者可表示诸如IP地址之类的另ー实际量。节点将在密钥与拓扑中的所有其它节点ID之间执行XOR运算,以便查找两个最接近已知密钥的节点ID。注意,节点使用如将〈密钥,值〉对放入DHT时所执行的相同值来执行同一 XOR距离过程,因此可预计节点OOll也将确定节点1101和1110可能具有那个密钥的值的副本。节点0011可向节点1101和1110传送请求密钥1100的值的请求,并且预计节点的ー个或两个将能够以值Vl响应。虽然本文已经描述了实施例,在所述实施例中通过在节点ID与路由ID之间执行XOR运算来确定节点ID与路由ID之间的距离,但是,本发明并不局限于这种方式,因为对值进行比较以确定节点ID与路由ID之间的相对距离的其它数学方式也可使用。通过使值Vl在DHT中存储多次(特定数目取决于复制因子K),请求节点可接收多个响应。但是,将值存储在DHT中的ー个以上位置提供针对网络中的任一个节点的故障的弹性(resiliency),因为存储在该节点的信息可从形成DHT的其它剩余节点重新创建和重新分发。下面结合图7-10更详细地描述对DHT添加和删除节点。由于网络元件正运行诸如OSPF或ISIS之类的链路状态协议,所以各节点具有节点的列表和节点地址。这种信息可用于确定提供商网络中的所有提供商节点的节点ID。当DHT用于存储客户端/提供商关联并且客户端到提供商节点关联被获知吋,完成DHT‘添加” 以便将〈客户端,提供商 > 信息插入DHT。因此,在这种情况下,该值是其中可找到客户端路由的提供商节点,并且客户端MAC地址是与提供商节点的节点ID进行XOR运算以便确定哪ー个提供商节点应当存储〈客户端,提供商 > 对的密钥。当客户端首次想要与另ー个客户端通话时,它通过对照DHT进行查询来向DHT请求与那个客户端的提供商关联。具体来说,客户端值与节点ID进行XOR运算,以便确定DHT中的哪些节点应当存储那个〈客户端,提供商 > 地址关联,并且然后查询将被发送给DHT中被确定存储那个关联的提供商节点。DHT中的节点将以〈客户端,提供商 > 对响应,使得客户端可获知哪ー个提供商节点能够到达预计客户端地址。这样,DHT添加/查询操作使用链路状态拓扑以确定性方式识别存储/查询〈客户端,提供商 > 关联的少量(K)提供商节点。通过使用节点ID作为对DHT的密钥,密钥计算过程可极大地简化。另外,由于所有节点具有链路状态数据库的更新副本,所以所有节点具有在DHT中正被使用的节点ID的集合的当前副本,因此当DHT成员/密钥所有权随网络拓扑的变更而变更时,无需附加信令机制来更新节点。密钥可以是以太网MAC地址、诸如IPV4或IPv6地址之类的IP地址或网络应用服务平台(NSAP)地址或者包括MPLS标签或其它标签的其它公共或专有地址。类似地,要随特定密钥一起存储在DHT中的值也可以是以太网MAC地址、诸如IPV4或IPv6地址之类的IP地址、NSAP地址或者包括MPLS标签或其它标签的其它公共或专有地址。一般来说,在所有正使用分级路由选择系统并且必须存储映射以便从上级地址映射到下级地址的情况下,与任一个或两个地址的格式无关,DHT可用于以有效方式来存储这种关系。类似地,节点和路由ID可取自开放式系统互连基本參考模型(OSI)层的同一层,或者可取自不同的层。例如,节点和路由ID都可以是第2层值(MAC地址)、都可以是第3层值(IP地址)或者可以是它们两者,即,节点ID可以是IP地址而路由ID可以是MAC地址,或者相反地,节点ID可以是MAC地址而路由ID可以是IP地址。图4-6示出可由网络上的节点的ー个或多个保存以便实现本文所述DHT的示例DHT表。在这些图中,图4示出包含节点ID的列表的DHT成员表的示例。节点ID可以是如从链路状态数据库所获知的网络上节点的地址值,或者备选地可以由这些地址值的哈希来形成。在所示示例中,节点ID表包含从路由选择系统获得的9个值。具体来说,诸如图I所示的网络之类的网络上的节点假定为实现链路状态路由选择协议,其中各节点交换链路状态通告以便使网络上的各节点能够构建链路状态数据库。链路状态通告和/或链路状态数据库将包含节点的地址。参与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,节点ID 384〉以及与该条目关联的无论什么数据,并且响应请求节点,使得发现密钥245的节点可获知它能够经由节点ID 384而到达与密钥245关联的路由。在这方面要注意,进入表中的密钥基于IP地址、以太网MAC地址等,使得DHT中的各节点在其远程数据表中存储与IP地址、以太网MAC地址等的特定集合关联的路由。通过将节点IP地址或以太网MAC地址与DHT中的那个节点以确定性方式所存储的地址集合关联,其它节点在面临未知地址时可执行同一计算,以便确定要查询哪ー个节点以获得那个地址的路由。图7-8示出根据本发明的一个实施例、与将节点添加到DHT有关DHT进行变更的方式。如图7所示,DHT成员表将存储从网络上的其它节点在获知路由时传送给它的数据。当节点获知路由时,它将被存储在本地数据表72中,并且随后传送给由节点通过查看DHT成员表70所识别的其它节点。根据复制因子,路由信息将被发出一次或多次到识别为需要将路由信息存储在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 transmittedthere)。这可通过使各节点基于当前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中的三个不同节点处。如图10所示,假定从DHT成员表移除节点380。在移除节点380时,特定路由仅存储在DHT中的两个位置处。为了使那些路由存储在三个位置,各本地节点可回顾(review)其本地数据表中的信息,以便确定它已经使哪些密钥存储在那个节点处的DHT中。对于受影响的那些密钥,节点可基于新的DHT成员来确定哪些节点应当存储密钥,并且将密钥传送给那些节点。备选地,由于远程节点中的一些将已经使密钥存储在DHT远程数据表中,所以节点可以仅向这个过程中确定的最后ー个节点传送路由选择信息。例如,如果复制因子为K=3,则本地节点可确定DHT中的第三节点应当存储数据的副本,并且仅向第三节点传送与那个密钥关联的路由信息。虽然已经描述了一个实施例,其中节点在DHT成员变更时使用存储在其本地表中的信息将路由复制到DHT节点,但是本发明并不局限于这种方式,因为实现这个过程的其它方式也可被实现。例如,如果节点被添加到DHT,则在新节点的复制因子之内、具有节点ID的DHT节点可处理其DHT远程数据表中的密钥,以便确定哪些密钥应当存储在新节点中,并且将那些密钥传送给新节点。作为这个过程的部分,节点也可确定哪些密钥不再需要存储在其远程数据表中,并且删除那些路由。类似地,在从DHT移除节点时,在已经移除的节点的复制因子之内的那些节点可处理其远程数据表中的路由,以便确定哪些路由存储在不再是DHT的部分的节点中。存储在旧节点中的那些路由则可根据需要传送给DHT的其它节点,以便使各路由的复制因子保持相同。因此,对DHT成员的修改可由DHT节点来实现,而无需已获知路由信息的节点每当DHT成员变更时将路由信息重新通告到DHT中。如上所述的功能可实现为一组程序指令,它们存储在计算机可读存储器中,并且在计算机平台上的一个或多个处理器上运行。然而,本领域的技术人员将明白,本文所述的所有逻辑可使用分立组件、诸如专用集成电路(ASIC)之类的集成电路、与诸如现场可编程门阵列(FPGA)或微处理器之类的可编程逻辑装置结合使用的可编程逻辑、状态机或者包 括它们的任何组合的其它任何装置来体现。可编程逻辑能暂时或永久固定在诸如只读存储器芯片、计算机存储器、磁盘或其它存储介质之类的实体介质中。可编程逻辑也能固定在以载波体现的计算机数据信号中,从而允许可编程逻辑通过诸如计算机总线或通信网络之类的接ロ来传送。所有这类实施例意在落入本发明的范围之内。应当理解,附图中所示以及说明书中所述的实施例的各种变更和修改可在本发明的精神和范围之内进行。因此,在以上说明书中包含以及附图中所示的所有事项意在被解释为说明性而不是限制性的。本发明仅由以下权利要求书及其等效物所定义的内容来限制。
权利要求
1.一种网络元件,包括 处理器,被配置成实现将路由选择信息存储在链路状态协议控制的网络中的方法,所述方法包括以下步骤 在所述网络上实现链路状态路由选择协议,以便使所述网络上的多个节点中的每ー个实现链路状态数据库;以及 使用从所述链路状态数据库中的信息所得出的节点ID作为分布式哈希表中的密钥,以便基干与路由关联的路由ID和所述节点ID的比较而确定存储与所述路由关联的信息的所述网络上的所述多个节点的子集。
2.如权利要求I所述的网络元件,其中,使用节点ID的所述步骤包括在所述路由ID与所述节点ID中的每ー个之间执行异或XOR过程,以便确定存储所述路由信息的所述多个节点的所述子集。
3.如权利要求I所述的网络元件,其中,所述子集基于所述分布式哈希表的复制因子。
4.如权利要求I所述的网络元件,其中所述处理器还被配置成实现步骤将消息中的与所述路由关联的信息传送给所述子集中的所述节点中的每ー个,以便使那些节点将与所述路由关联的信息存储在它们的所述分布式哈希表的部分中,供所述网络上的其它节点的后续检索。
5.如权利要求I所述的网络元件,其中,所述节点ID是MAC地址或者从所述网络上的所述节点的MAC地址得出,并且其中,所述路由ID是目标MAC地址或者从所述路由的目标MAC地址得出。
6.如权利要求I所述的网络元件,其中,所述节点ID是IP地址或者从所述网络上的所述节点的IP地址得出,并且其中,所述路由ID是目标IP地址或者从所述网络上的资源的目标IP地址得出。
7.如权利要求I所述的网络元件,其中,所述节点ID是MAC地址或者从所述网络上的所述节点的MAC地址得出,并且其中,所述路由ID是目标IP地址或者从所述网络上的资源的目标IP地址得出。
8.如权利要求I所述的网络元件,其中,所述节点ID是IP地址或者从所述网络上的所述节点的IP地址得出,并且其中,所述路由ID是目标MAC地址或者从所述路由的目标MAC地址得出。
9.如权利要求I所述的网络元件,其中,所述节点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所述的网络元件,其中,将所述路由ID与所述节点ID进行比较的所述步骤包括执行所述路由ID与所述节点ID的数学比较。
15.如权利要求14所述的网络元件,其中,所述数学比较是异或XOR运算。
16.如权利要求10所述的网络元件,其中所述处理器还被配置成实现步骤 发现第二路由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)进程被配置成从所述链路状态数据库提取信息,以便确定与參与所述DHT的网络元件关联的节点ID,所述DHT被配置成存储所述网络上的路由信息;和实现消息传递进程,该消息传递进程被配置成接收和传送包含将存储在所述DHT中的路由信息的消息。
22.如权利要求21所述的网络元件,还包括存储器,所述存储器包含DHT成员表、本地数据表和远程数据表,所述DHT成员表包含參与所述DHT的所述网络元件的所述节点ID,所述本地数据表包含所述网络元件所获知的路由信息,所述远程数据表包含经由所述消息传递进程从所述其它网络元件所获知的路由信息。
全文摘要
实现分布式哈希表以便存储网络上的路由选择信息。结合链路状态路由选择协议的实现来交换的节点ID用作分布式哈希表中的密钥,并且路由存储在网络上的一个或多个节点处。当路由被获知时,对照密钥集合来处理该路由以便确定哪些节点应当存储该路由。当需要路由时,对照密钥集合来处理该路由以便确定哪些节点应当具有路由信息。对照密钥集合来处理路由的方式在两种情况下都是相同的,使得DHT可用于存储和检索网络上的路由信息。DHT可实现为存储MAC地址、IP地址、MPLS标签或者其它受关注信息,以便使路由能够由网络上的网络元件来存储和获知。
文档编号H04L29/06GK102833329SQ20121029785
公开日2012年12月19日 申请日期2007年11月1日 优先权日2006年11月2日
发明者P.阿什伍德-史密斯, G.殷, W.麦克科尔米克 申请人:北方电讯网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1