TCP Shim Header for Multi-Path Load Balancing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional TCP connections cannot load balance packets over multiple paths due to the fixed four-tuple identifier, which limits network resource utilization and increases implementation complexity, and are prone to middlebox interference, making debugging difficult.

Innovation Solution

Implementing a TCP shim layer that extends the TCP protocol to include a shim header with dynamic port numbers, allowing routers to independently route TCP packets over different paths while maintaining the TCP connection integrity, and enabling load balancing without changing the four-tuple.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If conventional TCP connections use a fixed four-tuple identifier, then connection reliability is maintained, but load balancing across multiple paths cannot be achieved

Engineering Contradiction:
Improvenetwork resource utilizationVSAvoidimplementation complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent segments the TCP connection identification into two parts: the original four-tuple (source IP, destination IP, source port, destination port) for connection identification, and a new path identifier field in the TCP header for path selection. This allows routers to use the path identifier for load balancing while the four-tuple maintains connection integrity, resolving the contradiction between connection reliability and load balancing capability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a path identifier as an intermediary element within the TCP header that mediates between the fixed four-tuple connection identification and the need for multi-path routing. Routers use this intermediary path identifier to select among multiple paths without modifying the original connection identification, enabling load balancing while preserving connection reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If TCP connections are established over multiple paths, then network resource utilization improves, but middlebox interference increases making debugging difficult

Engineering Contradiction:
Improvenetwork resource utilizationVSAvoidmiddlebox interference
Core Design Contradiction:
ProductivityVSObject-affected harmful factors

Solution Approach 1:

The patent extracts the path selection function from the connection identification mechanism by placing a dedicated path identifier field in the TCP header. This separates path routing information from connection state information, allowing middleboxes to process connection data without interfering with path selection, thereby reducing middlebox interference while maintaining multi-path capability.

Inventive Principle:
Principle #2Taking out (Extraction)

3Adaptability or versatility

If dynamic port numbers are used in the TCP shim header, then load balancing flexibility improves, but protocol complexity increases

Engineering Contradiction:
Improveload balancing flexibilityVSAvoidprotocol complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent implements dynamic port numbers in the TCP shim header that can be modified during connection establishment to encode path information. The source port or destination port fields are dynamically assigned values that contain path identification information, allowing flexible path selection while maintaining compatibility with standard TCP processing. This dynamic encoding provides load balancing flexibility without requiring substantial protocol changes.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentEP3944593B1Load balancing a TCP connection across multiple paths
Publication Date: 2024.08.28 NOKIA SOLUTIONS & NETWORKS OY
  • EP3944593B1 patent drawingFigure 1
  • EP3944593B1 patent drawingFigure 2
  • EP3944593B1 patent drawingFigure 3

AI summary

A source of a transmission control protocol (TCP) connection includes a processor to establish the TCP connection based on a TCP source port number and a TCP destination port number associated with a destination. The processor also generates a TCP shim header including the TCP source port number and the TCP destination port number. The processor further generates a plurality of TCP headers including a plurality of proxy port numbers and a shim port number that indicates the TCP shim header. The source also includes a transceiver to transmit a plurality of packets comprising the plurality of TCP headers and the TCP shim header. The destination of the TCP connection includes a processor configured to establish the TCP connection and a transceiver to receive the plurality of packets via the TCP connection.