Data transmission method, device and system for dense network

By adopting UDP tunnel packaging technology and ARQ feedback mechanism in dense networks and combining link detection packets for adaptive scheduling, the adaptability and performance problems of heterogeneous network fusion methods in the existing technology are solved, and efficient and reliable data transmission is achieved.

CN119583018APending Publication Date: 2025-03-07HUAZHONG UNIV OF SCI & TECH
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411749410.6
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-02
Publication Date
2025-03-07

AI Technical Summary

Technical Problem

The existing heterogeneous network fusion methods have problems such as low adaptability and degradation of data transmission performance in ensuring reliability, especially when the network states of multiple paths are inconsistent in high-speed network environments.

Method used

UDP tunnel packaging technology is used to encapsulate each IP packet to be sent, and the loss judgment and retransmission are performed through the ARQ feedback frame, and adaptive scheduling is performed in combination with the link detection packet to ensure efficient data transmission in dense networks.

Benefits of technology

It realizes dense network data transmission with strong adaptability and high transmission rate while ensuring reliability, avoids the problem of burst packet loss by MPTCP under high-speed networks, and improves the performance and reliability of data transmission.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119583018A_ABST
    Figure CN119583018A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method, device and system for a dense network, and belongs to the technical field of communication. The method comprises the following steps: packaging each IP data packet to be sent by adopting a UDP tunnel packaging technology to obtain UDP tunnel packaging data; and packaging each IP link into an IP tunnel based on the UDP through the operation, and packaging an IP data packet to be sent as a load of a UDP packet into an LLC frame to be transmitted in the IP tunnel. And the LLC frame is filled with the serial number of the UDP tunnel encapsulation data, the serial number of the dense network link for transmission and the retransmission mark, so that a receiving end can conveniently realize parallel transmission and ordered submission in the dense network, the adaptability is relatively high, and the transmission rate is relatively high. On this basis, a retransmission mechanism based on an ARQ feedback frame is designed to ensure reliability. On the basis, data transmission of the dense network, which is relatively high in adaptability and relatively high in transmission rate, can be realized on the premise of ensuring the reliability.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention belongs to the field of communication technology, and more specifically, relates to a data transmission method, device and system for a dense network. Background Art

[0002] In recent years, with the continuous advancement of communication technology and the continuous development of the Internet environment, people's requirements for network bandwidth and data traffic have continued to increase, and the requirements for network quality and reliability have become increasingly stringent. Current network devices usually have more than one network communication interface, but users can only choose one mode to access the Internet at the same time. If multiple network interfaces are used in parallel at the same time, the network bandwidth and network stability will be improved. Wireless links are susceptible to interference from distance, noise, etc., and transmission instability is more serious than wired links. If the heterogeneity of each link in a dense network can be used to integrate heterogeneous networks, the reliability of signal transmission in dense networks will be improved.

[0003] However, the existing heterogeneous network fusion method uses UDP and MPTCP dual tunnel solutions to implement UDP and TCP multi-link transmission technology. Managing MPTCP and UDP tunnels requires more complex configuration and maintenance, and requires both ends to support MPTCP. Otherwise, only traditional TCP can be used to transmit data services, so the adaptability is not high. In addition, in a high-speed network environment, if the network status of multiple paths is inconsistent, there will be a large number of burst packet losses in MPTCP data transmission, and the performance of parallel data transmission will drop sharply. Summary of the invention

[0004] In view of the above defects or improvement needs of the prior art, the present invention provides a data transmission method, device and system for a dense network, the purpose of which is to achieve data transmission in a dense network with strong adaptability and high transmission rate while ensuring reliability.

[0005] In order to achieve the above object, in a first aspect, the present invention provides a data transmission method in a dense network, which is used at a sending end and includes:

[0006] The UDP tunnel encapsulation technology is used to encapsulate each IP data packet to be sent to obtain corresponding UDP tunnel encapsulation data; wherein the UDP tunnel encapsulation data includes: an IP header, a UDP header, an LLC frame and an IP data packet;

[0007] Filling the LLC frame in each UDP tunnel encapsulated data so that the LLC frame includes the sequence number of the UDP tunnel encapsulated data, the sequence number of the dense network link transmitting the UDP tunnel encapsulated data, and a retransmission flag indicating whether the UDP tunnel encapsulated data is retransmission data, and sending it to the receiving end;

[0008] After the sending end receives the ARQ feedback frame fed back by the receiving end, it determines the loss of the UDP tunnel encapsulated data based on the ARQ feedback frame. If there is a loss, it updates the link sequence number and retransmission flag in the lost UDP tunnel encapsulated data, and retransmits the lost UDP tunnel encapsulated data.

[0009] The sequence number of the i-th non-retransmitted UDP tunnel encapsulated data sent is i; i is a positive integer; the ARQ feedback frame includes: the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end; each UDP tunnel encapsulated data to be received in the receiving window is arranged in the order of its sequence number; the above-mentioned judgment on the loss status of the UDP tunnel encapsulated data based on the ARQ feedback frame includes:

[0010] Obtaining the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end from the ARQ feedback frame;

[0011] For each UDP tunnel encapsulation data D that has not been received uc , get the link number N carried in it L , and obtain the receiver's link number N from the ARQ feedback frame L The UDP tunnel encapsulated data D finally received by the link under c , compare D uc With D c If the former is smaller than the latter, then D uc has been lost; if the former is greater than the latter, then D uc Transmitting, not lost yet.

[0012] More preferably, when D uc The serial number is greater than D c The serial number of D uc If the transmission time of D is greater than the first preset time, retransmit D uc .

[0013] Further preferably, the retransmitting the lost UDP tunnel encapsulated data comprises: retransmitting the lost UDP tunnel encapsulated data on each link of the dense network to further ensure reliability.

[0014] Further preferably, the LLC frame further includes: a flow number for identifying a service type of a corresponding IP data packet, and a node number for identifying sending user information of the corresponding IP data packet.

[0015] Further preferably, the above-mentioned dense network data transmission method further includes: constructing a link detection packet for each link at every preset detection period, and sending each link detection packet while sending the UDP tunnel encapsulated data; wherein the link detection packet includes: the sending time of the link detection packet, the total sending amount and the total receiving amount of the corresponding link in the detection period of sending the link detection packet;

[0016] When receiving a link detection packet of any link returned by the receiving end, the link detection packet is parsed;

[0017] When the total amount of link transmission or reception carried in the link detection packet is 0, the link is determined to be failed, and the packet transmission rate of the link is set to 0;

[0018] When the total link transmission amount or the total link reception amount carried in the link detection packet is not 0, the ratio of the total reception amount carried in the link detection packet to the delay of the link is calculated as the receiving throughput of the receiving end receiving data through the link, and the packet transmission rate of the link is set to the data packet transmission rate corresponding to the throughput interval where the receiving throughput rate is located;

