用于检测跨路由信息边界的无回路路径的技术的制作方法

文档序号:7674951阅读:169来源:国知局

专利名称::用于检测跨路由信息边界的无回路路径的技术的制作方法
技术领域
:本发明涉及在跨越共享路由信息的节点组的边界的路由(诸如跨链路状态洪泛区和自治系统的路由)的中间网络节点处建立路由表;并且特别涉及用于经过这种边界的路由的技术,该技术允许接收方节点确定跨边界的可用路由是否引起回路,在所述回路中,下一跳离路由目的地节点比接收方节点离路由目的地节点远。
背景技术
:由外部通信链路连接的通用计算机系统和专用设备的网络是众所周知的并且被广泛用于商业中。这种网络通常包括辅助信息在计算机系统和设备之间传送的一个或多个网络设备。网络节点是由通信链路连接的网络设备或计算机或专用设备。端节点(endnode)是被配置为发起或者终止网络中的通信的节点。中间网络节点(intermediatenetworknode)辅助数据在端节点之间的传送。节点之间的通信一般受到离散数据分组交换的影响。信息根据许多已知的、新的或者仍在开发的协议中的一个或多个而在数据分组内被交换。在这样的语境下,协议(protocol)由一组规则构成,所述规则定义节点如何根据在通信链路中发送的信息来彼此交互。每个分组通常包括l]与特定协议有关的头信息,和2]载荷信息,所述载荷信息在头信息之后并且包括可以独立于该特定协议而被处理的信息。在一些协议中,分组包括3]尾部信息,所述尾部信息在载荷信息之后并指示载荷信息的结束。所述头包括诸如分组的源、分组的目的地、载荷的长度以及协议所使用的其它特性的信息。通常,用于特定协议的载荷中的数据包括针对与用于信息交换的不同层的具体内容有关的不同协议的头和载荷。用于特定协议的头一般指示在其载荷中包含的下一个协议的类型。载荷中的协议被称作针对该载荷而封装在头的协议中。正如由开放系统互联(OSI)参考模型定义的,在穿过多个不同种类的网络(诸如因特网)的分组中包括的头一般包括物理(层1)头、数据链路(层2)头、互联网(层3)头和传输(层4)头。在于1999年9月发表的由RadiaPerlman所著的题为"互联第二版(InterconnectionsSecondEdition)"的参考书中对OSI参考模型做了一般描述,该参考书通过引用被结合于此,好像在本文中全部阐述一样。互联网头提供定义网络内的源和目的地地址的信息。特别地,路径可以跨越多个物理链路。互联网头可以根据指定在逻辑路径的端点处的源和目的地节点两者的IP地址的因特网协议(IP)来格式化。因此,分组可以沿其逻辑路径从节点"跳"(hop)到节点,直到其达到指定了存储在分组的因特网头中的目的地IP地址的端节点为止。路由器和交换机是用于确定采用哪个或哪些通信链路来支持数据分组在网络中行进的网络设备。基于互联网头(层3)中的信息确定采用哪些链路的网络节点被称为路由器。一些协议在两个或更多个网络节点间以专用控制分组的方式来传送与协议有关的信息,所述专用控制分组被单独传输并且包括协议本身使用的信息载荷,而不包括要被传输用于另一应用的数据载荷。这些控制分组和利用这些控制分组的网络节点中的处理被称为处于另一维度,即"控制平面"中,该维度不同于"数据平面"维度,该"数据平面"维度包括具有用于端节点的其它应用的载荷的数据分组。链路状态协议是路由协议(routingprotocol)的一个示例,所述路由协议仅交换用于对以不同的被路由协议(routedprotocol)(例如,IP)发送的数据分组进行路由选择的控制平面消息。为了减少对网络资源的消耗和改善可扩展性,一些路由协议将大的网络划分为小的子网络。例如,开放系统互联(OSI)协议组和开放最短路径优先(OSPF)路由协议将网络划分为多个域(domain)和区(area)。域是处于单个负责方(诸如一个企业或者因特网服务供应商(ISP))的网络管理之下的一部分网络。域还被称为自治系统(AS)。域被划分为多个区。每个区是由网络管理员通常用手动方式指定的一组邻近子网络和所附接的端节点。在OSI中,AS内的路由器利用中间系统到中间系统(IS-IS)协议来相互通信。根据ISIS,区内的路由选择(级别1路由选择)利用了该区中每个路由器上的区分每个链路的链路状态数据。区之间的路由选择(级别2路由选择)经过级别2路由器,级别2路由器将通过该级别2路由器可达到的地址汇聚在一起。通过汇聚针对通过该级别2路由器的许多链路可达到的地址的路由信息,可以减少维护链路状态数据和做出路由判断所消耗的网络资源量并增强网络的可扩展性。将路由器分区在传统上是由人类网络管理员执行的手动处理。在互联网中,不同自治系统(AS)中的网络还在相互之间对数据分组进行路由选择。一般而言,自治系统中的网络节点被手动配置有自治系统标识符(ASID)。用于AS的路由信息在该AS与一个或多个其它AS的边界的中间网络节点处被总结,所述中间网络节点称为边界网关节点或者边界网关(BG)路由器。在一个AS的边界内共享的路由信息通过利用内部网关协议(IGP)来交换。示例IGP包括上述链路状态协议OSPF和IS-IS。由加利福尼亚州圣何塞的Cisco系统公司开发的另一IGP为增强型内部网关路由协议(EIGRP)。级别3路由协议被用于跨AS边界交换路由总结和路由策略信息。例如,边界网关协议(BGP)是级别3路由协议。BGP利用外部BGP(EBGP)在不同AS的相邻边界网关节点之间发送总结和策略信息。BGP利用内部BGP(IBGP)在相同AS的不同边界网关之间发送总结和策略信自当通告跨越诸如区之间和自治系统之间的边界的路由时,由一个区或自治系统最初通告的路由有可能被通告回到该最初的区或自治区域。这可能导致回路,在所述回路中,第一路由器穿过边界将流量传送给第二路由器,第二路由器比第一路由器离目的地要远。链路状态和BGP协议二者具有用于减少和消除回路的适当机制,以使得如果某些被通告的跨越这些边界的路由导致回路时,忽略这些路由。然而,这些机制在某些情况下可能失效。例如,在涉及许多可加入和离开网络的移动路由器的情形中,先前处于相同区或自治系统中的路由器可能发现不再存在达到特定目的地的内部(边界内)路由。在某些这样的情况中,通常会被现有机制因导致回路而拒绝的路由信息实际上不会导致回路并且可以被有用地保留。对于链路状态协议存在如下的要求要求区域不被多重连接并且要求至多有两个层次结构级别的连接,诸如中心辐射型排列。这与单向传送路由信息的规则结合可防止自治系统的区之间的回路。基于上述说明,非常清楚地需要一种用于检测和防止跨路由信息边界的路径中的回路的技术,该技术不会遭受现有技术方法中的问题。特别地,当边界内部的路由器被分为没有边界内路径的组时,需要保留跨边界的无回路路由。同样,对于链路状态洪泛区,当区域没有按照中心辐射型配置时,需要保留跨区的无回路路由。本发明通过附图的各个图中的示例来说明,而不是通过限制来说明,在附图中,相同的标号表示相似的元件,并且其中图1是示出根据实施例的包括多个自治系统以及自治系统内的多个链路状态洪泛区的网络的框图2A是示出根据实施例的在路由处理中使用多个路由协议的边界节点的框图2B是示出根据实施例的用于路由协议的控制平面消息的框图3A是以较高级别示出根据实施例的用于生成用于防止跨边界路由中的回路的路由协议消息的方法的流程图3B是以较高级别示出根据实施例的用于处理所接收的用于防止跨边界路由中的回路的路由协议消息的方法的流程图4A和图4B是分别示出根据实施例的图3A、图3B的方法用于链路状态汇聚路由器的特定实施例的流程图5A和图5B是分别示出根据实施例的图3A、图3B的方法用于自治系统边界网关路由器的特定实施例的流程图;以及图6是示出可以实施本发明的实施例的路由器的框图。具体实施例方式描述了用于检测分组交换通信网络中跨越路由信息边界的路由中的回路的技术。在下面的描述中,为了说明的目的,提出了许多特定细节,以便提供对本发明的全面理解。然而,很明显,对于本领域技术人员而言,可以在没有这些特定细节的情况下实施本发明。在其它情况中,以框图的形式示出了已知的结构和设备,以便避免不必要地模糊本发明。在下面的描述中,在具有两种类型的用于路由信息的编组的语境下描述具体实施例方式利用IS-IS的链路状态洪泛区编组和利用BGP的多个自治系统编组。然而,本发明不限于这些语境和协议,而是可以应用于涉及在分组交换通信网络中的中间网络节点组之间交换总结路由信息的分组的任何协议。例如,在由域内各区定义的编组中可以使用OSPF。1.0网络概况图1是示出根据实施例的包括多个自治系统以及自治系统内部的多个链路状态洪泛区的网络100的框图。网络100包括自治区AS110、AS120、AS130。每个自治区包括多个中间网络节点,诸如路由器和端节点。如图1所示,AS110包括端节点118和路由器112a、112b、112c、112d、112e、112f、112g、112h,这些路由器都在AS110的内部(在下文中,这些路由器总称为内部AS路由器112)。AS110还包括分别与AS120和AS130的边界上的路由器114a和114b。类似地,AS120包括分别与ASIIO和AS130的边界上的路由器124a和124b。类似地,AS130包括分别与AS120和AS110的边界上的路由器134a和134b。路由器114a、114b、124a、124b、134a、134b总称为边界网关(BG)路由器。为了在视觉上容易区分内部路由器和边界网关路由器,在图1中,边界网关路由器被画成实心的。边界网关路由器和内部AS路由器112二者都是中间网络节点。如图l所示,AS110通过BG路由器114a和124a之间的通信链路与AS120通信。类似地,ASIIO通过BG路由器114b和134b之间的通信链路与AS130通信。AS120和AS130通过BG路由器124b和134a之间的通信链路相互通信。图1还示出多个链路状态洪泛区FAllla、FAlllb、FAlllc、FAllld、FAllle(这些链路状态洪泛区总称为FA111)。每个洪泛区包括在更新期间共享所有路由信息的多个路由器。路由信息通过用作汇聚点的路由器而在作为总结数据的不同洪泛信息之间被传送。在所示出的实施例中,所示的内部AS路由器112是针对所示的FA111的汇聚路由器。如图1所示,总结路由信息分别通过路由器对112a和112b、112c和112d、112d和112f、112e和112h、112g和112c之间的通信链路被在FA111对之间传送。在一些实施例中,具有两个或更多个链路的一个汇聚路由器被具有例如一个链路的两个或更多个汇聚路由器代替,在一些实施例中,具有两个链路的汇聚路由器112c被具有到汇聚路由器112d的一个链路的一个汇聚路由器以及具有到汇聚路由器112g的一个链路的不同的汇聚路由器代替。图1所示的路由器112、114中的每一个处于共享路由信息的路由器集合的边界。路由器112处于洪泛区的边界。洪泛区是共享其所有链路状态信息的路由器的集合。路由器114处于自治系统的边界。自治系统利用诸如IS-IS或OSPF的内部网关协议(IGP)来共享路由信息。虽然为了说明的目的在图1中示出了某些自治系统AS110、洪泛区FA111、中间网络节点112、114和端节点118,但是网络100包括更多的自治区、洪泛区、中间网络节点和端节点。在其它实施例中,网络包括更多或者更少的自治区、洪泛区、中间网络节点和端节点。这里所使用的路由是通往由诸如因特网协议(IP)地址的网络地址指示的端节点的路径。路由表是在特定路由器中存储的指示端节点地址和在该特定路由器处的用来到达所述地址的链路的数据结构。通常通过在一个路由器接收的数据流量而得知路由,然后以在相同洪泛区中的其它路由器之间发送的控制平面分组而共享路由。在一些协议中,路由表数据结构与路由的一个或多个属性域相关联,所述属性域保存指示该路由的某些特性的数据。例如,一些属性域保存指示使用路由的成本的度量数据,诸如传播时间、从该路由器到所述地址的跳数,或者可靠性测量,或者某种组合。例如,在所示出的实施例中,FAlllb中的一个路由器接收特定通信链路中来自端节点118的数据分组,因此向该路由器指示所述链路中到达端节点118的IP地址的路由。此信息和任何度量数据然后被洪泛到FAlllb中的所有其它路由器,包括汇聚路由器112c。根据AS110中使用的IGP,此信息在路由器112c处被总结并作为总结信息而在从路由器112c发送的通告中被发送到不同FAlllc中的路由器112d。此信息最后被传送到边界网关114a并被存储在边界网关114a处。此信息然后再次被总结以用于级别3路由,并且利用内部边界网关协议(IBGP)被发送到相同AS的另一边界网关(例如,114b)。经边界总结的信息例如利用外部边界网关协议(EBGP)被发送到不同AS的边界网关(例如124a)。在IGP和BGP中无回路防止机制的情况下,特定路由器可能被告知到达相同IP地址的两个不同路径,并且该特定路由器选择一个路径以保存在其路由表中,所述路径是将数据分组发送到比该特定路由器本身离目的地远的路由器的路径。这是不希望的并且可能导致数据分组采用较长路径到达目的地,或者更糟的是导致数据分组在每个都认为最佳路径是返回发送数据分组的路由器的两个中间路由器之间来回发送。例如,到端节点118的路由从FAlllb中的路由器112c被通告给FAlllc中的路由器112d。路由器112d然后将该路由通告给FAllla中的路由器112f,路由器112f与相同洪泛区FAllla中的路由器112g共享该信息。路由器112g然后将该路由通告回FAlllb中的路由器112c。现在,区lllb中的路由器具有到端节点118的新路由。直接路由以及经过FAllla中的路由器112g的路由。然而,FAlllb中向FAllla中的路由器112g发送数据分组的任何路由器正在向比该发送路由器离端节点118远的路由器发送数据分组。当到目的地的多个路由中的一个采用离目的地较远的跳时,创建了环路。如本领域所知的,这样的回路会严重降低网络的性为了避免IGP禾BBGP形成回路,实施了对于不同协议有所不同的回路防止机制,这在以下部分中更详细描述。例如,在大多数协议中,通告是单向的。也就是,根据水平分割规则(thesplithorizonrule),路由不被通告给路由表中与该路由相关联的链路上的路由器。此外,在IS-IS和OSPF中,洪泛区被限制为在任何两个不同洪泛区之间只具有一个路径的层次结构中的一个或两个级别。因此,具有三个或更多洪泛区的两级层次结构中的连接仅仅具有与主干(backbone)洪泛区的通信链路,而没有彼此间的通信链路。从主干区向边远区发送的路由信息不会被重新发送回主干区。利用这种机制,通过丢弃所示出的FAllla、lllb、lllc之间的三个通信链路中的一个,防止了网络100中的回路。在BGP中,与每个路由一起发送一个或多个属性,所述属性包括指示通告路由的BG节点的ASID的AS—PATH属性。ASID被用于当自治系统之间存在多个连接时避免回路。因此,由AS110中的路由器114a向AS120中的路由器124a通告的通往端节点118的路由与AS110的ASID相关联。当AS120中的路由器124b向AS130中的134a通告该路由时,该路由与ASIIO的ASID以及AS120的ASID二者相关联。当AS130中的路由器134b将该路由通告回AS110中的路由器114b时,该路由与AS110的ASID、AS120的ASID以及AS130的ASID三者相关联。路由器114b利用在到端节点118的路由的AS—PATH属性中的AS110的ASID,检测到从路由器134b接收的到端节点118的路由已经与AS110关联。因此,路由器114b以引起回路为由拒绝通过路由器134b通往端节点118的路由。2.0路由信息边界处的数据结构图2A是根据实施例,示出边界节点200的框图,边界节点200诸如是使用用于边界内控制平面消息和跨边界(边界间)控制平面消息的路由选择处理和多个路由协议的路由器。例如,在一些实施例中,边界节点200是用于通过诸如IS-IS或OSPF或EIGRP的IGP传送的级别2链路状态信息的汇聚路由器。在一些实施例中,边界节点200是用于级别3路由选择和通过BGP传送的路由策略信息的边界网关节点。在所示出的实施例中,边界节点200包括路由处理210、路由表220和协议专用路由数据结构230。路由处理是在边界节点200的处理器中执行的根据一个或多个协议接收、发送以及处理路由信息的处理。例如,在洪泛域内的路由器中,处理210根据IS-IS执行与相邻路由器的级别1链路状态信息洪泛。在汇聚点的路由器(例如,汇聚路由器112)中,处理210通过总结路由信息以及利用总结路由信息准备控制平面消息以发送给其它洪泛区的相邻汇聚点以及通过处理从相邻汇聚点接收的总结信息,来执行级别2路由选择,上述所有动作都是根据IS-IS执行的。在边界网关处的路由器(例如,BG路由器114)中,处理210通过准备、发送和接收BGP消息来处理级别3路由信息,所述BGP消息是用于同一自治系统中其它BGP路由器(例如BG路由器114b)的IBGP消息或者用于不同自治系统中BG路由器(例如,BG路由器124a)的EBGP消息。路由表220是存储路由信息的数据结构,所述路由信息即网络地址和路由器200上用来与所述网络地址通信的链路。在一些实施例中,在路由表220中还存储一个或多个路由属性。协议专用路由数据结构230是存储根据特定协议接收的路由信息的数据结构。为了说明的目的,示出了数据结构230的用于保存从三个不同协议接收的路由信息的三个部分232a、232b、232c(在下文中,这三个部分总称为部分232)。例如,在BG路由器114中,从诸如IS-IS、OSPF或EIGRP的IGP接收的路由信息被存储在一个部分(例如,部分232a)中,IBGP路由信息被存储在另一部分(例如,部分232b)中,并且EBGP路由信息被存储在又一部分(例如,部分232c)中。路由处理210将在根据各个协议的控制消息中接收的路由信息存储在部分232中并建立路由表220,并且根据所述信息将数据存储在一个或多个其它部分232中。在其它实施例中,包括更多或者更少的部分232。例如,在一些实施例中,协议专用路由数据结构被省略并且所有路由信息处于路由表220中。链路状态协议为他们所附接的每个区存储一个表。从一个区向另一区发送的信息总结和信息通过边界路由器处理而在这些数据库之间被传送。根据本发明的各个实施例,协议专用路由数据结构230的一个或多个部分232或者路由表220包括用于存储与路由相关联的识别符数据的域。在所示出的实施例中,部分232a、232b、232c分别包括用于存储识别符数据的识别符域234a、234b、234c。在一些实施例中,在路由表220中包括一个或多个识别符域。根据本发明的这些实施例,处理器210被改变为包括利用协议专用路由数据结构230或路由表220中的识别符数据来处理、发送或者接收包括识别符数据的控制平面消息的处理212。图2B是根据本发明的实施例,示出用于路由协议的控制平面消息240的框图。控制平面消息240包括通告的地址域242和属性域244。通告的地址域242包括指示标识路由并用作要被路由选择的数据分组的源或目的地的节点网络地址的数据。属性域244包括指示路由的一个或多个属性(诸如IS-IS消息中的度量或BGP消息中的AS—PATH)的数据。根据所示出的本发明的实施例,属性域244包括识别符域246,识别符域246包括识别符数据。路由协议更新消息240的接收路由器可根据域246中的识别符数据确定是否存在到具有域242中所通告的地址的节点的优选内部路径。优选内部路由消除了对和路由协议更新消息相同级别的边界的至少一次跨越。因此,如果路由协议更新消息携带着级别2路由信息,则优选内部路由消除了对洪泛区之间级别2边界的至少一次跨越。类似地,如果路由协议更新消息携带着级别3路由信息,则优选内部路由消除了对自治系统之间级别3边界的至少一次跨越。数据结构可以按照本领域中任何已知的方法(包括利用一个或多个节点的易失性存储器或者非易失性存储器的部分、在通过数据库服务器访问的一个或多个文件或者一个或多个数据库中,或者某种组合)来形成。虽然为了说明的目的,数据结构220、230以及邻近部分232作为整体模块被示出,但是在其它实施例中,部分232的一个或多个部分以及数据结构220、230作为独立数据结构被存储在相同的或不同的用于执行边界节点200的功能的多个节点中。新兴的移动路由器的广泛使用对传统防止回路的机制形成挑战。在路由器进入和离开洪泛区及自治系统的情况下,实施洪泛区连接限制变得很困难或者会产生相反的结果。过多的路由器进入相同的洪泛区可能降低洪泛区的扩展(scaling)优势。手动或自动分离拥挤的洪泛区可能打破回路防止连接限制。此外,自治区中的正在离开的一个路由器或者正在离开的多个路由器可能破坏连接,从而具有相同ASID的两个路由器可能未在该自治系统中连接。在这样的情况中,以回路为由拒绝经过相邻自治系统的更绕行的路径可能导致路由器没有到达特定地址的路径。这些各种挑战等通过利用本发明的各种实施例来处理。根据本发明的各种实施例,在跨路由信息边界的控制平面消息中发送的属性中包括保存识别符数据的识别符域。此识别符数据被边界节点的路由处理用来确定在路由协议的控制平面消息中通告的路由中是否引入了回路。识别符数据指示可被用于确定接收特定路由的路由器是否可在不跨越特定边界的情况下达到通告跨过所述边界的路由的通告路由器的信息。换一种说法,具有识别符数据的特定级别路由信息的路由协议更新消息的接收方路由器可以根据识别符确定是否存在具有与所通告的路由相同目的地的优选内部路由。优选内部路由消除了对和路由协议更新消息相同级别的边界的至少一次跨越。3.0在路由信息边界处的方法图3A是以较高级别示出用于生成防止跨边界路由中的回路的路由协议消息的方法的流程图。虽然为了说明的目的而在图3A以及之后的流程图中以特定的顺序示出各个步骤,但是在其它实施例中,可以按照不同顺序或者时间交迭的方式执行一个或多个步骤,或者可以省略一个或多个步骤,或者按照多种方式的某种组合改变各个步骤。例如,在一些实施例中,步骤305和310的顺序被交换。在一些实施例中,控制在步骤330之后返回步骤305;但在第二次和随后经过该方法时不重复步骤310。在步骤305中,在特定级别的一组共享路由信息的中间网络节点的边界处的边界节点(例如,边界节点200)接收路由数据,所述路由数据指示通过边界内的跳可达到的一个或多个网络地址。在步骤310中,确定用于边界节点的识别符。识别符数据指示用于确定是否存在从另一节点到边界节点的内部路径的信息。内部路径是在一个组中相邻中间网络节点之间的不跨越到另一个组的该特定级别的边界的一系列跳。在步骤320中,识别符数据被添加到路由协议更新消息中,所述路由协议更新消息利用处于该边界级别的路由信息来通告路由。例如,如图2B中所示,识别符数据被添加作为消息240的属性域244中的域246。在步骤330中,消息被发送到对等边界节点,所述对等边界节点位于在该特定级别共享路由信息的不同的中间网络节点组的边界上。如下面参考图3B的更详细的描述,被发送的识别符数据在对等边界节点处用于确定是否存在利用边界节点达到由该边界节点通告的网络地址之一时所涉及的回路。图3B是根据实施例,以较高级别示出用于处理接收的防止跨边界路由中的回路的路由协议消息的方法的流程图。在步骤340中,在一组在特定级别共享路由信息的中间网络节点的边界上的边界节点(例如边界节点200)接收路由协议更新消息(例如消息240)。更新消息包括识别符数据,例如,所述识别符数据被包括在图2B所示的消息240的属性域244的域246中。在步骤350中,根据识别符数据确定是否可以利用完全处于本地边界内的内部路径达到通告边界节点。识别符数据被定义用于各个协议,以便使得可以作出此确定,如在下一段中针对IGP和BGP协议的更详细描述。如果可以利用内部路径达到通告边界节点,则控制进行到步骤360,以将所通告的跨边界路由作为回路而拒绝。如果在边界内的内部路由中不能达到所通告的地址,则控制进行到步骤370,以将所通告的跨边界路由作为无回路而接受。在下面的子部分中描述上述方法用于级别2路由信息和级别3路由信息的示例。3.1在洪泛区边界处的方法根据传统方法,如上所述,通过限制洪泛区之间的连接可以避免级别1洪泛区之间的级别2边界中的回路。所述洪泛区被限制为一个级别或者两个级别层次结构中通过主干洪泛区连接的三个或更多个洪泛区。洪泛区中的每个路由器共享具有可达到的地址和拓扑信息的相同数据库。每个路由器的路由处理利用公共算法(例如,Dijkstm的最短路径优先(SPF)算法)来计算到每个可达到的目的地的最短路径。只有作为级别2路由信息的经总结可达到性信息在两个不同洪泛区之间被传送。例如,参考图1,FAlllb中的路由器将它们的所有连接彼此传送,包括汇聚点边界节点,例如汇聚路由器112c。汇聚路由器112c接收此信息并利用它来创建可达到的中间节点的树,并且为中间节点添加叶子以表示可达到的端节点,诸如端节点118。然而,当汇聚路由器112c向FAlllc中的路由器112d通告路由消息时,其不通告FAlllb中的中间节点或者洪泛连接信息。替代地,汇聚路由器112c总结路由信息,利用指示从路由器112c到端节点118的成本的度量数据来通告通过112c本身可直接达到端节点118。作为汇聚点本身,路由器112d总结它从路由器112c接收的路由信息,向FAlllc内的节点通告可通过路由器112d直接到达端节点118。如果没有从FAlllc返回FAlllb的其它连接,则不会形成回路。然而,如果情况是按照图1所示那样,则形成回路。如前,汇聚路由器112c总结路由信息,利用指示从路由器112c到端节点118的成本的度量数据来通告通过路由器112c本身可直接达到端节点118。如前,路由器112d总结它从路由器112c接收的路由信息,向FAlllc内的节点通告通过路由器112d可直接达到端节点118。路由器112d还向FAllla中的路由器112f通告通过路由器112d可直接达到端节点118。路由器112f总结它从路由器112d接收的信息,向FAllla内的节点(包括汇聚路由器112g)通告通过路由器112f可直接达到端节点118。路由器112g总结它从路由器112f接收的信息,向FAlllb中的汇聚路由器112c返回通告通过路由器112g可直接达到端节点118。路由器112c现在具有达到端节点118的两条路径,通过112g的路径和其在FAlllb内的初始路径。通常,FAlllb中的初始路径具有最低度量并且总是被选择作为最短路径。然而,在一些情况中,度量被重置并且与通过112g的路径相关联的度量较低,这导致路由器112c选择通过112g到端节点118的路径,造成回路。当在两个路由协议之间重新分配路由或者当度量被用来创建(诸如OSPF网络中各区域之间的)汇聚路由或者总结路由时,该度量总是被重置。来自112c所处的区的路由可以通到该区之外并且然后返回该区,当其被向该区之外通告或者从该区之外通告回该区内部时被指定新的度量。即使该度量没有被重置,当端节点U8和FAlllb内的一个或多个路由器之间的链路断开时,也会出现短暂的回路。在此情况中,内部路由器(未示出)移除到达端节点118的路由,让路由器112c仅仅具有通过路由器112g的路径。通过112g的路径比用于路由器112c的内部路径具有更高的度量,因此路由器112c将会向路由器112d更新其度量的总结。新的总结度量大于路由器112d的路由表中与通过路由器112c的路径相关联的度量,因此路由器112d对其路由表进行更新并且将具有新的较高度量的更新消息发送给FAlllc内的路由器以及FAllla中的路由器112f。路由器112f又向路由器112g更新度量,然后路由器112g向路由器112c更新新增加的度量,并且更新周期再次开始。所述周期被重复,直到到端节点118的路由的度量达到路由协议中可用的最大度量为止。为了避免这种回路,当前用作IGP的链路状态协议的实现方式对网络设计进行限制,以避免多重连接的洪泛区。例如,链路状态协议要求洪泛区处于单个级别或者具有一个通过所有洪泛区的路径,或者被设置为从单个中心辐射的洪泛区。如上所述,这种限制在具有经常出入网络的移动路由器的网络中是一种障碍。根据此部分所示出的实施例,即使没有以单个级别的方式或者按照中心辐射型方式设置洪泛区,也可以避免回路。图4A是根据实施例,示出方法300的用于链路状态洪泛区的特定实施例方法400的流程图。方法400包括步骤405、410、420、430。在步骤405中,在链路状态洪泛区边界节点接收可达到的地址数据。例如,在汇聚路由器112c处通过FAlllb内部的一个或多个路由器接收端节点118的IP地址。在步骤410,确定作为指示到边界节点的内部路径的识别符的路由器标识符(路由器ID)。例如,作为总结沿着两个洪泛区的边界的路由信息的汇聚点的每个路由器被指定在整个网络中唯一的总结标识符。例如,总结标识符是一个诸如本地配置的IP地址的32位的数,或者从网络的名字服务器得到的唯一名称。在步骤420中,路由器ID被添加到通告路由(即,可通过洪泛区汇聚路由器达到的网络地址)的协议更新消息中。例如,汇聚路由器112c的路由器ID被添加到链路状态更新消息的识别符域244中,在该链路状态更新消息中,所通告的地址域242保存指示端节点118的IP地址的数据。在步骤430中,协议更新消息被发送给边界另一侧的链路状态汇聚点对等方。例如,消息240被发送给汇聚路由器112d。根据方法400,对从一个洪泛域到另一洪泛域的路由信息进行总结的任何路由器在将更新消息注入洪泛域内部的路由器之前,先将其路由器ID添加到识别符域246中的路由器ID列表中。例如,汇聚路由器112d在向FAlllc中的其它路由器以及FAllla中的汇聚路由器112f发送更新消息之前,先将其路由器ID添加到域246中。表1给出上述回路的示例中跨越每个边界发送的识别符域246的内容。为了说明的目的,假定汇聚路由器112a到112h的路由器ID被分别指定为"R-A"、"R-B"、"R-C"、"R-D"、"R-E"、"R-F"、"R-G"、"R-H"。表1:链路状态协议更新消息的识别符域246的内容示例<table>tableseeoriginaldocumentpage25</column></row><table>图4B是根据实施例,示出方法302的用于链路状态洪泛区的特定实施例402的流程图。方法402包括步骤440、450、460、470。在步骤440中,在汇聚路由器处接收链路状态协议级别2总结更新消息,其具有可达到的路由器地址和识别符域中的一个或多个路由器ID。例如,路由器112c从路由器112g接收针对端节点118的IP地址和识别符域246中的表1最后一行所示的路由器ID的链路状态总结更新消息。在步骤450中,确定路由器ID是否处于接收边界节点的洪泛区中。如果是,则控制进行到步骤460,以将到可达到地址的跨边界路由作为回路而拒绝。如果否,则控制进行到步骤470,以将到可达到地址的跨边界路由作为无回路而接受。例如,路由器112c确定其具有在识别符域中出现的路由器ID"R-C",并且因此,其可以在其自己的洪泛区FAlllb中达到它本身。实质上,识别符域中出现的R-C指示更新消息中通告的路由就是已经在洪泛区FAlllb内洪泛的路由器112c本身向相邻洪泛区通告的路由。控制然后进行到步骤460,以拒绝汇聚路由器112g所通告的到端节点118的路由。为了进一步说明的目的,假定路由器112g具有到FA11lb中的汇聚路由器(未示出)的链路,所述汇聚路由器不同于路由器112c。之后,该不同的汇聚路由器从路由器U2g接收用于端节点118的IP地址和在识别符域246中表1最后一行所示路由器ID的链路状态总结更新消息。在本实施例中,在步骤450中,该不同的汇聚路由器确定具有路由器ID"R-C"的路由器112c已经处于该不同路由器的链路状态洪泛路由表中并且因此在相同洪泛区内。例如,洪泛区中的每个汇聚路由器维护协议专用路由数据结构230,协议专用路由数据结构230具有用于洪泛区的部分232a以及识别符域234a中与每个路由(例如,每个可达到的地址)相关联的路由器ID。因此,不同路由器在域234a中找到针对洪泛区中至少一个路由的路由器ID"R-C"。汇聚路由器还包括用于到洪泛区之外的目的地的路由的部分232b。路由表220是从这两组路由构建的。在一些实施例中,部分232b中到洪泛区外的节点的路由包括识别符域234b,以保存传送了这些路由的一个或多个汇聚路由器的路由器ID。在一些实施例中,不使用经总结的路由的路由器ID并且省略了域234b。在路由器ID是用于控制平面数据分组的路由器的IP地址的实施例中,路由器ID被列在与洪泛区中其它路由器相邻的路由器的邻接表中,并且在边界节点200中不需要新的、单独的识别符域。因此,在FAlllb中的不同路由器处,在步骤450中也确定具有ID"R-C"的路由器处于洪泛区中,并且控制再次进行到步骤460,以将跨边界路由作为回路而拒绝。作为另一个示例,考虑路由器112f,在步骤440期间,从路由器112d接收用于端节点118的IP地址以及识别符域246中表1第二行所示路由器ID的链路状态总结更新消息。在步骤450中,汇聚路由器112f确定具有路由器ID"R-C"的路由器112c没有处于链路状态路由表中,并且因此不在相同的洪泛区中。控制进行到步骤470,以将跨边界路由作为无回路而接受。因此,对于度量被重置的情况以及从洪泛区中到端节点118的链路断开的情况,不形成上面所述示例中的路由回路。同时,无回路路由在整个自治系统(例如ASllO)中被传播。本实施例允许在自治系统中形成更一般的洪泛区,包括以具有任意数量级别的层次结构的方式连接洪泛区。3.2在自治系统边界处的方法根据传统方法,通过利用每个自治系统的自治系统标识符(AFID)来避免自治系统边界处的回路。通常,此标识符被手动配置为在构成网络的自治系统(例如,网络100中的AS110、120、130)中是唯一的。预见到在一些实施例中,将会利用ASID名字服务器来自动配置ASID,ASID名字服务器保证每个ASID在网络中的唯一性。在传统方法中,当路由信息被传送通过AS边界时,针对每个路由将ASID积存在称为AS一PATH的路由属性中。如下面的示例所示,回路被防止。为了说明的目的,假定AS110、120、130的ASID分别为1、2、3。BG路由器114a以包括AS—PATH属性中的ASID1的消息向BG路由器124a通告通往端节点118的路由。BG路由器124b以包括AS—PATH属性中的ASID1和2的消息向BG路由器134a通告通往端节点118的路由(不一定按此顺序)。BG路由器134b以包括AS—PATH属性中的ASID1、2和3的消息向BG路由器114b通告通往端节点118的路由(不一定按此顺序)。具有ASID1的BG路由器114b检测到AS—PATH中的ASID1并将该路由作为其自己到端节点118的路由中的回路而拒绝。此方法可能失效,尤其当涉及移动路由器时。例如,在图1所示出的网络100中,如果路由器112a和112b之间的通信链路断开,则BG路由器114b不再具有AS110内到端节点118的内部路由。AS110称为被分区,其中,FAllle处于一个分区中,其它洪泛区FAllla、FAlllb、FAlllc、FAllld处于第二分区中。利用传统方法,如上所述,BG路由器114b拒绝通过BG路由器134b到端节点118的路由。因此,BG路由器114b和FAllle中的所有路由器都没有到端节点118的路由,即使通过AS130和AS120可得到路由也是如此,虽然该可得到的路由很长。图5A是根据实施例,示出方法300的用于自治系统的特定实施例500的流程图。方法500包括步骤505、510、520、530并消除上述示例中所注意的失效。在步骤505中,在自治系统边界节点处接收可达到的地址数据。例如,在BG路由器114a处通过AS110内的一个或多个路由器利用诸如IS-IS的IGP接收端节点118的IP地址。在步骤510中,确定自治系统内可达到的BG路由器的IP地址,作为指示到边界节点的内部路径的识别符。例如,用作边界网关路由器的每个路由器具有回送(loopback)地址,所述回送地址表示到AS中的其它路由器的边界网关路由器ID。在所示出的实施例中,边界网关路由器(例如BG路由器114a)的回送地址被用作识别符。在其它实施例中,使用关于路由器的在该路由器的自治系统内可达到的任何地址。此路由处于本地路由表中,该本地路由表不是从跨边界路由协议(诸如在BGP的情况中为BGP)得出的。对于OSPF和IS-IS的情况,此路由不是区间路由(位于相同洪泛域或区内)。在步骤520中,BG路由器地址被添加到通告跨过AS边界的路由的协议更新消息中,诸如添加到EBGP消息中,而非IBGP消息中。例如,BG路由器114a的地址被添加到BGP更新消息240的识别符域244中,在BGP更新消息240中,被通告的地址域242保存指示端节点118的IP地址的数据。在此情况下,识别符域被称为源属性或者初始地址属性,其在下文中被指定为ORIG—ADD属性。注意,步骤520不与步骤420类似。在步骤520中,发送节点不将它自己的标识符添加到针对相同边界内的其它边界节点的边界内更新消息(例如,IBGP)的识别符域中。不插入用于IBGP更新的ASID和路由器地址的好处是消息占用更少的资源。然而,这不是限制因素,并且在一些实施例中,ASID和路由器地址也被添加到IBGP更新消息中。在步骤530中,EBGP更新消息被发送到边界另一侧的对等BG路由器。例如,EBGP更新消息240被发送到BG路由器124a。根据方法500,任何BG路由器在将更新消息发送给不同自治系统中的BG对等方之前,先将其路由器地址添加到ORIG一ADD识别符域246中的路由器地址列表中。例如,BG路由器124b在将更新消息发送给下一个自治系统AS130中的BG对等方(BG路由器134a)之前,先将其路由器地址添加到域246中。表2给出上述回路示例中被发送通过每个边界的识别符域246的内容。为了说明的目的,假定BG路由器114a、114b、124a、124b、134a、134b的网络地址分别为1.1.114.1,1丄114.2,1.2.124.1,1.2.124.2,1.3.134.1,1.3.134.2,并且用于AS110、120、130的ASID分别为1、2、3。表2:<table>tableseeoriginaldocumentpage29</column></row><table>图5B是根据实施例,示出图3B的方法的用于BGP的特定实施例502的流程图。方法502包括步骤540、550、560、570。在步骤540中,在边界节点处接收路由协议更新消息,所述路由协议更新消息具有路由的可达到地址和识别符域中的源BG路由器地址。例如,路由器114b从路由器134b接收用于端节点118的IP地址和在识别符域246中表2最后一行指示的BG路由器地址的BGP更新消息。在步骤550中,确定在接收BG路由器的自治系统内是否可达到源BG路由器。如果可以,则控制进行到步骤560,以将到可达到地址的跨边界路由作为回路而拒绝。如果不可以,则控制进行到步骤570,以将到可达到地址跨边界路由作为无回路而接受。在所示出的实施例中,正如传统方法中的步骤那样,步骤550包括确定接收BG路由器的ASID是否处于AS—PATH中的步骤。正如传统方法中的步骤那样,如果不是,则该路由被接受为无回路。然而,如果接收BG路由器的ASID处于AS—PATH中,则根据所示实施例,进一步的检查步骤被执行。在进一步的检查步骤中,确定是否可从接收BG路由器达到和与接收BG路由器的ASID匹配的ASID相关联的源BG路由器的地址。例如,接收BG路由器检査在协议专用路由数据结构230的IGP专用路由中列出的通过IGP可达到的地址。对于BG路由器,协议专用路由数据结构230包括用于IGP的协议路由部分232a、用于IBGP路由的部分232b以及用于EBGP路由的部分232c。在本实施例中,分别用于EBGP和IBGP路由的部分232c和232b分别包括识别符域234c和234b。识别符不用于IGP路由,并且省略了识别符域234a。在一些实施例中,ORIG—ADD识别符域中的所有地址都被检查,而不仅仅是与接收BG路由器的ASID的相同的ASID相关联的那些地址。这样的实施例采用更少的指令,但是,如果在AS—PATH中存在许多不同自治系统,则可能执行起来大大减慢。在所示出的网络100中,路由器114b确定其具有ASID1,并且发现ASID1处于AS—PATH中。因此,在步骤550期间,路由器114b确定与ASIDl相关联的BG路由器地址,并发现地址1丄114.1。实质上,识别符域中出现的1丄114.1指示在更新消息中通告的到端节点118的路由已经对于与接收BG路由器114b相同自治区中的路由器114a可用。只要BG路由器U4b具有到地址L1.114.1的完全处于ASIIO内的内部路径,BG路由器114b和其洪泛区FAllle中的其它路由器就可通过内部路径到达端节点118,并且将在步骤540中刚接收的更新中通告的通过AS130到端节点118的路由作为回路而拒绝。为了确定BG路由器114b是否具有到地址1丄114.1的完全处于AS110内的内部路径,BG路由器114b在协议专用路由数据结构230的部分232a中的IGP路由中进行查找。如果在该部分中包括地址1丄114.1,则BG路由器114b具有到地址L1.114.1的完全处于AS110内的内部路径。如果是,控制则进行到步骤560,以拒绝由BG路由器134b通告的到端节点118的路由。如果否,则控制进行到步骤570,以接受BG路由器134b通告的到端节点118的作为无回路的路由。因此,如果路由器112a和路由器112b之间的连接断开,则路由器112b利用IGP来更新FAllle中的所有路由器。结果,BG路由器114b从存储在协议专用路由数据结构230的部分232c中的其IGP路由中移除其它分区中的所有地址,包括移除BG路由器114a的地址1丄114.1。当从BG路由器134b接收到具有到端节点118的路由的BGP更新时,在步骤550期间,BG路由器114b将在AS—PATH中找到ASID1,而不是找到到地址L1.114.1的IGP路由。控制将进行到步骤570,以接受到端节点118的作为无回路的跨边界路由。4.0实施机构-硬件概述图6是示出可以实施本发明的实施例的计算机系统600。优选实施例通过利用在诸如路由器设备的网络元件中运行的一个或多个计算机程序来实现。因此,在本实施例中,计算机系统600为路由器。计算机系统600包括诸如总线610的通信机构,用于在计算机系统600的其它内部和外部部件之间传送信息。信息被表示为可测量的现象的物理信号,其通常为电压,但是在其它实施例中,包括诸如磁、电磁、压力、化学、分子原子和量子交互作用的现象。例如,北磁场和南磁场,或者零和非零电压表示二进制数(位)的两个状态(0,1)。一系列的二进制数构成用于表示字符编号或代码的数字数据。总线610包括许多并行的信息导线,以使信息在耦合到总线610的设备之间被快速传送。用于处理信息的一个或多个处理器602与总线610耦合。处理器602对信息执行一组操作。该组操作包括从总线610取得信息以及将信息置于总线610上。该组操作通常还包括比较两个或更多个信息单元,转移信息单元的位置以及诸如通过加法或乘法组合两个或更多个信息单元。处理器602将要执行的一系列操作构成计算机指令。计算机系统600还包括耦合到总线610的存储器604。诸如随机存取存储器(RAM)或者其它动态存储设备的存储器604存储包括计算机指令的信息。动态存储器允许存储在其中的信息被计算机系统600改变。RAM允许存储在被称作存储地址的位置的信息单元独立于邻近地址的信息而被存储和检索。存储器604还被处理器602用来存储在执行计算机指令时的临时值。计算机系统600还包括耦合到总线610的只读存储器(ROM)606或者其它静态存储设备,用于存储静态信息,包括不被计算机系统600改变的指令。连接到总线610的还有非易失性(永久)存储设备608,诸如磁盘或光盘,用于存储信息,包括即使在计算机系统600被关闭或者以其他方式掉电时仍存在的指令。这里所使用的术语"计算机可读介质"涉及参与向处理器602提供信息(包括用于执行的指令)的任何介质。这种介质可以采用多种形式,包括但不限于非易失性介质、易失性介质和传输介质。非易失性介质例如包括光盘或磁盘,诸如存储设备608。易失性介质例如包括动态存储器604。传输介质例如包括同轴电缆、铜导线、光纤电缆,以及在没有导线或电缆的空间传播的波,诸如声波和电磁波,包括无线电波、光波和红外线波。通过传输介质传输的信号在这里被称为载波。计算机可读介质的一般形式例如包括软盘(floppydisk)、软磁盘(flexibledisk)、硬盘、磁带,或者任何其它磁性介质,压縮盘ROM(CD-ROM)、数字视频盘(DVD),或者任何其它光学介质、穿孔卡、纸带,或者具有孔图案的任何其它物理介质、RAM、可编程ROM(PROM)、可擦除PROM(EPROM)、快闪EPROM,或者任何其它存储芯片或存储盒、载波,或者计算机可从其读取的任何其它介质。包括指令的信息被提供给总线610,以便被来自外部终端612的处理器使用,所述外部终端612诸如是具有由人类用户操作的包含字母数字键的键盘或者传感器的终端。传感器检测周围的状况并将这些检测转换为与用于表示计算机系统600中的信息的信号兼容的信号。耦合到总线610的终端612的主要用于与人交互的其它外部部件包括用于呈现图像的显示设备,诸如阴极射线管(CRT)或液晶显示(LCD)或等离子屏幕,以及用于控制呈现在显示器中的小光标图像的位置以及发布与呈现在终端612的显示器中的图形元素有关的指令的点选设备,诸如鼠标或跟踪球(trackball)、光标方向键。在一些实施例中,终端612被省略。计算机系统600还包括耦合到总线610的通信接口670的一个或多个实例。通信接口670提供耦合到多种外部设备的双向通信,所述外部设备利用其自己的处理器进行操作,诸如打印机、扫描仪、外部盘和终端612。在计算机系统600中运行的固件或软件提供通信接口或基于字符的指令接口,以使外部指令可提供给该计算机系统。例如,通信接口670可以是个人计算机中的并行端口或者串行端口,诸如RS-232或者RS-422接口,或者通用串行总线(USB)端口。在一些实施例中,通信接口670是向相应类型的电话线提供信息通信连接的综合业务数字网(ISDN)卡或者数字用户线(DSL)卡或者电话调制解调器。在一些实施例中,通信接口670是将总线610中的信号转换为用于同轴电缆中的通信连接的信号或者转换为用于光缆中的通信连接的信号的线缆调制解调器。作为另一示例,通信接口670可以是用于向诸如以太网的兼容LAN提供数据通信连接的局域网(LAN)卡。还可以实现无线链路。对于无线链路,通信接口670发送和接收电、声或电磁信号,包括红外信号和光信号,这些信号携带着诸如数字数据的信息流。这些信号是载波的一些例子。在所示出的实施例中,专门用途的硬件(诸如专用集成电路(IC)620)被耦合到总线610。专门用途的硬件被配置为针对专门用途执行处理器602执行得不够快的操作。专用IC的示例包括用于生成显示图像的图形加速器卡、用于对在网络中发送的消息进行加密或解密的密码化板(cryptographicboard)、语音识别、以及针对专门外部设备的接口,诸如重复执行一些复杂的在硬件中更高效实现的操作序列的机器臂(roboticarm)和医学扫描设备。在所示出的用作路由器的计算机中,计算机系统600包括交换系统630,作为用于交换信息以便在网络中流动的专门用途的硬件。交换系统630通常包括多个通信接口(诸如通信接口670),用于耦合到多个其它设备。一般而言,每个耦合是利用连接到具有它们自己的处理器的各种外部设备所连接的网络中的或者附接到所述网络的另一设备的网络链路632来进行的,所述网络例如是在所示出的实施例中的本地网络680。在一些实施例中,输入接口或者输出接口或者二者被链接到一个或多个外部网络元件的每一个。虽然在所示出的实施例中网络链路632包括三个网络链路632a、632b、632c,但是在其它实施例中,更多或者更少的链路被连接到交换系统630。网络链路632通常通过一个或多个网络向利用或处理信息的其它设备提供信息通信。例如,网络链路632b可以通过本地网络680提供对主机计算机682或者由因特网服务提供商(ISP)操作的设备684的连接。ISP设备684又通过现在通常被称作因特网690的网络中的全球分组交换通信网络来提供数据通信服务。连接到因特网的被称作服务器692的计算机响应于通过因特网接收的信息来提供服务。例如,服务器692提供用于与交换系统630—起使用的路由信息。交换系统630包括逻辑和电路,所述逻辑和电路被配置为执行与在网络680的各个元件之间传送信息有关的交换功能,包括沿着一个网络链路(例如632a)传送所接收的信息,作为相同或不同网络链路(例如632c)的输出。交换系统630根据公知的预定协议和惯例将到达输入接口的信息流量交换到输出接口。在一些实施例中,交换系统630包括其自己的处理器和存储器,以便通过软件执行一些交换功能。在一些实施例中,交换系统630依赖处理器602、存储器604、ROM606、存储装置608或者某种组合来通过软件执行一个或多个交换功能。例如,交换系统630与实现特定协议的处理器604合作可确定到达链路632a的输入接口的数据分组的目的地,并且利用链路632c的输出接口将其发送到正确的目的地。目的地可以包括主机682、服务器692、连接到本地网络680或因特网690的其它终端设备,或者本地网络680或因特网690中的其它路由和交换设备。本发明涉及利用计算机系统600实现上述技术。根据本发明的一个实施例,计算机系统600响应于处理器602执行存储器604中包含的一个或多个序列的一个或多个指令而执行上述技术。这样的指令(还被称为软件和程序代码)可以从诸如存储设备608的另一计算可读介质读入存储器604。存储器604中包含的指令序列的执行使得处理器602执行这里所述的方法步骤。在替代实施例中,硬件(诸如专用集成电路620以及交换系统630中的电路)可用来替代的软件或者与软件组合来实施本发明。因此。本发明的实施例不限于硬件和软件的任何特定组合。通过诸如通信接口670的通信接口在网络链路632和其他网络上传输的携带到计算机系统600和来自计算机系统600的信息的信号是载波的示例形式。计算机系统600可通过网络链路632和诸如接口670的通信接口,通过网络680、690等发送和接收包括程序代码的信息。在利用因特网690的一个示例中,服务器692通过经过交换系统630中的通信接口,通过因特网690、ISP设备684、本地网络680和网络链路632b来传输从计算机600发送的消息所请求的用于特定应用的程序代码。接收的代码可在被接收时由处理器602或者交换系统630执行,或者可以被存储在存储设备608或者其它非易失性存储装置中以便以后执行,或者二者兼而有之。按照这种方式,计算机系统600可以得到载波形式的应用程序代码。各种形式的计算机可读介质可在携带被处理器602执行的一个或多个序列的指令或数据或它们二者时涉及。例如,指令和数据可最初承载在磁盘或远程计算机(诸如主机682)中。远程计算机将指令和数据加载到其动态存储器并且利用调制解调器通过电话线来发送指令和数据。计算机系统600的本地调制解调器接收到电话线中的指令和数据并且利用红外线发射器将指令和数据转换成红外线信号,该红外线信号是作为网络链路632b的载波。交换系统630中作为通信接口的红外线检测器接收红外线信号中携带的指令和数据并且将表示指令和数据的信息置于总线610中。总线610将信息携带到存储器604,处理器602利用与指令一起被发送的一些数据从存储器604检索并执行指令。在存储器604中接收的指令和数据可选择性地在处理器602或交换系统603进行执行之前或者之后被存储在存储设备608中。5.0扩展和替代在前面的说明中,已经参考特定实施例描述了本发明。然而,很明显,在不脱离本发明的宽泛精神和范围的情况下可以做出各种修改和变化。因此,说明书和附图被认为是说明性的,而非具有限制意义。权利要求1.一种用于检测分组交换通信网络中跨路由信息边界的路由中的回路的方法,该方法包括以下步骤在第一网络节点集合的第一边缘节点处接收控制平面消息,所述第一网络节点集合被配置为在所述第一集合内共享与在所述第一集合外被共享的路由信息不同的路由信息,其中,所述第一边缘节点被连接到不同的第二网络节点集合的不同的第二边缘节点,所述第二网络节点集合被配置为在所述第二集合内共享与在所述第二集合外被共享的路由信息不同的路由信息,其中,所述控制平面消息包括指示从所述第一边缘节点可达到的特定节点的特定网络地址的数据;确定识别符数据,所述识别符数据指示可用于确定所述第一集合中的节点能否在不离开所述第一集合的情况下达到所述第一边缘节点的信息;并且从所述第一边缘节点向所述第二边缘节点发送通告控制消息,所述通告控制消息包括指示所述特定网络地址的路由数据,和所述识别符数据,从而,所述第一集合中的测试边缘节点能根据所述识别符数据确定是否存在回路,所述回路既包括所述测试边缘节点和所述第一边缘节点之间的、完全处于所述第一集合内的第一路径,又包括所述测试边缘节点和所述第一边缘节点之间的、包括所述第一集合之外的节点的第二路径。2.如权利要求1所述的方法,其中所述第一集合和所述第二集合是不同的链路状态洪泛区,它们利用链路状态协议来交换总结链路状态信息;链路状态洪泛区通过将所有路由信息洪泛到相同链路状态区中的其它网络节点来共享路由信息;并且所述识别符数据指示用于所述第一边缘节点的唯一的路由器标识符。3.如权利要求1所述的方法,其中所述第一集合和所述第二集合是不同自治系统,它们利用外部边界协议来交换路由信息;自治系统利用内部网关协议(IGP)来共享路由信息;并且所述识别符数据指示所述第一边缘节点中的网络接口的网络地址。4.如权利要求3所述的方法,其中,所述识别符数据与所述通告控制消息中的所述第一边缘节点的自治系统标识符(ASID)相关联。5.如权利要求3所述的方法,其中,所述外部边界协议是外部边界网关协议(EBGP)。6.—种用于检测分组交换通信网络中跨路由信息边界的路由中的回路的方法,该方法包括以下步骤在第一网络节点集合的第一边缘节点处接收来自不同的第二网络节点集合的不同的第二边缘节点的控制平面消息,所述第一网络节点集合被配置为在所述第一集合内共享与在所述第一集合外被共享的路由信息不同的路由信息,所述第二网络节点集合被配置为在所述第二集合内共享与在所述第二集合外被共享的路由消息不同的路由信息,其中,所述控制平面消息包括指示特定节点的特定网络地址的路由数据,和指示通告达到所述特定网络地址的能力的第三边缘节点的识别符数据;基于所述识别符数据确定所述第一节点能否在不离开所述第一集合的情况下达到所述第三边缘节点;并且如果确定所述第一节点在不离开所述第一集合的情况下不能达到所述第三边缘节点,则确定不存在到所述特定节点的回路,所述回路既包括所述第一边缘节点和所述第三边缘节点之间的、完全处于所述第一集合内的第一路径,又包括所述第一边缘节点和所述第三边缘节点之间的、包括所述第一集合之外的节点的第二路径。7.如权利要求6所述的方法,其中所述第一集合和所述第二集合是不同链路状态区,它们利用链路状态协议来交换总结链路状态信息;链路状态区将所有链路状态数据洪泛到相同链路状态区中的其它网络节点;所述识别符数据指示用于所述第三边缘节点的路由器标识符。8.如权利要求6所述的方法,其中所述第一集合和所述第二集合是不同自治系统,它们利用外部边界协议来交换路由信息;自治系统利用内部网关协议(IGP)来共享路由信息;并且所述识别符数据指示所述第三边缘节点的网络地址。9.如权利要求8所述的方法,其中,所述识别符数据与所述控制平面消息中所述第三边缘节点的自治系统标识符(ASID)相关联。10.如权利要求8所述的方法,其中,所述外部边界协议是外部边界网关协议(EBGP)。11.如权利要求8所述的方法,其中,所述识别符数据指示所述通告边缘节点的网络地址。12.—种用于检测分组交换通信网络中跨路由信息边界的路由中的回路的设备,该设备包括用于在第一网络节点集合的第一边缘节点处接收控制平面消息的装置,所述第一网络节点集合被配置为在所述第一集合内共享与在所述第一集合外被共享的路由信息不同的路由信息,所述第一边缘节点被连接到不同的第二网络节点集合的不同的第二边缘节点,所述第二网络节点集合被配置为在所述第二集合内共享与在所述第二集合外被共享的路由信息不同的路由信息,其中,所述控制平面消息包括指示从所述第一边缘节点可达到的特定节点的特定网络地址的数据;用于确定识别符数据的装置,所述识别符数据指示可用于确定所述第一集合中的节点能否在不离开所述第一集合的情况下达到所述第一边缘节点的信息;以及用于将通告控制消息从所述第一边缘节点发送给所述第二边缘节点的装置,所述通告控制消息包括指示所述特定网络地址的路由数据,和所述识别符数据,从而,所述第一集合中的测试边缘节点能根据所述识别符数据确定是否存在回路,所述回路既包括所述测试边缘节点和所述第一边缘节点之间的、完全处于所述第一集合内的第一路径,又包括所述测试边缘节点和所述第一边缘节点之间的、包括所述第一集合之外的节点的第二路径。13.—种用于检测分组交换通信网络中跨路由信息边界的路由中的回路的设备,该设备包括用于在第一网络节点集合的第一边缘节点处接收来自不同的第二网络节点集合的不同的第二边缘节点的控制平面消息的装置,所述第一网络节点集合被配置为在所述第一集合内共享与在所述第一集合外被共享的路由信息不同的路由信息,所述第二网络节点集合被配置为在所述第二集合内共享与在所述第二集合外被共享的路由消息不同的路由信息,其中,所述控制平面消息包括指示特定节点的特定网络地址的路由数据,和指示通告达到所述特定网络地址的能力的第三边缘节点的识别符数据;用于基于所述识别符数据确定所述第一节点能否在不离开所述第一集合的情况下达到所述第三边缘节点的装置;以及用于如果确定所述第一节点在不离开所述第一集合的情况下不能达到所述第三边缘节点,则确定不存在到所述特定节点的回路的装置,所述回路既包括所述第一边缘节点和所述第三边缘节点之间的、完全处于所述第一集合内的第一路径,又包括所述第一边缘节点和所述第三边缘节点之间的、包括所述第一集合之外的节点的第二路径。14.一种用于检测分组交换通信网络中跨路由信息边界的路由中的回路的设备,该设备包括第一网络接口,该第一网络接口耦合到第一节点网络,以利用第一数据分组与所述第一节点网络进行通信,所述第一节点网络被配置为共享与在所述第一网络外被共享的路由信息不同的路由信息;不同的第二网络接口,该第二网络接口耦合到第二节点网络,以利用第二数据分组与所述第二节点网络进行通信,所述第二节点网络被配置为共享与在所述第二网络外被共享的路由信息不同的路由信息;一个或多个处理器;计算机可读介质;以及存储在所述计算机可读介质中的一个或多个序列的指令,其中,当这些指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤通过所述第一网络接口接收控制平面消息,其中,所述控制平面消息包括指示通过所述第一网络接口可达到的特定节点的特定网络地址的数据;确定识别符数据,所述识别符数据指示可用于确定所述第一网络中的节点能否达到所述第一网络接口的信息;并且通过所述第二网络接口发送通告控制消息,所述通告控制消息包括指示所述特定网络地址的路由数据和所述识别符数据,从而,所述第一网络中的测试边缘节点能根据所述识别符数据确定是否存在回路,所述回路既包括所述测试边缘节点和所述第一网络接口之间的第一路径,又包括所述测试边缘节点和所述第二网络接口之间的第二路径。15.如权利要求14所述的设备,其中所述第一集合和所述第二集合是不同的链路状态洪泛区,它们利用链路状态协议来交换总结链路状态信息;链路状态洪泛区通过将所有路由信息洪泛到相同链路状态区中的其它网络节点来共享路由信息;并且所述识别符数据指示用于所述第一边缘节点的唯一的路由器标识符。16.如权利要求14所述的设备,其中所述第一集合和所述第二集合是不同的自治系统,它们利用外部边界协议来交换路由信息;自治系统利用内部网关协议(IGP)来共享路由信息;并且所述识别符数据指示所述第一边缘节点中的网络接口的网络地址。17.如权利要求16所述的设备,其中,所述识别符数据与所述通告控制消息中的所述第一边缘节点的自治系统标识符(ASID)相关联。18.如权利要求16所述的方法,其中,所述外部边界协议是外部边界网关协议(EBGP)。19.一种用于检测分组交换通信网络中跨路由信息边界的路由中的回路的设备,该设备包括第一网络接口,该第一网络接口耦合到第一节点网络,以利用第一数据分组与所述第一节点网络进行通信,所述第一节点网络被配置为共享与在所述第一网络外被共享的路由信息不同的路由信息;不同的第二网络接口,该第二网络接口耦合到第二节点网络,以利用第二数据分组与所述第二节点网络进行通信,所述第二节点网络节点被配置为共享与在所述第二网络外被共享的路由信息不同的路由信息;一个或多个处理器;计算机可读介质;以及存储在所述计算机可读介质中的一个或多个序列的指令,其中,当这些指令被所述一个或多个处理器执行时,使得所述一个或多个处理器执行以下步骤通过所述第二网络接口接收控制平面消息,所述控制平面消息包括指示特定节点的特定网络地址的路由数据,和指示通告达到所述特定网络地址的能力的通告边缘节点的识别符数据;确定能否通过所述第一网络接口达到所述通告边缘节点;并且如果确定不能通过所述第一网络接口达到所述通告边缘节点,则确定不存在到所述特定节点的回路,所述回路既包括完全处于所述通告边缘节点和所述第一网络接口之间的第一路径,又包括完全处于所述通告边缘节点和所述第二网络接口之间的第二路径。20.如权利要求19所述的设备,其中,所述第一集合和所述第二集合是不同的链路状态区,它们利用链路状态协议来交换总结链路状态信息;链路状态区将所有路由状态数据洪泛到相同链路状态区中的其它网络节点;所述识别符数据指示用于所述第三边缘节点的路由器标识符。21.如权利要求19所述的设备,其中所述第一集合和所述第二集合是不同自治系统,它们利用外部边界协议来交换路由信息;自治系统利用内部网关协议(IGP)来共享路由信息;并且所述识别符数据指示所述第三边缘节点的网络地址。22.如权利要求21所述的方法,其中,所述识别符数据与所述控制平面消息中所述第三边缘节点的自治系统标识符(ASID)相关联。23.如权利要求21所述的方法,其中,所述外部边界协议是外部边界网关协议(EBGP)。24.如权利要求21所述的方法,其中,所述识别符数据指示所述通告边缘节点的网络地址。25.—种计算机可读介质,该计算机可读介质承载用于检测分组交换通信网络中跨路由信息边界的路由中的回路的一个或多个序列的指令,所述一个或多个序列的指令被一个或多个处理器执行时会使得所述一个或多个处理器执行以下步骤在第一网络节点集合的第一边缘节点处接收控制平面消息,所述第一网络节点集合被配置为在所述第一集合内共享与在所述第一集合外被共享的路由信息不同的路由信息,其中,所述第一边缘节点被连接到不同第二网络节点集合的不同第二边缘节点,所述第二网络节点集合被配置为在所述第二集合内共享与在所述第二集合外被共享的路由信息不同的路由信息,其中,所述控制平面消息包括指示从所述第一边缘节点可达到的特定节点的特定网络地址的数据;确定识别符数据,所述识别符数据指示可用于确定所述第一集合中的节点能否在不离开所述第一集合的情况下达到所述第一边缘节点的信息;并且从所述第一边缘节点向所述第二边缘节点发送通告控制消息,所述通告控制消息包括指示所述特定网络地址的路由数据,和所述识别符数据,从而,所述第一集合中的测试边缘节点能根据所述识别符数据确定是否存在回路,所述回路既包括所述测试边缘节点和所述第一边缘节点之间的、完全处于所述第一集合内的第一路径,又包括所述测试边缘节点和所述第一边缘节点之间的、包括所述第一集合之外的节点的第二路径。26.—种计算机可读介质,该计算机可读介质承载用于检测分组交换通信网络中跨越路由信息边界的路由中的回路的一个或多个序列的指令,所述一个或多个序列的指令被一个或多个处理器执行时会使得所述一个或多个处理器执行以下步骤-在第一网络节点集合的第一边缘节点处接收来自不同第二网络节点集合的不同第二边缘节点的控制平面消息,所述第一网络节点集合被配置为在所述第一集合内共享与在所述第一集合外被共享的路由信息不同的路由信息,所述第二网络节点集合被配置为在所述第二集合内共享与在所述第二集合外被共享的路由信息不同的路由信息,其中,所述控制平面消息包括指示特定节点的特定网络地址的路由数据,和指示通告达到所述特定网络地址的能力的第三边缘节点的识别符数据;基于所述识别符数据确定所述第一节点能否在不离开所述第一集合的情况下达到所述第三边缘节点;并且如果确定所述第一节点在不离开所述第一集合的情况下不能达到所述第三边缘节点,则确定不存在到所述特定节点的回路,所述回路既包括所述第一边缘节点和所述第三边缘节点之间的、完全处于所述第一集合内的第一路径,又包括所述第一边缘节点和所述第三边缘节点之间的、包括所述第一集合之外的节点的第二路径。全文摘要用于检测跨路由信息边界的路由中的回路的技术包括在边界一侧的第一边缘节点处接收控制消息,所述第一边缘节点连接到位于所述边界另一侧的不同第二边缘节点。所述控制消息指示可从第一边缘节点达到的特定节点的特定网络地址。确定识别符数据,所述识别符数据指示第一集合中的第一节点是否可在不离开该第一集合的情况下达到第一边缘节点。从第一边缘节点向第二边缘节点发送通告消息,所述通告消息包括指示所述特定网络地址的路由数据和所述识别符数据。基于所述识别符数据,第一集合中的测试边缘节点可确定是否存在回路,所述回路包括到第一边缘节点的内部路径和外部路径二者。文档编号H04L12/26GK101390321SQ200780003293公开日2009年3月18日申请日期2007年1月9日优先权日2006年1月17日发明者拉塞尔·怀特,西纳·米尔托比,阿尔维勒·伦塔纳,阿沛·罗伊申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1