Adaptive inverse multiplexing method and system
First Claim
1. A method of aggregating a plurality of parallel communication channels transmitting packets and each parallel communication channel coupled with an associated queue, the method comprising:
- assigning packets to each queue associated with each of a plurality of parallel communication channels;
computing average queue load ratios for each of the plurality of parallel communication channels; and
re-assigning packets which are assigned to a first one of the plurality of parallel communication channels with a maximum average queue load ratio to a second one of the plurality of parallel communication channels with a lowest average queue load ratio.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and system of combining a plurality of parallel communication channels to emulate a single high-bandwidth communication channel. A continuous stream of packets are grouped as traffic aggregates and assigned to queues associated with the plurality of parallel communication channels. The assignment and reassignment of traffic aggregates to the queues is performed dynamically based on measuring the queue load ratios associated with the lengths of the queues for each of the parallel communication channels. Grouping of existing and future packets as traffic aggregates is based on common attributes shared by the packets such as common source and destination IP addresses.
-
Citations
34 Claims
-
1. A method of aggregating a plurality of parallel communication channels transmitting packets and each parallel communication channel coupled with an associated queue, the method comprising:
-
assigning packets to each queue associated with each of a plurality of parallel communication channels;
computing average queue load ratios for each of the plurality of parallel communication channels; and
re-assigning packets which are assigned to a first one of the plurality of parallel communication channels with a maximum average queue load ratio to a second one of the plurality of parallel communication channels with a lowest average queue load ratio. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
determining a plurality of traffic aggregates; and
assigning each of the plurality of traffic aggregates to each of the plurality of parallel communication channels based on a predetermined map.
-
-
3. The method of claim 2 wherein the predetermined map is determined from a look-up table presenting each the plurality of traffic aggregates to each of the plurality of parallel communication channels.
-
4. The method of claim 3 wherein each of the pluarlity of traffic aggregates is a set of packets having in common at least one pre-determined attribute.
-
5. The method of claim 4 wherein the at least one pre-determined attribute is a common key determined based on the destination of a packet.
-
6. The method of claim 5 wherein the common key is a hash value, the hash value being a unique number calculated using a hash function that depends on a destination Internet protocol address of a packet.
-
7. The method of claim 1 wherein assigning packets comprises:
-
determining a plurality of traffic aggregates; and
assigning each of the plurality of traffic aggregates to each of the plurality of parallel communication channels randomly.
-
-
8. The method of claim 7 wherein each of the plurality of traffic aggregates is a set of packets having in common at least one pre-determined attribute.
-
9. The method of claim 8 wherein the at least one pre-determined attribute is a common key determined based on a destination of a packet.
-
10. The method of claim 9 wherein the common key is a hash value, the hash value being a unique number calculated using a hash function that depends on a destination Internet protocol address of a packet.
-
11. The method of claim 1 wherein computing the average queue load ratio for each of the plurality of communication channels comprises:
-
measuring an average queue length for each of the parallel communication channels, a queue length being the total bytes contained in packets assigned to a queue;
determining capacity of each of the plurality of the parallel communication channels; and
dividing each of the average queue lengths measured by each of the capacities determined for each of the plurality of parallel communication channels.
-
-
12. The method of claim 11 wherein measuring the average queue length of each of the parallel communication channels comprises:
-
measuring the size of a departing packet, the departing packet being a packet leaving a queue;
determining the length of the queue when the departing packet leaves the queue; and
determining the capacity of one of the plurality of parallel communication channels associated with the queue.
-
-
13. The method of claim 12 wherein measuring the average queue length of each of the parallel communication channels further comprises:
-
summing the product of the size of the departing packet measured by the length of the queue determined when the departing packet leaves the queue for all packets that leave the queue during a pre-determined measurement time interval; and
dividing the summation of the products by the capacity determined of one of the plurality of parallel communication channels associated with the queue and the pre-determined measurement time interval.
-
-
14. The method of claim 12 wherein the pre-determined time interval is about a half of a second to one and one half second.
-
15. The method of claim 1 further comprising continuing to re-assign packets per a pre-determined time interval.
-
16. The method of claim 12 wherein the pre-determined time interval is one second.
-
17. An adaptive network system comprising:
-
a first network;
a plurality of parallel communication channels coupled to the first network;
a second network; and
a network switch coupled to the second network and to the plurality of communication channels, the network switch includes a plurality of queues associated with each of the plurality of parallel communication channels and the network switch is configured to measure an average queue load ratio of each of the plurality of queues and to assign and re-assign packets to each of the plurality of queues based on a maximum, minimum or both maximum and minimum average queue load ratios measured. - View Dependent Claims (18)
memory containing the plurality of queues; and
processor configured to assign and re-assign packets to each queue and to measure the average queue load ratio of each of the plurality of parallel communication channels.
-
-
19. An adaptive network device sending packets through a plurality of parallel communication channels comprising:
-
a plurality of network interface devices coupled to a plurality of parallel communication channels;
a memory coupled to the plurality of network interface devices, the memory stores a plurality of queues associated with each of the plurality of communication channels; and
a processor coupled to the memory, the processor configured to measure an average queue load ratio of each of the plurality of communication channels and to assign and re-assign packets to each of the plurality of queues based on a maximum, minimum or both maximum and minimum average queue load ratios measured. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. An adaptive network device sending packets through a plurality of parallel communication channels comprising:
-
a plurality of network interface devices coupled to a plurality of communication channels;
a memory coupled to the plurality of network interface devices, the memory stores a plurality of queues associated with each of the plurality of communication channels; and
a processor coupled to the memory, the processor configured to measure an average queue load ratio of each of the plurality of communication channels and to assign a set of the plurality of queues to each of the plurality of communication channels based on a maximum, minimum or both maximum and minimum average queue load ratios measured. - View Dependent Claims (28, 29, 30, 31, 32, 33, 34)
-
Specification