CN101573940A - 用于tcp高可用性的方法和装置 - Google Patents
用于tcp高可用性的方法和装置 Download PDFInfo
- Publication number
- CN101573940A CN101573940A CNA2007800487862A CN200780048786A CN101573940A CN 101573940 A CN101573940 A CN 101573940A CN A2007800487862 A CNA2007800487862 A CN A2007800487862A CN 200780048786 A CN200780048786 A CN 200780048786A CN 101573940 A CN101573940 A CN 101573940A
- Authority
- CN
- China
- Prior art keywords
- tcp
- assembly
- data
- tcp assembly
- processor
- 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
- 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]
-
- 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]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- 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
Abstract
本发明提供了一种TCP高可用性的系统和方法。该系统并发地向AMB和SMB传送输入数据流,并发地将来自AMB的输出数据流发送到SMB和对等路由器,对AMB和SMB之间的输入和输出数据流进行同步,并且加速AMB和SMB之间的输入和输出数据流的同步。
Description
相关申请的交叉引用
[0001]本申请要求于2006年12月29日递交的美国临时专利申请No.60/882,650以及于2007年12月21日递交的美国专利申请No.11/963,717的优先权,将其引入于此用于各种目的。本申请还涉及2007年10月15日递交的美国专利申请No.11/872,508,并将其引入于此用于各种目的。
技术领域
[0002]概括地说,本发明涉及网络通信,更具体地说,本发明涉及传输控制协议(TCP)高可用性(High Availability,HA)的体系结构和方法。
背景技术
[0003]TCP是较低层连接协议。其由诸如边界网关协议(Border GatewayProtocol,BGP)的较高层路由协议用于路由器中,以便与对等路由器建立连接并与它们交换路由信息。在具有主用主板(Active Main Board,AMB)和备用主板(Standby Main Board,SMB)的路由器中,TCP和诸如BGP和标签分发协议(Label Distribution Protocol,LDP)的其他协议在AMB和SMB上运行。TCP HA向使用TCP的那些协议提供高可用性支持。当AMB失效时,如果TCP和其他协议具有高可用性能力,则SMB就会平稳地充当新的AMB。
[0004]现有的传输控制协议(TCP)高可用性(HA)体系结构和方法使用基于消息流经或镜像的机制。对于使用消息流经机制的高可用性系统,其首先将输入TCP数据传送到SMB,然后通过内部的进程间通信(Inter-ProcessCommunication,IPC)将该数据传输到AMB。对于来自AMB中的应用的输出TCP数据,该数据首先通过内部IPC传输到SMB,然后通过线卡传送到它们的目的地。
[0005]在现有TCP HA的常规操作期间,包含来自对等路由器的应用或路由协议消息的输入TCP数据流通过AMB和SMB传输。其首先流经SMB,然后流经AMB。从而,SMB能够在该输入数据流到达AMB之前读取输入数据流,对数据流中的消息进行解码,并获取其状态改变。同样的,包含应用或路由协议消息的输出TCP数据流也通过AMB和SMB传输。其首先流经AMB,然后流经SMB到达对等路由器。SMB能够在该输出数据流到达对等路由器之前读取输出数据流,对数据流中的消息进行解码,并推断出状态改变。通过这种方式,使得AMB和SMB同步。图1示出了基于流经的TCP HA体系结构。
[0006]此外,AMB和SMB都保持有重复的若干组用于输出TCP数据流的输出缓存器。这些缓存器存储发送到对等路由器的数据的片段。如果对发送的片段的确认是从目的地对等路由器接收的,则将该片段从AMB和SMB中的缓存器中删除。如果在预定时间周期内没有接收到对发送的片段的确认,则重新发送该片段。
[0007]现有技术的解决方案中存在一些问题。首先,现有解决方案在SMB中的问题对AMB存在影响的情况下不可靠。例如,SMB的损坏由于使得流经SMB的TCP数据流断开而会影响到AMB。此外,现有解决方案消耗大量的内部IPC带宽。这会导致路由器内部的阻塞。此外,每个输入和输出TCP数据流都需要额外的跳变到它的目的地。这种额外的跳变对于输出数据流来说是从AMB到SMB,对于输入数据流来说是从SMB到AMB。
[0008]从而,需要一种能够提供TCP高可用性的可靠的、高效和简单的解决方案。还需要一种能够减小IPC带宽消耗的TCP高可用性系统。
发明内容
[0009]本发明提供了如下的方法和机制,用于向AMB和SMB并发地传送输入数据流,并发地将来自AMB的输出数据流发送到SMB和对等路由器,在AMB和SMB之间对输入和输出数据流进行同步,以及在AMB和SMB之间加速输入和输出数据流的同步。此外,本发明提供了一种应用选项,使用TCP来控制是否将来自AMB中的应用的输出数据流传送到SMB中的相应应用中,并选择用于实现更高性能的同步方法。
[0010]根据特定的实施例,本发明提供了一种传输控制协议(TCP)高可用性(HA)通信系统。该系统包括第一主板或主用主板。该第一主板包括第一处理器,其具有第一应用组件和第一传输控制协议(TCP)组件。第一应用组件与第一TCP组件相耦合以用于接收和发送数据和消息。该系统还包括第二主板或备用主板。该第二主板包括第二处理器,其具有第二应用组件和第二传输控制协议(TCP)组件。第二应用组件和第二TCP组件相耦合以用于接收数据和消息。第一TCP组件还与第二TCP组件相耦合以用于接收和发送数据和消息。该系统还包括线卡或接口卡。在该系统中,第一TCP组件和第二TCP组件被配置为从线卡并发地接收输入数据。此外,第一TCP组件被配置为向线卡和第二TCP组件并发地发送输出数据。在一个实施例中,第一TCP组件、第二TCP组件、第一应用组件和第二应用组件分别包括软件代码。在各种实施例中,该系统还包括用于同步输入和输出数据的组件。
[0011]在各种实施例中,本发明提供了用于同步输入和输出数据的方法。在特定的实施例中,提供了一种在传输控制协议(TCP)高可用性(HA)通信系统中使用显式确认进行输入数据同步的方法。此外,提供了一种使用隐式(implied)确认进行输入数据同步的方法。还提供了另一种用于以顺序方式进行输出数据同步的方法。还提供了另一种以并发方式进行输出数据同步的方法。
[0012]根据另一个实施例,本发明提供了一种高可用性通信系统。根据一个可选择的实施例,本发明提供了一种通信系统。该系统包括第一处理器,其具有第一应用组件和第一协议组件。第一应用组件与第一协议组件相耦合以用于接收和发送数据和消息。该系统还包括第二处理器,其具有第二应用组件和第二协议组件。第二应用组件与第二协议组件相耦合。此外,第一协议组件与第二协议组件相耦合以用于发送和接收数据和消息。而且,第一协议组件和第二协议组件被配置为从线卡并发地接收输入数据。第一协议组件还被配置为向线卡和第二协议组件并发地发送输出数据。
[0013]在该通信系统的一个特定实施例中,第一协议组件包括第一传输控制协议(TCP)组件,第二协议组件包括第二传输控制协议(TCP)组件。在一个实施例中,通过短确认和请求消息在第一处理器和第二处理器之间同步TCP状态和数据。
[0014]在该通信系统的另一个特定实施例中,第一协议组件包括第一用户数据报协议(UDP)组件,第二协议组件包括第二用户数据报协议(UDP)组件。在又一个实施例中,第一协议组件包括第一因特网协议(IP)组件,第二协议组件包括第二因特网协议(IP)组件。在各种实施例中,在第一处理器和第二处理器之间同步通信状态和数据。本领域普通技术人员可将本文中提供的在TCP HA中进行同步的特定方法用于其他协议,如UDP和IP等。
[0015]本发明提供了一种可靠、高效并且简单的TCP高可用性解决方案。其使SMB中的问题对AMB产生的影响最小化。其内部IPC带宽消耗大大降低。其性能更高。除了TCP,这种新方法还可用于诸如用户数据报协议(UDP)和因特网协议(IP)等的其它协议以得到高可用性。
[0016]下面的说明和附图详细阐述了本发明的多个说明性实施例。这些实施例仅仅说明了本发明能够使用的多种方式中的几种。
附图说明
[0017]为了更完整地理解本申请及其优点,结合附图参考下文中的详细描述,其中,相同的附图标记表示相同的部件:
[0018]图1描绘了基于流经的TCP HA体系结构;
[0019]图2描绘了根据本发明的基于组播的TCP HA的基本软件体系结构;
[0020]图3描绘了根据本发明的通过显式确认来进行输入TCP数据同步的示意图;
[0021]图4描绘了根据本发明的通过隐式确认来进行输入TCP数据同步的示意图;
[0022]图5描绘了根据本发明的以顺序方式来进行输出TCP数据同步的示意图;以及
[0023]图6描绘了根据本发明的以并发方式来进行输出TCP数据同步的示意图。
具体实施例
[0024]为使本领域技术人员能够实现和使用本发明,下面将提供对本发明的描述。这里描述的总的原理也可以在不脱离这里所定义的本发明的精神和保护范围的基础上适用于下文详细说明以外的其它实施例和应用。本发明并不限于本申请给出的示例,而是与本申请公开的原理和特征的最广范围相一致。
[0025]本发明解决了现有技术中存在的问题。首先,其通过使SMB中的问题对AMB产生的影响最小化并降低AMB对SMB的依赖性而显著地提高了TCP HA的可靠性。而且,其使用组播或其它机制,通过并发地将输入数据流传送到AMB和SMB以及将来自AMB的输出数据流并发地发送到SMB和经由线卡发送到对等路由器,实质地减少了IPC带宽的消耗。此外,对于任何输入数据流和输出数据流都无需额外的跳变。来自对等路由器的输入数据流被直接传送到其目的地AMB和SMB。来自AMB的输出数据流被直接发送到其目的地对等路由器,而无需流经SMB。
[0026]本发明提供了一种更高效的TCP HA解决方案。首先,在本发明中,将来自对等路由器的输入数据流并发地传送到AMB和SMB,并由AMB和SMB并发处理。对于来自AMB的输出数据流也是同样的,并发地将其发送到SMB并经由线卡发送到对等路由器。其次,可通过AMB和SMB之间的短请求消息来加速AMB和SMB之间的同步。此外,TCPHA的大部分负载可以转移到SMB。因此,AMB以及整个系统都可具有更高的性能。
[0027]根据本实施例,本发明包括多种将要使用的特征。这些特征包括:
1、将输入数据并发地传送到AMB和SMB的方法和机制。
2、通过显式确认消息,在AMB中的TCP和SMB中的TCP之间同步输入数据的方法和机制。
3、通过显式请求消息,在AMB中的TCP和SMB中的TCP之间加速输入数据同步的方法和机制。
4、通过隐式确认消息,在AMB中的TCP和SMB中的TCP之间同步输入数据的方法和机制。
5、通过对来自SMB的隐式确认进行解码并向SMB发送请求消息,在AMB中的TCP和SMB中的TCP之间加速输入数据的同步的方法和机制。
6、将输出数据并发地发送到SMB中的TCP以及去往对等路由器的线卡的方法和机制。
7、以顺序方式在AMB中的TCP和SMB中的TCP之间同步输出数据的方法和机制。
8、以并发方式在AMB中的TCP和SMB中的TCP之间同步输出数据的方法和机制。
9、允许应用控制是否将输出和输入数据发送到SMB中的相应的应用的机制。
10、允许应用选择在AMB中的TCP和SMB中的TCP之间对输入和输出数据进行同步的方法的机制。
[0028]如上所示,上述特征会体现在下面的一个或多个实施例中。这些特征仅仅是示例性的,而不应该不当地限制权利要求的范围。本领域的技术人员会了解各种变形、修改和替换。
[0029]图2是根据本发明实施例的高可用性通信系统200的简化视图。该图仅仅是一个例子,不应该不当地限制权利要求的范围。本领域技术人员能够想到各种变形、修改和替换。如图所示,通信系统200包括第一主板或主用主板210(AMB)以及第二主板或备用主板220(SMB)。第一主板210包括第一处理器216,第一处理器216包括第一应用组件212(App)和第一协议组件214。第二主板220包括第二处理器226,第二处理器226包括第二应用组件222(App)和第二协议组件224。在图2的具体实施例中,协议组件214和224均为传输控制协议(TCP)组件。在替换实施例中,协议组件可以包括其它通信协议。
[0030]在一个实施例中,第一处理器216为主用处理器,而第二处理器226为备用处理器。作为一个具体实例,系统200可以在一个路由器中包括两个控制处理器,一个作为主用处理器,另一个作为备用处理器。在一个具体实施例中,通信系统200还包括连接各个组件的通信链路。如图2中所示,协议组件214和应用组件212用链路217和218相耦合以传输数据。类似的,协议组件224和应用组件222用链路227和228相耦合以传输数据。此外,处理器210中的应用组件212和处理器220中的应用组件222用链路236相耦合以传输数据。协议组件214和224用链路235和链路234相耦合。
[0031]此外,通信系统200通过线卡240与网络中的系统(例如对等路由器)交换数据和消息。在一个具体实施例中,线卡240可以是接口组件。在图2的例子中,线卡240通过链路231、232和233与系统210和220进行通信以传输数据。
[0032]在一个实施例中,第一TCP组件214和第二TCP组件224被配置为从线卡240并发地接收输入数据。第一TCP组件214还被配置为向线卡240和第二TCP组件224并发地发送输出数据。在一个实例中,当第一TCP组件214向线卡240和第二TCP组件224并发地发送输出数据时,使用组播。当然,也可以使用其它方法。第一处理器216还被配置为向第二处理器226发送输出数据。在一个实施例中,第二处理器226中的第二应用组件222监听输入数据或输出数据,以更新其状态和数据结构。在一个具体实施例中,通过短确认和请求消息,在主用主板和备用主板之间同步TCP状态和数据。
[0033]尽管上文示出了使用选择的一组组件来提高通信系统的可靠性,但是还可以有很多替换、修改和变形。例如,一些组件可以扩展和/或合并。可以在上述组件中插入其它组件。根据该实施例,组件的排列可以与其它替代组件互换。这些组件的进一步的详细说明会在说明书的通篇中体现,并且在下面具体说明。
[0034]根据该实施例,可以用硬件、软件、固件或它们的组合的方式来实现上文所述的应用组件和协议组件。根据本发明的一个具体实施例,通信系统200包括用于实现各种功能和处理的计算机软件代码。例如,第一TCP组件214、第二TCP组件224、第一应用组件212和第二应用组件222包括用于分别实现其各自的处理和操作的软件代码。在下文中将参照图2-6讨论软件体系结构以及特定操作方法的实例。
[0035]基本软件体系结构
[0036]在图2中描述了本发明的基本软件体系结构。使用组播或其它机制将输入TCP数据从线卡并发地发送到各个TCP,并随后并发地发送到主用主板(AMB)和备用主板(SMB)中的应用。通过组播或其它机制,将AMB中的来自诸如BGP的应用的输出TCP数据并发地经由线卡发送到对等路由器以及发送到SMB中的TCP。增强TCP或套接字层以便提供这样的选项,即允许应用选择是否向SMB中的应用发送输出TCP数据。SMB中的应用监听输入TCP数据或输出TCP数据,以便更新它们的状态和数据结构。通过短确认和请求消息,在AMB和SMB之间同步TCP状态和数据。
[0037]输入TCP数据同步
[0038]本发明提供了两种用于在AMB和SMB之间同步输入TCP数据的方法。一种方法使用显式确认;另一种方法使用隐式确认。
[0039]通过显式确认进行的输入TCP数据同步
[0040]图3示出了通过显式确认进行输入TCP数据同步的体系结构。通过显式确认在AMB和SMB之间进行输入TCP数据同步的过程如下所示:
1、通过组播或其它机制将来自对等路由器的输入TCP数据并发地发送到主用主板(AMB)和备用主板(SMB)中的TCP;
2、根据需要,SMB中的TCP按顺序将该数据传送给相应的应用;
3、在从对等路由器接收到该数据之后,SMB中的TCP向AMB中的TCP发送对该数据的确认消息;
4、在接收到该数据并且从SMB中的TCP接收到对该数据的确认消息后,AMB中的TCP将该数据传送到适当的应用;
5、在接收到该数据并且从SMB中的TCP接收到对该数据的确认消息后,AMB中的TCP向对等路由器发送对其从对等路由器接收的数据的确认。
[0041]为了加速SMB中的TCP和AMB中的TCP的状态和数据的同步,
·在接收到数据后的给定时间内,未从SMB中的TCP接收到对该数据的任何确认消息,则AMB中的TCP就向SMB中的TCP发送该数据;
·在从SMB中的TCP接收到对该数据的确认消息之后的给定时间内,没有从对等路由器接收到该数据,则AMB中的TCP向SMB中的TCP发送请求消息;以及
·在从AMB中的TCP接收到对该数据的请求消息之后,SMB中的TCP向MB中的TCP发送该数据。
[0042]使用上文所述的加速步骤,本方法将具有更高的整体性能。在SMB中的TCP没收到来自对等路由器的数据分组,而AMB中的TCP收到了这些数据分组的情况下,AMB中的TCP比对等路由器更快地将该数据分组发送到SMB中的TCP。在AMB中的TCP没收到来自对等路由器的数据分组,而SMB中的TCP收到了这些数据分组的情况下,SMB中的TCP将通过接收来自AMB中的TCP的请求,比对等路由器更快地将该数据分组发送到AMB中的TCP。
[0043]为了避免在一些特定情况下,不必要的请求和数据对性能的影响,将相应地调整发送数据/请求消息的计时器。它们应少于TCP重传计时器。当检测到发送的大部分数据/请求都不是必要的,或者发送数据/请求消息不能显著提高输入TCP数据同步的速度,则将关闭它们。这可以通过记录在SMB中的TCP和AMB中的TCP之间发送的数据/请求所节省的时间百分比来实现。
[0044]通过隐式确认进行的输入TCP数据同步。
[0045]图4示出了通过隐式确认进行输入TCP数据同步的体系结构。通过隐式确认在AMB中的TCP和SMB中的TCP之间进行输入TCP数据同步的过程如下:
1、将来自对等路由器的输入TCP数据通过诸如组播之类的机制并发地发送到AMB中的TCP和SMB中的TCP;
2、根据需要,SMB中的TCP按顺序将该数据传送到相应的应用;
3、SMB中的TCP向AMB中的TCP发送对该数据的隐式确认(i-Ack)消息。隐式确认或简称i-ack可以是如下的消息:当发现数据丢失(这暗示在该丢失的数据之前的数据都已经接收到)时,隐式确认是数据请求消息;或者当从所发送的最后一个请求消息之后接收的数据量大于给定大小(例如其窗口/缓存器大小的1/2)或在给定时间内其没有发送任何请求消息时,隐式确认是空请求消息。空请求消息包含与最后接收到的字节相对应的序列号,这表示该序列号之前的所有数据都已经接收到了;
4、AMB中的TCP按照顺序将其缓存器中的、被SMB中的TCP确认的所有数据发送给应用;以及
5、AMB中的TCP向对等路由器发送对其接收到的并且被SMB中的TCP确认的所有数据的确认。
[0046]为了加速AMB中的TCP和SMB中的TCP的状态和数据的同步,
·在从SMB中的TCP接收到为非空请求消息的隐式确认之后,AMB中的TCP向SMB中的TCP发送数据消息;
·在确定AMB中丢失了该数据,而SMB中的TCP接收到该数据之后,AMB中的TCP向SMB中的TCP发送对该数据的请求消息;以及
·在接收到来自AMB的请求消息之后,SMB中的TCP以消息形式将该数据发送给AMB中的TCP。
[0047]输出TCP数据同步
[0048]本发明提供了两种用于在AMB和SMB之间同步输出TCP数据的方法。这两种方法之间的差异在于,一种以顺序方式执行,而另一种以并发方式执行。
[0049]以顺序方式执行的输出TCP数据同步
[0050]图5示出了以顺序方式在AMB和SMB之间进行输出TCP数据同步的体系结构。以顺序方式在AMB中的TCP和SMB中的TCP之间进行输出TCP数据同步的过程如下:
1、将来自AMB中的应用的数据发送到AMB中的TCP,并且AMB中的TCP按顺序将所述数据存储在其缓存器中;
2、以数据消息的形式将所述数据发送到SMB中的TCP;
3、SMB中的TCP按顺序将所述数据存储在其缓存器中,并在SMB中的相应的应用需要监听输出数据时,将该数据发送到SMB中的相应的应用;
4、SMB中的TCP向AMB中的TCP发送对该数据的隐式确认(i-Ack)消息;
5、AMB中的TCP向对等路由器发送由来自SMB中的TCP的隐式确认所确认的数据;以及
6、AMB中的TCP在从对等路由器接收到对数据的确认时,从其窗口和缓存器中移除该数据,并且SMB中的TCP在从对等路由器接收到对该数据的确认时,从其窗口和缓存器中移除该数据。
[0051]为了加速AMB中的TCP和SMB中的TCP的输出TCP数据流的状态和数据同步,
·当发现一些数据丢失时,SMB中的TCP向AMB中的TCP发送隐式确认(i-Ack)以请求该数据;以及
·在接收到该请求后,AMB中的TCP向SMB中的TCP发送该数据。
[0052]以并发方式进行输出TCP数据同步
[0053]图6示出了以并发方式在AMB和SMB之间进行输出TCP数据同步的体系结构。以并发方式在AMB中的TCP和SMB中的TCP之间进行输出TCP数据同步的过程如下所示:
1、将来自AMB中的应用的数据发送到AMB中的TCP,并且AMB中的TCP按顺序将所述数据存储在其缓存器中;
2、通过诸如组播的机制将数据并发地发送到SMB中的TCP和LC;
3、SMB中的TCP按顺序将数据存储在其缓存器中,并在SMB中的相应的应用需要读取输出数据时,将该数据发送到SMB中的相应的应用;
4、SMB中的TCP向AMB中的TCP和LC并发地发送隐式确认(i-Ack)以对该数据进行确认;
5、在接收到确认该数据的隐式确认(i-Ack)之后,LC将该数据发送到对等路由器;以及
6、AMB中的TCP在从对等路由器接收到对数据的确认之后,从其窗口和缓存器中移除该数据,并且SMB中的TCP在从对等路由器接收到对数据的确认之后,从其窗口和缓存器中移除该数据。
[0054]为了加速LC、AMB中的TCP和SMB中的TCP之间的状态和数据同步,
·当SMB中的TCP发现一些数据丢失时,SMB中的TCP向AMB中的TCP发送隐式确认(i-Ack)以请求该数据;
·在接收到请求之后,AMB中的TCP向SMB发送该数据;以及
·如果AMB中的TCP从SMB中的TCP接收到对数据的隐式确认(i-Ack),但是在给定时间内没有从对等路由器接收到任何确认,则AMB中的TCP向LC发送确认该数据的隐式确认(i-Ack)。在这种情况下,还生成警报,指示由于来自SMB的隐式确认没有到达LC,所以SMB可能存在一些问题。
[0055]使用具有HA的TCP在TCP和应用之间进行协调
[0056]使用具有高可用性的TCP对TCP和应用在不同阶段进行协调以达到高可用性。对于要由SMB中的相应应用保护的AMB中的应用,它将从SMB中相应应用开始经历一系列的阶段。第一阶段为“批量备份”。该阶段从SMB中的相应应用开始运行时开始,并从AMB中相应应用中备份状态和数据。其在第二阶段“实时备份”之前终止。该阶段从SMB中的相应应用开始读取输入或输出TCP数据流时开始,并在切换发生时终止。
[0057]在应用的批量备份期间
[0058]在批量备份阶段期间,AMB中的应用、SMB中的相应应用、AMB中的TCP以及SMB中的TCP之间的相互协调如下所示:
·AMB中的应用将其TCP套接字备份到SMB中相应的应用。
·在SMB上相应的应用创建了TCP套接字之后,AMB和SMB之间在TCP层中对套接字的状态和数据结构进行同步。
·对于输入TCP数据,在该阶段期间AMB中的TCP和SMB中的TCP之间的输入数据同步与上述过程基本相同。不同之处在于,SMB中的TCP并不向SMB中的应用传送任何输入数据。
·对于输出TCP数据,在该阶段期间AMB中的TCP和SMB中的TCP之间的输出数据同步与上述过程基本相同。不同之处在于,SMB中的TCP并不向SMB中的应用传送任何输出数据。
[0059]在批量备份之后,实时备份之前
[0060]在批量备份之后实时备份之前的周期期间,将AMB和SMB中的不同组件间的协调分为两部分叙述。一部分针对输入TCP数据流,另一部分针对输出TCP数据流。
对于输入TCP数据流:
·AMB中的TCP拖延向AMB中的应用传送数据。
·AMB中的TCP向SMB中的TCP发送与拖延之前传送到该应用的数据的最后字节相对应的序列号m。
·AMB中的应用将数据从其TCP输入缓存器中复制到SMB中的相应应用。缓存器中数据的起点应该为应用消息的边界。
应用的输入缓存器中的数据,SMB中的TCP的输入缓存器中的数据以及来自对等路由器的输入TCP数据将在SMB中为从AMB备份的套接字形成连续的输入TCP数据流。
[0061]对于输出TCP数据流:
·AMB中的应用拖延向TCP传送数据。
·AMB中的TCP向SMB中的TCP发送与拖延之前由应用传送到TCP的数据分组的最后字节相对应的序列号n。该最后字节应该为应用消息的边界。
[0062]在实时备份开始后
[0063]在实时备份开始时,将AMB和SMB中的不同组件间的相互协调分两部分叙述。一部分针对输入TCP数据流。另一部分针对输出TCP数据流。
·对于输TCP数据流:
ο根据需要,SMB中的TCP向SMB中相应的应用发送来自对等路由器的从序列号m+1开始的输入TCP数据。
ο根据需要,SMB中的应用开始读取来自对等路由器的输入TCP数据。
·对于输出TCP数据流:
ο根据需要,SMB中的TCP向SMB中的相应应用发送从序列号n+1开始的来自AMB中的应用的输出TCP数据。
ο根据需要,SMB中的应用开始读取来自AMB中的应用的输出TCP数据。
[0064]切换和恢复
[0065]当由诸如AMB中的冲突之类的问题触发或由用户指令强制引起的切换发生时,将执行切换和恢复的过程。该过程包括:
·旧的SMB变为新AMB
·使用新AMB中的TCP的应用通过TCP向对等路由器发送数据
·新AMB中的应用更新路由表管理器(RTM)
·新AMB中的应用接收并处理接口事件
·针对任何对等会话,若其状态并非最终状态,则重建其会话(例如,为BGP对等建立)
·新AMB中的TCP开始向对等路由器发送确认分组
·新AMB中的TCP从应用接收数据,并向对等路由器发送数据
[0066]一些扩展TCP套接字选项
[0067]扩展TCP套接字选项允许应用选择或控制与TCP HA相关的一些行为,诸如是否将输入和输出数据传送到SMB中的相应应用。这些选项包括:
·向应用传送输出数据——这一选项可以由AMB或SMB中的应用设置。当启用该选项时,SMB中的TCP向SMB中的应用发送来自AMB中相应应用的输出TCP数据。
·向应用传送输入数据——这一选项可以由AMB或SMB中的应用设置。当启用该选项时,SMB中的TCP向SMB中的应用发送来自对等路由器的输入TCP数据。
·输出数据同步方法——应用可以使用该选项来选择一种输出TCP数据同步方法。
·输入数据同步方法——应用可以使用该选项来选择一种输入TCP数据同步方法。
[0068]根据特定实施例,本发明提供了一种在传输控制协议(TCP)高可用性(HA)通信系统中使用显式确认进行输入数据同步的方法。该通信系统包括第一处理器和第二处理器。第一处理器具有第一TCP组件和第一应用组件,第二处理器具有第二TCP组件和第二应用组件。所述进行输入数据同步的方法包括如下过程:
1、在第一处理器中的第一TCP组件和第二处理器中的第二TCP组件,并发地接收输入数据;
2、在接收到输入数据之后,根据需要将该输入数据从第二TCP组件传输到第二处理器中的第二应用组件;
3、在接收到输入数据之后,从第二TCP组件向第一TCP组件发送对该数据的确认消息;
4、在第一TCP组件从第二TCP组件接收到所述数据和所述确认消息之后,从第一TCP组件向第一应用组件传输所述输入数据;以及
5、从第一TCP组件向线卡发送确认分组,由此将确认分组传送到对等路由器。
例如,该方法可根据图2和图3实现。
[0069]在使用显式请求消息进行输入数据同步的特定实施例中,用于加速同步的方法包括如下过程:
·在接收了输入数据之后,如果在第一预定时间长度内未收到来自第二TCP的确认消息,则第一TCP组件向第二TCP组件发送接收到的输入数据;
·在从第二TCP接收了输入数据的确认消息之后,如果在第二预定时间长度内未收到输入数据,则第一TCP向第二TCP发送对数据的请求消息;以及
·在从第一TCP接收了对数据的请求消息之后,第二TCP向第一TCP发送输入数据。
[0070]根据本发明的另一个实施例,提供了一种在传输控制协议高可用性(TCP HA)通信系统中使用隐式确认进行输入数据同步的方法。该通信系统包括第一处理器和第二处理器。第一处理器具有第一TCP组件和第一应用组件,第二处理器具有第二TCP组件和第二应用组件。进行输入数据同步的方法包括如下过程:
1、在第一处理器中的第一TCP组件和第二处理器中的第二TCP组件并发接收输入数据;
2、根据需要,第二TCP组件向第二应用组件提供该数据;
3、第二TCP组件向第一TCP组件发送隐式确认消息;
4、第一TCP组件向第一应用组件按顺序发送其缓存器中的已被第二TCP组件确认的数据;
5、从第一TCP组件向线卡发送对第一TCP组件处接收的数据的确认,该数据是被第二TCP组件确认的,由此可将确认传送到对等路由器。
例如,该方法可根据图2和图4实现。
[0071]在使用隐式确认进行输入数据同步的一个特定实施例中,该隐式确认消息可采用不同的形式。例如,当预期的数据丢失时,该隐式确认消息是对数据的请求。该请求暗示这一丢失的数据之前的数据都已经接收到。在另一实例中,当从发送给第一TCP组件的最后一个请求消息开始,发送给应用的数据量超过了给定大小(如窗口/缓存器大小的1/2)时,隐式确认消息也可以是空请求消息,该空请求消息包括与发送给第二应用组件的最后字节相对应的序列号。该空请求暗示已经接收到在该序列号之前的全部数据。在又一个例子中,如果在给定时间内无任何请求消息发送到第一TCP组件,则隐式确认消息可以是具有与发送给第二应用的最后字节相对应的序列号的空请求消息。
[0072]在使用隐式确认进行输入数据同步的方法的另一个特定实施例中,使用如下过程加速输入数据的同步:
·第一TCP组件在接收到来自第二TCP组件的为非空请求消息的隐式确认之后,向第二TCP组件发送数据消息;
·第一TCP组件在确定第一TCP组件丢失了数据而第二TCP组件已经接收到该数据之后,向第二TCP组件发送对该数据的请求消息;以及
·第二TCP组件在从第一TCP组件接收到请求消息之后,以消息的形式向第一TCP组件发送该数据。
[0073]在另一个特定实施例中,本发明提供了一种在传输控制协议高可用性(TCP HA)通信系统中以顺序方式进行输出数据同步的方法。该通信系统包括第一处理器和第二处理器。第一处理器具有第一TCP组件和第一应用组件,而第二处理器具有第二TCP组件和第二应用组件。进行输出数据同步的方法包括如下过程:
1、从第一应用组件向第一TCP组件发送数据,并将该数据存储在第一TCP组件的缓存器中;
2、以数据消息的形式向第二TCP组件发送该数据;
3、将该数据存储在第二TCP组件的缓存器中,如果第二应用需要监听输出数据,则向第二处理器中的第二应用组件发送该数据;
4、第二TCP组件向第一TCP组件发送隐式确认消息;
5、第一TCP组件向对等路由器发送由来自第二TCP组件的隐式确认消息所确认的数据;以及
6、第一TCP组件在从对等路由器接收到对该数据的确认后,从其窗口和缓存器中移除该数据,并且,第二TCP组件在从对等路由器接收到对该数据的确认后,从其窗口和缓存器中移除该数据。
例如,该方法按照图2和图5实现。
[0074]在TCP HA通信系统中以顺序方式进行输出数据同步的另一个特定实施例中,使用如下过程加速输出数据的同步:
·第二TCP组件向第一TCP组件发送隐式确认(i-Ack),用于在发现一些数据丢失时请求该数据;以及
·第一TCP组件在接收到请求后,向第二TCP组件发送该数据。
[0075]在另一实施例中,本发明提供了一种在传输控制协议高可用性(TCPHA)通信系统中以并发方式进行输出TCP数据同步的方法。该通信系统包括第一处理器和第二处理器。第一处理器具有第一TCP组件和第一应用组件,第二处理器具有第二TCP组件和第二应用组件。进行输出数据同步的方法包括如下过程:
1、从第一应用组件向第一TCP组件发送数据,并将该数据存储在第一TCP组件的缓存器中;
2、向第二TCP组件和线卡并发地发送该数据;
3、将该数据存储在第二处理器中的第二TCP组件中的缓存器中,并且如果第二应用需要监听输出数据,则向第二处理器中的第二应用组件发送该数据;
4、第二TCP组件向第一TCP组件和线卡并发地发送隐式确认消息;
5、在接收到用于确认该数据的隐式确认后,线卡向对等路由器发送该数据;以及
6、第一TCP组件在从对等路由器接收到对数据的确认之后,从其窗口和缓存器中移除该数据,第二TCP组件在从对等路由器接收到对数据的确认之后,从其窗口和缓存器中移除该数据。
例如,按照图2和图6实现该方法。
[0076]在TCP HA通信系统中以并发方式进行输出数据同步的方法的另一个特定实施例中,使用如下过程加速输出数据的同步:
·第二TCP组件在发现一些数据丢失时,向第一TCP组件发送用于请求该数据的隐式确认(i-Ack);
·第一TCP组件在接收到请求之后,向第二TCP组件发送该数据;以及
·如果第一TCP组件从第二TCP组件接收到对数据的隐式确认(i-Ack),但在给定时间内并未从对等路由器接收到任何确认,则向线卡发送用于确认该数据的隐式确认(i-Ack)。在这种情况下,第一TCP组件还生成警报,指示:由于第二处理器的隐式确认未到达线卡,所以可能第二处理器中存在一些问题。
[0077]根据可选实施例,本发明提供了一种通信系统。该系统包括第一处理器,其具有第一应用组件和第一协议组件。第一应用组件与第一协议组件相耦合,用于接收和发送数据和消息。该系统还包括第二处理器,其具有第二应用组件和第二协议组件。第二应用组件与第二协议组件相耦合。此外,第一协议组件与第二协议组件相耦合,用于发送和接收数据和消息。而且,第一协议组件和第二协议组件被配置为并发地接收来自线卡的输入数据。第一协议组件还被配置为向接口和第二协议组件并发地发送输出数据。
[0078]在该通信系统的一个特定实施例中,第一协议组件包括第一传输控制协议(TCP)组件,第二协议组件包括第二传输控制协议(TCP)组件。在一个实施例中,通过短确认和请求消息,在第一处理器和第二处理器之间对TCP状态和数据进行同步。例如,在图2-6中实现的系统。
[0079]在该通信系统的另一特定实施例中,第一协议组件包括第一用户数据报协议(UDP)组件,第二协议组件包括第二用户数据报协议(UDP)组件。在另一实施例中,第一协议组件包括第一因特网协议(IP)组件,第二协议组件包括第二因特网协议(IP)组件。在各种实施例中,在第一处理器和第二处理器之间对通信状态和数据进行同步。本领域的普通技术人员能够将本申请提供的在TCP HA中进行同步的具体方法用于其他协议,如UDP和IP等。
[0080]在本发明的特定实施例中,提供了一种传输控制协议(TCP)高可用性(HA)通信系统。该系统包括第一处理器,其具有第一应用组件和第一传输控制协议(TCP)组件。第一应用组件与第一TCP组件相耦合,用于接收和发送数据和消息。该系统还包括第二处理器,其包括第二应用组件和第二传输控制协议(TCP)组件。第二应用组件与第二TCP组件相耦合,用于接收数据,第一TCP组件与第二TCP组件相耦合,用于接收和发送数据和消息。在该系统中,第一TCP组件和第二TCP组件被配置为从线卡并发地接收输入数据。此外,第一TCP组件还被配置为向线卡和第二TCP组件并发地发送输出数据。
[0081]本发明的效果
[0082]本发明的效果是显著改善了TCP HA的可靠性、可扩展性和性能。首先,其通过使SMB中的问题对AMB的影响最小化并降低AMB对SMB的依赖性,显著地提高了TCP HA的可靠性。而且,其利用组播或其它机制,通过向AMB和SMB并发地传送输入数据流,以及向SMB和到对等路由器的线卡并发地发送来自AMB的输出数据流,实质地降低了IPC带宽的消耗。这将极大地改善TCP HA的可扩展性和性能。此外,任何输入数据流和输出数据流都不需要额外的跳变。来自对等路由器的输入数据流被直接传送到其目的地AMB和SMB。来自AMB的输出数据流被直接发送到其目的地对等路由器,而无需流经SMB。
[0083]提供了上面的描述和公开实施例以使得本领域技术人员能够实现或者使用本发明。对这些实施例的各种修改对于本领域技术人员来说是显而易见的,并且,本申请定义的总体原理也可以在不脱离本发明的精神和范围的情况下应用于其它实施例。因此,本发明并不限于本申请给出的实施例,而是与本申请公开的原理和新颖性特征的最广范围相一致。
Claims (22)
1、一种传输控制协议TCP高可用性HA通信系统,其特征在于,所述系统包括:
第一主板或主用主板,所述第一主板包括第一处理器,所述第一处理器包括第一应用组件和第一传输控制协议TCP组件,所述第一应用组件与所述第一TCP组件相耦合用于接收和发送数据;以及
第二主板或备用主板,所述第二主板包括第二处理器,所述第二处理器包括第二应用组件和第二传输控制协议TCP组件,所述第二应用组件与所述第二协议组件相耦合用于接收数据,所述第一TCP组件与所述第二TCP组件相耦合用于接收和发送数据和消息;
所述第一TCP组件和所述第二TCP组件被配置为并发地从线卡接收输入数据;
所述第一TCP组件被配置为并发地向所述线卡和所述第二TCP组件发送输出数据。
2、根据权利要求1所述的系统,其中,所述第一TCP组件、所述第二TCP组件、所述第一应用组件和所述第二应用组件分别包括软件代码。
3、根据权利要求1所述的系统,其中,所述第一TCP组件用于:
使用诸如组播的机制向所述线卡和所述第二TCP组件并发地发送输出数据。
4、根据权利要求1所述的系统,其中,所述线卡用于向对等路由器发送输出数据。
5、根据权利要求1所述的系统,其中,所述第二处理器中的所述第二应用组件监听所述输入数据或者所述输出数据,以更新其状态和数据结构。
6、根据权利要求1所述的系统,其中,通过短确认和请求消息在所述第一处理器和所述第二处理器之间对TCP状态和数据进行同步。
7、根据权利要求1所述的系统,还包括:
用于使用显式确认进行输入数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
在所述第一处理器中的所述第一TCP组件和所述第二处理器中的所述第二TCP组件处并发地接收输入数据;
在接收到所述输入数据之后,根据需要将所述输入数据从所述第二处理器中的所述第二TCP组件传输到所述第二应用组件;
在接收到所述输入数据之后,从所述第二TCP组件向所述第一TCP组件发送对所述数据的确认消息;
在所述第一TCP组件已经接收到来自对等路由器的所述数据和来自所述第二TCP组件的所述确认消息之后,将所述输入数据从所述第一TCP组件传输到所述第一应用组件;以及
从所述第一TCP组件向所述线卡发送确认分组,由此将所述确认分组传送到所述对等路由器。
8、根据权利要求7所述的系统,还包括:
用于使用显式确认来加速所述输入数据的同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
在接收到所述输入数据之后,如果在第一预定时间长度内没有从所述第二TCP接收到确认消息,则所述第一TCP组件向所述第二TCP组件发送所接收的输入数据;
在从所述第二TCP接收到对输入数据的确认消息之后,如果在第二预定时间长度内没有接收到所述输入数据,则所述第一TCP向所述第二TCP发送对所述数据的请求消息;以及
在从所述第一TCP接收到对所述数据的所述请求消息之后,所述第二TCP向所述第一TCP发送所述输入数据。
9、根据权利要求1所述的系统,还包括用于使用隐式确认进行输入数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
在所述第一处理器中的所述第一TCP组件和所述第二处理器中的所述第二TCP组件处并发地接收输入数据;
所述第二TCP组件根据需要将所述数据提供给所述第二应用组件;
所述第二TCP组件向所述第一TCP组件发送对所述输入数据的隐式确认消息;
所述第一TCP组件向所述第一应用组件按顺序发送其缓存器中的由所述第二TCP组件确认的数据;以及
从所述第一TCP组件向所述线卡发送对所述第一TCP组件处接收的数据的确认,所述数据是由所述第二TCP组件确认的,由此将所述确认传送到对等路由器。
10、根据权利要求9所述的系统,其中,所述隐式确认消息包括下述各项中的一项:
当期望的数据丢失时的对所述数据消息的请求;或者
当从发送给所述第一TCP组件的最后一个请求消息开始未被确认的数据的数量大于给定大小,如窗口/缓存器大小的1/2,时的空请求消息,所述空请求消息包括与去往所述第一TCP组件的被确认的最后字节相对应的序列号;或者
当在给定时间内没有请求消息发送到所述第一TCP组件时的空请求消息,所述空请求消息包括与被确认的最后字节相对应的序列号。
11、根据权利要求9所述的系统,还包括用于使用隐式确认消息加速输入数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
所述第一TCP组件在从所述第二TCP组件接收到隐式确认之后,向所述第二TCP组件发送数据消息,所述隐式确认是非空请求消息;
所述第一TCP组件在确定了所述数据在所述第一TCP组件中丢失并且所述第二TCP组件已经接收到所述数据之后,向所述第二TCP组件发送对所述数据的请求消息;以及
所述第二TCP组件在从所述第一TCP组件接收到所述请求消息之后,以消息形式向所述第一TCP组件发送所述数据。
12、根据权利要求1所述的系统,还包括用于以顺序方式进行输出TCP数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
从所述第一应用组件向所述第一TCP组件发送数据,并将所述数据存储在所述第一TCP组件的缓存器中;
向所述第二TCP组件发送所述数据;
将所述数据存储在所述第二TCP组件的缓存器中;
如果所述第二应用需要监听输出数据,则向所述第二处理器中的所述第二应用组件发送所述数据;
所述第二TCP组件向所述第一TCP组件发送对所接收的数据的隐式确认消息;
所述第一TCP组件向对等路由器发送由来自所述第二TCP组件的所述隐式确认消息所确认的所述数据;以及
当接收到来自所述对等路由器的对所述数据的确认时,所述第一TCP组件从其窗口和缓存器中移除所述数据,以及,当接收到来自所述对等路由器的对所述数据的确认时,所述第二TCP组件从其窗口和缓存器中移除所述数据。
13、根据权利要求12所述的系统,还包括用于以顺序方式加速输出数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
当所述第二TCP组件发现一些数据丢失时,向所述第一TCP组件发送隐式确认i-Ack以用于请求所述数据;以及
所述第一TCP组件在接收到所述请求之后向所述第二TCP组件发送所述数据。
14、根据权利要求1所述的系统,还包括用于以并发模式进行输出TCP数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
从所述第一应用组件向所述第一TCP组件发送数据,并将所述数据存储在所述第一TCP组件的缓存器中;
从所述第一TCP组件向所述第二TCP组件和所述线卡并发地发送所述数据;
如果第二应用需要监听输出数据,则从所述第二TCP组件向所述第二处理器中的所述第二应用组件发送所述数据;
所述第二TCP组件向所述第一TCP组件和所述线卡并发地发送对所接收的数据的隐式确认消息;
在接收到所述隐式确认之后,所述线卡向对等路由器发送所述数据;以及
当接收到来自所述对等路由器的对所述数据的确认时,所述第一TCP组件从其窗口和缓存器中移除所述数据,以及,当接收到来自所述对等路由器的对所述数据的所述确认时,所述第二TCP组件从其窗口和缓存器中移除所述数据。
15、根据权利要求14所述的系统,还包括用于以并发模式加速输出TCP数据同步的组件,所述组件包括计算机程序代码,所述计算机程序代码用于:
当所述第二TCP组件发现一些数据丢失时,向所述第一TCP组件发送隐式确认以用于请求所述数据;
在接收到所述请求之后,所述第一TCP组件向所述第二TCP组件发送所述数据;以及
如果所述第一TCP组件已经从所述第二TCP组件接收到对所述数据的所述隐式确认,但是在给定时间内没有从所述对等路由器接收到任何确认,则所述第一TCP组件向所述线卡发送用于确认所述数据的隐式确认,在这种情况下,所述第一TCP组件还生成警报,指示由于来自所述第二处理器的所述隐式确认没有到达所述线卡,所以所述第二处理器中可能存在一些问题。
16、根据权利要求1所述的系统,还包括用于使所述第一应用组件或所述第二应用组件为所述第二TCP组件设置选项以向所述第二应用组件发送输出数据或输入数据的组件。
17、根据权利要求1所述的系统,还包括用于使所述第一应用组件或所述第二应用组件选择在所述第一TCP组件和所述第二TCP组件之间进行输入和输出数据同步的方法的组件。
18、一种通信系统,其特征在于,所述系统包括:
第一处理器,所述第一处理器包括第一应用组件和第一协议组件,所述第一应用组件与所述第一协议组件相耦合以用于接收和发送数据;以及
第二处理器,所述第二处理器包括第二应用组件和第二协议组件,所述第二应用组件与所述第二协议组件相耦合,所述第一协议组件与所述第二协议组件相耦合用于发送和接收数据和消息;
所述第一协议组件和所述第二协议组件被配置为并发地从线卡接收输入数据;
所述第一协议组件被配置为向所述线卡和所述第二协议组件并发地发送输出数据。
19、根据权利要求18所述的系统,其中,所述第一协议组件包括第一传输控制协议TCP组件,所述第二协议组件包括第二传输控制协议TCP组件。
20、根据权利要求19所述的系统,其中,通过短确认和请求消息在所述第一处理器和第二处理器之间对TCP状态和数据进行同步。
21、根据权利要求18所述的系统,其中,所述第一协议组件包括第一用户数据报协议UDP组件,所述第二协议组件包括第二用户数据报协议UDP组件。
22、根据权利要求18所述的系统,其中,所述第一协议组件包括第一因特网协议IP组件,所述第二协议组件包括第二因特网协议IP组件。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US88265006P | 2006-12-29 | 2006-12-29 | |
US60/882,650 | 2006-12-29 | ||
US11/963,717 US9648147B2 (en) | 2006-12-29 | 2007-12-21 | System and method for TCP high availability |
US11/963,717 | 2007-12-21 | ||
PCT/CN2007/071383 WO2008080356A1 (en) | 2006-12-29 | 2007-12-29 | System and method for tcp high availability |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101573940A true CN101573940A (zh) | 2009-11-04 |
CN101573940B CN101573940B (zh) | 2012-05-30 |
Family
ID=39583912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007800487862A Active CN101573940B (zh) | 2006-12-29 | 2007-12-29 | 用于tcp高可用性的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9648147B2 (zh) |
EP (1) | EP2098040B1 (zh) |
CN (1) | CN101573940B (zh) |
WO (1) | WO2008080356A1 (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011120423A1 (en) * | 2010-03-29 | 2011-10-06 | Huawei Technologies Co., Ltd. | System and method for communications system routing component level high availability |
CN105516122A (zh) * | 2015-12-03 | 2016-04-20 | 网宿科技股份有限公司 | 具有分等级配置的加速策略的网络传输加速方法和系统 |
WO2018153347A1 (en) * | 2017-02-21 | 2018-08-30 | Huawei Technologies Co., Ltd. | Elastic consistency high availability in multiple boards |
CN110313138A (zh) * | 2017-02-14 | 2019-10-08 | 华为技术有限公司 | 使用多个网元实现高可用性 |
CN111684428A (zh) * | 2018-02-12 | 2020-09-18 | 华为技术有限公司 | 超规模的云化n路路由保护 |
Families Citing this family (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101114892A (zh) * | 2006-07-28 | 2008-01-30 | 华为技术有限公司 | 一种报文备份方法 |
US9648147B2 (en) | 2006-12-29 | 2017-05-09 | Futurewei Technologies, Inc. | System and method for TCP high availability |
US8051326B2 (en) | 2006-12-29 | 2011-11-01 | Futurewei Technologies, Inc. | System and method for completeness of TCP data in TCP HA |
FR2949931B1 (fr) * | 2009-09-10 | 2011-08-26 | Canon Kk | Procedes et dispositifs de transmission d'un flux de donnees, produit programme d'ordinateur et moyen de stockage correspondants. |
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 |
US8769155B2 (en) | 2010-03-19 | 2014-07-01 | Brocade Communications Systems, Inc. | Techniques for synchronizing application object instances |
US8503289B2 (en) * | 2010-03-19 | 2013-08-06 | Brocade Communications Systems, Inc. | Synchronizing multicast information for linecards |
US8495418B2 (en) | 2010-07-23 | 2013-07-23 | Brocade Communications Systems, Inc. | Achieving ultra-high availability using a single CPU |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
EP2538612A4 (en) * | 2010-12-13 | 2013-01-02 | Huawei Tech Co Ltd | METHOD AND DEVICE FOR SERVICE MANAGEMENT |
CN102035687B (zh) * | 2011-01-06 | 2012-10-17 | 华为技术有限公司 | Tcp连接的备份方法及其设备 |
US8614941B2 (en) | 2011-05-09 | 2013-12-24 | Telefonaktiebolaget L M Ericsson (Publ) | Hitless switchover from active TCP application to standby TCP application |
US8745157B2 (en) | 2011-09-02 | 2014-06-03 | Trading Technologies International, Inc. | Order feed message stream integrity |
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 |
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 |
WO2014079012A1 (zh) * | 2012-11-22 | 2014-05-30 | 华为技术有限公司 | 一种设备信息备份的方法,设备和系统 |
JP6043307B2 (ja) * | 2014-02-25 | 2016-12-14 | 日本電信電話株式会社 | ネットワーク制御装置 |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
CN109739622B (zh) * | 2018-12-29 | 2020-12-04 | 杭州迪普科技股份有限公司 | 基于框式设备的主备主控配置同步方法和装置 |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5541927A (en) * | 1994-08-24 | 1996-07-30 | At&T Corp. | Method of multicasting |
US6182139B1 (en) | 1996-08-05 | 2001-01-30 | Resonate Inc. | Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm |
US6247059B1 (en) * | 1997-09-30 | 2001-06-12 | Compaq Computer Company | Transaction state broadcast method using a two-stage multicast in a multiple processor cluster |
US6898189B1 (en) * | 2000-08-23 | 2005-05-24 | Cisco Technology, Inc. | Restartable spanning tree for high availability network systems |
US6751191B1 (en) * | 1999-06-29 | 2004-06-15 | Cisco Technology, Inc. | Load sharing and redundancy scheme |
US6865591B1 (en) | 2000-06-30 | 2005-03-08 | Intel Corporation | Apparatus and method for building distributed fault-tolerant/high-availability computed applications |
US6910148B1 (en) * | 2000-12-07 | 2005-06-21 | Nokia, Inc. | Router and routing protocol redundancy |
US6826198B2 (en) | 2000-12-18 | 2004-11-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Signaling transport protocol extensions for load balancing and server pool support |
US20020107966A1 (en) | 2001-02-06 | 2002-08-08 | Jacques Baudot | Method and system for maintaining connections in a network |
US6853617B2 (en) | 2001-05-09 | 2005-02-08 | Chiaro Networks, Ltd. | System and method for TCP connection protection switching |
US20020176355A1 (en) * | 2001-05-22 | 2002-11-28 | Alan Mimms | Snooping standby router |
US7116634B1 (en) | 2001-12-21 | 2006-10-03 | Cisco Technology, Inc. | TCP sequence number recovery in a redundant forwarding system |
EP1331771B1 (en) | 2002-01-24 | 2007-01-17 | Alcatel Canada Inc. | Method and apparatus for synchronizing redundant communication tasks |
KR100464370B1 (ko) * | 2002-02-22 | 2005-01-03 | 삼성전자주식회사 | 라인 인터페이스 장치에서 전송 모드 자동 설정 방법 |
US7907613B1 (en) * | 2002-05-09 | 2011-03-15 | Avaya Inc. | Method and apparatus for measuring RTT in a cumulative acknowledgment transmission protocol |
US7292535B2 (en) * | 2002-05-23 | 2007-11-06 | Chiaro Networks Ltd | Highly-available OSPF routing protocol |
US7269133B2 (en) * | 2002-09-03 | 2007-09-11 | Jeremy Benjamin | IS-IS high availability design |
US6938179B2 (en) | 2002-11-01 | 2005-08-30 | Nokia Corporation | Socket extensions for redundancy |
US20040153700A1 (en) | 2003-01-02 | 2004-08-05 | Nixon Mark J. | Redundant application stations for process control systems |
CN100502384C (zh) | 2003-07-02 | 2009-06-17 | 西安大唐电信有限公司 | 一种主备用双机进行tcp连接倒换的方法 |
US7564792B2 (en) | 2003-11-05 | 2009-07-21 | Juniper Networks, Inc. | Transparent optimization for transmission control protocol flow control |
US7562363B1 (en) * | 2003-11-25 | 2009-07-14 | Cisco Technology, Inc. | Gang scheduling among one or more components or systems |
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 |
JP4490745B2 (ja) | 2004-06-29 | 2010-06-30 | 株式会社日立製作所 | ホットスタンバイシステム |
US7515525B2 (en) | 2004-09-22 | 2009-04-07 | Cisco Technology, Inc. | Cooperative TCP / BGP window management for stateful switchover |
US7903546B2 (en) | 2005-01-14 | 2011-03-08 | Cisco Technology, Inc. | Detecting unavailable network connections |
US7643420B2 (en) | 2005-03-11 | 2010-01-05 | Broadcom Corporation | Method and system for transmission control protocol (TCP) traffic smoothing |
US7609617B2 (en) | 2005-04-14 | 2009-10-27 | Cisco Technology, Inc. | BGP hitless upgrade approaches |
US7801135B2 (en) | 2005-05-19 | 2010-09-21 | Cisco Technology, Inc. | Transport protocol connection synchronization |
US9166904B2 (en) | 2005-09-08 | 2015-10-20 | Cisco Technology, Inc. | Method and apparatus for transferring BGP state information during asynchronous startup |
US7948873B2 (en) * | 2005-10-17 | 2011-05-24 | Cisco Technology, Inc. | Method for recovery of a controlled failover of a border gateway protocol speaker |
US7549078B2 (en) | 2006-01-31 | 2009-06-16 | Alcatel Lucent | Redundancy in routing devices |
US7797566B2 (en) | 2006-07-11 | 2010-09-14 | Check Point Software Technologies Ltd. | Application cluster in security gateway for high availability and load sharing |
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 |
-
2007
- 2007-12-21 US US11/963,717 patent/US9648147B2/en active Active
- 2007-12-29 CN CN2007800487862A patent/CN101573940B/zh active Active
- 2007-12-29 EP EP07846209.0A patent/EP2098040B1/en active Active
- 2007-12-29 WO PCT/CN2007/071383 patent/WO2008080356A1/en active Application Filing
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8483049B2 (en) | 2010-03-29 | 2013-07-09 | Futurewei Technologies, Inc. | System and method for communications system routing component level high availability |
WO2011120423A1 (en) * | 2010-03-29 | 2011-10-06 | Huawei Technologies Co., Ltd. | System and method for communications system routing component level high availability |
CN105516122A (zh) * | 2015-12-03 | 2016-04-20 | 网宿科技股份有限公司 | 具有分等级配置的加速策略的网络传输加速方法和系统 |
CN105516122B (zh) * | 2015-12-03 | 2019-03-15 | 网宿科技股份有限公司 | 具有分等级配置的加速策略的网络传输加速方法和系统 |
US10771315B2 (en) | 2017-02-14 | 2020-09-08 | Futurewei Technologies, Inc. | High availability using multiple network elements |
US11863370B2 (en) | 2017-02-14 | 2024-01-02 | Futurewei Technologies, Inc. | High availability using multiple network elements |
CN110313138A (zh) * | 2017-02-14 | 2019-10-08 | 华为技术有限公司 | 使用多个网元实现高可用性 |
CN110603798A (zh) * | 2017-02-21 | 2019-12-20 | 华为技术有限公司 | 多个单板中的弹性一致性高可用性 |
CN110603798B (zh) * | 2017-02-21 | 2021-02-12 | 华为技术有限公司 | 一种提供具有高可用性的弹性一致性平台的系统和方法 |
US11042430B2 (en) | 2017-02-21 | 2021-06-22 | Futurewei Technologies, Inc. | Elastic consistency high availability in multiple boards |
WO2018153347A1 (en) * | 2017-02-21 | 2018-08-30 | Huawei Technologies Co., Ltd. | Elastic consistency high availability in multiple boards |
CN111684428A (zh) * | 2018-02-12 | 2020-09-18 | 华为技术有限公司 | 超规模的云化n路路由保护 |
CN111684428B (zh) * | 2018-02-12 | 2023-09-12 | 华为技术有限公司 | 超规模的云化n路路由保护 |
Also Published As
Publication number | Publication date |
---|---|
US20080159325A1 (en) | 2008-07-03 |
EP2098040A1 (en) | 2009-09-09 |
WO2008080356A1 (en) | 2008-07-10 |
CN101573940B (zh) | 2012-05-30 |
US9648147B2 (en) | 2017-05-09 |
EP2098040A4 (en) | 2010-01-06 |
EP2098040B1 (en) | 2015-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101573940B (zh) | 用于tcp高可用性的方法和装置 | |
EP2651075B1 (en) | Backup method and device for tcp connection | |
US7860985B2 (en) | Method for synchronizing connection state in data communication, and communication node using the same | |
EP2356753B1 (en) | Link data transmission method, node and system | |
AU2008319124B2 (en) | Method and apparatus for peer to peer link establishment over a network | |
CN101883108B (zh) | 动态认证的文件传输方法及系统 | |
WO2017219779A1 (zh) | 基于链路协议的设备主备倒换方法和装置、存储介质 | |
CN101136730A (zh) | 一种分布式网络设备中的可靠同步方法 | |
CN100420207C (zh) | 一种实现通信接管的方法及装置 | |
CN103200109B (zh) | 一种ospf邻居关系管理方法和设备 | |
CN112631788B (zh) | 数据传输方法及数据传输服务器 | |
WO2013083013A1 (zh) | 一种网络设备间的同步方法、网络设备及系统 | |
CN103516601B (zh) | 路由传输方法和装置及系统 | |
JP2021520554A (ja) | トランスポートプロトコル上でのポイント・ツー・ポイント・データベース同期 | |
CN105471619A (zh) | 网络节点设备及其主从配置方法和系统 | |
WO2015024477A1 (zh) | 一种路由更新的实现方法及装置 | |
WO2021027353A1 (zh) | 一种处理报文的方法和第一网络设备 | |
US7929423B2 (en) | MLPPP sequence number synchronization between the active and standby transmitters | |
CN111181766B (zh) | 一种冗余fc网络系统及其实现交换机动态配置的方法 | |
JP2004157753A (ja) | ファームウェアダウンロードシステム | |
CN115334139B (zh) | 通信连接控制方法及装置 | |
CN116760504B (zh) | 会话同步方法、装置、服务节点、终端及可读存储介质 | |
JP5011728B2 (ja) | ホットスタンバイ方式を採用したシステム及びそれに用いる同期方法 | |
JP3804652B2 (ja) | スイッチングハードウェア管理制御装置及び方法 | |
JP2004072547A (ja) | クレジットベースのフロー制御を伴うクロスバスイッチ二重化制御方法およびその記録媒体 |
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 |