Combining multilink and IP per-destination load balancing over a multilink bundle
First Claim
1. A method of load balanced transmission of packets through a bundle of data communication links, the method comprising the steps of:
- distinguishing packets for best-efforts service from packets forming a plurality of delay-sensitive flows;
fragmenting a plurality of the packets for best-efforts service;
for each fragmented packet, transmitting the fragments over a plurality of the data communication links of the bundle;
for each packet of a first one of the delay-sensitive flows, calculating a first hash value from predetermined packet header data;
for each packet of a second one of the delay-sensitive flows, calculating a second hash value from predetermined packet header data, the second hash value differing from the first hash value;
assigning each packet for the first delay-sensitive flow to a first one of the data communication links as a function of the first hash value;
assigning each packet for the second delay-sensitive flow to a second one of the data communication links as a function of the second hash value; and
transmitting packets of the first and second delay-sensitive flows over the assigned first and second data communication links interleaved together with the fragments transmitted on the first and second data communication links.
1 Assignment
0 Petitions
Accused Products
Abstract
Load balanced transport of best efforts traffic together with delay-bounded traffic over a multilink bundle combines fragmentation and fragment distribution for best efforts packets with per-flow balancing for delay-bounded traffic. In the preferred embodiments, the best efforts packets receive Multilink Protocol treatment, including fragmentation and addition of sequence headers. Fragments of packets for one such communication go over the various links within the bundle, as appropriate for load balancing on the links. For each delay-bounded flow, such as for a VOIP service, the sending node hashes the packet header data and applies all packets for the flow to one of the links, assigned as a function of the hash value. Different flow headers produce different hash results; therefore the node sends different flows over the different links in a substantially balanced manner.
168 Citations
32 Claims
-
1. A method of load balanced transmission of packets through a bundle of data communication links, the method comprising the steps of:
-
distinguishing packets for best-efforts service from packets forming a plurality of delay-sensitive flows;
fragmenting a plurality of the packets for best-efforts service;
for each fragmented packet, transmitting the fragments over a plurality of the data communication links of the bundle;
for each packet of a first one of the delay-sensitive flows, calculating a first hash value from predetermined packet header data;
for each packet of a second one of the delay-sensitive flows, calculating a second hash value from predetermined packet header data, the second hash value differing from the first hash value;
assigning each packet for the first delay-sensitive flow to a first one of the data communication links as a function of the first hash value;
assigning each packet for the second delay-sensitive flow to a second one of the data communication links as a function of the second hash value; and
transmitting packets of the first and second delay-sensitive flows over the assigned first and second data communication links interleaved together with the fragments transmitted on the first and second data communication links. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A transmitting device, for load balanced transmission of packets through a bundle of data communication links, comprising:
-
a classifier receiving a stream of data packets intended for transport through the bundle for segregating received packets for best-efforts service from received packets forming a plurality of delay-sensitive flows;
a fragmentor coupled to the classifier for fragmenting a plurality of the packets for best-efforts service;
means for calculating a hash value from predetermined data from a header contained in each packet of the plurality of delay-sensitive flows;
link interfaces, each link interface being coupled for transmission of fragments and packets over a data communication link of the bundle; and
a load balancing element for;
1) evenly distributing the fragments of each of the plurality of the packets for best-efforts service to a plurality of the link interfaces for transmission; and
2) distributing the packets of different ones of the delay-sensitive flows to a plurality of the link interfaces for transmission while distributing all packets of each one of the delay-sensitive flows to a single one of the link interfaces for transmission, as a function of the hash values. - View Dependent Claims (11, 12, 13, 14)
a Multilink Protocol encapsulator for encapsulating the fragments; and
a Point-to-Point Protocol encapsulator for encapsulating the packets of the delay-sensitive flows.
-
-
13. A device as in claim 12, wherein:
-
the Multilink Protocol encapsulator adds a header to each fragment, each header containing a sequence number, and the Point-to-Point Protocol encapsulator adds no sequence numbers to the packets of the delay-sensitive flows.
-
-
14. A device as in claim 10, wherein at least two of the link interfaces provide an equal data rate transmission over respective links coupled thereto.
-
15. A device for reception of load balanced packet transmissions through a bundle of data communication links carrying fragments of packets of best efforts traffic distributed throughout the links and carrying packets of a plurality of delay-sensitive flows, the packets of each delay-sensitive flow traversing a single one of the data communication links, the device comprising:
-
a plurality of link interfaces, each link interface being coupled for reception of fragments and packets over one data communication link of the bundle;
a decoder coupled to the link interfaces for segregating received fragments of packets of best efforts traffic from received packets of one or more individual delay-sensitive flows;
a fragment reassembler for reordering fragments received over different links as necessary and reassembling fragments into packets for best-efforts service; and
a packet router, coupled to receive packets from the fragment reassembler, and coupled to receive packets from delay-sensitive flows carried on a plurality of the data communication links from the decoder without any reordering. - View Dependent Claims (16, 17, 18, 29)
a Multilink Protocol de-encapsulator for stripping off Multilink Protocol encapsulation data from the fragments; and
a Point-to-Point Protocol de-encapsulator for stripping off Point-to-Point Protocol encapsulation data from the packets of the delay-sensitive flows.
-
-
17. A device as in claim 15, wherein at least two of the link interfaces provide an equal data rate reception from respective links coupled thereto.
-
18. A device as in claim 15, wherein the router comprises an Internet Protocol packet router.
-
29. The device of claim 15, wherein the packet router is configured to
calculate a first hash value from predetermined packet header data for each packet of a first one of the delay-sensitive flows; -
calculate a second hash value from predetermined packet header data for each packet of a second one of the delay-sensitive flows, the second hash value differing from the first hash value;
assign each packet for the first delay-sensitive flow to a first one of the data communication links as a function of the first hash value;
assign each packet for the second delay-sensitive flow to a second one of the data communication links as a function of the second hash value; and
transmit packets of the first and second delay-sensitive flows over the assigned first and second data communication links interleaved together with the fragments transmitted on the first and second data communication links.
-
-
19. An apparatus for load balanced transmission of packets through a bundle of data communication links of a packet communication network, comprising:
-
means for distinguishing packets for best-efforts service from packets forming a plurality of delay-sensitive flows;
means for fragmenting a plurality of the packets for best-efforts service;
means for evenly transmitting the fragments of each fragmented packet over a plurality of the links of the bundle;
means for calculating a first hash value from predetermined packet header data of each packet of a first one of the delay-sensitive flows and calculating a second hash value from predetermined packet header data of each packet of a second one of the delay-sensitive flows, the second hash value differing from the first hash value;
means for assigning each packet for the first and second delay-sensitive flows to respective first and second ones of the links as a function of the first and second hash values; and
link interfaces coupled to the first and second links for transmitting packets of the first and second delay-sensitive flows over the assigned first and second links interleaved together with the fragments transmitted on the first and second links.
-
-
20. A computer-readable medium carrying one or more sequences of instructions for load balanced transmission of packets through a bundle of data communication links, wherein execution of the one or more sequences of instructions by one or more processors causes the one or more processors to perform the steps of:
-
distinguishing packets for best-efforts service from packets forming a plurality of delay-sensitive flows;
fragmenting a plurality of the packets for best-efforts service;
for each fragmented packet, transmitting the fragments over a plurality of the data communication links of the bundle;
for each packet of a first one of the delay-sensitive flows, calculating a first hash value from predetermined packet header data;
for each packet of a second one of the delay-sensitive flows, calculating a second hash value from predetermined packet header data, the second hash value differing from the first hash value;
assigning each packet for the first delay-sensitive flow to a first one of the data communication links as a function of the first hash value;
assigning each packet for the second delay-sensitive flow to a second one of the data communication links as a function of the second hash value; and
transmitting packets of the first and second delay-sensitive flows over the assigned first and second data communication links interleaved together with the fragments transmitted on the first and second data communication links. - View Dependent Claims (21, 22, 23, 24, 25, 26, 27, 28)
-
-
30. A system comprising:
-
a device for reception of load balanced packet transmissions through a bundle of data communication links carrying fragments of packets of best efforts traffic distributed throughout the links and carrying packets of a plurality of delay-sensitive flows, the packets of each delay-sensitive flow traversing a single one of the data communication links, the device including at least a plurality of link interfaces, each link interface being coupled for reception of fragments and packets over one data communication link of the bundle;
a decoder coupled to the link interfaces for segregating received fragments of packets of best efforts traffic from received packets of one or more individual delay-sensitive flows;
a fragment reassembler for reordering fragments received over different links as necessary and reassembling fragments into packets for best-efforts service; and
a packet router, coupled to receive packets from the fragment reassembler, and coupled to receive packets from delay-sensitive flows carried on a plurality of the data communication links from the decoder without any reordering.
-
-
31. A system comprising:
-
a set of components that is configured to perform segregating received fragments of packets of best efforts traffic from received packets of one or more individual delay-sensitive flows;
multilink processing for delay sensitive flows; and
per-flow load balancing for best efforts traffic.
-
-
32. A method comprising:
-
segregating received fragments of packets of best efforts traffic from received packets of one or more individual delay-sensitive flows;
performing multilink processing for the delay-sensitive flows; and
performing per-flow load balancing for the best efforts traffic.
-
Specification