[0019] The link delay is the difference between the time when the link detection packet is received by the receiving end and the sending time carried in the link detection packet;

[0020] The throughput interval [0, R] of the link is divided into multiple throughput sub-intervals; each throughput sub-interval corresponds to a data packet sending rate, and the throughput sub-interval with a larger throughput value corresponds to a larger data packet sending rate; R is the theoretical throughput upper limit of the link.

[0021] In a second aspect, the present invention provides a transmitting end, comprising: a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the data transmission method for a dense network provided in the first aspect of the present invention is executed.

[0022] In a third aspect, the present invention provides a dense network data transmission method, for a receiving end, comprising:

[0023] Each time a UDP tunnel encapsulated data D is received from the sending end provided by the second aspect of the present invention, c ', according to D c 'The sequence number j caches it to the mod(j,M)th subspace in the receiving cache queue, and executes D c 'Submit to the upper layer protocol stack operation, and according to D c 'The retransmission flag in the receiver updates the link number N L 'The UDP tunnel encapsulated data finally received by the link below;

[0024] Among them, N L 'For D c 'The link sequence number carried in it; the data to be cached at the mod(r,M)th subspace in the receive cache queue is the UDP tunnel encapsulated data with sequence number r that the receiving end should receive; the mod(r,M)th subspace is located before the mod(r+1,M)th subspace; r is a positive integer; M is the total number of subspaces in the receive cache queue;

[0025] At every second preset time, a current ARQ feedback frame is constructed and fed back to the transmitting end; the ARQ feedback frame includes: the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end;

[0026] Among them, the receiving window is a sliding window that slides on the receiving cache queue; when the UDP tunnel encapsulated data is received for the first time, the starting position of the receiving window is located at the first subspace of the receiving cache queue; each time a UDP tunnel encapsulated data is submitted, the receiving window slides backward by a subspace length, and ensures that the received UDP tunnel encapsulated data is submitted to the upper layer protocol stack in the order of its sequence number.

[0027] More preferably, the above D c 'The operations submitted to the upper protocol stack include:

[0028] S1, let k = 1;

[0029] S2. Determine whether there is UDP tunnel encapsulated data at the kth position of the current receiving window. If so, submit it to the upper layer protocol stack, set k=k+1, and repeat S2; otherwise, obtain the UDP tunnel encapsulated data D that should be received at the kth position of the current receiving window. sc 'Serial number idx, transfer to S3;

[0030] S3: Determine whether there is any uncommitted UDP tunnel encapsulated data in the current receiving window. If so, go to S4; otherwise, move the starting position of the current receiving window to D sc 'Location, go to S5;

[0031] S4. Get the next unsubmitted UDP tunnel encapsulation data D in the current receiving window us ', judge D us 'Whether the transmission time is greater than the third preset time, if so, determine whether idx to D us All UDP tunnel encapsulated data between the sequence numbers of ' are lost, and the starting position of the current receive window is moved to D uc 'Location, and go to S1; otherwise, go to S5;

[0032] S5. End submission D c 'operation.

[0033] Further preferably, the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end is represented by the sequence number N s 、N e , and confirmation sequence to indicate;

[0034] Among them, N s and N e They are respectively the first and last UDP tunnel encapsulated data to be received in the receiving window; the length of the confirmation sequence and the receiving window are both L, and the lth value therein indicates whether the lth UDP tunnel encapsulated data in the receiving window has been received; l = 1, 2, ..., L, where L is a positive integer.

[0035] Further preferably, the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end is represented by the sequence number N s '、N e ', and confirm the sequence to indicate;

[0036] Among them, N s ' is the sequence number of the first UDP tunnel encapsulated data that has not been received in the receiving window; N e ' is N ec +1;N ec The sequence number of the last UDP tunnel encapsulated data received in the receiving window;

[0037] The length of the confirmation sequence and the receiving window are both L, and the lth value therein indicates whether the lth UDP tunnel encapsulated data in the receiving window has been received; l = 1, 2, ..., L, where L is a positive integer.

[0038] Further preferably, the above-mentioned c 'The retransmission flag in the receiver updates the link number N L The UDP tunnel encapsulated data finally received by the link under ' includes:

[0039] According to D c 'The retransmission flag in D c 'Whether it is retransmission data;

[0040] When D c 'When retransmitting data, obtain the current receiving end at link number N L 'The last received UDP tunnel encapsulated data D of the link under c ”, compare D c 'With D c"If the former is greater than the latter, the receiving end will be in link sequence number N L 'The last received UDP tunnel encapsulated data of the link under is updated to D c '; If the former is less than the latter, the link number N of the receiving end is not updated L 'The UDP tunnel encapsulated data finally received by the link below;

[0041] When N c 'If it is not retransmission data, the receiving end will be in link number N L 'The last received UDP tunnel encapsulated data of the link under is updated to D c '.

[0042] Further preferably, the data transmission method of the dense network further comprises: when receiving the link detection packets of each link sent by the sending end, obtaining the current receiving total amount of each link, updating the link detection packets of the corresponding link, and feeding back the updated link detection packets to the sending end;

[0043] The link detection packet includes: the sending time of the link detection packet, and the total sending amount and the total receiving amount of the corresponding link in the detection period corresponding to the sending of the link detection packet.

[0044] In a fourth aspect, the present invention provides a receiving end, comprising: a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the data transmission method for a dense network provided in the third aspect of the present invention is executed.

[0045] In a fifth aspect, the present invention provides a data transmission system for a dense network, comprising the transmitting end provided by the second aspect of the present invention and the receiving end provided by the fourth aspect.

[0046] In general, the above technical solutions conceived by the present invention can achieve the following beneficial effects:

[0047] 1. The present invention provides a data transmission method for a dense network at a transmitting end, which uses UDP tunnel encapsulation technology to encapsulate each IP data packet to be sent, and obtains UDP tunnel encapsulation data including an IP header, a UDP header, an LLC frame and an IP data packet; through this operation, each IP link is encapsulated into an IP tunnel based on UDP, and the IP data packet to be sent is used as the payload of the UDP packet, encapsulated into an LLC frame for transmission in the IP tunnel. The LLC frame is filled with the sequence number of the UDP tunnel encapsulation data, the sequence number of the dense network link that transmits the UDP tunnel encapsulation data, and a retransmission flag indicating whether the UDP tunnel encapsulation data is retransmission data, so as to facilitate the receiving end to realize parallel transmission and orderly submission in the dense network; through the above operation, the LLC logical link control and IP tunnel data transmission functions are integrated, avoiding the use of UDP and MPTCP dual tunnel solutions to realize UDP and TCP multi-link transmission, and only transmitting on the UDP link, without requiring both ends to support MPTCP, with strong adaptability, and also avoiding a large number of burst packet losses in MPTCP data transmission when the network status of multiple paths is inconsistent in a high-speed network environment, and the transmission rate is high. On this basis, in order to ensure reliability, a retransmission mechanism based on ARQ feedback frames is designed. The ARQ feedback frames carry the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end. By analyzing the ARQ feedback frames, it can be determined whether there is data loss, so that the lost data is retransmitted. Based on this, the present invention can realize data transmission in a dense network with strong adaptability and high transmission rate under the premise of ensuring reliability.

