Dynamic Congestion Control Module Selection for Network Bandwidth
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current TCP congestion control algorithms underutilize network bandwidth in high bandwidth-delay environments due to aggressive throttling measures, leading to unfairness to other TCP flows and lack of a universal standard for congestion control.
Innovation Solution
A framework for creating and selecting different congestion control modules (CCMs) based on network environment and connection characteristics, allowing for delay-based and loss-based congestion control, with sampling rates adjusted according to transmission rate and round trip time to optimize memory usage and congestion management.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If aggressive congestion control algorithms are used to defuse network congestion, then packet loss is reduced, but network bandwidth is substantially underutilized in high bandwidth-delay networks
Solution Approach 1:
The patent implements dynamic congestion control by allowing the system to switch between different congestion control algorithms (CCMs) based on real-time network conditions. The network device monitors metrics such as packet loss rate, bandwidth, and delay to dynamically select the most appropriate algorithm, enabling the system to adapt its congestion control strategy to current network state rather than using a fixed aggressive approach
Solution Approach 2:
The patent changes the parameters of congestion control by introducing multiple algorithms with different threshold values and control mechanisms. Each algorithm uses specific parameters (such as different packet loss thresholds or bandwidth utilization targets) that can be adjusted based on network conditions, allowing optimization of both packet loss reduction and bandwidth utilization
2Reliability
If aggressive congestion control algorithms are used to defuse network congestion, then packet loss is reduced, but fairness to other TCP flows is compromised
Solution Approach 1:
The system dynamically selects congestion control algorithms based on network conditions and flow characteristics. By monitoring metrics such as packet loss rate, bandwidth, and delay, the system can choose algorithms that balance congestion relief with fairness to other TCP flows, rather than consistently applying aggressive control that harms overall network fairness
Solution Approach 2:
The patent creates a universal framework that supports multiple congestion control algorithms, allowing the system to handle different network scenarios and flow types appropriately. This multi-algorithm approach enables the system to maintain fairness across different TCP flows while still achieving effective congestion control when needed
3Adaptability or versatility
If multiple congestion control algorithms are supported to address different network conditions, then adaptability is improved, but device complexity increases
Solution Approach 1:
The patent segments the congestion control functionality into separate, modular algorithms that can be independently implemented and selected. Each algorithm is encapsulated as a distinct module (CCM) that can be activated based on network conditions, allowing the system to support multiple algorithms without overwhelming complexity in a single monolithic structure
Solution Approach 2:
The patent introduces an intermediary layer (the congestion control selection mechanism) that manages the complexity of multiple algorithms. This intermediary monitors network conditions and selects the appropriate algorithm, shielding the rest of the system from the complexity of having multiple algorithm options while maintaining adaptability
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Creating different congestion control modules (CCMs) that can be plugged into a network communications stack (e.g., a TCP/IP stack). Software abstractions defining transport control events, congestion control algorithms and other information may be exposed by an application programming interface, e.g., of an operating system, and these abstractions may be used to define a CCM. The network communications stack may be configured to select one of multiple available CCMs to control congestion for a given connection. This selection may be based on any of a variety of factors including, but not limited to: network environment; connection path characteristics; connection link characteristics; a value of a socket parameter of an application; other factors; and any suitable combination of the foregoing. Thus, CCMs may be selected and implemented on a per-connection basis.