Load balancing network traffic using race methods
First Claim
1. A machine-implemented method for enabling communication between nodes, the method comprising:
- receiving, at a first node that is associated with a first Internet Protocol (IP) address, a first IP packet that;
(a) contains a Transmission Control Protocol (TCP) SYN packet, and(b) indicates, as a destination IP address, a second IP address that differs from the first IP address;
sending copies of the first IP packet toward two or more other nodes, each of which is associated with a separate IP address that differs from the second IP address; and
a processor generating a network map based on distances between a second node, which is associated with a third IP address that the first IP packet indicates as a source IP address, and at least one node of the two or more nodes;
wherein generating the network map comprises generating a map of clients and servers that are considered to be closest to the clients.
2 Assignments
0 Petitions
Accused Products
Abstract
Techniques are provided for using the mobility support features of IPv6 to allow client and server nodes to communicate without the continuing intervention of a load-balancing node that selected the server node. A load-balancing node intercepts a TCP SYN packet addressed to a virtual IP address. The load-balancing node selects a server node from among multiple server nodes, and sends the packet toward the server node. The server node sends an IPv6 packet toward the client node. The packet contains a Binding Update option that specifies the virtual IP address as a Home Address. This information causes the client node to replace destination addresses in outgoing IP packets so that packets that the client node would have sent toward the virtual IP address are sent toward the selected server node'"'"'s IP address instead. Consequently, the IP packets are routed toward the selected server node instead of the load-balancing node.
119 Citations
18 Claims
-
1. A machine-implemented method for enabling communication between nodes, the method comprising:
-
receiving, at a first node that is associated with a first Internet Protocol (IP) address, a first IP packet that; (a) contains a Transmission Control Protocol (TCP) SYN packet, and (b) indicates, as a destination IP address, a second IP address that differs from the first IP address; sending copies of the first IP packet toward two or more other nodes, each of which is associated with a separate IP address that differs from the second IP address; and a processor generating a network map based on distances between a second node, which is associated with a third IP address that the first IP packet indicates as a source IP address, and at least one node of the two or more nodes; wherein generating the network map comprises generating a map of clients and servers that are considered to be closest to the clients. - View Dependent Claims (2, 3)
-
-
4. An apparatus for enabling communication between nodes, the apparatus comprising:
-
a receiver that receives, at a first node that is associated with a first Internet Protocol (IP) address, a first IP packet that; (a) contains a Transmission Control Protocol (TCP) SYN packet, and (b) indicates, as a destination IP address, a second IP address that differs from the first IP address; a sender that sends copies of the first IP packet toward two or more other nodes, each of which is associated with a separate IP address that differs from the second IP address; and a processor that generates a network map based on distances between a second node, which is associated with a third IP address that the first IP packet indicates as a source IP address, and each node of the two or more nodes; wherein the processor generates the network map by generating a map of clients and servers that are considered to be closest to the clients. - View Dependent Claims (5, 6)
-
-
7. A volatile or non-volatile machine-readable storage medium on which is encoded one or more sequences of machine-readable code instructions for enabling communication between nodes, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform steps comprising:
-
receiving, at a first node that is associated with a first Internet Protocol (IP) address, a first IP packet that; (a) contains a Transmission Control Protocol (TCP) SYN packet, and (b) indicates, as a destination IP address, a second IP address that differs from the first IP address; sending copies of the first IP packet toward two or more other nodes, each of which is associated with a separate IP address that differs from the second IP address; and generating a network map based on distances between a second node, which is associated with a third IP address that the first IP packet indicates as a source IP address, and at least one node of the two or more nodes; wherein generating the network map comprises generating a map of clients and servers that are considered to be closest to the clients. - View Dependent Claims (8, 9)
-
-
10. A machine-implemented method for enabling communication between nodes, the method comprising the steps of:
-
receiving a particular data packet at a load-balancing node; selecting two or more server nodes; sending, from the load-balancing node, a copy of the particular data packet toward each server node of the two or more server nodes; wherein, in response to receiving a copy of the particular data packet, each server node of the two or more server nodes sends a responsive data packet toward a client node whose address matches a source address indicated by the particular data packet; wherein the client node responds to only a first-received responsive data packet sent from a server node of the two or more server nodes; and generating a network map based on a distance between the client node and a server node that sent the first-received responsive data packet; wherein generating the network map comprises generating a map of clients and servers that are considered to be closest to the clients. - View Dependent Claims (11, 12)
-
-
13. An apparatus for enabling communication between nodes, the apparatus comprising:
-
a receiver that receives a particular data packet at a load-balancing node; a selector that selects two or more server nodes; a sender that sends, from the load-balancing node, a copy of the particular data packet toward each server node of the two or more server nodes; wherein, in response to receiving a copy of the particular data packet, each server node of the two or more server nodes sends a responsive data packet toward a client node whose address matches a source address indicated by the particular data packet; wherein the client node responds to only a first-received responsive data packet sent from a server node of the two or more server nodes; and a generator that generates a network map based on a distance between the client node and a server node that sent the first-received responsive data packet; wherein generating the network map comprises generating a map of clients and servers that are considered to be closest to the clients. - View Dependent Claims (14, 15)
-
-
16. A volatile or non-volatile machine-readable storage medium on which is encoded one or more sequences of machine-readable code for enabling communication between nodes, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform steps comprising:
-
receiving a particular data packet at a load-balancing node; selecting two or more server nodes; sending, from the load-balancing node, a copy of the particular data packet toward each server node of the two or more server nodes; wherein, in response to receiving a copy of the particular data packet, each server node of the two or more server nodes sends a responsive data packet toward a client node whose address matches a source address indicated by the particular data packet; wherein the client node responds to only a first-received responsive data packet sent from a server node of the two or more server nodes; and generating a network map based on a distance between the client node and a server node that sent the first-received responsive data packet; wherein generating the network map comprises generating a map of clients and servers that are considered to be closest to the clients. - View Dependent Claims (17, 18)
-
Specification