IP Library Granted Patent US 9,065,749
Granted Patent B2
US 9,065,749 · App. 13/301,576 · Granted Jun 23, 2015

Hybrid networking path selection and load balancing

Inventors: Etan Gur Cohen (San Francisco, CA); Yili Zhao (Fremont, CA); Michael B. Ryan (Los Gatos, CA); Hai Shalom (Cupertino, CA); Anthony James Cowan (Ocala, FL)
Assignee: QUALCOMM Incorporated
H04L45/125
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,065,749
App. No.
13/301,576
Granted
Jun 23, 2015
Kind
B2
Abstract

System and method for selecting a transmission medium on which to transmit a first stream. At least one of the plurality of transmission media may be substantially dynamic in nature. Path characteristics of each of a plurality of transmission media may be determined. A first transmission medium may be selected from the plurality of transmission media for the first stream based on the determined path characteristics. A first plurality of packets of the first stream may be transmitted on the first transmission medium.

Claims (102)

1. A method for a first device to select a transmission medium on which to transmit a first stream, the method comprising:

determining path characteristics of a first transmission medium and of a second transmission medium, wherein the path characteristics include a current medium utilization and a maximum medium utilization;

selecting the first transmission medium for transmission of a first plurality of packets of the first stream based, at least in part, on the current medium utilization and the maximum medium utilization of the first transmission medium;

determining whether to transmit a second plurality of packets of the first stream on the first transmission medium or on the second transmission medium based, at least in part, on the current medium utilization and the maximum medium utilization of the first transmission medium;

selecting the second transmission medium for transmission of the second plurality of packets of the first stream in response to determining that the current medium utilization of the first transmission medium exceeds the maximum medium utilization; and

transmitting a control packet to a second device indicating that the second transmission medium has been selected for transmission of the first stream.

2. The method of claim 1 , wherein the path characteristics further include a link capacity of the first transmission medium and of the second transmission medium.

3. The method of claim 1 , further comprising:

determining a type of content of the first stream;

wherein selecting the first transmission medium is further based on the type of content of the first stream.

4. The method of claim 1 , further comprising:

determining a priority level of the first stream;

wherein selecting the first transmission medium is further based on the priority level of the first stream.

5. The method of claim 1 , further comprising:

determining an order of the first transmission medium and the second transmission medium for transmission of the first stream based, at least in part, on the path characteristics of the first transmission medium and of the second transmission medium.

6. The method of claim 5 , further comprising:

detecting a change in at least one of the path characteristics of the first transmission medium and of the second transmission medium; and

modifying the order of the first transmission medium and the second transmission medium for transmission of the first stream based, at least in part, on the change in at least one of the path characteristics of the first transmission medium and of the second transmission medium.

7. The method of claim 1 , further comprising:

transmitting the first plurality of packets of the first stream on the first transmission medium; and

in response to selecting the second transmission medium, transmitting the second plurality of packets of the first stream on the second transmission medium, wherein packets of the first stream are not transmitted on the first transmission medium when packets of the first stream are transmitted on the second transmission medium.

8. A first device, comprising:

a network interface configured to communicatively couple the first device to a second device via a first transmission medium and a second transmission medium,

a communication unit coupled with the network interface, the communication unit configured to,

determine path characteristics of the first transmission medium and of the second transmission medium, wherein the path characteristics include a current medium utilization and a maximum medium utilization;

select the first transmission medium for transmission of a first plurality of packets of a first stream based, at least in part, on the current medium utilization and the maximum medium utilization of the first transmission medium;

determine whether to transmit a second plurality of packets of the first stream on the first transmission medium or on the second transmission medium based, at least in part, on the current medium utilization and the maximum medium utilization of the first transmission medium;

select the second transmission medium for transmission of the second plurality of packets of the first stream in response to determining that the current medium utilization of the first transmission medium exceeds the maximum medium utilization; and

transmit a control packet to the second device indicating that the second transmission medium has been selected for transmission of the first stream.

9. The first device of claim 8 , wherein the path characteristics further include a link capacity of the first transmission medium and of the second transmission medium.

10. The first device of claim 8 , wherein the communication unit is further configured to:

determine a type of content of the first stream;

wherein selecting the first transmission medium is further based on the type of content of the first stream.

11. The first device of claim 8 , wherein the communication unit is further configured to:

determine a priority level of the first stream;

wherein selecting the first transmission medium is further based on the priority level of the first stream.

12. The first device of claim 8 , wherein the communication unit is further configured to:

determine an order of the first transmission medium and the second transmission medium for transmission of the first stream based, at least in part, on the path characteristics of the first transmission medium and of the second transmission medium.

13. The first device of claim 12 , wherein the communication unit is further configured to:

detect a change in at least one of the path characteristics of the first transmission medium and of the second transmission medium; and

modify the order of the first transmission medium and the second transmission medium for transmission of the first stream based, at least in part, on the change in at least one of the path characteristics of the first transmission medium and of the second transmission medium.

14. The first device of claim 8 , wherein the communication unit is further configured to:

transmit the first plurality of packets of the first stream on the first transmission medium; and

in response to selection of the second transmission medium, transmit the second plurality of packets of the first stream on the second transmission medium, wherein packets of the first stream are not transmitted on the first transmission medium when packets of first stream are transmitted on the second transmission medium.

15. A non-transitory computer-readable memory medium comprising program instructions for a first device to select a transmission medium on which to transmit a first stream, wherein the program instructions are executable to:

