Method and system for communicating a request packet in response to a state
First Claim
Patent Images
1. An information processing system, comprising:
- a first computing device having an intelligent network interface card, the intelligent network interface card configured to;
store an unattached connection endpoint in a temporary table in response to receiving an initialization packet originating from a client, wherein the unattached connection endpoint contains information associated with the client and the first computing device;
receive a request packet originating from the client; and
based on at least a state of the first computing device and a second computing device, selectively;
output a migration packet containing the information associated with the client and the first computing device to the second computing device;
remove the unattached connection endpoint from the temporary table in response to an acknowledgement indicating that the second computing device received the migration packet;
store information representing a connection with the client in a forward table; and
output the request packet to the second computing device by adding an encapsulation header to enable the second computing device to send a response packet to the client comprising information indicating the response packet was sent by the first computing device.
10 Assignments
0 Petitions
Accused Products
Abstract
According to one embodiment, a first computing device receives an initialization packet originating from a client. In response to at least the initialization packet, the first computing device outputs a response packet to the client. Also, the first device receives a request packet originating from the client. In response to at least the request packet and a state of at least one of the first computing device and a second computing device, the first computing device outputs the request packet to the second computing device for performing an operation in response to the request packet.
-
Citations
62 Claims
-
1. An information processing system, comprising:
-
a first computing device having an intelligent network interface card, the intelligent network interface card configured to; store an unattached connection endpoint in a temporary table in response to receiving an initialization packet originating from a client, wherein the unattached connection endpoint contains information associated with the client and the first computing device; receive a request packet originating from the client; and
based on at least a state of the first computing device and a second computing device, selectively;output a migration packet containing the information associated with the client and the first computing device to the second computing device; remove the unattached connection endpoint from the temporary table in response to an acknowledgement indicating that the second computing device received the migration packet; store information representing a connection with the client in a forward table; and output the request packet to the second computing device by adding an encapsulation header to enable the second computing device to send a response packet to the client comprising information indicating the response packet was sent by the first computing device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A method performed by an intelligent network interface controller of a first computing device of an information processing system, the method comprising:
-
storing an unattached connection endpoint in a temporary table in response to receiving an initialization packet originating from a client, wherein the unattached connection endpoint contains information associated with the client and the first computing device; receiving a request packet originating from the client; and based on at least a state of the first computing device and a second computing device, selectively; outputting a packet containing the information associated with the client and the first computing device to the second computing device; removing the unattached connection endpoint from the temporary table in response to receiving an acknowledgement packet indicating that the second computing device received the packet containing the information associated with the client and the first computing device; and outputting the request packet to the second computing device for performing an operation in response to the request packet by adding an encapsulation header to the request packet;
wherein the operation includes outputting a response packet to the client comprising information indicating the response packet was sent from the first computing device. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A first intelligent network interface device, comprising:
a processor that is configured to; maintain a state information table; create an unattached connection endpoint in response to receiving an initialization packet from a client, wherein the unattached connection endpoint contains information associated with the client and the first intelligent network interface device; receive an IP request packet from the client associated with the unattached connection endpoint; and selectively, based at least in part on the state information table; transmit a packet containing the information associated with the client and the first intelligent network interface device contained within the unattached connection endpoint to a second intelligent network interface device; delete the unattached connection endpoint in response to receiving an acknowledgement indicating that the second intelligent network interface device received the packet containing the unattached connection endpoint information; and transmit the request packet to the second intelligent network interface device by adding an encapsulation header, to enable the second intelligent network interface device to cause a response IP packet to be sent to the client that contains information indicating the response IP packet was sent from the first intelligent network interface device. - View Dependent Claims (36, 37)
-
38. A server farm, comprising:
-
a plurality of servers, each server comprising an intelligent network interface controller; wherein the intelligent network interface controller of a first server of the plurality of servers is configured to; store an unattached connection endpoint in response to receiving a SYN packet originating from a client, wherein the unattached connection endpoint contains information associated with the client and the first server; receive a PUSH packet originating from the client; and selectively, based at least in part on synchronization information transmitted between the plurality of servers; output a migration packet containing the information associated with the client and the first server to an intelligent network interface controller of a second server; delete the stored unattached connection endpoint in response to receiving an acknowledgement packet that indicates that the first computing device of the second server received the packet containing the information associated with the client and the first server; and encapsulate and output the PUSH packet to the intelligent network interface controller of the second server to enable the second server to send a response packet to the client comprising information indicating the response packet was sent from the first server. - View Dependent Claims (39, 40, 41)
-
-
42. A computer-readable memory medium containing instructions for controlling a computer processor associated with an intelligent network interface controller of a server among a plurality of servers to selectively load balance and direct network requests among the plurality of servers, by:
-
maintaining a state table associated with the plurality of servers; creating an unattached endpoint in response to receiving an initialization packet originating from a client, and storing information that associates the unattached endpoint with the client and the server in a temporary table; receiving a request packet generated by the client; and selectively, based at least in part on the state information table; outputting a migration packet containing the information that associates the unattached endpoint with the client and the server to a second processor residing in a different one of the plurality of servers; deleting the information that associates the unattached endpoint with the client and the server from the temporary table in response to a packet from the second processor that indicates that the second processor received the migration packet and successfully processed it; generating a forward packet that encapsulates the request packet; and outputting the forward packet to the second processor to enable the second processor to output a response packet to the client that contains information indicating the response packet was sent from the server. - View Dependent Claims (43, 44, 45)
-
-
46. A server having an intelligent network interface controller for use in a computer system server farm, the intelligent network interface controller comprising:
-
means for monitoring a state of the server farm; means for receiving packets from a global network; means for storing an unattached connection endpoint in a temporary table in response to receiving an initialization packet from the global network, wherein the unattached connection endpoint contains information associated with the client and the server; means for selectively generating, based at least in part on the monitored state of the server farm, a first type of packet containing the information associated with the client and the server when a client request packet is received from the global network; means for transmitting the first type of packet to a second server in the server farm, wherein the means for transmitting the first type of packet bypasses the means for receiving packets from the global network; means for deleting the unattached connection endpoint from the temporary table in response to receiving a second type of packet from the second server; means for generating a third type of packet that encapsulates the client request packet; and means for transmitting the third type of packet to the second server to enable the second server to send a response packet to the client that contains information indicating the response packet was sent from the server. - View Dependent Claims (47, 48, 49)
-
-
50. An information processing system, comprising:
-
a first computer system; and a second computer system having an intelligent network interface card that is configured to; store an unattached connection endpoint in a temporary table in response to receiving an initialization packet created by a client, the unattached connection endpoint containing information that identifies a connection with the client and including information associated with the client and the second computer system; receive a request packet originating from the client directed to the connection; based on at least a state of at least one of the first computer system and the second computing system, selectively; output a packet containing the information that identifies the connection to an intelligent network interface card of the first computer system, thereby migrating the connection to the first computer system; remove the unattached connection endpoint from the temporary table in response to receiving, from the first computer system, a packet that indicates that the first computer system received the packet containing the information identifying the connection; and output a forwarded-request packet to the network interface card of the first computer system, the forwarded-request packet encapsulating the request packet and including both information identifying the connection and a field in a header of the forwarded-request packet indicating that the forwarded-request packet is a forwarded packet, to enable the first computer system to output a response packet to the client comprising information indicating the response packet was sent from the second computer system. - View Dependent Claims (51, 52)
-
-
53. A method of servicing client requests performed by an intelligent network interface controller, the method comprising:
-
receiving a client request packet; selectively redistributing the received client request packet; transmitting synchronization information; and selectively migrating a client connection based at least in part on the transmitted synchronization information; wherein the received client request packet is selectively redistributed and the client connection is selectively migrated by; storing an unattached connection endpoint in a temporary table, wherein the unattached connection endpoint contains information associated with a connection with the client; outputting a packet containing a copy of the information associated with the connection with the client; removing the unattached connection endpoint from the temporary table in response to receiving an acknowledgement that indicates that the packet containing a copy of the information associated with the connection with the client was received; encapsulating the client request packet; and transmitting the encapsulated client request packet to enable a computing device to send a response packet to the client that contains information indicating the response packet was sent from the intelligent network interface controller. - View Dependent Claims (54, 55, 56, 57, 58, 59, 60, 61)
-
-
62. An information processing system, comprising:
a first computing device configured to; store information representing a connection with a client in a temporary table in response to receiving an initialization packet originating from the client, the information including a group of sequence numbers associated with the connection; receive a request packet originating from the client; and
based on at least a state of the first computing device and a second computing device, selectively;output a migration packet containing the information representing the connection with the client to the second computing device for performing an operation in response to receiving the migration packet and the request packet, the operation including outputting a response packet to the client according to the group of sequence numbers, such that the output response packet bypasses the first computing device and appears to the client as received from the first computing device; remove the information representing the connection with the client from the temporary table in response to an acknowledgement indicating that the second computing device received the migration packet; store information representing the connection with the client in a forward table; and output the request packet to the second computing device.
Specification