IP Library Granted Patent US 7,797,565
Granted Patent B1
US 7,797,565 · App. 11/397,059 · Granted Sep 14, 2010

System and method for maintaining communication protocol connections during failover

Assignee: Symantec Operating Corporation
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,797,565
App. No.
11/397,059
Granted
Sep 14, 2010
Kind
B1
Abstract

Various methods and systems for maintaining a communication protocol connection during a failover are disclosed. One method involves obtaining a first value of a parameter associated with a communication protocol connection between a primary node and a client and sending a flow control message to the client, in response to detecting that the primary node is failed. The flow control message includes the parameter.

Claims (101)

1. A method comprising:

obtaining a first value of a parameter associated with a communication protocol connection between a primary node of a cluster and a client, wherein

the first value is included in a message sent by the primary node,

the parameter comprises at least one of a window size, sequence number, or timestamp, and

an application is executing on the primary node; and

sending a flow control message to the client, in response to detecting that the primary node is failed, wherein

the flow control message indicates that the flow control message is sent by the application,

the flow control message comprises the parameter,

the parameter indicates that the flow control message is valid,

the flow control message indicates that new packets cannot be accepted from the client via the communication protocol connection, and

the obtaining and the sending are performed by a protection node of the cluster.

2. The method of claim 1 , further comprising:

deriving a second value of the parameter from the first value, wherein the flow control message comprises the second value of the parameter.

3. The method of claim 1 , wherein

receipt of the flow control message causes the client to cease sending new messages via the communication protocol connection.

4. The method of claim 3 , wherein

the communication protocol connection is a Transmission Control Protocol (TCP) connection.

5. The method of claim 4 , further comprising:

receiving a message from the client via the communication protocol connection; and

sending an acknowledgment corresponding to the message to the client.

6. The method of claim 4 , further comprising:

in response to the detecting that a failover is incomplete,

sending a plurality of flow control messages, wherein

the sending comprises continuing to send flow control messages to the client, until the application executing on the primary node fails over to a secondary node.

7. The method of claim 4 , wherein the obtaining the first value of the parameter associated with the communication protocol connection comprises:

receiving a message being sent via the communication protocol connection, wherein

the message is being sent from the primary node to the client via the protection node, and

the message comprises a value that identifies a special protocol type; and

extracting the first value of the parameter from the message.

8. The method of claim 7 , further comprising rewriting the message for transmission to the client, wherein the rewriting comprises:

replacing a first media access control destination address, which identifies a protection node, with a second media access control destination address, which identifies a common gateway; and

replacing the special protocol type with a value that identifies the communication protocol.

9. A system comprising:

a computing device configured as a protection node in a cluster, wherein the computing device comprises:

an interface;

a cluster module, wherein

the cluster module is configured to detect node failures within a cluster; and

a protection module coupled to the cluster module, wherein the protection module is configured to:

obtain a first value of a parameter associated with a communication protocol connection between a client and a primary node in the cluster, wherein

the first value is included in a message sent by the primary node,

the parameter comprises at least one of a window size, sequence number, or timestamp, and

the primary node is configured to execute an application; and

send a flow control message to the client, via the interface, if the cluster module detects that the primary node is failed, wherein

the flow control message indicates that the flow control message is sent by the application,

the flow control message comprises the parameter, and

the parameter indicates that the flow control message is valid,

the flow control message indicates that new packets cannot be accepted from the client via the communication protocol connection.

10. The system of claim 9 , wherein

receipt of the flow control message causes the client to cease sending new messages via the communication protocol connection, and

the communication protocol connection is a Transmission Control Protocol (TCP) connection.

11. The system of claim 10 , further comprising:

the primary node, wherein

the primary node is configured to send a TCP message, via the protection node, to the client via the communication protocol connection,

the TCP message comprises a destination address, and

the destination address identifies the protection node.

12. The system of claim 11 , wherein the protection module is configured to:

extract the first value of the parameter from the TCP message;

update the destination address to identify a common gateway; and

send the TCP message to the common gateway.

13. The system of claim 10 , wherein the protection module is configured to:

receive a message from the client via the communication protocol connection; and

send an acknowledgment corresponding to the message to the client.

14. The system of claim 13 , wherein the protection module is configured to, in response to the detecting that a failover is incomplete:

send a plurality of flow control messages, wherein

the sending comprises continuing to send flow control messages to the client, until the application fails over to a secondary node.

15. A computer readable storage medium comprising program instructions executable to:

obtain a first value of a parameter associated with a communication protocol connection between a primary node of a cluster and a client, wherein

the first value is included in a message sent by the primary node,

the parameter comprises at least one of a window size, sequence number, or timestamp, and

an application is executing on the primary node; and

send a flow control message to the client, in response to detecting that the primary node is failed, wherein

the flow control message indicates that the flow control message is sent by the application,

the flow control message comprises the parameter,

the parameter indicates that the flow control message is valid,

the flow control message indicates that new packets cannot be accepted from the client via the communication protocol connection, and

the obtaining and the sending are performed by a protection node of the cluster.

16. The computer readable storage medium of claim 15 , wherein

receipt of the flow control message causes the client to cease sending new messages via the communication protocol connection, and

the communication protocol connection is a Transmission Control Protocol (TCP) connection.

17. The computer readable storage medium of claim 16 , wherein the program instructions are further executable to:

detect reception of a message from the client via the communication protocol connection; and

send an acknowledgment corresponding to the message to the client.

18. The computer readable storage medium of claim 16 , wherein the program instructions are further executable to, in response to the detecting that a failover is incomplete:

send a plurality of flow control messages, wherein

the sending comprises continuing to send flow control messages to the client, until the application executing on the primary node fails over to a secondary node.

19. The computer readable storage medium of claim 16 , wherein the program instructions are executable to obtain the first value of the parameter by extracting the parameter from a message being sent from the primary node to the client via the communication protocol connection.

20. A system comprising:

network interface means for communicating via a network;

means for obtaining a first value of a parameter associated with a communication protocol connection between a primary node of a cluster and a client, wherein

the first value is included in a message sent by the primary node,

the parameter comprises at least one of a window size, sequence number, or timestamp, and

the primary node is configured to execute an application; and

means for sending a flow control message to the client via the network interface means, in response to detecting that the primary node is failed, wherein

the flow control message indicates that the flow control message is sent by the application,

the flow control message comprises the parameter,

the parameter indicates that the flow control message is valid,

the flow control message indicates that new packets cannot be accepted from the client via the communication protocol connection, and

a protection node of the cluster comprises the network interface means, the means for obtaining and the means for sending.

21. The system of claim 20 , wherein

receipt of the flow control message causes the client to cease sending new messages via the communication protocol connection, and

the communication protocol connection is a Transmission Control Protocol (TCP) connection.

Assignments (12)
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2006
From: TRAN, CUONG HUU; THAKER, BHAVIN K.; SHAH, VEERAL P.
To: VERITAS OPERATING CORPORATION
Reel/Frame 018084/0321 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 4, 2006
From: TRAN, CUONG HUU; THAKER, BHAVIN K.; SHAH, VEERAL P.
To: VERITAS OPERATING CORPORATION
Reel/Frame 017707/0473 →