MPTCP Session Load Balancing via Token Extraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current systems for multipath transmission control protocol (MPTCP) session load balancing in clusters face inefficiencies due to the need for packet steering, stateful session stores, and synchronization, leading to reduced goodput and increased costs, especially in horizontally scaled processor architectures and public cloud deployments.

Innovation Solution

Implementing a two-tier clustering architecture where the first tier of processors performs TCP-level load balancing and uses tokens for connection persistency, eliminating the need for packet steering and session store look-ups, and encapsulation by ensuring all subflows of an MPTCP session are load-balanced to the same node in the second tier, using a distributed hash table for token storage and lookup.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If packet steering, stateful session store, and synchronization are used to steer MPTCP subflows to the same node, then connection persistency is improved, but processing overhead and device complexity increase significantly

Engineering Contradiction:
Improveconnection persistencyVSAvoidprocessing overhead
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the connection tracking function from the data plane to the control plane. The first tier processor extracts and stores the token from the primary connection in a data structure, separating the steering logic from the packet processing path. This eliminates the need for complex packet steering, stateful session stores, and synchronization in the data plane, resolving the contradiction between connection persistency and processing overhead.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary action by storing the token and associated processor mapping in a data structure during the primary connection establishment phase. This pre-computation and pre-storage of routing information eliminates the need for real-time lookups and steering decisions during subsequent subflow processing, reducing processing overhead while maintaining connection persistency.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If two-hop steering within the cluster is implemented to steer subflows to the same node, then connection persistency is improved, but goodput decreases dramatically due to increased packet processing overhead

Engineering Contradiction:
Improveconnection persistencyVSAvoidgoodput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the steering function from the packet data plane to the control plane token management system. By storing tokens and their associated processor mappings in advance, the system eliminates the need for two-hop steering and real-time packet manipulation, allowing packets to flow directly to the destination processor without intermediate steering operations, thus maintaining high goodput while ensuring connection persistency.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent creates a copy of the routing information (token to processor mapping) in a data structure that can be quickly queried. This copying of essential routing metadata allows for O(1) lookup time during subflow establishment, eliminating the need for complex multi-hop steering operations and maintaining packet processing efficiency.

Inventive Principle:
Principle #26Copying

3Reliability

If packet encapsulation and steering are used for MPTCP subflows, then connection persistency is improved, but Packet Per Second (PPS) limit is reduced due to steered packets counting toward the limit

Engineering Contradiction:
Improveconnection persistencyVSAvoidPPS limit
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent extracts the connection identification function to the token-based control plane system. By removing packets from the steering pipeline and allowing them to flow directly to the destination processor using the pre-computed token mappings, the system eliminates encapsulation and steering overhead. This ensures that steered packets no longer consume PPS capacity, resolving the contradiction between connection persistency and PPS limit.

Inventive Principle:
Principle #2Taking out (Extraction)

4Reliability

If stateful session store and lookup are implemented for each subflow, then connection persistency is improved, but processing time and operational complexity increase

Engineering Contradiction:
Improveconnection persistencyVSAvoidprocessing time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary action by pre-computing and storing the token-to-processor mapping in a data structure during primary connection establishment. This eliminates the need for stateful session store and lookup operations during subflow processing, reducing processing time from O(n) to O(1) while maintaining connection persistency through the token mechanism.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent extracts the session state management function to the control plane token system. By storing only the essential token and its mapping in the data structure rather than maintaining full session states, the system eliminates complex stateful lookups while preserving connection persistency, significantly reducing processing time and operational complexity.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS11647083B2Cluster-aware multipath transmission control protocol (MPTCP) session load balancing
Publication Date: 2023.05.09 CITRIX SYSTEMS INC
  • US11647083B2 patent drawing
  • US11647083B2 patent drawing
  • US11647083B2 patent drawing

AI summary

Systems and methods for establishing a multipath connection include a first processor of a first cluster forwarding a first request from a client to establish a first connection with a server to a second processor of a second cluster. A third processor of the first cluster receives a second request to establish a multipath connection between the client and the server. The third processor forwards the second request to the second processor responsive to determining that the second request is to establish a multipath connection. The second processor establishes the multipath connection that includes the first connection and a second connection used as paths of the multipath connection.