Legal claims defining the scope of protection. Each claim is shown in both the original legal language and a plain English translation.
1. A system comprising: a receiver that receives data transmitted from one or more senders over a network, and returns an acknowledgement to the one or more senders after the transmitted data is received; and a receive window associated with the receiver that determines a maximum amount of data that the one or more senders can transmit without receiving the acknowledgement, a size of the receive window being adjusted based on an available bandwidth of the receiver at a first sub-slot included within a time slot and a prediction of an available bandwidth of the receiver at a second sub-slot included within the time slot and that is subsequent in time to the first sub-slot.
A network system controls incast congestion using a receiver that acknowledges data packets from senders. The receiver uses a "receive window" to limit the amount of unacknowledged data senders can transmit. The system dynamically adjusts the size of this receive window based on the receiver's available bandwidth. This adjustment happens by measuring bandwidth availability in a first sub-slot within a time slot, and *predicting* available bandwidth in a subsequent second sub-slot within the same time slot. This prediction informs the receive window size to optimize data flow and minimize congestion.
2. A system as recited in claim 1 , wherein the system further comprises a data center network that includes the one or more senders, the data and the acknowledgement being transmitted using Transmission Control Protocol.
The incast congestion control system, as described with a receiver using a dynamically adjusted receive window based on predicted bandwidth, is implemented within a data center network. The data transfer between senders and the receiver, as well as the acknowledgements, use the Transmission Control Protocol (TCP). This means standard TCP communication mechanisms are leveraged for managing the data flow and acknowledgements in this congestion control setup.
3. A system as recited in claim 1 , wherein the size of the receive window is increased to minimize constraining the one or more senders from transmitting additional data to the receiver.
In the incast congestion control system, where the receive window is dynamically adjusted based on predicted bandwidth, the size of the receive window is increased to allow senders to transmit more data freely to the receiver. This increase aims to minimize any artificial limitations placed on the senders, allowing them to send data as quickly as the network conditions reasonably permit based on the available and predicted bandwidth.
4. A system as recited in claim 1 , wherein the size of the receive window is decreased to minimize incast congestion at the receiver.
The incast congestion control system adjusts the receive window size based on predicted bandwidth. To avoid overwhelming the receiver, the size of the receive window is *decreased* when congestion is detected or predicted. This reduction aims to alleviate incast congestion at the receiver by limiting the rate at which senders can transmit data.
5. A system as recited in claim 1 , wherein the acknowledgement indicates to the one or more senders the size of the receive window.
The incast congestion control system involves a receiver that returns acknowledgements. These acknowledgements not only confirm data receipt, but also communicate the *current* size of the receive window to the senders. This informs senders about how much data they can send without receiving another acknowledgement, providing explicit feedback on the receiver's capacity.
6. A system as recited in claim 1 , wherein the prediction of the available bandwidth at the receiver is determined by: measuring observed traffic at the first sub-slot included within the time slot; identifying a total amount of bandwidth of the receiver; determining, based at least in part on the observed traffic and the total amount of bandwidth, the available bandwidth at the first sub-slot; and predicting, based at least in part on the available bandwidth at the first sub-slot, an available bandwidth at the second sub-slot included within the time slot.
The incast congestion control system uses a receive window adjusted by bandwidth prediction. The prediction of the receiver's available bandwidth involves several steps: First, the system measures traffic observed at a first sub-slot within a time slot. Then, using the observed traffic and the receiver's total bandwidth capacity, the system determines the available bandwidth at the first sub-slot. Finally, this measured available bandwidth is used to *predict* the available bandwidth at a subsequent second sub-slot within the same time slot.
7. A system as recited in claim 6 , wherein a size of a receive window at the second sub-slot is either increased or decreased based on the predicted available bandwidth at the second sub-slot.
In the incast congestion control system with bandwidth prediction, the size of the receive window at the *second* sub-slot (the one where bandwidth is predicted) is directly adjusted based on that prediction. If the prediction indicates higher available bandwidth, the receive window is increased. Conversely, if the prediction indicates lower available bandwidth, the receive window is decreased, preventing potential congestion.
8. A system as recited in claim 7 , wherein the size of the receive window is doubled according to a slow start process or the size of the receive window is increased but not doubled according to a congestion avoidance process.
In the bandwidth prediction-based receive window adjustment scheme, when increasing the receive window size, the system can either *double* the size according to a TCP slow start process, or it can increase the size by a smaller increment, following a congestion avoidance process. The choice between doubling (slow start) and incremental increase (congestion avoidance) depends on the current state of the network and the desired aggressiveness in increasing the transmission rate.
9. A system as recited in claim 1 , wherein at least one round trip time occurs before the receiver receives data reflecting the adjusted size of the receive window.
In the incast congestion control system where the receiver adjusts its receive window size, at least one full round trip time (RTT) elapses before the senders receive the acknowledgement containing the adjusted window size and subsequently send data based on this new window size. This delay accounts for the time it takes for the acknowledgement to reach the senders and for the senders to react to the updated window size.
10. A system as recited in claim 1 , wherein the size of the receive window is adjusted based on a difference between a measured throughput and an expected throughput.
The incast congestion control system adjusts the receive window size not just based on predicted bandwidth, but also based on the difference between the *measured* throughput at the receiver and the *expected* throughput. If the measured throughput is lower than expected, it suggests potential congestion, and the receive window might be decreased. Conversely, if the measured throughput is higher, the receive window could be increased.
11. A method comprising: receiving data transmitted from one or more senders; determining, based on the transmitted data, an amount of bandwidth that is available at a first time sub-slot of a time slot; predicting an amount of bandwidth that is available at a second time sub-slot of the time slot that is subsequent to the first time sub-slot and that has a length that is equal to the first time sub-slot; adjusting, by a processor, a size of a receive window based at least in part on the determined amount of the available bandwidth at the first time sub-slot and the predicted amount of the available bandwidth at the second time sub-slot; and transmitting an acknowledgement indicating an adjusted size of the receive window and that the transmitted data has been received.
A method to manage network data flow involves receiving data, determining available bandwidth at a first sub-slot of a time slot. It also involves *predicting* available bandwidth at a second, subsequent sub-slot of equal length within the same time slot. A processor then adjusts the receive window size based on both the measured and predicted bandwidth values. Finally, an acknowledgement is sent, indicating the adjusted receive window size and confirming data receipt.
12. A method as recited in claim 11 , further comprising: increasing the size of the receive window in response to determining that there is sufficient available bandwidth; and decreasing the size of the receive window in response to determining that sufficient bandwidth is not available, the decreasing minimizing an amount of congestion caused by the received data.
The method of dynamically adjusting the receive window based on measured and predicted bandwidth further includes: increasing the receive window size if sufficient bandwidth is available, and decreasing the receive window size if bandwidth is insufficient. Decreasing the window size is specifically intended to minimize congestion caused by the incoming data.
13. A method as recited in claim 11 , further comprising adjusting the size of the receive window using a time-slotted system including one or more time slots that includes the time slot.
The method of dynamically adjusting the receive window, using measured and predicted bandwidth, operates within a time-slotted system. This means that the bandwidth measurements, predictions, and receive window adjustments are synchronized with a series of discrete time slots, including the specific time slot used for measurement and prediction.
14. A method as recited in claim 13 , further comprising: measuring traffic received at the first time sub-slot; determining an available bandwidth at the first time sub-slot based at least in part on a difference between the measured traffic and a total amount of bandwidth of the first time sub-slot; utilizing the available bandwidth at the first time sub-slot to predict an available bandwidth at the second time sub-slot; and increasing or decreasing the size of the receive window at the second time sub-slot based at least in part on the predicted available bandwidth at the second time sub-slot.
In the time-slotted method of receive window adjustment, traffic is measured at the first time sub-slot. Available bandwidth at the first sub-slot is calculated by comparing measured traffic to the sub-slot's total bandwidth capacity. This available bandwidth is then used to predict the available bandwidth at the subsequent second sub-slot. Finally, the receive window size at the second sub-slot is adjusted (increased or decreased) based on this predicted available bandwidth.
15. A method as recited in claim 11 , further comprising adjusting the size of the receive window based on a difference between a measured throughput and an expected throughput at a receiver of the transmitted data.
This method adjusts the receive window size, not only with predicted bandwidth but also based on the difference between *measured* throughput and *expected* throughput at the data receiver. If the receiver's performance isn't meeting expectations, the window can be adjusted accordingly, suggesting a feedback mechanism that adapts to real-time performance.
16. A method comprising: transmitting, to a receiver over a network, one or more data packets according to a known receive window that represents an amount of data that can be transmitted to the receiver at a single time; receiving, by a processor, an acknowledgement indicating that the one or more data packets have been received, the acknowledgment further indicating whether a size of the receive window has been adjusted based on an available bandwidth of the receiver at a first sub-slot included within a time slot and a predicted available bandwidth of the receiver at a second sub-slot included within the time slot and that is subsequent in time to the first sub-slot, a length of the first sub-slot and the second sub-slot being equal; and transmitting additional data packets to the receiver according to the adjusted size of the receive window.
A method for sending data involves transmitting data packets to a receiver based on a known receive window size, which limits the amount of data sent at once. An acknowledgement is received indicating data receipt, and, crucially, whether the receive window size has been adjusted. This adjustment is based on the receiver's available bandwidth at a first sub-slot within a time slot, *and* a predicted available bandwidth at a subsequent second sub-slot of equal length. Subsequent data packets are then transmitted based on this adjusted receive window size.
17. A method as recited in claim 16 , wherein the additional data packets are received by the receiver at least one round trip time after the size of the receive window was adjusted.
In the data transmission method where the receiver adjusts the receive window based on bandwidth, the additional data packets sent according to the adjusted receive window are received by the receiver after at least one full round trip time (RTT) has elapsed. This ensures the sender is using the most up-to-date receive window size before continuing the transmission.
18. A method as recited in claim 16 , wherein the one or more data packets are transmitted and the acknowledgement is received using Transmission Control Protocol.
In the method of transmitting data, receiving acknowledgements with window size adjustments, the data packets and acknowledgements are transmitted using the Transmission Control Protocol (TCP). This means the standard TCP mechanisms for data transfer and acknowledgement are used as the foundation for this window adjustment process.
19. A method as recited in claim 16 , further comprising causing congestion at a receiver of the one or more data packets in response to determining that the additional data packets exceed a size of the adjusted size of the receive window.
In the data transmission method with adjusted receive windows, if the sender sends additional data packets exceeding the adjusted receive window size, it causes congestion at the receiver. This highlights that the adjusted receive window is enforced, and exceeding its limit results in detrimental network behavior.
20. A method as recited in claim 16 , further comprising receiving, in response to transmitting the additional data packets, a second acknowledgement indicating that the additional data packets are received.
In the data transmission method where the receiver adjusts the receive window size, after sending the additional data packets based on the adjusted window size, the sender receives a *second* acknowledgement indicating that those additional data packets have been received successfully. This completes the feedback loop, confirming that the data sent based on the adjusted window was properly delivered.
Unknown
October 28, 2014
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.