CN1980192A - 多机架路由器中的不间断转发 - Google Patents
多机架路由器中的不间断转发 Download PDFInfo
- Publication number
- CN1980192A CN1980192A CNA2006101609135A CN200610160913A CN1980192A CN 1980192 A CN1980192 A CN 1980192A CN A2006101609135 A CNA2006101609135 A CN A2006101609135A CN 200610160913 A CN200610160913 A CN 200610160913A CN 1980192 A CN1980192 A CN 1980192A
- Authority
- CN
- China
- Prior art keywords
- engine
- user
- routing engine
- renewal
- state information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/58—Association of routers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/60—Router architectures
Abstract
根据同步梯度在多机架路由器中的多个路由引擎之间同步状态信息。描述的典型多机架路由器在每个机架中包括原始路由引擎和备用路由引擎。在更新其他机架的原始路由引擎之前,控制节点的原始路由引擎根据同步梯度更新控制节点的备用路由引擎上的状态信息。在更新用户中的状态信息之前,其他机架的原始路由引擎更新各个备用路由引擎中的状态信息。如果原始路由引擎失败,则相应的备用路由引擎接管控制原始路由引擎的任务。一旦接管控制,备用路由引擎继续更新状态信息,而不必重发状态信息或中断分组转发。
Description
技术领域
本发明涉及计算机网络,更具体地,涉及用于路由计算机网络中的分组的系统。
背景技术
计算机网络是能够交换数据和共享资源的相互连接的计算设备的集合。在基于分组的网络中,计算设备通过将数据分割成称为分组的小数据块来传送数据,这些分组各自通过网络从源设备到达目的设备。目的设备从这些分组中提取数据并将这些数据组合成其原始的格式。将数据分割成分组使得能够只要重发在传送期间可能丢失的那些独立分组。
网络中的某些设备(诸如路由器)维护信息表,其用于描述通过网络的路由。“路由”一般可以定义为网络上的两个位置之间的路径。一旦接收到输入的数据分组,路由器就检查分组中的目的地信息,以确定分组的目的地。基于该目的地,路由器根据路由表转发所述分组。
网络中的设备之间的物理连接通常称为链路。路由器使用了通过网络链路收发分组的接口卡(InterFace Card,缩写为IFC)。这些IFC安装在称为接口的端口中,且利用接口结构来配置。
通常,路由器维护状态信息。例如,路由器可以维护表示路由器和网络之间接口的当前状态的信息。这种状态信息可以包括表示一个或多个IFC的状态的信息(例如,IFC的当前配置)。再如其他的例子,路由器可以维护表示一个或多个分组转发引擎(PacketForwarding Engine,缩写为PFE)、一个或多个路由引擎、或路由器中其他资源的状态信息。
特别地,在路由器中操作的进程(例如,被称为路由引擎的控制节点)可以维护状态信息,并且可以将所述状态信息的改变传送至路由器中的各种其他的进程或部件中。这些其他的进程或部件有时被称为“用户”,这是由于它们接收并利用由操作系统维护的状态信息。这些用户在执行他们的各种功能时利用所述状态信息。
由于近年来传统网络的复杂性上升了,因此路由器或其他网络设备中的状态信息的管理成为急待解决的问题。用于管理状态信息的一些现有方法包括将信息高速缓存在操作系统中,以及向在路由器中执行的软件模块发出状态改变通知消息。作为响应,该软件模块从操作系统中提取状态信息。
为提高可靠性,一些路由器可以包括原始路由引擎和一个或多个备用路由引擎。原始和备用路由引擎两者都可以请求状态信息。在原始路由引擎失败的情况下,备用路由引擎中的一个就接管(assume)路由资源的控制,以继续路由器的运行。原始和备用路由引擎之间的路由功能的转换控制的过程通常被称为失败转移(failover)。在一些实例中,为接管适当的控制以及保证运行,备用路由引擎被强制从每个资源“重新学习(relearn)”丢失的状态信息,例如,通过将路由器资源重新启动(power-cycling)到已知状态。这会在路由器资源重新启动运行时引起分组转发中断。
路由器不仅要发展得更为可靠,而且还要满足日益增长的带宽的需要。一种满足日益增长的带宽需求的途径是使用多机架(multi-chassis)路由器,即,其中物理连接了多个路由设备并将它们配置成如单个路由器般运行的路由器。例如,多机架路由器可以包括:多个线卡机架(Line Card Chassis,缩写为LCC),其包括一个或多个IFC;以及中央交换卡机架(Switch Card Chassis,缩写为SCC),其在多个LCC之间转发分组并提供多机架路由器的自上向下的管理。由于多机架路由器合并了多个路由设备的资源,因此多机架路由器通常具有比独立的路由器高很多的带宽性能。通过将路由功能合并到少数的几个路由器上,多机架路由器的使用可以简化和提高服务提供商网络上的路由。然而,在多机架路由器中将状态信息转发至每个用户会比在独立路由器中难很多。
发明内容
本文说明了用于在多机架路由器上提供不间断转发的技术。例如,多机架路由器可以包括多在机架路由器的一个设备上的一个或多个主路由引擎,以及在多机架路由器的其他设备上的一个或多个本地路由引擎。例如,多机架路由器可以包括:中央交换卡机架(SCC),其具有主路由引擎;以及一个或多个线卡机架(LCC),每个线卡机架都具有一个或多个本地路由引擎。本地路由引擎将从路由器资源所在设备中接收的状态信息直接转发给主路由引擎,而不处理或识别该状态信息。可以包括在控制节点中的主路由引擎管理用于整个多机架路由器的状态信息,并将该状态信息向后传播至分配给用户的每个本地路由引擎。主路由引擎还为其自身设备(例如,SCC)中的用户提供状态信息。
每个设备还可以具有一个或多个备用路由引擎,以用于在设备的原始路由引擎失败的情况下的失败转移。多机架路由器的路由引擎可以根据同步梯度(synchronization gradient)执行状态信息的同步,在同步梯度中,原始主路由引擎在将状态信息分发给原始本地路由引擎之前,将该状态信息分发给一个或多个备用主路由引擎。一旦接收到状态信息,原始本地路由引擎就在将该状态信息分发给每个机架中的用户之前,将该状态信息分发给备用本地路由引擎。在该方式中,在将状态信息分发给用户之前,首先将更新的状态信息从多机架系统中的中央控制节点的原始主路由引擎同步到该控制节点的备用主路由引擎,然后再同步到本地路由引擎。一旦进行失败转移,该同步梯度确保备用路由引擎包含至少与提供给状态信息的所有其他用户的状态信息一样新的状态信息。因此,备用路由引擎能够在转移失败的情况下容易地承担起责任,并且必要时可以继续利用状态信息更新其他的用户。以此方式,多机架系统中的一个机架的备用路由引擎可以接管对该机架中的资源的控制,而不需要“重新学习”状态信息,例如,通过重新启动路由器到已知状态。
在一个实施例中,一种用于在多机架路由器中分发状态信息的方法,包括以下步骤:接收来自多机架路由器的第三路由引擎的对第一本地路由引擎的状态信息的更新;将来自第一本地路由引擎的更新传送至第二本地路由信息;以及将来自第一本地路由引擎的更新传送给状态信息的用户。
在另一个实施例中,一种系统,包括:第一节点,其具有第一路由引擎和第二路由引擎;以及第二节点,其具有第一用户。第一路由引擎管理状态信息,并在将对该状态信息的更新传送给第一用户之前,将该更新传送给第二路由引擎。
在一个实施例中,一种计算机可读介质包括指令,其用于使第一用户接收来自主路由引擎的状态信息,并在将对该状态信息的更新传送给该状态信息的第三用户之前,按照请求将更新传送给第二用户的命令传送该更新。
在一个实施例中,一种方法,包括以下步骤:将来自多机架网络设备的第一机架的第一控制单元的状态更新转发至多机架网络设备的第二机架中的中间用户;将来自第一控制单元的状态更新操作传送至第一机架的第二控制单元;以及在传送过程中,基本保持网络功能。
在其他的实施例中,一种方法,包括以下步骤:利用多机架网络系统的第一机架的第一控制单元接收来自多机架网络系统的控制节点的控制单元的状态更新;将来自第一控制单元的状态更新转发至用户;将状态更新操作传送从第一控制单元至第一机架的第二控制单元;以及在传送过程中,基本保持网络功能。
下面的附图和说明书中阐述了本发明的一个或多个实施例细节。本发明的其它特征、目的和优点从说明书、附图以及权利要求书中将会变得显而易见。
附图说明
图1是一个示例性计算环境的方框图,其中,服务提供商网络包括多机架路由器;
图2是示出根据本发明原理的典型多机架路由器的方框图;
图3是示出根据本发明的原理的图2的多机架路由器的典型控制平面的方框图;
图4A和图4B是示出用于维护多机架路由器中状态信息的示例性数据结构的方框图;
图5是示出根据本发明原理的多机架路由器中的典型状态更新操作的流程图;
图6是示出根据本发明原理的主路由引擎的失败转移流程图;以及
图7是示出根据本发明原理的本地路由引擎的失败转移流程图。
具体实施方式
图1是一个示例性计算环境2的方框图,其中,服务提供商网络6包括多机架服务器4。在该实例中,多机架路由器4与边缘路由器5A和5B(“边缘路由器5”)通信,以将用户网络8A-8C(“用户网络8”)接入网络6。在一个实施例中,多机架路由器4包括作为控制节点的SCC,以及作为分组路由设备的一个或多个线卡机架LCC。LCC可以包括用于连接网络6中其他设备的所有物理接口,而SCC控制和路由多个LCC之间的流量。
尽管未示出,但服务提供商网络6可以连接至由其他提供商管理的一个或多个网络,并因此可以形成大规模公共网络架构(例如,互联网)的一部分。因此,用户网络8可以看作互联网的边缘网络。服务提供商网络6可以向用户网络8中的计算设备提供对互联网的接入,并可以使用户网络8中的计算设备相互通信。除了多机架路由器4和边缘路由器5,服务提供商网络6也可以包括各种网络设备,如附加的路由器、交换机、服务器、或其他的设备。
在图示的实施例中,边缘路由器5A通过接入链路9A连接至用户网络8A,边缘路由器5B分别通过接入链路9B和9C连接至用户网络8B和8C。用户网络8可以是用于企业的位于地理分离的地点处的多个网络。用户网络8可以包括一个或多个计算设备(未示出),诸如个人计算机、膝上电脑、手持电脑、工作站、服务器、交换机、打印机、或其他的设备。图1示出的网络2的结构仅仅是示例性的。例如,服务提供商网络6可以连接至任意数量的用户网络8。然而,为了便于描述,只在图1中示出了用户网络8A-8C。
根据本发明的原理,多机架路由器4利用包括原始路由引擎以及一个或多个备用路由引擎来提供失败转移。例如,SCC可以包括原始和备用主路由引擎(master routing engine),且一个或多个LCC可以包括原始和备用本地路由引擎。在将状态信息转发至LCC中的原始本地路由引擎之前,将状态信息从原始主路由引擎向下压入到备用主机引擎中。类似的,在将状态信息转发至其用户机架中的“用户”之前,原始本地路由引擎将状态信息转发至一个或多个备用本地路由引擎。以此方式,当在整个多机架环境中传送状态信息时,多机架路由器4执行同步梯度。在原始路由引擎失败的情况下,同一机架中的备用路由引擎接管该机架的路由资源和路由功能的控制。此外,由于在将状态信息转发至用户之前,该状态信息就被传送给了备用路由引擎,所以,备用路由引擎可以在原始路由引擎停止的同一位置继续向用户转发状态信息。2003年10月3日提交的美国专利申请号为10/678,280的名称为“Syncronizing StateInformation Between Control Units”专利申请,描述了用在独立路由器中的同步梯度的技术,将其全部结合于此作为参考。
以此方式,原始和备用路由引擎同步其各自的状态信息,以允许备用路由引擎接管路由资源的控制,而不必重新学习状态信息。出于示例目的,将参考多机架路由器4来描述本发明的原理。然而,本发明的原理可适用于任何多机架网路设备。例如,本发明的原理可应用于边缘路由器5、企业电气用具、会话边界控制器、智能交换机或集线器、防火墙或任何其他具有多机架操作环境的网络设备。
如下面进一步详细的描述,在多机架路由器4中的原始和备用路由引擎中执行的操作系统管理数据结构,并将状态信息的任何改变通知给用户。用户可以包括在多机架路由器4的部件中执行的软件进程,诸如机架管理进程、配置管理进程、或多机架路由器4中的其他进程。另外,状态信息的用户可以包括硬件部件,或软件、硬件或固件的结合(例如,一个或多个转发引擎、IFC或其他的硬件)。应该注意,对于主路由引擎来说,本地路由引擎被视为与状态信息相关的用户。类似的,对于LCC中的本地部件来说,本地路由引擎是状态信息的提供者。由于其双重角色,本地路由引擎可以被视为中间用户。同样,SCC和LCC中的备用路由引擎还作为关于原始路由引擎的用户,直到例如在失败转移的情况下接管状态信息的转发。
多机架路由器4可以管理层级数据结构和临时链接数据结构中的状态信息。在David M.Katz和Dennis C.Ferguson于2003年6月9日提交的名称为“Managing State Information in a ComputingEnvironment”的美国专利号10/457,814中描述了层级数据结构和临时链接数据结构使用的一个实例,将其全部结合于此作为参考。
在正常运行期间,在状态信息改变的情况下,多机架路由器4控制节点(即,本实例中的SCC)的原始主路由引擎使状态信息与在一个或多个备用主路由引擎上执行的操作系统同步。具体地,原始主路由引擎复制状态更新,并将该状态更新以消息的形式传送给备用主路由引擎。备用主路由引擎接收该消息并更新其相应的数据结构,以记录该状态更新。
一旦记录了状态更新,备用主路由引擎就可以向原始主路由引擎发送确认来表明成功的状态信息同步。一旦主路由引擎已经接收到来自备用主路由引擎的确认,它就向SCC的用户转发该状态信息的改变。例如,这包括位于SCC中的任何用户。此外,原始主路由引擎转发状态信息至LCC上的原始本地路由引擎(其被看作原始主路由引擎的用户)。然后,原始本地路由引擎将状态更新信息转发至LCC上的一个或多个备用本地路由引擎。然而,不需要每个LCC都具有备用本地路由引擎,某些或全部的LCC可以只具有原始本地路由引擎。在接收到来自这些LCC上的每个备用本地路由引擎的确认后,原始本地路由引擎于是可以向LCC上的用户传送状态更新消息。
以此方式,多机架路由器4在用户之前执行利用状态信息的改变更新备用主路由引擎的请求,以及在各机架中的任何本地用户之前利用状态信息更新各机架的备用路由引擎的请求。因此,如果有任何原始路由引擎失败,则如有必要,相应的备用路由引擎可以很容易地接管路由和状态管理的功能。一旦一个备用路由引擎接管了控制,则该路由引擎就不再是备用路由引擎,而成为主路由引擎;然而,该路由引擎将保持其作为本地、或作为主路由引擎的功能状态。在这点上,多机架路由器4可以看作保持“同步梯度”,使得首先由控制节点(即,SCC)的原始主路由引擎接收状态更新,其次是备用主路由引擎,然后是包括其他机架的原始本地路由引擎的SCC的用户,接下来是备用本地路由引擎,再接下来是其他机架中的用户。该同步梯度确保一旦进行失败转移,则任何机架中的备用路由引擎包含足够接管路由资源的控制的状态信息,而不必重新学习大部分的状态信息。
在一些实施例中,原始主路由引擎和原始本地路由引擎可以在它们的数据结构中使用提交标记(commit marker)和提交建议(commit proposal)以跟踪给用户的状态更新。如以下进一步地描述,可以将提交标记插入到在用户确认收到的临时排序数据结构中的最新对象之后的状态更新数据结构中。可以将提交建议插入在状态更新数据链中的某点,以指示状态链中的下一点向上发送所有信息的确认请求到该链中的该点。原始主引擎和原始本地引擎还将其数据结构中的提交标记和提交建议的位置复制到备用主路由引擎和备用本地路由引擎。以此方式,备用路由引擎还知道哪个用户已经接收了哪个状态更新。
响应于来自本地路由引擎的状态更新消息,用户发出请求以提取更新了的状态信息。当原始本地路由引擎接收这样的请求时,原始本地路由引擎遍历层级数据结构和临时链接数据结构,并发布消息给请求用户。然后,原始本地路由引擎更新关于请求共享的用户的相应的提交标记和提交建议,以反映状态更新的传送。原始本地路由引擎再一次使状态信息与一个或多个备用本地路由引擎同步,以使机架上的由本地路由引擎维护的状态信息中的提交标记和提交建议一致。
以此方式,备用本地路由引擎中的一个可以接管机架的控制,并可以确定地识别机架上的每个用户已被通知即已熟悉的状态信息。因此,备用本地路由引擎可以只需利用有限数量的状态信息来更新用户,而且不需要依靠重新学习来自多机架路由器4的主路由引擎的状态信息。一旦备用本地路由引擎中的一个接管机架的控制,则该备用本地路由引擎不再是备用本地路由引擎,而成为原始本地路由引擎。
用于本地路由引擎和主路由引擎的失败转移技术的这种结合扩展了用于多机架路由器4中使用的独立路由器的同步梯度。多机架路由器4中的单个路由引擎的失败将不会中断分组转发,并且可以有限的中断和冗余来恢复状态信息的更新。以此方式,多机架路由器4具有与独立路由器中的不间断转发相同的不间断转发的能力。
图2示出根据本发明原理工作的典型多机架路由器120的方框图。多机架路由器120通过网络在网络设备之间路由数据分组。在该实例中,多机架路由器120包括四个基本相同的LCC 128A-128D(“LCC 128”)和作为中央控制节点的SCC122。在其他的实施例中,多机架路由器可以包括更多或更少的LCC。SCC122提供用于多机架路由器120的集中交换和控制。LCC128使用IFC组134A-134D(“IFC134”)来提供对网络的接口。
SCC122包括交换结构(switch fabric)124和两个路由引擎:原始主路由引擎126和备用主路由引擎127。交换结构124在LCC128的多个交换结构125之间提供背侧(back-side)连接(即与网络分离的连接)。原始主路由引擎126的功能包括维护路由信息以描述网络的拓扑结构,并使用该信息生成转发信息库(FIB)。路由引擎126通过在LCC128中安装FIB经由在电缆137上与本地路由引擎130和/或131的通信,来控制贯穿多机架路由器120的分组转发。用于其中一个LCC128的FIB可以与用于其他LCC128和SCC122的FIB相同或不同。由于电缆137提供SCC122和LCC128之间的专用连接(即,与由电缆136提供的数据分组转发连接分离),因此可以更新LCC路由引擎130中的FIB,而不中断多机架路由器120的分组转发的执行。LCC128每个均包括原始本地路由引擎130A-130D(“路由引擎130”)中的一个、备用本地路由引擎131A-131D(“路由引擎131”)中的一个、交换结构125A-125D(“交换结构125”)中的一个、至少一个分组转发引擎(PFE,图示为PFE132A-132D(“PFE132”))、以及一个或多个IFC134。
多机架路由器120以下面的方式执行路由功能。首先由IFC134中的一个(例如,134B)接收来自网络的输入数据分组,并将其指向PFE132中的一个(即PFE132B)。然后,PFE利用由原始本地路由引擎(例如,路由引擎130B)提供的FIB确定用于数据分组的适当的路由。如果数据分组是发往与最初接收该分组的IFC中的一个相关的出站链路的话,则PFE将该分组转发至该出站链路。以此方式,从网络接收分组的同一PFE发送的分组绕开交换结构124和交换结构125。
另外,PFE发送该数据分组给交换结构125,其中,分组指向交换结构124,其中,分组沿着路由到达其他PFE132中的一个,例如,PFE132D。该PFE例如PFE132D通过IFC134中的一个例如IFC134D在网络中发送数据分组。从而,由LCC128中的一个接收的输入数据分组可以由LCC128中的另一个发送到其目的地。其他根据本发明原理工作的多机架路由器可以使用不同的交换和路由机制。
如关于图1中的多机架路由器4的描述,在一些实施例中,原始主路由引擎126利用根据同步梯度的层级数据结构和临时链接数据结构转发状态信息的更新。关于原始主路由引擎126,备用主路由引擎127和原始本地路由引擎130是用户。
备用主路由引擎127基本类似于原始主路由引擎126。例如,备用主路由引擎127可以包括与原始主路由引擎126相同的硬件和操作系统、以及其他的软件应用程序。如果原始主路由引擎126失败或被断开连接的话,则备用主路由引擎127执行原始主路由引擎126的功能。在该实例中,如果原始主路由引擎126重新上线,其既可以作为从属于现作为原始路由引擎的路由引擎127的备用主路由引擎,也可以重新作为SCC122的原始主路由引擎。在另一种情形中,在任何时候,都只有原始主路由引擎126和备用主路由引擎127中的一个提供多机架路由器120的控制。
原始本地路由引擎130控制和管理LCC128,但是其从属于SCC122的原始主路由器引擎。例如,在接收到来自原始主路由引擎126的状态信息更新之后,原始本地路由引擎130利用层级数据结构和临时链接数据结构转发对于LCC128上的用户最新的状态信息。例如,接收来自原始本地路由引擎130的状态信息更新的用户包括备用本地路由引擎131、PFE132和IFC134。原始本地路由引擎130还将由原始主路由引擎126生成的FIB分配给PFE132。
备用本地路由引擎131可以基本类似于原始本地路由引擎130。例如,备用本地路由引擎131可以包括与原始主路由引擎126相同的硬件和操作系统以及其他的软件应用程序。如果原始本地路由引擎130中的一个失败或断开连接,则相应的备用本地路由引擎131将执行路由引擎130中失败的那个的功能。例如,假定LCC128B的原始本地路由引擎130B失败。在这种情况下,备用本地路由引擎131B接管LCC128B的控制。因此,备用本地路由引擎131B开始转发状态信息更新至LCC128B上的用户。在该实例中,如果将路由引擎130B重新上线,则路由引擎可以作为备用本地路由引擎131B的备用本地路由引擎,或恢复对LCC128B的控制。在任何一种情况下,在任何时候,都只有原始本地路由引擎130B和备用本地路由引擎131B中的一个提供LCC128B的控制。而示出的LCC128就只有备用本地路由引擎131中的一个,在其他的实施例中,一些LCC128无需备用本地路由引擎128就可以操作或包括一个以上的备用本地路由引擎128。
在一些实施例中,在每个机架的原始和备用路由引擎上运行的操作系统对层级数据结构和临时链接数据结构中的提交标记和提交建议进行编码,用于跟踪至多机架路由器120中的各种用户的状态信息的分发。特别的,在一些实施例中,在每个机架的原始和备用路由引擎上运行的操作系统维护提交标记和提交建议,以跟踪与共享路由器资源相关的每个用户的状态信息的消耗。此处提及的共享路由器资源是由机架上的原始路由引擎和一个或多个备用路由引擎共享的任何路由器资源(诸如PFE或其他的用户)。例如,原始主路由引擎126对用于备用主路由引擎127以及每个原始本地路由引擎130的提交标记和提交建议进行编码。原始本地路由引擎130包括仅用于同一机架上的用户的提交标记。例如,原始本地路由引擎128A包括用于驻留在LCC128A上的每个备用本地路由引擎131A、PFE132A和IFC134A的分离的提交标记。相反,原始和备用路由引擎每个都可以包括他们自己的也可以用作状态信息的用户的软件进程或调试监督程序。在一些实施例中,路由引擎不包括用于非共享路由器资源的提交标记或提交建议。
提交标记可以用于标记由共享用户接收和确认的最新的状态更新,而用于用户的提交建议表明对应于发送给用户的确认请求的状态更新中的位置。因此,提交标记和提交建议可以是指针、状态位、或能够标记层级数据结构和临时链接数据结构中的位置的其他数据结构。
为了能够接管状态信息更新的控制,备用路由引擎还将提交标记和提交建议编码到其数据结构中。备用本地路由引擎将除了自身的标记以外的在相应的原始本地路由引擎中编码的提交标记的副本编码到自己的数据结构中。通过对数据结构中的提交标记和提交建议编码,备用路由引擎127和130可以确保在转移失败的情况下对已经用状态信息更新的用户延伸。因此,备用路由引擎127和130只需要用由其各自的在状态信息数据结构中编码的提交标记和提交协议所限定的有限数量的状态信息更新每个用户。
一旦进行失败转移,当序列号与提交标记或提交建议匹配时,备用路由引擎发送从提交标记以后的状态信息启动的更新。如果在提交建议之后有多个更新的话,则在发送提交标记和提交建议之间的更新之后将继续发送这些更新。
原始路由引擎126和130还可以在其状态信息更新链中的每个对象上对分离的状态位标记进行编码。状态位标记可以用来指示相应的备用路由引擎已经实际接收到了该对象。这些状态位标记可以附加到备用路由引擎的提交标记和提交建议上。如上所述,原始路由引擎首先向相应的备用路由引擎提供状态信息链中的对象。一旦该备用路由引擎确认接收了数据链中的对象,就用状态位标记来标记该对象并将其发布给其他用户,诸如其他机架的低层次路由引擎或本地用户。状态位标记可以是必需的,例如,当路由引擎最初在没有备用路由引擎的情况下运行,接着将备用路由引擎上线时。状态位标记使原始操作系统允许备用路由引擎立即得到原始路由引擎的存储器中的状态信息更新,以使备用路由引擎一旦启动就尽可能快地准备接管状态信息更新。以此方式,维护状态信息位确保备用路由引擎在任何其他用户之前接收状态更新。如此要求是为了使备用路由引擎从任何失败转移中原始路由引擎停止的地方继续状态更新。
当没有活动的相应的备用路由引擎时,原始路由引擎不使用状态位标记或在将对象提供给其他的用户之前等待备用路由引擎以确认对象的接收。当如此描述状态位标记时,它还可以是指针或可以标记状态信息对象的其他数据结构。状态位标记仅是一个示例性实施例。
尽管是参照二层多机架路由器120进行的描述,但本发明的原理可以很容易的应用到具有3层或多层(层(tier))路由控制的多机架路由器。例如,多机架路由器120的LCC128的每个本地路由引擎131可以用作具有原始本地和备用路由引擎的一个或多个附加机架上的主路由引擎。用于确保分发状态信息的同步梯度的该技术可以用来确保任何层的备用路由引擎在转移失败的情况下可以接管相应的原始路由引擎。
图3是示出根据本发明的图2的多机架路由器120的典型控制平面的方框图。如图所示,SCC122包括原始主路由引擎126和备用主路由引擎127。每个LCC128包括原始本地路由引擎130中的一个和备用本地路由引擎131中的一个,但是出于图示目的,只在LCC128A上作为原始本地路由引擎130A和备用本地路由引擎131A示出了该细节。LCC128B-D可以基本类似于LCC128A。
如参照图2所描述的,路由引擎126、127、130和131可以根据状态链中的层级数据结构和临时链接数据结构维护状态信息。一部分状态链可以表示例如多机架路由器120和网络之间的接口,其可以包括IFC134和PFE132的当前配置。状态链150、152、154A和156A可以保存在诸如RAM的存储器中,该存储器位于各路由引擎126、127、130A、131A之上或各路由引擎126、127、130A、131A的外部。
路由引擎126、127、130和131上的状态信息被称为“状态链”,这是由于该信息根据数据中的临时链接被传播至路由引擎126、127、130和131,即,状态对象以原始主要路引擎126接收的顺序被分发至路由引擎127和130。同样,原始本地路由引擎126利用相同的先入先出的方法将状态信息对象转发至备用本地路由引擎127。相反,在用户请求以特定的顺序提供状态信息更新时,使用状态信息的层级顺序。例如,机架调试监督程序(“chassisd”)129在接收关于IFC134A的状态信息更新之前,可以请求任何可以得到的关于PFE132A的状态信息更新。然而,通常,除非具有对另一个状态的依赖性,否则用户以临时的顺序接收状态更新。每个用户具有用于接收状态信息的唯一的依赖性。例如,依赖性可以是用户请求的状态信息的结果。
用户也维护状态信息,例如,图3示出了分别维护状态信息161、165、162A、164A和184A的机架调试监督程序129、机架调试监督程序173、PFE 132A、机架调试监督程序135A和机架调试监督程序175A。状态信息161、165、162A、164A和184A可以例如表示现场可换部件(诸如,接口卡、加密卡、计算服务卡等)的当前状态。另外,状态信息161、165、162A、164A和184A可以存储在位于共享用户内部或外部的存储器诸如RAM中。作为实例,图3示出了共享用户PFE132A和共享中间用户LCC128。图3还示出了非共享用户机架调试监督程序129、机架调试监督程序173、机架调试监督程序135A和机架调试监督程序175A。多机架路由器120还包括图3中未示出的请求状态信息的附加的共享和非共享用户,例如IFC134。
由于路由引擎126、127、130和131在状态信息改变时,将状态数据推给用户,而不要求用户查询更新的状态信息、控制数据流量和收敛时间。
为了防止在大量状态更新的情况下用户的过载,用户被通知状态更新,然后一旦用户资源允许就允许用户对其进行提取。在一些实施例中,可以通过路由引擎中的代理(proxy)间接地为一些用户服务。例如,原始主路由引擎126可以包括用于每个LCC128的代理。其他的用户可以直接从状态链150提取状态信息。例如,非共享用户(例如,机架调试监督程序129)可以直接从状态链150提取状态信息。
为说明如图3所示的多机架路由器中的状态信息的进程,假设原始主要和原始本地路由引擎126和130处于控制状态,且备用主路由引擎和备用本地路由引擎127和131用作备份。原始主路由引擎126接收指明共享资源(例如,PFE132A)的状态中的改变的事件消息。当原始主路由引擎126接收该事件消息时,原始主路由引擎126中的原始主内核140通过重新配置数据结构和更新存储在数据结构中的数据来更新状态链150。除了基于状态的改变来更新数据以外,在事件消息涉及共享路由资源(例如,PFE132A)的情况下,原始主内核140可以向数据结构中的不同位置添加、删除或移动提交标记和/或提交建议。
原始主内核140然后通过将消息表中的状态信息传送给ksync调试监督程序(ksync daemon)144来复制状态更新,以及复制在备用主路由引擎127上执行的状态同步进程。原始主内核140还可以向备用主路由引擎127发送确认请求,并还可以在状态链150上移动表示备用主路由引擎127的提交建议。ksync调试监督程序144提取状态信息并将该状态信息传送至备用主内核141。备用主内核141接收该状态更新并根据该状态更新来更新状态链152。
类似于原始主内核140,备用主内核141可以基于状态信息重新配置并更新状态链152的数据结构。备用主内核141还可以向这些数据结构中的不同位置添加、删除或移动提交标记和/或提交建议。在被更新以后,状态链152基本类似于状态链150。换句话说,状态链152和状态链150被同步。如果由原始主内核140发送确认请求的话,则备用主内核141通过ksync调试监督程序144将确认传送给原始主内核140,以指示该同步状态。以此方式,ksync调试监督程序144在原始主内核140和备用主内核141之间提供用于状态信息同步的接口。如果有确认,则一旦接收到指示备用主路由引擎127中的同步状态的确认,原始主内核140就将其表示备用主路由引擎127的提交标记移动至主路由引擎127中的提交建议的当前位置。然后,原始主内核140就以状态位标记来标记由来自备用主路由引擎127的确认所表示的每个对象,以允许用户状态信息分发到LCC128和SCC122上。状态位标记确保从状态链150分发到其他的用户的状态信息已经首先被备用主路由引擎127接收。
接着,备用主路由引擎127在其内部调试监督程序中更新状态信息。例如,备用主路由引擎127以基本与原始主路由引擎126在机架调试监督程序129中更新状态信息161相同的方式在机架调试监督程序173中更新状态信息165。
一旦备用主路由引擎127与原始主路由引擎126同步,则如有必要,原始主路由引擎126就向SCC122中的不同用户提供状态信息更新。例如,原始主内核140可以向机架调试监督程序129发出警报以指示状态信息160中的改变。作为响应,原始主内核140接收来自状态信息用户的请求。原始主内核140通过遍历状态链150的层级数据结构和临时链接数据结构以及向请求的用户发布更新消息来向每个请求提供服务。基于用户各自的提交建议和提交标记,原始主内核140生成更新消息以包含用户还没有接收到的状态信息。用户对状态数据的确认接收直到来自原始主要内核140的确认请求都予以响应。一旦更新了用户并接收到他们的确认,原始主内核140就移动状态链150的数据结构中的提交标记以反映该更新。
在将备用主路由引擎127与原始主路由引擎126同步之后,原始主内核140通过将状态信息以消息形式传送至ksync调试监督程序145(如由ksync调试监督程序145A表示的在每个原始本地路由引擎130中的一个),以再次复制状态更新。当状态更新发生时,一旦其到达状态链中的提交建议,原始主内核140还可以发送确认请求。状态链中的提交建议的位置可以不是连续的分隔空间。例如,用于用户的提交建议的位置可以取决于自从前面的提交建议或其他的变量以来的时延。
ksync调试监督程序145提取状态信息并将该状态信息传送至(如由原始内核142A代表的)原始内核142。原始内核142接收该状态更新,并根据状态更新来更新(如由状态链154A代表的)状态链154。除了利用状态更新消息更新状态链154以外,原始本地内核142A向状态链154添加称为“ksync对象(ksync object)”的附加的对象,其中,该附加的对象对应于从原始内核140接收的确认请求。一旦该状态更新已经被复制到LCC128A上请求该状态更新的所有用户,就要求状态链154上的ksync对象提醒原始内核142A,来响应由主路由引擎126所做的确认请求。这是由于在向主路由引擎126提供用于状态更新的确认之前,原始内核142A必须等待直到原始内核142A接收到来自LCC128A上的所有用户的关于请求该状态更新的确认。
在与状态链150同步之后,状态链154不同于状态链150之处在于原始本地内核142对每个状态链154中的提交标记和提交建议的不同集合进行编码。每个状态链154包含其自身的表示在其特定机架上的用户的提交标记和提交建议集合。例如,原始本地内核142A将对用于每个备用本地路由引擎128A、PFE132A和IFC134A的单独的提交标记进行编码。
一旦原始本地路由引擎130与原始主路由引擎126同步,他们就通过以消息形式将状态信息传送给由ksync调试监督程序146A代表的ksync调试监督程序146,将该状态更新复制到备用本地路由引擎131。ksync调试监督程序146A提取该状态信息并将其传送给备用本地内核143A。备用本地内核143A接收该状态更新,并根据该状态更新更新状态链156A。一旦备用本地内核143A已经更新了状态链156A,则如有必要,就向原始本地内核142A确认接收到状态更新。
一旦接收到确认,原始本地内核142A就将表示备用本地路由引擎131A的提交标记移动至提交建议,并以状态位标记来标记提交标记和提交建议之间的状态链154A中的所有状态对象,其中,状态位标记表示可以复制该对象到LCC128A上的用户。
原始本地内核142A向LCC128A上的用户发出警报,请求由状态链154A中的一个或多个对象所表示的状态更新。作为响应,用户请求状态信息,且原始内核142通过遍历状态链154A的层级数据结构和临时链接数据结构,并向请求用户发送更新消息来向这些请求提供服务。
一旦LCC128A上的每个提交标记传送状态链154A中的ksync对象,原始本地内核142A就对来自原始主内核140的确认请求做出响应。然后,原始主内核140将状态链150中的LCC128A的提交标记移动至LCC128A的提交建议。
可以在创建了新的状态信息时或以限定的时间间隔执行所述用于在多机架路由器120上分发状态更新信息的进程。状态更新经常出现在多机架路由器120中,且同步可以连续地或接近连续地发生。由于同步不是瞬间发生的,因此多机架路由器120可以同时执行多个状态更新的迭代。例如,在以第二状态更新更新备用主路由引擎127中的备用主内核141时,由于备用主内核141已经确认了第一状态更新,所以原始主内核140同时可以用第一状态更新来更新原始本地路由引擎130中的原始内核142。
以此方式连续进行状态链150、152、154和156中的状态信息的同步,直到出现失败转移。对于原始主路由引擎126和/或对于任何原始本地路由引擎130都可能出现失败转移。一旦发生了失败转移,对应于失败的原始路由引擎的备用路由引擎就接管其原始路由引擎的责任。例如,如果在原始主路由引擎126正在更新原始本地路由引擎130时发生了失败转移,则备用主路由引擎127就继续进行该更新。更具体地,备用主内核141使用存储的并在状态链152中同步的提交标记和提交建议,从原始主内核140停止的同一点继续进行该更新。
在LCC128中的一个(例如,LCC128A)失败转移的情况下,备用本地路由引擎131A继续更新LCC128A上的用户。备用本地路由引擎131A在没有备份路由引擎的情况下工作,直到原始本地路由引擎130A上线。由于没有备份,一旦接收到状态更新,备用本地路由引擎131A就不维护状态位标记来表示已经由备用路由引擎确认了对象。相反,备用本地路由引擎131A立即更新用户。
备用本地路由引擎131A从对应于每个用户的提交标记开始发送来自数据链156A的层级和临时链接结构的状态更新。例如,备用本地路由引擎131A得到对应于PFE132A的提交标记。然后,备用本地路由引擎131A向PFE132A发布状态更新消息。PFE132A开始接收状态链162A中的跟随其提交标记的状态对象。如果在接收来自PFE132A的确认之前,原始本地路由引擎130A发送相同的状态更新消息但是失败的话,则PFE132A可以接收冗余状态更新消息。在这种情况下,PFE132A忽略该冗余状态更新消息,而不是响应于关于给冗余状态更新的确认请求。
备用主路由引擎127维护状态链152使其与原始主路由引擎126的状态链150同步。备用本地路由引擎131维护状态链156使其与原始本地路由引擎130的状态链154同步。因此,备用路由引擎127和131可以通过接管控制而不必学习状态信息更新(例如,通过重新启动机架,或者甚至从已知状态重启多机架路由器120)而有助于失败转移。此外,备用路由引擎127和131可以更新关于有限数量的状态信息的用户,而有限数量的状态信息由在状态信息数据结构中编码的他们各自的提交标记和提交建议限制。
如上所述,在失败转移的情况下,一个或多个备用路由引擎127和131接管原始路由引擎的角色。随后,该原始路由引擎可以返回操作状态(例如,在被复位之后),并且接管备用路由引擎的角色。在该情况下,原始路由引擎启动状态同步进程以使其状态信息与备用路由引擎(现作为原始路由引擎)的状态信息同步。
路由引擎126、127、130和131可以根据从一个或多个计算机可读介质存取的指令来操作。这种介质的实例包括:随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存等。可以通过利用一个或多个处理器、分立硬件电路、固件、在可编程处理器上执行的软件、或其组合来执行计算机可读介质的指令来实现多机架路由器120的功能。
图4A和图4B(“图4”)是示出分别对状态更新至原始主路由引擎126、备用主路由引擎127、原始本地路由引擎130A、备用本地路由引擎131A、PFE 132A和机架调试监督程序135A中的状态链150、152、154A、156A、162A和164A的典型传播(propagation)的方框图。如图所示,状态信息可以保存在多个对象250中。当出现状态更新时,创建新的对象并分发给多机架路由器120上的路由引擎和共享用户。此外,可以根据数据结构中的临时链路将对象250传播至路由引擎126、127、130和131。对象250可以存储对应于路由、防火墙、接口卡、以及其他部件的信息。
如图4A所示,原始主路由引擎126中的原始主内核140维护包括对象250A-250H的状态链150形式的状态信息(如图4A所示)。原始主内核140使提交标记201和提交建议211与本地主路由引擎127相关。提交建议212和提交标记202对应于原始本地路由引擎130A。状态链150可以包括用于LCC128B-128D中每一个上的原始本地路由引擎的附加的提交标记和提交建议(未示出)。状态链150还可以包括用于SCC122上的共享用户的提交标记和提交建议(未示出)。
备用主内核141还维护包括对象250A-250H的状态链152。状态链152与状态链150同步。状态链150上的对象包括状态位标记,用于指示是否该对象已经被备用主路由引擎127接收。如图4A所示,状态链150中的对象250A-250G被标记为已经添加到状态链152。当状态链152当前包括对象250F时,备用主路由引擎127还没有确认收到对象250F,并将响应于提交建议211而这样做。直到那时,状态链150中的对象250F才被标记为已经被备用主路由引擎127接收。
参照图4A,状态链152基本类似于状态链150,并处于与状态链150同步的进程中,并包括状态链150中的所有对象。状态链152包括对应于原始本地路由引擎130A的提交标记202和提交建议212。除了提交标记202和提交建议212以外,状态链152包括对应于备用本地路由引擎127的附加的状态链150上的一部分的提交标记和提交建议(未示出)。与状态链150相反,状态链152上的对象不包括显示是否备用主路由引擎已经接收了每个对象的状态位标记。在备用主路由引擎127成为原始主路由引擎并由作为备用主路由引擎的另一个路由引擎备份的情况下,状态位标记将被添加至状态链152中的每个对象。
状态链154A由LCC128A中的原始本地路由引擎130A维护,并且代表每个LCC128中的原始本地路由引擎130中的状态链。在该实例中,状态链154A包括分别用于备用本地路由引擎131A和PFE132A的提交标记203和204。状态链154A还包括用于PFE132A的提交建议。如图所示,状态链154A不包括用于备用本地路由引擎131A的提交建议。在状态更新操作期间的其他时间里,状态链154A还可以包括用于备用本地路由引擎131A的提交建议。类似于原始主路由引擎126上的状态链150,状态链154A包括在每个对象上的指示该对象何时已经得到了备用本地路由引擎131A的确认的状态位标记。除了对象250以外,一旦接收到来自原始主路由引擎126的确认请求,原始本地内核142A就插入或移动状态链154A中的ksync对象260。一旦状态链154A中的所有提交标记已经通过ksync对象,状态链154A中的ksync对象260提醒原始本地路由引擎响应确认请求。
在图4A的实例中,提交标记202将对象250C标记为持有由原始本地路由引擎130A确认的最新的状态更新。提交建议212将对象250E标记为持有发送给原始本地路由引擎130A的最新确认请求。因此,原始本地内核142A已经确认接收到对象250C,之后,原始主内核140将提交建议212移动到刚好状态链150中的对象250C的后面。原始主内核140将该确认转发给备用主路由引擎127,其中,备用主内核141还移动提交标记202越过状态链152中的对象250C。以相同的方式来处理用于每个LCC128B-128D上的原始本地路由引擎的附加的提交标记(未示出)。提交标记201和提交建议211以与备用主路由引擎127有关的相似的方式操作,但他们只存在于状态链150上。
再次参照图4A,原始本地路由引擎128A的状态链154A包括对象250A-250G和ksync对象260。提交标记203将对象250G表示为持有临时关系中的由备用本地路由引擎131A确认的最新状态信息。类似地,提交标记204将对象250E表示为持有由PFE132A确认的最新状态信息。提交建议214将对象250G表示为发送给PFE132A的确认请求中的最新对象。
原始本地内核142A将ksync对象260插入到状态链154A中的对象250E的后面,以对直到来自原始主路由引擎126的对象250E并包括该对象的对象的确认请求的接收都予以标记。一旦LCC128上的所有用户确认接收到他们请求的直到临时链接的状态链154A中的对象250E并包括该对象的所有对象,则ksync对象260起提醒原始本地路由引擎130A响应确认请求的作用。每次原始主路由引擎126向LCC128A发送确认请求时,原始本地内核142A都将状态链154A中的ksync对象260移动到状态链154A的末尾。原始主路由引擎126等待发送新的确认请求,直到接收到对前面的确认请求的确认。由LCC128A接收的来自原始主路由引擎126的每个确认都产生ksync对象260的新位置以及提交建议212的相应的新位置。
在多机架路由器120中,在确认来自原始主路由引擎126的状态更新之前,原始本地路由引擎130A向备用本地路由引擎131A以及LCC128A上的请求更新的每个用户转发更新。而且,原始本地路由引擎130A在向主路由引擎发送确认之前,必须等待接收来自备用本地路由引擎131A和LCC128A上的每个共享用户的确认。例如,在一些实施例中,确认可以不是对非共享用户来请求的。例如,状态链150和152中的提交标记202将保持在对象250C和250D之间,直到状态链154A中的每个提交标记到达或通过ksync对象260。在失败转移的情况下,可能会存在大量的由原始本地路由引擎130A接收的但没有确认的状态更新信息。
原始主内核140将称之为序列号的随机号码“N”(未示出)编码到状态链150中的提交建议212中。例如,N可以是随机的3位数字号码。对应于对象250C的原始本地路由引擎的确认请求也包括该随机号码N。原始本地内核142A将该号码编码到ksync对象260中。一旦同步,备用本地路由引擎131A的状态链156A中的ksync对象160A也就包括该序列号N。
在原始本地内核142A响应对应于ksync对象260的该确认请求之后,原始主内核140将随后进一步沿着状态链150向相应的对象发送新的确认请求,并将提交建议212移动到该对象。在该位置,原始主内核140将号码N+1编码到提交建议212中。以此方式,原始主内核140计算向LCC128A发送确认请求的次数。原始主内核140包括在每个随后的确认请求中更新了的序列号。
在失败转移的情况下,一旦主路由引擎或者本地路由引擎与SCC122重新连接,LCC128A中的活动的本地路由引擎就向SCC122中活动的主路由引擎发送最新的序列号。这具有通知主路由引擎LCC128A接收到了对应于所述序列号的状态的作用。假设由LCC128A发送的序列号与活动的主内核的状态链中对应于提交标记或提交建议的序列号匹配,则该活动的主路由引擎可以根据提交标记继续进行状态更新。如果序列号不匹配,则该活动的主路由引擎会发送出错信号。在出错的情况下,状态链154与该活动的主路由引擎重新同步,例如,通过清除所有来自LCC128A的状态信息以及从SCC122重新认知状态信息。
虽然序列号不匹配的情况很少发生,但例如,当备用主要或本地路由引擎在原始路由引擎产生新序列号之后,在原始路由引擎能够更新该编码在备用路由引擎的状态链中的序列号之前,接管相应的原始路由引擎的责任时,还是可能发生。例如,当更新状态链152中的提交标记的位置时,在提交标记212的位置移动到状态链150中之后,原始主路由引擎126更新备用主路由引擎127中的序列号。原始本地路由引擎130A根据每个新的确认请求向备用本地路由引擎131A发送更新序列号,然后将该更新的序列号包括在状态链156A中的相应的ksync对象中。通过在失败转移之后,在继续状态更新之前将序列号进行比较,多机架路由器120确保本地路由引擎130和131中的状态链154和156包含与主路由引擎126和127中的状态链150和152中相同的对象集合250。
即使序列号匹配,本地路由引擎也可以接收已经在其状态链中的对象。例如,状态链154A在ksync对象260之后包括两个对象。在主路由引擎失败转移的情况下,备用主路由引擎127接收来自原始本地路由引擎130A的序列号N+1。该序列号对应于状态链152上的提交建议212上的序列号。因此,备用主路由引擎127知悉该原始本地路由引擎130A接收了直到对象250E并且包括该对象的所有对象。然而,备用主路由引擎127不知道原始本地路由引擎130A还已经接收了对象250F和250G。因此,备用主路由引擎127使用对象250F对LCC128A继续进行状态更新。原始本地内核142A在向状态链154A添加新对象(例如,对象250H)之前,简单地忽略对象250F和250G。取决于该环境,状态链154A的第一个新对象可以是ksync对象260或状态更新对象250。
在向备用主路由引擎127和原始本地路由引擎130转发状态更新的过程中,原始主内核140还接收新的状态更新对象。状态更新对象可以由多机架路由器120中的任何机架中的进程创建。然而,根据之前描述的作用于多机架路由器120中的任何一个机架中的技术,将每个状态更新转发给SCC122并进行分发。例如,在LCC128A上产生的状态更新被转发给SCC122,其中,将其插入状态链150中,并在转发回LCC128A中的原始本地路由引擎130A之前,复制到状态链152。以此方式,原始主路由引擎126维护多机架路由器120的集中控制。
图4B示出了将来自原始本地路由引擎130A的状态链154A的状态更新传播至备用本地路由引擎131A中的状态链156A,以及分别传播至PFE132A和机架调试监督程序135A的状态信息162A和164A。如4B中示出的状态信息更新对应于图4A中示出的状态信息更新。
如图4B所示,PFE132A和机架调试监督程序135A可以根据数据结构的层级秩序接收对象。而且,PFE132A和机架调试监督程序135A不是每个都需要接收每一个对象,而是只需要接收与其运行相关的那些更新。在图4B中,PFE132A和机架监控程序135A的状态信息162A和164A是提供给LCC128的任何一个中的用户的示例性的状态信息更新。例如,LCC128A包括请求状态信息更新的附加的用户。对LCC128A中的其他用户和SCC122的更新以与示例性用户PFE132A和机架调试监督程序135A基本相似的方式进行。
状态链156A与状态链154A同步。一旦同步,状态链156A就包括状态链154A中的所有对象。然而,由于状态更新信息是在多机架路由器120中定期创建的,所以链156A可以经常请求与状态链154A同步。状态链156A包括对应于PFE132A的提交标记204和提交建议214。除了提交标记203和提交建议213以外,状态链156A还包括为状态链150的一部分的附加的提交标记和提交建议(未示出),该状态链对应于备用本地路由引擎131A。与状态链154A相比,状态链156A上的对象不包括表示备用本地路由引擎是否已经接收到每个对象的状态位标记。在备用本地路由引擎131A变为LCC128A上的原始本地路由引擎,且由作为备用本地路由引擎的另一个路由引擎备份的情况下,状态位标记将被添加到状态链156A中的每个对象中。
状态链156A包括对象250A-250G、监控对象260、提交标记204和提交建议214。每个对象250A-250G被标记为已经被备用本地路由引擎131A确认。例如,备用本地路由引擎131A响应于确认请求,确认接收了ksync对象260。在接收到来自备用路由引擎131A的监控对象260的确认后,原始本地路由引擎130A将对象250A-250G和ksync对象260标记为已经被备用本地路由引擎131A确认。然后,如有必要,原始本地路由引擎130A将对象250A-250E转发至PFE132A和机架调试监督程序135A。如图4B所示,PFE132A不请求对象250B。
直到状态链154A上的每个提交标记通过或到达ksync对象26,LCC128A才会响应对应于状态链150上的提交建议212的确认请求。在该点,原始本地路由引擎130A将向原始主路由引擎126发送确认,并且原始主内核140将移动提交标记202以取代提交建议212。然后,原始主内核140可以沿着状态链150在随后的位置重新插入提交建议212。
用户接收状态信息更新的顺序可以取决于状态更新数据结构的层级顺序。如图4B所示,PFE132A和机架调试监督程序135A根据状态更新数据结构的层级顺序接收状态更新。例如,机架调试监督程序135A以下面的顺序接收状态信息更新:对象250A、对象250C、对象250B、对象250F和对象250D。用户可以以由状态更新数据结构的层级顺序限定的特定顺序请求状态更新对象。例如,用户可以在关于IFC134的状态更新信息之前请求关于PFE132的状态更新信息。
状态更新信息的传播在多机架路由器120中无限地继续。例如,原始本地路由引擎130A中的状态链154A包括还没有被转发给LCC128A上的用户的对象250G。而且,原始主路由引擎126包括还没有被转发给LCC128A的对象250H。为了将对象250H转发给LCC128A,原始主路由引擎126必须等待来自备用主路由引擎127的确认。
如上所述,多机架路由器120的每个机架中的进程可以产生状态更新信息,且在多机架路由器120运行过程中定期产生状态更新信息。然而,在用户(例如,LCC128A中的机架调试监督程序135A)失败的情况下,为了重新启动,该用户可以请求接收基本所有的被请求运行的状态更新信息。LCC128A中的机架调试监督程序135A,例如,可以请求路由引擎130A和131A、PFE132A和IFC134A上的信息。机架调试监督程序135A请求从原始本地内核142A重新发送状态信息。一旦在失败后重新启动,机架调试监督程序135A就通知原始本地内核142A其请求状态信息更新。原始本地内核142A于是向机架调试监督程序135A重新发送其请求的状态链154A中的状态信息。如前,根据机架调试监督程序134A所需的特定的层级数据结构发送该状态信息。
图5是示出当根据本发明的原理来同步和处理状态更新时的多机架路由器120(图2和图3)的示例性操作的流程图。最初,多机架路由器120,更具体地,原始主内核140接收关于多机架路由器120的网络或资源状态的改变的信息(354)。作为一个实例,原始主内核140接收来自机架调试监督程序129的状态信息。在另一个实例中,状态信息可以限定对网络拓扑的改变,例如,网络路由的增加。
作为响应,原始主内核140更新状态链150以反映多机架路由器120的状态的改变(356)。原始主内核140通过添加和/或去除对象,以及添加、删除或移动提交标记和提交建议来更新状态链150。
接下来,原始主内核140将状态链152与状态链150同步。具体地,原始主内核140复制状态链150的状态信息,并通过ksync调试监督程序144将该状态信息传送给备用主内核141(358)。一旦接收到该更新,备用主内核141就处理该状态信息并执行必要的改变以同步状态链152(360)。备用主内核141等待来自原始主内核140的确认请求,然后通过ksync调试监督程序144将确认传送给原始主内核140(362)。
一旦原始主内核140接收到确认,原始内核就以状态位标记来标记确认的对象,并将状态更新信息复制到原始本地内核142和复制到SCC122中的任何本地用户。通过ksync调试监督程序145将状态更新信息复制到SCC122上的原始本地内核142中以及直接复制到SCC122中任何本地用户中(364)。一旦接收到该更新,原始本地内核142就处理该状态信息,并执行必要的改变以同步状态链154(366)。
状态链156各自地与LCC128的每个LCC中的状态链154同步。原始本地内核142复制状态链154的状态信息,并通过ksync调试监督程序146将该状态信息传送给备用内核143(368)。一旦接收到该更新,备用主内核141就处理该状态信息并执行必要的改变以同步状态链152(370)。接着,备用内核143通过ksync调试监督程序146将确认传送给原始内核142(372)。
原始本地内核142中的每一个均接收单独的确认并继续传送该更新的状态信息给用户(例如PFE132A)(374)。具体地,原始本地路由引擎130发布警报以向用户表明存在状态更新。一旦接收到来自用户的请求,原始内核142就基于与该用户相关的各个提交建议和提交标记的位置来传送更新的状态信息。用户接收该更新的状态信息并对他们各自的状态信息做必要的改变。例如,PFE132A可以接收来自原始本地内核142A的更新的状态信息,并更新状态信息162A。
一旦原始本地内核142接收到来自每个请求状态更新的共享用户的确认,它就向主路由引擎126发送确认(376)。一旦主路由引擎126接收到对状态更新的确认,它就可以将该更新出队列(dequeue)。例如,在某些实施例中,主路由引擎126可以删除状态链150中已经被原始主路由引擎126的所有用户(例如,LCC128)确认的那些对象之后的最旧的对象。该删除还可以传播至备用主路由引擎127和本地路由引擎LCC128。在其他实施例中,路由引擎可以维护状态信息对象,直到其由于状态更新而变为过时。
如上所述,多机架路由器120根据限定的“同步梯度”来同步和更新状态信息,从而原始主内核140接收状态更新,随后是备用主内核141,随后是原始本地内核142A,随后是备用本地内核143A,随后是多机架路由器120中的每个机架中的用户。该同步梯度可以确保一旦失败转移,备用路由引擎127和131就包含至少与提供给状态信息的所有用户的状态信息一样新的状态信息。因此,在失败转移的情况下,备用路由引擎127和131可以容易地接管职责,并且如有必要,可以继续用状态信息更新用户。
图6是示出允许不间断转发的多机架路由器中的主路由引擎的典型失败转移的流程图。下面参照图2和图3的多机架路由器120来描述失败转移过程。出于示例目的,首先假设原始主路由引擎126失败(602)。例如,原始主路由引擎126的失败可以由软件失败、硬件失败或管理员将原始主路由引擎126断开导致。由于失败,原始主路由引擎126和原始本地路由引擎130之间的链接也失败(604)。原始本地路由引擎130切断与PFE132的连接(606)。这防止了原始本地路由引擎130不得不将产生的状态更新存储在PFE132中,直到与主路由引擎重新连接。
接下来,原始本地路由引擎130断开与备用主路由引擎127的连接(608)。一旦已经建立了连接,原始本地路由引擎130的每一个就都发送其唯一序列号给备用主路由引擎127(610)。备用主路由引擎127将从原始本地路由引擎130接收的每个序列号与状态链152中用于LCC128的提交建议和提交标记中的序列号相比较(612)。例如,如图4所示,提交建议212对应于LCC128A。如果来自LCC128的序列号各自匹配对应的提交建议或提交标记,则备用主内核141开始将状态更新从提交标记转发给LCC128中的一个(616)。
在很少出现的序列号不匹配的情况下,主路由引擎127发送出错信号给LCC。在出错的情况下,LCC128的一个或多个中的状态链154必须例如通过清除来自LCC的所有的状态信息并重新发送状态链152中的状态信息,与状态链152重新同步(614)。清除所有来自LCC128的一个或多个的状态信息,这可以中断多机架路由器120中的分组转发。在将LCC128的一个或多个复位到已知状态之后,主路由引擎127重新开始状态更新(616)。
以此方式,多机架路由器120在主路由引擎126的失败转移过程中维护分组转发。在本地路由引擎130建立与主路由引擎127的连接时,在失败转移处理过程中,状态更新被临时中断,但是在此期间,多机架路由器120根据已知的状态信息继续发送和接收分组。只有在很少出现的序列号不匹配的情况下,多机架路由器120中的分组转发可能被中断。
在所述失败转移处理将主路由引擎126描述为原始主路由引擎、将主路由引擎127描述为备用主路由引擎时,主路由引擎126和127是基本相似的。就是说,主路由引擎126和127两者都可以用作原始主路由引擎或备用主路由引擎。因此,失败转移还可以通过将多机架路由器120的集中控制从主路由引擎127转移到主路由引擎126而发生。
图7是示出允许不间断转发的多机架路由器中的本地路由引擎的示例性失败转移的流程图。参照图2和图3的多机架路由器120,更具体地,参照LCC128A来描述失败转移过程。出于示例目的,首先假设原始本地路由引擎130A失败(702)。例如,原始本地路由引擎130A的失败可以由软件失败、硬件失败或管理员将原始本地路由引擎130A断开导致。由于失败,原始本地路由引擎130A和原始主路由引擎126之间的连接失败(704)。原始本地路由引擎130A与PFE132A之间的连接也失败(706)。
接下来,备用本地路由引擎131A建立与原始主路由引擎126的连接(708)。一旦已经建立了连接,备用本地路由引擎131A就发送包含在状态链156A中的最新的ksync对象中的序列号给原始主路由引擎126(710)。原始主路由引擎126将该序列号与在提交标记202和提交建议212中的序列号相比较。如果该序列号与提交建议或提交标记匹配,则原始主内核140就从状态链150中跟随在提交标记后的第一对象开始,开始向LCC128A转发状态更新,(716)。
在很少出现的序列号不匹配的情况下,主路由引擎127发送出错信号给备用本地路由引擎131A。在出错的情况下,状态链156必须例如通过从LCC128A清除所有的状态信息(714),与状态链150重新同步。可选地,只有LCC128A可能需要被复位到已知状态。LCC128B-D可以根据他们的状态链150中的提交标记和提交建议继续接收状态更新。复位LCC128A到已知状态,这可能中断多机架路由器120中的分组转发。在将LCC128A复位到已知状态后,主路由引擎126重新开始状态更新(716)。这可能需要来自多机架路由器120的所有进程的请求状态信息。
以此方式,在本地路由引擎130A的失败转移过程中,多机架路由器120维护分组转发。在本地路由引擎130建立了与主路由引擎126的连接时,在失败转移处理过程中,LCC128A的状态更新被临时中断,但是在这期间,LCC128A根据由LCC128A的用户保存的已知的状态信息继续发送和接收分组。只有在很少出现的序列号不匹配的情况下,多机架路由器120中的分组转发可能被中断。
尽管所述失败转移处理将本地路由引擎130A描述为原始本地路由引擎、将本地路由引擎131A描述为备用本地路由引擎,但本地路由引擎130A和131A实质上是相似的。就是说,主路由引擎130A和131A两者都可以用作原始本地路由引擎或备用本地路由引擎。此外,所述本地路由引擎失败转移技术还可应用于包括在每个LCC128中的原始和备用本地路由引擎。
本文中所描述的一种或多种技术可以部分地或全部以软件来实现。例如,计算机可读介质可以存储或可以包括计算机可读指令(即可以由处理器执行的程序代码),以实现上述的一种或多种技术。例如,计算机可读介质可以包括随即存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁或光介质等。
已经描述了本发明的各种实施例。尽管参照多机架路由器(其中,每个机架包括多个路由引擎)进行了描述,但该技术可以应用于在至少一个机架中具有多个控制节点的任何多机架设备。其他的设备实例通常包括交换机、网关、智能集线器、防火墙、工作站、文件服务器、数据库服务器、以及计算设备。此外,所描述的实施例涉及层级数据结构和临时链接数据结构,但其他的实施例可以使用不同的数据结构。这些和其他的实施例都包括在所附权利要求的范围内。
Claims (45)
1.一种方法,用于在具有第一路由引擎、第二路由引擎和第三路由引擎的多机架路由器中分发状态信息,所述方法包括以下步骤:
利用所述第一路由引擎从所述多机架路由器的第三路由引擎接收对所述状态信息的更新;
将所述更新从所述第一路由引擎传送给所述第二路由引擎;以及
将所述更新从所述第一路由引擎传送给所述状态信息的用户,其中所述用户是所述多机架路由器中的部件。
2.根据权利要求1所述的方法,
其中,所述第一路由引擎是用于所述多机架路由器中第一机架的原始路由引擎,所述第二路由引擎是用于所述第一机架的备用路由引擎,
其中,所述第三路由引擎是用于所述多机架路由器的主路由引擎,以及
其中,所述方法还包括以下步骤:响应于失败转移事件,将用于所述第一机架中的状态更新操作的职责由所述第一路由引擎转移至所述第二路由引擎,以及在所述转移过程中基本保持网络功能。
3.根据权利要求2所述的方法,其中,基本保持包括:在所述转发过程中保持数据分组转发功能。
4.根据权利要求1所述的方法,其中,将所述更新传送给第二路由引擎包括:在将所述更新传送给所述状态信息的所述用户之前,根据请求传送所述更新给所述第二路由引擎的命令来传送所述更新。
5.根据权利要求1所述的方法,
其中,根据临时顺序数据结构接收所述更新;以及
其中,将所述更新传送给所述第二路由引擎包括:在所述第二路由引擎中复制所述临时顺序数据结构。
6.根据权利要求5所述的方法,其中,传送所述更新包括:根据
所述数据结构将所述更新传送给所述用户。
7.根据权利要求1所述的方法,还包括:利用提交建议和提交标记来识别所述状态信息部分。
8.根据权利要求7所述的方法,其中,根据所述临时顺序数据结构接收所述更新,其中,利用提交建议和提交标记包括以下步骤:
设置所述提交建议,以识别所述临时顺序数据结构中的发送给所述用户的确认请求的主题的最新对象;以及
设置所述提交标记,以识别所述临时顺序数据结构中的已经被传送给所述用户并已经从所述用户接收到对它的确认的最新对象。
9.根据权利要求7所述的方法,还包括以下步骤:
将所述提交建议和所述提交标记复制到所述第二路由引擎;以及
在所述第一路由引擎失败的情况下,将所述临时顺序数据结构中的在所述复制的提交标记之后的部分从所述第二路由引擎传送给所述用户。
10.根据权利要求9所述的方法,还包括以下步骤:从所述第一路由引擎发起通信,以使所述第二路由引擎设置所述复制的提交建议,来识别所述临时顺序数据结构中的是所述确认请求的主题的最新部分。
11.根据权利要求9所述的方法,还包括以下步骤:从所述第一路由引擎发起通信,以使所述第二路由引擎设置所述复制的提交标记,来识别所述临时顺序数据结构中的已经被传送给所述用户并已经从所述用户接收到对它的确认的最新部分。
12.根据权利要求7所述的方法,还包括以下步骤:发送对所述提交标记之前的最新部分的确认给所述第三路由引擎。
13.根据权利要求1所述的方法,其中,根据临时顺序数据结构接收所述更新,还包括以下步骤:
接收来自所述第三路由引擎的确认请求;以及
在所述临时顺序数据结构中插入标记以存储所述确认请求。
14.根据权利要求13所述的方法,还包括以下步骤:
从所述用户接收对比所述标记旧的所有对象的第一确认;以及
响应于所述确认请求发送第二确认给所述第三路由引擎。
15.根据权利要求13所述的方法,其中,所述标记是对象。
16.根据权利要求1所述的方法,还包括以下步骤:接收指令以删除所述临时顺序数据结构的一部分。
17.根据权利要求1所述的方法,还包括以下步骤:在将所述更新传送给所述用户之前,从所述第二路由引擎接收对所述更新的确认。
18.根据权利要求1所述的方法,其中,所述状态信息包含在一组对象中。
19.根据权利要求18所述的方法,还包括以下步骤:
接收来自所述第二路由引擎的对所述更新的确认;
标记所述数据结构中的对象,以表明所述更新已经由所述第二路由引擎确认。
20.根据权利要求1所述的方法,还包括以下步骤:接收来自所述第三路由引擎的第一确认请求。
21.根据权利要求20所述的方法,还包括以下步骤:接收来自所述第三路由引擎的同步号,其中,所述同步号表示从所述第三路由引擎接收的多个确认请求中的第一确认请求。
22.根据权利要求1所述的方法,还包括以下步骤:对从所述第三路由引擎发送给所述第一路由引擎的确认请求的数量计数。
23.根据权利要求22所述的方法,还包括以下步骤:将表示所述计数的数字写入存储所述确认请求的对象中。
24.根据权利要求1所述的方法,
其中,所述第一路由引擎包括用于所述多机架路由器中的一个机架的原始本地路由引擎,以及
其中,所述第三路由引擎包括用于所述多机架路由器中控制节点的原始主路由引擎。
25.一种多机架路由系统,包括:
第一节点,其具有第一路由引擎和第二路由引擎;以及
第二节点,其具有为所述第二节点的部件的第一用户,
其中,所述第一路由引擎管理状态信息,并在将对所述状态信息的更新传送给所述第一用户之前,将对所述状态信息的更新传送给所述第二路由引擎。
26.根据权利要求25所述的多机架路由系统,其中,所述第一用户将所述更新传送给第二用户。
27.根据权利要求25所述的多机架路由系统,
其中,所述第一用户是所述第二节点的第一路由引擎,
并且其中,所述第二节点还包括第二路由引擎,
其中,在将所述更新传送给第二用户之前,所述第二节点的所述第一路由引擎将所述更新传送给所述第二节点的所述第二路由引擎。
28.根据权利要求27所述的多机架路由系统,
其中,所述第二节点的所述第一路由引擎发起通信,使所述第二节点的所述第二路由引擎设置提交建议,以识别所述状态信息的是发送给所述第二用户的确认请求的主题的最新部分,
其中,所述第一本地路由引擎发起通信,使所述第二本地路由引擎设置提交标记,以识别所述状态信息中的已经被传送给所述用户且已经从所述用户接收到对它的确认的最新部分。
29.根据权利要求28所述的多机架路由系统,
其中,所述第一路由引擎管理临时顺序数据结构中所述状态信息,并通过复制所述第一用户中的所述临时顺序数据结构来传送所述更新,
其中,所述第二节点的所述第一路由引擎复制所述提交
建议和所述提交标记到所述第二节点的所述第二路由引擎,且在所述第二节点的所述第一路由引擎失败的情况下,所述第二节点的所述第二路由引擎将所复制的临时顺序数据结构中在所述提交标记之后的部分传送给所述用户。
30.根据权利要求25所述的多机架路由系统,其中,所述第一路由引擎管理临时顺序数据结构中的所述状态信息,并通过复制所述第一用户中的所述临时顺序数据结构来传送所述更新。
31.根据权利要求30所述的多机架路由系统,其中,所述第一用户根据所述临时顺序数据结构将所述更新传送给第二用户。
32.根据权利要求31所述的多机架路由系统,其中,所述第一用户利用提交建议和提交标记识别所述数据结构中的所述状态信息中已经传送给所述第二用户的所述部分。
33.根据权利要求32所述的多机架路由系统,
其中,所述第一用户设置所述提交建议,以识别所述更新中是发送给所述第二用户的确认请求的主题的最新部分,以及
设置所述提交标记,以识别所述更新中的已经被传送给
所述第二用户且已经从所述第二用户接收到对它的确认的最新部分。
34. 一种计算机可读介质,其包括用于使第一用户执行以下步骤的
指令:
接收来自主路由引擎的状态信息;以及
在将对所述状态信息的更新传送给所述状态信息的第三用户之前,根据请求传送所述更新给第二用户的命令来传送所述更新。
35.根据权利要求34所述的计算机可读介质,其中,所述指令使所述第一用户接收临时顺序数据结构中的状态信息。
36.根据权利要求34所述的计算机可读介质,还包括使所述第一用户执行以下步骤的指令:
接收来自所述第二用户的对所述更新的确认;以及
标记所述数据结构中的对象,以表明所述更新已经被所述第二用户确认。
37.根据权利要求35所述的计算机可读介质,其中所述指令使所述第一用户执行以下步骤:
接收来自所述主路由引擎的确认请求;以及
在所述临时顺序数据结构中插入标记以存储所述确认请求。
38.根据权利要求35所述的计算机可读介质,还包括使所述第一用户删除一部分所述临时顺序数据结构的指令。
39.根据权利要求34所述的计算机可读介质,其中,所述指令使所述第一用户执行以下步骤:
利用所述提交建议来识别所述更新中是发送给所述第三用户的确认请求的主题的最新部分,以及
利用所述提交标记来识别所述更新中已经被传送给所述第三用户且已经从所述第三用户接收到对它的确认的最新部分。
40.根据权利要求39所述的计算机可读介质,
其中,所述指令使所述第一用户接收临时顺序数据结构中的状态信息,
还包括使所述第一用户执行以下步骤的指令:向所述主路由引擎发送对于所述临时顺序数据结构中不受所述提交标记和所述提交建议限制的最旧部分的确认。
41.根据权利要求39所述的计算机可读介质,还包括使所述第一用户执行以下步骤的指令:
将所述提交建议和所述提交标记复制给所述第二用户;以及
在所述第一用户失败的情况下,将所复制的临时顺序数据结构中在所复制的提交标记之后的部分从所述第二用户传送给所述第三用户。
42.根据权利要求34所述的计算机可读介质,其中,所述指令使所述第一用户在将所述更新传送给所述第三用户之前,接收来自所述第二用户的对于所述更新的确认。
43.根据权利要求34所述的计算机可读介质,还包括使所述第一用户向所述第三用户发送第一确认请求的指令。
44.根据权利要求34所述的计算机可读介质,还包括使所述主路由引擎执行以下步骤的指令:
发送同步号给所述第一用户,其中,所述同步号代表由所述主路由引擎发送的多个确认请求中的第一确认请求;以及
对从所述主路由引擎发送给所述第一用户的确认请求的数量计数。
45.根据权利要求34所述的计算机可读介质,其中,所述第一用户是原始本地路由引擎,所述第二路由引擎是备用本地路由引擎。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/292,204 US7804769B1 (en) | 2005-12-01 | 2005-12-01 | Non-stop forwarding in a multi-chassis router |
US11/292,204 | 2005-12-01 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1980192A true CN1980192A (zh) | 2007-06-13 |
CN1980192B CN1980192B (zh) | 2011-10-26 |
Family
ID=37890733
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNU2006201603346U Expired - Lifetime CN201075870Y (zh) | 2005-12-01 | 2006-12-01 | 多机架路由器 |
CN2006101609135A Expired - Fee Related CN1980192B (zh) | 2005-12-01 | 2006-12-01 | 多机架路由器中的不间断转发 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNU2006201603346U Expired - Lifetime CN201075870Y (zh) | 2005-12-01 | 2006-12-01 | 多机架路由器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7804769B1 (zh) |
EP (1) | EP1793542B1 (zh) |
CN (2) | CN201075870Y (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743692A (zh) * | 2014-12-31 | 2016-07-06 | 瞻博网络公司 | 用于应用管理的基于策略的框架 |
CN107426099A (zh) * | 2017-08-30 | 2017-12-01 | 阳光凯讯(北京)科技有限公司 | 多机箱链路聚合流量重分布时的报文保序方法及系统 |
CN108848197A (zh) * | 2018-09-19 | 2018-11-20 | 江苏瑞中数据股份有限公司 | 一种文件传输的方法与系统 |
CN115150317A (zh) * | 2022-06-22 | 2022-10-04 | 杭州迪普科技股份有限公司 | 路由表项下发方法、装置、电子设备及计算机可读介质 |
CN117395189A (zh) * | 2023-12-08 | 2024-01-12 | 新华三技术有限公司 | 一种路由处理方法及装置 |
Families Citing this family (58)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7739403B1 (en) * | 2003-10-03 | 2010-06-15 | Juniper Networks, Inc. | Synchronizing state information between control units |
US8354427B2 (en) * | 2004-06-24 | 2013-01-15 | Vertex Pharmaceutical Incorporated | Modulators of ATP-binding cassette transporters |
US7747999B1 (en) | 2005-09-26 | 2010-06-29 | Juniper Networks, Inc. | Software installation in a multi-chassis network device |
US7518986B1 (en) * | 2005-11-16 | 2009-04-14 | Juniper Networks, Inc. | Push-based hierarchical state propagation within a multi-chassis network device |
US7804769B1 (en) * | 2005-12-01 | 2010-09-28 | Juniper Networks, Inc. | Non-stop forwarding in a multi-chassis router |
US8787250B2 (en) | 2008-05-15 | 2014-07-22 | Telsima Corporation | Systems and methods for distributed data routing in a wireless network |
WO2009146383A1 (en) | 2008-05-28 | 2009-12-03 | Harris Stratex Networks Operating Corporation | Systems and methods for data path control in a wireless network |
EP2430563A4 (en) * | 2009-05-13 | 2013-10-09 | Aviat Networks Inc | SYSTEMS AND METHODS FOR FRACTIONAL ROUTING REDUNDANCY |
JP5503190B2 (ja) * | 2009-05-20 | 2014-05-28 | アズビル株式会社 | 通信システム |
CN101645768B (zh) * | 2009-09-08 | 2013-02-27 | 中兴通讯股份有限公司 | 一种路由器及其主备倒换的方法 |
US9274851B2 (en) | 2009-11-25 | 2016-03-01 | Brocade Communications Systems, Inc. | Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines |
US8406125B2 (en) | 2010-03-19 | 2013-03-26 | Brocade Communications Systems, Inc. | Synchronization of multicast information using incremental updates |
US8769155B2 (en) | 2010-03-19 | 2014-07-01 | Brocade Communications Systems, Inc. | Techniques for synchronizing application object instances |
US20110239209A1 (en) * | 2010-03-23 | 2011-09-29 | Fujitsu Limted | System and methods for remote maintenance in an electronic network with multiple clients |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
US8495418B2 (en) | 2010-07-23 | 2013-07-23 | Brocade Communications Systems, Inc. | Achieving ultra-high availability using a single CPU |
US8799422B1 (en) * | 2010-08-16 | 2014-08-05 | Juniper Networks, Inc. | In-service configuration upgrade using virtual machine instances |
US8799419B1 (en) | 2010-08-16 | 2014-08-05 | Juniper Networks, Inc. | Configuration update on virtual control plane |
US8498299B2 (en) | 2010-08-19 | 2013-07-30 | Juniper Networks, Inc. | Flooding-based routing protocol having average-rate and burst-rate control |
US8351438B2 (en) | 2010-08-19 | 2013-01-08 | Juniper Networks, Inc. | Flooding-based routing protocol having database pruning and rate-controlled state refresh |
SG189130A1 (en) | 2010-09-29 | 2013-05-31 | Aviat Networks Inc | Systems and methods for distributed data routing in a wireless network |
US10033585B2 (en) * | 2010-12-15 | 2018-07-24 | Juniper Networks, Inc. | Methods and apparatus related to a switch fabric system having a multi-hop distributed control plane and a single-hop data plane |
CN102239669B (zh) * | 2011-01-14 | 2015-01-21 | 华为技术有限公司 | 一种数据转发方法和路由器 |
US9143335B2 (en) | 2011-09-16 | 2015-09-22 | Brocade Communications Systems, Inc. | Multicast route cache system |
US9021459B1 (en) | 2011-09-28 | 2015-04-28 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual control units of a network device |
US8806266B1 (en) | 2011-09-28 | 2014-08-12 | Juniper Networks, Inc. | High availability using full memory replication between virtual machine instances on a network device |
US8943489B1 (en) | 2012-06-29 | 2015-01-27 | Juniper Networks, Inc. | High availability in-service software upgrade using virtual machine instances in dual computing appliances |
US9288140B2 (en) | 2012-07-09 | 2016-03-15 | Coriant Operations, Inc. | Multichassis failover and recovery for MLPPP wireless backhaul |
US10581763B2 (en) | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
US9203690B2 (en) | 2012-09-24 | 2015-12-01 | Brocade Communications Systems, Inc. | Role based multicast messaging infrastructure |
US9036476B2 (en) * | 2012-09-28 | 2015-05-19 | Juniper Networks, Inc. | Maintaining load balancing after service application with a network device |
US9361192B2 (en) * | 2012-10-19 | 2016-06-07 | Oracle International Corporation | Method and apparatus for restoring an instance of a storage server |
CN103152260B (zh) * | 2013-02-21 | 2019-02-15 | 中兴通讯股份有限公司 | 报文转发系统、方法及装置 |
CN103139315A (zh) * | 2013-03-26 | 2013-06-05 | 烽火通信科技股份有限公司 | 一种适用于家庭网关的应用层协议解析方法 |
US9491092B1 (en) * | 2014-09-30 | 2016-11-08 | Juniper Networks, Inc. | Apparatus, system, and method for preventing unintentional forwarding reconfiguration in network environments |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
US10193958B2 (en) | 2014-12-31 | 2019-01-29 | Juniper Networks, Inc. | Policy based framework for application management in distributed systems |
EP3248097B1 (en) * | 2015-01-20 | 2022-02-09 | Ultrata LLC | Object memory data flow instruction execution |
CN107533518B (zh) | 2015-01-20 | 2020-09-18 | 乌尔特拉塔有限责任公司 | 用于容错对象存储器结构的分布式索引 |
US9971542B2 (en) | 2015-06-09 | 2018-05-15 | Ultrata, Llc | Infinite memory fabric streams and APIs |
US10698628B2 (en) | 2015-06-09 | 2020-06-30 | Ultrata, Llc | Infinite memory fabric hardware implementation with memory |
US9886210B2 (en) | 2015-06-09 | 2018-02-06 | Ultrata, Llc | Infinite memory fabric hardware implementation with router |
US10855515B2 (en) * | 2015-10-30 | 2020-12-01 | Netapp Inc. | Implementing switchover operations between computing nodes |
US10248337B2 (en) | 2015-12-08 | 2019-04-02 | Ultrata, Llc | Object memory interfaces across shared links |
US10241676B2 (en) | 2015-12-08 | 2019-03-26 | Ultrata, Llc | Memory fabric software implementation |
EP3387547B1 (en) | 2015-12-08 | 2023-07-05 | Ultrata LLC | Memory fabric software implementation |
CA3006776A1 (en) | 2015-12-08 | 2017-06-15 | Ultrata, Llc. | Memory fabric operations and coherency using fault tolerant objects |
US9960953B2 (en) * | 2016-01-26 | 2018-05-01 | Gigamon Inc. | Bypass switch for redundant in-line network switch appliance |
US11075806B1 (en) | 2016-06-30 | 2021-07-27 | Juniper Networks, Inc. | Hierarchical naming scheme for state propagation within network devices |
US11316775B2 (en) * | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Maintaining coherency in distributed operating systems for network devices |
US10887173B2 (en) * | 2016-12-21 | 2021-01-05 | Juniper Networks, Inc. | Communicating state information in distributed operating systems |
US11316744B2 (en) * | 2016-12-21 | 2022-04-26 | Juniper Networks, Inc. | Organizing execution of distributed operating systems for network devices |
US10541876B2 (en) | 2017-02-14 | 2020-01-21 | Nicira, Inc. | Inter-connecting logical control planes for state data exchange |
CN108667509B (zh) * | 2018-03-22 | 2020-04-14 | 新华三技术有限公司 | 集群加入方法、装置及集群设备 |
US10721159B2 (en) * | 2018-04-25 | 2020-07-21 | Hewlett Packard Enterprise Development Lp | Rebuilt flow events |
US11095742B2 (en) | 2019-03-27 | 2021-08-17 | Juniper Networks, Inc. | Query proxy for delivery of dynamic system state |
US11563671B2 (en) * | 2020-06-24 | 2023-01-24 | Juniper Networks, Inc. | Routing engine switchover based on health determined by support vector machine |
Family Cites Families (110)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5454080A (en) | 1992-02-10 | 1995-09-26 | International Business Machines Corporation | Removable hard disk drive system with circuit for hot insertion and removal responsive to contacts of zero-insertion-force connector on the lateral side of the drive |
US5781715A (en) | 1992-10-13 | 1998-07-14 | International Business Machines Corporation | Fault-tolerant bridge/router with a distributed switch-over mechanism |
GB2281644A (en) | 1993-09-02 | 1995-03-08 | Ibm | Fault tolerant transaction-oriented data processing. |
US5684984A (en) | 1994-09-29 | 1997-11-04 | Apple Computer, Inc. | Synchronization and replication of object databases |
US6285679B1 (en) | 1997-08-22 | 2001-09-04 | Avici Systems, Inc. | Methods and apparatus for event-driven routing |
US6370145B1 (en) | 1997-08-22 | 2002-04-09 | Avici Systems | Internet switch router |
US6229814B1 (en) | 1997-10-16 | 2001-05-08 | Adtran, Inc. | Digital switch-resistant multi-circuit line card providing direct connection to remote terminal |
JP3286584B2 (ja) * | 1997-11-20 | 2002-05-27 | 株式会社日立製作所 | 多重化ルータ装置 |
JPH11194993A (ja) | 1998-01-06 | 1999-07-21 | Alps Electric Co Ltd | Usbコントローラ |
US6161151A (en) | 1998-01-30 | 2000-12-12 | Object Technology Licensing Corporation | Object-oriented global resource conflict resolver formatting resource requirements into a predetermined standard format and iteratively computing a resource assignment for each I/O function |
GB2336698A (en) | 1998-04-24 | 1999-10-27 | Dialog Corp Plc The | Automatic content categorisation of text data files using subdivision to reduce false classification |
US6980543B1 (en) | 1998-06-19 | 2005-12-27 | Juniper Networks, Inc. | Interconnect network for operation within a communication node |
US6633544B1 (en) * | 1998-06-24 | 2003-10-14 | At&T Corp. | Efficient precomputation of quality-of-service routes |
US6219706B1 (en) | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
US6898189B1 (en) | 2000-08-23 | 2005-05-24 | Cisco Technology, Inc. | Restartable spanning tree for high availability network systems |
US6597689B1 (en) | 1998-12-30 | 2003-07-22 | Nortel Networks Limited | SVC signaling system and method |
US6253266B1 (en) | 1999-02-19 | 2001-06-26 | Inet Technologies, Inc. | Apparatus and method for controlling information flow in a card cage having multiple backplanes |
US6587470B1 (en) | 1999-03-22 | 2003-07-01 | Cisco Technology, Inc. | Flexible cross-connect with data plane |
US6751191B1 (en) | 1999-06-29 | 2004-06-15 | Cisco Technology, Inc. | Load sharing and redundancy scheme |
US6594229B1 (en) | 1999-12-14 | 2003-07-15 | Samsung Electronics Co., Ltd. | Data synchronization system for redundant packet routing architecture and method of operation |
US6983317B1 (en) | 2000-02-28 | 2006-01-03 | Microsoft Corporation | Enterprise management system |
US6594721B1 (en) | 2000-02-29 | 2003-07-15 | Hewlett-Packard Development Company, L.P. | Surprise hot bay swapping of IDE/ATAPI devices |
WO2001084338A2 (en) | 2000-05-02 | 2001-11-08 | Sun Microsystems, Inc. | Cluster configuration repository |
WO2001084313A2 (en) | 2000-05-02 | 2001-11-08 | Sun Microsystems, Inc. | Method and system for achieving high availability in a networked computer system |
US6880086B2 (en) | 2000-05-20 | 2005-04-12 | Ciena Corporation | Signatures for facilitating hot upgrades of modular software components |
US6618805B1 (en) | 2000-06-30 | 2003-09-09 | Sun Microsystems, Inc. | System and method for simplifying and managing complex transactions in a distributed high-availability computer system |
US6799319B2 (en) | 2000-07-17 | 2004-09-28 | Sun Microsystems, Inc. | Method and apparatus for application packages and delegate packages to adopt and export standard execution state machine interfaces |
US6865737B1 (en) | 2000-08-23 | 2005-03-08 | Microsoft Corporation | Remote software installation and maintenance |
US7054924B1 (en) | 2000-09-29 | 2006-05-30 | Cisco Technology, Inc. | Method and apparatus for provisioning network devices using instructions in extensible markup language |
US6711357B1 (en) * | 2000-10-31 | 2004-03-23 | Chiaro Networks Ltd. | Timing and synchronization for an IP router using an optical switch |
US6910148B1 (en) * | 2000-12-07 | 2005-06-21 | Nokia, Inc. | Router and routing protocol redundancy |
KR100449497B1 (ko) | 2000-12-21 | 2004-09-21 | 주식회사 매직아이 | 실시간 정보 제공 장치 및 그 처리 방법 |
US6816936B1 (en) | 2001-01-02 | 2004-11-09 | Juniper Networks, Inc. | Hot-swappable router interface card with stable power on/off procedure |
US20020103921A1 (en) | 2001-01-31 | 2002-08-01 | Shekar Nair | Method and system for routing broadband internet traffic |
US20020147974A1 (en) | 2001-02-09 | 2002-10-10 | Wookey Michael J. | Networked installation system for deploying systems management platforms |
FI20010267A0 (fi) | 2001-02-13 | 2001-02-13 | Stonesoft Oy | Tietoturvagatewayn tilatietojen synkronointi |
US20020133400A1 (en) | 2001-03-13 | 2002-09-19 | Boomerangmarketing.Com Incorporated | Systems and methods for internet reward service |
US7164676B1 (en) | 2001-03-21 | 2007-01-16 | Cisco Technology, Inc. | Method and apparatus for a combined bulk and transactional database synchronous scheme |
US7072946B2 (en) | 2001-05-31 | 2006-07-04 | Juniper Networks, Inc. | Network router management interface with API invoked via login stream |
US7054901B2 (en) | 2001-05-31 | 2006-05-30 | Juniper Networks, Inc. | Network management interface with selective rendering of output |
US6671694B2 (en) | 2001-06-04 | 2003-12-30 | Hewlett-Packard Development Company, L.P. | System for and method of cache-efficient digital tree with rich pointers |
JP3943865B2 (ja) | 2001-06-05 | 2007-07-11 | 株式会社日立製作所 | コンピュータ装置および診断方法 |
US6948088B1 (en) * | 2001-06-13 | 2005-09-20 | Cisco Technology, Inc. | Methods and apparatus for efficient transaction processing on redundant systems |
US7159017B2 (en) | 2001-06-28 | 2007-01-02 | Fujitsu Limited | Routing mechanism for static load balancing in a partitioned computer system with a fully connected network |
GB2380004A (en) | 2001-07-27 | 2003-03-26 | Virtual Access Ireland Ltd | A configuration and management development system for a netwok of devices |
US7046683B1 (en) | 2001-07-31 | 2006-05-16 | Cisco Technology, Inc. | VoIP over access network |
US7146448B2 (en) | 2001-09-28 | 2006-12-05 | Dot Hill Systems Corporation | Apparatus and method for adopting an orphan I/O port in a redundant storage controller |
US6981173B2 (en) | 2001-09-28 | 2005-12-27 | Hewlett-Packard Development Company, L.P. | Redundant memory sequence and fault isolation |
US20030147376A1 (en) | 2001-10-04 | 2003-08-07 | Avici Systems, Inc. | Rack mounted routers |
FR2831743B1 (fr) | 2001-10-25 | 2004-01-30 | Cit Alcatel | Systeme de routage is-is tolerant aux fautes et procede correspondant |
US7274702B2 (en) | 2001-11-27 | 2007-09-25 | 4198638 Canada Inc. | Programmable interconnect system for scalable router |
US20030217096A1 (en) | 2001-12-14 | 2003-11-20 | Mckelvie Samuel J. | Agent based application using data synchronization |
US7117311B1 (en) | 2001-12-19 | 2006-10-03 | Intel Corporation | Hot plug cache coherent interface method and apparatus |
US7111035B2 (en) | 2001-12-26 | 2006-09-19 | Hewlett-Packard Development Company, L.P. | Fault tolerance associations for IP transport protocols |
US7054926B1 (en) | 2002-01-23 | 2006-05-30 | Cisco Technology, Inc. | Method and apparatus for managing network devices using a parsable string that conforms to a specified grammar |
US7076555B1 (en) | 2002-01-23 | 2006-07-11 | Novell, Inc. | System and method for transparent takeover of TCP connections between servers |
US7739393B2 (en) | 2002-01-28 | 2010-06-15 | Cisco Technology, Inc. | Apparatus and method for restoring traffic during failover in a cable head end |
US7145871B2 (en) | 2002-03-02 | 2006-12-05 | At&T Corp. | Automatic router configuration based on traffic and service level agreements |
US6941487B1 (en) * | 2002-03-07 | 2005-09-06 | Riverstone Networks, Inc. | Method, system, and computer program product for providing failure protection in a network node |
US7209449B2 (en) | 2002-03-27 | 2007-04-24 | Intel Corporation | Systems and methods for updating routing and forwarding information |
US7406038B1 (en) | 2002-04-05 | 2008-07-29 | Ciphermax, Incorporated | System and method for expansion of computer network switching system without disruption thereof |
US20030200330A1 (en) | 2002-04-22 | 2003-10-23 | Maxxan Systems, Inc. | System and method for load-sharing computer network switch |
US7430735B1 (en) | 2002-05-07 | 2008-09-30 | Lucent Technologies Inc. | Method, system, and computer program product for providing a software upgrade in a network node |
US6965903B1 (en) | 2002-05-07 | 2005-11-15 | Oracle International Corporation | Techniques for managing hierarchical data with link attributes in a relational database |
US20050216910A1 (en) | 2002-05-23 | 2005-09-29 | Benoit Marchand | Increasing fault-tolerance and minimizing network bandwidth requirements in software installation modules |
US7263091B1 (en) | 2002-05-23 | 2007-08-28 | Juniper Networks, Inc. | Scalable routing system |
US7499447B2 (en) * | 2002-06-04 | 2009-03-03 | Alcaltel-Lucent Usa Inc. | Synchronizing multiple instances of a forwarding information base (FIB) using sequence numbers |
US7275081B1 (en) | 2002-06-10 | 2007-09-25 | Juniper Networks, Inc. | Managing state information in a computing environment |
US6966058B2 (en) | 2002-06-12 | 2005-11-15 | Agami Systems, Inc. | System and method for managing software upgrades in a distributed computing system |
MXPA04012990A (es) | 2002-06-21 | 2005-05-16 | Thomson Licensing Sa | Enrutador de transmision linealmente expansible completamente redundante. |
CN100583807C (zh) * | 2002-06-21 | 2010-01-20 | 汤姆森特许公司 | 具有公共时钟的多机架广播路由器 |
US7155632B2 (en) | 2002-06-27 | 2006-12-26 | Nokia, Inc. | Method and system for implementing IS-IS protocol redundancy |
US20040030766A1 (en) | 2002-08-12 | 2004-02-12 | Michael Witkowski | Method and apparatus for switch fabric configuration |
US7233975B1 (en) | 2002-08-19 | 2007-06-19 | Juniper Networks, Inc. | Private configuration of network devices |
US7076696B1 (en) | 2002-08-20 | 2006-07-11 | Juniper Networks, Inc. | Providing failover assurance in a device |
US7096383B2 (en) * | 2002-08-29 | 2006-08-22 | Cosine Communications, Inc. | System and method for virtual router failover in a network routing system |
US7269133B2 (en) * | 2002-09-03 | 2007-09-11 | Jeremy Benjamin | IS-IS high availability design |
US7146640B2 (en) | 2002-09-05 | 2006-12-05 | Exobox Technologies Corp. | Personal computer internet security system |
US7069354B2 (en) | 2002-10-01 | 2006-06-27 | Hewlett-Packard Development Company, L.P. | Method and apparatus for identifying multiple paths to a SCSI device using a calculated unique identifier |
US20040062196A1 (en) | 2002-10-01 | 2004-04-01 | Avici Systems, Inc. | Single shelf router |
US7155534B1 (en) | 2002-10-03 | 2006-12-26 | Cisco Technology, Inc. | Arrangement for aggregating multiple router configurations into a single router configuration |
US7154902B1 (en) | 2002-10-21 | 2006-12-26 | Force10 Networks, Inc. | Epoch-based packet switching |
DE10307548A1 (de) | 2003-02-21 | 2004-09-09 | Infineon Technologies Ag | Synchrones Speichersystem sowie Verfahren und Protokoll zur Kommunikation in einem synchronen Speichersystem |
US7114096B2 (en) | 2003-04-02 | 2006-09-26 | International Business Machines Corporation | State recovery and failover of intelligent network adapters |
US7827248B2 (en) | 2003-06-13 | 2010-11-02 | Randy Oyadomari | Discovery and self-organization of topology in multi-chassis systems |
US7369561B2 (en) | 2003-07-17 | 2008-05-06 | Samsung Electronics Co., Ltd. | Apparatus and method for route summarization and distribution in a massively parallel router |
US7447208B2 (en) | 2003-08-04 | 2008-11-04 | Intel Corporation | Configuration access mechanism for packet switching architecture |
US7178052B2 (en) | 2003-09-18 | 2007-02-13 | Cisco Technology, Inc. | High availability virtual switch |
US20050063308A1 (en) | 2003-09-24 | 2005-03-24 | Wise Jeffrey L. | Method of transmitter oriented link flow control |
US7739403B1 (en) | 2003-10-03 | 2010-06-15 | Juniper Networks, Inc. | Synchronizing state information between control units |
US7461374B1 (en) | 2003-12-01 | 2008-12-02 | Cisco Technology, Inc. | Dynamic installation and activation of software packages in a distributed networking device |
JP4058014B2 (ja) * | 2004-04-08 | 2008-03-05 | 株式会社日立製作所 | パケット転送装置 |
US7512830B2 (en) | 2004-05-14 | 2009-03-31 | International Business Machines Corporation | Management module failover across multiple blade center chassis |
US7779404B2 (en) | 2004-06-10 | 2010-08-17 | Cisco Technology, Inc. | Managing network device configuration using versioning and partitioning |
US7411925B2 (en) | 2004-07-02 | 2008-08-12 | Cisco Technology, Inc. | Network route processor using state-based switchover |
US8730976B2 (en) | 2004-08-17 | 2014-05-20 | Cisco Technology, Inc. | System and method for preventing erroneous link aggregation due to component relocation |
US20060056285A1 (en) * | 2004-09-16 | 2006-03-16 | Krajewski John J Iii | Configuring redundancy in a supervisory process control system |
US7277018B2 (en) | 2004-09-17 | 2007-10-02 | Incident Alert Systems, Llc | Computer-enabled, networked, facility emergency notification, management and alarm system |
US7760653B2 (en) | 2004-10-26 | 2010-07-20 | Riverbed Technology, Inc. | Stackable aggregation for connection based anomaly detection |
WO2006093929A2 (en) | 2005-02-28 | 2006-09-08 | Blade Network Technologies, Inc. | Blade server system with rack-switch |
KR20060098657A (ko) * | 2005-03-03 | 2006-09-19 | 한국과학기술연구원 | 생화학 경로의 모델링과 시뮬레이션 방법 및 시스템 |
US7747234B2 (en) | 2005-04-04 | 2010-06-29 | Broadcom Corporation | Gain control in a multiple RF transceiver integrated circuit |
US7792017B2 (en) | 2005-06-24 | 2010-09-07 | Infinera Corporation | Virtual local area network configuration for multi-chassis network element |
US20070006056A1 (en) | 2005-06-30 | 2007-01-04 | Lucent Technologies Inc. | Method and apparatus for enabling multipoint bus access |
US7606241B1 (en) | 2005-08-12 | 2009-10-20 | Juniper Networks, Inc. | Extending standalone router syntax to multi-chassis routers |
US7552262B1 (en) | 2005-08-31 | 2009-06-23 | Juniper Networks, Inc. | Integration of an operative standalone router into a multi-chassis router |
US7747999B1 (en) | 2005-09-26 | 2010-06-29 | Juniper Networks, Inc. | Software installation in a multi-chassis network device |
US7518986B1 (en) | 2005-11-16 | 2009-04-14 | Juniper Networks, Inc. | Push-based hierarchical state propagation within a multi-chassis network device |
US7804769B1 (en) | 2005-12-01 | 2010-09-28 | Juniper Networks, Inc. | Non-stop forwarding in a multi-chassis router |
US8050559B2 (en) | 2006-08-21 | 2011-11-01 | Juniper Networks, Inc. | Multi-chassis router with multiplexed optical interconnects |
-
2005
- 2005-12-01 US US11/292,204 patent/US7804769B1/en not_active Expired - Fee Related
-
2006
- 2006-11-27 EP EP06256057A patent/EP1793542B1/en not_active Not-in-force
- 2006-12-01 CN CNU2006201603346U patent/CN201075870Y/zh not_active Expired - Lifetime
- 2006-12-01 CN CN2006101609135A patent/CN1980192B/zh not_active Expired - Fee Related
-
2010
- 2010-09-23 US US12/889,209 patent/US8483048B2/en not_active Expired - Fee Related
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743692A (zh) * | 2014-12-31 | 2016-07-06 | 瞻博网络公司 | 用于应用管理的基于策略的框架 |
CN105743692B (zh) * | 2014-12-31 | 2020-07-17 | 瞻博网络公司 | 用于应用管理的基于策略的框架 |
CN107426099A (zh) * | 2017-08-30 | 2017-12-01 | 阳光凯讯(北京)科技有限公司 | 多机箱链路聚合流量重分布时的报文保序方法及系统 |
CN108848197A (zh) * | 2018-09-19 | 2018-11-20 | 江苏瑞中数据股份有限公司 | 一种文件传输的方法与系统 |
CN108848197B (zh) * | 2018-09-19 | 2021-06-08 | 江苏瑞中数据股份有限公司 | 一种文件传输的方法与系统 |
CN115150317A (zh) * | 2022-06-22 | 2022-10-04 | 杭州迪普科技股份有限公司 | 路由表项下发方法、装置、电子设备及计算机可读介质 |
CN115150317B (zh) * | 2022-06-22 | 2023-09-12 | 杭州迪普科技股份有限公司 | 路由表项下发方法、装置、电子设备及计算机可读介质 |
CN117395189A (zh) * | 2023-12-08 | 2024-01-12 | 新华三技术有限公司 | 一种路由处理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
EP1793542A3 (en) | 2010-07-21 |
EP1793542A2 (en) | 2007-06-06 |
CN1980192B (zh) | 2011-10-26 |
EP1793542B1 (en) | 2013-02-27 |
CN201075870Y (zh) | 2008-06-18 |
US20110013508A1 (en) | 2011-01-20 |
US7804769B1 (en) | 2010-09-28 |
US8483048B2 (en) | 2013-07-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1980192B (zh) | 多机架路由器中的不间断转发 | |
US7518986B1 (en) | Push-based hierarchical state propagation within a multi-chassis network device | |
US8799511B1 (en) | Synchronizing state information between control units | |
US7490161B2 (en) | Method and system for implementing OSPF redundancy | |
US5781715A (en) | Fault-tolerant bridge/router with a distributed switch-over mechanism | |
US7392424B2 (en) | Router and routing protocol redundancy | |
CN1954559B (zh) | 网络节点群集的冗余路由能力 | |
US6230281B1 (en) | Geographic redundancy protection method and apparatus for a communications network | |
US7549078B2 (en) | Redundancy in routing devices | |
US7590760B1 (en) | Hybrid interface synchronization method and driver-client model for high availability systems | |
US20190173596A1 (en) | Method for fast reconfiguration of gm clocks in the tsn network by means of an explicit teardown message | |
JP3407016B2 (ja) | 網管理システム | |
US7184394B2 (en) | Routing system providing continuity of service for the interfaces associated with neighboring networks | |
JP4299928B2 (ja) | 分散監視制御システム及び方法並びに分散監視制御用ソフトウェアを記録した記録媒体 | |
JP2011002970A (ja) | 分散データ管理システム、データ管理装置、データ管理方法、およびプログラム | |
JP5331247B2 (ja) | 通信システム及び方法、網管理装置、及び、通信装置 | |
JP2007249659A (ja) | システム切替方法、その計算機システム及びプログラム | |
CN100407620C (zh) | 一种基于分组网络实现软交换异地容灾的装置 | |
CN100413261C (zh) | 数据恢复的方法和系统 | |
JP2000122982A (ja) | 多階層クライアントサーバシステム | |
JPH11312111A (ja) | データベース復旧方法及びデータベース管理システム | |
JP2014026587A (ja) | 分散データベースシステム、分散データベースシステムの第1データベース装置、分散データベースシステムの第2データベース装置およびコンピュータプログラム | |
JP3541337B2 (ja) | ネットワーク管理システム及びネットワーク構成情報管理方法 | |
KR0174603B1 (ko) | 교환기의 데이타 베이스 복원방법 | |
CN115633046A (zh) | Kafka高可用方案优化方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CP01 | Change in the name or title of a patent holder |
Address after: California, USA Patentee after: Juniper Networks, Inc. Address before: California, USA Patentee before: Jungle network |
|
CP01 | Change in the name or title of a patent holder | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111026 Termination date: 20201201 |
|
CF01 | Termination of patent right due to non-payment of annual fee |