A method for optimizing TCP network proxy performance
By setting up a dual-proxy TCP transmission optimization system on both the client and server sides and optimizing the TCP protocol using the QUIC/UDP transmission channel, the problems of large propagation delay, limited bandwidth, and high error rate in the network are solved, and efficient network data transmission is achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-05-21
- Publication Date
- 2026-04-03
AI Technical Summary
The existing TCP protocol suffers from problems such as large propagation delay, limited bandwidth, high error rate, and asymmetric link capacity in network communication, resulting in low efficiency of network TCP protocol data interaction and failure to fully utilize network transmission bandwidth.
A dual-proxy TCP transmission optimization system is adopted on both the client and server sides. Through the TCP proxy module, congestion control module, priority management module, QUIC channel module, and QUIC protocol driver module, a QUIC/UDP transmission channel is established to break long TCP sessions into short TCP sessions and perform data transmission on the QUIC channel. The optimized QUIC transmission channel is used for data transmission.
It improves network transmission speed, increases file transfer speed, saves TCP handshake connection time, makes full use of network bandwidth, and improves network transmission efficiency.
Smart Images

Figure CN118524146B_ABST
Abstract
Description
Technical Field
[0001] This invention belongs to the field of computer networks, and specifically relates to a method for optimizing TCP network proxy performance. Background Technology
[0002] With the development of network technology in my country, the demand for network communication and information exchange is increasing daily. Currently, many software applications still widely use the traditional TCP protocol for transmission during network communication, typical examples including FTP, email, web, TELNET, VNC, and RDP. Research shows that when network communication quality is poor, latency is high, packet loss rate is high, and the amount of data transmitted is large, it is difficult to meet the required network speed. In such situations, the actual throughput of the TCP protocol is unlikely to reach the ideal target. Therefore, more effective methods are needed to further improve network transmission rates. Summary of the Invention
[0003] (a) Technical problems to be solved
[0004] The technical problem to be solved by this invention is how to provide a method for optimizing the performance of TCP network proxy, so as to solve the problems of low efficiency of network TCP protocol data interaction performance and failure to fully utilize network transmission bandwidth due to the characteristics of large propagation delay, limited bandwidth, high bit error rate and asymmetric link capacity in the network.
[0005] (II) Technical Solution
[0006] To address the aforementioned technical problems, this invention proposes a method for optimizing TCP network proxy performance. This method is based on a TCP transmission optimization system, which includes client-side and server-side optimization systems. Both the client-side and server-side optimization systems include: a TCP proxy module, a congestion control module, a priority management module, a QUIC channel module, a QUIC protocol driver module, and a monitoring and management module. The method comprises the following steps:
[0007] S1. TCP Service Establishment Process: First, the TCP client's connection establishment request is redirected to the client's TCP proxy module. The client's TCP proxy module, acting as a pseudo-TCP server, directly responds to the client's connection establishment request, establishing a local TCP session between the TCP client and the client's TCP proxy module. Simultaneously, the client's TCP proxy module initiates a QUIC sub-stream establishment request to the client's QUIC channel module, including TCP service configuration information and a connection request. Then, the client's QUIC channel module and the server's QUIC channel module establish a sub-stream channel for this TCP service and send a session connection establishment request to the server's TCP proxy module according to the configuration information. Finally, the server's TCP proxy module, acting as a pseudo-client, initiates a connection establishment request to the real TCP server, establishing a local TCP session between the server's TCP proxy module and the TCP server.
[0008] S2. TCP Data Transmission Process: On the established transmission channel, firstly, through a local TCP session between the TCP client and the client TCP proxy module, the TCP client delivers business data at high speed to the send buffer of the client QUIC channel module. The client QUIC channel module then sends data to the server QUIC channel module through the sub-stream channel. The server TCP proxy module, acting as a client, sends the data received from the QUIC sub-stream by the server QUIC channel module to the TCP server at high speed through the local TCP session.
[0009] S3. TCP Service Disconnection Process: The TCP client sends a local TCP disconnection request to the client TCP proxy module. The client TCP proxy module confirms and disconnects the local TCP connection, and simultaneously initiates a sub-stream disconnection request to the client QUIC channel module. Then, the client QUIC channel module disconnects the QUIC sub-stream and notifies the server TCP proxy module to disconnect the local TCP connection through the server QUIC channel module. Finally, the TCP session between the server TCP proxy module and the TCP server is terminated.
[0010] Furthermore, the client-side optimization system and the server-side optimization system are deployed on Windows and Kylin operating systems.
[0011] Furthermore, during the TCP service establishment process, the client-side QUIC channel module and the server-side QUIC channel module are respectively responsible for maintaining the mapping relationship between the local TCP session and QUIC substream on the client side and the server side, ultimately establishing a high-performance transmission channel that is transparent to the user between the TCP client and the TCP server.
[0012] Furthermore, during TCP data transmission, the client congestion control submodule specifically customizes a transmission rate control strategy based on the channel characteristics of the client and server to achieve high-speed transmission between the client QUIC channel module and the server QUIC channel module.
[0013] Furthermore, during TCP data transmission, the client priority management module prioritizes the transmission of different sub-streams on the QUIC channel based on the characteristics of the different TCP services carried.
[0014] Furthermore, the QUIC-based optimized transmission channel uses a new packet format, accurate RTT measurement, head-of-line blocking-free substream multiplexing, and pluggable congestion control algorithms.
[0015] Furthermore, to optimize TCP services initiated from the client or server, the QUIC channel module of the client or server is responsible for configuring these TCP services, including: assigning corresponding QUIC sub-stream IDs, specifying priorities, mapping sub-streams to locally terminated TCP streams, sub-stream rate control, and buffer management.
[0016] Furthermore, the TCP proxy module is responsible for terminating local TCP services, converting local TCP data into corresponding QUIC sub-stream data, and sending it into the QUIC channel for transmission. At the same time, it receives corresponding sub-stream data from the QUIC channel, converts it into local TCP packets, and sends them to the local TCP service terminal.
[0017] Furthermore, the TCP proxy module supports the following sub-modules: the basic proxy sub-module and the business proxy sub-module. The basic proxy sub-module includes HTTP proxy, SOCKS proxy and TCP proxy, and the business proxy sub-module includes FTP proxy, email proxy, RDP proxy, VNC proxy and TELNET proxy.
[0018] Furthermore, the monitoring and management module is set up in both the client and server sides. Through a front-end and back-end system, it manages and monitors various parameters in the TCP proxy, collects system operating status, including the QUIC protocol, channels, substreams, TCP proxy operating parameters, and the host machine's environment status.
[0019] (III) Beneficial Effects
[0020] This invention proposes a method for optimizing TCP network proxy performance. Compared with existing technologies, the proposed solution establishes a QUIC / UDP transmission channel between the server and client using a dual-proxy approach. The original long TCP session is broken into two short TCP connections, each connected to and terminated at a local end of the QUIC transmission channel. This method effectively solves the problem of low TCP transmission performance in the network. Tests on various file transfers show that this dual-proxy approach significantly improves file transfer speed while also saving considerable time in TCP handshake connections, thus greatly enhancing network transmission efficiency. Attached Figure Description
[0021] Figure 1 This is a diagram of the client-side optimized system of the present invention;
[0022] Figure 2 This is a diagram of the server-side optimization system of the present invention;
[0023] Figure 3 This is a flowchart of the method of the present invention. Detailed Implementation
[0024] To make the objectives, contents, and advantages of the present invention clearer, the specific embodiments of the present invention will be described in further detail below with reference to the accompanying drawings and examples.
[0025] The purpose of this invention is to propose a lightweight network dual-proxy architecture transmission optimization method that can solve the problems of low efficiency in network TCP protocol data interaction caused by large propagation delay, limited bandwidth, high error rate, and asymmetric link capacity in the network, thus failing to fully utilize network transmission bandwidth.
[0026] The present invention proposes a dual-proxy TCP transmission optimization system for clients and servers. This system sets up client optimization systems and server optimization systems on the client and server sides respectively. Through the TCP proxy modules of these two optimization systems, the original TCP connections are terminated on the local networks of both sides respectively. Then, high-capacity, high-speed transmission of business data between the TCP proxy modules is achieved through a QUIC (Fast UDP Internet Connection) channel designed specifically for channel optimization.
[0027] The TCP transmission optimization system mainly includes transmission optimization management functions and transmission optimization proxy functions. Figure 1 and Figure 2These represent the client-side optimization system and the server-side optimization system, respectively, and can be deployed on operating systems such as Windows and Kylin. Both the client-side and server-side optimization systems include: a TCP proxy module, a congestion control module, a priority management module, a QUIC channel module, a QUIC protocol driver module, and a monitoring and management module. The TCP proxy module is used for TCP service proxying between the client and server; the congestion control module improves and adjusts the congestion control algorithm in the network protocol; the priority management module adjusts the service priority between different TCP protocols; the QUIC channel module and the QUIC protocol driver module are mainly for establishing and managing the QUIC / UDP high-speed transmission channel; and the monitoring and management module controls and monitors the entire optimization system and displays the information on the webpage. This invention mainly analyzes and explains the bidirectional proxy technology in the system; other management and optimization technologies are implemented using mainstream front-end and back-end management technologies. The QUIC protocol, short for Quick UDP Internet Connection, is a protocol proposed by Google for multi-path concurrent transmission using UDP. It can quickly establish connections, has an improved congestion control algorithm, and can perform forward redundancy error correction, effectively improving network exchange rates.
[0028] Figure 3 This is the main flowchart of the technical solution of this invention. The TCP connection consists of a client-side optimization system and a server-side optimization system. To improve the connection and transmission speed of both networks, a QUIC / UDP transmission channel is established to implement a dual-proxy mode for the client and server, fully utilizing network bandwidth. For example... Figure 3 The diagram illustrates a basic, complete process for a proxy TCP service. In this diagram, it's assumed that the TCP client on the left wants to access a remote TCP server located on the right. Through the configuration of the transmission optimization system, the TCP client's sending and receiving data will be transmitted via our optimization system through both the client-side TCP proxy module and the server-side TCP proxy module, as detailed below.
[0029] S1. TCP Service Establishment Process: First, the TCP client's connection establishment request is redirected to... Figure 3The client-side TCP proxy module (a local proxy module on the client side) acts as a pseudo-TCP server, directly responding to the client's connection establishment request and establishing a local TCP session between the TCP client and the client-side TCP proxy module. Simultaneously, the client-side TCP proxy module initiates a QUIC sub-stream establishment request to the client-side QUIC channel module, including TCP service configuration information and a connection request. Then, the client-side QUIC channel module and the server-side QUIC channel module establish a sub-stream channel for this TCP service and, based on the configuration information, send a session connection establishment request to the server-side TCP proxy module (a local proxy module on the server side). Finally, the server-side TCP proxy module, acting as a pseudo-client, initiates a connection establishment request to the real TCP server, establishing a local TCP session between the server-side TCP proxy module and the TCP server. During this service establishment process, the client-side QUIC channel module and the server-side QUIC channel module are responsible for maintaining the mapping relationship between the local TCP sessions and QUIC sub-streams on the client and server sides, respectively, ultimately establishing a high-performance transmission channel transparent to the user between the TCP client and the TCP server.
[0030] S2, TCP data transmission process: On the established transmission channel, Figure 3 This illustrates the data transmission process from the TCP client to the TCP server. First, through a local TCP session between the TCP client and its client-side TCP proxy module, the TCP client delivers business data at high speed to the send buffer of the client-side QUIC channel module. The client-side QUIC channel module then sends data to the server-side QUIC channel module via a sub-stream channel. Simultaneously, the client-side congestion control submodule customizes a transmission rate control strategy based on the channel characteristics of both the client and server, enabling high-speed transmission between the client-side and server-side QUIC channel modules. Furthermore, the client-side priority management module prioritizes the transmission of different sub-streams on the QUIC channel based on the characteristics of the different TCP services carried (including data transmission, human-computer interaction, and other TCP services). Finally, the server-side TCP proxy module, acting as the client, sends the data received from the QUIC sub-stream by the server-side QUIC channel module to the TCP server at high speed through the local TCP session. This optimized transmission process breaks the traditional long TCP session between the TCP client and TCP server into two local TCP sessions and an optimized QUIC transmission channel.
[0031] This transmission method offers the following advantages: TCP connections between the TCP client and TCP server terminate at their respective local proxies, enabling fast, bottleneck-free local data transmission while maintaining full compatibility with existing TCP protocol stacks and application interfaces (without impacting existing business systems); employing an optimized transmission channel based on QUIC, utilizing a new packet format, precise RTT measurement, head-of-line blocking-free substream multiplexing, and pluggable congestion control algorithms, it fully utilizes channel resources to achieve high-capacity, high-speed transmission, meeting design requirements.
[0032] S3, TCP service disconnection process: Figure 3 The implementation of the service disconnection process initiated by the TCP client is also given. The TCP client sends a local TCP disconnection request to the client TCP proxy module. The client TCP proxy module confirms and disconnects the local TCP connection, and simultaneously sends a sub-stream disconnection request to the client QUIC channel module. Then, the client QUIC channel module disconnects the QUIC sub-stream and notifies the server TCP proxy module to disconnect the local TCP connection through the server QUIC channel module. Finally, the TCP session between the server TCP proxy module and the TCP server is terminated.
[0033] Figure 1 , Figure 2 It is the client and server of the transmission optimization system.
[0034] The specific functions of each module are described below.
[0035] 1. QUIC Protocol Driver Module: Implements QUIC protocol parsing and data processing based on UDP transmission at the operating system's application layer. QUIC is an application-layer transport protocol based on UDP, proposed by Google in 2012 and widely supported. Compared to TCP, QUIC's main optimizations are: support for pluggable application-layer congestion control algorithms, ensuring flexibility and ease of development; QUIC assigns a unique number to each packet, thus solving the problem of indistinguishable original and lost packets in TCP; the unique number combined with the packet's timestamp field can accurately measure RTT, thereby more accurately predicting channel congestion status; compared to TCP... Reno and QUIC use SACK to acknowledge packets, which can effectively acknowledge multiple packet losses in the next congestion window of the TD high-bandwidth delay product channel, avoiding the need to recover lost packets through timeouts, thus effectively improving throughput. The QUIC protocol supports the creation of multiple independent sub-streams on a single session, and there is no head-of-line congestion problem between sub-streams. Therefore, a single UDP / QUIC channel can be used to support communication of multiple TCP services on the ZG end. The QUIC protocol itself can guarantee the order of data in each sub-stream (the application layer does not need to worry about out-of-order issues). Each sub-stream has a unique sub-stream ID and supports priority transmission of sub-streams, thus providing differentiated services for high real-time interactive services and high-throughput data transmission services.
[0036] 2. QUIC Channel Module: Responsible for channel management between the client and server. It is a distributed management module consisting of client and server modules. Together, they complete the establishment and management of the QUIC channel, as well as the establishment and management of each sub-stream on the channel. To optimize TCP traffic initiated from the client or server, the QUIC channel module on the client or server is responsible for configuring these TCP services, including: assigning corresponding QUIC sub-stream IDs, specifying priorities, mapping sub-streams to locally terminated TCP streams, sub-stream rate control, buffer management, etc.
[0037] 3. TCP Proxy Module: Responsible for terminating local TCP services, converting local TCP data into corresponding QUIC sub-stream data, and sending it into the QUIC channel for transmission. Simultaneously, it receives corresponding sub-stream data from the QUIC channel, converts it into local TCP packets, and sends them to the local TCP service terminal. Specifically, it supports the following sub-modules: a basic proxy sub-module and a service proxy sub-module. The basic proxy sub-module includes HTTP proxy, SOCKS proxy, and TCP proxy. The service proxy sub-module includes FTP proxy, email proxy, RDP proxy, VNC proxy, and TELNET proxy.
[0038] 4. Monitoring and Management Module: This module is set up on both the client and server sides. Through a front-end and back-end system, it manages and monitors various parameters in the TCP proxy, collects system operating status, including the operating parameters of the QUIC protocol, channels, substreams, TCP proxy, etc., as well as the environment status of the host machine.
[0039] Compared with existing technologies, the technical solution proposed in this invention can establish a QUIC / UDP transmission channel between the server and the client by using a dual-proxy method. The original long TCP session is broken into two short TCPs, which are connected to and terminated at the two local ends of the QUIC transmission channel respectively. This method can effectively solve the problem of low TCP transmission performance in the network. After testing on various file transfers, the file transfer rate is greatly improved by using this dual-proxy method, while also saving the time of TCP handshake connection at both ends, thus significantly improving network transmission efficiency.
[0040] The above description is only a preferred embodiment of the present invention. It should be noted that for those skilled in the art, several improvements and modifications can be made without departing from the technical principles of the present invention, and these improvements and modifications should also be considered within the scope of protection of the present invention.
Claims
1. A method for optimizing TCP network proxy performance, characterized in that, This method is based on a TCP transmission optimization system, which includes client-side and server-side optimization systems. Both the client-side and server-side optimization systems include: a TCP proxy module, a congestion control module, a priority management module, a QUIC channel module, a QUIC protocol driver module, and a monitoring and management module. The method includes the following steps: S1. TCP Service Establishment Process: First, the TCP client's connection establishment request is redirected to the client's TCP proxy module. The client's TCP proxy module, acting as a pseudo-TCP server, directly responds to the client's connection establishment request, establishing a local TCP session between the TCP client and the client's TCP proxy module. Simultaneously, the client's TCP proxy module initiates a QUIC sub-stream establishment request to the client's QUIC channel module, including TCP service configuration information and a connection request. Then, the client's QUIC channel module and the server's QUIC channel module establish a sub-stream channel for this TCP service and send a session connection establishment request to the server's TCP proxy module according to the configuration information. Finally, the server's TCP proxy module, acting as a pseudo-client, initiates a connection establishment request to the real TCP server, establishing a local TCP session between the server's TCP proxy module and the TCP server. S2. TCP Data Transmission Process: On the established transmission channel, firstly, through a local TCP session between the TCP client and the client TCP proxy module, the TCP client delivers business data at high speed to the send buffer of the client QUIC channel module. The client QUIC channel module then sends data to the server QUIC channel module through the sub-stream channel. The server TCP proxy module, acting as a client, sends the data received from the QUIC sub-stream by the server QUIC channel module to the TCP server at high speed through the local TCP session. S3. TCP Service Disconnection Process: The TCP client sends a local TCP disconnection request to the client TCP proxy module. The client TCP proxy module confirms and disconnects the local TCP connection, and simultaneously initiates a sub-stream disconnection request to the client QUIC channel module. Then, the client QUIC channel module disconnects the QUIC sub-stream and notifies the server TCP proxy module to disconnect the local TCP connection through the server QUIC channel module. Finally, the TCP session between the server TCP proxy module and the TCP server is terminated.
2. The method for optimizing TCP network proxy performance as described in claim 1, characterized in that, The client-side optimization system and the server-side optimization system are deployed on Windows and Kylin operating systems.
3. The method for optimizing TCP network proxy performance as described in claim 1, characterized in that, During the TCP service establishment process, the client-side QUIC channel module and the server-side QUIC channel module are responsible for maintaining the mapping relationship between the local TCP session and QUIC substream on the client side and the server side, respectively, and finally establishing a high-performance transmission channel that is transparent to the user between the TCP client and the TCP server.
4. The method for optimizing TCP network proxy performance as described in claim 1, characterized in that, During TCP data transmission, the client congestion control submodule customizes a transmission rate control strategy based on the channel characteristics of the client and server to achieve high-speed transmission between the client QUIC channel module and the server QUIC channel module.
5. The method for optimizing TCP network proxy performance as described in claim 1, characterized in that, During TCP data transmission, the client priority management module prioritizes the transmission of different sub-streams on the QUIC channel based on the characteristics of the different TCP services carried.
6. The method for optimizing TCP network proxy performance as described in any one of claims 1-5, characterized in that, The QUIC-based optimized transmission channel uses a new packet format, accurate RTT measurement, head-of-line blocking-free substream multiplexing, and pluggable congestion control algorithms.
7. The method for optimizing TCP network proxy performance as described in any one of claims 1-5, characterized in that, To optimize TCP traffic initiated from the client or server, the QUIC channel module on the client or server is responsible for configuring these TCP traffic, including: assigning corresponding QUIC sub-stream IDs, specifying priorities, mapping sub-streams to locally terminated TCP streams, sub-stream rate control, and buffer management.
8. The method for optimizing TCP network proxy performance as described in any one of claims 1-5, characterized in that, The TCP proxy module is responsible for terminating local TCP services, converting local TCP data into corresponding QUIC sub-stream data, and sending it into the QUIC channel for transmission. At the same time, it receives corresponding sub-stream data from the QUIC channel, converts it into local TCP packets, and sends them to the local TCP service terminal.
9. The method for optimizing TCP network proxy performance as described in claim 8, characterized in that, The TCP proxy module supports the following sub-modules: basic proxy sub-module and business proxy sub-module. The basic proxy sub-module includes HTTP proxy, SOCKS proxy and TCP proxy. The business proxy sub-module includes FTP proxy, email proxy, RDP proxy, VNC proxy and TELNET proxy.
10. The method for optimizing TCP network proxy performance as described in any one of claims 1-5, characterized in that, The monitoring and management module is set up on both the client and server sides. Through a front-end and back-end system, it manages and monitors various parameters in the TCP proxy, collects system operating status, including the QUIC protocol, channels, substreams, TCP proxy operating parameters, and the host machine's environment status.
Citation Information
Patent Citations
TCP protocol double-end agent acceleration system and TCP protocol double-end agent acceleration method in wireless network environment
CN110035112A
Data processing method and electronic equipment
CN114979021A