Network Multipathing with Flow Labels for Congestion Balancing
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 before transmission 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 system is simple to manage, but transmission delays occur and bandwidth utilization is low when congestion happens
Solution Approach 1:
The patent segments a single connection into multiple flows (e.g., flow 0, flow 1, flow 2) within the same connection identifier. Each flow can be independently scheduled and managed, allowing packets to be distributed across multiple paths while maintaining connection-level simplicity. This resolves the contradiction by enabling high bandwidth utilization through flow segmentation without requiring complex per-flow connection management.
Solution Approach 2:
The patent introduces a new dimension of flow labeling within the existing connection framework. By adding flow identifiers (e.g., 304-0, 304-1, 304-2) as a secondary dimension within a single connection, the system can utilize multiple paths without creating multiple separate connections. This dimensional addition enables parallel flow management while preserving connection-level simplicity.
2Productivity
If multiple flows are implemented within a single connection, then bandwidth utilization and load balancing are improved, but congestion control complexity increases
Solution Approach 1:
The patent maintains separate congestion control states (e.g., congestion windows, slow start thresholds) as copies for each flow within the connection. When a flow experiences congestion, only that flow's congestion control state is updated, while other flows continue independently. This copying approach enables effective load balancing across multiple flows without requiring complex inter-flow congestion coordination.
Solution Approach 2:
The patent segments congestion control into flow-specific components, with each flow having its own congestion window and control state. This segmentation allows independent congestion management per flow, simplifying the overall control mechanism compared to managing a single shared congestion state across all flows, while still achieving improved load balancing.
3Loss of time
If flow labels are used to distribute packets across multiple paths, then transmission latency is reduced, but acknowledgement overhead increases
Solution Approach 1:
The patent merges multiple flow acknowledgements into a single connection-level acknowledgement when possible. The receiver tracks the highest sequence number acknowledged for each flow and can consolidate these into one acknowledgement message for the connection, reducing the number of separate acknowledgement transmissions while still providing accurate flow-level feedback for congestion control.
Solution Approach 2:
The patent implements feedback mechanisms where acknowledgements carry information about which specific flows have been acknowledged and their respective sequence numbers. This feedback enables the transmitter to update congestion control states for individual flows based on received acknowledgements, reducing latency by providing timely flow-specific feedback without requiring separate acknowledgement messages for each flow.
Data Source
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.


