内部网关协议中减少发现路由的查询的技术的制作方法

文档序号:7675104阅读:183来源:国知局

专利名称::内部网关协议中减少发现路由的查询的技术的制作方法
技术领域
:本发明涉及在中间网络节点处构造用于自治系统内的路由的路由表,并且更具体地涉及减少发现去往特定节点的替换路由的查询的数目。
背景技术
:通过外部通信链路相连接的通用计算机系统和专用设备的网络是公知的,并且在商业上被广泛使用。这些网络通常包括一个或多个帮助信息在计算机系统和设备间通行的网络设备。网络节点是通过通信链路相连接的网络设备、计算机系统或专用设备。/眾^:々是被配置为发起或终结网络上的通信的节点。^/矽/^-络^:点帮助数据在端节点之间的通行。节点之间的通信一般是通过交换离散的数据分组实现的。信息是根据许多公知的、新的或者仍在开发中的协议中的一种或多种在数据分组中交换的。在本上下文中,錄议由定义节点如何基于经由通信链路发送的信息来彼此交互的一组规则组成。每个分组一般包括l]与特定协议相关联的头部信息,以及2]位于头部信息之后并包含可独立于该特定协议来处理的信息的净荷信息。头部包括诸如分组的源、其目的地、净荷的长度以及协议所使用的其他属性之类的信息。通常,用于特定协议的净荷中的数据包括与用于信息交换的不同层的细节相关联的不同协议的头部和净荷。穿越诸如因特网之类的多个异构网络的分组中包括的头部一般包括物理(第1层)头部、数据链路(第2层)头部、互联网络(第3层)头部和传输(第4层)头部,如开放系统互连(OSI)参考模型所定义的。OSI参考模型总地在1999年9月出版的RadiaPerlman所著的题为/"tem朋ec^似五必Zow的参考书的第1.1节中有更详细描述,特此通过引用将该书并入,就好像在这里完全阐述了一样。互连网络头部提供了定义网络内的源和目的地址的信息。注意,路径9可以跨越多个物理链路。互连网络头部可以根据因特网协议(IP)来格式化,其用于指定逻辑路径的端点处的源和目的地节点的IP地址。因此,分组可以沿其逻辑路径从一个节点"跳跃"到另一个节点,直到其到达被指派给该分组的互连网络头部中存储的目的地IP地址的端节点为止。路由器和交换机是确定采用哪个或哪些通信链路来支持数据分组通过网络的前进的网络设备。基于互联网络头部(第3层)中的信息来确定采用哪些链路的网络节点被称为路由器。一些协议用特殊的控制分组来在两个或更多个网络节点之间传递与协议相关的信息,其中,所述特殊的控制分组是单独传输的,并且包括由协议本身使用的信息的净荷,而不包括将为另一应用传输的数据的净荷。这些控制分组和利用这些控制分组的网络节点处的进程被说成是在与"数据平面"维度不同的另一个维度"控制平面"中,其中,"数据平面"维度包括具有用于端节点处的其他应用的净荷的数据分组。錄^妨'议6"OM/Z'"g户ratoC0/J仅交换用于对以不同的历:錄^游激议6^wted;ratoco〃(例如,IP)发送的数据分组进行路由的控制平面消息。处于单个机构(例如,企业或因特网服务提供商(isp))的网络管理下的网络部分被称作域或者自治系统(AS)。为了减少网络资源消耗并且提高可扩展性,一些路由协议仅发送概括的路由信息。AS的路由信息在其与中间网络节点处的一个或多个其他AS的边界处被概括,其中,所述中间网络节点被称作边界网关节点或者边界网关(BG)路由器。在一个AS的边界内共享的路由信息是使用内部网关协议(IGP)交换的。示例性IGP包括链路状态协议,例如,中间系统到中间系统(IS-IS)协议和开放最短路径优先(OSPF)协议。由加州圣何塞市的思科系统公司开发的用在其路由器中的另一种IGP是增强的内部网关路由协议(EIGPR)。一些链路状态协议将自治系统划分成多个区域,在一个区域内涌入用于统一的路由数据库的所有数据,但是在区域之间仅发送概括的信息(summarizedinformation)。一些IGP(如EIGPR)仅发送来自自治系统中的每个中间节点的概况信息(summaryinformation)。为了确定仅发送概况路由信息的IGP中的最佳路由,概况路由信息包括用于每个目的地节点的、从提供该概况信息的中间节点(例如,路由器)到达目的地节点的开销的量度(称作开销度量)。通过网络中的多条链路的开销的度量在本领域中是公知的。路由器从与其共享直接通信链路的每个相邻路由器(邻居)接收这种概况路由信息。接收路由器然后基于所有邻居报告的开销度量、以及通过链路到达这些邻居中的每个的开销确定路由(即,最佳下一跳,在这里也称作最佳"路径")。在当前方法中,当路由器丢失了去往特定目的地的路由,并且未在存储器中存储无环(loop-free)的替换路径的记录时,该路由器向每个邻居发送查询,询问该邻居的路由和去往该特定目的地的开销。自一个特定路由器起的无环路径是这样的路径在该路径中,下一跳去往距该目的地比距该特定路由器自身近的路由器。如果下一跳去往一个更远的路由器,则后续的跳可能返回到该特定路由器,从而形成了一个环。尽管适用于许多目的,但是这种方法存在缺点。如果被查询的邻居中刚好有一个没有无环路径,则该邻居査询其所有的其他邻居。从而,査询可能在整个自治系统中传播,或者直到对于作为原始查询的对象的目的地址在任何中间节点处都无信息可用为止。查询通过的跳数是该査询的范围。查询路由器等待所有被查询的路由器作出响应,然后从所报告的路径中选择新的路由。査询的范围越大,(如果存在新路由的话)选择新路由之前的收敛时间越长。对于具有数以千计个节点的多个自治系统,查询范围很容易达到许多跳,从而收敛时间很可能超过数秒。丢失路由持续数秒可能导致数以千计的丢失交易,这在某些金融系统中可能导致数以百万美元的损失。基于前述内容,完全需要一种限制在路由器丢失了去往特定目的地的路由时引起的査询范围的技术。具体而言,至少需要避免查询不具有到作为查询对象的目的地的无环路径的一些邻居。在附图中以示例方式而非限制方式图示了本发明,附图中相似的标号指代类似的元件,其中图1是说明根据实施例的包括多个路由器的网络的框图2A是说明根据实施例的允许縮小了范围的查询的路由协议的控制平面消息的框图2B是说明根据实施例的使用图2A中示出的控制平面消息的路由器的框图3是在高层说明根据实施例的用于生成用于縮小查询范围的路由协议消息的方法的流程图4A和图4B构成了在高层说明根据另一个实施例的用于对接收到的路由协议消息进行处理以縮小查询范围的方法的流程图5是说明可以在其上实现本发明的实施例的路由器的框图。具体实施例方式描述了用于利用縮小的査询范围确定分组交换通信网络中的路由的技术。在以下描述中,出于说明目的,阐述了许多具体细节以提供对本发明的全面理解。但是,本领域的技术人员将会明白,没有这些具体细节也能实现本发明。在其他情况下,公知的结构和设备以框图形式示出,以避免不必要地模糊本发明。在下面的描述中,在用于自治系统的EIGRP的环境下描述本发明的实施例。但是,本发明不限于该环境和协议,而是可以被应用于在更新消息中发送包括目的地址和开销度量(costmetric)的概况信息的任何路由协议中。1.0网络概述图1是说明根据实施例的包括多个路由器的网络100的框图。网络100包括六个中间网络节点路由器111、路由器112、路由器113、路由器114、路由器115和路由器116,在下文中统称作路由器110。网络100还包括端节点180。路由器110和端节点180由八条通信链路连接链路121、链路122、链路123、链路124、链路125、链路126、链路127和链路128,在下文中统称作链路120。图1还示出了与每条链路相关联的开12销度量值。开销度量值表示链路属性,而不是网络100的独立物理构件。示出了八个开销度量值分别与链路121、链路122、链路123、链路124、链路125、链路126、链路127和链路128相关联的开销度量值131、开销度量值132、开销度量值133、开销度量值134、开销度量值135、开销度量值136、开销度量值137和开销度量值138(下文统称作开销130)。尽管为了说明目的,在网络100中示出了一定数目的节点110、链路120和端节点180,但是在其他实施例中,网络包括更多的节点(例如路由器)、具有相同或不同开销130的更多链路、以及更多的端节点。可以使用本领域已知的任何方法来确定链路的开销度量值。例如,在一些实施例中,链路上的开销由等式1近似地给出,该等式是包括7个项的更全面的开销度量的近似。开销度量=带宽乂10^+(链路传播时间(traveltime)延迟的总和)X256(1)利用图1所示的数据,表1列出了使用最佳链路和邻居、从每个路由器110到达端节点190的开销。开销以任意单位给出。表1.如图1所示从路由器110到端节点180的最低开销路径的示例开销本地路由器邻居路由器#跳开销113—11011611322011511625112115435114115430111113235表1中的路由是根据基于度量的IGP(例如EIGRP)的控制平面消息构造的。例如,路由器113确定到达端节点180的开销10,并且在控制平面消息中将该开销通告给他的每个邻居分别在链路121、链路123和链路126上的路由器111、路由器112和路由器116。这些控制平面消息每个都包括端节点180的网络地址、以及由通告路由器113报告的到达端节13点180的报告开销10。为了说明目的,假定端节点180的网络地址是1丄1.180。在接收路由器处,每个路由器将通过其自身与路由器113之间的链路的开销相加来确定使用该链路的开销。从而路由器111将链路121的链路开销25相加得到总开销35;路由器112将链路123的链路开销30相加得到总开销40;并且路由器116将链路126的链路开销IO相加得到总开销20。该过程继续,直到对于所有邻居所有路由器都已知道到达端节点180的开销为止。基于从路由器112通过路由器115和路由器116间接到达路由器113的链路125、链路128和链路126的开销总和小于30,所以从路由器112到端节点180的最佳路径通过路由器115而不是路由器113,如表1所示。下面使用图1和表1来说明根据所示实施例的在路由丢失时的縮小的査询范围。根据本发明的实施例,路由器向其邻居发送的控制平面消息被改变为包括向每个邻居发送下面将更详细描述的后续数据。除了从通告路由器起的具有在该通告路由器处报告的该路由的开销度量的任何路由之外,后续数据还指示从发送控制平面消息的通告路由器到目的地存在一条或多条无环替换路径。后续数据用来确定在丢失了特定路由时要查询的特定邻居,下面将更详细地描述。2.0路由信息的数据结构图2A是说明根据实施例的允许縮小了范围的查询的路由协议的控制平面消息240的框图。控制平面消息包括通告地址字段242、报告开销字段244和后续信息字段246。后续信息246在前面的方法中不在路由器之间发送。后续信息246的生成和消耗将参考图3、图4A和图4B更详细地描述。在一些实施例中,报告开销字段244被省略,或者包含指示没有向接收路由器通告路由的值。图2B是说明根据实施例的使用图2A中示出的控制平面消息240的路由器200的框图。路由器200包括路由过程210、路由表220和路由协议信息230。14路由过程210在处理器(例如,运行使处理器执行路由过程的指令序列的通用处理器)上运行。根据本发明的实施例,路由过程包括下面将参考图3、图4A和图4B更详细地描述的对后续信息进行处理的过程214。路由过程210基于在存储在路由协议信息数据结构230中的一个或多个路由协议更新消息中接收到的信息,在路由表220中存储和检索信息。路由表220是包括用于可从路由器200到达的每个目的地的地址字段222、链路字段223和零个或更多个属性字段的数据结构。在所示实施例中,属性字段包括总开销字段224。路由表220中用于其他目的地的字段由省略号229示出。路由协议信息数据结构230是包括用于在路由协议更新消息中接收到的每个目的地的地址字段(例如,地址字段232a、232b,下文统称作地址字段232)、邻居标识符(ID)字段(例如,邻居ID字段233a、233b,下文统称作邻居ID字段233)、报告开销字段(例如,报告开销字段234a、234b,下文统称作报告开销字段234)、以及邻居后续数据字段(例如,邻居后续数据字段236a、236b,下文统称作邻居后续数据字段236)的数据结构。在所示实施例中,数据结构230还包括本地后续标记字段231a、231b(下文统称作本地后续标记字段236)。路由协议信息数据结构230中的用于其他目的地的字段由省略号239示出。可以用本领域已知的任何方法形成数据结构,包括使用一个或者多个节点上的易失性存储器或者非易失性存储器的多个部分,以一个或多个文件或者通过数据库服务器访问的一个或多个数据库的方式,或者一些组合。尽管出于说明目的将数据结构220、230示为具有连续字段(例如,字段232)的整体块,但是在其他实施例中,将数据结构220、230和字段的一个或多个部分作为分离的数据结构存储在执行路由器200的功能的相同或者不同的多个节点上。通告地址字段保存指示网络(例如,网络100)的特定端节点(例如,端节点180)的网络地址(例如,IP地址)的数据。邻居ID字段233保持指示从其接收到关于相关联的通告地址的信息的邻居(或者通过其接收到所述信息的链路)的数据。报告开销字段234保存指示到达由邻居所指示的相关联的通告地址的开销的数据。如果邻居没有通告去往相关联的通告地址的路由,则报告开销字段234保存默认值或者空值,例如开销度量可用的最大开销值。字段232、233、234在传统的IGP(例如,EIGRP)中被包括在数据结构230中。根据本发明的多种实施例,路由协议信息数据结构包括邻居后续字段236或者本地后续标记字段231或者二者。本地后续标记字段231指示邻居ID字段233中所指示的相关联的邻居或链路是否包括从本地路由器200到字段232中的相关联的通告地址的无环路径。如下面更详细地描述的,这可以根据路由表220中的到达该地址的当前总开销和字段233中所指示的邻居的字段234中的报告开销确定。如果报告开销小于当前总开销,则通过该邻居的路径是从本地路由器200开始的无环路径。邻居后续数据字段236指示邻居ID字段233中所指示的相关联的邻居或者链路是否包括从该邻居到相关联的通告地址而不是从本地路由器200到该相关联的地址的无环路径。3.0用于縮小査询范围的方法图3是在高层示出根据实施例的用于生成用于縮小査询范围的路由协议消息的方法300的流程图。尽管为了说明目的按照特定的顺序示出了图1中的步骤和后续流程图,但是在其他实施例中,一个或多个步骤可以按照不同的顺序执行或者在时间上重叠地执行,或者一个或多个步骤可以被省略或添加,或者可以作出这些改变的组合。在步骤305中,从与本地路由器直接连接的相邻路由器接收消息。如图2A的消息240中所示,这些消息指示从那些相邻路由器(基于通过其接收消息的物理链路确定)到一个或多个目的网络地址(例如,IP地址,例如字段242中的)的报告开销(字段244)。从路由器113起层级传递的消息序列在上面参考表1进行了描述。在所示实施例中,该信息被存储在本地路由器上的路由协议信息数据结构230的字段232、233、234中。邻居ID字段233的内容可以利用本领域己知的任何方式来确定,例如利用消息240的头部中的源地址字段(未示出)、或者用于在本地路由器处16接收消息240的物理链路的标识符。在至少一些实施例中,消息240的字段246中的后续信息也在步骤S305期间被接收,并且被存储到字段236中;但是,后续信息的含义和用途是参考方法300中的其他步骤更详细地描述的。例如,路由器112接收来自路由器113的报告开销IO和来自路由器115的报告开销25,作为到达端节点180的报告开销。在一些实施例中,例如,在EIGRP中,邻居仅如下所述报告它们的到目的地的最低开销路径(即,它们的路由),而不是所有的路径。在步骤310中,本地路由器确定经由报告去往特定目的地的路由的多个邻居去往该目的地的总开销。总开销是通过将来自特定邻居的报告开销与指示通过本地路由器和该特定邻居之间的链路的链路开销的值相加确定的。可以使用用于确定本地路由器和其相邻路由器(邻居)之间的链路开销的任何己知方式。例如,参见A.Retana,R.White禾QD.Slice的£7GiP々r/P.-5"57.cam/Co"ygt/ra"'ow,ISBN0201657732,Addison-Wesley,波士顿(2000)。在所示实施例的路由器112中,本地路由器确定通过其与路由器113的链路123到端节点180的总开销是40,并且通过其与路由器115的链路125的总开销是35。表2对所示实施例中在路由器112处通过各条链路到达端节点180的报告开销和总开销进行了比较。表2.在路由器112处考虑的到达端节点180的开销<table>tableseeoriginaldocumentpage17</column></row><table>在步骤320中,选择与最小总开销相关联的邻居作为到目的地的当前路由的下一跳。例如,在所示实施例中的路由器112处,路由器112选择通过邻居115的链路125作为到端节点180的当前路由的下一条。到目的地的最低总开销在这里被称作到目的地的总度量;因此从路由器112到端节点180的总度量是35。(在一些实现方式中,到目的地的最低总开销被称作到目的地的"可行距离")。通常在路由协议(控制平面)消息中将到目的地的路由的存在与到目的地的总度量一起通告给本地路由器的邻居。在一些使用水平分隔规则(split-horizonrule)的实施例中,没有将目的地和总度量报告给已被选作路由上的下一跳的路由器。该相邻路由器已知道正被通告的确切路由,并且如果该相邻路由器将使用本地路由器的话,将导致环。例如,在不利用水平分隔规则的情况下,由路由器115向路由器112发送的数据平面消息然后将被路由器112发送回路由器115,产生了环。水平分隔规则从而限制了循环路由的传播。基于水平分隔规则,传统的路由器112将向邻居113通告去往端节点180的具有报告开销35的路由,而不向邻居115通告该路由。根据所示实施例,路由通告路由协议消息不仅与目的地和报告开销而且如果存在后续数据的话还与后续数据一起发送。在一些实施例中,用损害反转规则(poisonreverserule)替换水平分隔规则,以传播后续信息并且防止环。根据损害反转规则,本地节点向该本地节点当前正通过其对通信量进行路由的邻居通告具有报告开销的最大值(实质上,一个"无穷大"的度量)的路由。邻居将不使用该本地节点作为到达目的地的路径,因为从该邻居使用该本地节点将导致"无穷大"的开销。在步骤330中,确定零条或者更多条替换无环路径的本地可行后续集合。该可行后续集合不包括在步骤320中选择的路由。这是EIGRP开销度量、以及在其他实施例中使用的许多其他度量的一个特性,并且具有小于本地路由器的总度量的报告开销的邻居必然具有从本地路由器到目的地的无环路径。考虑到此,如果邻居的路径通过本地路由器环回,则邻居的报告开销必定包括该本地路由器的开销,并且可能不比该本地路由器的总度量小。例如,路由器112具有通过相邻路由器115到达端节点180的总度量35,如在步骤320中确定的。通过其他邻居,路由器113的报告开销是10。因为10小于35,所以通过路由器113的路径是无环的,不可能通过路由器112传递回去;并且通过路由器113的路径被包括在路由器112处的无环路径的可行后续集合中。在步骤340中,基于可行后续集合确定将被报告给邻居的后续数据。在一些实施例中,后续数据包括指示用于本地路由器的可行后续集合具有至少一个成员的数据。在一些实施例中,如果在可行后续集合中存在多于零个成员,则后续数据包括指示可行后续集合中的一个或多个成员的总开销或报告开销的数据。在一些实施例中,后续数据指示在本地路由器处存在至少一个可行后续。对于所示实施例中的路由器112,后续数据具有值在所示实施例中,报告给邻居的后续数据依赖于该邻居,从而使得作为特定可行后续的下一跳的特定邻居发送不指示该特定可行后续的后续数据。对于所示实施例中的具有通过路由器115的路由和通过路由器113的可行后续的路由器112,发送到路由器115的后续数据指示值为"1"的可行后续;但是发送到路由器113的后续数据不指示值为"0"的任何可行后续。在一些实施例中,后续数据不依赖于该后续数据被发送向的邻居;例如,在一些实施例中,后续数据是可行后续的路由器ID的列表。后续数据对于接收节点确定所通告的可行后续是否通过该接收节点是足够的。对于图1中示出的示例性的六个路由器和一个端节点,按照方法300通过步骤340,确定表3中列出的路由、后续集合成员和后续信息。表3.到达端节点180的可行后续集合成员和后续数据本地路由器路由下一跳总度量可行后续路由器(具有报告的距离)向(邻居)发送的后续数据11111335114(30)1(113);0(114)11211535113(10)0(113);1(115)113180100(111,112,116)114115300(111,115)115116250(112,114,116)116113200(115,114)路由器113没有可行的后续。每个相邻路由器111、112、116将导致通过路由器113的回环。路由器114也没有可行后续。通过路由器111的替换路径具有大于路由器114的总度量30的报告开销35。路由器115没有可行后续;其剩余的邻居(路由器112、114)二者都具有比其总度量25大的报告开销(分别为40和45)。类似地,路由器116没有可行后续;其19剩余的邻居115具有比其总度量20大的报告开销25。在一些实施例中,路由协议信息数据结构230包括用于每个条目的标记字段231,以标识出哪些邻居构成本地路由器处的可行后续集合的成员。例如,在路由器112处,与相邻路由器113相关联的标记字段(例如,标记字段231a)被设置为指示其是可行后续的第一值(例如,"2")。在一些实施例中,如下面将更详细地描述,如果相关联的邻居已经报告了由邻居后续数据字段236中的数据指示的可行后续,则标记字段231包含不同的值(例如,"1")。在一些实施例中,与另一个邻居(例如,路由器115)相关联的标记字段(例如,标记字段231b)被设置为第三值(例如,"0"),以指示该邻居既不是可行后续集合的成员也未报告其自身的可行后续。在一些实施例中,第四值(例如,"3")指示该邻居是路由的所选择的下一跳。在一些实施例中,可行后续集合的成员是从路由协议信息数据结构230中的其他数据按需确定的,并且不包括标记字段。在所示实施例中描述了标记字段,所以人类阅读者不必重新计算可行后续和报告的可行后续作为在下面的步骤中使用的信息。在步骤350中,后续数据在路由协议控制平面消息中被发送到至少一个相邻路由器。例如,在类似从路由器112向路由器113发送的具有报告开销25并且在字段242中具有端节点180的地址的消息240的路由通告消息中,后续值"0"被包括在后续信息246中。后续信息字段中的零值指示不存在通过发送该消息的通告路由器(路由器112)的可用替换无环路径。这是因为路由器112处的可行后续是路由器113,并且这样的路径对路由器113是不可用的。因此,零被发送给路由器113(参见表3中针对本地路由器112的条目)。例如,对与特定目的地相关联的标记字段231中的值进行比较,使得在任何邻居都具有指示其是可行后续的值"2"并且接收节点不同于字段223中所指示的通告节点的情况下,产生值在所示实施例中,后续数据被发送给所有相邻路由器,即使按照水平分隔规则未被发送路由通告消息的那些也如此。在所示实施例的示例中,后续数据被发送给路由器115。因为按照水平分隔规则后续数据不被发送20给路由器115,所以根据一个实施例的不同类型的路由协议控制平面消息被发送给路由器115。例如,在步骤350期间,类似消息240但是没有字段244的消息被从路由器112发送给相邻路由器115。该消息在字段242中包括端节点180的地址并且在字段246中包括后续值"1"(参见表3中针对本地路由器112和接收路由器115的条目)。在一些实施例中,该消息除了包括本地发送节点的总度量,例如,当前最佳路由的值35外,还包括字段242。在一些实施例中,该消息除了包括默认值,例如,零或者空或者最大允许度量值外,还包括字段242,以指示从发送节点起的路由不是无环路的。在一些实施例中,使用损害反转规则,该消息除了包括最大允许度量值("无穷大"值)夕卜,还包括字段242,以指示从发送节点起的路由不是无环的。在步骤350之后,路由器115接收路由协议控制消息,例如,更新消息,该消息指示路由器112具有至少一个去往端节点180的可行后续。类似地,路由器113接收路由协议控制消息,例如,更新消息,该消息指示路由器111具有至少一个去往端节点180的可行后续。但是,路由器113接收路由协议控制消息,例如,更新消息,该消息指示路由器112不具有至少一个去往端节点180的可行后续。类似地,路由器114接收路由协议控制消息,例如,更新消息,该消息指示路由器111不具有至少一个去往端节点180的可行后续。根据本发明的一些实施例,后续数据(例如,字段246中的后续信息)被用来确定在丢失了路由时查询哪些邻居,将参考图4A和4B更详细地描述。图4A和图4B构成在高层说明根据另一个实施例的对接收到的路由协议消息进行处理以縮小査询范围的方法400的流程图。方法400是方法300的另一个实施例,但是添加了使用由一个或多个相邻路由器例如在字段246中提供的后续数据的细节。该信息被用来在存在通告可行后续的邻居的情况下仅向那些邻居发送查询,从而将查询范围限制为较少的跳。在许多情形中,査询范围被限制在到査询路由器知道被查询的路由器将响应关于特定端节点地址的那些邻居的一跳内。在步骤404中,在本地路由器处接收到来自邻居的包括后续数据的路由协议更新消息,例如,该本地路由器的相邻路由器在步骤350中发送的消息。注意,本地路由器包括用于确定该本地路由器的后续集合的数据,并且在步骤404中接收到的后续信息是应用于发送该更新消息的邻居的后续信息。在步骤408中,将基于邻居后续数据的信息存储到本地路由器中。例如,后续信息被存储在与字段232中的特定目的地址和字段233中的邻居ID(例如链路标识符)相关联的字段236中。为了说明目的,表4列出了在步骤350中发送给相邻路由器,并且在步骤404中在路由器115处接收的,基于表3中的信息的路由器115上的路由协议信息数据结构230的内容。回忆为了说明目的曾假定端节点180的网络地址是10丄1.1S0。如上所述,从路由器115到端节点180的总度量是25。表4.路由器115上的针对目的地180的示例路由协议信息本地后续标记通告的地址邻居ID(链路ID)报告开销后续信息110.1.1.108112(125)"无穷大"1010.1.1.108114(127)"无穷大"0IO丄I.画116(128)200210.1.1.108113(…)100如表4所示,路由器115的三个邻居己在不同的路由协议更新消息中向路由器115报告了针对端节点180的它们的最佳路由和后续信息。链路125上的路由器112未报告路由(因为它的去往端节点180的最佳路由通过路由器115)但是报告了可行后续(参见表3,路由器112的条目)。路由的缺乏由"无穷大"报告开销指示。链路127上的路由器114没报告路由(因为它的去往端节点180的最佳路由通过路由器115)也没报告可行后续。链路128上的路由器116报告了具有报告开销20的一条路由,但是没报告可行后续。为了说明目的,还假定在一些实施例中,在路由器115和路由器113之间存在链路开销为20的链路(图1中未示出)。在这样的实施例中,路由器113向路由器115报告具有报告开销10的路由,但是没有可行后22续。下面参考步骤430描述表4的第一列中的本地后续标记的内容。在步骤410中,确定去往特定目的地的路由(即,最佳路径,即,具有最低总开销的路径)是否被丢失。可以使用本领域已知的任何方式来确定是否丢失了最佳路由。例如,在所示实施例中,路由通过与路由器116之间的链路128,如后续标记中的值"3"所示。如果在该链路上没有及时接收到保持存活消息,或者一些较低层的过程指示该链路已发生故障,则假定该链路不可使用了。因此,最佳路由被丢失了。在一些实施例中,先前报告了导致最低总开销的开销的邻居现在报告一个较高的开销,该较高的开销生成可能不再被认为是最低总开销的较高的总开销。如果在步骤410中确定去往特定目的地的最佳路径被丢失,则控制传递到由图4A中的连接点A表示的图4B中的步骤。如果在步骤410中确定去往特定目的地的最佳路径没有被丢失,则控制传递到420。在步骤420中,确定路由协议更新消息是否包括不是"无穷大"的报告开销。例如,路由器116的路由更新消息包括报告开销20,但是来自路由器112、114的更新消息因为水平分隔规则而不包括报告开销,或者根据损害反转规则报告"无穷大"开销。如果在步骤420中确定路由协议更新消息包括报告开销,则控制传递到步骤424。在步骤424中,通过下一个邻居的总开销被确定,并且被用来确定是否存在具有新的总度量(新的最低总开销)的去往目的地的新路由。步骤424是方法300的步骤310和步骤320的特定实施例。在所示实施例中,在步骤424中确定从路由器114去往端节点180的路由具有通过与路由器116之间的链路128的总度量25。该信息被传送到路由表220,以替换针对端节点180的地址的任何已有条目。控制然后传递到步骤430。如果在步骤420中确定路由协议更新消息不包括报告开销,则控制直接传递到步骤430。在步骤430中,可行后续集合和后续数据被确定,并且在更新消息中被发送给所有邻居。步骤430是上述方法300的步骤330、步骤340和步骤350的特定实施例。控制然后传递到步骤404,以等待下一个更新消息。为了说明目的,假定路由协议信息数据结构230的字段231中的本地后续标记在相关联的邻居是路由上的下一跳的情况下保存3,在相关联的邻居是去往本地路由器的可行后续(即,具有小于总度量的报告距离)的情况下保存2。为了说明目的,还假定字段231中的本地后续标记在相关联的邻居通告其自身的后续(即,该邻居报告可行后续)的情况下保存1。为了说明目的,还假定字段231中的本地后续标记在相关联的邻居既不是可行后续也未报告可行后续的情况下保存0。例如,在一些实施例中,路由器115和路由器130之间的链路(图1中未示出)具有小于路由器115的总度量值的报告开销10,字段231中的后续标记保存如表4的最后一行中所示的值2。在所示实施例中,除了所选路由之外,没有相邻路由器具有小于总度量的报告开销,因此在所示实施例中在路由器115处不存在可行后续。由于水平分隔规则或损害反转规则,路由器112、114不向路由器115通告路由。路由器112的确通告了去往端节点180的可行后续;因此,字段231中的后续标记保存如表4的第一行中所示的值1。路由器112是本地路由器115的一个可能后续。路由器114不通告去往端节点180的可行后续;因此,字段231中的后续标记保存如表4的第一行中所示的值0。路由器114既不是可行后续也不是可能的后续。如果在步骤410中确定去往特定目的地的最佳路径被丢失,则控制传递到由图4A中的连接点A表示的图4B中的步骤440。例如,如果路由器115和路由器116之间的链路128断开,则从路由器115到端节点180的总度量为25的路由被丢失,然后控制传递到步骤440。在步骤440中,确定本地路由器的邻居中是否存在任何在步骤430中所确定的可行后续。例如,确定在路由协议信息数据结构230中是否存在任何这样的条目本地后续标记231中值为2,通告地址字段232中的被丢失路由的端节点的地址。如果在步骤440中确定在本地路由器的邻居中存在任何可行后续,则控制传递到步骤444。在步骤444中,选择具有最小总开销的可行后续作24为去往特定目的地址的路由。例如,在包括路由器115和路由器113之间的具有表4的第一列中的值2的链路(未示出)的实施例中,控制传递到步骤444。在步骤444中,从所有可行后续中确定最小总开销(本地后续标记字段231中值为2)。由于仅一个邻居具有值2,所以将该邻居选择为路由。因此,去往路由器113的链路(未示出)是在链路128断开后的新路由的下一跳。该步骤当前由EIGRP执行,因为值为2的标记字段231是基于字段234中的报告开销,而不是基于用在本发明的所示实施例中的邻居后续数据字段236确定的。控制然后传递到图4A中的步骤430,以更新本地后续数据,并且向所有邻居发送任何更新消息。如果在步骤440中确定在本地路由器的邻居中不存在可行后续,则控制传递到步骤450。例如,在所示实施例中,在表4中未示出可行后续(本地后续标记字段231中值为2),因为表4的最后一行没有被包括在所示实施例中。因此,控制传递到步骤450。在步骤450中,确定是否任何邻居都已通告了不是本地路由器的可行后续。如果是,则控制传递到步骤460。如果否,则控制传递到步骤470。在所示实施例中,邻居仅报告了不是本地路由器的可行后续,因此邻居所报告的所有可行后续不包括本地路由器。如果在步骤450中确定没有邻居通告不是本地路由器的可行后续,则控制传递到步骤470。例如,确定是否任何邻居在本地后续标记字段231中都具有值1。如果否,则控制传递到步骤470。在步骤470中,向所有邻居发送査询来询问它们去往地址10丄1.180处的端节点180的最佳路由。根据EIGRP的先前实施例,这种查询总是在本地路由器处不存在可行后续时由该本地路由器发送;并且不针对报告了可行后续的邻居进行检查,既,不针对可能的后续进行检查。向所有邻居的査询导致相当大的查询范围(可能达到网络的相同范围),并且可能要花费相当长的时间来收敛,B口,经过相当长的时间才用改变后的报告路由进行响应。因此,仅在对于本地路由器不存在可行后续的一些条件下而不是所有条件下执行这种全范围查询的一些实施例是有利的。如果在步骤450中确定任何邻居已通告不是本地路由器的可行后续,则控制传递到步骤460。例如,确定是否任何邻居在本地后续标记字段231中具有值1。在所示实施例中,确定邻居112具有值1,因此该邻居已通告了可行后续(其是去往路由器115的可能后续)。在步骤460中,查询仅被发送给作为可能后续的邻居。可能后续很可能用原始报告路由或者通过其可行后续的路由作出响应。因此,该查询很可能由查询的第一个路由器答复,并且该查询不被不必要地传播到其他层。因此,查询范围被限制为小于网络的全范围。在所示实施例中,査询仅被导向在本地后续标记中具有值1的一个邻居,该值1指示已通告了可行后续的邻居(该邻居是链路125上的路由器112)。因此,査询仅被发送向路由器112,并且查询不被发送向路由器114。路由器112具有可行后续,并且因此在不发起更多査询的情况下对该査询作出响应。另一方面,路由器114不具有可行后续,因此路由器14如果被査询的话也将发送査询,从而与仅向具有可行后续的节点112发送査询相比增大了查询范围。4.0实现机构-硬件概述图5是示出本发明的实施例可以在其上实现的计算机系统500的框图。优选实施例是利用运行在诸如路由器设备之类的网络元件上的一个或多个计算机程序来实现的。因此,在此实施例中,计算机系统500是路由器o计算机系统500包括用于在计算机系统500的其他内部和外部组件之间传递信息的通信机构,例如总线510。信息被表示为可测量现象的物理信号,该可测量现象一般是电压,但在其他实施例中,包括诸如磁、电磁、压力、化学、分子原子和量子交互之类的现象。例如,北和南磁场或者零和非零电压表示二进制数字(比特)的两个状态(0,1)。二进制数字的序列构成用于表示数字或字符代码的数字数据。总线510包括许多并行的信息导体,以使信息在耦合到总线510的设备之间迅速传递。用于处理信息的一个或多个处理器502与总线510相耦合。处理器502对信息执行一组操作。该组操作包括从总线510接收信息并将信息置于总线510上。该组操作一般还包括比较两个或更多个信息单元、移动信息单元的位置、以及例如通过加法或乘法来组合两个或更多个信息单元。将由处理器502执行的操作序列构成了计算机指令。计算机系统500还包括耦合到总线510的存储器504。诸如随机访问存储器(RAM)或其他动态存储设备之类的存储器504存储包括计算机指令在内的信息。动态存储器允许存储在其中的信息被计算机系统500改变。RAM允许存储在被称为存储器地址的位置处的信息单元以独立于相邻地址处的信息的方式被存储和检索。存储器504还被处理器502用来在计算机指令执行期间存储临时值。计算机系统500还包括耦合到总线510的、用于存储不被计算机系统500改变的静态信息(包括指令)的只读存储器(ROM)504或其他静态存储设备。同样耦合到总线510的是非易失性(持久性)存储设备508,例如磁盘或光盘,用于存储即使在计算机系统500被关掉或者由于其他原因而掉电时也能够持续下来的信息(包括指令)。术语计算机可读介质在这里用来指任何参与向处理器502提供包括用于执行的指令在内的信息的介质。这种介质可采取许多形式,包括但不限于非易失性介质、易失性介质和传送介质。非易失性介质例如包括光盘或磁盘,例如存储设备508。易失性介质例如包括动态存储器504。传送介质例如包括同轴电缆、铜线、光缆和在无需导线或线缆的情况下通过空间传播的波,例如声波和电磁波,包括无线电波、光波和红外波。经由传送介质传送的信号在这里被称为载波。计算机可读介质的常见形式例如包括软盘、软磁盘、硬盘、磁带或任何其他磁介质,致密盘ROM(CD-ROM)、数字视频盘(DVD)或任何其他光学介质、穿孔卡、纸带、或任何其他具有孔图案的物理介质、RAM、可编程ROM(PROM)、可擦除PROM(EPROM)、FLASH-EPROM、或任何其他存储器芯片或卡盘、载波或者计算机可以读取的任何其他介质。包括指令在内的信息被从外部终端512提供到总线510以供处理器使用,所述外部终端512例如是具有包含由人类用户操作的数字字母键的键27盘的终端或者是传感器。传感器检测其附近的状况,并将这些检测变换成与计算机系统500中用于表示信息的信号相兼容的信号。耦合到总线510的终端512的主要用于与人类交互的其他外部组件包括用于呈现图像的显示设备(例如阴极射线管(CRT)或液晶显示器(LCD)或等离子屏幕)和用于控制在显示器上呈现的小光标图像的位置并发出与终端512的显示器上呈现的图形元素相关联的命令的定点设备(例如鼠标或跟踪球或光标方向键)。在一些实施例中,终端512被省略。计算机系统500还包括耦合到总线510的通信接口570的一个或多个实例。通信接口570提供耦合到利用其自己的处理器进行操作的多种外部设备的双向通信,所述外部设备例如是打印机、扫描仪、外置盘、和终端512。在计算机系统500中运行的固件或软件提供终端接口或者基于字符的命令接口,以使外部命令能够被提供给计算机系统。例如,通信接口570可以是并行端口或串行端口,例如RS-232或RS-422接口,或者是个人计算机上的通用串行总线(USB)端口。在一些实施例中,通信接口570是提供到相应类型的电话线的信息通信连接的电话调制解调器、或综合服务数字网(ISDN)卡、或数字用户线路(DSL)卡。在一些实施例中,通信接口570是将总线510上的信号转换成用于经由同轴电缆的通信连接的信号或者用于经由光缆的通信连接的光信号的线缆调制解调器。作为另一示例,通信接口570可以是提供到兼容的LAN(例如以太网)的数据通信连接的局域网(LAN)卡。也可实现无线链路。对于无线链路,通信接口570发送和接收携带信息流(例如数字数据)的电信号、声信号或电磁信号,包括红外信号和光信号。这种信号是载波的示例。在所示的实施例中,诸如专用集成电路(IC)520之类的专用硬件耦合到总线510。专用硬件被配置为为了特殊的目的而足够迅速地执行不由处理器502执行的操作。专用IC的示例包括用于生成图像以便显示的图形加速卡、用于对经由网络发送的消息进行加密和解密的密码板、语音识别、以及到特殊外部设备的接口,所述特殊外部设备例如是重复执行在硬件中更高效实现的某个复杂操作序列的机械臂和医学扫描装备。在用作路由器的所示出的计算机中,计算机系统500包括作为用于切换在网络上流动的信息的专用硬件的交换系统530。交换系统530—般包括多个通信接口,例如通信接口570,用于耦合到多个其他设备。一般来说,每个耦合都具有与网络中的或附接到网络的另一设备相连接的网络链路532,其中,所述网络例如是所示实施例中的与具有其自己的处理器的多种外部设备相连接的本地网络580。在一些实施例中,输入接口或输出接口或两者被链接到一个或多个外部网络元件中的每一个。虽然所示实施例中的网络链路532包括三条网络链路532a、532b、532c,但在其他实施例中,更多或更少的链路被连接到了交换系统530。网络链路532—般通过一个或多个网络来提供到使用或处理信息的其他设备的信息通信。例如,网络链路532b可通过本地网络580来提供到主机计算机582或由因特网服务提供者(ISP)操作的装备584的连接。ISP装备584进而又通过现在通常被称为因特网590的网络的公共的世界范围的分组交换通信网络来提供数据通信服务。被称为服务器592的连接到因特网的计算机响应于经由因特网接收的信息提供服务。例如,服务器592提供用于交换系统530的路由信息。交换系统530包括被配置为执行与在网络580的元件之间传递信息相关联的交换功能的逻辑和电路,所述传递信息包括传递沿一条网络链路(例如532a)接收的、作为相同或不同网络链路(例如532c)上的输出的信息。交换系统530根据公知的预定协议和惯例将到达输入接口的信息通信量切换到输出接口。在一些实施例中,交换系统530包括其自己的处理器和存储器,以在软件中执行一些交换功能。在一些实施例中,交换系统530依赖于处理器502、存储器504、ROM506、存储设备508或某种组合,以在软件中执行一个或多个交换功能。例如,交换系统530与实现特定协议的处理器502合作,可确定在链路532a上到达输入接口的数据分组的目的地,并利用链路532c上的输出接口将它发送到正确的目的地。目的地可包括主机582、服务器592、连接到本地网络580或因特网590的其他终端设备,或者本地网络580或因特网590中的其他路由和交换设备。本发明涉及使用计算机系统500来实现本文描述的技术。根据本发明的一个实施例,这些技术是由计算机系统500响应于执行包含在存储器504中的一个或多个指令的一个或多个序列的处理器502而执行的。这种指令也被称为软件和程序代码,它们可被从另一计算机可读介质(例如存储设备508)读取到存储器504中。对包含在存储器504中的指令序列的执行使得处理器502执行本文描述的方法步骤。在替换实施例中,诸如专用集成电路520和交换系统530中的电路之类的硬件可取代软件或与软件结合来实现本发明。从而,本发明的实施例不局限于硬件和软件的任何特定组合。通过通信接口(例如接口570)经由网络链路532和其他网络传送的信号(该信号携带去往和来自计算机系统500的信息)是载波的示例性形式。计算机系统500可通过网络580、590等等,通过网络链路532和通信接口(例如接口570)来发送和接收包括程序代码在内的信息。在使用因特网590的示例中,服务器592通过交换系统530中的通信接口,通过因特网590、ISP装备584、本地网络580和网络链路532b来发送由计算机500发送来的消息所请求的用于特定应用的程序代码。接收到的代码可在其被接收时被处理器502或交换系统530执行,或者可被存储在存储设备508或其他非易失性存储器中以便以后执行,或者两种情况兼有。这样,计算机系统500可以以载波形式获得应用程序代码。各种形式的计算机可读介质可用于将指令或数据或两者的一个或多个序列运送到处理器502以便执行。例如,指令和数据可以首先承载在远程计算机(例如主机582)的磁盘上。远程计算机可以将指令和数据加载到其动态存储器中,并利用调制解调器经由电话线来发送指令和数据。计算机系统500的本地调制解调器接收电话线上的指令和数据,并使用红外发射器将指令和数据转换为用作网络链路532b的载波的红外信号。用作交换系统530中的通信接口的红外检测器接收红外信号中携带的指令和数据,并且将表示该指令和数据的信息置于总线510上。总线510将信息携带到存储器504,处理器502利用与指令一起发送的一些数据来从存储器30504中检索并执行指令。在存储器504中接收的指令和数据可以可选地在被处理器502或交换系统503执行之前或之后存储在存储设备508上。5.0扩展和替换在以上说明中,已参考特定实施例描述了本发明。但是,应当清楚,在不脱离本发明更宽广的精神和范围的情况下,可以进行各种修改和变化。因此,说明书和附图都应当被认为是示例性的,而非限制性的。权利要求1.一种用于确定分组交换通信网络中的路由的方法,包括步骤在分组交换通信网络的中间网络节点处,接收来自直接链接到所述中间网络节点的相应多个相邻节点的多个报告开销,其中,来自相应相邻节点的报告开销是用于通过所述相应相邻节点向所述网络中的特定目的地节点发送数据分组的开销量度;确定所述相应多个相邻节点的多个总开销,其中,相应相邻节点的总开销是用于向所述相应相邻节点发送数据分组的开销量度与来自所述相应相邻节点的报告开销的和;通过从所述多个相邻节点中选择被选相邻节点来确定去往所述特定目的地的路由,其中,所述被选相邻节点具有不大于每个其他相邻节点的总开销的相应总开销;确定所述多个相邻节点中的零个或更多个相邻节点的可行后续集合,其中所述可行后续集合中的每个相邻节点都具有比所述被选相邻节点的总开销小的相应报告开销,并且所述可行后续集合不包括所述被选相邻节点;以及向所述多个相邻节点发送指示关于所述可行后续集合的信息的后续数据,从而所述多个相邻节点中的丢失了去往所述特定目的地节点的路由的相邻节点能够基于所述后续数据来确定是否向所述中间网络节点查询,从而减少在确定新路由时所消耗的网络资源。2.如权利要求1所述的方法,其中,发送后续数据的所述步骤还包括向所述多个相邻节点中的第一相邻节点发送指示所述后续集合是否包括所述多个相邻节点中的与所述第一相邻节点不同的相邻节点的后续数据。3.—种用于确定分组交换通信网络中的路由的方法,包括步骤在分组交换通信网络的直接链接到第一多个相邻节点的中间网络节点处,接收来自所述第一多个相邻节点中的第一相邻节点的后续数据;其中所述第一相邻节点接收来自直接链接到所述第一相邻节点的第二多个相邻节点的到达特定目的地节点的多个报告开销,来自所述第二多个相邻节点中的相应相邻节点的报告开销是用于通过所述第二多个相邻节点中的所述相应相邻节点向所述网络中的所述特定目的地节点发送数据分组的开销量度;所述第二多个相邻节点中的相应相邻节点的总开销是用于从所述第一相邻节点向所述相应相邻节点发送数据分组的开销量度与来自所述相应相邻节点的报告开销的和,所述第二多个相邻节点中的被选相邻节点具有不大于所述第二多个相邻节点中的每个其他相邻节点的总开销的相应总开销;所述第二多个相邻节点中的零个或更多个相邻节点的可行后续集合的每个成员都具有比所述被选相邻节点的总开销小的相应报告开销,所述可行后续集合不包括所述被选相邻节点,并且所述后续数据指示关于所述可行后续集合的信息;以及在所述中间网络节点处确定去往所述特定目的地节点的路由被丢失;以及基于所述后续数据,确定是否向所述第一相邻节点査询去往所述特定目的地节点的路由,从而减少确定新路由所消耗的网络资源。4.如权利要求3所述的方法,确定是否向所述第一相邻节点査询的所述步骤还包括确定所述后续数据是否指示所述第二多个相邻节点中的多于零个节点;以及如果确定出所述后续数据只是指示零个节点,则确定不向所述第一相邻节点查询。5.如权利要求4所述的方法,其中接收来自所述第一多个相邻节点中的第一相邻节点的后续数据的所述步骤还包括接收来自所述第一多个相邻节点中的每个相邻节点的后续数据;并且确定不向所述第一相邻节点査询的所述步骤还包括对于所述第一多个相邻节点中的至少一个相邻节点,确定后续数据是否指示多于零个节点,并且如果确定出对于所述第一多个相邻节点中的至少一个相邻节点所述后续数据指示多于零个节点,则确定不向所述第一相邻节点查询。6.如权利要求3所述的方法,确定是否向所述第一相邻节点査询的所述步骤还包括确定所述后续数据是否指示所述第二多个相邻节点中的与所述中间网络节点不同的至少一个节点;以及如果确定出所述后续数据指示与所述中间网络节点不同的至少一个节点,则确定向所述第一相邻节点查询。7.—种用于确定分组交换通信网络中的路由的设备,包括用于接收来自直接链接到所述设备的相应多个相邻节点的多个报告开销的装置,其中,来自相应相邻节点的报告开销是用于通过所述相应相邻节点向所述网络中的特定目的地节点发送数据分组的开销量度;用于确定所述相应多个相邻节点的多个总开销的装置,其中,相应相邻节点的总开销是用于向所述相应相邻节点发送数据分组的开销量度与来自所述相应相邻节点的报告开销的和;用于通过从所述多个相邻节点中选择被选相邻节点来确定去往所述特定目的地的路由的装置,其中,所述被选相邻节点具有不大于每个其他相邻节点的总开销的相应总开销;用于确定所述多个相邻节点中的零个或更多个相邻节点的可行后续集合的装置,其中,所述可行后续集合中的每个相邻节点都具有比所述被选相邻节点的总开销小的相应报告开销,并且所述可行后续集合不包括所述被选相邻节点;以及用于向所述多个相邻节点发送指示关于所述可行后续集合的信息的后续数据的装置,从而所述多个相邻节点中的丢失了去往所述特定目的地节点的路由的相邻节点能够基于所述后续数据来确定是否向所述设备査询,以减少在确定新路由时所消耗的网络资源。8.—种用于确定分组交换通信网络中的路由的设备,包括用于接收来自直接链接到所述设备的第一多个相邻节点中的第一相邻节点的后续数据的装置,其中所述第一相邻节点接收来自直接链接到所述第一相邻节点的第二多个相邻节点的到达特定目的地节点的多个报告开销,来自所述第二多个相邻节点中的相应相邻节点的报告开销是用于通过所述第二多个相邻节点中的所述相应相邻节点向所述网络中的所述特定目的地节点发送数据分组的开销量度,所述第二多个相邻节点中的相应相邻节点的总开销是用于从所述第一相邻节点向所述相应相邻节点发送数据分组的开销量度与来自所述相应相邻节点的报告开销的和,所述第二多个相邻节点中的被选相邻节点具有不大于所述第二多个相邻节点中的每个其他相邻节点的总开销的相应总开销;所述第二多个相邻节点中的零个或更多个相邻节点的可行后续集合的每个成员都具有比所述被选相邻节点的总开销小的相应报告开销,所述可行后续集合不包括所述被选相邻节点,所述后续数据指示关于所述可行后续集合的信息;用于确定从所述设备到所述特定目的地节点的路由被丢失;以及基于所述后续数据确定是否向所述第一相邻节点查询去往所述特定目的地节点的路由的装置,从而减少确定新路由所消耗的网络资源。9.一种用于确定分组交换通信网络中的路由的设备,包括多个网络接口,耦合到第一网络,用于与之传输第一数据分组;一个或多个处理器;计算机可读介质;以及所述计算机可读介质中存储的一个或多个指令序列,所述一个或多个指令序列当被所述一个或多个处理器执行时,使所述一个或多个处理器执行步骤接收来自直接链接到所述多个网络接口的相应多个相邻节点的多个报告开销,其中,来自相应相邻节点的报告开销是用于通过所述相应相邻节点向所述网络中的特定目的地节点发送数据分组的开销量度;确定所述相应多个相邻节点的多个总开销,其中,相应相邻节点的总开销是用于向所述相应相邻节点发送数据分组的开销量度与来自所述相应相邻节点的报告开销的和;通过从所述多个相邻节点中选择被选相邻节点来确定去往所述特定目的地的路由,其中,所述被选相邻节点具有不大于每个其他相邻节点的总开销的相应总开销;确定所述多个相邻节点中的零个或更多个相邻节点的可行后续集合,其中,所述可行后续集合中的每个相邻节点都具有比所述被选相邻节点的总开销小的相应报告开销,并且所述可行后续集合不包括所述被选相邻节点;以及向所述多个相邻节点发送指示关于所述可行后续集合的信息的后续数据,从而所述多个相邻节点中的丢失了去往所述特定目的地节点的路由的相邻节点能够基于所述后续数据来确定是否向所述中间网络节点査询,从而减少在确定新路由时所消耗的网络资源。10.如权利要求9所述的设备,发送后续数据的所述步骤还包括向所述多个相邻节点中的第一相邻节点发送指示所述后续集合是否包括所述多个相邻节点中的与所述第一相邻节点不同的相邻节点的后续数据。11.一种用于确定分组交换通信网络中的路由的设备,包括多个网络接口,耦合第一网络,用于与之传输第一数据分组;一个或多个处理器;计算机可读介质;以及所述计算机可读介质中存储的一个或多个指令序列,所述一个或多个指令序列当被所述一个或多个处理器执行时,使所述一个或多个处理器执行步骤接收来自直接链接到所述多个网络接口的第一多个相邻节点中的第一相邻节点的后续数据,其中所述第一相邻节点接收来自直接链接到所述第一相邻节点的第二多个相邻节点的到达特定目的地节点的多个报告开销,来自所述第二多个相邻节点中的相应相邻节点的报告开销是用于通过所述第二多个相邻节点中的所述相应相邻节点向所述网络中的所述特定目的地节点发送数据分组的开销量度,所述第二多个相邻节点中的相应相邻节点的总开销是用于从所述第一相邻节点向所述相应相邻节点发送数据分组的开销量度与来自所述相应相邻节点的报告开销的和,所述第二多个相邻节点中的被选相邻节点具有不大于所述第二多个相邻节点的每个其他相邻节点的总开销的相应总开销;所述第二多个相邻节点中的零个或更多个相邻节点的可行后续集合的每个成员都具有比所述被选相邻节点的总开销小的相应报告开销,所述可行后续集合不包括所述被选相邻节点,并且所述后续数据指示关于所述可行后续集合的信息;以及确定去往所述特定目的地节点的路由被丢失;以及基于所述后续数据确定是否向所述第一相邻节点查询去往所述特定目的地节点的路由,从而减少确定新路由所消耗的网络资源。12.如权利要求11所述的设备,确定是否向所述第一相邻节点査询的所述步骤还包括确定所述后续数据是否指示所述第二多个相邻节点中的多于零个节点;以及如果确定出所述后续数据只是指示零个节点,则确定不向所述第一相邻节点查询。13.如权利要求12所述的方法,其中接收来自所述第一多个相邻节点中的第一相邻节点的后续数据的所述步骤还包括接收来自所述第一多个相邻节点中的每个相邻节点的后续数据;以及确定不向所述第一相邻节点査询的所述步骤还包括对于所述第一多个相邻节点中的至少一个相邻节点,确定后续数据是否指示多于零个节点,并且如果确定出对于所述第一多个相邻节点中的至少一个相邻节点所述后续数据指示多于零个节点,则确定不向所述第一相邻节点査询。14.如权利要求11所述的设备,确定是否向所述第一相邻节点査询的所述步骤还包括确定所述后续数据是否指示所述第二多个相邻节点中的与所述中间网络节点不同的至少一个节点;以及如果确定出所述后续数据指示与所述中间网络节点不同的至少一个节点,则确定向所述第一相邻节点查询。全文摘要用于重新获得丢失路由的技术,包括接收来自相邻节点的用于向目的地发送数据的报告开销;以及确定作为向相邻节点发送数据分组的开销和相应报告开销的总和的总开销。确定具有最小总开销的被选相邻节点作为去往目的地的路由的下一跳。确定相邻节点的可行后续集合和关于该可行后续集合的后续数据,其中,该可行后续集合具有小于被选相邻节点的总开销的报告开销,并且不包括被选相邻节点。后续数据被发送给相邻节点。丢失了去往特定目的地节点的路由的相邻节点能够基于该后续数据确定在重新获得去往目的地的丢失路由时是否查询发送节点,从而减少了网络资源消耗。文档编号H04J1/16GK101512489SQ200780004434公开日2009年8月19日申请日期2007年1月18日优先权日2006年2月3日发明者度尼·万·绍韦支,拉塞尔·怀特,阿尔维勒·伦塔纳申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1