IP Library Granted Patent US 9,356,868
Granted Patent B2
US 9,356,868 · App. 14/054,766 · Granted May 31, 2016

Congestion detection and management at congestion-tree roots

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,356,868
App. No.
14/054,766
Granted
May 31, 2016
Kind
B2
Abstract

A device for performing congestion detection and management at a node of a network may include a congestion management module to monitor an arrival and a departure rate of data packets associated with a queue, a queue size, or a rate of change of the queue size. The congestion management module may identify the queue as a congested queue by one of determining that the arrival rate of the data packets associated with the queue is larger than the departure rate of the data packets associated with the queue, the queue size is larger than a first threshold, or the rate of change of the queue size is larger than a second threshold. The congestion management module may identify the congested queue as a congestion root by determining that the congested queue is not affected by a flow-control signal. A queue buffer temporarily stores data packets associated with the queue.

Claims (41)

1. A method for congestion detection and management, the method comprising:

monitoring, at a node of a network, one or more characteristics associated with a queue;

identifying the queue as a congested queue by determining that the one or more characteristics of the queue meet one or more criteria;

identifying the congested queue as a congestion root by determining that a departure rate of the data packets associated with the congested queue has not reduced during a predetermined time period; and

controlling the congestion without affecting data flows that are not contributing to the congestion at the congestion root,

wherein the one or more characteristics of the queue comprises a queue size associated with the queue and a rate of change of the queue size, and wherein the one or more criteria includes at least one of the queue size or the rate of change of the queue size being larger than a respective first or second threshold.

2. The method of claim 1 , wherein the node comprises a switch and the network comprises a data center network.

3. The method of claim 1 , wherein the one or more characteristics of the queue further comprises at least one of an arrival rate and a departure rate of data packets associated with the queue or a queue delay associated with the queue, and wherein the one or more criteria further includes the queue delay being larger than a corresponding threshold or that the arrival rate of the data packets associated with the queue being larger than the departure rate of the data packets associated with the queue.

4. The method of claim 1 , further comprising identifying the congested queue as the congestion root by determining that the congested queue is not affected by a flow-control signal, wherein the flow-control signal comprises a link-level flow-control signal including a flow control (FC)-XOFF signal, and wherein the method further comprises determining that the congested queue is not affected by the flow-control signal based on information retrieved from flow-control signals received at the node.

5. The method of claim 4 , wherein the information retrieved from the received flow-control signals comprise a rate of the received flow-control signals and an average time period that the congested queue was in an XOFF state.

6. The method of claim 4 , wherein controlling the congestion comprises using a state variable to indicate that the congested queue is the congestion root, and wherein the state variable is identifiable by one or more sources of corresponding flows contributing to the congestion root, and notifying the one or more sources of the corresponding flows contributing to the congestion root regarding the congestion of the node if the node is a root of the congestion.

7. The method of claim 6 , wherein the state variable comprises a congestion-root-bit, wherein the method further comprises setting the congestion-root-bit to zero upon receipt of a control signal from another node.

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

using a queue-timer to measure a time-lapse since a last XOFF state of the congested queue; and

starting a count-down of the queue-timer from a predetermined count upon resetting the FC-XOFF state to zero.

9. The method of claim 8 , further comprising:

setting the congestion-root-bit to one upon a count of the queue-timer reaching zero; and

stopping the count-down of the queue-timer.

10. A device for performing congestion detection and management at a node of a network, the device comprising:

a congestion manager to:

monitor at least one of an arrival rate and a departure rate of data packets associated with a queue, a queue size, or a rate of change of the queue size or a queue delay associated with the queue;

identify the queue as a congested queue by determining that at least one of the queue size, the rate of change of the queue size, or the queue delay is larger than a corresponding threshold; and

identify the congested queue as a congestion root by determining that a departure rate of the data packets associated with the congested queue has not reduced during a predetermined time period; and

a queue buffer configured to temporarily store data packets associated with the queue.

11. The device of claim 10 , wherein the node comprises a switch and the network comprises a data center network, and wherein the congestion manager is further configured to control the congestion without affecting data flows or affecting the data flows less severely when the data flows are not contributing to the congestion at the congestion root.

12. The device of claim 10 , wherein the congestion manager is to identify the queue as a congested queue by determining that the arrival rate of the data packets associated with the queue is larger than the departure rate of the data packets associated with the queue.

13. The device of claim 10 , wherein the congestion manager is further to identify the congested queue as the congestion root by determining that the congested queue is not affected by a flow-control signal, wherein the flow-control signal comprises a link-level flow-control signal including a flow-control (FC)-XOFF signal, and wherein the congestion manager is further to determine that the congested queue is not affected by the flow-control signal based on the information retrieved from flow-control signals received at the node.

14. The device of claim 13 , wherein the information retrieved from the received flow-control signals comprise a rate of the received flow-control signals and an average time period that the congested queue was in an XOFF state.

15. The device of claim 13 , wherein the congestion manager is further to control the congestion by utilizing a state variable that indicates that the congested queue is the congestion root, and wherein the state variable is identifiable by one or more sources of corresponding flows contributing to the congestion root, and notifies the one or more sources of the corresponding flows contributing to the congestion root regarding the congestion of the node if the node is a root of the congestion.

16. The device of claim 15 , wherein the state variable comprises a congestion-root-bit, and wherein the congestion manager is further to set the congestion-root-bit to zero upon receipt of a control signal from another node.

17. The device of claim 15 , further comprising a queue-timer measuring a time-laps based one or more signals received from the congestion manager, wherein the queue-timer is to measure a time-lapse since a last XOFF state of the congested queue, and wherein a count-down of the queue-timer from a predetermined count is started by a start signal from the congestion manager upon resetting the FC-XOFF state to zero.

18. The device of claim 17 , wherein the congestion manager is further to set a congestion-root-bit to one and to cause stopping the count-down of the queue-timer upon a count of the queue-timer reaching zero.

19. A system for performing congestion detection and management at a node of a network, the system comprising:

memory configured to store one or more program modules;

one or more processors coupled to the memory and configured to execute the one or more program modules to perform:

monitoring at least one of an arrival rate and a departure rate of data packets associated with a queue, a queue size, a rate of change of the queue size, or a queue delay associated with the queue;

identifying the queue as a congested queue by determining that the arrival rate of the data packets associated with the queue is larger than the departure rate of the data packets associated with the queue or by determining that at least one of the queue size, the rate of change of the queue size, or the queue delay is larger than a corresponding threshold;

identifying the congested queue as a congestion root by determining that a departure rate of the data packets associated with the congested queue has not reduced during a predetermined time period; and

controlling the congestion without affecting data flows that are not contributing to the congestion at the congestion root.

20. The system of claim 19 , wherein the one or more processors are further to execute the one or more program modules to perform:

controlling the congestion using a state variable to indicate that the congested queue is the congestion root, and wherein the state variable is identifiable by one or more sources of corresponding flows contributing to the congestion root, and notifies the one or more sources of the corresponding flows contributing to the congestion root regarding the congestion of the node if the node is a root of the congestion.

Assignments (8)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 11, 2014
From: TABATABAEE, VAHID; KWAN, BRUCE HUI
To: BROADCOM CORPORATION
Reel/Frame 032409/0501 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 17, 2014
From: TABATABAEE, VAHID; KWAN, BRUCE HUI
To: BROADCOM CORPORATION
Reel/Frame 032000/0183 →