IP Library Granted Patent US 8,171,123
Granted Patent B2
US 8,171,123 · App. 12/267,254 · Granted May 1, 2012

Network bandwidth detection and distribution

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 8,171,123
App. No.
12/267,254
Granted
May 1, 2012
Kind
B2
Abstract

In a node configured to communicate with one or more other nodes over a network, available bandwidth for network traffic may be distributed among two or more distinct channels of communication within a single application running on the node. An available bandwidth may be detected for communication between the first node and a second node. A distribution may be determined for the available bandwidth among the two or more communication channels. A sending rate may be adjusted for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth.

Claims (51)

1. In a node configured to communicate with one or more other nodes over a network, a method for distributing available bandwidth for network traffic among two or more distinct channels of communication within a single application running on the node, the method comprising:

a) detecting an available bandwidth for communication between the first node and a second node;

b) determining a distribution for the available bandwidth among the two or more communication channels;

c) adjusting a sending rate for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth; and

d) determining a maximum transmission unit (MTU) size in a network path between the first and second nodes by

i) sending a plurality of test packets of varying transmission unit (TU) size from the first host to the second host, wherein a “do not fragment” (DF) flag for the test packets is not set;

ii) determining whether one or more of the test packets were received by the second hose;

iii) calculating an estimated path MTU size for a network path between the first and second hosts based on one or more patterns of receipt of the test packets by the second host, wherein the path MTU size is determined differently if the network path is bit-rate limited than if the network path is packet rate limited; and

iv) sending one or more message packets of a size less than or equal to the estimated path MTU size over the network path.

2. The method of claim 1 wherein a) includes:

sending one or more message packets from the first node to the second node;

receiving a sending rate from the second node in response to the one or more message packets; and

sending data from the first node to the second node at the sending rate.

3. The method of claim 1 wherein a) includes

detecting a traffic status with the second node in response to one or more message packets received from the first node;

sending a request from the first node to the second node, wherein the request includes a sending rate for the first node to send message packets to the second node, wherein the sending rate is determined from the traffic status.

4. The method of claim 1 wherein a) includes detecting saturation of the available bandwidth.

5. The method of claim 1 , further comprising padding the available bandwidth during communication between the first node and the second node.

6. The method of claim 1 , wherein c) includes dynamically adjusting the sending rate for data sent from the first node to the second node.

7. The method of claim 6 , wherein dynamically adjusting the sending rate includes:

i) determining an initial bandwidth for communication between the first and second nodes;

ii) sending one or more message packets from the first node to the second node at a constant sending rate less than or equal to the initial bandwidth, wherein the one or more message packets include data and padding; and

iii) increasing the constant bandwidth, if packet loss or growth of delay is not detected for the one or more message packets.

8. The method of claim 7 , further comprising decreasing the constant bandwidth, if packet loss or growth of delay is detected for the one or more message packets.

9. The method of claim 1 , wherein c) includes determining one or more correlativity indexes between one or more sessions involving communication between the first and second nodes and adjusting the sending rate based on the one or more correlativity indexes.

10. The method of claim 9 , wherein adjusting the sending rate based on the one or more correlativity indexes includes reducing a sending rate for a first session by a first amount and adjusting a sending rate for a second session by a second amount that depends on the first amount and a correlativity between the first session and the second session.

11. The method of claim 9 , wherein determining one or more correlativity indexes includes performing a computation involving a ratio of number of probe failures due to packet loss to a total number of probe failures.

12. A node configured to communicate with one or more other nodes over a network and distribute available bandwidth for network traffic among two or more distinct channels of communication within a single application running on the node, the node comprising:

a) means for detecting an available bandwidth for communication between the first node and a second node;

b) means for determining a distribution for the available among the two or more communication channels;

c) means for adjusting a sending rate for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth; and

d) means for determining a maximum transmission unit (MTU) size in a network path between the first and second nodes by

i) sending a plurality of test packets of varying transmission unit (TU) size from the first host to the second host, wherein a “do not fragment” (DF) flag for the test packets is not set;

ii) determining whether one or more of the test packets were received by the second host;

iii) calculating an estimated path MTU size for a network path between the first and second hosts based on one or more patterns of receipt of the test packets by the second host, wherein the path MTU size is determined differently if the network path is bit-rate limited than if the network path is packet rate limited; and

iv) sending one or more message packets of a size less than or equal to the estimated path MTU size over the network path.

13. A node configured to communicate with one or more other nodes over a network and distribute available bandwidth for network traffic among two or more distinct channels of communication within a single application running on the node, the node comprising:

a) a processor; and

b) a set of computer executable instructions operably to implement a bandwidth detection module and a bandwidth distribution module on the processor, wherein the bandwidth module is configured to:

i) determine an available bandwidth for communication between the first node and a second node; and

ii) adjust a sending rate for data sent from the first node to the second node over one or more of the two or more communication channels in response to a detected change in the available bandwidth; and

iii) determine a maximum transmission unit (MTU) size in a network path between the first and second nodes by

1) sending a plurality of test packets of varying transmission unit (TU) size from the first host to the second host, wherein a “do not fragment” (DF) flag for the test packets is not set;

2) determining whether one or more test packets were received by the second host;

3) calculating an estimated path MTU size for a network path between the first and second hosts based on one or more patterns of receipt of the test packets by the second host, wherein the path MTU size is determined differently if the network path is bit-rate limited than if the network path is packet rate limited; and

4) sending one or more message packets of a size less than or equal to the estimated path MTU size over the network path,

wherein the bandwidth distribution module is configured to manage a distribution for the available bandwidth among the two or more communication channels.

14. The node of claim 13 , wherein the bandwidth distribution module includes a Global Quality of Service (QoS) manager configured to distribute available bandwidth among two or more different sessions running on the node.

15. The node of claim 13 wherein the bandwidth distribution module includes a Session Quality of Service (QoS) manager configured to manage end-to-end QoS between the node and the one or more other nodes.

16. The node of claim 13 , wherein the bandwidth distribution module includes a Channel Quality of Service (QoS) manager configured to implement one or more media-specific policy controls for the node.

17. The node of claim 16 wherein the one or more media-specific controls include fragmentation and/or de-fragmentation, queuing, scheduling, policy management and bandwidth usage management.

Assignments (4)
CHANGE OF NAME Recorded Jul 1, 2016
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY INTERACTIVE ENTERTAINMENT INC.
Reel/Frame 039239/0356 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 27, 2011
From: SONY NETWORK ENTERTAINMENT PLATFORM INC.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 027557/0001 →
CHANGE OF NAME Recorded Dec 26, 2011
From: SONY COMPUTER ENTERTAINMENT INC.
To: SONY NETWORK ENTERTAINMENT PLATFORM INC.
Reel/Frame 027446/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2008
From: TAKEDA, YUTAKA; MARR, JAMES E.; DETWILER, STEPHEN C.; VASS, ATTILA; WHITE, PAYTON R.
To: SONY COMPUTER ENTERTAINMENT INC.
Reel/Frame 021806/0679 →