US2023362098A1PendingUtilityA1

Rate Update Engine For Reliable Transport Protocol

65
Assignee: GOOGLE LLCPriority: Jun 22, 2020Filed: Jul 17, 2023Published: Nov 9, 2023
Est. expiryJun 22, 2040(~13.9 yrs left)· nominal 20-yr term from priority
H04L 47/12H04L 47/25H04L 47/50H04L 5/0055H04L 47/263H04L 47/29
65
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

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.

Claims

exact text as granted — not AI-modified
1 . A system comprising:
 a buffer positioned between a packet datapath of a communication network and a packet transmission rate controller configured to control a transmission rate of data packets over the packet datapath based on one or more congestion indicators; and   one or more processors configured to: 
 identify a rate update event based on an analysis of the data packets, wherein the rate update event is associated with the one or more congestion indicators; 
 in response to identifying the rate update event, determine whether to transmit a rate update request to the packet transmission rate controller based at least in part on a remaining available capacity of the buffer, the rate update request including the one or more congestion indicators; 
 in response to the remaining available capacity of the buffer being less than a threshold value, avoid transmitting the rate update request; and 
 in response to the remaining available capacity of the buffer being greater than or equal to a threshold value, transmit the rate update request. 
   
     
     
         2 . The system of  claim 1 , wherein 
 the buffer is between the packet datapath and a network-on-a-chip, wherein the network-on-a-chip is in communication with the packet transmission rate controller, and wherein the rate update request is temporarily stored at the buffer before being sent to the network-on-a-chip.   
     
     
         3 . The system of  claim 1 , wherein the one or more processors are configured to receive a congestion control result from the packet transmission rate controller indicating an updated packet transmission rate, the updated packet transmission rate based on one or more congestion control parameters. 
     
     
         4 . The system of  claim 1 , wherein the one or more congestion indicators are indicative of network congestion for data packets transmitted over a reliable transport protocol layer. 
     
     
         5 . The system of  claim 1 , wherein the rate update event is one of an acknowledgement message, a non-acknowledgement message, or a packet retransmission. 
     
     
         6 . The system of  claim 1 , wherein the one or more congestion indicators include at least one of a congestion window, a retransmission timeout, a round trip delay, a number of packets acknowledged by a second node, a number of retransmissions, or a number of explicit congestion notifications received, for the data packets transmitted to the second node. 
     
     
         7 . The system of  claim 1 , wherein the buffer includes:
 a first queue configured to queue input data provided to the packet transmission rate controller; and   a second queue configured to queue output data from the packet transmission rate controller.   
     
     
         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, and 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 processors are configured to push rate update requests to the first ring buffer according to the first tail pointer and to read congestion control generated by the packet transmission rate controller results from the second ring buffer according to the second head pointer. 
     
     
         10 . The system of  claim 1 , wherein the one or more processors are configured to, in response to identifying the rate update event, determine whether to transmit a rate update request to the packet transmission rate controller based on a comparison of the remaining available capacity of the buffer to each of a first threshold capacity value and a second threshold capacity value that is less than the first threshold capacity value. 
     
     
         11 . The system of  claim 10 , wherein the one or more processors are configured to:
 in response to the remaining available capacity of the buffer being greater than or equal to the first threshold capacity value, transmit the rate update request;   in response to the remaining available capacity of the buffer being less than the first threshold capacity value but greater than the second threshold capacity value, determine whether to transmit the rate update request based on a first set of criteria; and   in response to the remaining available capacity of the buffer being less than the second threshold capacity value, determine whether to transmit the rate update request based on a second set of criteria.   
     
     
         12 . The system of  claim 11 , wherein the first set of criteria comprises that at least one of:
 an amount of time since a previous rate update exceeds a predetermined latency threshold; or   a number of acknowledgement (ACK) packets received for transmitted data packets exceeds a predetermined throughput threshold.   
     
     
         13 . The system of  claim 12 , wherein the second set of criteria comprises that the amount of time since the previous rate update exceeds the predetermined latency threshold. 
     
     
         14 . The system of  claim 12 , wherein the second set of criteria comprises that both:
 the amount of time since the previous rate update exceeds the predetermined latency threshold; and   the number of acknowledgement (ACK) packets received for transmitted data packets exceeds the predetermined throughput threshold.   
     
     
         15 . The system of  claim 1 , wherein the one or more processors are configured to, in response to identifying the rate update event, determine whether to transmit a rate update request to the packet transmission rate controller based on a comparison of the remaining available capacity of the buffer to each of a first threshold capacity value, a second threshold capacity value that is less than the first threshold capacity value, and a third threshold capacity value that is less than the second threshold capacity value. 
     
     
         16 . The system of  claim 15 , wherein the one or more processors are configured to:
 in response to the remaining available capacity of the buffer being greater than or equal to the first threshold capacity value, transmit the rate update request;   in response to the remaining available capacity of the buffer being less than the first threshold capacity value but greater than the second threshold capacity value, determine whether to transmit the rate update request based on a first set of criteria;   in response to the remaining available capacity of the buffer being less than the second threshold capacity value but greater than the third threshold capacity value, determine whether to transmit the rate update request based on a second set of criteria; and   in response to the remaining available capacity of the buffer being less than the third threshold capacity value, determine whether to transmit the rate update request based on a third set of criteria.   
     
     
         17 . The system of  claim 16 , wherein:
 the first set of criteria comprises that at least one of an amount of time since a previous rate update exceeds a predetermined latency threshold or a number of acknowledgement (ACK) packets received for transmitted data packets exceeds a predetermined throughput threshold;   the second set of criteria comprises that the amount of time since the previous rate update exceeds the predetermined latency threshold; and   the third set of criteria comprises that both the amount of time since the previous rate update exceeds the predetermined latency threshold and the number of acknowledgement (ACK) packets received for transmitted data packets exceeds the predetermined throughput threshold.   
     
     
         18 . A method comprising:
 identifying, by one or more processors, a rate update event based on an analysis of data packets transmitted over a packet datapath of a communication network, wherein the rate update event is associated with one or more congestion indicators; and   in response to identifying the rate update event, determining, by the one or more processors, whether to transmit a rate update request to a packet transmission rate controller for controlling a transmission rate of data packets over the packet datapath based on the one or more congestion indicators, wherein the determination is based at least in part on a remaining available capacity of a buffer between the packet datapath and the packet transmission rate controller;   in response to the remaining available capacity of the buffer being less than a threshold value, avoiding transmitting the rate update request; and   in response to the remaining available capacity of the buffer being greater than or equal to a threshold value, transmitting the rate update request.   
     
     
         19 . The method of  claim 18 , wherein determining whether to transmit a rate update request to the packet transmission rate controller is further based on a comparison of the remaining available capacity of the buffer to each of a first threshold capacity value, a second threshold capacity value that is less than the first threshold capacity value, and a third threshold capacity value that is less than the second threshold capacity value. 
     
     
         20 . The method of  claim 19 , wherein determining whether to transmit a rate update request to the packet transmission rate controller comprises:
 in response to the remaining available capacity of the buffer being greater than or equal to the first threshold capacity value, transmitting the rate update request;   in response to the remaining available capacity of the buffer being less than the first threshold capacity value but greater than the second threshold capacity value, determining whether to transmit the rate update request based on whether at least one of an amount of time since a previous rate update exceeds a predetermined latency threshold or a number of acknowledgement (ACK) packets received for transmitted data packets exceeds a predetermined throughput threshold;   in response to the remaining available capacity of the buffer being less than the second threshold capacity value but greater than the third threshold capacity value, determining whether to transmit the rate update request based on whether the amount of time since the previous rate update exceeds the predetermined latency threshold; and   in response to the remaining available capacity of the buffer being less than the third threshold capacity value, determine whether to transmit the rate update request based on whether both the amount of time since the previous rate update exceeds the predetermined latency threshold and the number of acknowledgement (ACK) packets received for transmitted data packets exceeds the predetermined throughput threshold.

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.