TCP Shim Header for Multi-Path Load Balancing
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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.
2Productivity
If TCP connections are established over multiple paths, then network resource utilization improves, but middlebox interference increases making debugging difficult
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.
3Adaptability or versatility
If dynamic port numbers are used in the TCP shim header, then load balancing flexibility improves, but protocol complexity increases
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.
Data Source
Figure 1
Figure 2
Figure 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.