[0048] 2. The data transmission method for dense networks at the sending end provided by the present invention adopts UDP tunnel encapsulation technology to encapsulate each IP data packet to be sent. By encapsulating each IP link into an IP tunnel based on UDP, the IP tunnel based on UDP can run on a unidirectional link. As long as other links support reverse transmission, the system can support full-duplex operation, which greatly expands the application scenarios of unidirectional links. At the same time, the IP tunnel based on UDP is easier to implement than the tunnel based on TCP, and the throughput of each link will not be affected by congestion control and the reduction of the sending rate like the MPTCP protocol, and the useful bandwidth of each link can be more fully utilized to obtain a larger aggregate throughput. In addition, the ARQ feedback message of the IP tunnel based on UDP is more efficient than the confirmation message of TCP, and the link detection frame and the ARQ feedback frame can be transmitted simultaneously on multiple UDP tunnels to reduce the packet loss rate.

[0049] 3. Furthermore, the data transmission method for a dense network at the sending end provided by the present invention takes into account that in the existing UDP over multi-IP tunnel transmission technology, a fixed bandwidth is used to allocate traffic to different links. When the link quality changes dynamically, the traffic allocation cannot be adaptively adjusted, or a large number of data packets will be retransmitted and bandwidth resources will be wasted. In order to solve the limitations of the traditional UDP over multi-IP in allocating data service data according to a fixed bandwidth, the present invention implements link scheduling based on the information adaptively of the link detection packet sent by the sending end and the link detection packet fed back by the receiving end. For each link detection, both parties will exchange the total amount of transmission and reception of the link in the detection cycle corresponding to the sending of the link detection packet by the local end, as well as the link delay, to determine the link on and off and determine the current data packet sending rate of the link, further improving the data transmission performance.

[0050] 4. The present invention provides a data transmission method for a dense network at a receiving end. When receiving UDP tunnel encapsulated data sent by a sending end, based on the data sequence number carried by the LLC frame in the UDP tunnel encapsulated data, it is cached at a corresponding position through a receiving cache queue to ensure the sequential caching of each data, and combined with the receiving window, the received UDP tunnel encapsulated data is submitted to the upper layer protocol stack in the order of its sequence number. The whole process does not need to perform a packet loss judgment algorithm based on the sub-connection sequence number, but only needs to be performed based on the data sequence number carried by the LLC frame in the UDP tunnel encapsulated data, which greatly reduces the complexity.

[0051] 5. Furthermore, the data transmission method for a dense network at the receiving end provided by the present invention, while ensuring that the received UDP tunnel encapsulated data is submitted to the upper protocol stack in the order of its sequence number, in order to prevent the loss of UDP tunnel encapsulated data, resulting in a situation of waiting, further determines whether there is a loss of UDP tunnel encapsulated data during the submission process, thereby further improving the efficiency of data transmission.

[0052] 6. Furthermore, in the data transmission method for a dense network at a receiving end provided by the present invention, the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end is obtained by using the sequence number N s 、N e , and confirmation sequence, or by sequence number N s '、N e ', and confirmation sequence to further reduce transmission overhead.

[0053] 7. Furthermore, in the data transmission method for a dense network of a receiving end provided by the present invention, when constructing an ARQ feedback frame, the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link is updated according to the transmission status of the currently received UDP tunnel encapsulated data. Specifically, when the currently received UDP tunnel encapsulated data is not retransmission data, the sequence number of the UDP tunnel encapsulated data last received by the receiving end in the corresponding link is directly updated to the sequence number of the current data; when it is retransmission data, it is further determined according to its data sequence number whether it belongs to data lost before or after the UDP tunnel encapsulated data last received in the corresponding link. If it is lost before, it is not updated; if it is lost after, it is updated. According to the above operation, the accuracy of the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link is guaranteed, so that the data loss judgment of the sending end according to the ARQ feedback frame is more accurate, thereby further improving the reliability. BRIEF DESCRIPTION OF THE DRAWINGS

[0054] Figure 1 A schematic diagram of IP data packet encapsulation and data packet encapsulation forms at each stage of the transmission process provided by Embodiment 2 of the present invention;

[0055] Figure 2 A schematic diagram of an LLC frame format provided in an embodiment of the present invention;

[0056] Figure 3 A schematic diagram of an ARQ feedback frame format provided in Embodiment 4 of the present invention;

[0057] Figure 4 A flow chart of a retransmission mechanism provided in Embodiment 5 of the present invention;

[0058] Figure 5 A schematic diagram of a process of requesting retransmission and sorting and submitting received UDP tunnel encapsulated data provided by a receiving end in Embodiment 6 of the present invention;

[0059] Figure 6 A schematic diagram of the link detection packet structure provided in Example 7 of the present invention. DETAILED DESCRIPTION

[0060] In order to make the purpose, technical solutions and advantages of the present invention more clearly understood, the present invention is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present invention and are not intended to limit the present invention. In addition, the technical features involved in the various embodiments of the present invention described below can be combined with each other as long as they do not conflict with each other.

[0061] In order to achieve the above object, in a first aspect, the present invention provides a data transmission method in a dense network, which is used at a sending end and includes:

[0062] UDP tunnel encapsulation technology is used to encapsulate each IP data packet to be sent to obtain corresponding UDP tunnel encapsulation data; the IP message of the IP data packet is encapsulated into an LLC frame as a UDP load and transmitted on the IP tunnel; wherein the UDP tunnel encapsulation data includes: an IP header, a UDP header, an LLC frame and an IP data packet;

[0063] Fill the LLC frame in each UDP tunnel encapsulated data so that the LLC frame includes the sequence number of the UDP tunnel encapsulated data, the sequence number of the dense network link that transmits the UDP tunnel encapsulated data, and a retransmission flag indicating whether the UDP tunnel encapsulated data is retransmission data, and send it to the receiving end; it should be noted that there can be multiple methods for determining the dense network link that transmits the UDP tunnel encapsulated data, and the best link can be selected as the dense network link that transmits the UDP tunnel encapsulated data according to the attribute information of each current link, or the dense network link that transmits the UDP tunnel encapsulated data can be determined according to a pre-set link usage order, which is not limited here;

