IP Library Granted Patent US 9,979,510
Granted Patent B2
US 9,979,510 · App. 14/811,669 · Granted May 22, 2018

Application timeout aware TCP loss recovery

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,979,510
App. No.
14/811,669
Granted
May 22, 2018
Kind
B2
Abstract

The SACK scoreboard is used in slow recovery and the SACK scoreboard and an application programmed timeout are used to determine the initial CWND in slow recovery. The CWND is calculated so that all packets will be recovered before the application times out. A new socket option is provided for an application to program an application timeout (say APP_TO). This value is used in conjunction with the RTT (round trip time) to determine the initial CWND value to insure completion before timeout. Along with the timeout, the application can also set the mode as “soft,” where the CWND value is set to “1” as conventional but when that packet is ACKed, the CWND value is increased immediately to a modified calculated value to allow timely recovery.

Claims (46)

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

a port for transmitting TCP packets and receiving selective acknowledgement (SACK) responses;

a buffer coupled to said port for storing TCP segments provided by an application that are to be transmitted; and

logic coupled to said buffer to determine if setting an initial congestion window size at a standard size allows completion of slow recovery operations before an application timeout of the application and to take an alternate approach to recovery when setting the initial congestion window size at a standard size does not allow completion of slow recovery operations before an application timeout of the application when entering slow recovery.

2. The TCP transmitter of claim 1 , wherein the alternate approach is to indicate to the application that fast failover should be performed.

3. The TCP transmitter of claim 1 , wherein the alternate approach is to set the initial congestion window size at a larger than standard size to allow completion of slow recovery operations before an application timeout of the application.

4. The TCP transmitter of claim 3 , further comprising:

a SACK scoreboard coupled to said port and said logic,

wherein said logic utilizes information in said SACK scoreboard indicating the number of missing segments to set said initial congestion window size and to transmit segments during slow recovery operations.

5. The TCP transmitter of claim 4 , further comprising:

a register for storing an application timeout value (APP_TO); and

a register for storing a round trip time (RTT);

wherein said logic sets the initial congestion window size (CWND) using the following equation:

CWND=┌NPKTS/( S −1)┐

where ‘S’ is sum of geometric sequence for ‘N’ iterations with initial value as ‘1’

NPKTS is the number of maximum segment size lost PKTS recorded in said SACK scoreboard,

‘N’ is ┌APP_TO/RTT┐, and

┌ ┐ is the ceiling function.

6. The TCP transmitter of claim 1 , wherein the alternate approach is to set the initial congestion window at a standard size, monitor for an acknowledgement of a segment provided based on the initial congestion window being at a standard size and then change the congestion window size to a larger than standard size to allow completion of slow recovery operations before an application timeout of the application.

7. The TCP transmitter of claim 6 , further comprising:

a SACK scoreboard coupled to said port and said logic,

wherein said logic utilizes information in said SACK scoreboard indicating the number of missing segments to change the congestion window size to a larger than standard size and to transmit segments during slow recovery operations.

8. A method comprising the steps of:

entering slow recovery operation in a transmission control protocol (TCP) transmitter;

determining if setting an initial congestion window size at a standard size allows completion of slow recovery operations before an application timeout of the application; and

taking an alternate approach to recovery when setting the initial congestion window size at a standard size does not allow completion of slow recovery operations before an application timeout of the application.

9. The method of claim 8 , wherein the alternate approach is to indicate to the application that fast failover should be performed.

10. The method of claim 8 , wherein the alternate approach is to set the initial congestion window size at a larger than standard size to allow completion of slow recovery operations before an application timeout of the application.

11. The method of claim 10 , further comprising:

utilizing information in a selective acknowledgement (SACK) scoreboard indicating the number of missing segments to set the initial congestion window size; and

utilizing information in the SACK scoreboard to transmit segments during slow recovery operations.

12. The method of claim 11 , wherein the initial congestion window size (CWND) is computed using the following equation:

CWND=┌NPKTS/( S −1)┐

where ‘S’ is sum of geometric sequence for ‘N’ iterations with initial value as ‘1’

NPKTS is the number of maximum segment size lost PKTS recorded in the SACK scoreboard,

‘N’ is ┌APP_TO/RTT┐,

APP_TO is the application timeout,

RTT is the round trip time, and

┌ ┐ is the ceiling function.

13. The method of claim 8 , wherein the alternate approach includes the steps of:

setting the initial congestion window at a standard size;

monitoring for an acknowledgement of a segment provided based on the initial congestion window being at a standard size; and

changing the congestion window size to a larger than standard size to allow completion of slow recovery operations before an application timeout of the application when the acknowledgement is received.

14. The method of claim 13 , further comprising:

utilizing information in a selective acknowledgement (SACK) scoreboard indicating the number of missing segments to change the congestion window size; and

utilizing information in the SACK scoreboard to transmit segments during slow recovery operations.

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 Nov 17, 2017
From: DOOLEY, ANDY; LARSON, ISAAC; PATEL, MAULIK
To: BROCADE COMMUNICATIONS SYSTEMS, INC.
Reel/Frame 044164/0747 →