IP Library Granted Patent US 7,877,490
Granted Patent B1
US 7,877,490 · App. 11/966,811 · Granted Jan 25, 2011

Method and apparatus for efficient TCP connection handoff

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,877,490
App. No.
11/966,811
Granted
Jan 25, 2011
Kind
B1
Abstract

A method for efficient communications with a cluster-based architecture preserves various aspects of integrity throughout one or more connections with a client, even in the midst of connection migration between nodes in the cluster. According to one aspect, the invention provides a mechanism for preventing the loss of packets arising from a TCP connection migration within the cluster. According to another aspect, the invention provides a mechanism for uniquely identifying conflicting TCP connections migrated to a common node. According to a still further aspect, the invention provides a distributed TCP timestamp mechanism so that the sender and receiver will have a consistent view of the timestamp even when each node has different local clock values and regardless of how many times the socket has been migrated.

Claims (29)

1. A method comprising:

receiving a first network connection to a client at a first node of a storage cluster;

first migrating the first connection to a second node of the storage cluster;

receiving a second network connection to the client at a third node of the storage cluster;

second migrating the second connection to the second node of the storage cluster while the first connection is also migrated to the second node;

ensuring jointly at the first, second, and third nodes:

that timestamps associated with the connection continue to monotonically increase after the migrations;

that packets associated with the connection are not dropped within the storage cluster after the second migration;

that packets associated with the network connection do not conflict with other packets associated with a different network connection after the first migration, and after a concurrent third migration of the different network connection to the second node,

wherein the client uses a virtual IP address for connection with the storage cluster, and wherein the migration occurs transparently to the client.

2. The method of claim 1 , wherein the connections are TCP connections.

3. The method of claim 1 , wherein the ensuring step includes:

maintaining a plurality of received packets associated with the connection at the first node after the first migration; and

sending the maintained plurality of received packets to the third node after the second migration.

4. The method of claim 1 , wherein the ensuring step includes:

overwriting header values in the first and second packets at the first and third nodes, respectively, wherein the overwriting step includes:

obtaining different unique identifiers associated with the first and second connections, respectively; and

adjusting a port number in the first and second packets using the different unique identifiers, respectively.

5. A storage apparatus comprising:

a first node that receives a network connection to a client;

second and third different nodes capable of handling the network connection;

a handoff mechanism that causes the network connection to the client to be first migrated from the first node to the second node, and if necessary, second migrated from the second node to the third node; and

an application running in the first, second and third nodes that jointly ensures:

that timestamps associated with the connection continue to monotonically increase after the migrations,

that packets associated with the connection are not dropped within the storage cluster after the second migration, and

that packets associated with the network connection do not conflict with other packets associated with a different network connection after the first migration, and after a concurrent third migration of the different network connection to the second node,

wherein the client uses a virtual IP address for the network connection with the nodes, and

wherein the first and second migrations occur transparently to the client.

6. The apparatus of claim 5 , wherein the connections are TCP connections.

Assignments (15)
CORRECTIVE ASSIGNMENT TO REMOVE US PATENT NO. 9013874 PREVIOUSLY RECORDED UNDER REEL AND FRAME 064272/0249. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 17, 2024
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 068998/0780 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 13, 2023
From: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC)
To: INNOVATIONS IN MEMORY LLC
Reel/Frame 064272/0249 →
RELEASE OF SECURITY INTEREST Recorded Jun 16, 2021
From: SILICON VALLEY BANK
To: VSIP HOLDINGS LLC (F/K/A VIOLIN SYSTEMS LLC (F/K/A VIOLIN MEMORY, INC.))
Reel/Frame 056600/0186 →
CHANGE OF NAME Recorded May 25, 2021
From: VIOLIN SYSTEMS LLC
To: VSIP HOLDINGS LLC
Reel/Frame 056366/0849 →
RELEASE OF SECURITY INTEREST Recorded Jan 22, 2018
From: SILICON VALLEY BANK
To: VIOLIN SYSTEMS LLC
Reel/Frame 044686/0476 →
CHANGE OF NAME Recorded Dec 19, 2017
From: VIOLIN MEMORY, INC.
To: VIOLIN SYSTEMS LLC
Reel/Frame 044908/0680 →
SECURITY INTEREST Recorded Aug 27, 2014
From: VIOLIN MEMORY, INC.
To: SILICON VALLEY BANK
Reel/Frame 033645/0834 →
RELEASE OF SECURITY INTEREST Recorded Aug 26, 2014
From: COMERICA BANK
To: VIOLIN MEMORY, INC.
Reel/Frame 033617/0360 →
RELEASE OF SECURITY INTEREST Recorded Aug 22, 2014
From: TRIPLEPOINT CAPITAL LLC
To: VIOLIN MEMORY, INC.
Reel/Frame 033591/0759 →
RELEASE OF SECURITY INTEREST Recorded Aug 5, 2014
From: TRIPLEPOINT CAPITAL LLC
To: VIOLIN MEMORY INC.
Reel/Frame 033474/0253 →
SECURITY AGREEMENT Recorded Jul 19, 2013
From: VIOLIN MEMORY, INC.
To: COMERICA BANK, A TEXAS BANKING ASSOCIATION
Reel/Frame 030833/0440 →
SECURITY AGREEMENT Recorded May 16, 2013
From: VIOLIN MEMORY, INC.
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 030426/0821 →
CHANGE OF NAME Recorded Aug 10, 2010
From: GEAR SIX, INC.
To: GEAR6(ASSIGNMENT FOR THE BENEFIT OF CREDITORS)LLC
Reel/Frame 024813/0027 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 10, 2010
From: GEAR6(ASSIGNMENT FOR THE BENEFIT OF CREDITORS)LLC
To: VIOLIN MEMORY, INC.
Reel/Frame 024814/0008 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2007
From: TALAGALA, NISHA; HUANG, QING; CHITTA, RAMA; PATTERSON, MARTIN
To: GEAR SIX, INC.
Reel/Frame 020302/0878 →