[0064] After the sending end receives the ARQ feedback frame fed back by the receiving end, it determines the loss of the UDP tunnel encapsulated data based on the ARQ feedback frame. If there is a loss, it updates the link sequence number and retransmission flag in the lost UDP tunnel encapsulated data, and retransmits the lost UDP tunnel encapsulated data.

[0065] The sequence number of the non-retransmitted UDP tunnel encapsulated data sent by the i-th transmission is i; i is a positive integer; the ARQ feedback frame includes: the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end; each UDP tunnel encapsulated data to be received in the receiving window is arranged in the order of its sequence number;

[0066] ARQ feedback frames can be used to distinguish whether UDP tunnel encapsulated data has not arrived at the other end due to disorder or packet loss. The sender parses the ARQ feedback frame to determine whether the data packet has not arrived out of order or has been lost during transmission. If it is determined that disorder has occurred due to large delay, there is no need to retransmit the UDP tunnel encapsulated data at this time, and only needs to wait for the arrival of the UDP tunnel encapsulated data; if it is determined that the UDP tunnel encapsulated data has been lost, it needs to be retransmitted.

[0067] Specifically, the above-mentioned judging the loss of UDP tunnel encapsulated data based on the ARQ feedback frame includes:

[0068] Obtaining the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end from the ARQ feedback frame;

[0069] For each UDP tunnel encapsulation data D that has not been received uc , get the link number N carried in it L , and obtain the receiver's link number N from the ARQ feedback frame L The UDP tunnel encapsulated data D finally received by the link under c , compare D uc With D c If the former is smaller than the latter, then D uc has been lost; if the former is greater than the latter, then D uc Transmitting, not lost yet.

[0070] In an optional embodiment, when D uc The serial number is greater than D c The serial number of D uc If the transmission time of D is greater than the first preset time, retransmit D uc . It should be noted that before sending each UDP tunnel encapsulated data, the sender marks the sending time of the UDP tunnel encapsulated data in the kernel and starts a timer. If the sender still has not received the ARQ feedback frame corresponding to the UDP tunnel encapsulated data after the timer times out, it is considered that the UDP tunnel encapsulated data is lost and the timeout retransmission process is started. If the sender receives an ARQ feedback frame sent by the other end, and the ARQ feedback frame shows that a data packet has not been received, the sender starts the request retransmission process. In an optional implementation, the above-mentioned first preset time is 300ms.

[0071] In an optional implementation manner, the above-mentioned retransmission of the lost UDP tunnel encapsulated data includes: retransmitting the lost UDP tunnel encapsulated data on each link of the dense network to further ensure reliability.

[0072] In an optional implementation, the LLC frame further includes: a flow sequence number for identifying the service type of the corresponding IP data packet, and a node sequence number for identifying the node sending user information of the corresponding IP data packet. By distinguishing the service type and the node sending the user information, the execution of subsequent services can be more convenient.

[0073] In an optional implementation, considering that in the existing heterogeneous network fusion technology, the UDP over multi-IP tunnel transmission technology uses the UDP protocol as the tunnel encapsulation and the ARQ technology to achieve retransmission, and uses a fixed bandwidth to allocate traffic to different links, it cannot adaptively adjust the traffic allocation when the link quality changes dynamically, or it will cause a large number of data packets to be retransmitted and bandwidth resources to be wasted. In order to solve the limitations of the traditional UDP over multi-IP in allocating data service data according to fixed bandwidth, the entire system implements link scheduling based on the information of the link detection packet sent by the sender and the link detection packet fed back by the receiver. For each link detection, both parties will exchange the total amount of transmission and reception of the link in the detection cycle (the previous detection cycle) corresponding to the time when the local end sent the link detection packet, as well as the link delay. These data will be used to determine the link disconnection and calculate the link packet quota.

[0074] Specifically, a link detection module can be further designed to implement the above operation, that is, the above dense network data transmission method also includes: constructing a link detection packet for each link at every preset detection period, and sending each link detection packet while sending UDP tunnel encapsulated data; wherein the link detection packet includes: the sending time of the link detection packet, the total sending amount and the total receiving amount of the corresponding link in the detection period of sending the link detection packet;

[0075] When receiving a link detection packet of any link returned by the receiving end, the link detection packet is parsed;

[0076] When the total amount of link transmission or reception carried in the link detection packet is 0, the link is determined to be failed, and the packet transmission rate of the link is set to 0;

[0077] When the total link transmission amount or the total link reception amount carried in the link detection packet is not 0, the ratio of the total reception amount carried in the link detection packet to the delay of the link is calculated as the receiving throughput of the receiving end receiving data through the link, and the packet transmission rate of the link is set to the data packet transmission rate corresponding to the throughput interval where the receiving throughput rate is located;

[0078] The link delay is the difference between the time when the link detection packet is received by the receiving end and the sending time carried in the link detection packet;

[0079] The throughput interval [0, R] of the link is divided into multiple throughput sub-intervals; each throughput sub-interval corresponds to a data packet sending rate, and the throughput sub-interval with a larger throughput value corresponds to a larger data packet sending rate; R is the theoretical throughput upper limit of the link.

[0080] When the receiving throughput rate of the receiving end receiving data through a certain link is smaller, the UDP tunnel encapsulated data sent through the link is also less, thereby achieving less data being sent on the link with poor performance and more data being sent on the link with good performance.

[0081] In an optional implementation manner, the preset detection period is set to 10 ms.

[0082] In an optional implementation manner, the throughput interval [0, R] is divided into 100 throughput sub-intervals.

[0083] Preferably, the generation of the link detection packet is based on the ICMP protocol. The receiving end completes a link detection by processing the data and submitting it to the upper layer protocol stack. The upper layer protocol stack will automatically reply to the packet to avoid the additional overhead of regenerating the feedback packet.

[0084] In the link detection thread, the system creates a corresponding link detection packet based on the information of each link. In an optional implementation, the link detection packet includes: the identifier type of the link detection packet, the classification code of the link detection packet, the sending time tv of the link detection packet, the total sending amount snd_bw and the total receiving amount rcv_bw of the corresponding link during the detection period of sending the link detection packet, and the delay udelay of the corresponding link during the detection period of the link detection packet; type and code generally constitute 20 bytes together, tv, snd_bw, rcv_bw and udelay generally constitute 12 bytes together, a total of 32 bytes. All these parameters are used to calculate the sending quota of the link to achieve link scheduling. Every preset detection period, a link detection packet of 32N bytes is sent; where N is the number of links in the dense network.

[0085] In a second aspect, the present invention provides a transmitting end, comprising: a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the data transmission method for a dense network provided in the first aspect of the present invention is executed.

[0086] The related technical solution is the same as the data transmission method for a dense network provided by the first aspect of the present invention.

[0087] In a third aspect, the present invention provides a dense network data transmission method, for a receiving end, comprising:

