Multiplexed transmission method based on QUIC protocol and fountain code

Through the multi-path concurrent transmission method based on the QUIC protocol and fountain code, the performance problems of traditional multi-path transmission protocols in high packet loss rate and high latency scenarios are solved, efficient multi-path data transmission is achieved, data reliability and throughput are ensured, and there is no need to modify the operating system kernel.

CN115766214BActive Publication Date: 2025-10-03SHANGHAI JIAOTONG UNIV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202211424651.4
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-11-14
Publication Date
2025-10-03
Estimated Expiration
2042-11-14

AI Technical Summary

Technical Problem

Traditional multipath transmission protocols have performance issues in scenarios with high packet loss and high latency. MPTCP, in particular, requires modifications to the TCP three-way handshake and kernel upgrades, making deployment difficult and usability poor.

Method used

It adopts a multi-path concurrent transmission method based on the QUIC protocol and fountain code, and implements functions similar to TCP through the application layer, including protocol interaction, path management and load balancing between multiple paths. It uses the QUIC UDP Extension for reliable transmission and congestion control, avoiding kernel modification.

Benefits of technology

It achieves smaller header overhead and lower transmission delay, maximizes the link throughput of the multi-channel transmission system, and ensures the orderliness and reliability of data through the upper-layer coding scheme. At the same time, it does not require modifying the operating system kernel, making it easy to deploy and maintain.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN115766214B_ABST
    Figure CN115766214B_ABST
Patent Text Reader

Abstract

A multi-path concurrent transmission method based on the QUIC protocol and fountain codes, including protocol interaction, path management, load balancing between multiple paths, and reliable transmission without timeout retransmission. By implementing TCP-like functions at the application layer above the QUIC UDP Extension, such as connection-based, reliable transmission, and congestion control, it does not require kernel modifications, thus maintaining the integrity of the QUIC implementation itself.
Need to check novelty before this filing date? Find Prior Art

Claims

1. A multipath concurrent transmission method based on the QUIC protocol and fountain code, wherein: The server has two network interfaces, the client has one network interface, and the data flow between the server and the client is transmitted on two paths. The method is characterized by including the following steps: Step 1. The server obtains the local network interface and certificate, and uses the selected certificate to enable QUIC on each network interface to listen for incoming connection requests. The client uses QUIC to connect to any network interface on the server and verify the legitimacy of the certificate. Step 2. The server and client negotiate to establish a session and a master path for transmitting control information and a path for transmitting data. The server notifies the client of all currently available network interfaces through the master path bound to the session. Step 3. The client sends a QUIC connection request to all available network interfaces. The server recognizes the newly arrived connection request from the same client and joins it to the bound session. Step 4. The Session sender encodes the data to be sent into several data packets and sends them to the Session receiver through multiple network paths; In step 4, the transmitting end encodes the data to be transmitted, and the specific steps are as follows: (4-1) The sender obtains the length of the data to be sent. If it is less than or equal to one MSS, it encapsulates it into a Direct packet and sends it directly using the master path and waits for the Ack response from the Session receiver. Upon receiving the Ack response, it returns a message to the application layer that the data has been sent successfully. (4-2) If the length of the data to be sent is greater than one MSS, the Session sender generates a strictly monotonically increasing batch_id and uses fountain code technology to encode the data to be sent, obtaining a series of data packets and encoding schemes; (4-3) The sender first sends the encoding scheme written into batch_id to the receiver through the master path and waits for the Ack response from the receiver; (4-4) After receiving the response to the encoding scheme, the sender calls the scheduling strategy for each data packet to obtain the optimal path and sends the data packet using that path. If the transmission fails, the session removes the path from the scheduling list and adds the data packet to the buffer to wait for the next scheduled transmission; (4-5) The sender monitors whether an Ack response to this batch of data is received on the master path. If an Ack response is received, the sender exits the sending process and returns a message to the application layer that the data has been sent successfully. Step 5. The Session receiver listens to all packets on the network path and stores them in a buffer for decoding. When decoding is successful, it retrieves the data and submits it to the application layer. Step 6. When the communication between the two ends is completed, the Session reclaims all memory usage and releases the underlying network path.

