Method and system for global routing and bandwidth sharing
First Claim
1. In a network communications environment comprising a plurality of network nodes, a plurality of communications links among network nodes, and a control unit, the plurality of network nodes comprising a plurality of host network nodes and a plurality of router network nodes, a method for the control unit to produce routing information, the method comprising:
- receiving topology information about the network communications environment;
receiving inter-node communications information; and
computing routing information for at least one router network node, the computing based, at least in part, on the received topology information and on the received inter-node communications information.
2 Assignments
0 Petitions
Accused Products
Abstract
Disclosed is a routing and bandwidth allocation system that maximizes network throughput while maintaining global fairness in the sharing of network resources. From gathered global network information (such as inter-node communications patterns and network topology), routing tables and bandwidth allocation policies are computed for routers. In some embodiments, the computations involve applying multi-commodity flow methods to provide a “max-fair” allocation of network resources. While in some embodiments each router collects global network information and then locally produces its own routing and bandwidth allocation tables, it can be simpler and cheaper in terms of both computation and security for a centralized, trusted control unit to perform the calculations and then to distribute the results to the routers. The computed bandwidth policies can leave some bandwidth unallocated to handle unexpected surges in demand. The computed routing tables can include multiple paths leading to greater link utilization and to robustness to link failure.
65 Citations
81 Claims
-
1. In a network communications environment comprising a plurality of network nodes, a plurality of communications links among network nodes, and a control unit, the plurality of network nodes comprising a plurality of host network nodes and a plurality of router network nodes, a method for the control unit to produce routing information, the method comprising:
-
receiving topology information about the network communications environment;
receiving inter-node communications information; and
computing routing information for at least one router network node, the computing based, at least in part, on the received topology information and on the received inter-node communications information. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A computer-readable medium containing computer-executable instructions for performing a method for a control unit in a network communications environment to produce routing information, the method comprising:
-
receiving topology information about the network communications environment;
receiving inter-node communications information; and
computing routing information for at least one router network node, the computing based, at least in part, on the received topology information and on the received inter-node communications information.
-
-
47. In a network communications environment comprising a plurality of network nodes, a plurality of communications links among network nodes, and a control unit, the plurality of network nodes comprising a plurality of host network nodes and a plurality of router network nodes, a method for a router network node to route information to the router'"'"'s outgoing communications links, the method comprising:
-
sending to the control unit topology information about the network communications environment;
receiving from the control unit routing information;
receiving from the control unit bandwidth allocation information;
choosing an outgoing communications link for sending information, the choosing based, at least in part, on the received routing information; and
at least when an outgoing communications link is congested, allocating bandwidth of the outgoing communications link among information received over incoming communications links, the allocating based, at least in part, on the received bandwidth allocation information. - View Dependent Claims (48, 49, 50, 51, 52, 53, 54, 55, 56)
-
-
57. A computer-readable medium containing computer-executable instructions for performing a method for a router network node in a network communications environment to route information to the router'"'"'s outgoing communications links, the method comprising:
-
sending to a control unit topology information about the network communications environment;
receiving from the control unit routing information;
receiving from the control unit bandwidth allocation information;
choosing an outgoing communications link for sending information, the choosing based, at least in part, on the received routing information; and
at least when an outgoing communications link is congested, allocating bandwidth of the outgoing communications link among information received over incoming communications links, the allocating based, at least in part, on the received bandwidth allocation information.
-
-
58. In a network communications environment comprising a plurality of network nodes, a plurality of communications links among network nodes, and a control unit, the plurality of network nodes comprising a plurality of host network nodes and a plurality of router network nodes, a method for a host network node to provide information to the control unit, the method comprising:
-
collecting inter-node communications information;
sending to the control unit the collected inter-node communications information;
collecting updated inter-node communications information; and
sending to the control unit the collected updated inter-node communications information. - View Dependent Claims (59, 60, 61, 62)
-
-
63. A computer-readable medium containing computer-executable instructions for performing a method for a host network node in a network communications environment to provide information to a control unit, the method comprising:
-
collecting inter-node communications information;
sending to the control unit the collected inter-node communications information;
collecting updated inter-node communications information; and
sending to the control unit the collected updated inter-node communications information.
-
-
64. A control unit system for producing routing information, the control unit system comprising:
-
a communications receiver configured for receiving topology information about a network communications environment and for receiving inter-node communications information;
a processor configured for computing routing information for at least one router network node in the network communications environment, the computing based, at least in part, on received topology information and on received inter-node communications information; and
a routing information data structure containing routing information computed by the processor. - View Dependent Claims (65, 66, 67)
-
-
68. A router network node system for routing information to the router'"'"'s outgoing communications links, the router network node system comprising:
-
a plurality of outgoing communications links;
a plurality of incoming communications links;
a communications sender configured for sending topology information about a network communications environment;
a communications receiver configured for receiving routing information and for receiving bandwidth allocation information;
a routing information data structure containing received routing information;
a bandwidth allocation data structure containing received bandwidth allocation information; and
a routing processor configured for choosing an outgoing communications link for sending information, the choosing based, at least in part, on the received routing information and, at least when an outgoing communications link is congested, for allocating bandwidth of the outgoing communications link among information received over incoming communications links, the allocating based, at least in part, on the received bandwidth allocation information.
-
-
69. A host network node system for providing information, the host network node system comprising:
-
a collector configured for collecting inter-node communications information;
an inter-node communications data structure containing collected inter-node communications information; and
a communications sender configured for sending collected inter-node communications information. - View Dependent Claims (70)
-
-
71. In a network communications environment, a system for producing and using routing information, the system comprising:
-
a plurality of network nodes, the plurality comprising a plurality of host network nodes and a plurality of router network nodes;
a plurality of communications links among network nodes;
a control unit comprising a communications receiver configured for receiving topology information about the network communications environment and for receiving inter-node communications information, a processor configured for computing routing information for at least one router network node, the computing based, at least in part, on received topology information and on received inter-node communications information, a routing information data structure containing routing information computed by the processor, and a communications sender configured for sending computed routing information;
the router network node comprising a communications sender configured for sending topology information about the network communications environment, a communications receiver configured for receiving routing information, a routing information data structure containing received routing information, and a routing processor configured for choosing an outgoing communications link for sending information, the choosing based, at least in part, on the received routing information; and
a host network node comprising a collector configured for collecting inter-node communications information, an inter-node communications data structure containing collected inter-node communications information, and a communications sender configured for sending collected inter-node communications information. - View Dependent Claims (72)
-
-
73. A computer-readable medium containing an inter-node communications information data structure for a host network node, the inter-node communications information data structure comprising:
-
a first data field containing data identifying a second network node distinct from the host network node; and
a second data field containing data representing an expected flow rate of communications from the host network node to the second network node. - View Dependent Claims (74, 75, 76)
-
-
77. A computer-readable medium containing a multipath routing information data structure for a router network node, the multipath routing information data structure comprising:
-
a first data field containing data identifying a destination network node;
a second data field containing data identifying a first path from the router network node to the destination network node;
a third data field containing data representing a routing probability for first path;
a fourth data field containing data representing a second path from the router network node to the destination network node; and
a fifth data field containing data representing a routing probability for the second path. - View Dependent Claims (78, 79)
-
-
80. A computer-readable medium containing a bandwidth allocation information data structure for a router network node, the bandwidth allocation information data structure comprising:
-
a first data field containing data representing an outgoing communications link of the router network node; and
a second data field containing data representing, for the outgoing communications link, allocations of bandwidth received over incoming communications links of the router network node. - View Dependent Claims (81)
-
Specification