[0088] Each time a UDP tunnel encapsulated data D is received from the sending end provided by the second aspect of the present invention, c ', according to D c 'The sequence number j caches it to the mod(j,M)th subspace in the receiving cache queue, and executes D c 'Submit to the upper layer protocol stack operation, and according to Dc 'The retransmission flag in the receiver updates the link number N L 'The UDP tunnel encapsulated data finally received by the link below;

[0089] Among them, N L 'For D c 'The link sequence number carried in it; the data to be cached at the mod(r,M)th subspace in the receive cache queue is the UDP tunnel encapsulated data with sequence number r that the receiving end should receive; the mod(r,M)th subspace is located before the mod(r+1,M)th subspace; r is a positive integer; M is the total number of subspaces in the receive cache queue;

[0090] At every second preset time, a current ARQ feedback frame is constructed and fed back to the transmitting end; the ARQ feedback frame includes: the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end;

[0091] Among them, the receiving window is a sliding window that slides on the receiving cache queue; when the UDP tunnel encapsulated data is received for the first time, the starting position of the receiving window is located at the first subspace of the receiving cache queue; each time a UDP tunnel encapsulated data is submitted, the receiving window slides backward by a subspace length, and ensures that the received UDP tunnel encapsulated data is submitted to the upper layer protocol stack in the order of its sequence number.

[0092] In an optional implementation manner, the second preset time is 1 ms.

[0093] The related technical solution is the same as the sending end provided in the second aspect of the present invention, and will not be described in detail here.

[0094] Preferably, in an optional implementation, when ensuring that the received UDP tunnel encapsulated data is submitted to the upper layer protocol stack in the order of its sequence number, in order to prevent the UDP tunnel encapsulated data from being lost and causing a situation where it has been waiting, it is determined whether the UDP tunnel encapsulated data is lost during the submission process, so as to further improve the efficiency of data transmission. c 'The operations submitted to the upper protocol stack include:

[0095] S1, let k = 1;

[0096] S2. Determine whether there is UDP tunnel encapsulated data at the kth position of the current receiving window. If so, submit it to the upper layer protocol stack, set k=k+1, and repeat S2; otherwise, obtain the UDP tunnel encapsulated data D that should be received at the kth position of the current receiving window. sc 'Serial number idx, transfer to S3;

[0097] S3: Determine whether there is any uncommitted UDP tunnel encapsulated data in the current receiving window. If so, go to S4; otherwise, move the starting position of the current receiving window to D sc 'Location, go to S5;

[0098] S4. Get the next unsubmitted UDP tunnel encapsulation data D in the current receiving window us ', judge D us 'Whether the transmission time is greater than the third preset time, if so, determine whether idx to D us All UDP tunnel encapsulated data between the sequence numbers of ' are lost, and the starting position of the current receive window is moved to D uc 'Location, and go to S1; otherwise, go to S5;

[0099] S5. End submission D c 'operation.

[0100] In an optional implementation manner, the third preset time is set to 200ms.

[0101] It should be noted that the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end contained in the ARQ feedback frame can be expressed in multiple ways. For example, the simplest way is to directly encapsulate the sequence number of each UDP tunnel encapsulated data that should be received in the receiving window and the corresponding result of whether it is received into the ARQ feedback frame and feed it back to the sending end.

[0102] In order to reduce the transmission overhead, the following method can be used to compress the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end; specifically:

[0103] In an optional implementation manner, the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the above receiving end is represented by the sequence number N s 、N e , and confirmation sequence to indicate;

[0104] Among them, N s and N e They are respectively the first and last UDP tunnel encapsulated data to be received in the receiving window; the length of the confirmation sequence and the receiving window are both L, and the lth value therein indicates whether the lth UDP tunnel encapsulated data in the receiving window has been received; l = 1, 2, ..., L, where L is a positive integer.

[0105] In another optional implementation manner, the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the above receiving end is represented by the sequence number N s'、N e ', and confirm the sequence to indicate;

[0106] Among them, N s ' is the sequence number of the first UDP tunnel encapsulated data that has not been received in the receiving window; N e ' is N ec +1;N ec The sequence number of the last UDP tunnel encapsulated data received in the receiving window;

[0107] The length of the confirmation sequence and the receiving window are both L, and the lth value therein indicates whether the lth UDP tunnel encapsulated data in the receiving window has been received; l = 1, 2, ..., L, where L is a positive integer.

[0108] In an optional implementation manner, the value of L is 512.

[0109] In an optional embodiment, the above-mentioned c 'The retransmission flag in the receiver updates the link number N L The UDP tunnel encapsulated data finally received by the link under ' includes:

[0110] According to D c 'The retransmission flag in D c 'Whether it is retransmission data;

[0111] When D c 'When retransmitting data, obtain the current receiving end at link number N L 'The last received UDP tunnel encapsulated data D of the link under c ”, compare D c 'With D c "If the former is greater than the latter, the receiving end will be in link sequence number N L 'The last received UDP tunnel encapsulated data of the link under is updated to D c '; If the former is less than the latter, the link number N of the receiving end is not updated L 'The UDP tunnel encapsulated data finally received by the link below;

[0112] When D c 'If it is not retransmission data, the receiving end will be in link number N L 'The last received UDP tunnel encapsulated data of the link under is updated to D c '.

[0113] In an optional implementation manner, the above-mentioned dense network data transmission method further includes: when receiving the link detection packets of each link sent by the above-mentioned sending end, obtaining the current receiving total amount of each link, updating the link detection packets of the corresponding link, and feeding back the updated link detection packets to the above-mentioned sending end;

[0114] The link detection packet includes: the sending time of the link detection packet, and the total sending amount and the total receiving amount of the corresponding link in the detection period corresponding to the sending of the link detection packet.

[0115] In order to further illustrate the data transmission method of a dense network provided by the first aspect of the present invention, the key points of the present invention are described in detail below in conjunction with specific embodiments:

[0116] Example 1

[0117] This embodiment mainly focuses on the overall data transmission process of a dense network.

[0118] In order to ensure the stability and reliability of application layer services and realize efficient intensive network converged communication, LLC over IP tunnel technology needs to shield the complex structure of various types of physical links at and below the network layer at the application layer and the transport layer. Since the method (protocol) provided in this embodiment is implemented at the network layer, it is possible to implement a virtual network card through the Tun driver and use the virtual network card as a communication interface; the reason is that the TCP and UDP protocols of the transport layer only focus on the four-tuple (source address, source port, destination address, destination port) when transmitting data. This four-tuple defines a unique transmission path without distinguishing whether the network card used is a physical network card or a virtualized network card.