2. The multipath concurrent transmission method based on the QUIC protocol and fountain code according to claim 1, characterized in that: In step 2, the server and the client negotiate to establish a session. The specific steps are as follows: (2-1) The client and server create a QUIC Stream that provides full-duplex reliable transmission, namely the master path, on the QUIC connection established in step 1, for transmitting control information, and an unreliable QUIC UDP, namely the path, for transmitting large batches of data packets; (2-2) The client sends a handshake message with session_id 0 to the server through the master path. The server processes all handshake messages and generates a strictly monotonically increasing new session_id if it finds one with session_id 0. It writes this new session_id into the response message and returns it to the client. From then on, all control messages and data packets from the client carry this unique session_id as an identifier. (2-3) The client uses the session_id obtained during the connection establishment process to create a new Session instance and bind the master path to all paths. It then sends a Connect control message to the server through the master path. After sending the message, it returns the Session instance to the upper layer. (2-4) After returning the response message, the server asynchronously waits to receive the Connect control message from the master path. Upon receiving the message, it creates a Session instance and returns it to the upper layer. If the timeout occurs, the master path and all paths are released and an error message indicating that the Session establishment failed is returned. After both the client and the server have created the corresponding Session instances, data communication officially begins. (2-5) The server sends an Address packet to the client via the master path, which notifies the client of all currently available network interfaces and serves as a response to the client's Connect control message.

3. The multipath concurrent transmission method based on the QUIC protocol and fountain code according to claim 2, characterized in that: In step 3, the specific steps of server and client path management are as follows: (3-1) After receiving the Address packet, the client extracts the available network interface on the server side and checks the tuple <client interface, server interface> of the path bound in the Session. If it does not exist, it tries to establish the corresponding path. (3-2) The client uses QUIC to connect to the server's corresponding network interface and verify the legitimacy of the server certificate, creating a QUIC Stream and QUIC UDP; (3-3) The client sends a handshake message with the session_id granted by the server through ephemeral path; the server processes all handshake messages, and if it finds a handshake message with session_id not equal to 0, it binds the path to the Session instance corresponding to the session_id and returns a response message through ephemeral path; (3-4) After receiving the response message, the client discards the ephemeral path and binds the path to the Session instance, completing the path addition process. (3 - 5) When sending data packets, both ends check the availability of the path, and the unavailable path is directly removed.

4. The multipath concurrent transmission method based on the QUIC protocol and fountain code according to claim 1, characterized in that: In step 5 described above, the specific steps for the Session receiver to decode data are as follows: (5 - 1) The receiver listens to the master path. When a Direct data packet is received, the data is taken out and directly delivered to the application layer, and an Ack response is sent. (5 - 2) If the receiver receives an encoding scheme, it takes out the batch_id and constructs a decoder according to the encoding scheme, and saves it as <batch_id, decoder>. (5 - 3) The receiver polls all paths and receives encoded data packets. For each encoded data packet, the receiver obtains the corresponding decoder according to the batch_id of the data packet and attempts to decode the data packet. If the amount of data is not enough for decoding, it is saved in the buffer and waits for new data packets to arrive. (5 - 4) After the receiver decodes successfully, it delivers the decoded data to the application layer, reclaims <batch_id, decoder> from the memory, and sends an Ack response for the batch_id through the master path.

5. The multipath concurrent transmission method based on the QUIC protocol and fountain code according to claim 1, characterized in that: In step 6 described above, when the communication between both ends is completed, the Session reclaims all memory occupied and releases the underlying network paths. The specific steps are as follows: (6 - 1) When the communication is completed, one end disconnects the connection, sends a Disconnect data packet through the master path, and releases all paths. (6 - 2) After the peer receives the Disconnect data packet, it removes the corresponding Session from the Session set, also releases all paths, and interrupts all data being transmitted. (6 - 3) Both ends release the master path and return to the application layer.

Citation Information

Patent Citations

  • Method and apparatus for implementing multi-host multi-path secure transmission using QUIC

    CN115244897A

  • Systems and Methods for Quick User Datagram Protocol Internet Connection (QUIC) with Multipath

    US20200120555A1