IP Library Granted Patent US 9,450,884
Granted Patent B2
US 9,450,884 · App. 14/302,052 · Granted Sep 20, 2016

Software defined networking based congestion control

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,450,884
App. No.
14/302,052
Granted
Sep 20, 2016
Kind
B2
Abstract

Methods and systems of adjusting bandwidth allocation by a network element in a communications network includes monitoring a data flow traversing a target port, determining a bandwidth allocation for the target port, determining a fair-share bandwidth allocation for the target port, and adjusting the bandwidth allocation for the target port based on the fair-share bandwidth allocation. The bandwidth allocation for the target port is a bandwidth that is currently allocated for the data flow. The fair-share bandwidth allocation is a proportional allocation of a total bandwidth of the network element.

Claims (83)

1. A method of adjusting bandwidth allocation by a network switching element in a communications network, the network switching element including a target port, the method comprising:

monitoring, by the network switching element, a data flow traversing the target port of the network switching element;

determining, by the network switching element, a bandwidth allocation for the target port, the bandwidth allocation for the target port being a bandwidth that is currently allocated for the data flow;

determining, by the network switching element, a fair-share bandwidth allocation for the target port, the fair-share bandwidth allocation being a proportional allocation of a total bandwidth of the network switching element; and

adjusting, by the network switching element, the bandwidth allocation for the target port based on the fair-share bandwidth allocation.

2. The method of claim 1 , wherein the network switching element includes a plurality of ports, the plurality of ports including the target port, and each of the plurality of ports is assigned a corresponding bandwidth allocation, and the determining the fair-share bandwidth allocation comprises:

determining a weight value for each of the plurality of ports of the network switching element;

determining a total weight value based on the weight value of each of plurality of ports; and

determining the fair-share bandwidth allocation for the target port based on the weight value of the target port and the total weight value.

3. The method of claim 2 , wherein the monitoring comprises:

receiving a data packet associated with the data flow;

determining whether the received data packet is one of a flow termination packet and a flow initiation packet;

increasing the total weight value by the weight of the target port if the received data packet is a flow initiation packet; and

decreasing the total weight value by the weight of the target port if the received data packet is a flow termination packet.

4. The method of claim 2 , wherein the determining the bandwidth allocation for the target port comprises:

determining a link capacity for the target port, the link capacity being a highest amount of bandwidth that may be allocated to the target port;

determining a round trip time (RTT) associated with the data flow; and

determining the bandwidth allocation for the target port by multiplying the link capacity by the RTT.

5. The method of claim 4 , wherein the determining the fair-share bandwidth allocation further comprises:

determining a fair-share weight value by dividing the weight value of the target port by the total weight value; and

determining a weighted fair-share bandwidth allocation by multiplying the fair-share weight value by the bandwidth allocation for the target port.

6. The method of claim 2 , wherein the monitoring comprises:

defining a time out value for a timer, the timer being associated with the bandwidth allocation for the target port; and

determining that a timeout event has occurred with respect to the data flow based on expiration of the timer.

7. The method of claim 6 , wherein the monitoring further comprises:

receiving a data packet associated with the data flow;

resetting the timer to be equal to the timeout value if the timeout event does not occur before the data packet is received; and

decreasing the total weight by the weight of the target port if the timeout event does occur before the data packet is received.

8. The method of claim 7 , wherein the monitoring further comprises;

increasing the total weight by the weight of the target port when a subsequent data packet is received after the timeout event occurs.

9. The method of claim 8 , wherein the monitoring further comprises:

determining a timeout fraction based on a number of times that the total weight is increased by the weight of the target port when the subsequent data packet is received after the timeout event occurs;

determining a target fraction based on the timeout fraction; and

adjusting the timeout value based on the target fraction.

10. The method of claim 6 , wherein the timeout value is based on a desired minimum timeout value and a desired maximum timeout value, and the desired minimum timeout value is larger than a round trip time (RTT) associated with the data flow.

11. A method of adjusting bandwidth allocation by a network controller in a communications network, the network controller being configured to control a network switching element, the network switching element including a target port, the method comprising:

receiving, by the network controller, data flow information from the network switching element, the data flow information including information about data flows traversing of the target port of the network switching element;

determining, by the network controller, a bandwidth allocation of the target port based on the data flow information, the bandwidth allocation of the target port being a bandwidth that is currently allocated for each of the data flows traversing the target port;

determining, by the network controller, an over-subscription ratio, the over-subscription ratio being a ratio of the bandwidth allocation of the target port to a number of data flows traversing the target part;

transmitting, by the network controller, the over-subscription ratio to the network switching element based on the over-subscription ratio and a threshold value;

determining, by the network controller, a fair-share bandwidth allocation for the target port based on the over-subscription ratio and the threshold value, the fair-share bandwidth allocation being a proportional allocation of a total bandwidth of the network switching element; and

adjusting, by the network controller, the bandwidth allocation for the target port based on the fair-share bandwidth allocation.

12. The method of claim 11 , wherein the network switching element includes a plurality of ports, the plurality of parts including the target port, and each of the plurality of ports is assigned a corresponding bandwidth allocation, and the determining the fair-share bandwidth allocation for the target port comprises:

determining the bandwidth allocation for each of the plurality of ports of the network switching element;

determining a weight value for each of the plurality of ports;

determining a total weight value based on the weight value for each of the plurality of ports; and

