Network Multipathing with Flow Labels for Congestion Control
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing network connections typically use a single data path, leading to delays and inefficiencies when transmission, receipt, or acknowledgements are delayed, with no alternative paths available for data packets.
Innovation Solution
Implementing multiple flows within a single connection using flow labels, where each flow has a congestion window managed by a weighted round robin scheduler, and updating congestion control metadata and acknowledgements to balance load across these flows.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If a single data path is used for network connection, then the connection structure is simple and easy to manage, but transmission delays occur and bandwidth utilization is limited when congestion happens
Solution Approach 1:
The patent segments a single network connection into multiple independent flows, each capable of transmitting packets through different network paths. This segmentation allows the system to utilize multiple data paths simultaneously, increasing overall bandwidth utilization while maintaining manageable complexity through structured flow management
Solution Approach 2:
The patent introduces an additional dimension to network connections by adding flow labels that identify different flows within a single connection. This dimensional expansion enables packets to be routed through multiple paths without creating separate connections, thereby increasing bandwidth utilization while keeping the connection structure organized and manageable
2Loss of time
If multiple flows are implemented within a single connection, then bandwidth utilization increases and latency is reduced, but the complexity of managing congestion control and flow labels increases
Solution Approach 1:
The patent performs preliminary actions by pre-establishing multiple flows with assigned flow labels and congestion control parameters before data transmission begins. This preparation allows packets to be immediately routed through appropriate flows without real-time decision delays, reducing transmission latency while maintaining organized congestion control
Solution Approach 2:
The patent implements feedback mechanisms where congestion control metadata is continuously updated based on network conditions and acknowledged packets. This feedback loop allows the system to dynamically adjust flow routing and congestion windows, reducing latency by adapting to current network states while systematically managing the complexity of multiple flow controls
3Productivity
If flow labels with weights are used for load balancing, then packet distribution across paths is optimized, but the complexity of determining congestion windows and managing flow weights increases
Solution Approach 1:
The patent uses parameter changes by assigning weights to different flows and dynamically adjusting congestion windows based on these weights and network conditions. This approach optimizes packet distribution across paths by varying flow parameters rather than creating complex routing logic, thereby improving distribution efficiency while managing complexity through parameter-based control
Solution Approach 2:
The patent introduces dynamics by making congestion windows and flow weights adjustable based on real-time network conditions. This dynamic adaptation allows the system to optimize packet distribution efficiency in response to changing network states while systematically managing complexity through automated adjustment mechanisms rather than static complex configurations
Data Source
Figure 1
Figure 2
Figure 3
AI summary
Aspects of the disclosure are directed to establishing and utilizing multiple flows, e.g., data paths, within a single connection between two end points in a network. Packets being transmitted between the endpoints can be load-balanced among multiple flows using a set of flow labels. The flow label is determined using scheduling logic. The flow labels include a flow weight that encodes how the packet is mapped to a given flow. The flow weight may be used to determine a congestion window for each flow in the connection. As packets are communicated between the endpoints, congestion control data and acknowledgement coalescing entries are updated before an acknowledgement is sent. Each flow maintains a counter of the number of acknowledgments received. The number of acknowledgments received is used to implement congestion control.