TCP Slow Recovery CWND Calculation Using SACK and Application Timeout

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional TCP implementations face challenges in slow recovery from packet loss on high latency networks, where the traditional slow recovery approach can trigger application timeouts and is inefficient, especially on long fat networks, and do not utilize SACK in slow recovery phases.

Innovation Solution

The implementation of using the SACK scoreboard in slow recovery and an application-programmed timeout to determine the initial congestion window size (CWND), allowing for timely recovery by calculating CWND to ensure all packets are recovered before the application times out, with the option to set a 'soft' mode that increases CWND immediately upon ACK receipt.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Loss of energy

If traditional slow recovery approach is used with CWND set to 1, then TCP conserves bandwidth during recovery, but application timeout is triggered on high latency networks

Engineering Contradiction:
Improvebandwidth conservationVSAvoidapplication timeout
Core Design Contradiction:
Loss of energyVSLoss of time

Solution Approach 1:

The patent dynamically adjusts the initial CWND value in slow recovery based on the calculated recovery time and application timeout threshold. Instead of statically setting CWND to 1, the system computes an optimal initial CWND that enables packet recovery before application timeout while avoiding excessive bandwidth consumption, thus resolving the contradiction between bandwidth conservation and timeout prevention

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent changes the CWND parameter from a fixed value (1) to a dynamically calculated value based on RTT, packet loss count, and application timeout. This parameter transformation allows the system to adapt the recovery speed to match network conditions and application requirements, preventing timeout while controlling bandwidth usage

Inventive Principle:
Principle #35Parameter changes

2Device complexity

If SACK is not used in slow recovery, then implementation remains simple, but recovery efficiency is reduced on long fat networks

Engineering Contradiction:
Improveimplementation simplicityVSAvoidrecovery efficiency
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent performs preliminary actions by maintaining and utilizing the SACK scoreboard during slow recovery phase. The SACK information is prepared in advance and used to identify lost packets efficiently, enabling faster recovery without requiring complex retransmission logic, thus improving productivity while maintaining reasonable implementation complexity

Inventive Principle:
Principle #10Preliminary action

3Speed

If CWND is increased immediately in soft mode upon ACK receipt, then recovery speed is improved, but bandwidth consumption increases

Engineering Contradiction:
Improverecovery speedVSAvoidbandwidth consumption
Core Design Contradiction:
SpeedVSLoss of energy

Solution Approach 1:

The patent implements dynamic CWND adjustment in soft mode where the initial CWND is set to 1 for conservative bandwidth usage, but upon receiving an ACK, the CWND is immediately increased to the calculated optimal value. This dynamic transition allows the system to start conservatively and then accelerate recovery when network conditions confirm availability, balancing speed and bandwidth consumption

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS9979510B2Application timeout aware TCP loss recovery
Publication Date: 2018.05.22 AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE LTD
  • US9979510B2 patent drawing
  • US9979510B2 patent drawing
  • US9979510B2 patent drawing

AI summary

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.