[0119] When the network card receives an IP data packet, the dense network scheduler will use the hook function to intercept the IP data packet and put it into the data encapsulation queue as a business data packet to be sent. The timer calls the encapsulation and sending thread to process these data packets. The thread takes the data packets from the queue in turn, performs LLC encapsulation, and numbers them using the ID of the LLC frame. Then, in order to prevent packet loss during transmission, the encapsulated data packet will be copied and stored in the waiting confirmation sending window for retransmission; the original data packet is sent using a certain scheduling algorithm based on the status of the dense network link, and the sending time of the data packet is recorded at the same time, which is used to determine timeout and calculate link quality information.

[0120] In order to enable the data packets to be correctly sorted, the present invention proposes an algorithm for packet loss judgment based only on the sequence number of the UDP tunnel encapsulated data in the LLC frame without the need for the sub-connection sequence number. Existing multipath transmission protocols (such as MPTCP) usually include two stages when receiving messages: first, the integrity of data reception is judged based on the sub-sequence number of each sub-connection to ensure the reliability of transmission; then, the messages are sorted based on the data total sequence number (DSN, Data Sequence Number), and finally submitted to the upper layer in sequence. In contrast, the method provided by the present invention only uses the sequence number of the UDP tunnel encapsulated data. The receiving end feeds back an ARQ feedback frame carrying the actual reception status of the UDP tunnel encapsulated data to the sending end, and then determines whether the unreached UDP tunnel encapsulated data is still in the transmission process or has been lost based on the ARQ feedback frame, and then decides whether to retransmit to ensure reliable data transmission. Finally, the receiving end sorts the UDP tunnel encapsulated data based on its sequence number and submits it to the upper layer.

[0121] Specifically, when the sender receives the ACK feedback packet, it will parse the feedback packet to understand the packet receiving status of the other end, and determine which UDP tunnel encapsulated data packets have been successfully received and which data packets have not yet arrived. There are usually two situations for the unreachable data packets:

[0122] (1) The data packets are transmitted normally on the high-latency link and have not yet reached the other end, but are out of order due to the large delay difference.

[0123] (2) Data packets are lost during transmission.

[0124] When packet loss occurs on the confirmation link, the corresponding sequence number of the data packet will be taken out from the waiting confirmation window and transmitted through all links at the same time. This allows the data packet to reach the other end through the link with the minimum delay or the lowest packet loss rate, alleviates the congestion of the other end's window, and minimizes the impact on the upper layer business.

[0125] In addition, when no ACK feedback packet is received, the timer will call the retransmission thread to check the UDP tunnel encapsulated data packets in the waiting confirmation window. If the difference between the sending time of the UDP tunnel encapsulated data packet and the current time is too large, it is determined that there is a timeout and unconfirmed UDP tunnel encapsulated data packet. If this situation is found, the retransmission thread will retransmit according to the link status. At the same time, the thread will also report this situation to the link detection module to ensure that the link detection module can timely perceive the change of link quality and adjust the distribution scheduling algorithm.

[0126] Example 2

[0127] This embodiment mainly focuses on the encapsulation process of the IP data packet to be sent by the sender. Specifically, Figure 1The diagram shows the IP data packet encapsulation and data packet encapsulation forms at each stage of the transmission process designed in this embodiment. In this embodiment, the original data packet is sent from the client PC1, and after being transmitted to the tunnel server Client, a suitable link is selected for transmission through the adaptive link scheduling algorithm. After the data packet is intercepted by the hook function at the network layer, the IP message of the data packet is encapsulated into an LLC frame as a UDP load before transmission on the IP tunnel. Specifically, the data packet will be encapsulated in three layers according to the information of the selected link: first, the LLC layer is encapsulated, and an 8-byte LLC header is added; then the UDP layer is encapsulated, and an 8-byte UDP header is added; finally, the IP layer is encapsulated, and a 20-byte IP header is added (it should be noted that the shortest increase is 20 bytes, and 20 bytes are preferably added here). When the tunnel server Server receives multiple encapsulated data packets through multiple links, it will arrange the data packets in order according to the LLC header information, and then remove the LLC header, UDP header and IP header layer by layer through the reverse decapsulation process, and finally restore them to the original data packet.

[0128] By inserting identification information into the network message, the service flow can be sent, aggregated, sorted and submitted through multiple physical links. When the sending end intercepts the original data packet, the identification information such as the sequence number of the UDP tunnel encapsulated data, the sequence number of the dense network link that transmits the UDP tunnel encapsulated data, the retransmission flag indicating whether the UDP tunnel encapsulated data is retransmission data, the flow sequence number used to identify the service type of the corresponding IP data packet, and the node sequence number used to identify the sending user information of the corresponding IP data packet are filled into the data packet, and the best link is selected for transmission based on the attribute information of each current physical link, so that the receiving end can put the data packets from multiple physical links into the receiving window through the identification information encapsulated in the data packet, complete the sorting and reorganization of the message and submit it to the upper layer protocol stack.

[0129] Example 3

[0130] This embodiment mainly focuses on the design of LLC frame. Specifically, Figure 2 The figure shows a schematic diagram of the LLC frame format provided in this embodiment; wherein, llc_sn represents the sequence number of the UDP tunnel encapsulated data, occupying 24 bits; ReTx represents the retransmission flag, occupying 1 bit; Ack represents the response flag, occupying 1 bit; Linkid represents the link sequence number, occupying 2 bits; Fid represents the flow sequence number, occupying 1 bit; Nodeid represents the node sequence number, occupying 2 bits.

[0131] Example 4

[0132] This embodiment mainly focuses on the design of the ARQ feedback frame. Specifically, in this embodiment, the number of links in the dense network is 4. Specifically, Figure 3 The figure shows a schematic diagram of the ARQ feedback frame format designed in this embodiment, wherein last_sn_link0 represents the sequence number of the UDP tunnel encapsulated data last received by the first link, occupying 2 bytes; last_sn_link1 represents the sequence number of the UDP tunnel encapsulated data last received by the second link, occupying 2 bytes; last_sn_link2 represents the sequence number of the UDP tunnel encapsulated data last received by the third link, occupying 2 bytes; last_sn_link3 represents the sequence number of the UDP tunnel encapsulated data last received by the fourth link, occupying 2 bytes; start_sn represents the starting value of the receiving window sequence number, occupying 2 bytes; end_sn represents the ending value of the receiving window sequence number, occupying 2 bytes; the confirmation sequence occupies 64 bytes, and each bit indicates the receiving status (i.e., whether it is received) of each UDP tunnel encapsulated data in a receiving window, wherein 0 represents that the UDP tunnel encapsulated data has not been received, and 1 represents that the UDP tunnel encapsulated data has been successfully received.

[0133] Specifically, in an optional implementation, start_sn and end_sn are the first and last UDP tunnel encapsulated data to be received in the receiving window, respectively. In another optional implementation, start_sn and end_sn are the sequence number of the first UDP tunnel encapsulated data that has not been received in the receiving window and the sequence number of the last UDP tunnel encapsulated data received in the receiving window + 1, respectively.

