IP Library Granted Patent US 12,107,767
Granted Patent B2
US 12,107,767 · App. 17/715,167 · Granted Oct 1, 2024

System and method for network rate limiting

Inventors: Yuval Shpigelman (Yokneam, IL); Idan Borshteen (Yokneam, IL); Noam Bloch (Yokneam, IL)
Assignee: MELLANOX TECHNOLOGIES LTD.
H04L47/25H04L43/106H04L47/263H04L47/283
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 12,107,767
App. No.
17/715,167
Granted
Oct 1, 2024
Kind
B2
Abstract

A device and method may alter the transmission rate of data sent across a computer network based on a time to receive an acknowledgement in response to a packet sent over the network. An embodiment may transmit packets across the computer network according to a rate R, where R is determined based at least on a number of bytes to be sent during a window (cwnd) divided by a duration of time (RTT); and modify RTT based on a current round trip time of a packet sent over the network (e.g. based on a time to receive an acknowledgement in response to a packet sent over the network).

Claims (56)

1. A method of altering the transmission rate of data sent across a computer network, the method comprising:

determining a window (cwnd), wherein the window defines a number of bytes transmitted per unit of time as a constant;

determining a setting expressing a period of time;

determining a rate R based at least on the determined cwnd divided by the setting;

transmitting a first set of packets across the computer network according to the rate R;

modifying the setting based on a first round trip time of a first packet sent over the network; and

for each of one or more second sets of packets:

adjusting the rate R based on the determined cwnd divided by the modified setting;

transmitting the second set of packets according to the adjusted rate R; and

modifying the setting based on a second round trip time of a second packet sent over the network.

2. The method of claim 1 , wherein the round trip time is based on sending a test packet across the network.

3. The method of claim 1 , wherein the round-trip time is based on receiving an acknowledgement in response to the first packet sent over the network.

4. The method of claim 1 , comprising assigning a different rate R for each of a plurality of connections.

5. The method of claim 1 , wherein modifying the setting comprises, at a time after the sending of the first packet, where the time is greater than the setting, if no acknowledgement to the first packet is received, increasing the setting.

6. The method of claim 5 , wherein the setting is increased by a fixed amount.

7. The method of claim 1 , wherein modifying the setting is based on a time to receive an acknowledgement in response to the first packet sent over the network and wherein, at a time after the sending of the first packet, if before a time described by the setting an acknowledgement to the first packet is received, decreasing the setting.

8. The method of claim 1 , wherein the round trip time is a is a current round trip time.

9. A system for altering the transmission rate of data sent across a computer network, the system comprising:

a memory; and

processing circuitry to:

determine a window (cwnd), wherein the window defines a number of bytes transmitted per unit of time as a constant;

determine a setting expressing a period of time;

determine a rate R based at least on the determined cwnd divided by the setting;

cause the transmission of a first set of packets across the computer network according to the rate R;

modify the setting based on a round trip time of a packet sent over the network; and

for each of one or more second sets of packets:

adjust the rate R based on the determined cwnd divided by the modified setting;

transmit the second set of packets according to the adjusted rate R; and

modify the setting based on a second round trip time of a second packet sent over the network.

10. The system of claim 9 , wherein:

the round trip time is based on sending a test packet across the network.

11. The system of claim 9 , wherein the round trip time is based on receiving an acknowledgement in response to the first packet sent over the network.

12. The system of claim 9 , wherein the controller is to assign a different rate R for each of a plurality of connections.

13. The system of claim 9 , wherein modifying the setting comprises, at a time after the sending of the first packet, where the time is greater than the setting, if no acknowledgement to the first packet is received, increasing the setting.

14. The system of claim 13 wherein the setting is increased by a fixed amount.

15. The system of claim 9 , wherein modifying the setting is based on a time to receive an acknowledgement in response to the first packet sent over the network and wherein, at a time after the sending of the first packet, if before a time described by the setting an acknowledgement to the first packet is received, decreasing the setting.

16. The system of claim 9 , wherein the round trip time is a is a current round trip time.

17. A method of transmitting on a computer network, the method comprising:

repeatedly, for each of a set of data;

sending data according to a rate R=window (cwnd) defining a number of bytes transmitted per unit of time as a constant/RTT;

determining an actual round trip time for data sent across the computer network;

based on the actual round trip time, determining an updated RTT; and

determining an updated rate R to send data across the computer network, where updated R=_cwnd /updated RTT.

18. The method of claim 17 wherein the actual round trip time is based on sending a test packet across the network.

19. The method of claim 17 , comprising assigning a different rate R for each of a plurality of connections.

20. The method of claim 17 wherein determining RTT comprises, at a time after the sending of a packet, where the time is greater than RTT, if no acknowledgement to the packet is received, increasing RTT.

21. The method of claim 17 wherein modifying RTT comprises, at a time after the sending of a packet, if before a time RTT an acknowledgement to the packet is received, decreasing RTT.

22. A method of altering the transmission rate of data sent across a computer network, the method comprising:

determining a setting expressing a period of time;

determining a rate R based at least on a number of bytes to be sent during a window (cwnd) divided by the setting;

transmitting packets across the computer network according to the rate R;

modifying the setting based on a round trip time of a packet sent over the network; and

for each of at least one time period subsequent to the transmitting packets:

updating the setting based on network conditions;

updating the rate R based at least on the cwnd divided by the updated setting; and

transmitting additional packets across the computer network according to the updated rate R.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2022
From: SHPIGELMAN, YUVAL; BORSHTEEN, IDAN; BLOCH, NOAM
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 059561/0343 →
Continuity (1)
Related Publication 20230327998A1 · Oct 12, 2023