Rate update engine for reliable transport protocol

US11979330B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11979330-B2
Application numberUS-202016907423-A
CountryUS
Kind codeB2
Filing dateJun 22, 2020
Priority dateJun 22, 2020
Publication dateMay 7, 2024
Grant dateMay 7, 2024

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

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.

First claim

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

Assignees

Inventors

Classifications

  • H04L47/12Primary

    Avoiding congestion; Recovering from congestion · CPC title

  • H04L47/25Primary

    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

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11979330B2 cover?
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 al…
Who is the assignee on this patent?
Google Llc
What technology area does this patent fall under?
Primary CPC classification H04L47/12. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue May 07 2024 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).