Multipath TCP Subflow Segmentation for Head-of-Line Blocking

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional Transmission Control Protocol (TCP) causes head-of-line blocking, leading to inefficient network throughput and delayed page loading due to its requirement for in-order data transfer, especially in applications where data objects are independent of each other.

Innovation Solution

Establishing a multipath connection using Multipath Transmission Control Protocol (MPTCP), which allows multiple data sets to be transferred independently over multiple paths, reducing the need for strict in-order transfer and improving application throughput.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If TCP ensures in-order data transfer, then data delivery reliability is improved, but network throughput deteriorates due to head-of-line blocking

Engineering Contradiction:
Improvedata delivery reliabilityVSAvoidnetwork throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments the single TCP connection into multiple independent subflows (first subflow and second subflow), each capable of independent data transmission. This segmentation allows different data sets to be transmitted through different paths simultaneously, eliminating the head-of-line blocking effect while maintaining data delivery reliability through selective acknowledgment and retransmission mechanisms for each subflow.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a new dimension of parallelism by establishing multiple subflows over different network paths between the same endpoints. Instead of a single sequential path, data can now flow through multiple dimensions (paths) simultaneously, with the first data set transmitted over a first path and the second data set over a second path, thereby increasing network throughput without sacrificing reliability.

Inventive Principle:
Principle #17Another dimension (Dimensionality change)

2Reliability

If TCP requires in-order transfer, then data integrity is improved, but application performance deteriorates due to waiting for retransmission

Engineering Contradiction:
Improvedata integrityVSAvoidapplication performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent segments data into multiple independent data sets (first data set and second data set) that can be transmitted through different subflows. Each subflow maintains its own sequence numbering and acknowledgment mechanism, allowing the receiving end to process and acknowledge data sets independently. This eliminates the need to wait for retransmission of earlier data sets before processing later ones, thereby improving application performance while maintaining data integrity through subflow-specific reliability mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent establishes multiple subflows in advance before data transmission begins. This preliminary setup of parallel transmission paths allows data sets to be immediately routed through appropriate subflows without sequential processing delays. The receiving end is pre-configured to handle multiple subflows independently, enabling immediate processing of available data sets without waiting for retransmission events in other subflows.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If multiple TCP connections are established for parallel transfer, then network throughput is improved, but device complexity increases due to managing multiple connections

Engineering Contradiction:
Improvenetwork throughputVSAvoidconnection management complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple independent TCP connections into a single multipath TCP connection that internally manages multiple subflows. Instead of requiring the application layer to manage multiple separate TCP connections with their own socket handles and state machines, the multipath TCP protocol stack consolidates these into one unified connection interface while maintaining internal subflow management. This reduces device complexity at the application level while preserving the network throughput benefits of parallel transmission.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces multipath TCP as an intermediary layer between the application and the underlying network paths. This intermediary protocol handles the complexity of managing multiple subflows, path selection, and failover transparently, shielding the application from connection management complexity. The intermediary maintains a single socket interface for the application while orchestrating multiple subflows in the background, thereby improving network throughput without increasing perceived device complexity.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10129372B2Transferring multiple data sets using a multipath connection
Publication Date: 2018.11.13 VMWARE INC
  • US10129372B2 patent drawing
  • US10129372B2 patent drawing
  • US10129372B2 patent drawing

AI summary

Example methods are provided for a first endpoint to transfer a first data set and a second data set to a second endpoint using a multipath connection. The method may comprise detecting the first data set and the second data set from an application executing on the first endpoint for transfer to the second endpoint. The method may comprise, in response to determination that in-order transfer is not required for the first data set and the second data set, establishing a first subflow of a multipath connection with the second endpoint to send the first data set and establishing a second subflow of the multipath connection to send the second data set. The method may further comprise sending the first data set on the first subflow and the second data set on the second subflow to the second endpoint.