Virtual Socket Encapsulation for TCP Load Balancing and Failover

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional load-balancing and failover solutions for client/server networks do not effectively distribute traffic among multiple TCP sockets, leading to congestion and packet loss due to unbalanced load and link failures, without addressing the need for thread-safe mechanisms.

Innovation Solution

A virtual socket is constructed by encapsulating multiple TCP sockets, providing a single write and read interface while using thread-safe queues for load balancing and failover, ensuring packets are routed based on socket load and enabling seamless failover in case of hardware failures.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If conventional load-balancing solutions are used to distribute traffic among multiple servers, then server load is balanced, but TCP socket congestion is not addressed leading to packet loss

Engineering Contradiction:
Improvepacket delivery reliabilityVSAvoidsocket management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a virtual socket as an intermediary layer between the application and multiple physical TCP sockets. This virtual socket manages the distribution of packets across multiple underlying TCP sockets, providing load balancing and failover capabilities while maintaining a simple single-socket interface for applications. The virtual socket acts as a mediator that handles the complexity of managing multiple TCP connections internally while presenting a unified interface externally.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple TCP sockets are used for high throughput, then network capacity increases, but load distribution among sockets is not optimized causing congestion

Engineering Contradiction:
Improvenetwork throughputVSAvoidsocket load balance
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The virtual socket implementation dynamically monitors the load status of multiple underlying TCP sockets and adaptively distributes packets to optimize throughput. The system continuously adjusts packet routing based on real-time socket conditions, dynamically selecting the most appropriate socket for each packet to maintain optimal load distribution and prevent congestion while maximizing network throughput.

Inventive Principle:
Principle #15Dynamics

3Reliability

If a single TCP socket is used for simplicity, then implementation is easy, but fault tolerance is reduced due to link failures

Engineering Contradiction:
Improvefault toleranceVSAvoidsocket interface simplicity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The virtual socket implements local quality differentiation by maintaining a simple unified interface at the application level while incorporating multiple specialized TCP sockets at the transport layer. Each underlying TCP socket can be optimized for specific purposes (e.g., different network interfaces, load characteristics), allowing the system to achieve fault tolerance through diversity while presenting a consistent simple interface to applications.

Inventive Principle:
Principle #3Local quality

4Productivity

If load balancing among TCP sockets is implemented, then throughput is optimized, but thread-safety mechanisms are required increasing complexity

Engineering Contradiction:
Improvepacket forwarding throughputVSAvoidthread-safety implementation
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The virtual socket architecture segments the packet handling process into distinct thread-safe components: a main thread manages socket selection and packet distribution, while worker threads handle individual TCP socket operations. Each TCP socket has its dedicated queue and handling thread, isolating potential race conditions and making thread-safety management more tractable while maintaining high throughput through parallel processing.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS12375406B2Virtual socket for load balancing and failover
Publication Date: 2025.07.29 HEWLETT PACKARD ENTERPRISE DEV LP
  • US12375406B2 patent drawing
  • US12375406B2 patent drawing
  • US12375406B2 patent drawing

AI summary

One aspect of the instant application can provide a system and method for balancing load among multiple network sockets established between a local node and a remote node. During operation, the system can encapsulate the multiple network sockets to form a local transport-layer virtual socket comprising a write interface and a read interface. The system can receive, at the write interface of the local transport-layer virtual socket, a packet; select, based on a load-balancing policy, a network socket from the multiple network sockets; and forward the packet to a socket-specific incoming queue associated with the selected network socket to allow the packet to be sent to the read interface of a corresponding remote transport-layer virtual socket via the selected network socket.