IP Library Granted Patent US 7,706,274
Granted Patent B2
US 7,706,274 · App. 11/194,130 · Granted Apr 27, 2010

High performance TCP for systems with infrequent ACK

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,706,274
App. No.
11/194,130
Granted
Apr 27, 2010
Kind
B2
Abstract

A method for processing data packets in a network communication environment. In response to receiving an acknowledgment (ACK) of a previously sent burst of data packets, the amount of data acknowledged is compared to the amount of data in the burst that was originally sent. If the ACK covers at least a predetermined amount (or more) of the data in the original burst, then a burst size parameter is increased for future communications; however, if the ACK covers less than the predetermined amount of the original burst, then the burst size parameter remains the same.

Claims (38)

1. A method for processing data packets in a data communication device comprising:

(a) maintaining a congestion window parameter, the congestion window parameter determining a maximum number of data packets that are allowed to be outstanding between the data communication device and another data communication device;

(b) maintaining a burst size parameter, the burst size parameter determining a maximum number of data packets to be sent together in a burst from the data communication device;

(c) sending an original burst of data packets, with an amount of data in the original burst of data determined by the burst size parameter;

(d) in response to receiving an acknowledgment (ACK) of the original burst of data packets, wherein ACKs are received less frequently than once every second packet in the burst of data;

(e) if the number of packets indicated by the ACK is equal to a number of packets in the original burst of data packets, increasing the congestion window parameter;

(f) if the number of packets indicated by the ACK is less than a number of packets in the original burst of data packets, decreasing the congestion window parameter;

(g) increasing the burst size parameter if the ACK acknowledges at least a predetermined amount of data in the original burst of data, wherein the predetermined amount of data may be less than a number of packets in the original burst of data;

(h) maintaining the burst size parameter to be the same if the ACK acknowledges less than the predetermined amount of data in the original burst of data; and

additionally comprising the step of, wherein, if the amount of data acknowledged by the ACK is greater than one-half the congestion window parameter, and if there are more data packets queued to be sent, then increasing the burst size by a predetermined amount.

2. The method as in claim 1 additionally comprising the step of, after step (d), increasing the burst size parameter if the ACK acknowledges an amount of data equal to or greater than the original burst of data.

3. The method as in claim 1 additionally comprising the step of, when there is no additional data to be sent, maintaining the burst size parameter to be the same.

4. The method as in claim 1 wherein the data packets are TCP packets.

5. The method as in claim 1 additionally comprising the step of, when the data communication device is idle, resetting the burst size parameter to a default value.

6. The method as in claim 1 additionally comprising the step of, when data packet loss is detected, resetting the burst size parameter to a default value.

7. The method as in claim 1 further comprising the step of: (i) maintaining a burst in progress flag, the burst in progress flag being set to a true state after step (c) of sending the original burst of data packets is complete.

8. The method as in claim 7 wherein steps (g) and (h) are performed only when the burst in progress flag is set to the true state.

9. The method as in claim 8 wherein step (i) further comprises: setting the burst in progress flag is set to the true state only when packets in the original burst have a packet length less than a predetermined packet size limit.

10. The method as in claim 7 wherein the burst in progress flag is set to a false state when the burst size parameter has reached a predetermined maximum burst size.

11. A data communication device comprising:

memory to store a congestion window parameter, the congestion window parameter indicating a maximum number of data packets allowed to be outstanding between the data communication device and another data communication device, and also to store a burst size parameter, the burst size parameter determining a maximum number of data packets to be sent together in a burst from the data communication device;

a transmitter to send an original burst of data, with an amount of data in the original burst of data determined by the burst size parameter;

a receiver to receive an acknowledgment (ACK) of the original burst of data, wherein the receiver receives ACKs less frequently than once every second packet in the burst of data;

a processor to compare an amount of data for which the ACK acknowledges with an amount of data in the original burst of data; and in response thereto,

increase the congestion window parameter if the number of packets indicated by the ACK is equal to a number of packets in the original burst of data packets;

decrease the congestion window parameter if the number of packets indicated by the ACK is less than the number of packets in the original burst of data packets;

increase the burst size parameter if the ACK acknowledges at least a predetermined amount of data in the original burst of data;

maintain the burst size parameter to be the same if the ACK acknowledges less than the predetermined amount of data in the original burst of data; and

increase the burst size by a predetermined amount if the amount of data acknowledged by the ACK is greater than one-half the congestion window size and if there are more data queued to be sent.

12. The data communication device as in claim 11 wherein the processor is further to increase the burst size parameter if the ACK acknowledges an amount of data equal to or greater than the original burst of data.

13. The data communication device as in claim 11 wherein the processor is further to, if there is no additional data to be sent, maintain the burst size parameter to be the same.

14. The data communication device as in claim 11 wherein the data packets are TCP packets.

15. The data communication device as in claim 11 wherein the processor is further to reset the burst size parameter to a default value when the data communication device is idle.

16. The data communication device as in claim 11 wherein the processor is further to reset the burst size parameter to a default value when data packet loss is detected.

17. The data communication device as in claim 11 wherein the memory is further to store a burst in progress flag, and the burst in progress flag set to a true state after the transmitter sends the original burst of data.

18. The data communication device as in claim 17 wherein the processor is further to compare the amount of data for which the ACK acknowledges with the amount of data in the original burst of data and increase only when the burst in progress flag is set to the true state.

19. The data communication device as in claim 18 wherein the burst in progress flag is set to the true state only when packets in the burst have a length less than a predetermined packet size limit.

20. The data communication device as in claim 17 wherein the burst in progress flag is set to a false state when the burst size parameter has reached a predetermined maximum burst size.

Assignments (15)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL USA L.P.; ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0618 →
RELEASE OF SECURITY INTEREST Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040040/0001 →
RELEASE OF SECURITY INTEREST Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL MARKETING L.P.; ASAP SOFTWARE EXPRESS, INC.; APPASSURE SOFTWARE, INC.; COMPELLANT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL PRODUCTS L.P.; DELL USA L.P.; DELL SOFTWARE INC.; FORCE10 NETWORKS, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
Reel/Frame 040065/0216 →
PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 031899/0261 →
PATENT SECURITY AGREEMENT (ABL) Recorded Jan 2, 2014
From: DELL INC.; APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 031898/0001 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Jan 2, 2014
From: APPASSURE SOFTWARE, INC.; ASAP SOFTWARE EXPRESS, INC.; BOOMI, INC.; COMPELLENT TECHNOLOGIES, INC.; CREDANT TECHNOLOGIES, INC.; DELL INC.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL USA L.P.; FORCE10 NETWORKS, INC.; GALE TECHNOLOGIES, INC.; PEROT SYSTEMS CORPORATION; SECUREWORKS, INC.; WYSE TECHNOLOGY L.L.C.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS FIRST LIEN COLLATERAL AGENT
Reel/Frame 031897/0348 →
MERGER Recorded Jan 21, 2010
From: EQUALLOGIC INC.
To: DELL PRODUCTS L.P.
Reel/Frame 023828/0438 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 14, 2005
From: KONING, G. PAUL; GILLUM, KIRTLEY C.; MENNER, RONALD T.; FERRIS, ANDREW C.
To: EQUALLOGIC, INC.
Reel/Frame 016884/0109 →