IP Library › Granted Patent US 9,584,425
Granted Patent B2
US 9,584,425 · App. 14/063,308 · Granted Feb 28, 2017

Bandwidth optimization using coalesced DUP ACKs

Inventors: Maulik Patel (Bangalore, IN); Andy Dooley (Rogers, MN); Isaac Larson (Minneapolis, MN)
Assignee: Brocade Communications Systems, Inc.
H04L47/27
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 9,584,425
App. No.
14/063,308
Granted
Feb 28, 2017
Kind
B2
Abstract

After sending M consecutive DUP ACKs, M generally being three, the TCP receiver generates DUP ACKs every N packets, with N greater than one, with the eventually transmitted DUP ACK containing SACK information. After receiving the third DUP ACK the TCP transmitter uses the positive acknowledgements provided in the SACK information in the TCP header to inflate the congestion window. With the reduced DUP ACKs from the TCP receiver to the TCP transmitter, the impact of TCP DUP ACKs on the data rate from the TCP receiver to the TCP transmitter is substantially reduced.

Claims (18)

1. A transmission control protocol (TCP) receiver comprising:

a port for receiving and transmitting TOP packets;

packet detection logic coupled to said port to determine, and indicate when a TCP packet has been received and has been missed based on receipt of a TCP packet; and

acknowledgement (ACK) logic coupled to said packet detection logic and said port to provide a duplicate ACK for transmission from said port for each received packet indication after an indication of a missed packet indication by said packet detection logic until M duplicate ACKs have been provided, M being a value sufficient to trigger retransmission, and then to provide a duplicate ACK for transmission from said port every N th number of received packet indications, N being greater than one, said duplicate ACKs provided every N th number of received packet indications including selective acknowledgement (SACK) information on packets received; wherein M equals 3.

2. The TCP receiver of claim 1 , wherein said M duplicate ACKs include SACK information.

3. A transmission control protocol (TOP) transmitter comprising: a port for receiving and transmitting TCF packets; a packet buffer coupled to said port for storing packets to be transmitted; ACK/SACK logic coupled to said packet buffer and said port for receiving and processing acknowledgements (ACKs) and selective acknowledgment (SACK) information received at said port, said SACK information including packets received, said ACK/SACK logic cooperating with said packet buffer to retransmit a given packet after said given packet has been indicated missing by three duplicate ACKs, only thereafter receiving duplicate ACKs with SACK information every N th number of received packets after the successful receipt of a first number of packets after said missing packet and thereafter receiving an ACK including said missing packet; and window logic coupled to said ACK/SACK logic to inflate the congestion window by the size of packets indicated received by said ACK/SACK logic and to reduce the congestion window size when said missing packet is indicated received by an ACK.

4. The TCP transmitter of claim 3 , wherein the congestion window inflation is started on the first duplicate ACK after the third duplicate ACK.

5. A network comprising: a network Internet protocol (IP) link; a transmission control protocol (TCP) receiver coupled to said IP link, said TCP receiver including: a TCP receiver port coupled to said IP link for receiving and transmitting TCP packets; packet detection logic coupled to said TCP receiver port to determine and indicate when a TCP packet has been received and has been missed based on receipt of a TCP packet; and acknowledgement (ACK) logic coupled to said packet detection logic and said TCP receiver port to provide a duplicate ACK for transmission from said TCP receiver port for each received packet indication after an indication of a missed packet indication by said packet detection logic until M duplicate ACKs have been provided. M being a value sufficient to trigger retransmission, and then to provide a duplicate ACK for transmission from said TCP receiver port every N th number of received packet indications, N being greater than one, said duplicate ACKs provided every N th number of received packet indications including selective acknowledgment (SACK) information on packets received; and a TCP transmitter coupled to said IP link, said TCP transmitter including: a TCP transmitter port coupled to said IP link for receiving and transmitting TCP packets; a packet buffer coupled to said TCP transmitter port for storing packets to be transmitted; ACK/SACK logic coupled to said packet buffer and said TCF transmitter port for receiving and processing ACKs and SACK information received at said TCP transmitter port, said ACK/SACK logic cooperating with said packet buffer to retransmit a given packet after said given packet has been indicated missing by M duplicate ACKs, only thereafter receiving duplicate ACKs with SACK information every N th number of received packets after the successful receipt of a first number of packets after said missing packet and thereafter receiving an ACK including said missing packet; and window logic coupled to said ACK/SACK logic to inflate the congestion window by the size of packets indicated received by said ACK/SACK logic and to reduce the congestion window size when said missing packet is indicated received by an ACK.

6. The network of claim 5 , wherein said M duplicate ACKs include SACK information.

7. The network of claim 5 , wherein M equals 3.

8. The network of claim 5 , wherein the congestion window inflation is started on the first duplicate ACK after the third duplicate ACK.

9. A method comprising:

receiving a sequence of transmission control protocol (TCP) packets;

determining that a TCP packet in said sequence has been missed; and

providing a duplicate acknowledgement (ACK) for transmission for each received packet indication after an indication of a missed packet indication by said packet detection logic until M duplicate ACKs have been provided, M being a value sufficient to trigger retransmission, and then providing a duplicate ACK for transmission every N th number of received packet indications, N being greater than one, said duplicate ACKs provided every N th number of received packet indications including selective acknowledgment (SACK) information on packets received; wherein M equals 3.

10. The method of claim 9 , wherein said M duplicate ACKs include SACK information.

11. A method comprising: transmitting a sequence of transmission control protocol (TCP) packets; receiving duplicate acknowledgements (ACKs) for a missing given packet; retransmitting said missing given packet after said given packet has been indicated missing by three duplicate ACKs; only after receiving three duplicate ACKs thereafter receiving duplicate ACKs with selective acknowledgment (SACK) information every N th number of received packets after the successful receipt of a first number of packets after said missing packet, said SACK information including packets received: after receiving duplicate ACKs with SACK information every N th number of received packets thereafter receiving an ACK including said missing packet; and inflating the congestion window by the size of packets received and reducing the congestion window size when said missing packet is received.

12. The method of claim 11 , wherein the congestion window inflation is started on the first duplicate ACK after the third duplicate ACK.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2018
From: BROCADE COMMUNICATIONS SYSTEMS LLC
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047270/0247 →
CHANGE OF NAME Recorded Dec 13, 2017
From: BROCADE COMMUNICATIONS SYSTEMS, INC.
To: BROCADE COMMUNICATIONS SYSTEMS LLC
Reel/Frame 044891/0536 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 28, 2014
From: DOOLEY, ANDY; LARSON, ISAAC; PATEL, MAULIK
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 034055/0341 →
Continuity (2)
Provisional Application 61867786 · Aug 20, 2013
Related Publication 20150117200A1 · Apr 30, 2015