[0134] It should be noted that in multi-link transmission, due to the different delays of each link, the failure to receive UDP tunnel encapsulated data may be caused by a variety of reasons. In order to distinguish whether the UDP tunnel encapsulated data is still in transmission or has been lost, the last packet sequence number recorded in last_sn_link(x) is added. When this information is fed back to the sender, the sender can use this information to determine whether packet loss has occurred in the link. When the feedback information is fed back to the sender, it will first determine which link the unreceived data packet was sent from. If the unreceived packet sequence number is less than the last_sn_link(x) of the link, it is considered that packet loss has occurred and the retransmission thread is immediately started; if the unreceived packet sequence number is greater than the last_sn_link(x) of the link, it is considered that the data packet is still in transmission, but it has not reached the other end due to delay.

[0135] Example 5

[0136] This embodiment mainly focuses on the design of the retransmission mechanism. Specifically, Figure 4The figure shows a flow chart of the retransmission mechanism in this embodiment, which mainly includes two modes: timeout retransmission and request retransmission.

[0137] During data transmission, UDP tunnel encapsulated data packets first queue in the send buffer of the sender to wait for transmission, and then enter the send window to prepare for transmission. After the UDP tunnel encapsulated data packets are marked with sequence numbers, they are sent to the transmission link through a new transmission process. Every time a UDP tunnel encapsulated data packet is sent, a timer is started to monitor whether retransmission is required. At the same time, the sending rate is adjusted through the congestion control mechanism to prevent network overload. If the timer times out and the data packet does not receive an ARQ feedback frame, the data packet is retransmitted; if a UDP tunnel encapsulated data loss is detected, the sender requests the receiver to retransmit the UDP tunnel encapsulated data. When receiving the ARQ feedback frame from the receiver, the sender processes the ARQ feedback frame and releases the successfully received UDP tunnel encapsulated data from the send buffer.

[0138] On the transmission link, data packets marked with sequence numbers are transmitted from the sender to the receiver, and the ARQ feedback frame generated by the receiver is returned to the sender.

[0139] The receiving window at the receiving end receives and processes the transmitted data packets and generates ARQ feedback frames for the successfully received data packets. The receiving end is also responsible for managing and processing lost or erroneous data packets and may need to request the sending end to retransmit the lost data packets. The timer monitors the timeout of the received data packets so that the lost data packets can be detected and processed in time. The successfully received and processed data packets are stored in the receiving buffer and finally submitted to the upper layer application for further processing or use.

[0140] Example 6

[0141] This embodiment mainly focuses on the process of the receiving end requesting retransmission and sorting and submitting the received UDP tunnel encapsulated data. Specifically, Figure 5 The figure shows a flow chart of the receiving end requesting retransmission and sorting and submitting the received UDP tunnel encapsulated data designed in this embodiment. The sending end sends 3 UDP tunnel encapsulated data packets to the receiving end. After receiving data packet No. 1, the receiving end immediately submits it upward and slides the starting position of the receiving window to 2. When the receiving end receives data packet No. 3, it detects that data packet No. 2 has not been received, so it caches data packet No. 3 in the receiving window and does not submit it temporarily. After the receiving end feeds back the sequence number information of the received data packet to the sending end, the sending end will determine the vacancy of the sending window again, and then fill the retransmitted data packet and the new data packet to be sent. After the receiving end receives the retransmitted data packet No. 2, it submits data packet No. 2 and data packet No. 3 upward at the same time, and slides the starting position of the receiving window to 4 to carry out the subsequent receiving process.

[0142] Example 7

[0143] This embodiment mainly focuses on the design of the link detection packet. Specifically, Figure 6 The figure shows a schematic diagram of the link detection packet structure designed in this embodiment. Taking a certain link as an example, the data items contained in the link detection packet of the link include: the type field for identifying the data packet, the code field for identifying the packet category, the tv field for recording the sending time, the total sending amount snd_bw and the total receiving amount rcv_bw of the link under the detection period of sending the link detection packet, and the delay udelay of the link. Among them, the type field is used to distinguish the link detection packet, and both the sending end and the receiving end are set to ICMP_LINK_CHECK. At the sending end, the code field is set to CHK_ASK, and the receiving end will change it to CHK_REPLY after receiving the link detection packet and record the parameter status of the link. By checking whether snd_bw and rcv_bw are zero, the receiving end can determine the validity of the link, especially whether the "sending but not receiving" situation occurs between the sending end and the receiving end. After that, the receiving end will update the values ​​of snd_bw and rcv_bw, record its link parameters, and pass the UDP tunnel encapsulated data packet to the upper layer protocol stack, and the ICMP reply mechanism will automatically generate a feedback packet.

[0144] In a fourth aspect, the present invention provides a receiving end, comprising: a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the data transmission method for a dense network provided in the third aspect of the present invention is executed.

[0145] The related technical solution is the same as the data transmission method for a dense network provided in the third aspect of the present invention, and will not be described in detail here.

[0146] In a fifth aspect, the present invention provides a data transmission system for a dense network, comprising the transmitting end provided by the second aspect of the present invention and the receiving end provided by the fourth aspect.

[0147] The related technical solutions are the same as the transmitting end provided in the second aspect and the receiving end provided in the fourth aspect of the present invention, and will not be described in detail here.

[0148] It will be easily understood by those skilled in the art that the above description is only a preferred embodiment of the present invention and is not intended to limit the present invention. Any modifications, equivalent substitutions and improvements made within the spirit and principles of the present invention should be included in the protection scope of the present invention.

Claims

1. A data transmission method for a dense network, characterized in that: For the sender, including: Using UDP tunnel encapsulation technology to encapsulate each IP data packet to be sent to obtain corresponding UDP tunnel encapsulation data; the UDP tunnel encapsulation data includes: IP header, UDP header, LLC frame and IP data packet; Filling the LLC frame in each UDP tunnel encapsulated data so that the LLC frame includes the sequence number of the UDP tunnel encapsulated data, the sequence number of the dense network link transmitting the UDP tunnel encapsulated data, and a retransmission flag indicating whether the UDP tunnel encapsulated data is retransmission data, and sending it to the receiving end; After the sending end receives the ARQ feedback frame fed back by the receiving end, the sending end determines the loss of the UDP tunnel encapsulated data based on the ARQ feedback frame. If there is a loss, the link sequence number and retransmission flag in the lost UDP tunnel encapsulated data are updated, and the lost UDP tunnel encapsulated data is retransmitted; The sequence number of the non-retransmitted UDP tunnel encapsulated data sent by the i-th transmission is i; i is a positive integer; the ARQ feedback frame includes: the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end; each UDP tunnel encapsulated data to be received in the receiving window is arranged in the order of its sequence number; The judging of the loss of the UDP tunnel encapsulated data based on the ARQ feedback frame includes: Obtaining the actual reception status of each UDP tunnel encapsulated data that should be received in the receiving window of the receiving end from the ARQ feedback frame; For each UDP tunnel encapsulation data D that has not been received uc , get the link number N carried in it L , and obtain the receiver's link number N from the ARQ feedback frame L The UDP tunnel encapsulated data D finally received by the link under c , compare D uc With D c If the former is smaller than the latter, then D uc has been lost; if the former is greater than the latter, then D uc Transmitting, not lost yet.

