Parallel data transmission method in mobile heterogeneous network
Through the active detection, update and hierarchical scheduling mechanism of link status, the problems of outdated order and packet loss caused by performance differences between links in complex environments are solved, and reliable transmission and bandwidth stability are achieved in scenarios of severe link fluctuations.
Patent Information
- Application Number
- CN202411624876.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-11-14
- Publication Date
- 2025-02-21
AI Technical Summary
In complex environments, the existing parallel transmission mechanism is difficult to effectively reduce the impact of outdated order and packet loss caused by performance differences between links, resulting in transmission delay and bandwidth fluctuations, and unable to ensure reliable transmission of the system.
Adopt the link state active detection update and hierarchical scheduling mechanism, receive data packets through asynchronous non-blocking methods, generate packet serial numbers, encapsulate custom headers, and select the link with the highest priority for packet transmission based on link state hierarchy. and receive, realizes the sorting of data packets and the retransmission of potentially lost data packets.
Reliable scheduling is achieved in scenarios of violent link fluctuations, reducing head-of-team blockage, ensuring the stability of transmission bandwidth, and avoiding overall system blockage when a single link is blocked.
Smart Images

Figure CN119497148A_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field of wireless communication technology, and in particular to a method for parallel data transmission in a mobile heterogeneous network. Background Art
[0002] Today's terminal devices are often equipped with multiple network interfaces, while the traditional TCP (Transmission Control Protocol) / IP transmission protocol can only use a single wireless network interface to transmit data, which cannot take advantage of the current network environment with multiple heterogeneous coexistence. At present, the parallel transmission method focuses on improving the effect of multi-link bandwidth aggregation through scheduling and congestion control algorithms. However, when the performance differences of heterogeneous network links fluctuate significantly, the existing parallel transmission mechanism is difficult to reduce the disorder and packet loss caused by the performance differences between links, resulting in fluctuations in transmission delay and bandwidth, and unable to guarantee the reliable transmission of the system in complex environments. Therefore, it is necessary to carry out research on multi-path reliable transmission mechanisms in heterogeneous networks.
[0003] In order to solve the problem of reliable transmission in complex environments, the prior art proposes a method for increasing transmission reliability by using a sending window blocking estimation scheduler. The principle of this method is: using a method of minimizing head-of-line blocking, taking whether head-of-line blocking will occur on a path as an evaluation indicator, and dynamically selecting whether to schedule data packets on a specific sub-flow based on the indicator, and planning which sub-flow to send next through the forwarding delay and sending window of the path, thereby increasing the possibility of bandwidth capacity aggregation by reducing the number of false retransmissions.
[0004] The disadvantages of the send window blocking estimation scheduler method in the above prior art include:
[0005] This method causes problems in data packet scheduling in complex transmission scenarios where the link status changes dramatically, due to the dramatic fluctuations in link delay. Reliable scheduling cannot be performed in transmission scenarios with dramatic fluctuations.
[0006] Since this method cannot make reliable scheduling in scenarios where the network quality fluctuates drastically, it will cause serious disorder at the receiving end, causing the later sent data packets to wait for the earlier sent data packets, thereby causing head-of-line blocking. For TCP data streams, orderly delivery is required, so it will seriously affect the transmission speed and cannot provide bandwidth-reliable transmission services in complex transmission scenarios.
[0007] This method will cause overall congestion when a problem occurs on a link. Summary of the invention
[0008] The embodiment of the present invention provides a method for parallel data transmission in a mobile heterogeneous network, so as to effectively improve the data transmission efficiency of the mobile heterogeneous network.
[0009] In order to achieve the above object, the present invention adopts the following technical scheme.
[0010] A method for parallel data transmission in a mobile heterogeneous network, comprising:
[0011] The sender receives and stores the data packet to be sent, detects the state of the link, selects a link for sending the data packet, and uses a data packet scheduling algorithm to send the data packet on the sending link;
[0012] The receiving party receives the data packets on the sending link, sorts the data packets, and retransmits the potentially lost data packets.
[0013] Preferably, the sender receives and stores the data packet to be sent, including:
[0014] The sender monitors the network ports of multiple links, listens to the data packets sent by all links, and receives the arriving data packets in an asynchronous non-blocking manner;
[0015] Generate a data packet sequence number according to the arrival order of the data packets, encapsulate a custom header based on the original data packet, and use the data packet sequence number as header information;
[0016] Add the data packet to the sending cache and store it in the form of a Map, where the key is the sequence number of the data packet and the value is the corresponding data packet, and clear the data packets that have been sent;
[0017] Preferably, the sender detects the state of the link and selects a link for sending the data packet, including:
[0018] The sender calls the system function at fixed time intervals to detect the state of the link, analyzes the detection results of the system function, updates and records the number of data packets still in the sending buffer and in the link, and obtains the delay information of the link;
[0019] The sender classifies the link status according to the link sending queue and the number of data packets in the link and the delay information, and classifies the link status into initial state, idle state, busy state and congested state. The scheduling priorities of the initial state, idle state, busy state and congested state links decrease in sequence. The system that has just been initialized and has not sent data packets is set to the initial state;
[0020] The sender selects the link with the highest scheduling priority as the link for sending the data packet.
[0021] Preferably, the sending of the data packet on the sending link using a data packet scheduling algorithm includes:
[0022] Step A7-1: Determine whether the number of links in the blocked state exceeds a threshold. If it exceeds the threshold, proceed to A7-5; otherwise, proceed to A7-2.
[0023] Step A7-2: Select a link set with the highest link status level;
[0024] Step A7-3: Select a link to be sent from a set of links with the same link status according to the delay;
[0025] Step A7-5: the whole system enters the security state;
[0026] Step A7-6: Duplicate the data packet and send the redundant data packet through multiple links.
[0027] Preferably, the receiving party receives the data packets on the sending link, sorts the data packets, and retransmits the potentially lost data packets, including:
[0028] Step B1: The receiver monitors all links where data packets arrive, receives data packets, initializes the receiving buffer, and puts the data packets arriving on the link into the receiving buffer;
[0029] Step B2: decapsulate the data packet, obtain the encapsulated datagram header information, and extract the encapsulated data packet sequence number;
[0030] Step B3: Compare the sequence number of the data packet with the existing set of arrived data packets to determine whether the data packet is a duplicate data packet that has arrived. Duplicate data packets are directly discarded, otherwise proceed to step B4;
[0031] Step B4: Determine the relationship between the sequence number of the currently arrived data packet and the sequence number of the next data packet expected to arrive;
[0032] If the sequence number of the current data packet is less than the sequence number of the expected packet, the data packet is forwarded and the process goes to step B10;
[0033] The current data packet sequence number is equal to the expected packet sequence number, and the data packet is forwarded, and the process goes to step B10;
[0034] If the sequence number of the current data packet is less than the sequence number of the expected packet, the process goes to step B5;
[0035] Step B5: For a certain data packet that has not arrived, a data packet with a smaller sequence number than the data packet has arrived on the same link, and the data packet is determined to be a potential lost data packet;
[0036] If there is potential packet loss, go to B6, otherwise go to B7;
[0037] Step B6: construct a retransmission request packet, the request sequence number of which is the lost data packet;
[0038] Evaluate the link with the shortest delay and send a retransmission request packet from this link;
[0039] Step B7: Determine whether the number of orderly arriving data packets in the cache exceeds the threshold value. If it exceeds the threshold value, go to step B10 to deliver this part of orderly arriving data packets; otherwise, go to B8;
[0040] Step B8: Determine whether the oldest data packet in the cache has reached the threshold of the cache time. If it exceeds the threshold, go to step B10 to deliver this part of the data packet; otherwise, go to B9;
[0041] Step B9: adjusting the buffering time threshold in step B8 according to the delay of each link;
[0042] Calculate the maximum delay in the link and the proportion of packets that do not arrive in order in the cache, and adjust the threshold value in step B8 using a threshold adjustment algorithm according to the proportion of packets;
[0043] Step B10: forward the data packet to be forwarded to the destination subnet according to its destination address, and return to step B1.
[0044] Preferably, the mobile heterogeneous network includes a smart mobile router heterogeneous network, and the sender and receiver are smart mobile routers SMR or smart aggregation routers SAR.
[0045] It can be seen from the technical solutions provided by the above-mentioned embodiments of the present invention that the method of the present invention can still make reliable scheduling and minimize head-of-line blocking in the scenario of drastic link fluctuations, can still provide bandwidth-reliable transmission services in the scenario of drastic link fluctuations, and will not cause overall blocking when a problem occurs in a certain link.
[0046] Additional aspects and advantages of the present invention will be given in part in the following description, which will become obvious from the following description, or may be learned through practice of the present invention. BRIEF DESCRIPTION OF THE DRAWINGS
[0047] In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings required for use in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of the present invention. For ordinary technicians in this field, other accompanying drawings can be obtained based on these accompanying drawings without paying creative work.
[0048] Figure 1 A topological structure diagram of a heterogeneous network of intelligent mobile routers provided in an embodiment of the present invention;
[0049] Figure 2 A schematic diagram of a process of data packet sending and link selection in step A provided in an embodiment of the present invention;
[0050] Figure 3 A schematic diagram of a data packet receiving and head-of-line blocking process in step B provided in an embodiment of the present invention;
[0051] Figure 4 A flowchart of a scheduling algorithm provided by an embodiment of the present invention. DETAILED DESCRIPTION
[0052] The embodiments of the present invention are described in detail below, examples of which are shown in the accompanying drawings, wherein the same or similar reference numerals throughout represent the same or similar elements or elements having the same or similar functions. The embodiments described below with reference to the accompanying drawings are exemplary and are only used to explain the present invention, and cannot be interpreted as limiting the present invention.
[0053] It will be understood by those skilled in the art that, unless expressly stated, the singular forms "one", "said", and "the" used herein may also include plural forms. It should be further understood that the term "comprising" used in the specification of the present invention refers to the presence of the features, integers, steps, operations, elements and / or components, but does not exclude the presence or addition of one or more other features, integers, steps, operations, elements, components and / or groups thereof. It should be understood that when we refer to an element as being "connected" or "coupled" to another element, it may be directly connected or coupled to the other element, or there may be intermediate elements. In addition, the "connection" or "coupling" used herein may include wireless connection or coupling. The term "and / or" used herein includes any unit and all combinations of one or more associated listed items.
[0054] It will be understood by those skilled in the art that, unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as those generally understood by those skilled in the art in the art to which the present invention belongs. It should also be understood that terms such as those defined in common dictionaries should be understood to have meanings consistent with the meanings in the context of the prior art, and will not be interpreted with idealized or overly formal meanings unless defined as herein.
[0055] To facilitate understanding of the embodiments of the present invention, several specific embodiments will be further explained below with reference to the accompanying drawings, and each embodiment does not constitute a limitation on the embodiments of the present invention.
[0056] The topology structure of a heterogeneous network of intelligent mobile routers provided by an embodiment of the present invention is as follows: Figure 1As shown, it includes the following main functional bodies: user equipment, SMR (Smart Mobile Router) equipment and SAR (Smart Aggregation Router) equipment. User equipment communicates through multiple heterogeneous network fusion channels built by SMR-SAR. Any number of client devices and any number of server devices communicate through the SMR-SAR multi-path transmission architecture.
[0057] A method for parallel data transmission in a mobile heterogeneous network provided by an embodiment of the present invention is deployed on SMR and SAR respectively. The processing flow of the method includes the following steps:
[0058] Step A: Data packet transmission and link selection process. The sender receives and stores the data packet to be sent, detects the link status, selects the link for sending the data packet, and uses the data packet scheduling algorithm to send the data packet on the sending link;
[0059] Step B: Data packet reception and head-of-line blocking processing: The receiver receives data packets on the above transmission link, sorts the data packets, quickly retransmits the potentially lost data packets, and dynamically adjusts the buffer threshold.
[0060] The process of sending a data packet and selecting a link in step A provided by the embodiment of the present invention is as follows: Figure 2 As shown, the processing includes the following:
[0061] Step A1: The sender monitors the network ports of multiple links, monitors the data packets sent from all links, and receives the arriving data packets in an asynchronous non-blocking manner;
[0062] Step A2: Generate data packet sequence numbers according to the arrival order of the data packets and encapsulate them into a dedicated data packet header;
[0063] Maintain a variable for the data packet sequence number. For a new data packet, add 1 to the sequence number as the sequence number of this data packet. Based on the original data packet, encapsulate the custom header and use the data packet sequence number as the header information.
[0064] Step A3: fetch the corresponding data packet from the sending buffer according to the sequence number;
[0065] After determining that it is a retransmission request packet, enter the data packet retransmission process, and take out the corresponding data packet from the sending buffer according to the sequence number in the retransmission request packet;
[0066] Step A4: Add the data packet to the sending cache and store it in the form of a Map, where the key is the sequence number of the data packet, the value is the corresponding data packet, and clear the data packet that has arrived; the Map here establishes a fast mapping from the sequence number of the data packet to the content of the data packet. The key is the sequence number of the data packet, and the value is the corresponding data packet. When storing, the system sorts the keys by sequence number and records the mapping relationship from key to value. When calling data, the data packet can be quickly located according to the sequence number.
[0067] Step A5: Call the system function at fixed time intervals to detect the status of the link, parse the detection results of the system function, update and record the number of data packets still in the sending buffer and in the link, obtain the link delay information, and update the link delay information and other status information.
[0068] The above time interval may be 10 ms.
[0069] Step A6: The link status is classified into initial state, idle state, busy state and congested state according to the link sending queue, the number of data packets in the link and the delay information. The scheduling priority of the initial state, idle state, busy state and congested state links decreases in sequence.
[0070] For a system that has just been initialized and has not sent any data packets, it is set to the initial state;
[0071] Step A7: The sender selects the link with the highest scheduling priority as the link for sending the data packet according to the link status detection and link classification results. The data packet encapsulated in step A1 is scheduled for sending;
[0072] Step A7: Schedule and send according to the link status detection and classification results according to the scheduling algorithm;
[0073] The processing flow of a scheduling algorithm provided by an embodiment of the present invention is as follows: Figure 4 As shown, the processing steps include:
[0074] Step A7-1: Determine whether the number of links in the blocked state exceeds a threshold. If it exceeds the threshold, proceed to A7-5; otherwise, proceed to A7-2.
[0075] Step A7-2: Select a link set with the highest link status level;
[0076] Step A7-3: Select a link to be sent from a set of links with the same link status according to the delay;
[0077] Step A7-5: The whole system enters the guaranteed state, where data packets are redundantly sent to ensure reliable transmission;
[0078] Step A7-6: Duplicate the data packet and send it through multiple links for redundancy.
[0079] The embodiment of the present invention provides a step B data packet receiving and head-of-line blocking processing process as follows Figure 3 As shown, the processing steps include the following:
[0080] Step B1: The receiver monitors all links where data packets arrive and receives data packets. It initializes the receiving buffer and puts the data packets arriving on the link into the receiving buffer;
[0081] Step B2: decapsulate the data packet, obtain the datagram header information encapsulated in step A2, and extract the encapsulated data packet sequence number;
[0082] Step B3: Compare the sequence number of the data packet with the existing set of arrived data packets to determine whether the data packet is a duplicate data packet that has arrived. Duplicate data packets are directly discarded, otherwise proceed to step B4;
[0083] Step B4: Determine the relationship between the sequence number of the currently arrived data packet and the sequence number of the next data packet expected to arrive;
[0084] If the sequence number of the current data packet is less than the sequence number of the expected packet, it means that the previous data packets have been forwarded, and the data packet should be forwarded immediately, and the process goes to step B10;
[0085] If the sequence number of the current data packet is equal to the sequence number of the expected packet, it means that the data packet that has arrived is exactly the next data packet that is expected, and should be forwarded immediately, and the process goes to step B10;
[0086] If the sequence number of the current data packet is less than the sequence number of the expected packet, the process goes to step B5;
[0087] Step B5: judging whether packet loss occurs based on the relationship between the data packets in the cache;
[0088] For a data packet that has not arrived, a data packet with a smaller sequence number has arrived on the same link, and this data packet is determined to be a potential lost data packet;
[0089] If there is potential packet loss, go to B6, otherwise go to B7;
[0090] Step B6: construct and send a retransmission request packet;
[0091] Construct a retransmission request packet, the request sequence number is the lost data packet;
[0092] Evaluate the link with the shortest delay and send a retransmission request packet from this link;
[0093] Step B7: Determine whether the ordered packets that have arrived in the buffer exceed the quantity threshold. If they exceed the threshold, proceed to Step B10 to deliver this part of the ordered data packets; otherwise, proceed to B8.
[0094] Determine whether the ordered packets that have arrived in the buffer exceed the quantity threshold. If they exceed the threshold, proceed to B10 to deliver this part of the data packets.
[0095] Step B8: Determine whether the oldest data packet in the buffer has reached the buffer time threshold. If it exceeds the threshold, proceed to Step B10 to deliver this part of the ordered data packets; otherwise, proceed to B9.
[0096] Determine whether the oldest data packet in the buffer has reached the set buffer time threshold. If it exceeds the threshold, proceed to B10 to deliver this part of the data packets.
[0097] Step B9: Adjust the buffer time threshold in Step B8 according to the delay conditions of each link.
[0098] Calculate the maximum delay in the link and the ratio of out-of-order data packets in the buffer, and adjust the calculation parameters in Step B9-1 according to the threshold adjustment algorithm to adjust the threshold in Step B8; calculate the delay difference between the maximum transmission delay and the minimum transmission delay in all links, denoted as dt. The ratio of out-of-order data packets is r(0 < r < 1), and the adjusted buffer time threshold is:
[0099]
[0100] Step B10: Forward the data packets to the destination subnet according to the routing and deliver them to the destination address.
[0101] Forward the data packets to be forwarded to the destination subnet according to their destination addresses and return to Step B1.
[0102] In summary, the embodiments of the present invention adopt active detection and update of link status and a hierarchical scheduling mechanism, which can achieve reliable transmission in scenarios with fluctuations in delay and packet loss rate.
[0103] The present invention can ensure that serious head-of-line blocking does not occur in a severely fluctuating transmission environment, and guarantee the stability of the transmission bandwidth.
[0104] The present invention can transfer data packets to other links for transmission in the case of a blockage on a single link, avoiding blockage of the entire system.
[0105] Those of ordinary skill in the art can understand that the drawings are only schematic diagrams of an embodiment, and the modules or processes in the drawings are not necessarily essential for implementing the present invention.
[0106] It can be known from the description of the above implementation methods that those skilled in the art can clearly understand that the present invention can be implemented by means of software plus a necessary general hardware platform. Based on such an understanding, the technical solution of the present invention is essentially or the part that contributes to the prior art can be embodied in the form of a software product, which can be stored in a storage medium such as ROM / RAM, a magnetic disk, an optical disk, etc., and includes a number of instructions for enabling a computer device (which can be a personal computer, a server, or a network device, etc.) to execute the methods described in the various embodiments of the present invention or certain parts of the embodiments.
[0107] Each embodiment in this specification is described in a progressive manner, and the same or similar parts between the embodiments can be referred to each other, and each embodiment focuses on the differences from other embodiments. In particular, for the device or system embodiment, since it is basically similar to the method embodiment, the description is relatively simple, and the relevant parts can be referred to the partial description of the method embodiment. The device and system embodiments described above are merely schematic, wherein the units described as separate components may or may not be physically separated, and the components displayed as units may or may not be physical units, that is, they may be located in one place, or they may be distributed on multiple network units. Some or all of the modules may be selected according to actual needs to achieve the purpose of the scheme of this embodiment. Ordinary technicians in this field can understand and implement it without paying creative labor.
[0108] The above is only a preferred specific embodiment of the present invention, but the protection scope of the present invention is not limited thereto. Any changes or substitutions that can be easily thought of by a person skilled in the art within the technical scope disclosed by the present invention should be included in the protection scope of the present invention. Therefore, the protection scope of the present invention should be based on the protection scope of the claims.
Claims
1. A method for parallel data transmission in a mobile heterogeneous network, characterized in that: include: The sender receives and stores the data packet to be sent, detects the state of the link, selects a link for sending the data packet, and uses a data packet scheduling algorithm to send the data packet on the sending link; The receiving party receives the data packets on the sending link, sorts the data packets, and retransmits the potentially lost data packets.
2. The method according to claim 1, characterized in that The sender receives and stores the data packet to be sent, including: The sender monitors the network ports of multiple links, listens to the data packets sent by all links, and receives the arriving data packets in an asynchronous non-blocking manner; Generate a data packet sequence number according to the arrival order of the data packets, encapsulate a custom header based on the original data packet, and use the data packet sequence number as header information; Add the data packet to the sending cache and store it in the form of a Map, where the key is the sequence number of the data packet and the value is the corresponding data packet, and clear the data packets that have been sent.
3. The method according to claim 2, characterized in that The sender detects the state of the link and selects a link for sending the data packet, including: The sender calls the system function at fixed time intervals to detect the state of the link, analyzes the detection results of the system function, updates and records the number of data packets still in the sending buffer and in the link, and obtains the delay information of the link; The sender classifies the link status according to the link sending queue and the number of data packets in the link and the delay information, and classifies the link status into initial state, idle state, busy state and congested state. The scheduling priorities of the initial state, idle state, busy state and congested state links decrease in sequence. The system that has just been initialized and has not sent data packets is set to the initial state; The sender selects the link with the highest scheduling priority as the link for sending the data packet.
4. The method according to claim 3, characterized in that The method of using a data packet scheduling algorithm to send a data packet on the sending link includes: Step A7-1: Determine whether the number of links in the blocked state exceeds a threshold. If it exceeds the threshold, proceed to A7-5; otherwise, proceed to A7-2. Step A7-2: Select a link set with the highest link status level; Step A7-3: Select a link to be sent from a set of links with the same link status according to the delay; Step A7-5: the whole system enters the security state; Step A7-6: Duplicate the data packet and send the redundant data packet through multiple links.
5. The method according to claim 1 or 2 or 3 or 4, characterized in that: The receiving party receives the data packets on the sending link, sorts the data packets, and retransmits the potentially lost data packets, including: Step B1: The receiver monitors all links where data packets arrive, receives data packets, initializes the receiving buffer, and puts the data packets arriving on the link into the receiving buffer; Step B2: decapsulate the data packet, obtain the encapsulated datagram header information, and extract the encapsulated data packet sequence number; Step B3: Compare the sequence number of the data packet with the existing set of arrived data packets to determine whether the data packet is a duplicate data packet that has arrived. Duplicate data packets are directly discarded, otherwise proceed to step B4; Step B4: Determine the relationship between the sequence number of the currently arrived data packet and the sequence number of the next data packet expected to arrive; If the sequence number of the current data packet is less than the sequence number of the expected packet, the data packet is forwarded and the process goes to step B10; The current data packet sequence number is equal to the expected packet sequence number, and the data packet is forwarded, and the process goes to step B10; If the sequence number of the current data packet is less than the sequence number of the expected packet, the process goes to step B5; Step B5: For a certain data packet that has not arrived, a data packet with a smaller sequence number has arrived on the same link, and the data packet is determined to be a potential lost data packet; If there is potential packet loss, go to B6, otherwise go to B7; Step B6: construct a retransmission request packet, the request sequence number of which is the lost data packet; Evaluate the link with the shortest delay and send a retransmission request packet from this link; Step B7: Determine whether the number of orderly arriving data packets in the cache exceeds the threshold value. If it exceeds the threshold value, go to step B10 to deliver this part of orderly arriving data packets; otherwise, go to B8; Step B8: Determine whether the oldest data packet in the cache has reached the threshold of the cache time. If it exceeds the threshold, go to step B10 to deliver this part of the data packet; otherwise, go to B9; Step B9: adjusting the buffering time threshold in step B8 according to the delay of each link; Calculate the maximum delay in the link and the proportion of packets that do not arrive in order in the cache, and adjust the threshold value in step B8 using a threshold adjustment algorithm according to the proportion of packets; Step B10: forward the data packet to be forwarded to the destination subnet according to its destination address, and return to step B1.
6. The method according to claim 1, characterized in that The mobile heterogeneous network includes a smart mobile router heterogeneous network, and the sender and receiver are smart mobile routers SMR or smart aggregation routers SAR.