A transmission protocol method applicable to high-bandwidth delay systems
A new transmission protocol for high-bandwidth delay networks uses a one-message handshake, buffers, and dynamic congestion control to ensure reliable data transfer, addressing the limitations of TCP and UDP in such environments.
Patent Information
- Application Number
- CN202211242609.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-10-11
- Publication Date
- 2025-07-15
- Estimated Expiration
- 2042-10-11
AI Technical Summary
The existing TCP protocol takes a long time to adapt to the available bandwidth changes in high bandwidth in a high bandwidth latency environment and performs poorly. However, the UDP protocol has insufficient reliability and adaptability and cannot meet the reliability requirements of high bandwidth latency networks.
A transmission method based on UDP protocol is adopted to complete the handshake and establish a connection through a message round trip, use the sending buffer and the receiving buffer to transmit data, and adjust the packet transmission rate in real time through the congestion control mechanism to ensure the reliability and sequence of data and adapt to the available bandwidth changes.
It realizes reliable transmission of data in a high-bandwidth delay network, avoids TCP resource overhead and delay, can adapt to network bandwidth changes in real time, and ensures data integrity and orderliness.
Smart Images

Figure CN115633099B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of data transmission, and particularly to a transmission protocol method applicable to a high-bandwidth delay system. Background Art
[0002] Currently, for the transport layer protocols used for file transfer in a network, the commonly used ones are TCP (Transmission Control Protocol) and UDP (User Datagram Protocol).
[0003] TCP is a connection-oriented, reliable, byte-stream-based transport layer communication protocol designed to adapt to a hierarchical protocol architecture that supports multiple network applications. Between pairs of processes in host computers connected to different but interconnected computer communication networks, TCP provides a reliable communication service. TCP can obtain a simple, possibly unreliable datagram service from lower-level protocols. In principle, TCP should be able to operate over a variety of communication systems ranging from hard-wired connections to packet-switched or circuit-switched networks.
[0004] The TCP protocol has been widely used in various data transmissions. However, in some cases, such as in a high-bandwidth delay environment, due to the characteristics of the TCP congestion control algorithm (AIMD) it uses, TCP takes a long time to adapt to changes in the available bandwidth. Moreover, its performance is not satisfactory in the case of relatively severe network congestion. To solve this problem, some modified TCP protocols have emerged, such as BIC TCP, CUBIC TCP, and FAST TCP, etc. However, these protocols can only partially improve this problem.
[0005] UDP is a connectionless transport layer protocol in the OSI (Open System Interconnection) reference model. It is mainly used in transmissions where packet order arrival is not required. The checking and sorting of packet transmission order are completed by the application layer, providing a simple unreliable information transfer service for transactions. UDP packets do not have reliability guarantees, order guarantees, and flow control fields, etc., and the reliability is poor. However, precisely because the control options of the UDP protocol are fewer, the delay is small and the data transmission efficiency is high during the data transmission process.
[0006] Compared with the TCP protocol, the UDP protocol has a smaller transmission cost and a faster speed, but it cannot guarantee its reliability and is not applicable to transmission systems with high reliability requirements. Due to its connectionless nature, it is even less likely to dynamically adjust congestion in real time to adapt to changes in the available bandwidth. Summary of the Invention
[0007] The purpose of the present invention is to provide a transmission protocol method applicable to a high-bandwidth delay system to solve the problems encountered in the above background art.
[0008] To achieve the above object, the technical solution of the present invention is as follows:
[0009] A transmission protocol method applicable to high-bandwidth delay systems. The complete data transmission process includes establishing a connection, data transmission, congestion control, and disconnecting the connection, where:
[0010] Method for establishing a connection: The handshake for establishing a connection can be completed through one message round-trip, and the periodic message handshake replaces the heartbeat mechanism in traditional reliable protocols;
[0011] Method for data transmission: By setting a sending buffer and a receiving buffer, the data in the sending buffer is sent as data packets in sequence number order to the receiving end, and the receiving end places the data into the receiving buffer according to the packet sequence number. The sending buffer releases the space in front of the queue to allow the application layer of the sending end to put in data;
[0012] Method for congestion control: Through a relatively small sending period, and based on the number of ACKs, NAKs, and network delay RTT within the period, comprehensively calculate the number of data packets to be sent in the next sending period to adapt to the current available bandwidth change;
[0013] Method for disconnecting the connection: The sending end sends a disconnection instruction to the receiving end, and the receiving end disconnects the connection after receiving the instruction.
[0014] Specifically, in the above solution, the method for establishing a connection includes the following steps:
[0015] S11. The sending end sends a SYN packet to the receiving end;
[0016] S12. After receiving the SYN packet, the receiving end generates a token based on the sending end address and its own secret key and returns it to the sending end, and returns a response every time it receives a SYN containing the token subsequently;
[0017] S13. After receiving the SYN response, the sending end periodically sends a SYN packet containing the token to the receiving end to maintain the connection;
[0018] S14. The sending end starts transmitting data immediately after receiving the first SYN response, and discards subsequent SYN responses received.
[0019] Specifically, in the above solution, the method for data transmission includes the following steps:
[0020] S21. For the sending end and the receiving end, a sending buffer and a receiving buffer are respectively provided to store the data sent and received;
[0021] S22. The application layer of the sending end puts data into the sending buffer. When the sending buffer is full, putting data is suspended, and when there is free space in the sending buffer, putting data continues;
[0022] S23. The sending - end transport layer extracts data packets from the sending buffer in sequence number order and sends them. These data packets are in the waiting - for - ACK state in the buffer.
[0023] S24. After receiving a data packet, the receiving - end transport layer places it into the receiving buffer according to the packet sequence number and immediately returns an ACK to the sending end.
[0024] S25. After receiving the ACK, the sending end sets the corresponding data packet in the sending buffer to the completed state and determines whether the sending - buffer window should be shifted. Shifting the sending - buffer window can release the space in front of the queue to allow the sending - end application layer to put in data.
[0025] Further, in step S21, the space of the receiving buffer is larger than that of the sending buffer.
[0026] Furthermore, in step S24, since the sending end sends data packets in sequence number order and the receiving end also receives data packets in order, when a packet loss occurs, the receiving end can immediately detect it and send a NAK packet containing the packet sequence number to the sending end; after receiving the NAK packet, the sending end re - sends the data packet according to the sequence number.
[0027] Specifically, in the above - mentioned solution, the congestion - control method includes the following steps:
[0028] S31. Control the transmission rate by adjusting the number of data packets within a sending cycle, where the sending cycle is a time period with a fixed length.
[0029] S32. The sending end sends data packets in order. After receiving the data packets, the receiving end checks whether there are any lost data packets.
[0030] S33. For each data packet received by the receiving end, it sends an ACK packet to the sending end. When the receiving end detects that a data packet is lost, it sends a NAK packet to the sending end.
[0031] S34. At the end of each sending cycle, the sending end counts the number of received NAK packets and comprehensively calculates the number of data packets to be sent in the next sending cycle based on the network delay RTT in the ACK packets, so as to adapt to the change of the current available bandwidth.
[0032] Specifically, in the above - mentioned solution, the disconnection method includes the following steps:
[0033] S41. The sending end sends a SHUTDOWN packet to the receiving end and no longer sends SYN packets.
[0034] S42. After receiving the SHUTDOWN packet, the receiving end returns a response packet and closes the connection.
[0035] S43. After the sender receives the close response packet, it also closes the connection.
[0036] Further, in S43, if the sender does not receive the close response packet within a certain time after sending the SHUTDOWN packet, it is counted as a timeout and the connection is closed.
[0037] Still further, in S43, if the sender does not receive the SYN response packet within a certain time, and the receiver does not receive the SYN packet within a certain time, both are counted as timeouts and the connection is closed.
[0038] Compared with the prior art, the beneficial effects of the present invention are as follows: The present transmission protocol method is a reliable transmission protocol based on the UDP protocol that can be applied to high-bandwidth delay networks. It abandons the resource overhead generated by multiple handshakes and waiting in the TCP protocol, and also avoids the inadaptability of the TCP protocol to high-bandwidth delay networks. By applying the newly proposed congestion control mechanism, the packet sending rate can be automatically adjusted in real time, making full use of the available bandwidth, and it can perfectly adapt to the network environment with uncertain available bandwidth and high bandwidth delay. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] The disclosure of the present invention will be described with reference to the accompanying drawings. It should be understood that the drawings are only for illustrative purposes and are not intended to limit the scope of protection of the present invention. In the drawings, the same reference numerals are used to refer to the same components. Among them:
[0040] Figure 1 is a schematic diagram of the overall process of the present invention;
[0041] Figure 2 is a schematic diagram of the method for establishing a connection in the present invention;
[0042] Figure 3 is a schematic diagram of the method for data transmission in the present invention;
[0043] Figure 4 is a schematic diagram of the method for congestion control in the present invention. DETAILED DESCRIPTION OF THE EMBODIMENTS
[0044] In order to make the technical means, creative features, achieved purposes and effects of the present invention easy to understand, the present invention will be further described in detail below with reference to the accompanying drawings. These drawings are all simplified schematic diagrams, only illustrating the basic structure of the present invention in a schematic manner, so they only show the relevant components of the present invention.
[0045] According to the technical solution of the present invention, those of ordinary skill in the art can propose various interchangeable structural forms and implementation manners without changing the essence of the present invention. Therefore, the following specific embodiments and drawings are only exemplary descriptions of the technical solution of the present invention, and should not be regarded as all of the present invention or as a limitation or restriction on the technical solution of the present invention.
[0046] The technical solution of the present invention will be further described in detail below with reference to the drawings and embodiments.
[0047] As Figures 1 to 4 shown, a transmission protocol method applicable to a high-bandwidth delay system, the complete data transmission process includes connection establishment, data transmission, congestion control, and disconnection, wherein:
[0048] 1. Method for establishing a connection: The handshake for establishing a connection can be completed through one message round-trip, and the periodic message handshake replaces the heartbeat mechanism in traditional reliable protocols. In this solution, the handshake for establishing a connection can be completed through one message round-trip, with less resource overhead. The periodic message handshake replaces the heartbeat mechanism in traditional reliable protocols, and the validity of the connection can be ensured through the token information in the handshake message.
[0049] Specifically, please refer to Figure 2 for the method of establishing a connection, which includes the following steps:
[0050] S11. The sender sends a SYN packet to the receiver;
[0051] S12. After receiving the SYN packet, the receiver generates a token based on the sender's address and its own key and returns it to the sender, and returns a response each time it receives a SYN containing the token;
[0052] S13. After receiving the SYN response, the sender periodically sends a SYN packet containing the token to the receiver to maintain the connection;
[0053] S14. The sender starts transmitting data immediately after receiving the first SYN response, and discards all subsequent SYN responses received.
[0054] 2. Method for data transmission: By setting a sending buffer and a receiving buffer, the data in the sending buffer is sent as data packets in sequence number order to the receiver, and the receiver places the packets into the receiving buffer according to the packet sequence number. The sending buffer releases the space in front of the queue to allow the application layer of the sender to put in data.
[0055] Specifically, please refer to Figure 3 for the method of data transmission, which includes the following steps:
[0056] S21. For the sender and the receiver, a sending buffer and a receiving buffer are respectively provided to store the data sent and received. Further, the space of the receiving buffer is larger than that of the sending buffer. Generally, the space size of the receiving buffer is twice that of the sending buffer, so that it has sufficient space to transfer data.
[0057] S22. The application layer of the sender puts data into the sending buffer. When the sending buffer is full, putting data is suspended and continues when there is free space in the sending buffer.
[0058] S23. The transport layer of the sender extracts data packets from the sending buffer in sequence number order and sends them. These data packets are in a waiting-for-acknowledgment state in the sending buffer.
[0059] S24. After receiving a data packet, the transport layer of the receiver puts it into the receiving buffer according to the packet sequence number and immediately returns an ACK to the sender.
[0060] S25. After receiving the ACK, the sender sets the corresponding data packet in the sending buffer to the completed state and determines whether the sending buffer window moves backward. Moving the sending buffer window backward can release the space in front of the queue to allow the application layer of the sender to put data.
[0061] Furthermore, in step S24, since the sender sends data packets in sequence number order and the receiver also receives data packets in sequence, when a packet loss occurs, the receiver can immediately detect it and send a NAK packet containing the packet sequence number to the sender. After receiving the NAK packet, the sender re-sends the data packet according to the sequence number.
[0062] 3. Congestion control method: By means of a relatively small sending period, and based on the number of ACKs, the number of NAKs, and the network delay RTT within the period, comprehensively calculate the number of data packets to be sent in the next sending period, so as to adapt to the change of the current available bandwidth.
[0063] Specifically, please refer to Figure 4 , the congestion control method includes the following steps:
[0064] S31. Control the transmission rate by adjusting the number of data packets within a sending period, where the sending period is a time period with a fixed length.
[0065] S32. The sender sends data packets in sequence. After receiving the data packets, the receiver checks whether there are any lost data packets.
[0066] S33. For each data packet received by the receiver, it sends an ACK packet to the sender. When the receiver detects that a data packet is lost, it sends a NAK packet to the sender.
[0067] S34. At the end of each transmission cycle, the sender counts the number of received NAK packets, and comprehensively calculates the number of data packets to be sent in the next transmission cycle based on the network latency RTT (Round Trip Time) in the ACK packet, so as to adapt to the change of the current available bandwidth.
[0068] Since the transmission cycle is a fixed small value, the sender can adjust the number of data packets sent within the transmission cycle to adapt to the change of the available bandwidth in real time.
[0069] Combined with Figure 4 It can be seen that a total of i + 1 data packets are sent within the transmission cycle N. The number of data packets is determined at the end of the previous transmission cycle. The ACK contains the data packet sequence number, so the last ACK sequence number is also i + 1. Briefly speaking, the calculation method of the number of data packets in the next transmission cycle is as follows: receiving a NAK packet reduces the number of data packets by 1 / 16, thereby reducing the transmission rate; all successful transmissions increase the number of data packets by 1 / 8, thereby increasing the transmission rate.
[0070] 4. Method for disconnecting: The sender sends a disconnection instruction to the receiver, and the receiver disconnects after receiving the instruction.
[0071] Specifically, in the above solution, the method for disconnecting includes the following steps:
[0072] S41. The sender sends a SHUTDOWN packet to the receiver and no longer sends SYN packets;
[0073] S42. After receiving the SHUTDOWN packet, the receiver returns an acknowledgment packet and closes the connection;
[0074] S43. After receiving the close acknowledgment packet, the sender also closes the connection.
[0075] Further, in S43, if the sender does not receive the close acknowledgment packet within a certain time after sending the SHUTDOWN packet, it is counted as a timeout and the connection is closed.
[0076] Furthermore, in S43, if the sender does not receive the SYN acknowledgment packet within a certain time, and the receiver does not receive the SYN packet within a certain time, both are counted as timeouts and the connection is closed.
[0077] This transmission protocol method proposes a reliable transmission protocol applicable to high-bandwidth delay networks based on the UDP transmission protocol. This protocol can ensure the integrity and orderliness of information, guarantee the reliable sending and receiving of data, and can adaptively adjust congestion control in real time according to the available network bandwidth.
[0078] The present invention proposes a reliable transmission protocol based on the UDP protocol, which is applicable to high-bandwidth and high-latency networks. It abandons the resource overhead caused by multiple handshakes and waiting in the TCP protocol and also avoids the inadaptability of the TCP protocol to high-bandwidth and high-latency networks. By using a brand-new efficient handshake, response mechanism, and packet sorting mechanism, the reliability of data transmission is ensured. With the newly proposed congestion control mechanism, the packet sending rate can be automatically adjusted in real time, making full use of the available bandwidth and being able to perfectly adapt to the network environment with uncertain available bandwidth and high bandwidth latency.
[0079] The specific embodiments described above further elaborate on the purpose, technical solution, and beneficial effects of the present invention. It should be understood that the above are only specific embodiments of the present invention and are not used to limit the protection scope of the present invention. Any modifications, equivalent replacements, improvements, etc. made within the spirit and principle of the present invention shall be included within the protection scope of the present invention.
Claims
1. A transmission protocol method applicable to high-bandwidth delay systems, characterized in that, The transmission protocol method applicable to high-bandwidth delay systems is based on the UDP protocol. The complete data transmission process includes connection establishment, data transmission, congestion control, and disconnection, where: Method for connection establishment: The handshake for connection establishment can be completed through one message round-trip, and periodic message handshakes replace the heartbeat mechanism in traditional reliable protocols; Method for data transmission: By setting a sending buffer and a receiving buffer, the data in the sending buffer is sent as data packets in sequence number order to the receiving end. The receiving end places the data packets into the receiving buffer according to the packet sequence numbers, and the sending buffer releases the front space to allow the application layer of the sending end to put in data; Method for congestion control: Through a relatively small sending period, and based on the number of ACKs, NAKs, and network delay RTT within the period, comprehensively calculate the number of data packets to be sent in the next sending period to adapt to the current available bandwidth changes; Method for disconnection: The sending end sends a disconnection instruction to the receiving end, and the receiving end disconnects after receiving the instruction; The method for connection establishment includes the following steps: S11. The sending end sends a SYN packet to the receiving end; S12. After receiving the SYN packet, the receiving end generates a token based on the sending end address and its own secret key and returns it to the sending end. Subsequently, each time it receives a SYN containing the token, it returns a response; S13. After receiving the SYN response, the sending end periodically sends a SYN packet containing the token to the receiving end to maintain the connection; S14. The sending end starts transmitting data immediately after receiving the first SYN response, and discards subsequent received SYN responses.
2. The transmission protocol method applicable to a high-bandwidth delay system according to claim 1, wherein The method for data transmission includes the following steps: S21. For both the sending end and the receiving end, a sending buffer and a receiving buffer are respectively provided to store the data sent and received; S22. The application layer of the sending end puts data into the sending buffer. When the sending buffer is full, putting data is paused, and continues when there is free space in the sending buffer; S23. The transport layer of the sending end extracts data packets from the sending buffer in sequence number order and sends them. The data packets in the buffer are in a state waiting for an acknowledgment; S24. After receiving the data packets, the transport layer of the receiving end places them into the receiving buffer according to the packet sequence numbers and immediately returns an ACK to the sending end; S25. After receiving the ACK, the sending end sets the corresponding data packets in the sending buffer to the completed state and determines whether the sending buffer window moves backward. The backward movement of the sending buffer window can release the front space to allow the application layer of the sending end to put in data.
3. The transmission protocol method applicable to a high-bandwidth delay system according to claim 2, characterized in that: In step S21, the space of the receiving buffer is larger than that of the sending buffer.
4. A transmission protocol method applicable to a high-bandwidth delay system according to claim 2, characterized in that: In step S24, since the sending end sends data packets in sequence number order and the receiving end also receives data packets in sequence, when a packet loss occurs, the receiving end can immediately detect it and send a NAK packet containing the packet sequence number to the sending end; after receiving the NAK packet, the sending end retransmits the data packets according to the sequence numbers.
5. A transmission protocol method applicable to a high-bandwidth delay system according to claim 1, characterized in that, The method for congestion control includes the following steps: S31. Control the transmission rate by adjusting the number of data packets within a sending period, where the sending period is a time period with a fixed length; S32. The sending end sends out data packets in sequence, and after receiving the data packets, the receiving end checks whether there is any packet loss. S33. For each data packet received by the receiving end, it sends an ACK packet to the sending end. When the receiving end detects that a data packet is lost, it sends a NAK packet to the sending end. S34. At the end of each sending cycle, the sending end counts the number of NAK packets received, and comprehensively calculates the number of data packets to be sent in the next sending cycle based on the network delay RTT in the ACK packet, so as to adapt to the change of the current available bandwidth.
6. A transmission protocol method applicable to a high-bandwidth delay system according to claim 1, characterized in that, The method for disconnecting the connection includes the following steps: S41. The sending end sends a SHUTDOWN packet to the receiving end and no longer sends SYN packets. S42. After receiving the SHUTDOWN packet, the receiving end returns an acknowledgment packet and closes the connection. S43. After receiving the close acknowledgment packet, the sending end also closes the connection.
7. A transmission protocol method applicable to a high-bandwidth delay system according to claim 6, characterized in that In S43, if the sending end does not receive the close acknowledgment packet within a certain time after sending the SHUTDOWN packet, it is counted as a timeout and the connection is closed.
8. A transmission protocol method applicable to a high-bandwidth delay system according to claim 6, characterized in that, In S43, if the sending end does not receive the SYN acknowledgment packet within a certain time, or the receiving end does not receive the SYN packet within a certain time, both are counted as timeouts and the connection is closed.
Citation Information
Patent Citations
Video network transmission control method and system
CN106210924A