IP Library Granted Patent US 7,539,760
Granted Patent B1
US 7,539,760 · App. 10/661,096 · Granted May 26, 2009

System and method for facilitating failover of stateful connections

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,539,760
App. No.
10/661,096
Granted
May 26, 2009
Kind
B1
Abstract

A method and apparatus for facilitating failover of a stateful protocol connection is disclosed herein. The disclosed method includes receiving data sent by a first external entity in accordance with the stateful protocol connection. Acknowledgment of receipt of the data is withheld until a predefined operation involving the data has been performed. The method further includes transferring state information relating to the stateful protocol connection to a standby system. Once the predefined operation involving the data has been performed, the acknowledgment of receipt of the data is sent to the first external entity. This enables the stateful protocol connection to be failed over to the standby system with minimal or any data loss. In a particular implementation the predefined operation comprises committing the data to an application and receiving a send acknowledgment command from the application. In other implementations the predefined operation may comprise sending the data to a host entity and receiving confirmation that it has been received at the host.

Claims (59)

1. A method of facilitating failover of a stateful protocol connection from a proxy element to a standby proxy, the method comprising:

receiving, at the proxy element, data sent by a first external entity in accordance with a first stateful protocol connection;

withholding acknowledgment of receipt of the data at the proxy element until a predefined operation involving the data has been performed, said predefined operation comprising:

sending, from the proxy element, the data to a second external entity; and

receiving, at the proxy element, a second acknowledgment that the data has been received at the second external entity;

establishing a state information connection between the proxy element and the standby proxy;

transferring, via the state information connection, state information relating to the first stateful protocol connection from the proxy element to a standby proxy; and

sending, from the proxy element, the acknowledgment of receipt to the first external entity subsequent to performance of the predefined operation involving the data.

2. The method of claim 1 wherein the sending of the data to the second external entity is performed in accordance with a second stateful protocol connection, the method further including transferring state information relating to the second stateful protocol connection to the standby proxy.

3. The method of claim 2 further including failing over the second stateful protocol connection to the standby proxy.

4. The method of claim 1 further including failing over the first stateful protocol connection to the standby proxy.

5. The method of claim 4 further including beginning servicing, at the standby proxy, the first stateful protocol connection from a last successful point of synchronization between the proxy element and the standby proxy.

6. The method of claim 4 wherein said failing over the first stateful protocol connection to the standby proxy is initiated based on an automatic discovery scheme.

7. The method of claim 6 wherein the automatic discovery scheme comprises determining failure of a heartbeat packet within a defined timeout period.

8. The method of claim 4 wherein said failing over the first stateful protocol connection to the standby proxy is initiated based on an external discovery scheme.

9. The method of claim 8 wherein the external discovery scheme comprises detecting failure of the proxy by an external failure detection entity.

10. The method of claim 9 wherein the external detection entity commands a switch to redirect packets destined for the proxy element to the standby proxy.

11. The method of claim 1 further including:

transmitting, from the first external entity, the data to the proxy element and retaining a copy of the data; and

deleting the copy of the data upon receipt at the first external entity of the acknowledgment.

12. The method of claim 1 wherein the transferring of the state information is performed in accordance with an additional stateful protocol connection.

13. The method of claim 1 further including detecting, at the standby proxy, failure of the first stateful protocol connection and initiating failover of the first stateful protocol connection from the proxy element to the standby proxy.

14. The method of claim 1 wherein the state information connection between the proxy element and the standby proxy is a second stateful protocol connection.

15. The method of claim 14 wherein the second stateful protocol connection is a TCP connection.

16. The method of claim 1 wherein the state information is transferred from a first memory associated with the proxy element to a second memory associated with the standby proxy.

17. The method of claim 1 wherein the state information is transferred only after a stateful protocol connection has been established between the proxy element, an external client and an external server, and data has been transferred between the external client and the external server.

18. The method of claim 1 wherein the state information is transferred during establishment of a stateful protocol connection between the proxy element, an external client and an external server.

19. The method of claim 1 wherein the proxy element sends the acknowledgment of receipt to the first external entity prior to receiving a confirmation from the standby proxy that the state information has been transferred.

20. The method of claim 1 wherein all of the state information is transferred during an initial synchronization operation between the proxy element and the standby proxy.

