Method for using outgoing TCP/IP sequence number fields to provide a desired cluster node
First Claim
1. A method for providing data packet connections in a network cluster including a plurality of processor nodes and a connection registration database, the method comprising the steps of:
- forming a data packet such that the data packet includes an indication of a destination processor node of the plurality of processor nodes in the network cluster;
transmitting across a computer network, the formed data packet such that it serves as an incoming packet of information associated with a plurality of related packets of information to the network cluster;
receiving the incoming packet of information by a first processor node of the plurality of processor nodes in the network cluster; and
using, from the incoming packet of information, the indication of the destination processor node to deliver the incoming packet of information from the first processor node to the destination processor node within the network cluster, in a manner such that the incoming packet of information and each of the related packets of information are delivered to the destination processor node without a connection registration overhead operation.
5 Assignments
0 Petitions
Accused Products
Abstract
In accordance with the present invention a method is provided for encoding connection ownership information in the sequence number field of an outgoing TCP/IP data packet header. That connection information includes the network layer address of the processor node to which the packet is associated. With such an invention, the connection registration database is only updated after 32 megabytes have been transferred across that connection. Because fewer data packets are being registered in the connection registration database, sufficient time is allowed for registering other connections in background operations. Further, connections that do not send more than 32 megabytes of data never need to be registered.
98 Citations
29 Claims
-
1. A method for providing data packet connections in a network cluster including a plurality of processor nodes and a connection registration database, the method comprising the steps of:
-
forming a data packet such that the data packet includes an indication of a destination processor node of the plurality of processor nodes in the network cluster;
transmitting across a computer network, the formed data packet such that it serves as an incoming packet of information associated with a plurality of related packets of information to the network cluster;
receiving the incoming packet of information by a first processor node of the plurality of processor nodes in the network cluster; and
using, from the incoming packet of information, the indication of the destination processor node to deliver the incoming packet of information from the first processor node to the destination processor node within the network cluster, in a manner such that the incoming packet of information and each of the related packets of information are delivered to the destination processor node without a connection registration overhead operation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
encoding an identifier of the destination processor node of the cluster in a header portion of the incoming packet of information, that identifier being an encoded identifier of the destination processor node; and
the using step further includes the step of converting the header portion of the incoming packet of information to a header portion of an outgoing packet of information, and performing a connection registration overhead operation, whereby information regarding a connection that is associated with the plurality of related packets is stored in the connection registration database, after a predetermined amount of data is transferred from the destination node across the connection.
-
-
3. A method for providing data packet connections in a network cluster as described in claim 2 wherein the identifier of the destination node is encoded by the first processor in a sequence number field of the header portion of the incoming packet of information and in a sequence number field of the header portion of the outgoing packet of information.
-
4. A method for providing data packet connections in a network cluster as described in claim 3 wherein the sequence number field of the header portion of the outgoing packet of information is incremented by an amount of data transferred by the outgoing packet of information.
-
5. A method for providing data packet connections in a network cluster as described in claim 4 further including the step of:
-
decrementing a counter, associated with the destination processor node and initialized to a count that is equivalent to the predetermined amount of data, by the amount of data transferred by the outgoing packet of information; and
storing information, regarding the connection that is associated with the plurality of associated packets, by the connection registration overhead operation in response to said counter reaching a count of zero.
-
-
6. A method for providing data packet connections in a network cluster as described in claim 2 further including the step of:
encoding a guard field adjacent to the encoded identifier of the destination processor node in the header portion of the incoming packet of information.
-
7. A method for providing data packet connections in a network cluster as described in claim 6 further including the steps of:
-
receiving a second one of the plurality of related packets of information, having a header portion associated with the outgoing packet of information;
determining, by the first processor node, whether the information regarding the connection has been stored by the connection registration overhead operation; and
decoding the encoded identifier of the destination processor node from the header portion of the second one of the plurality of associated packets of information, in response to a determination that no information regarding the connection has been stored by the connection registration overhead operation.
-
-
8. A method for providing data packet connections in a network cluster as described in claim 7 further including the step of:
decoding, by the first processor node, the identifier of the destination processor node from the header portion of the second one of the plurality of related packets, in response to the guard field having a first value.
-
9. A method for providing data packet connections in a network cluster as described in claim 8 further including the step of:
transferring, by the first node, the second one of the plurality of related packets to the destination processor node for servicing.
-
10. A method for providing data packet connections in a network cluster as described in claim 9 further including the step of:
storing, in response to the guard field having a value within a predetermined range, the information regarding the connection by the connection registration overhead operation.
-
11. A method for providing data packet connections in a network cluster as described in claim 7 wherein the guard field, having a certain value, indicates that the predetermined amount of data has been transferred to the destination processor node over the connection.
-
12. A method for providing data packet connections in a network cluster as described in claim 7 including the steps of:
retrieving, the identifier of the destination processor node from a connection registration database associated with the connection registration overhead operation, in response to a determination that the information regarding the connection has been stored by the connection registration overhead operation.
-
13. A method for providing data packet connections in a network cluster as described in claim 2 wherein said plurality of related packets of information correspond to the TCP/IP protocol.
-
14. A computer program product for reducing a frequency of a connection registration overhead operation in a cluster having a plurality of system resources including processor nodes, each processor node including a memory and I/O circuitry through which the plurality of system resources are electrically connected and through which data packets can be exchanged with other clusters, the computer program product comprising a computer usable medium having computer readable program code thereon, including:
-
program code, for encoding an identifier of a processor node in a header portion of an incoming packet of information, sent from a client application to a cluster alias address associated with the processor node, such that information regarding a connection between the processor node and the client application is withheld from being stored in a connection registration data base until a predetermined amount of data has been sent across that connection; and
program code for converting the header portion of the incoming packet of information to a header portion of an outgoing packet of information, sent from the processor node to the client application. - View Dependent Claims (15, 16)
program code for encoding a guard field adjacent to the encoded identifier of the processor node in the header portion of the incoming packet of information.
-
-
17. A computer system for providing data packet connections in a cluster including a plurality of processor nodes, comprising:
-
a client application for forming a data packet associated with a plurality of related data packets such that the data packet includes a cluster alias address for the cluster and an initial request for establishment of a connection to the cluster using the cluster alias address without specifying any one of the plurality of processor nodes as a destination and the data packet further includes an encoded identifier for indicating the selected destination processor node such that the receiving processor node can deliver each of the related data packets to the selected destination processor node without a connection registration overhead operation occurring until a predetermined amount of data is transferred from the client application across the connection, and for transmitting the data packet across a computer network; and
a receiver processor node of the plurality of processor nodes, within the cluster, for receiving the data packet and for selecting a destination processor node of the plurality of processor nodes, within the cluster, for establishing the connection. - View Dependent Claims (18, 19, 20, 24, 25)
a guard field, encoded in a field that is adjacent to the encoded identifier of the selected destination processor node in the header portion of the data packet.
-
-
20. A computer system for providing data packet connections in a cluster, as described in claim 19 further comprising:
a connection registration database for storing information regarding the connection for the connection registration overhead operation in response to the guard field having a value within a predetermined range.
-
24. A computer system for providing data packet connections in a cluster, as described in claim 17, wherein the encoded identifier is included in a data portion of the data packet.
-
25. A computer system for providing data packet connections in a cluster, as described in claim 17, wherein the encoded identifier is included in a field of the data packet header other than a sequence number field.
- 21. A computer system for providing data packet connections in a cluster, as described in claim *herein the guard field having a certain value within a predetermined range indicates that a predetermined amount of data has been transferred to the selected destination processor node over the connection.
-
26. An apparatus for providing data packet connections in a network cluster including a plurality of processor nodes and a connection registration database, comprising:
-
means for forming a data packet such that the data packet includes an indication of a destination processor node of the plurality of processor nodes in the network cluster;
means for transmitting across a computer network, the formed data packet such that it serves as an incoming packet of information associated with a plurality of related packets of information to the network cluster;
means for receiving the incoming packet of information by a first processor node of the plurality of processor nodes in the network cluster; and
means for using, from the incoming packet of information, the indication of destination processor node to deliver the incoming packet of information from the first processor node to the destination processor node within the network cluster, in a manner such that the incoming packet of information and each of the related packets of information are delivered to the destination processor node without a connection registration overhead operation. - View Dependent Claims (27, 28, 29)
means for encoding an identifier of the destination processor node of the cluster in a header portion of the incoming packet of information, that identifier being an encoded identifier of the destination processor node; and
means for converting the header portion of the incoming packet of information to a header portion of an outgoing packet of information, and performing a connection registration overhead operation, whereby information regarding a connection that is associated with the plurality of related packets is stored in the connection registration database, after a predetermined amount of data is transferred from the destination node across the connection.
-
-
28. An apparatus for providing data packet connections in a network cluster as described in claim 27 wherein the identifier of the destination node is encoded by the first processor in a sequence number field of the header portion of the incoming packet of information and in a sequence number field of the header portion of the outgoing packet of information.
-
29. An apparatus for providing data packet connections in a network cluster as described in claim 27, further comprising:
means for encoding a guard field adjacent to the encoded identifier of the destination processor node in the header portion of the incoming packet of information.
Specification