Congestion control method and related device
US-2021168076-A1 · Jun 3, 2021 · US
US11979330B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11979330-B2 |
| Application number | US-202016907423-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 22, 2020 |
| Priority date | Jun 22, 2020 |
| Publication date | May 7, 2024 |
| Grant date | May 7, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
A system includes a first processor configured to analyze packets received over a communication protocol system and determine one or more congestion indicators from the analysis of the data packets, the one or more congestion indicators being indicative of network congestion for data packets transmitted over a reliable transport protocol layer of the communication protocol system. The system also includes a rate update engine separate from the packet datapath and configured to operate a second processor to receive the determined one or more congestion indicators, determine one or more congestion control parameters for controlling transmission of data packets based on the received one or more congestion indicators, and output a congestion control result based on the determined one or more congestion control parameters.
Opening claim text (preview).
The invention claimed is: 1. A congestion control system comprising: one or more first processors of a first node in a communication network, wherein the one or more first processors are communicatively coupled to a packet datapath of the communication network for receiving data packets using a reliable transport protocol and are configured to: analyze the data packets received from a second node; determine one or more congestion indicators from the analysis of the data packets, the one or more congestion indicators indicative of network congestion for data packets transmitted to the second node over a reliable transport protocol layer; generate a rate update request based on the analysis of the data packets, wherein the rate update request is associated with the one or more congestion indicators; and transmit the rate update request with the one or more congestion indicators; a rate update engine separate from the packet datapath, wherein the rate update engine is interfaced with the one or more first processors by a network-on-a-chip; and a buffer between the one or more first processors and the network-on-a-chip and having a preset capacity, wherein communications through the network-on-a-chip from the one or more first processors to the rate update engine are temporarily stored at the buffer, wherein the one or more first processors are configured to rate limit rate update requests transmitted by the one or more first processors to the rate update engine based at least in part on a remaining available capacity of the buffer, and wherein the rate update engine is configured to operate one or more second processors to: receive the rate update request and the one or more congestion indicators transmitted by the one or more first processors; determine one or more congestion control parameters for controlling transmission of data packets to the second node over the communication network based on the received one or more congestion indicators; and output a congestion control result based on the determined one or more congestion control parameters. 2. The system of claim 1 , wherein the one or more first processors are configured to, in response to occurrence of a packet transmission event, generate the rate update request. 3. The system of claim 2 , wherein the packet transmission event is one of an acknowledgement message, a non-acknowledge message, or a packet retransmission. 4. The system of claim 1 , wherein the one or more congestion indicators include at least one of a congestion window, retransmission timeout, round trip delay, a number of packets acknowledged by the second node, a number of retransmissions, or a number of explicit congestion notifications received, for the data packets transmitted to the second node. 5. A congestion control system comprising: one or more first processors included in a first node of a communication network, wherein the one or more first processors are communicatively coupled to a packet datapath of the communication network for receiving data packets using a reliable transport protocol and are configured to: analyze the data packets received from a second node; determine one or more congestion indicators from the analysis of the data packets, the one or more congestion indicators indicative of network congestion for data packets transmitted to the second node over a reliable transport protocol layer; generate a rate update request based on the analysis of the data packets; and transmit the rate update request with the one or more congestion indicators; a rate update engine included in the first node of the communication network and separate from the packet datapath, wherein the rate update engine comprises one or more second processors configured to: receive the rate update request and the one or more congestion indicators from the one or more first processors; determine one or more congestion control parameters for controlling transmission of data packets to the second node over the communication network based on the received one or more congestion indicators; and output a congestion control result based on the determined one or more congestion control parameters. 6. The system of claim 5 , wherein the rate update engine comprises a dedicated hardware engine. 7. The system of claim 1 , wherein the rate update engine comprises memory storing instructions, wherein the memory further includes: the buffer, wherein the buffer is a first queue configured to queue input data provided from the one or more first processors; and a second queue configured to queue output data provided to the one or more first processors. 8. The system of claim 7 , wherein the first queue is a first ring buffer having a first head pointer and a first tail pointer, wherein the second queue is a second ring buffer having a second head pointer and a second tail pointer. 9. The system of claim 8 , wherein the one or more first processors are configured to push rate update requests to the first ring buffer according to the first tail pointer and to read rate update results from the second ring buffer according to the second head pointer. 10. The system of claim 9 , wherein, for a second rate update request, the one or more first processors are configured to determine whether to push the second rate update request to the first ring buffer based on at least one of: whether an amount of time since a previous rate update exceeds a predetermined latency threshold; or whether a number of acknowledgement (ACK) packets received for data packets transmitted to the second node exceeds a predetermined throughput threshold. 11. The system of claim 10 , wherein the one or more first processors are configured to: determine a number of rate update requests queued in the first ring buffer; when the number of update requests queued in the first ring buffer is less than a first threshold amount, push the second rate update request to the first ring buffer; when the number of update requests queued in the first ring buffer is greater than the first threshold amount and less than a second threshold amount, the amount of time since the previous rate update does not exceed the predetermined latency threshold, and the number of ACK packets received for data packets transmitted to the second node does not exceed the predetermined throughput threshold, avoid the second rate update request being pushed to the first ring buffer; when the number of update requests queued in the first ring buffer is greater than the second threshold amount and less than a third threshold amount, and the amount of time since the previous rate update does not exceed the predetermined latency threshold, avoid the second rate update request being pushed to the first ring buffer; and when the number of update requests queued in the first ring buffer is greater than the third threshold amount and the at least one of (i) the amount of time since the previous rate update does not exceed the predetermined latency threshold, or (ii) the number of ACK packets received for data packets transmitted to the second node does not exceed the predetermined throughput threshold, avoid the second rate update request being pushed to the first ring buffer. 12. A method comprising: analyzing, by one or more processors of a first node in a communication protocol system, data packets received over a packet datapath from a second node; determining, by the one or more processors, one or more congestion indicators from the analysis of the data packets, wherein the one or more congestion indicators are indicative of network congestion for data packets transmitted to the second node over a reliable transport
Avoiding congestion; Recovering from congestion · CPC title
with rate being modified by the source upon detecting a change of network conditions · CPC title
Queue scheduling · CPC title
Physical resource allocation for ACK/NACK (for physical mapping arrangements in ARQ protocols H04L1/1861) · CPC title
Rate modification at the source after receiving feedback · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.