Method and system for a modular transmission control protocol (TCP) rare-handoff design in a streams based transmission control protocol/internet protocol (TCP/IP) implementation
First Claim
1. In a communication network, a method of TCP state migration comprising the steps of:
- a) establishing a TCP/IP communication session between a client computer and a first server computer, said first server computer part of a plurality of server computers forming a web cluster containing information, said communication session established for the transfer of data contained within said information;
b) handing off, by sending a handoff request packet, said communication session to a selected server computer from said first server computer over a persistent control channel using TCP handoff modules that are dynamically loadable within TCP/IP stacks in operating systems located at both said first server computer and said selected server computer, wherein the TCP handoff modules implement a TCP handoff protocol that works within kernel levels of the operating systems, wherein said first server computer includes a first bottom TCP (BTCP) module, and said selected server computer includes a second BTCP module; and
c) migrating a first TCP state of said first server computer to said selected server computer, and a second TCP state of said selected server computer to said first server computer over said control channel, wherein said migrating comprises migrating said first TCP state to said second BTCP module at said selected server computer over said control channel by including a first initial sequence number in said handoff request packet, such that said second BTCP module can calculate said first TCP state for said first server computer in said TCP/IP communication session.
5 Assignments
0 Petitions
Accused Products
Abstract
A method and system for handing-off TCP states in a communication network. Specifically, the present invention allows for handing-off TCP states between nodes in an associated network that is optimized for rare handoff of TCP states. The handoff occurs between dynamically loadable modules that wrap around the TCP/IP stack located at a front-end node and a selected back-end web server. A handoff protocol implemented by the loadable modules works within the kernel level of the existing TCP/IP code. As such, no changes to the existing TCP/IP code is necessary. The loadable modules at the front-end are able to select a back-end web server depending on the content of the web request, coordinate handing off TCP states, and forward packets to the back-end web server. Loadable modules at the selected back-end modify response packets going out to reflect the proper TCP state of the front-end node.
37 Citations
32 Claims
-
1. In a communication network, a method of TCP state migration comprising the steps of:
-
a) establishing a TCP/IP communication session between a client computer and a first server computer, said first server computer part of a plurality of server computers forming a web cluster containing information, said communication session established for the transfer of data contained within said information; b) handing off, by sending a handoff request packet, said communication session to a selected server computer from said first server computer over a persistent control channel using TCP handoff modules that are dynamically loadable within TCP/IP stacks in operating systems located at both said first server computer and said selected server computer, wherein the TCP handoff modules implement a TCP handoff protocol that works within kernel levels of the operating systems, wherein said first server computer includes a first bottom TCP (BTCP) module, and said selected server computer includes a second BTCP module; and c) migrating a first TCP state of said first server computer to said selected server computer, and a second TCP state of said selected server computer to said first server computer over said control channel, wherein said migrating comprises migrating said first TCP state to said second BTCP module at said selected server computer over said control channel by including a first initial sequence number in said handoff request packet, such that said second BTCP module can calculate said first TCP state for said first server computer in said TCP/IP communication session. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. In a communication network, a method of TCP state migration comprising the steps of:
-
a) establishing a TCP/IP communication session between a client computer and a first server computer, said first server computer part of a plurality of server computers forming a web cluster containing information, said communication session established for the transfer of data contained within said information; b) monitoring traffic associated with establishing said TCP/IP communication session to understand a first initial TCP state of said first server computer associated with said TCP/IP communication session, at a first bottom-TCP (BTCP) module at said first server computer, wherein said first BTCP module is a dynamically loadable kernel module (DLKM) loaded in said first server computer without modifying a first operating system of said first server computer; c) receiving a web request associated with said TCP/IP communication session at said first BTCP module at said first server computer; d) examining content of said web request; e) determining which of said plurality of server computers, a selected server computer, can best process said web request, based on said content; f) handing off said communication session to said selected server computer from said first server computer over a persistent control channel, if said selected server computer is not said first server computer; g) monitoring traffic associated with handing off said TCP/IP communication session to understand a second initial TCP state of said selected server computer associated with said TCP/IP communication session, at a second BTCP module at said selected server computer, wherein said second BTCP module is a DLKM loaded in said selected server computer without modifying a second operating system of said selected server computer; h) migrating said first initial TCP state to said selected server computer over said control channel, such that said second BTCP module can calculate a first TCP state for said first server computer in said TCP/IP communication session; i) sending a second initial TCP state of said selected server computer to said first BTCP module, such that said first BTCP module can calculate a second TCP state for said selected server computer in said TCP/IP communication session; j) forwarding data packets received at said first BTCP module from said client to said selected server computer, by changing said data packets to reflect said second TCP state and a second IP address of said selected server computer; k) sending response packets from said selected server computer directly to said client computer by changing said response packets to reflect said first TCP state and a first IP address of said first server computer; and l) terminating said TCP/IP communication session at said first server computer when said TCP/IP communication session is closed. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
-
26. A first server computer comprising:
-
at least one processor; an operating system executable on the at least one processor; a TCP module in the operating system; a first upper TCP (UTCP) module located above the TCP module in the operating system of said first server computer; a first bottom TCP (BTCP) module located below said TCP module, wherein said first UTCP, TCP, and first BTCP modules implement handing off a communication session between the first server computer and a second node, wherein the first BTCP and first UTCP modules are dynamically loadable kernel modules (DLKMs) that are dynamically loadable and unloadable in said first server computer without modifying the operating system, wherein said communication session is established between a client computer and said first server computer, said first server computer part of a plurality of server computers including said second node forming a cluster that contains information, said communication session established for the transfer of data contained within said information; wherein said first BTCP module is configured to; receive a web request associated with said TCP/IP communication session; examine content of said web request; determine which of said plurality of server computers can best process said web request, based on said content, wherein the server computer determined to be able to best process said web request is the second node; hand off said communication session to said second node from said first server computer over a persistent control channel, if said second node is not said first server computer, wherein the handing off causes migration of a first TCP state of said first server computer to the second node, and migration of a second TCP state of said second node to the server computer. - View Dependent Claims (27, 28, 29, 30, 31, 32)
-
Specification