IP Library Granted Patent US 7,000,025
Granted Patent B1
US 7,000,025 · App. 10/141,147 · Granted Feb 14, 2006

Methods for congestion mitigation in infiniband

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 7,000,025
App. No.
10/141,147
Granted
Feb 14, 2006
Kind
B1
Abstract

A method for optimizing data transmission in a data transfer system is provided where the data transfer system includes a transmitting device that transmits data to a receiving device through a switch. The method includes monitoring data transfer congestion in a buffer of the switch. The monitoring includes marking the data when data transfer congestion is detected. If data transfer congestion is detected, the method includes marking an acknowledgement (ACK) data after the marked data is received by the receiving device. The method further includes transmitting the ACK data from the receiving device to the transmitting device. The method also includes adjusting a data transfer rate between the transmitting device and the receiving device based on data transfer congestion. Monitoring data transfer congestion includes marking the data according to a probability corresponding to a percentage of time that the buffer is full.

Claims (79)

1. A method for optimizing data transmission in a data transfer system, the data transfer system including a transmitting device that transmits data to a receiving device through a switch, comprising:

monitoring data transfer congestion in a buffer of the switch, the monitoring including marking the data when data transfer congestion is detected;

if data transfer congestion is detected,

marking an acknowledgement (ACK) data after the marked data is received by the receiving device;

transmitting the ACK data from the receiving device to the transmitting device; and

adjusting a data transfer rate between the transmitting device and the receiving device based on data transfer congestion, the adjusting a data transfer rate including increasing the data transfer rate when the ACK data is not marked and decreasing the data transfer rate when the ACK data is marked;

wherein decreasing the data transfer rate is defined by using the following equation:

CRL ′=actual rate− K *(rate of packets covered by ACK ),

where CRL′ is a new congestion rate limit;

where actual rate is an actual rate of issue of data.

2. A method for optimizing data transmission in a data transfer system as recited in claim 1 , wherein increasing the data transfer rate which occurs when a congestion rate limit (CRL) is greater than a slow start rate threshold (SSRT) value is defined by using the following equation:

CRL′=CRL+ ( BR/CRL )* Br,

where CRL′ is a congestion rate limit after a data transfer increase;

where BR is a base rate.

3. A method for optimizing data transmission in a data transfer system, the data transfer system including a transmitting device that transmits data to a receiving device through a switch, comprising:

monitoring data transfer congestion in a buffer of the switch, the monitoring including marking the data when data transfer congestion is detected, the monitoring data transfer congestion including marking the data according to a probability corresponding to a percentage of time that the buffer is full;

if data transfer congestion is detected,

marking an acknowledgement (ACK) data after the marked data is received by the receiving device;

transmitting the ACK data from the receiving device to the transmitting device;

if the ACK data is marked,

decreasing a data transfer rate multiplicatively between the transmitting device and the receiving device; and

if the ACK data is unmarked,

increasing the data transfer rate additively between the transmitting device and the receiving device;

wherein decreasing the data transfer rate is defined by using the following equation:

CRL ′=actual rate− K *(rate of packets covered by ACK ).

4. A method for optimizing data transmission in a data transfer system as recited in claim 3 , wherein the switch is an Infiniband based switch.

5. A method for optimizing data transmission in a data transfer system as recited in claim 3 , wherein increasing the data transfer rate which occurs when a congestion rate limit (CRL) is greater than a slow start rate threshold (SSRT) value is defined by using the following equation:

CRL′=CRL +( BR/CRL )* BR.

6. A method for optimizing data transmission in a data transfer system as recited in claim 3 , wherein the buffer is an output buffer in the switch.

7. A method for optimizing data transmission in a data transfer system as recited in claim 3 , wherein the buffer is an input buffer in the switch.

8. A method for optimizing data transmission in a data transfer system as recited in claim 3 , wherein K has a value between 0.1 and 1.

9. A method for optimizing data transmission in a data transfer system as recited in claim 3 , wherein K has a value of 0.5.

10. A method for optimizing data transmission in a data transfer system, the data transfer system including a transmitting device that transmits data to a receiving device through a switch, comprising:

monitoring data transfer congestion in a buffer of the switch, the monitoring including marking the data when data transfer congestion is detected, the monitoring data transfer congestion including marking the data according to a probability corresponding to a percentage of time that the buffer is full;

if data transfer congestion is detected,

marking an acknowledgement (ACK) data after the marked data is received by the receiving device;

transmitting the ACK data from the receiving device to the transmitting device;

if the ACK data is marked,

decreasing a data transfer rate multiplicatively between the transmitting device and the receiving device; and

if the ACK data is unmarked,

increasing the data transfer rate additively between the transmitting device and the receiving device;

wherein increasing the data transfer rate which occurs when a congestion rate limit (CRL) is greater than a slow start rate threshold (SSRT) value is defined by using the following equation:

CRL′=CRL +( BR/CRL )* BR.

11. A method for optimizing data transmission in a data transfer system as recited in claim 10 , wherein the switch is an Infiniband based switch.

12. A method for optimizing data transmission in a data transfer system as recited in claim 10 , wherein the buffer is an output buffer in the switch.

13. A method for optimizing data transmission in a data transfer system as recited in claim 10 , wherein the buffer is an input buffer in the switch.