2. The method for data transmission in a dense network according to claim 1, characterized in that: Also includes: At every preset detection period, a link detection packet is constructed for each link, and each link detection packet is sent while sending the UDP tunnel encapsulated data; wherein the link detection packet includes: the sending time of the link detection packet, the total sending amount and the total receiving amount of the corresponding link in the detection period of sending the link detection packet; When receiving a link detection packet of any link returned by the receiving end, the link detection packet is parsed; When the total amount of link transmission or reception carried in the link detection packet is 0, the link is determined to be failed, and the packet transmission rate of the link is set to 0; When the total link transmission amount or the total link reception amount carried in the link detection packet is not 0, the ratio of the total reception amount carried in the link detection packet to the delay of the link is calculated as the receiving throughput of the receiving end receiving data through the link, and the packet transmission rate of the link is set to the data packet transmission rate corresponding to the throughput interval where the receiving throughput rate is located; The link delay is the difference between the time when the link detection packet is received by the receiving end and the sending time carried in the link detection packet; The throughput interval [0, R] of the link is divided into multiple throughput sub-intervals; each throughput sub-interval corresponds to a data packet sending rate, and the throughput sub-interval with a larger throughput value corresponds to a larger data packet sending rate; R is the theoretical throughput upper limit of the link.

3. A transmitting end, characterized in that: include: A memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the data transmission method for a dense network according to any one of claims 1 to 2 is executed.

4. A method for data transmission in a dense network, characterized in that: For the receiving end, including: Each time a UDP tunnel encapsulated data D is received from the sending end of claim 3 c ', according to D c 'The sequence number j caches it to the mod(j,M)th subspace in the receiving cache queue, and executes D c 'Submit to the upper layer protocol stack operation, and according to D c 'The retransmission flag in the receiver updates the link number N L 'The UDP tunnel encapsulated data finally received by the link below; Among them, N L 'For D c 'The link sequence number carried in it; the data to be cached at the mod(r,M)th subspace in the receiving cache queue is the UDP tunnel encapsulated data with sequence number r that the receiving end should receive; the mod(r,M)th subspace is located before the mod(r+1,M)th subspace; r is a positive integer; M is the total number of subspaces in the receiving cache queue; At every second preset time, construct a current ARQ feedback frame and feed it back to the transmitting end; the ARQ feedback frame includes: the sequence number of the UDP tunnel encapsulated data last received by the receiving end in each link and the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end; The receiving window is a sliding window that slides on the receiving cache queue; when UDP tunnel encapsulated data is received for the first time, the starting position of the receiving window is located at the first subspace of the receiving cache queue; each time a UDP tunnel encapsulated data is submitted, the receiving window slides backward by a subspace length, and ensures that the received UDP tunnel encapsulated data is submitted to the upper layer protocol stack in the order of its sequence number.

5. The method for transmitting data in a dense network according to claim 4, characterized in that: The D c 'The operations submitted to the upper protocol stack include: S1, let k = 1; S2. Determine whether there is UDP tunnel encapsulated data at the kth position of the current receiving window. If so, submit it to the upper layer protocol stack, set k=k+1, and repeat S2; otherwise, obtain the UDP tunnel encapsulated data D that should be received at the kth position of the current receiving window. sc 'Serial number idx, transfer to S3; S3: Determine whether there is any uncommitted UDP tunnel encapsulated data in the current receiving window. If so, go to S4; otherwise, move the starting position of the current receiving window to D sc 'Location, go to S5; S4. Get the next unsubmitted UDP tunnel encapsulation data D in the current receiving window us ', judge D us 'Whether the transmission time is greater than the third preset time, if so, determine whether idx to D us All UDP tunnel encapsulated data between the sequence numbers of ' are lost, and the starting position of the current receive window is moved to D uc 'Location, and go to S1; otherwise, go to S5; S5. End submission D c 'operation.

6. The method for data transmission in a dense network according to claim 4, characterized in that: According to D c 'The retransmission flag in the receiver updates the link number N L The UDP tunnel encapsulated data finally received by the link under ' includes: According to D c 'The retransmission flag in D c 'Whether it is retransmission data; When D c 'When retransmitting data, obtain the current receiving end at link number N L 'The last received UDP tunnel encapsulated data D of the link under c ”, compare D c 'With D c "If the former is greater than the latter, the receiving end will be in link sequence number N L 'The last received UDP tunnel encapsulated data of the link under is updated to D c '; If the former is less than the latter, the link number N of the receiving end is not updated L 'The UDP tunnel encapsulated data finally received by the link below; When D c 'If it is not retransmission data, the receiving end will be in link number N L 'The last received UDP tunnel encapsulated data of the link under is updated to D c '.

7. The method for transmitting data in a dense network according to claim 4, characterized in that: The actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end is indicated by the sequence number N s 、N e , and confirmation sequence to indicate; Alternatively, the actual reception status of each UDP tunnel encapsulated data to be received in the receiving window of the receiving end is indicated by the sequence number N. s '、N e ', and confirm the sequence to indicate; Among them, N s and N e The first and last UDP tunnel encapsulated data to be received in the receiving window respectively; The length of the confirmation sequence and the receiving window are both L, and the lth value in them indicates whether the lth UDP tunnel encapsulated data in the receiving window has been received; l = 1, 2, ..., L, L is a positive integer; N s ' is the sequence number of the first UDP tunnel encapsulated data that has not been received in the receiving window; N e ' is N ec +1;N ec The sequence number of the last UDP tunnel encapsulated data received in the receive window.

8. The method for transmitting data in a dense network according to any one of claims 4 to 7, characterized in that: Also includes: When receiving the link detection packets of each link sent by the sending end, obtaining the current total reception amount of each link, updating the link detection packets of the corresponding link, and feeding back the updated link detection packets to the sending end; The link detection packet includes: the sending time of the link detection packet, and the total sending amount and the total receiving amount of the corresponding link in the detection period corresponding to the sending of the link detection packet.

9. A receiving end, characterized in that: include: A memory and a processor, wherein the memory stores a computer program, and the processor executes the data transmission method for a dense network as described in any one of claims 4 to 8 when executing the computer program.

10. A data transmission system for a dense network, characterized in that: It includes the transmitting end as described in claim 3 and the receiving end as described in claim 9.