determining the fair-share bandwidth allocation for the target port based on the weight value of the target port and the total weight value.

13. The method of claim 12 , wherein the determining the bandwidth allocation for each of the plurality of ports comprises:

determining a link capacity for the target port, the link capacity being a highest amount of bandwidth that is able to be allocated to of the target port;

determining a round trip time (RTT) for one of the data flows traversing the target port; and

determining the bandwidth allocation for the target port by multiplying the link capacity by the RTT.

14. The method of claim 13 , wherein the determining the fair-share bandwidth allocation for the target port comprises:

determining a fair-share weight value by dividing the weight value of the target port by the total weight value; and

determining a network fair-share bandwidth allocation by multiplying the fair-share weight value by the bandwidth allocation of the target port.

15. The method of claim 14 , wherein the network switching element is associated with a secondary network switching element, the secondary network switching element including a secondary set of ports, and the secondary network switching element determines a weighted fair-share bandwidth allocation for each of the secondary set of ports.

16. The method of claim 15 , wherein the adjusting the bandwidth allocation for the target port comprises:

determining a data flow traversing the target port and a secondary target port, the secondary target port being one of secondary set of ports;

determining the weighted fair-share bandwidth allocation for the data flow traversing the target port and the secondary target port;

determining the network fair-share bandwidth allocation for the data flow traversing the target port and the secondary target port;

adjusting the bandwidth allocation for the target port based on the weighted fair-share bandwidth allocation when the weighted fair-share bandwidth allocation is less than the network fair-share bandwidth allocation; and

adjusting the bandwidth allocation for the target port based on the network fair-share bandwidth allocation when the network fair-share bandwidth allocation is less than the weighted fair-share bandwidth allocation.

17. An edge switch for adjusting bandwidth allocation in a communications network, the edge switch including a target port, the edge switch configured to:

monitor a data flow traversing the target port;

determine a bandwidth allocation for the target port, the bandwidth allocation for the target port being a bandwidth that is currently allocated for the data flow;

determine a fair-share bandwidth allocation for the target port, the fair-share bandwidth allocation being a proportional allocation of a total bandwidth of the network switching element; and

adjust the bandwidth allocation for the target port based on the fair-share bandwidth allocation.

18. The edge switch of claim 17 , wherein the edge switch includes a plurality of ports, the plurality of ports including the target port, and each of the plurality of ports is assigned a corresponding bandwidth allocation, and in the determining the fair-share bandwidth allocation, the edge switch is configured to:

determine a weight value for each of the plurality of ports of the network switching element;

determine a total weight value based on the weight value of each of the plurality of ports; and

determine the fair-share bandwidth allocation based on the weight value for the target port and the total weight value.

19. The edge switch of claim 18 , wherein, in the determining the bandwidth allocation for the target port, the edge switch is configured to:

determine a link capacity for the target port, the link capacity being a highest amount of bandwidth that is able to be allocated to the target port;

determine a round trip time (RTT) associated with the data flow;

determine the bandwidth allocation for the target port by multiplying the link capacity by the RTT;

determine a fair-share weight value by dividing the weight value for the target port by the total weight value; and

determine a weighted fair-share bandwidth allocation by multiplying the fair-share weight value by the bandwidth allocation for the target port.

20. A Software Defined Networking (SDN) controller for adjusting bandwidth allocation in a communications network, the SDN controller being configured to control an aggregation switch, the aggregation switch including a target port, the SDN controller is configured to:

receive data flow information from the network switching element, the data flow information including information about data flows traversing of the target port;

determine a bandwidth allocation of the target port based on the data flow information, the bandwidth allocation of the target port being a bandwidth that is currently allocated for each of the data flows traversing the target port;

determine an over-subscription ratio, the over-subscription ratio being a ratio of the bandwidth allocation of the target port to a number of data flows traversing the target port; and

transmit the over-subscription ratio to the aggregation switch based on the over-subscription ratio and a threshold value;

determine a fair-share bandwidth allocation for the target port based on the over-subscription ratio and the threshold value, the fair-share bandwidth allocation being a proportional allocation of a total bandwidth of the network switching element; and

adjust the bandwidth allocation for the target port based on the fair-share bandwidth allocation.

Assignments (8)
SECURITY INTEREST Recorded Jun 1, 2021
From: WSOU INVESTMENTS, LLC
To: OT WSOU TERRIER HOLDINGS, LLC
Reel/Frame 056990/0081 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 10, 2020
From: ALCATEL LUCENT
To: WSOU INVESTMENTS, LLC
Reel/Frame 052372/0675 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 27, 2016
From: ALCATEL-LUCENT USA INC.
To: ALCATEL LUCENT
Reel/Frame 039865/0978 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2016
From: BELL LABS SEOUL LTD.
To: ALCATEL LUCENT
Reel/Frame 039323/0024 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2014
From: HWANG, JAE HYUN
To: BELL LABS SEOUL LTD.
Reel/Frame 033776/0368 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 19, 2014
From: KLEIN, THIERRY E
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033776/0349 →
RELEASE OF SECURITY INTEREST Recorded Aug 28, 2014
From: CREDIT SUISSE AG
To: ALCATEL LUCENT
Reel/Frame 033655/0304 →
SECURITY INTEREST Recorded Aug 7, 2014
From: ALCATEL LUCENT
To: CREDIT SUISSE AG
Reel/Frame 033500/0302 →