Patent ID: 8204051

Claim:
For use in a first packet switching device capable of transmitting outgoing data packets to a second packet switching device over N parallel heterogeneous data links, said first packet switching device comprising N packet queues for storing the outgoing data packets prior to transmission over said N parallel heterogeneous data links, an apparatus for selecting one of said N parallel heterogeneous data links for transmitting the outgoing data packets comprising: a controller configured to select one of said N parallel heterogeneous data links to transmit each outgoing data packet, said controller configured to, for each outgoing data packet: determine a quality of service (QoS) requirement associated with each outgoing data packet; select a subset S of said N parallel heterogeneous data links, wherein S is greater than one and less than N and said subset S is selected according to said QoS requirement associated with each outgoing data packet; calculate a packet delay value for each one of said subset S of said N parallel heterogeneous data links, wherein said packet delay (PD) value for each of said S parallel heterogeneous data links is determined as a function of i) a propagation delay (D) of said each heterogeneous data link; ii) a packet size (PS) of each outgoing data packet; iii) a queue size (QS) of a packet queue associated with said each heterogeneous data link; and iv) a bandwidth (BW) of said each heterogeneous data link, and determine one of the subset S parallel heterogeneous data links that will result in minimization of packet-reordering at the destination for each outgoing data packet, wherein the determination is made prior to transmitting the data packet and minimizes the probability that packet-reordering will be required.