TCP Slow Recovery CWND Calculation Using SACK and Application Timeout
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Device complexity
If SACK is not used in slow recovery, then implementation remains simple, but recovery efficiency is reduced on long fat networks
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
3Speed
If CWND is increased immediately in soft mode upon ACK receipt, then recovery speed is improved, but bandwidth consumption increases
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
Data Source
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.


