IP Library Granted Patent US 8,605,590
Granted Patent B2
US 8,605,590 · App. 12/908,379 · Granted Dec 10, 2013

Systems and methods of improving performance of transport protocols

Inventors: Raghupathy Sivakumar (Alpharetta, GA); Aravind Velayutham (Atlanta, GA)
Assignee: EMC Corporation
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 8,605,590
App. No.
12/908,379
Filed
Oct 20, 2010
Granted
Dec 10, 2013
Kind
B2
Art Unit
2463
USPC
370/235
Abstract

Systems and methods of improving transport protocol performance are disclosed. One exemplary method includes: in a first state, non-linearly increasing a congestion window; in response to the congestion window exceeding a threshold value while in the first state, transitioning to a second state; and in the second state, linearly increasing the congestion window.

Claims (76)

1. A method of controlling congestion in a network between a first network device and a peer second network device, the method comprising the steps of:

establishing, by the first network device, a connection between the first network device and the peer second device, wherein the connection has an associated congestion window;

setting, by the first network device, the congestion window size to an initial value;

in a first state of the first network device, exponentially increasing the congestion window size;

in response to the congestion window size exceeding a first threshold value while in the first state, transitioning the first network device to a second state;

in the second state, linearly increasing the congestion window size;

in response to a round trip time of a connection between the first network device and the peer second network device exceeding a second threshold value while in the second state, transitioning the first network device to a third state;

in the third state, maintaining the congestion window size until a packet loss occurs;

transmitting from the first network device to the peer second device a series of packets as well as a transmission cycle number associated with the series of packets;

receiving at the first network device from the peer second device a selective acknowledgment containing an acknowledged transmission cycle number; and

retransmitting the series of packets from the first network device to the peer second device, if the acknowledged transmission cycle number is equal to or greater than the transmission cycle number associated with the series of packets.

2. The method of claim 1 , further comprising the steps of:

if the packet loss occurs, transitioning the first network device to a fourth state; and

in the fourth state, decreasing the congestion window size in proportion to the number of packets lost.

3. The method of claim 1 , further comprising the steps of:

detecting a loss of packets;

upon detecting the loss of packets, recording a number of unacknowledged packets at the time of loss detection;

receiving an acknowledgment containing a sequence number of the next packet in an out-of-order buffer of a peer receiver;

determining, based on the sequence number of the next packet, whether the received acknowledgement is a true partial acknowledgement or a false partial acknowledgement;

if the received acknowledgement is a true partial acknowledgement, retransmitting a requested packet; and

if the received acknowledgement is a false partial acknowledgement, not retransmitting a requested packet.

4. The method of claim 1 , further comprising the steps of:

if the packet loss occurs as a result of a timeout, transitioning the first network device to the first state.

5. A network device for controlling congestion in a network, comprising:

a processor; and

a memory, coupled to the processor, wherein the memory has logic embodied thereon for:

establishing, by the network device, an connection between the first device and the peer second device, wherein the connection has an associated congestion window,

setting, by the network device, the congestion window size to an initial value;

in a first state of the network device, exponentially increasing the congestion window size,

in response to the congestion window size exceeding a first threshold value while in the first state, transitioning the network device to a second state,

in the second state, linearly increasing the congestion window size,

in response to a round trip time of a connection between the first device and the peer second device exceeding a second threshold value while in the second state, transitioning the network device to a third state,

in the third state, maintaining the congestion window size until a packet loss occurs;

transmitting from the first network device to the peer second device a series of packets, as well as a transmission cycle number associated with the series of packets;

receiving at the first network device from the peer second device a selective acknowledgment containing an acknowledged transmission cycle number; and

retransmitting the series of packets from the first network device to the peer second device, if the acknowledged transmission cycle number is equal to or greater than the transmission cycle number associated with the series of packets.

6. The network device of claim 5 , further comprising logic for:

if the packet loss occurs, transitioning the first network device to a fourth state; and

in the fourth state, decreasing the congestion window size in proportion to the number of packets lost.

7. The network device of claim 5 , further comprising logic for:

transmitting a first series of packets, each including an increasing sequence number;

receiving a second series of packets, each including an acknowledged sequence number; and

if one of the acknowledged sequence numbers is greater than the increasing sequence number of a corresponding one of the first series of packets, indicating loss of a packet.

8. The network device of claim 5 , further comprising logic for transmitting a selective acknowledgment containing a start sequence number, an end sequence number and a transmission cycle number.

9. The network device of claim 8 , further comprising logic for:

determining whether the selective acknowledgment refers to an original packet or a subsequent retransmission of the original packet based on the transmission cycle number.

10. The network device of claim 5 , further comprising logic for:

detecting a loss of packets;

upon detecting the loss of packets, recording a number of unacknowledged packets at the time of loss detection; and

receiving an acknowledgment containing a sequence number of the next packet in an out-of-order buffer of a peer receiver.

11. The network device of claim 10 , further comprising logic for:

determining, based on the sequence number of the next packet, whether the received acknowledgement is a true partial acknowledgement or a false partial acknowledgement;

if the received acknowledgement is a true partial acknowledgement, retransmitting a requested packet; and

if the received acknowledgement is a false partial acknowledgement, not retransmitting a requested packet.

12. A system for controlling congestion, comprising:

a first endpoint device;

a second endpoint device;

one or more routers configured for transporting traffic across a network between the first endpoint device and the second endpoint device;

a first network device and a peer network second device, logically located

between the first endpoint device and the second endpoint device, wherein

the first endpoint device is configured to communicate with the first network device using a first transport protocol,

the second endpoint device is configured to communicate with the second network device using a first transport protocol,

the first network device is configured to communicate with the peer second network device using a second transport protocol, wherein the second transport protocol comprises,

establishing, by the first network device, an aggregated establishing, by the first network device, an connection between the first network device and the peer second device, wherein the connection has an associated congestion window,

setting, by the first network device, the congestion window size to an initial value,

in a first state of the first network device, exponentially increasing the congestion window size,

in response to the congestion window size exceeding a first threshold value while in the first state, transitioning the first network device to a second state,

in the second state, linearly increasing the congestion window size,

in response to a round trip time of a connection between the first network device and the peer second network device exceeding a second threshold value while in the second state, transitioning the first network device to a third state,

in the third state, maintaining the congestion window size until a packet loss occurs;

transmitting from the first network device to the peer second device a series of packets, as well as a transmission cycle number associated with the series of packets;

receiving at the first network device from the peer second device a selective acknowledgment containing an acknowledged transmission cycle number; and

retransmitting the series of packets from the first network device to the peer second device, if the acknowledged transmission cycle number is equal to or greater than the transmission cycle number associated with the series of packets.

13. The system of claim 12 , wherein the second transport protocol further comprises:

if the packet loss occurs, transitioning the first network device to a fourth state; and

in the fourth state, decreasing the congestion window size in proportion to the number of packets lost.

Assignments (12)
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: 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; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
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 053546/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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/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: 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 10, 2011
From: ASANKYA, INC.
To: EMC CORPORATION
Reel/Frame 026421/0935 →
CHANGE OF NAME Recorded Feb 11, 2011
From: ASANKYA NETWORKS, INC.
To: ASANKYA, INC.
Reel/Frame 025792/0571 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 20, 2011
From: SIVAKUMAR, RAGHUPATHY; VELAYUTHAM, ARAVIND
To: ASANKYA NETWORKS, INC.
Reel/Frame 025668/0621 →
Continuity (3)
Continuation 11672390 · Feb 7, 2007
Provisional Application 60765787 · Feb 7, 2006
Related Publication 20110116380A1 · May 19, 2011