BALANCING LOAD IN A NETWORK, SUCH AS A DATA CENTER NETWORK, USING FLOW BASED ROUTING
First Claim
1. A computer-implemented method comprising:
- detecting, with a computer system including one or more computers in a network, a flow of packets;
identifying the detected flow as a big flow, the big flow having packet header information identifying a source host and a destination host of the big flow;
probing, with the computer system and responsive to detection of the big flow, the network by altering the packet header information to discover one or more alternative paths from the source host to the destination host in the network;
generating, with the computer system and for each of the one or more alternative paths, an association of the packet header information to an alternative path discovered using results of probing the network and identified by at least one of an alternative source port and an alternative destination port;
determining if congestion exists on a path currently being used by the big flow in the network;
selecting, with the computer system and responsive to a determination of the existence of congestion on the path currently being used, an alternative path that is from the one or more alternative paths and that is not congested; and
altering, with the computer system, the packet header information of the big flow using the generated association of the packet header information to the selected alternative path such that the big flow will be transmitted from the source host to the destination host using the selected alternative path.
1 Assignment
0 Petitions
Accused Products
Abstract
Load balancing is performed in a network using flow-based routing. For example, upon detection of a big flow, one or more alternative paths from a source host to a destination host in the network may be discovered by probing the network and generating, for each of the one or more alternative paths, an association of the packet header information of the big flow to an alternative path discovered using results of probing the network. Upon congestion in a path currently being used by the big flow, an alternative path that is not congested is selected from the one or more discovered alternative paths. The packet header information of the big flow is altered using the generated association of the packet header information to the selected alternative path such that the big flow will be transmitted using the selected alternative path.
107 Citations
22 Claims
-
1. A computer-implemented method comprising:
-
detecting, with a computer system including one or more computers in a network, a flow of packets; identifying the detected flow as a big flow, the big flow having packet header information identifying a source host and a destination host of the big flow; probing, with the computer system and responsive to detection of the big flow, the network by altering the packet header information to discover one or more alternative paths from the source host to the destination host in the network; generating, with the computer system and for each of the one or more alternative paths, an association of the packet header information to an alternative path discovered using results of probing the network and identified by at least one of an alternative source port and an alternative destination port; determining if congestion exists on a path currently being used by the big flow in the network; selecting, with the computer system and responsive to a determination of the existence of congestion on the path currently being used, an alternative path that is from the one or more alternative paths and that is not congested; and altering, with the computer system, the packet header information of the big flow using the generated association of the packet header information to the selected alternative path such that the big flow will be transmitted from the source host to the destination host using the selected alternative path. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer-implemented method comprising:
-
detecting, with a computer system including one or more computers in a network, a flow of packets; identifying the detected flow as a big flow, the big flow having packet header information identifying a source host and a destination host of the big flow; probing, with the computer system and responsive to detection of the big flow, the network by altering the packet header information to discover one or more alternative paths from the source host to the destination host in the network; generating, with the computer system and for each of the one or more alternative paths, an association of the packet header information to an alternative path using results of probing the network and identified by at least one of an alternative source port and an alternative destination port; notifying, with the computer system, to a controller in the network that is monitoring traffic in the network, the big flow and the one or more alternative paths; determining, with the controller, that congestion exists on a path currently being used by the big flow in the network; selecting, with the controller and responsive to a determination of the existence of congestion on the path currently being used by the big flow, an alternative path from the one or more alternative paths that is not congested; sending, with the controller, a re-route notification including a path identification of the selected alternative path to the source host; and altering, upon a receipt of the re-route notification, the packet header information of the big flow using the generated association such that the big flow will be transmitted from the source host to the destination host using the selected alternative path.
-
-
21. Apparatus comprising:
-
a) at least one processor; b) at least one input device; and c) at least one storage device storing program instructions which, when executed by the at least one processor, performs a method including; detecting, with a computer system including one or more computers in a network, a flow of packets, identifying the detected flow as a big flow, the big flow having packet header information identifying a source host and a destination host of the big flow, probing, with the computer system and responsive to detection of the big flow, the network by altering the packet header information to discover one or more alternative paths from the source host to the destination host in the network, generating, with the computer system and for each of the one or more alternative paths, an association of the packet header information to an alternative path discovered using results of probing the network and identified by at least one of an alternative source port and an alternative destination port, determining if congestion exists on a path currently being used by the big flow in the network, selecting, with the computer system and responsive to a determination of the existence of congestion on the path currently being used by the big flow, an alternative path that is from the one or more alternative paths and that is not congested, and altering, with the computer system, the packet header information of the big flow using the generated association of the packet header information to the selected alternative path such that the big flow will be transmitted from the source host to the destination host using the selected alternative path.
-
-
22. An article of manufacture comprising:
a machine-readable medium having instructions which, when executed by a machine, performs a method including; detecting, with a computer system including one or more computers in a network, a flow of packets, identifying the detected flow as a big flow, the big flow having packet header information identifying a source host and a destination host of the big flow, probing, with the computer system and responsive to detection of the big flow, the network by altering the packet header information to discover one or more alternative paths from the source host to the destination host in the network, generating, with the computer system and for each of the one or more alternative paths, an association of the packet header information to an alternative path discovered using results of probing the network and identified by at least one of an alternative source port and an alternative destination port, determining if congestion exists on a path currently being used by the big flow in the network, selecting, with the computer system and responsive to a determination of the existence of congestion on the path currently being used by the big flow, an alternative path that is from the one or more alternative paths and that is not congested, and altering, with the computer system, the packet header information of the big flow using the generated association of the packet header information to the selected alternative path such that the big flow will be transmitted from the source host to the destination host using the selected alternative path.
Specification