determine path characteristics of a first transmission medium and of a second transmission medium, wherein the path characteristics include a current medium utilization and a maximum medium utilization;

select the first transmission medium for transmission of a first plurality of packets of the first stream based, at least in part, on the current medium utilization and the maximum medium utilization of the first transmission medium;

determine whether to transmit a second plurality of packets of the first stream on the first transmission medium or on the second transmission medium based, at least in part, on the current medium utilization and the maximum medium utilization of the first transmission medium;

select the second transmission medium for transmission of the second plurality of packets of the first stream in response to determining that the current medium utilization of the first transmission medium exceeds the maximum medium utilization; and

transmit a control packet to a second device indicating that the second transmission medium has been selected for transmission of the first stream.

16. A method for a first device to load-balance transmission media, the method comprising:

transmitting a first plurality of packets of a first stream on a first transmission medium;

determining that a current medium utilization of the first transmission medium exceeds a first threshold;

selecting a second transmission medium for transmission of the first stream based, at least in part, on

the determination that the current medium utilization of the first transmission medium exceeds the first threshold,

a second threshold associated with the second transmission medium, and

at least one characteristic of the first stream;

transmitting a control packet to a second device indicating that the second transmission medium has been selected for transmission of the first stream; and

transmitting a second plurality of packets of the first stream on the second transmission medium.

17. The method of claim 16 ,

wherein selecting the second transmission medium for transmission of the first stream is based, at least in part, on determining that transmission of the first stream on the second transmission medium will not cause a medium utilization of the second transmission medium to exceed the second threshold.

18. The method of claim 16 , wherein selecting the second transmission medium for transmission of the first stream is based, at least in part, on the first stream having a first priority level.

19. The method of claim 18 , wherein the first priority level is based, at least in part, on a type of content of the first stream.

20. The method of claim 16 ,

wherein the at least one characteristic of the first stream comprises an estimated bandwidth requirement of the first stream.

21. A first device, comprising:

a network interface configured to communicatively couple the first device to a second device via a first transmission medium and a second transmission medium;

a communication unit coupled with the network interface, the communication unit configured to,

transmit a first plurality of packets of a first stream on the first transmission medium;

determine that a current medium utilization of the first transmission medium exceeds a first threshold;

select the second transmission medium for transmission of the first stream based, at least in part, on

the determination that the current medium utilization of the first transmission medium exceeds the first threshold,

a second threshold associated with the second transmission medium, and

at least one characteristic of the first stream;

transmit a control packet to the second device indicating that the second transmission medium has been selected for transmission of the first stream; and

transmit a second plurality of packets of the first stream on the second transmission medium.

22. A non-transitory computer-readable memory medium comprising program instructions for load balancing transmission media, wherein the program instructions are executable to:

route a first plurality of packets of a first stream to a first transmission medium for transmission;

determine that a current medium utilization of the first transmission medium exceeds a first threshold;

select a second transmission medium for transmission of the first stream based, at least in part, on

the determination that the current medium utilization of the first transmission medium exceeds the first threshold,

a second threshold associated with the second transmission medium, and

at least one characteristic of the first stream;

transmit a control packet to a second device indicating that the second transmission medium has been selected for transmission of the first stream; and

transmit a second plurality of packets of the first stream on the second transmission medium.

23. A method for a first device to associate bi-directional streams, the method comprising:

receiving a first plurality of packets of a first stream from a second device on a first transmission medium, wherein the first plurality of packets of the first stream comprise transmission control protocol (TCP) data packets;

determining to generate a second stream in association with the first stream, wherein the second stream is to be transmitted to the second device;

storing information indicating that the first stream is assigned to the first transmission medium and the second stream is associated with the first stream; and

transmitting a second plurality of packets of the second stream to the second device on the first transmission medium, wherein

the second plurality of packets of the second stream are generated in response to receiving the first plurality of packets of the first stream, and

the second plurality of packets of the second stream comprise TCP acknowledgement (ACK) packets;

wherein transmitting the second plurality of packets is based, at least in part, on the information indicating that the first stream is assigned to the first transmission medium and the second stream is associated with the first stream.

24. The method of claim 23 , wherein

determining to generate the second stream in association with the first stream is based, at least in part, on receiving an indication from the second device that the second stream can be generated in association with the first stream.

25. The method of claim 1 , wherein the maximum medium utilization for the first transmission medium and for the second transmission medium is determined based, at least in part, on at least one member of a group consisting of a type of the transmission medium and characteristics of the first stream.

26. The method of claim 1 , wherein

the first plurality of packets of the first stream are transmitted on the first transmission medium using a first network protocol,

the second plurality of packets of the first stream are transmitted on the second transmission medium using a second network protocol, and

the first network protocol is different from the second network protocol.

27. The method of claim 16 , further comprising:

transmitting a second plurality of packets of the first stream on the second transmission medium, wherein packets of the first stream are no longer transmitted on the first transmission medium after selecting the second transmission medium for transmission of the first stream.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 20, 2012
From: QUALCOMM ATHEROS, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 029512/0699 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 20, 2012
From: QUALCOMM ATHEROS, INC.
To: QUALCOMM INCORPORATED
Reel/Frame 029327/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 29, 2011
From: COHEN, ETAN GUR; ZHAO, YILI; RYAN, MICHAEL B.; SHALOM, HAI; COWAN, ANTHONY JAMES
To: QUALCOMM ATHEROS, INC.
Reel/Frame 027458/0873 →
Continuity (1)
Related Publication 20130128738A1 · May 23, 2013