21. The method of claim 20 wherein only changes to the state information transmitted during the initial synchronization operation are transferred during a subsequent synchronization operation.

22. The method of claim 1 wherein the state information is transferred during a first synchronization operation between the proxy element and the standby proxy, and wherein only changes to the state information are transmitted during a second, subsequent synchronization operation between the proxy element and the standby proxy.

23. A method of facilitating failover of a stateful protocol connection, the method comprising:

receiving, at a primary system, data sent by a first external entity in accordance with the stateful protocol connection;

withholding acknowledgment of receipt of the data until a predefined operation involving the data has been performed, said predefined operation comprising:

sending the data to a host entity; and

receiving confirmation that the data has been received at the host entity;

establishing a state information connection between the primary system and a standby system;

transferring, via the state information connection, state information relating to the stateful protocol connection to the standby system; and

sending, from the primary system, the acknowledgment of receipt to the first external entity subsequent to performance of the predefined operation involving the data, said predefined operation being performed subsequent to the receipt of the data and being other than determining the data has been satisfactorily received.

24. The method of claim 23 further including failing over the stateful protocol connection to the standby system.

25. The method of claim 24 further including beginning servicing, at the standby system, the stateful protocol connection from a last successful point of synchronization between the proxy element and the standby system.

26. The method of claim 23 wherein the transferring of the state information is performed in accordance with an additional stateful protocol connection.

27. The method of claim 23 further including detecting, at the standby system, failure of the stateful protocol connection and initiating failover of the stateful protocol connection to the standby system.

28. A stateful protocol processing apparatus comprising:

a proxy element having a first protocol core and a second protocol core, the first protocol core supporting a first stateful protocol connection over which data is received from a first external entity and the second protocol core supporting a second stateful protocol connection to a second external entity over which the data is transmitted, wherein the proxy element is configured to withhold acknowledgment of receipt of the data until a predefined operation involving the data has been performed and to send the acknowledgment of receipt to the first external entity subsequent to performance of the predefined operation, said predefined operation comprising receiving, at the proxy element a second acknowledgment that the data has been received at the second external entity; and

a standby element having a state information connection to the proxy element to which state information relating to the first stateful protocol connection is transferred from the proxy element to the standby element via the state information connection.

29. The apparatus of claim 28 further including a switch disposed to failover the first stateful protocol connection from the proxy element to the standby element.

30. The apparatus of claim 29 further including a failure detection unit configured to detect failure of the first stateful protocol connection and to command the switch to initiate said failover, the standby element beginning servicing of the first stateful protocol connection from a last successful point of synchronization between the proxy element and the standby element.

31. The apparatus of claim 28 wherein the standby element includes memory in which is stored the state information relating to the first stateful protocol connection.

32. A method of facilitating failover of a stateful protocol connection, the method comprising:

receiving data sent by a first external entity in accordance with the stateful protocol connection;

establishing a state information connection to a standby system;

transferring, via the state information connection, state information relating to the stateful protocol connection to the standby system;

withholding acknowledgment of receipt of the data until a predefined operation involving the data has been performed said predefined operation comprising:

sending the data to a host entity;

receiving confirmation that the data has been received at the host entity; and

storing the state information in memory within the standby system, wherein

the predefined operation is performed subsequent to the receipt of the data; and

sending the acknowledgment of receipt to the first external entity subsequent to performance of the predefined operation involving the data.

Assignments (6)
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2015
From: ALCATEL-LUCENT USA, INC.
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 036732/0876 →
RELEASE OF SECURITY INTEREST Recorded Sep 30, 2015
From: SILICON VALLEY BANK
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 036733/0031 →
SECURITY INTEREST Recorded Jun 10, 2015
From: IKANOS COMMUNICATIONS, INC.
To: SILICON VALLEY BANK
Reel/Frame 035874/0351 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS Recorded May 5, 2015
From: IKANOS COMMUNICATIONS, INC.
To: ALCATEL-LUCENT USA, INC.
Reel/Frame 035581/0710 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 13, 2015
From: ASTUTE NETWORKS, INC.
To: IKANOS COMMUNICATIONS, INC.
Reel/Frame 035203/0343 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2004
From: PETRY, BRIAN D.; OSMAN, FAZIL YSMET
To: ASTUTE NETWORKS, INC.
Reel/Frame 014956/0549 →