Proxy Server Data Transmission via Direct Backend Routing
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Load balancing in application-level proxy servers leads to excessive network bandwidth and CPU resource consumption due to repeated packet copying and context switching processes, which negatively impact server performance.
Innovation Solution
The proposed solution involves modifying the request packet to include identification information of the client-proxy server connection, allowing the backend server to directly send responses to the client without forwarding through the proxy server, thereby reducing network bandwidth and CPU resource consumption by eliminating unnecessary packet copying and context switching.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If load balancing of application-level proxy is implemented, then compatibility of existing network and complex protocol processing capability are improved, but server performance and network bandwidth capability deteriorate due to repeated packet copying and context switching
Solution Approach 1:
The patent segments the data transmission path into two parts: control plane traffic still goes through the proxy server for load balancing decisions, while data plane traffic is directly routed between clients and backend servers using BGP routing. This separation allows the proxy to maintain protocol processing capability without repeatedly copying data packets, thus improving server performance while preserving network compatibility.
Solution Approach 2:
The patent introduces BGP routing as an intermediary mechanism to enable direct peer-to-peer communication between clients and backend servers. The BGP routing system acts as a mediator that establishes direct paths, eliminating the need for the proxy server to forward data packets, thereby reducing context switching and packet copying while maintaining the proxy's load balancing functionality.
2Reliability
If packet copying is performed three times in load balancing process, then protocol processing completeness is improved, but network card performance and network bandwidth are consumed excessively
Solution Approach 1:
The patent extracts the data forwarding function from the proxy server by implementing direct client-to-backend-server routing through BGP. This removes the unnecessary packet copying steps (client→proxy, proxy→backend, backend→proxy, proxy→client) and replaces them with a single direct path (client→backend), significantly reducing network bandwidth consumption while maintaining complete protocol processing through the control plane.
3Adaptability or versatility
If context switching between kernel layer and application layer is performed, then packet processing flexibility is improved, but CPU resources are consumed excessively due to inter-memory copying
Solution Approach 1:
The patent segments processing into control plane operations (performed in application layer with context switching for flexibility) and data plane operations (performed directly in kernel layer through BGP routing). This segmentation allows the system to maintain packet processing flexibility through controlled context switching only when necessary for load balancing decisions, while avoiding repeated context switching during actual data transmission, thus reducing CPU resource consumption.
Data Source
AI summary
A data transmission method includes: receiving a request packet sent by a client through a first TCP connection established with the client; selecting a backend server based on the request packet, and establishing a second TCP connection with the selected backend server; and enabling identification information of the first TCP connection to be included in the request packet, and sending the request packet to the backend server through the second TCP connection to allow the backend server to directly feed back a generated response packet to the client based on the identification information of the first TCP connection, where the identification information of the first TCP connection includes a client address.


