MPTCP Subflow Routing via SDN Controller
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current multipath TCP implementations, such as ECMP, fail to ensure that primary flows and subflows take different paths across the network, leading to potential underutilization of network resources and inefficient load balancing, especially in scenarios with few flows.
Innovation Solution
A software-defined networking (SDN) controller identifies primary flows and subflows by snooping TCP handshake packets and correlates them using a database, allowing the load balancer to program subflows onto alternate paths, ensuring they take different routes and optimizing ECMP path utilization.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Productivity
If ECMP hash algorithm is used for load balancing, then traffic is distributed across paths, but subflows may be routed onto the same path as primary flow leading to under-utilization
Solution Approach 1:
The system performs preliminary identification of primary flows and subflows during the TCP handshake phase by snooping packets and checking for MP_CAPABLE options. This early identification allows the load balancer to pre-program routing rules that ensure subflows take different paths than primary flows, preventing the under-utilization problem before it occurs.
Solution Approach 2:
The system implements feedback by having the controller identify and correlate subflows with primary flows using a database, then use this information to adjust routing decisions. The load balancer receives feedback about flow relationships and modifies path selection accordingly, ensuring that subflows are routed onto alternate paths rather than the same path as primary flows.
2Productivity
If MPTCP subflows are created for multipathing, then throughput is improved, but ECMP paths are not efficiently utilized due to lack of path awareness
Solution Approach 1:
The system introduces an intermediary controller that sits between the MPTCP implementation and the ECMP routing infrastructure. This controller identifies subflows, correlates them with primary flows, and provides path information to the load balancer. The intermediary enables MPTCP to efficiently utilize ECMP paths by bridging the gap between host-level multipath capability and network-level path selection.
Solution Approach 2:
The system replaces the traditional mechanical hash-based routing mechanism with an intelligent control plane that uses packet snooping, database correlation, and programmable routing. Instead of relying solely on ECMP's hash algorithm to distribute flows, the system substitutes a more sophisticated mechanism that actively identifies flow relationships and makes informed routing decisions to optimize path utilization.
3Reliability
If hosts create subflows without knowledge of available ECMP paths, then multipath capability is maintained, but optimal path selection cannot be achieved
Solution Approach 1:
The system implements feedback by having the controller identify and correlate subflows with primary flows using a database, then use this information to adjust routing decisions. The load balancer receives feedback about flow relationships and modifies path selection accordingly, ensuring that subflows are routed onto alternate paths rather than the same path as primary flows.
Solution Approach 2:
The system performs preliminary identification of primary flows and subflows during the TCP handshake phase by snooping packets and checking for MP_CAPABLE options. This early identification allows the load balancer to pre-program routing rules that ensure subflows take different paths than primary flows, preventing the under-utilization problem before it occurs.
Data Source
AI summary
Embodiments of the present invention include systems and methods for identifying a primary flow and its corresponding subflow(s) so that the subflow(s) may be routed to more efficiently use bandwidth between a source host and a destination host. In embodiments, a table correlates flows and their corresponding keys for Multipath TCP flows. When a new subflow is initiated between a source device and a destination device, the new flow can be identified as being a subflow of a primary flow using data in the table. Having identified the subflow and its corresponding primary flow, the new subflow may have an installed route path that differs from its primary flow, thereby improving the bandwidth usage.


