TCP Splicer for High Availability Control Plane Sessions
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Conventional techniques fail to provide high availability and reliability for control plane elements implementing stateful protocols like TCP, as they are not suitable for real-time operations and are prone to single points of failure, undermining network reliability and availability.
Innovation Solution
Implementing a system with multiple servers running concurrent instances of a control plane application, where agents handle packet replication, forwarding, and flow control, and a leader agent manages packet transmission and failure recovery through 1:N TCP splicing and flow control algorithms, ensuring secure and seamless operations.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If multiple servers run concurrent instances of control plane application, then reliability and availability are improved, but device complexity increases
Solution Approach 1:
A splicer acts as an intermediary component that receives packets from multiple server instances and merges them into a single output stream. This mediator abstracts the complexity of managing multiple concurrent connections, allowing servers to operate independently while the splicer handles the coordination and merging logic, thus improving reliability without proportionally increasing operational complexity
Solution Approach 2:
The patent merges multiple packet streams from different server instances into a single concatenated output stream. By combining redundant connection instances at the packet level rather than requiring complex coordination protocols between servers, the system achieves high availability while keeping the control plane architecture relatively simple
2Reliability
If 1:N TCP splicing is implemented for failure recovery, then failure recovery time is reduced to sub-second, but device complexity increases
Solution Approach 1:
The system pre-establishes multiple concurrent TCP connections to backup servers before failures occur. When a failure is detected, the splicer immediately switches to using the pre-configured backup connections without requiring new connection establishment, enabling sub-second failure recovery. The connections are prepared in advance but remain idle until needed
Solution Approach 2:
The splicer creates duplicate copies of packet streams and distributes them through multiple concurrent TCP connections to different server instances. This copying approach allows immediate failover by simply switching which copy's output is forwarded, avoiding complex real-time coordination during failure recovery
3Reliability
If concurrent connections are spliced into a single high availability session, then availability is enhanced, but flow control difficulty increases
Solution Approach 1:
The splicer serves as a flow control intermediary that receives packets from multiple server instances, each with its own flow control state. It maintains separate flow control tracking for each input connection while presenting a unified flow control interface to the client. This mediator approach allows independent flow control management for each concurrent connection without requiring complex coordinated control across all connections
Solution Approach 2:
The patent segments the flow control management into separate independent modules, one for each concurrent TCP connection. Each connection's flow control is handled independently by its own agent, and the splicer simply concatenates the outputs. This segmentation avoids the need for complex unified flow control algorithms across multiple connections, reducing overall system complexity while maintaining availability
Data Source
AI summary
A plurality of agents is instantiated on a corresponding plurality of servers that are running concurrent instances of a control plane application. A first agent is selected from the plurality of agents to mediate communication between a client and the concurrent instances of the control plane application running on the plurality of servers. The first agent replicates uplink packets received from the client for transmission to the plurality of agents. A first connection is used to convey the uplink packets. The first agent transmits a single copy of redundant downlink packets received from the plurality of agents to the client via the first connection. In some cases, the first connection is a stateful transmission control protocol (TCP) connection and the first agent replicates the uplink packets received in a single TCP stream. The first agent merges the redundant downlink packets into the single TCP stream.