14. A method for optimizing data transmission in a data transfer system, the data transfer system including a transmitting device that transmits data to a receiving device through a switch, comprising:

monitoring data transfer congestion in a buffer of the switch, the monitoring including marking the data when data transfer congestion is detected, the monitoring data transfer congestion including marking the data according to a probability corresponding to a percentage of time that the buffer is full;

if data transfer congestion is detected,

marking an acknowledgement (ACK) data after the marked data is received by the receiving device;

transmitting the ACK data from the receiving device to the transmitting device;

if the ACK data is marked,

decreasing a data transfer rate multiplicatively between the transmitting device and the receiving device; and

if the ACK data is unmarked,

increasing the data transfer rate additively between the transmitting device and the receiving device;

wherein decreasing the data transfer rate is defined by the following equation:

CWND ′=Bytes in flight− K *(bytes covered by ACK ).

15. A method for optimizing data transmission in a data transfer system as recited in claim 14 , wherein increasing the data transfer rate which occurs when a send window is greater than an SSTHRESH value is defined by the following equation:

CWND′=CWND +( MTU/CWND )* MTU.

16. A method for optimizing data transmission in a data transfer system as recited in claim 14 , wherein K has a value between 0.1 and 1.

17. A method for optimizing data transmission in a data transfer system as recited in claim 14 , wherein K has a value of 0.5.

18. An Infiniband switch to be used in a network system, the Infiniband switch defining a connection between a transmitting device and a receiving device, the Infiniband switch comprising:

an input buffer for receiving data from the transmitting device;

an output buffer for receiving data from the input buffer and delivering the data to the receiving device;

firmware having processing logic for monitoring congestion at the output buffer, the processing logic being configured to mark the data being communicated to the receiving device according to probability that congestion exists, the receiving device being configured to mark acknowledgement packets being communicated to the transmitting device when the data is marked, the transmitting device being configured to decrease data transmission rate upon receipt of marked acknowledgement packets and increase data transmission rate upon receipt of un-marked acknowledgement packets;

wherein the transmitting device decreases data transmission as defined by the following equation:

CRL ′=actual rate− K *(rate of packets covered by ACK ).

19. An Infiniband switch to be used in a network system as recited in claim 18 , wherein the transmitting device increases the data transmission rate as defined by the following equation when a congestion rate limit (CRL) is greater than a slow start rate threshold (SSRT) value:

CRL′=CRL +( BR/CRL )* BR.

20. An Infiniband switch to be used in a network system as recited in claim 18 , wherein the processing logic marks data packets from the output buffer according to a probability corresponding to a percentage of time that the buffer is full.

21. An Infiniband switch to be used in a network system, the Infiniband switch defining a connection between a transmitting device and a receiving device, the Infiniband switch comprising:

an input buffer for receiving data from the transmitting device;

an output buffer for receiving data from the input buffer and delivering the data to the receiving device;

firmware having processing logic for monitoring congestion at the output buffer, the processing logic being configured to mark the data being communicated to the receiving device according to probability that congestion exists, the receiving device being configured to mark acknowledgement packets being communicated to the transmitting device when the data is marked, the transmitting device being configured to decrease data transmission rate upon receipt of marked acknowledgement packets and increase data transmission rate upon receipt of un-marked acknowledgement packets;

wherein the transmitting device decreases data transmission as defined by the following equation:

CWND ′=Bytes in flight− K *(bytes covered by ACK ).

22. An Infiniband switch to be used in a network system as recited in claim 21 , wherein the transmitting device increases data transmission rate as defined by the following equation when a congestion rate limit (CWND) is greater than a slow start rate threshold (SSTHRESH) value:

CWND′=CWND+ ( MTU/CWND )* MTU.

23. An Infiniband switch to be used in a network system as recited in claim 21 , wherein the processing logic marks data packets from the output buffer according to a probability corresponding to a percentage of time that the buffer is full.

Assignments (8)
RELEASE OF SECURITY INTEREST Recorded Oct 26, 2020
From: JEFFERIES FINANCE LLC
To: RPX CORPORATION
Reel/Frame 054486/0422 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054198/0029 →
PATENT SECURITY AGREEMENT Recorded Oct 23, 2020
From: RPX CLEARINGHOUSE LLC; RPX CORPORATION
To: BARINGS FINANCE LLC, AS COLLATERAL AGENT
Reel/Frame 054244/0566 →
SECURITY INTEREST Recorded Jun 29, 2018
From: RPX CORPORATION
To: JEFFERIES FINANCE LLC
Reel/Frame 046486/0433 →
MERGER AND CHANGE OF NAME Recorded May 30, 2018
From: ADPT CORPORATION; ADAPTEC, INC.
To: ADPT CORPORATION
Reel/Frame 046268/0592 →
CHANGE OF NAME Recorded Mar 18, 2015
From: KENEXA TECHNOLOGY NY, INC.
To: KENEXA TECHNOLOGY, INC.
Reel/Frame 035222/0714 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 2, 2012
From: HUPPER ISLAND LLC
To: RPX CORPORATION
Reel/Frame 028142/0922 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 16, 2011
From: ADPT CORPORATION
To: HUPPER ISLAND LLC
Reel/Frame 026459/0871 →