System and method for knowledgeable node initiated TCP splicing
First Claim
1. A method for splicing network connections, said method comprising:
- receiving a first handoff request from a first node corresponding to a first node identifier, wherein the first node is connected to a client node using a first connection;
identifying a second node based on a second node identifier, wherein the second node is connected to the first node using a second connection;
updating one or more connection tables with data corresponding to the first and second connections, wherein the connection tables include a first mapping table and a reverse mapping table;
redirecting one or more client packets sent over the first connection from the client node to the second node in response to the updated connection tables;
writing a first reverse mapping entry to the first mapping table, the first reverse mapping entry including the second node identifier, the first node identifier and a pointer to the reverse mapping table; and
writing a second reverse mapping entry in the reverse mapping table, the reverse mapping entry including the client node identifier.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method utilizes back-end nodes to determine which node should handle an incoming requests and then utilizes the front-end switch to splice one or more connections between the client and the chosen node. Chosen nodes can repeatedly handoff the connection to other nodes to handle the client'"'"'s requests. The front-end switch provides the initial client connection to back-end nodes in a round-robin approach distributing initial connections among the back-end nodes. A proxy application on the back-end node accepts the connection, parses the request, and determines which back-end node should handle the request. If another back-end node should handle the request, the back-end node currently connected to the client performs a handoff to the target back-end node. The switch splices the initial connection to a connection to the selected node and modifies subsequent packet headers appropriately in order to map the two connection states to one another.
-
Citations
20 Claims
-
1. A method for splicing network connections, said method comprising:
-
receiving a first handoff request from a first node corresponding to a first node identifier, wherein the first node is connected to a client node using a first connection; identifying a second node based on a second node identifier, wherein the second node is connected to the first node using a second connection; updating one or more connection tables with data corresponding to the first and second connections, wherein the connection tables include a first mapping table and a reverse mapping table; redirecting one or more client packets sent over the first connection from the client node to the second node in response to the updated connection tables; writing a first reverse mapping entry to the first mapping table, the first reverse mapping entry including the second node identifier, the first node identifier and a pointer to the reverse mapping table; and writing a second reverse mapping entry in the reverse mapping table, the reverse mapping entry including the client node identifier. - View Dependent Claims (2, 3, 4, 5, 6, 18)
-
-
7. An information handling system comprising:
-
one or more processors; a memory accessible by the processors; a network interface connecting the information handling system to a computer network; and a connection splicing tool for splicing connections between nodes, the connection splicing tool including; means for receiving a first handoff request from a first node, wherein the first node is connected to a client node using a first connection over the computer network; means for identifying a second node based on a second node identifier, wherein the second node is connected to the first node using a second connection over the computer network; means for updating one or more connection tables with data corresponding to the first and second connections, wherein the connection tables include a first mapping table and a reverse mapping table; means for redirecting one or more client packets sent over the first connection from the client node to the second node in response to the updated connection tables; means for writing a first reverse mapping entry to the first mapping table, the first reverse mapping entry including the second node identifier, the first node identifier and a pointer to the reverse mapping table; and means for writing a second reverse mapping entry in the reverse mapping table, the reverse mapping entry including the client node identifier. - View Dependent Claims (8, 11, 12, 19)
-
-
9. The information handling system as described in claim 9 further comprising:
-
means for writing a third entry in the second mapping table in response to receiving a second handoff request, the third entry identifying a third node connected to the computer network, wherein the second entry includes a first handoff sequence value corresponding to the first handoff request and wherein the third entry includes a second handoff sequence value corresponding to the second handoff request; means for receiving a request from the client over the computer network, the request including a request sequence value corresponding to the request; and means for redirecting the request to the third node in response to the request sequence value being greater than or equal to the second handoff sequence value. - View Dependent Claims (10)
-
-
13. A computer program product stored in a computer operable media for splicing network connections, said computer program product comprising:
-
means for receiving a first handoff request from a first node, wherein the first node is connected to a client node using a first connection; means for identifying a second node based on a second node identifier, wherein the second node is connected to the first node using a second connection; means for updating one or more connection tables with data corresponding to the first and second connections, wherein the connection tables include a first mapping table and a reverse mapping table; means for redirecting one or more client packets sent over the first connection from the client node to the second node in response to the updated connection tables; means for writing a first reverse mapping entry to the first mapping table, the first reverse mapping entry including the second node identifier, the first node identifier and a pointer to the reverse mapping table; and means for writing a second reverse mapping entry in the reverse mapping table, the reverse mapping entry including the client node identifier. - View Dependent Claims (14, 15, 16, 17, 20)
-
Specification