CN103535016A - 从活跃tcp应用到备用tcp应用的无中断切换 - Google Patents
从活跃tcp应用到备用tcp应用的无中断切换 Download PDFInfo
- Publication number
- CN103535016A CN103535016A CN201280022334.8A CN201280022334A CN103535016A CN 103535016 A CN103535016 A CN 103535016A CN 201280022334 A CN201280022334 A CN 201280022334A CN 103535016 A CN103535016 A CN 103535016A
- Authority
- CN
- China
- Prior art keywords
- app
- module
- standby
- enlivening
- tcp
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- 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
- H04L45/583—Stackable 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/02—Topology update or discovery
-
- 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/02—Topology update or discovery
- H04L45/033—Topology update or discovery by updating distance vector protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Small-Scale Networks (AREA)
- Telephonic Communication Services (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明的实施例包含用于在网络元件中维持活跃控制卡与备用控制卡之间的活跃-备用关系的方法。网络元件在活跃控制卡处接收来自远程对等体的数据。网络元件将数据从活跃TCP模块通信到活跃控制卡中的活跃应用模块。网络元件将同步数据从活跃应用模块通信到备用控制卡上的备用应用模块。网络元件将应用同步确认从备用应用模块通信到活跃APP模块。网络元件响应于接收应用同步确认而将应用确认分组从活跃应用模块通信到活跃TCP模块。然后网络元件响应于应用确认而将确认通信到远程对等体。
Description
技术领域
本发明的实施例通常涉及网络元件中的活跃-备用系统的领域并且更特别地涉及网络元件中的活跃-备用系统中的无中断切换(hitless switchover)。
背景技术
传送控制协议(TCP)是在各种文献(例如因特网工程任务组(IETF)请求注解(RFC)793,“DARPA因特网程序协议规格”,1981年9月,以及IETF RFC 1122,“因特网主机通信层的要求”,1989年10月)中描述的可靠传输协议。计算机上的应用程序使用TCP来与位于远程计算机上的另一应用程序发送和接收数据。TCP使用因特网协议(IP)将分组中的数据发送到其目的地。IP沿着其自己选择的路径而将分组输送到正确的目的地。IP可未能输送少量的分组或它可以按与它们之前发送不同的次序来输送少量的分组。TCP将序列号指派给它发送的数据的每个字节。接收TCP可以使用序列号来重新排序所接收的数据以按与它们之前发送相同的次序将它们输送到接收计算机上的应用程序。接收TCP也使用序列号来检测丢失的数据并且使发送器TCP重传它们。随着TCP接收器接收数据,它将偶尔将确认发送回TCP发送器。确认包含序列号。这指示接收器已经成功接收直到经确认的序列号的所有排序的数据。然后TCP接收器将输送所接收的数据到其应用进程。响应于接收确认,TCP发送器将从其重传列表中移除经确认的数据。重传列表是用于TCP发送器上的已传送数据的临时存储。由于应用进程要求TCP发送数据,因此发送TCP同时地将那个数据放到其重传列表。在如各种RFC中规定的某些时间中,如果TCP发送器未收到已发送数据的确认,则它将重传在重传列表上的数据。以此方式,即使IP丢失某数据,TCP也可以恢复它。
实现计算机应用程序的高可靠性的一种方式是使用活跃-备用方法。可以利用两个完整功能计算机来建立单个备用-活跃计算机系统。一个功能计算机被称为活跃计算机并且另一个被称为备用计算机。活跃计算机正常工作并且备用计算机等待接管操作(当并且如果活跃计算机故障时)。当备用接管时的行为被称为切换。在切换后,备用计算机变为活跃计算机。旧的活跃计算机不再在备用-活跃计算机系统中起作用。旧的活跃计算机可在以后的时间(例如在修复或复位之后)重新加入备用-活跃计算机系统。旧的活跃计算机可重新加入备用-活跃计算机系统,取回活跃计算机的角色或承担备用计算机的角色。
如果备用计算机可以切换而不引起中断,则切换被称为无中断切换。在此情况下,与备用-活跃计算机系统交互的其它计算机系统将此冗余计算机系统视为单个计算机并且不检测故障或切换事件。因此,可以修复故障而不影响备用-活跃计算机与其它计算机的交互。对于无中断的切换,备用计算机必须与活跃计算机通信来追踪活跃计算机的进展并且保存在活跃计算机上创建的所有必要数据。
在故障时,备用计算机可不具有来自活跃计算机的所有数据,这是因为在所有数据可以从活跃计算机发送到备用计算机之前活跃计算机与备用计算机之间的通信可已经发生故障。在此情况下,备用计算机必须恢复丢失的数据用于无中断切换。
存在着用于TCP进程的方法来实现无中断切换。然而,那些方法忽视使用TCP的应用进程。方法在发送确认到远程TCP对等体之前将把从活跃TCP进来的TCP数据发送到备用TCP进程。活跃TCP将把所接收的数据传递到活跃应用。然后应用将处理它并且可能把一些已更新的状态发送到其备用应用来同步已更新的状态。备用应用将也从备用TCP接收相同的数据并且更新其自己的状态。应用进程典型地处理来自除了TCP连接之外的来源的输入。利用现存的解决方案,保持其它输入的处理和在活跃计算机与备用计算机之间同步的TCP输入是复杂和易错的。
关于TCP输出数据,在现存的解决方案中,活跃TCP将在把外出的数据发出到远程TCP对等体之前将其发送到备用TCP。这允许备用TCP在切换和失败的传送的情况下重传外出的数据。然而,对于备用应用而言,在切换时精确地知道已经发送以及未发送什么活跃应用是复杂和易错的。一些应用能够在应用层上重传外出的数据而不引起应用的中断。一些(例如文件传输协议(FTP)或回显服务器)不能重传已经成功传送的应用数据而不引起应用的中断。即使当应用可以在切换中承担重传某数据时,它很难知道要安全地重传多少数据。
因此,合意的是提供机制用于TCP和应用程序通过允许备用应用更准确地追踪活跃应用和进来的/外出的TCP传送的状态而以简单无中断切换的方式交互。
发明内容
本发明的实施例包含在网络元件中执行的用于维持活跃控制卡与备用控制卡之间的活跃-备用关系的方法。网络元件在活跃控制卡中的活跃传送控制协议(“TCP”)模块处接收来自远程网络元件的数据分组。网络元件将数据分组中的至少一部分从活跃TCP模块通信到活跃控制卡中的活跃应用(“APP”)模块。网络元件响应于接收数据分组中的至少一部分而将APP同步(“SYNC”)消息从活跃APP模块通信到备用控制卡上的备用APP模块。网络元件将APP SYNC确认(“ACK”)消息从备用APP模块通信到活跃APP模块,其中APP SYNC ACK消息指示APP SYNC消息的成功输送。网络元件响应于接收APP SYNC ACK消息而将APP ACK消息从活跃APP模块通信到活跃TCP模块。网络元件响应于接收APP ACK消息而将数据ACK消息从活跃TCP模块通信到远程网络元件,其中ACK消息指示数据分组的成功输送。
本发明的实施例包含要耦合到第二控制卡的第一控制卡,第一控制卡用作与第二控制卡的活跃-备用关系中的活跃控制卡。第一控制卡包含要耦合到一个或多个线路卡的活跃传送控制协议(“TCP”)模块。活跃TCP模块配置为从远程网络元件接收数据分组,将数据分组中的至少一部分通信到活跃应用(“APP”)模块,接收APP确认(“ACK”)消息,以及响应于APP ACK消息的接收而将数据ACK消息通信到远程网络元件。活跃APP模块要耦合到活跃TCP模块并且要另外耦合到第二控制卡上的备用APP模块。活跃APP模块配置为从活跃TCP模块接收数据分组中的至少一部分,将APP同步(“SYNC”)消息通信到备用APP模块,从备用APP模块接收APP SYNC ACK消息,以及响应于APP SYNC ACK消息的接收而将APP ACK消息通信到活跃TCP模块。
本发明的实施例包含网络元件,以便在故障的情况下执行无中断切换。网络元件包括要耦合到网络的多个线路卡、耦合到多个线路卡的第一控制卡、以及耦合到多个线路卡的第二控制卡。第一控制卡用作活跃-备用关系中的活跃控制卡。第一控制卡包括活跃传送控制协议(“TCP”)模块,其配置为通过多个线路卡中的一个从远程网络元件接收数据分组,将数据分组中的至少一部分通信到活跃应用(“APP”)模块,接收APP确认(“ACK”)消息,以及响应于APP ACK消息的接收通过多个线路卡中的一个而将数据ACK消息通信到远程网络元件。第一控制卡还包括活跃APP模块,其要耦合到活跃TCP模块并且要另外耦合到第二控制卡上的备用APP模块。活跃APP模块配置为从活跃TCP模块接收数据分组中的至少一部分,将APP同步(“SYNC”)消息通信到备用APP模块,从备用APP模块接收APP SYNC ACK消息,以及响应于APP SYNC ACK消息的接收而将APP ACK消息通信到活跃TCP模块。第二控制卡耦合到多个线路卡与第一控制卡。第二控制卡用作与第一控制卡的活跃-备用关系中的备用控制卡。第二控制卡包括要耦合到备用APP模块的备用TCP模块。备用TCP模块配置为与多个线路卡通信,并且与备用APP模块通信。备用应用模块配置为从活跃APP模块接收APP SYNC消息,将APP SYNC ACK消息传送到活跃APP模块来指示APP SYNC消息的接收。
附图说明
本发明是以示例的方式而不以限制的方式图示,在附图的图中类似参考指示类似元件。应该注意到,在本公开中对“一”或“一个”实施例的不同提及不一定是指相同的实施例,并且这样的提及意味着至少一个。另外,当特定特征、结构、或特性结合实施例描述时,这提出的是结合无论是否明确描述的其它实施例来作用于这样的特征、结构、或特性是在本领域的技术人员的知识内的。
本发明可参考用来说明本发明的实施例的以下描述和附图来更好地理解。在图中:
图1A是图示根据本发明的实施例的用于与备用应用同步在活跃应用处接收的数据的方法的流程图。
图1B是图示根据本发明的实施例的用于与备用应用同步从活跃应用发送到远程对等体的数据的方法的流程图。
图1C是图示根据本发明的实施例的用于执行从图1A和图1B的活跃应用到图1A和图1B的备用应用的无中断切换的方法的流程图。
图2是图示通过网络耦合到远程网络元件的用于提供具有无中断切换的活跃-备用APP-TCP系统的活跃-备用网络元件的框图。
图3是图示根据本发明的实施例的来自远程对等体的在网络元件处接收的数据的确认和消息的路径的数据流图。
图4是图示根据本发明的实施例的从网络元件传送到远程对等体的数据的确认和消息的路径的数据流图。
具体实施方式
下文的描述对当备用系统转变成活跃模式时执行TCP连接的无中断切换的活跃/备用计算机系统的方法和器件进行描述。在下文的描述中,阐述许多具体细节(例如逻辑实现、相反、规定操作数的手段、资源分割/共享/复制实现、系统部件的类型和内部关系、以及逻辑分割/集成选择)以便提供本发明的更透彻理解。然而,本领域的技术人员将意识到可实践本发明而没有这样的具体细节。在其它实例中,控制结构、门级电路和全部软件指令序列并未详细示出以免混淆本发明。本领域的普通技术人员利用所包含的描述将能够实现适当的功能性而无需过度的实验。
在说明书中对“一个实施例”、“一实施例”、“示例实施例”等的提及指示所描述的实施例可包含特定特征、结构、或特性,但每个实施例可不一定包含特定特征、结构、或特性。此外,这样的短语不一定是指相同的实施例。另外,当结合实施例描述特定特征、结构、或特性时,提出的是结合无论是否明确描述的其它实施例来作用于这样的特征、结构、或特性是在本领域的技术人员的知识内的。
在下文的描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应该理解的是,这些术语不旨在作为彼此的同义词。“耦合”用于指示两个或者更多元件,它们可以或可以不直接彼此物理或电接触,彼此协作或交互。“连接”用于指示彼此耦合的两个或者更多元件之间的通信的建立。
为便于理解,在图中使用虚线来示意某些项目的可选性质(例如,本发明的给定实现不支持的特征;给定实现支持的特征,但在一些情况下使用而在其它情况下不使用)。
本发明的实施例公开了应用程序,它使用活跃/备用计算机系统上的TCP并且响应于计划的或未计划的切换而保持与远程对等体的TCP连接。当活跃计算机崩溃或以其它方式停止工作并且备用计算机接管时,发生未计划的切换。应用程序使用TCP端点来与远程TCP对等体通信。因为切换是不期望的,所以备用计算机不可能知道活跃计算机在切换以前到达的精确状态。活跃应用进程在正常操作期间将把其状态同步到备用应用进程,以使备用应用进程将知道切换之前的大多数状态,但可能不知道所有状态。
除保持TCP连接以外,这也为应用提供机会来同步来自若干TCP远程对等体的输入以及来自其它来源的输入(例如,来自键盘、鼠标、触摸屏;外部监视器;I/O装置(例如CD-ROM、硬盘)等的用户输入)并且确保备用应用可以与活跃应用相同的次序来接收输入。在一些应用中,来自不同来源的输入的精确次序产生不同的输出。
下文的是来自不同来源的输入的次序产生不同的输出的示例。假定边界网关协议(BGP)(如在2006年1月的IETF RFC 4271的“A Border Gateway Protocol 4 (BGP-4)”中描述的),应用从外部BGP对等体接收路由。它将向其所有内部BGP对等体重新通知路由。如果BGP应用随后从内部BGP对等体接收更好的路由,则它将从其内部BGP对等体撤回其第一路由。如果BGP应用要以其它的次序来接收那两个通知,则它不会发送任何通知,这是因为其内部BGP对等体已经被通知了比所通知的外部BGP对等体更好的路由。如果备用BGP应用要以与活跃BGP应用所接收的次序不同的次序接收路由,则备用BGP应用可确定错误地承担切换的动作过程(例如,需要通知的路由、需要撤回的路由、或不需要动作)。在从外部BGP对等体接收路由并且随后从内部BGP对等体接收更好的路由的情况下,如果备用BGP应用要以相反的次序接收通知并且在活跃BGP应用发送撤回之前发生切换,则备用会一直不知道发送撤回。
为了提供其中备用应用以与活跃应用相同的次序接收输入的实施例,活跃计算机上的TCP进程不与备用计算机上的TCP进程同步数据。这具有节省带宽和CPU周期的优点。相反地,活跃计算机上的TCP进程与活跃应用进程同步其数据并且活跃应用进程在活跃应用进程与备用应用进程之间同步足够的数据来精确地重建TCP状态以及其自己的状态。响应于切换,备用计算机将创建所建立的状态中的一个或多个TCP连接并且向TCP进程供应要重传的数据和序列号来确保TCP连接的平滑转变。新的连接将不像新的TCP连接通常做的那样与对应TCP远程对等体交换TCP SYN片段,这是因为切换对于对应远程对等体将是透明的。
图1A是图示根据本发明的实施例的用于与备用应用同步在活跃应用处接收的数据的方法的流程图。在一个实施例中,尽管在其它实施例中方法是由具有活跃计算机和备用计算机的通用计算机系统执行的,但图1A的方法是在具有活跃计算机和备用计算机的网络元件内执行的。活跃计算机和备用计算机对应于网络元件内的活跃控制卡和备用控制卡。在又一实施例中,活跃应用和备用应用可驻留于具有专用于活跃应用的一组隔离资源和专用于备用应用的一组隔离资源的单个计算机内。这可以是活跃应用驻留于计算机上的第一虚拟机内并且备用应用驻留于计算机上的第二虚拟机内的情况;在此场景中第一虚拟机是活跃计算机并且第二计算机是备用计算机。
图1A开始于框100,其中活跃TCP模块接收来自远程对等体的数据分组。例如,在活跃应用是BGP路由器应用并且远程对等体是BGP路由器的情况下,数据分组可包括BGP更新消息。方法继续到框105,其中活跃TCP模块将数据分组中的至少一部分通信到活跃应用(APP)模块。活跃TCP模块将数据分组通信到活跃APP模块。
可选地,方法可继续到虚线框106并且基于当前活跃APP状态和所接收的数据分组来确定必须发生的一组一个或多个活跃APP状态改变。在活跃应用是BGP路由器并且数据分组是BGP更新消息的示例中,方法继续到虚线框106A并且读取BGP更新消息内的一个或多个BGP路由更新。方法继续到虚线框106B并且基于来自本地策略信息库的一个或多个策略而丢弃一个或多个BGP路由更新。方法然后基于活跃BGP APP状态、一个或多个读取的BGP路由更新、以及一个或多个丢弃的BGP路由更新而确定一组一个或多个BGP路由状态改变。方法然后继续到虚线框109并且生成包括一组活跃APP状态改变(例如,一组BGP APP状态改变)的APP SYNC消息。
方法继续到框110,其中活跃APP模块将APP同步(SYNC)消息通信到备用计算机上的备用APP模块。在一个实施例中,APP SYNC消息包括来自由活跃TCP模块接收的数据分组的所有数据。在另一实施例中,APP SYNC消息包括由活跃TCP模块接收的数据分组的压缩形式。在又一实施例中,APP SYNC消息指示活跃APP模块确定的一组一个或多个应用状态改变是响应于数据分组所需要的。压缩形式包括由活跃APP模块确定的数据,它足以使备用APP模块对由活跃TCP模块接收的数据分组作出适当反应并且重建对数据分组的响应。在任一情况下,APP SYNC消息包括来自活跃TCP模块所接收的数据分组的序列号以使备用APP模块意识到活跃APP模块接收过那个数据分组。以此方式,如果那个数据分组被适当处理并且远程对等体一直没有接收到来自活跃TCP模块的对应确认(ACK)分组,则备用APP模块可以检测并且丢弃从远程对等体发送的复制的数据分组。活跃APP模块和备用APP模块经由携带应用同步数据的进程间通信(IPC)信道而耦合。在一个实施例中,IPC信道是计算机系统内的一组共享存储器空间。尽管在其它实施例中的IPC信道包含信号、管子、插座、交换光纤、以及连网媒体(例如,光、以太网、同轴、无线电)。在其它实施例中,IPC信道是上述IPC信道的一些或所有的组合或包含IPC的其它实现。
方法继续到框115,其中活跃APP模块通过IPC信道从备用APP模块接收APP SYNC ACK消息。此消息通知活跃APP模块:备用APP模块适当地接收了APP SYNC消息。在框120处,响应于接收APP SYNC ACK消息,活跃APP模块将APP ACK消息通信到活跃TCP模块,此消息指示由活跃TCP模块接收的数据分组已经被适当地处理并且活跃TCP模块应该用ACK消息来响应于远程对等体。在框125处,响应于接收APP ACK消息,活跃TCP模块将数据ACK消息通信到远程对等体,数据ACK消息指示活跃TCP模块适当地接收了由远程对等体发送的数据分组。
因此,当活跃TCP模块从对等体接收进来的数据时,它不照常自动地确认数据的接收。相反地,活跃TCP模块等待直到活跃APP模块在向远程对等体发送ACK之前向活跃TCP模块确认数据。然而,活跃APP模块同步到备用APP模块的数据的性质取决于应用。例如,BGP应用将不同步继续活跃的消息。对于更新消息,BGP可同步包含在消息内的路由而不是消息自身。由于它这么做,它具有灵活性来在它同步路由之前将信息添加到路由或从路由移除。它可以添加偏好或其它属性(其由策略添加)。特别有用的是不同步由进来的策略丢弃的路由的能力。这可以节省带宽和处理资源(其以其它方式需要将丢弃的路由发送到备用APP模块)。
即使活跃APP模块可不需要将所有所接收的数据同步到备用APP模块或它可用不同于它接收的形式来同步某接收的数据,活跃APP模块也不发送TCP序列号或充分的信息来重新创建TCP序列号。在一个实施例中,活跃APP模块将接收的字节的数量(而不是序列号)通信到备用APP模块。备用APP模块可以使用初始序列号和接收的字节的数量来重新创建实际序列号。在切换的情况下,新的活跃APP模块(原先的备用APP模块)将把最新同步的TCP序列号确认到远程对等体。原先的活跃APP模块可已经经确认小于或等于到远程对等体的此序列号的任何序列号。远程对等体可已经发送多于确认的。如果是这样,则远程对等体将从最后发送的序列号向前重传。以此方式,新的活跃APP模块可以精确地恢复进来的TCP数据流。
图1B是图示根据本发明的实施例的用于与备用应用同步从活跃应用发送到远程对等体的数据的方法的流程图。随着活跃APP模块发送数据到远程对等体,在远程对等体没有确认接收的情况下,备用APP模块必须准备重传那个数据。在切换的情况下,备用APP模块需要重传数据。
在框130中,响应于活跃APP模块生成数据来发送到远程对等体,活跃APP模块将APP SYNC消息通信到备用APP模块。在框135中,活跃APP模块接收来自备用APP模块的APP SYNC ACK消息。APP SYNC ACK消息指示备用APP模块适当地接收APP SYNC消息。在框140中,响应于接收APP SYNC ACK消息,活跃APP模块将对应于生成的数据的APP数据分组通信到活跃TCP模块。在框145中,响应于接收APP数据分组,活跃TCP模块将数据分组通信到远程对等体,该数据分组对应于APP数据分组。在框150中,活跃TCP模块从远程对等体接收数据ACK消息,此消息指示数据分组在远程对等体处被适当地接收。在一个实施例中,在框155中,响应于接收数据ACK消息,活跃TCP模块将数据ACK消息通信到活跃APP模块。而在另一实施例中,当活跃APP模块需要号码用于同步时,活跃APP模块从活跃TCP模块检索最新的ACK序列号。在框160中,响应于活跃APP模块从活跃TCP模块接收数据ACK消息,活跃APP模块将数据ACK消息通信到备用APP模块。响应于接收数据ACK消息,备用APP模块然后将从其重传列表中移除经确认的数据。
不是所有活跃APP模块需要与对应备用APP模块同步所生成的输出。例如,如果活跃计算机和备用计算机要运行回显服务器应用,则活跃APP模块不需要将所生成的输出发送到备用APP模块。毕竟,所生成的输出等于输入。只要活跃APP模块已经同步所接收的数据分组,则备用APP模块可以重新生成输出。
然而,活跃APP模块不需要与备用APP模块同步TCP序列号或足够的信息来重新创建它们。在切换的情况下,新的活跃APP模块(原先的备用APP模块)将用正确的序列号来重传任何未经确认的数据分组。远程对等体可已经从原先的活跃APP模块接收此数据中的一些。在该情况下,它可以从TCP序列号检测重叠的数据并且精确地重新创建数据流。
因此,活跃APP模块仍然同步用于备用APP模块的足够信息来认出什么时候重新生成输出并且重新发送分组到远程对等体或认出远程对等体什么时候已经接收数据分组并且从其重传列表中移除经确认的数据。
图1C是图示根据本发明的实施例的用于执行从图1A和图1B的活跃应用到图1A和图1B的备用应用的无中断切换的方法的流程图。方法开始于框165,其中活跃APP模块从活跃TCP模块中的一组一个或多个TCP端点检索TCP端点信息。当在活跃TCP模块与远程主机之间创建TCP连接时,协商若干TCP变量。例如,初始序列号、最大片段大小、窗口缩放和其它TCP选项。这些被称为静态变量。一些TCP变量是动态变量。例如,拥塞窗口响应于在活跃TCP模块与远程对等体之间的通信期间展现的网络行为而改变。在一个实施例中,TCP端点信息包括静态变量,而在其它实施例中TCP端点信息包括静态变量和动态变量。在又一实施例中,TCP端点信息包括静态变量和动态变量的子集,其中子集包含足够的变量来允许备用TCP模块重新创建TCP端点。因此,当由于切换而需要时,备用TCP模块使用TCP端点信息来重新创建TCP端点。
方法继续到框170,其中活跃APP模块将检索到的TCP端点信息通信到备用APP模块。在以后的时间,在框175处,备用APP模块检测到使活跃APP模块离开活跃状态的切换事件,以使备用APP模块进入活跃状态是希望的。切换事件的示例包含但不限于硬件故障、软件故障、软件更新、计划的停机、定期维护、不适当的配置以及网络介质故障。在一个实施例中,备用APP模块将心跳请求周期性地发送到活跃APP模块并且响应于不期望的心跳响应或缺乏心跳响应而检测退化事件。在另一实施例中,活跃APP模块将状态消息周期性地发送到备用APP模块并且备用APP模块响应于状态消息的内容或由于缺乏状态消息而检测退化事件。
响应于检测退化事件,备用APP模块确定它应该开始从备用状态转变到活跃状态。在框180处,备用APP模块使用以前通信的TCP端点信息来发起备用TCP模块中的一个或多个TCP端点的创建。在其它实施例中,TCP端点是在备用APP模块检测退化事件之前在备用TCP模块中创建的,这减少了执行切换所需要的时间。例如,TCP端点可以是响应于接收TCP端点信息而在备用TCP模块中创建。在此情况下,备用TCP模块在备用模式中时将不处理目的地为创建的TCP端点的业务,这是由于活跃TCP模块负责处理那个业务。
响应于创建由以前通信的TCP端点信息规定的TCP端点,方法通过执行无中断切换而继续到框185。无中断切换使备用APP模块和备用TCP模块从备用模式转变到活跃模式。在一个实施例中,当计划切换并且新的活跃APP模块开始与新的备用APP模块如参考图1A描述的那样同步时,无中断切换还使活跃APP模块和活跃TCP模块从活跃模式转变到备用模式。在另一实施例中,当计划切换并且在新的活跃APP模块与不活跃APP模块之间不发生同步时,无中断切换还使活跃APP模块和活跃TCP模块从活跃模式转变到不活跃模式。
图2是图示通过网络耦合到远程网络元件的用于提供具有无中断切换的活跃-备用APP-TCP系统的活跃-备用网络元件的框图。
如本文所使用的,网络元件(例如,路由器、交换机、网桥)是包含硬件和软件的一件连网设备,它在通信上互连网络上的其它设备(例如,其它网络元件、终端站)。一些网络元件是提供对多个连网功能(例如,路由、桥接、交换、层2聚集、会话边界控制、服务质量和/或订户管理)的支持,和/或提供对多个应用服务(例如,数据、语音和视频)的支持的“多服务网络元件”。订户终端站(例如,服务器、工作站、膝上型设备、上网本、掌上电脑、移动电话、智能电话、多媒体电话、因特网协议语音(VOIP)电话、用户设备、终端、便携式媒体播放器、GPS单元、游戏系统、机顶盒)接入在因特网上提供的内容/服务和/或在因特网上覆盖的(例如,通过因特网隧道的)虚拟私有网(VPN)上提供的内容/服务。内容和/或服务典型地是由属于参与对等体到对等体服务的服务或内容提供商或终端站的一个或多个终端站(例如,服务器终端站)提供,并且例如可包含公用网页(例如,免费内容、铺面、搜索服务)、私人网页(例如,提供电子邮件服务的接入网页的用户名/密码),和/或在VPN上的企业网络。典型地,订户终端站(例如,通过(有线或无线地)耦合到接入网络的消费者企业设备)耦合到边缘网络元件,这些边缘网络元件(例如,通过一个或多个核心网络元件)耦合到其它边缘网络元件,这些其它边缘网络元件耦合到其它终端站(例如,服务器终端站)。
网络元件通常分成控制平面和数据平面(有时被称作转发平面或媒体平面)。在网络元件是路由器(或正在实现路由功能)的情况下,控制平面典型地确定数据(例如,分组)将如何被路由(例如,数据的下一跳和那个数据的外出端口),并且数据平面负责转发那个数据。例如,控制平面典型地包含一个或多个路由协议(例如,边界网关协议(BGP)、内部网关协议(IGP)(例如,开放最短路径优先(OSPF)、路由信息协议(RIP)、中间系统对中间系统(IS-IS))、标签分布协议(LDP)、资源保留协议(RSVP)),它们与其它网络元件通信来交换路由并且基于一个或多个路由度量来选择那些路由。
路由和邻接存储在控制平面上的一个或多个路由结构(例如,路由信息库(RIB)、标签信息库(LIB)、一个或多个邻接结构)中。控制平面基于路由结构来用信息(例如,邻接和路由信息)规划数据平面。例如,控制平面将邻接和路由信息规划成数据平面上的一个或多个转发结构(例如,转发信息库(FIB)、标签转发信息库(LFIB)、以及一个或多个邻接结构)。当转发业务时,数据平面使用这些转发和邻接结构。
在一个实施例中,网络元件包含一组一个或多个线路卡、一组一个或多个控制卡、以及可选地一组一个或多个服务卡(有时被称作资源卡)。这些卡通过一个或多个机制(例如,耦合线路卡的第一全网孔和耦合所有卡的第二全网孔)而耦合在一起。该组线路卡组成数据平面,而该组控制卡提供控制平面并且通过线路卡与外部网络元件交换分组。该组服务卡可以提供专用处理(例如,层4到层7服务(例如,防火墙、IPsec、IDS、P2P)、VoIP会话边界控制器、移动无线网关(GGSN、演进型分组系统(EPS)网关))。以示例的方式,服务卡可用于终止IPsec隧道并且执行伴随的认证和加密算法。备选实施例可使用不同的网络元件架构(例如,其中没有线路卡和控制卡的分离)。
将参考图1A、图1B和图1C的示范性操作来描述图2。然而,应该理解的是,图1A、图1B和图1C的操作可以由不同于参考图2讨论的那些实施例的实施例来执行。此外,图3可以执行不同于参考图1A、图1B和图1C描述的那些操作的操作。
图2图示活跃-备用网络元件210。活跃-备用网络元件210包括活跃控制卡215、备用控制卡240以及一组一个或多个线路卡265A-265N。活跃控制卡215通过通信信道275A而耦合到该组一个或多个线路卡265A-265N并且备用控制卡240通过通信信道275B而耦合到该组一个或多个线路卡265A-265N。
活跃控制卡215包括耦合到活跃TCP模块235的活跃APP模块230。备用控制卡240包括耦合到备用TCP模块260的备用APP模块255。活跃APP模块230通过进程间通信信道270而耦合到备用APP模块255。活跃APP模块230运行活跃进程232而备用APP模块255运行备用进程257。在一个实施例中,网络元件210是运行活跃和备用BGP APP的BGP路由器,而在另一实施例中网络元件是运行活跃和备用LDP进程的多协议标签交换(MPLS)路由器。在又一实施例中,网络元件是运行活跃和备用接入节点控制协议(ANCP)进程的宽带远程接入服务器(BRAS)。本领域技术人员会认识到本发明的实施例合适于其它活跃-备用应用(特别是当TCP传送的状态对于从活跃到备用应用的适当切换是关键的时)。在一个实施例中,活跃APP模块230、活跃TCP模块235、备用APP模块255、和备用TCP模块260是配置为执行如参考图1A、图1B和图1C描述的功能的各别硬件模块。在另一实施例中,活跃APP模块230、活跃TCP模块235、备用APP模块255和备用TCP模块260是在活跃-备用网络元件210内运行的软件模块。在又一实施例中,活跃APP模块230、活跃TCP模块235、备用APP模块255和备用TCP模块260包括专用硬件模块和在活跃-备用网络元件210内运行的软件模块两者。
该组一个或多个线路卡265A-265N中的一个或多个通过IP通信信道276A而耦合到网络280并且网络280通过IP通信信道276B而耦合到远程网络元件200。远程网络元件200包括与远程APP模块207耦合的远程TCP模块205。远程APP模块207运行对应于活跃进程232的远程进程。
图3是图示根据本发明的实施例的来自远程对等体的在网络元件处接收的数据的确认和消息的路径的数据流图。图3包括远程网络元件300和活跃/备用网络元件302。远程网络元件300包括远程TCP模块301。活跃/备用网络元件302包括活跃控制卡305和备用控制卡310。活跃控制卡305包括活跃TCP模块306和活跃APP模块307。备用控制卡310包括备用APP模块311和备用TCP模块312。每个模块在图3的顶部图示,其中垂直线图示时间推移并且从一个垂直线到另一个垂直线的线行进图示在某个时刻的数据传送。
远程TCP模块301开始于将数据分组1(数据1)315A通信到活跃TCP模块306。响应于接收应用数据(数据1 315A),活跃TCP模块306将数据1 315B通信到活跃APP模块307。值得注意的是,此时活跃TCP模块不将ACK发送到远程TCP模块301。响应于接收数据1 315B,活跃APP模块307将数据1 315C发送到备用APP模块311。数据1 315C是活跃APP模块307用来同步活跃APP模块307与备用APP模块311的APP SYNC消息。备用APP模块311将确认分组ACK1 316A通信到活跃APP模块307。ACK1是备用APP模块用来确认APP SYNC消息的接收的APP SYNC ACK消息。响应于接收APP SYNC ACK消息,活跃APP模块307将ACK1 316B(APP ACK消息)通信到活跃TCP模块306。响应于接收ACK1 316B,活跃TCP模块306将ACK1 316C通信到远程TCP模块301。以此方式,不发送从活跃TCP模块306到远程TCP模块301的确认直到活跃APP模块307能够与备用APP模块311同步,允许在数据1分组315A的处理期间的APP层和TCP层两者处的同步。
图3类似地示出远程TCP模块301,它将数据分组2(数据2)320A通信到活跃TCP模块306,该活跃TCP模块306又将数据2 320B通信到活跃APP模块307。活跃APP模块将数据2 320C(APP SYNC消息)通信到备用APP模块311,该备用APP模块311用ACK 2(ACK2)321A(APP SYNC ACK)响应于活跃APP模块311。活跃APP模块311用ACK2 321B(APP ACK)响应于活跃TCP模块306;然而,由于切换事件330发生在接收之前,因此活跃TCP模块306不接收ACK2 321B。另外,远程TCP模块301在退化事件330之前通信数据分组3(数据3)325A。然而,在远程TCP模块301传送数据3 3325A之后并且在活跃TCP模块306接收数据3之前,发生退化事件。响应于检测到切换事件,备用控制卡310执行无中断切换335并且转变成活跃模式。
此时,远程TCP模块301还没有接收到ACK2或ACK3。因此,远程TCP模块将数据2 337A重传到活跃/备用网络元件302。由于备用TCP模块312已经转变成活跃模式,备用TCP模块312已经承担进来的业务的责任并且接收数据2 337A。备用TCP模块312将数据2 337B通信到现在处于活跃模式中的备用APP模块311。备用APP模块311认出数据2 337A是以前接收的并且适当地处理,因此备用APP模块311将丢弃或忽视该数据并且将APP ACK消息(ACK2)340A通信到备用TCP模块312。响应于接收ACK2 340A,备用TCP模块312将把ACK2 340B通信到远程TCP模块301。另外,远程TCP模块将数据3 345A重传到活跃/备用网络元件302。备用TCP模块312接收数据3 345A并且将数据3 345B通信到备用APP模块311。备用APP模块311处理数据3 345B并且将APP ACK消息ACK3 350A通信到备用TCP模块312。响应于接收ACK3 350A,备用TCP模块312将ACK3 350B通信到远程TCP模块301。
图4是图示根据本发明的实施例的从网络元件传送到远程对等体的数据的确认和消息的路径的数据流图。图4包括远程网络元件400和活跃/备用网络元件402。远程网络元件400包括远程TCP模块401。活跃/备用网络元件402包括活跃控制卡405和备用控制卡410。活跃控制卡405包括活跃TCP模块406和活跃APP模块407。备用控制卡410包括备用APP模块411和备用TCP模块412。每个模块在图4的顶部图示,其中垂直线图示时间推移并且从一个垂直线到另一个垂直线的线行进图示在某个时刻的数据传送。
图4开始于活跃APP模块407将APP SYNC消息数据1 415A通信到备用APP模块411,该备用APP模块411用APP SYNC ACK消息ACK1 416A进行响应。响应于接收ACK1 416A,活跃APP模块407将应用数据(数据1 415B)通信到活跃TCP模块406,该活跃TCP模块406又将数据分组数据1 415C通信到远程TCP模块401。响应于接收数据1 415C,远程TCP模块将ACK消息ACK1 416B通信到活跃TCP模块406,该活跃TCP模块406又将ACK1 416C通信到活跃APP模块407。响应于接收ACK1 416C,活跃APP模块407将ACK1 416D通信到备用APP模块411。由此,活跃APP模块407和备用APP模块411两者从它们的重传列表中移除数据1。
类似地,活跃APP模块407然后将APP SYNC消息数据2 420A通信到备用APP模块411,该备用APP模块411用APP SYNC ACK消息ACK2 421A进行响应。响应于接收ACK2 421A,活跃APP模块407将数据分组数据2 420B通信到活跃TCP模块406,该活跃TCP模块406又将数据分组数据2 420C通信到远程TCP模块401。响应于接收数据2 420C,远程TCP模块将ACK消息ACK2 421B通信到活跃TCP模块406,然而,由于切换事件430发生在接收之前,所以活跃TCP模块406不接收ACK2 421B。在将数据2 420B传送到活跃TCP模块406之后,但在退化事件430之前,活跃APP模块407将APP SYNC消息数据3 425A通信到备用APP模块411,该备用APP模块411用APP SYNC ACK消息ACK3 426A进行响应。响应于接收ACK3 426A,活跃APP模块407将数据3 425B通信到活跃TCP模块406,但退化事件430发生在接收之前。响应于检测到切换事件,备用控制卡410执行无中断切换435并且转变成活跃模式。
此时,备用APP模块411(现在处于活跃模式)还没有接收到ACK2或ACK3并且将使用其重传列表来确定重新发送哪些分组。备用APP模块411将数据2 440通信到备用TCP模块412(现在处于活跃模式),该备用TCP模块412将通过通信数据2 440B到远程TCP模块401来进行响应。远程TCP模块401已经接收到数据2 420C并且因此数据440B是复制的。远程TCP模块期望认出复制的数据并且送回ACK消息ACK2 441A。备用TCP模块412将接收ACK2 441A并且作为响应将ACK2 441B通信到备用APP模块411。另外,备用APP模块411将需要重新发送数据3并且将数据3 445A通信到备用TCP模块,该备用TCP模块将通过通信数据3 445B到远程TCP模块401来进行响应。远程TCP模块401将通过把ACK消息ACK3 446A通信到备用TCP模块412来响应于数据3 445B,作为响应备用TCP模块412将把ACK3 446B通信到备用APP模块411。从而,备用APP模块411将从把数据2和数据3重新发送到远程TCP模块401的其重传列表中移除数据2和数据3。
如本文所描述的,指令可能指的是配置为执行某些操作或具有预定功能性的硬件(例如专用集成电路(ASIC))的具体配置或存储在包含在非暂时性计算机可读介质中的存储器中的软件指令。因此,在图中示出的技术可以使用在一个或多个电子装置(例如,终端站、网络元件)上存储并且执行的代码和数据来实现。这样的电子装置使用例如非暂时性计算机可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪速存储器装置;相位改变存储器)和暂时性计算机可读通信介质(例如,电、光、声或其它形式的传播信号-例如载波、红外信号、数字信号)等计算机可读介质来存储并且(在内部和/或在网络上与其它电子装置)通信代码和数据。此外,这样的电子装置典型地包含耦合到一个或多个其它部件(例如一个或多个存储装置(非暂时性机器可读存储介质)、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)、以及网络连接)的一组一个或多个处理器。该组处理器和其它部件的耦合典型地是通过一个或多个总线和网桥(也被称为总线控制器)。因此,给定电子装置的存储装置典型地存储代码和/或数据用于那个电子装置的该组一个或多个处理器上的执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
备选实施例
尽管图中的流程图示出由本发明的某些实施例执行的操作的特定次序,但应该理解的是这样的次序是示范性的(例如,备选实施例可以按不同的次序来执行操作、组合某些操作、重叠某些操作等)。
尽管已经依据若干实施例描述了本发明,但是本领域技术人员将认识到本发明不限于所描述的实施例,本发明可以利用所附的权利要求的精神和范围内的修改和变更来实践。因此描述被视为说明性的而不是限制性的。
Claims (28)
1. 一种在网络元件中执行的方法,用于维持活跃控制卡与备用控制卡之间的活跃-备用关系,所述方法包括以下步骤:
在所述活跃控制卡中的活跃传输控制协议(“TCP”)模块处接收来自远程网络元件的数据分组;
将所述数据分组中的至少一部分从所述活跃TCP模块通信到所述活跃控制卡中的活跃应用(“APP”)模块;
响应于接收所述数据分组中的所述至少一部分而将APP同步(“SYNC”)消息从所述活跃APP模块通信到所述备用控制卡上的备用APP模块;
在所述活跃APP模块处接收来自所述备用APP模块的APP SYNC确认(“ACK”)消息,其中所述APP SYNC ACK消息指示所述APP SYNC消息的成功输送;
响应于接收所述APP SYNC ACK消息而将APP ACK消息从所述活跃APP模块通信到所述活跃TCP模块;以及
响应于接收所述APP ACK消息而将数据ACK消息从所述活跃TCP模块通信到所述远程网络元件,其中所述数据ACK消息指示所述数据分组的成功输送。
2. 如权利要求1所述的方法,还包括步骤:
基于活跃APP状态和包含在所述数据分组中的所述至少一部分中的信息而确定一组一个或多个活跃APP状态改变;以及
生成所述APP SYNC消息来包括所述一组活跃APP状态改变。
3. 如权利要求1所述的方法,其中所述APP SYNC消息跨过进程间通信信道而通信到所述备用APP模块。
4. 如权利要求1所述的方法,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程并且所述备用APP模块包括备用BGP APP,并且其中所述数据分组包括BGP更新消息并且所述APP SYNC消息包括所述备用BGP APP用来与所述活跃BGP APP同步状态信息的数据。
5. 如权利要求4所述的方法,还包括以下步骤:
在所述活跃BGP APP处读取包含在所述BGP更新消息内的一个或多个BGP路由更新;
基于来自本地策略信息库的一个或多个策略而在所述活跃BGP APP处丢弃一个或多个BGP路由更新;
基于活跃BGP APP状态、所述一个或多个读取的BGP路由更新、以及所述一个或多个丢弃的BGP路由更新而确定一组一个或多个BGP状态改变;以及
生成所述APP SYNC消息来包括所述一组BGP状态改变。
6. 如权利要求1所述的方法,还包括以下步骤:
从所述活跃TCP模块中的一个或多个TCP端点检索TCP端点信息;
将检索到的TCP端点信息通信到所述备用TCP模块;
在所述备用APP模块处检测发起无中断切换的切换事件;
利用以前通信的TCP端点信息来创建所述备用TCP模块中的一个或多个TCP端点;以及
响应于检测所述切换事件,执行使备用控制卡从备用状态转变到活跃状态的无中断切换,其中所述转变对于所述远程网络元件是透明的。
7. 如权利要求6所述的方法,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程,所述备用APP模块包括备用BGP APP,并且所述远程网络元件是BGP路由器并且其中执行所述无中断切换以使所述远程网络元件不响应于所述切换事件而执行BGP平滑重启。
8. 一种耦合到第二控制卡的第一控制卡,所述第一控制卡用作与所述第二控制卡的活跃-备用关系中的活跃控制卡,所述第一控制卡包括:
耦合到一个或多个线路卡的活跃传输控制协议(“TCP”)模块,所述活跃TCP模块配置为:
从远程网络元件接收数据分组,
将所述数据分组中的至少一部分通信到活跃应用(“APP”)模块,
接收APP确认(“ACK”)消息,以及
响应于所述APP ACK消息的所述接收而将数据ACK消息通信到所述远程网络元件;以及
所述活跃APP模块,耦合到所述活跃TCP模块并且另外耦合到所述第二控制卡上的备用APP模块,所述活跃APP模块配置为:
从所述活跃TCP模块接收所述数据分组中的所述至少一部分,
将APP同步(“SYNC”)消息通信到所述备用APP模块,
从所述备用APP模块接收APP SYNC ACK消息,以及
响应于所述APP SYNC ACK消息的接收而将APP ACK消息通信到所述活跃TCP模块。
9. 如权利要求8所述的第一控制卡,其中所述活跃APP模块还配置为:
基于活跃APP状态和包含在所述数据分组中的所述至少一部分中的信息而确定一组一个或多个活跃APP状态改变;以及
生成所述APP SYNC消息来包括所述一组活跃APP状态改变。
10. 如权利要求8所述的第一控制卡,其中所述活跃APP模块通过进程间通信信道而耦合到所述备用APP模块。
11. 如权利要求8所述的第一控制卡,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程并且所述备用APP模块包括备用BGP APP,并且其中所述数据分组包括BGP更新消息并且所述APP SYNC消息包括所述备用BGP APP用来与所述活跃BGP APP同步状态信息的数据。
12. 如权利要求11所述的第一控制卡,其中所述活跃APP模块还配置为:
读取包含在所述BGP更新消息内的一个或多个BGP路由更新;
基于来自本地策略信息库的一个或多个策略而丢弃一个或多个BGP路由更新;
基于活跃BGP APP状态、所述一个或多个读取的BGP路由更新、以及所述一个或多个丢弃的BGP路由更新而确定一组一个或多个BGP状态改变;以及
生成所述APP SYNC消息来包括所述一组BGP状态改变。
13. 如权利要求8所述的第一控制卡,其中所述活跃APP模块还配置为:
从所述活跃TCP模块中的一个或多个TCP端点检索TCP端点信息;以及
将检索到的TCP端点信息通信到所述备用APP模块,其中所述检索到的TCP端点信息由所述备用APP模块用来响应于切换事件而创建所述备用TCP模块中的一个或多个TCP端点。
14. 一种在故障的情况下执行无中断切换的网络元件,所述网络元件包括:
耦合到网络的多个线路卡;
耦合到所述多个线路卡的第一控制卡,所述第一控制卡用作活跃-备用关系中的活跃控制卡并且包括:
活跃传输控制协议(“TCP”)模块,配置为:
通过所述多个线路卡中的一个从远程网络元件接收数据分组,
将所述数据分组中的至少一部分通信到活跃应用(“APP”)模块,
接收APP确认(“ACK”)消息,以及
响应于所述APP ACK消息的接收通过所述多个线路卡中的一个而将数据ACK消息通信到所述远程网络元件,以及
活跃APP模块,耦合到所述活跃TCP模块并且另外耦合到第二控制卡上的备用APP模块,所述活跃APP模块配置为:
从所述活跃TCP模块接收所述数据分组中的所述至少一部分,
将APP同步(“SYNC”)消息通信到所述备用APP模块,
从所述备用APP模块接收APP SYNC ACK消息,以及
响应于所述APP SYNC ACK消息的接收而将APP ACK消息通信到所述活跃TCP模块;以及
所述第二控制卡,耦合到所述多个线路卡与所述第一控制卡,所述第二控制卡用作与所述第一控制卡的所述活跃-备用关系中的备用控制卡并且包括:
备用TCP模块,耦合到备用APP模块,所述备用TCP模块配置为:
与所述多个线路卡通信,以及
与所述备用APP模块通信,以及
所述备用应用模块配置为:
从所述活跃APP模块接收所述APP SYNC消息,
将所述APP SYNC ACK消息传送到所述活跃APP模块来指示所述APP SYNC消息的接收。
15. 如权利要求14所述的网络元件,其中所述活跃APP模块还配置为:
基于活跃APP状态和包含在所述数据分组中的所述至少一部分中的信息而确定一组活跃APP状态改变;以及
生成所述APP SYNC消息来包括所述一组活跃APP状态改变。
16. 如权利要求14所述的网络元件,其中所述活跃APP模块通过进程间通信信道而耦合到所述备用APP模块。
17. 如权利要求14所述的网络元件,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程并且所述备用APP模块包括备用BGP APP,并且其中所述数据分组包括BGP更新消息并且所述APP SYNC消息包括所述备用BGP APP用来与所述活跃BGP APP同步状态信息的数据。
18. 如权利要求17所述的网络元件,其中所述活跃APP模块还配置为:
读取包含在所述BGP更新消息内的一个或多个BGP路由更新;
基于来自本地策略信息库的一个或多个策略而丢弃一个或多个BGP路由更新;
基于活跃BGP APP状态、所述一个或多个读取的BGP路由更新、以及所述一个或多个丢弃的BGP路由更新而确定一组BGP状态改变;以及
生成所述APP SYNC消息来包括所述一组BGP状态改变。
19. 如权利要求14所述的网络元件,其中:
所述活跃APP模块还配置为:
从所述活跃TCP模块中的一个或多个TCP端点检索TCP端点信息,以及
将检索到的TCP端点信息通信到所述备用TCP模块;以及
所述备用APP模块还配置为:
检测切换事件,
利用以前通信的TCP端点信息来创建所述备用TCP模块中的一个或多个TCP端点,以及
响应于检测切换事件,执行使备用控制卡从备用状态转变到活跃状态的无中断切换,其中所述转变对于所述远程网络元件是透明的。
20. 如权利要求19所述的网络元件,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程,所述备用APP模块包括备用BGP APP,并且所述远程网络元件是BGP路由器并且其中执行所述无中断切换以使所述远程网络元件不响应于所述切换事件而执行BGP平滑重启。
21. 一种在网络元件中执行的方法,用于维持活跃控制卡与备用控制卡之间的活跃-备用关系,所述方法包括以下步骤:
将应用(“APP”)同步(“SYNC”)消息从所述活跃控制卡中的活跃APP模块通信到所述备用控制卡中的备用APP模块,其中所述APP SYNC消息与要传送到远程网络元件的APP数据分组中的至少一部分关联;
在所述活跃APP模块处接收来自所述备用APP模块的APP SYNC确认(“ACK”)消息,其中所述APP SYNC ACK消息指示所述APP SYNC消息的成功输送;
响应于接收所述APP SYNC ACK消息而将所述APP数据分组从所述活跃APP模块通信到所述活跃控制卡中的活跃传输控制协议(“TCP”)模块;
将所述APP数据分组从所述活跃TCP模块通信到所述远程网络元件;
在所述活跃TCP模块处接收来自所述远程网络元件的远程ACK消息,其中所述远程ACK消息指示在所述远程网络元件处的所述APP数据分组的成功输送;
将所述远程ACK消息中的至少一部分从所述活跃TCP模块通信到所述活跃APP模块;以及
将所述远程ACK消息中的至少一部分从所述活跃APP模块通信到所述备用APP模块。
22. 如权利要求1所述的方法,还包括以下步骤:
将第一重传条目添加到与所述活跃APP模块关联的第一重传列表;
将第二重传条目添加到与所述备用APP模块关联的第二重传列表;
响应于接收所述远程ACK消息而从所述第一重传列表移除所述第一重传条目;以及
响应于接收所述远程ACK而从所述第二重传列表移除所述第二重传条目。
23. 如权利要求1所述的方法,还包括确定与活跃APP状态和包含在所述APP数据分组中的信息关联的一组一个或多个活跃APP状态改变的步骤,其中所述APP SYNC消息包括所述一组活跃APP状态改变。
24. 如权利要求1所述的方法,其中所述APP SYNC消息跨过进程间通信信道而通信到所述备用APP模块。
25. 如权利要求1所述的方法,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程并且所述备用APP模块包括备用BGP APP,并且其中所述数据分组包括BGP更新消息并且所述APP SYNC消息包括所述备用BGP APP用来与所述活跃BGP APP同步状态信息的数据。
26. 如权利要求6所述的方法,还包括以下步骤:
在所述活跃BGP APP处读取包含在所述BGP更新消息内的一个或多个BGP路由更新;
基于来自本地策略信息库的一个或多个策略而在所述活跃BGP APP处丢弃一个或多个BGP路由更新;
基于活跃BGP APP状态、所述一个或多个读取的BGP路由更新、以及所述一个或多个丢弃的BGP路由更新而确定一组一个或多个BGP状态改变;以及
生成所述APP SYNC消息来包括所述一组BGP状态改变。
27. 如权利要求1所述的方法,还包括以下步骤:
从所述活跃TCP模块中的一个或多个TCP端点检索TCP端点信息;
将检索到的TCP端点信息通信到所述备用TCP模块;
在所述备用APP模块处检测发起无中断切换的切换事件;
利用以前通信的TCP端点信息来创建所述备用TCP模块中的一个或多个TCP端点;以及
响应于检测所述切换事件,执行使备用控制卡从备用状态转变到活跃状态的无中断切换,其中所述转变对于所述远程网络元件是透明的。
28. 如权利要求7所述的方法,其中所述活跃APP模块包括活跃边界网关协议(“BGP”)进程,所述备用APP模块包括备用BGP APP,并且所述远程网络元件是BGP路由器并且其中执行所述无中断切换以使所述远程网络元件不响应于所述切换事件而执行BGP平滑重启。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/103,984 US8614941B2 (en) | 2011-05-09 | 2011-05-09 | Hitless switchover from active TCP application to standby TCP application |
US13/103,984 | 2011-05-09 | ||
PCT/IB2012/052204 WO2012153236A1 (en) | 2011-05-09 | 2012-05-02 | Hitless switchover from active tcp application to standby tcp application |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103535016A true CN103535016A (zh) | 2014-01-22 |
Family
ID=46172823
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201280022334.8A Pending CN103535016A (zh) | 2011-05-09 | 2012-05-02 | 从活跃tcp应用到备用tcp应用的无中断切换 |
Country Status (9)
Country | Link |
---|---|
US (2) | US8614941B2 (zh) |
EP (1) | EP2708014A1 (zh) |
JP (1) | JP5981533B2 (zh) |
KR (1) | KR20140035925A (zh) |
CN (1) | CN103535016A (zh) |
BR (1) | BR112013026096A2 (zh) |
IL (1) | IL228714A0 (zh) |
WO (1) | WO2012153236A1 (zh) |
ZA (1) | ZA201307430B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016149870A1 (en) * | 2015-03-20 | 2016-09-29 | Intel Corporation | Techniques for improving output-packet-similarity between primary and secondary virtual machines |
CN105763477B (zh) * | 2016-02-03 | 2019-09-06 | 新华三技术有限公司 | 一种流量控制策略处理方法及装置 |
CN111741501A (zh) * | 2019-03-25 | 2020-10-02 | 上海诺基亚贝尔股份有限公司 | 切换核心设备的方法、设备、装置和计算机可读介质 |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US8503289B2 (en) | 2010-03-19 | 2013-08-06 | Brocade Communications Systems, Inc. | Synchronizing multicast information for linecards |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
US9143335B2 (en) | 2011-09-16 | 2015-09-22 | Brocade Communications Systems, Inc. | Multicast route cache system |
US10581763B2 (en) * | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
US9203690B2 (en) | 2012-09-24 | 2015-12-01 | Brocade Communications Systems, Inc. | Role based multicast messaging infrastructure |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
US9027098B2 (en) * | 2013-03-14 | 2015-05-05 | Genband Us Llc | Systems, methods, and computer program products for recording service status of applications |
US9256660B2 (en) * | 2013-08-06 | 2016-02-09 | Telefonaktiebolaget L M Ericsson (Publ) | Reconciliation protocol after ICR switchover during bulk sync |
TWI590617B (zh) | 2014-09-16 | 2017-07-01 | 科勞簡尼克斯股份有限公司 | 以彈性地定義之通信網路控制器為基礎之網路控制、操作及管理 |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
WO2016121293A1 (ja) * | 2015-01-28 | 2016-08-04 | 日本電気株式会社 | ネットワーク中継装置、ゲートウェイ冗長化システム、プログラム、および冗長化方法 |
US20170093730A1 (en) | 2015-09-25 | 2017-03-30 | FSA Technologies,Inc. | Flow control system and method |
US9949409B2 (en) * | 2016-05-11 | 2018-04-17 | Facebook, Inc. | Modular network switches, associated structures, and associated methods of manufacture and use |
US10362070B1 (en) * | 2016-08-19 | 2019-07-23 | Juniper Networks, Inc | Method, system, and apparatus for achieving user space intervention during connection-establishment handshakes |
US11025483B1 (en) * | 2016-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Fault tolerant virtual private network endpoint node |
US10397189B1 (en) | 2016-09-27 | 2019-08-27 | Amazon Technologies, Inc. | Peered virtual private network endpoint nodes |
US11477117B1 (en) | 2020-11-23 | 2022-10-18 | Juniper Networks, Inc. | High-availability switchover based on traffic metrics |
US11405272B1 (en) | 2021-05-27 | 2022-08-02 | Cisco Technology, Inc. | System and method to debug, optimize, profile, or recover network device in live network |
CN113641623B (zh) * | 2021-06-30 | 2024-02-20 | 曙光网络科技有限公司 | 信息交互方法和装置、框式网络设备、计算机可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040078625A1 (en) * | 2002-01-24 | 2004-04-22 | Avici Systems, Inc. | System and method for fault tolerant data communication |
CN1502191A (zh) * | 2000-12-07 | 2004-06-02 | ŵ�������ܱ�Ե·������˾ | 路由器和路由协议冗余 |
CN1622483A (zh) * | 2003-11-27 | 2005-06-01 | 华为技术有限公司 | 一种实现软件上主备双机热备份的方法 |
US20090129261A1 (en) * | 2002-06-27 | 2009-05-21 | Foundry Networks, Inc. | High available method for border gateway protocol version 4 |
CN101651706A (zh) * | 2008-08-14 | 2010-02-17 | 华为技术有限公司 | 一种数据发送和接收方法以及系统和装置 |
US7787365B1 (en) * | 2005-01-05 | 2010-08-31 | Juniper Networks, Inc. | Routing protocol failover between control units within a network router |
CN102035687A (zh) * | 2011-01-06 | 2011-04-27 | 华为技术有限公司 | Tcp连接的备份方法及其设备 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020107966A1 (en) * | 2001-02-06 | 2002-08-08 | Jacques Baudot | Method and system for maintaining connections in a network |
EP1331772B1 (en) * | 2002-01-24 | 2006-03-29 | Alcatel Canada Inc. | Method and apparatus for facilitating routing protocol redundancy in a network element |
US7286468B2 (en) * | 2002-11-12 | 2007-10-23 | Cisco Technology, Inc. | Routing system and method for synchronizing a routing system with peers after failover |
US7535827B2 (en) * | 2003-10-09 | 2009-05-19 | Alcatel Lucent | High availability of resources in telecommunications network using synchronized redundancy mechanism |
US7506194B2 (en) * | 2004-03-24 | 2009-03-17 | Cisco Technology, Inc. | Routing system and method for transparently rocovering routing states after a failover or during a software upgrade |
US7515525B2 (en) * | 2004-09-22 | 2009-04-07 | Cisco Technology, Inc. | Cooperative TCP / BGP window management for stateful switchover |
US7672223B2 (en) * | 2005-03-07 | 2010-03-02 | Cisco Technology, Inc. | Method and apparatus for replicating a transport layer protocol stream |
US7609617B2 (en) * | 2005-04-14 | 2009-10-27 | Cisco Technology, Inc. | BGP hitless upgrade approaches |
US7751311B2 (en) * | 2005-05-19 | 2010-07-06 | Cisco Technology, Inc. | High availability transport protocol method and apparatus |
US7549078B2 (en) * | 2006-01-31 | 2009-06-16 | Alcatel Lucent | Redundancy in routing devices |
US8051326B2 (en) * | 2006-12-29 | 2011-11-01 | Futurewei Technologies, Inc. | System and method for completeness of TCP data in TCP HA |
US9648147B2 (en) * | 2006-12-29 | 2017-05-09 | Futurewei Technologies, Inc. | System and method for TCP high availability |
US7940650B1 (en) * | 2008-11-03 | 2011-05-10 | Juniper Networks, Inc. | Peer-agnostic TCP socket replication between primary and secondary routing engines |
-
2011
- 2011-05-09 US US13/103,984 patent/US8614941B2/en active Active
-
2012
- 2012-05-02 BR BR112013026096A patent/BR112013026096A2/pt not_active Application Discontinuation
- 2012-05-02 JP JP2014509862A patent/JP5981533B2/ja not_active Expired - Fee Related
- 2012-05-02 KR KR1020137032243A patent/KR20140035925A/ko not_active Application Discontinuation
- 2012-05-02 WO PCT/IB2012/052204 patent/WO2012153236A1/en active Application Filing
- 2012-05-02 CN CN201280022334.8A patent/CN103535016A/zh active Pending
- 2012-05-02 EP EP12723920.0A patent/EP2708014A1/en not_active Withdrawn
-
2013
- 2013-10-03 IL IL228714A patent/IL228714A0/en unknown
- 2013-10-04 ZA ZA2013/07430A patent/ZA201307430B/en unknown
- 2013-11-20 US US14/085,050 patent/US9013978B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1502191A (zh) * | 2000-12-07 | 2004-06-02 | ŵ�������ܱ�Ե·������˾ | 路由器和路由协议冗余 |
US20040078625A1 (en) * | 2002-01-24 | 2004-04-22 | Avici Systems, Inc. | System and method for fault tolerant data communication |
US20090129261A1 (en) * | 2002-06-27 | 2009-05-21 | Foundry Networks, Inc. | High available method for border gateway protocol version 4 |
CN1622483A (zh) * | 2003-11-27 | 2005-06-01 | 华为技术有限公司 | 一种实现软件上主备双机热备份的方法 |
US7787365B1 (en) * | 2005-01-05 | 2010-08-31 | Juniper Networks, Inc. | Routing protocol failover between control units within a network router |
CN101651706A (zh) * | 2008-08-14 | 2010-02-17 | 华为技术有限公司 | 一种数据发送和接收方法以及系统和装置 |
CN102035687A (zh) * | 2011-01-06 | 2011-04-27 | 华为技术有限公司 | Tcp连接的备份方法及其设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016149870A1 (en) * | 2015-03-20 | 2016-09-29 | Intel Corporation | Techniques for improving output-packet-similarity between primary and secondary virtual machines |
CN105763477B (zh) * | 2016-02-03 | 2019-09-06 | 新华三技术有限公司 | 一种流量控制策略处理方法及装置 |
CN111741501A (zh) * | 2019-03-25 | 2020-10-02 | 上海诺基亚贝尔股份有限公司 | 切换核心设备的方法、设备、装置和计算机可读介质 |
CN111741501B (zh) * | 2019-03-25 | 2023-02-28 | 上海诺基亚贝尔股份有限公司 | 切换核心设备的方法、设备、装置和计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
US20120290869A1 (en) | 2012-11-15 |
ZA201307430B (en) | 2015-01-28 |
BR112013026096A2 (pt) | 2016-12-27 |
IL228714A0 (en) | 2013-12-31 |
WO2012153236A1 (en) | 2012-11-15 |
US8614941B2 (en) | 2013-12-24 |
US9013978B2 (en) | 2015-04-21 |
JP5981533B2 (ja) | 2016-08-31 |
EP2708014A1 (en) | 2014-03-19 |
US20140082043A1 (en) | 2014-03-20 |
KR20140035925A (ko) | 2014-03-24 |
JP2014519737A (ja) | 2014-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103535016A (zh) | 从活跃tcp应用到备用tcp应用的无中断切换 | |
US7490161B2 (en) | Method and system for implementing OSPF redundancy | |
JP4711411B2 (ja) | SoftRouterプロトコルのフェイルオーバー | |
US7292535B2 (en) | Highly-available OSPF routing protocol | |
US8537660B2 (en) | High availability transport protocol method and apparatus | |
US7573811B2 (en) | Network transparent OSPF-TE failover | |
US9648147B2 (en) | System and method for TCP high availability | |
US7801135B2 (en) | Transport protocol connection synchronization | |
EP2571208B1 (en) | Open shortest path first (OSPF) nonstop routing (NSR) with link derivation | |
US20120275456A1 (en) | Expedited graceful ospf restart | |
US20110093591A1 (en) | Detecting Unavailable Network Connections | |
CN110313138B (zh) | 使用多个网元实现高可用性的相关方法和装置 | |
CN102754383B (zh) | 用于通信系统路由组件级高度可用性的系统和方法 | |
CN101753454B (zh) | 路由器平滑重启方法、路由器和网络系统 | |
EP2575306B1 (en) | Ospf nonstop routing synchronization nack | |
CN102769571B (zh) | 一种平滑重启实现方法及设备 | |
CN116489075A (zh) | 处理电路上执行的方法、网络设备及存储介质 | |
CN106911568B (zh) | Bgp gr实现方法及装置 | |
EP4307621A1 (en) | Route update method, apparatus and system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140122 |
|
WD01 | Invention patent application deemed withdrawn after publication |