A reliable data transmission method and device based on subpath in wireless network

By constructing a reliable data transmission method based on sub-paths in a wireless network, using channel quality update, hop-by-hop congestion control and fast retransmission, the problems of high packet loss rate and long delay caused by underutilization of sub-paths in the prior art are solved, and efficient and reliable data transmission is achieved.

CN119277470BActive Publication Date: 2025-03-14ZHEJIANG LAB
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202411789485.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2024-12-06
Publication Date
2025-03-14
Estimated Expiration
2044-12-06

AI Technical Summary

Technical Problem

The existing wireless network protocols fail to make full use of sub-paths, resulting in high packet loss rate and long data delivery delays in the face of wireless noise, interference and channel contention, affecting reliability.

Method used

By constructing a reliable data transmission method based on sub-paths in a wireless network, consumer nodes build master sub-path routing and backup sub-path routing by initiating interest request packets, and during the data transmission process, channel quality updates and hop-by-hop congestion control and fast retransmission are used to ensure that data is transmitted along the most reliable sub-path.

Benefits of technology

Effectively reduces packet loss rate and data delivery delay, improves data transmission reliability in wireless networks, and can quickly mitigate failures and improve performance in dynamic environments.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119277470B_ABST
    Figure CN119277470B_ABST
Patent Text Reader

Abstract

The present invention discloses a reliable data transmission method and device based on subpaths in a wireless network. The method constructs subpath routing through a single data packet propagation mode to find the data source; on each hop, dynamically selects a local reliable subpath, gives priority to balanced channel quality and hop count indicators, and adopts an efficient congestion control mechanism and fast retransmission, using the least message overhead to respond to data sending events and confirmation information from downstream nodes, providing a strong data transmission capability for wireless network data transmission. The present invention can skip bad subpaths, and control and guide through hop-by-hop congestion control and fast retransmission, and control balanced fault switching on subpath routing; the present invention provides data transmission capabilities with low packet loss rate and low latency, quickly alleviates faults and improves performance, thereby providing reliable data transmission for related wireless network application scenarios.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the technical field of computer networks and the Internet of Things, and in particular to a reliable data transmission method and device based on subpaths in a wireless network. Background Art

[0002] Achieving reliable data transmission in wireless networks is critical to ensuring high-quality monitoring applications. However, performance can be severely affected by inevitable packet loss caused by wireless noise, interference, and channel contention, and reliability is critical in areas such as environmental monitoring, industry, agriculture, smart grids, and medical systems. For example, in wildfire detection, robust transmission can provide timely monitoring data to prevent widespread forest damage. Therefore, it is crucial to ensure reliable transmission of data in wireless networks and minimize end-to-end packet loss and end-to-end data delivery delays. Robust data transmission protocols are required in wireless network transmission.

[0003] Despite significant progress in enhancing wireless transmission control protocols, existing protocols have overlooked subpaths, i.e., available transmission paths between nodes and destination nodes, which are essential for efficient transmission and a critical gap remains in leveraging subpaths to improve reliability. Subpaths refer to paths between intermediate nodes and receiving nodes, which provide more rerouting options and have higher reliability than traditional end-to-end paths, such as those used by TCP and UDP. Current routing protocols, such as AODV (IETF RFC 3561), DSR (IETF RFC 4728), and DSDV, mainly optimize end-to-end paths and do not fully utilize subpaths. In addition, works such as fast reroute only establish backup routes on the main route and ignore subpaths outside the main route as additional rerouting options. These approaches limit the reliability of supported data transmission protocols.

[0004] Therefore, this limitation prevents these protocols from effectively controlling congestion and retransmissions by dynamically selecting more reliable subpaths. These reliable subpaths not only contain a small number of hops, but also utilize channels with high channel quality (CQ). CQ represents the probability of successfully receiving a modulated packet from a signal. For example, CQ usually refers to the Signal-to-Interference-Plus-Noise Ratio (SINR), which is measured at the receiving end and must exceed a certain threshold for successful reception. If the current subpath is unreliable, the protocol will have difficulties in managing congestion and packet loss, especially in dynamic environments prone to local congestion and channel failures. This leads to higher packet loss rates and longer data delivery delays, ultimately reducing reliability. Therefore, it is crucial to make full use of the subpaths.

[0005] The challenges in solving this problem are both complex and subtle. First, determining which subpath is more reliable using the least number of messages when constructing loop-free subpath routes is complex. This is not simply a matter of counting hops or measuring round-trip time; the key point is that any subpath with a lower CQ may significantly increase the probability of packet loss. Current approaches using CQ focus primarily on end-to-end paths while neglecting subpaths. Furthermore, the exponential growth of feasible paths at each hop requires an effective subpath structure for scalability. Second, making full use of subpaths to minimize packet loss and data delivery latency requires a subpath-based control strategy for the number of hops within each path. The strategy should effectively manage local congestion and retransmit packet loads on dynamically selected reliable subpaths, while minimizing message exchanges even in the presence of unfavorable CQ.

[0006] Recently, work on wireless networks has sparked significant interest in innovative Named-Data Networking (NDN) architectures. NDN stands out for its demand-based data retrieval capabilities and flexibility in designing data transmission strategies. These features can leverage in-network data processing, efficient content storage, and strong security measures. With these advantages, NDN provides a good platform support for enhancing data transmission reliability.

[0007] NDN provides a scalable message stack and an interest-based data retrieval mode, integrating efficient in-path caching capabilities. The architecture can be seamlessly integrated with wireless communications. NDN messages include Interest packets and Data packets, which consist of a variable-size field using a type-length-value (TLV) structure. With TLV, each message contains a prefix name in the universal resource identifier format (refer to IETF RFC 3986). The Data packet carries a payload and its source identity can be verified by the sender's signature.

[0008] To exchange messages, each NDN node interacts with the underlying wireless network interface that supports protocols such as the IEEE 802.11 series through packet encapsulation and decapsulation. In this process, logical link control and IEEE 802.11 headers are added and removed respectively. A node can successfully receive a data packet only if its SINR is high enough. At the same time, the node can broadcast the data packet so that all neighbor nodes can receive the data packet.

[0009] In the basic data transmission process of NDN, NDN nodes are distributed in a mesh topology, and each node is equipped with a wireless antenna. Each hop within the path can process and cache data packets according to specific policies. The cache depends on the customizable content storage (CS), which can adopt a tree or queue structure. A node (consumer) sends an Interest packet to obtain data from the producer. After receiving the Interest packet, each router only propagates the packet without forwarding it. Finally, the propagation path is established, and the producer then returns the requested data packet to the consumer, and each hop within each path can cache the data. The challenge of the present invention is to efficiently construct sub-paths and reliable and efficient transmission control. Summary of the invention

[0010] The object of the present invention is to provide a sub-path based reliable data transmission method and device in a wireless network in view of the deficiencies in the prior art.

[0011] The objective of the present invention is achieved through the following technical solutions: A first aspect of an embodiment of the present invention provides a reliable data transmission method based on a subpath in a wireless network, comprising the following process:

[0012] The consumer node constructs the subpath route by initiating a single interest request packet propagation to determine the producer node to obtain the primary subpath route and the backup subpath route;

[0013] When each router node receives an interest message, capsule message, capsule confirmation message, or echo message, it periodically updates its local channel quality;

[0014] The established primary sub-path routing and backup sub-path routing are used to guide the data transmission control process of each hop, specifically: the data content to be transmitted is contained in a capsule data packet, each capsule data packet also contains a path vector, after the current node receives the capsule data packet of the upstream hop, the intra-path hop updates the downstream part of the path vector to an available and loop-free reliable sub-path, the reliable sub-path selects a primary sub-path or a backup sub-path with balanced channel quality, and each hop forwards the capsule data packet along the maximum reliable sub-path through the above process; wherein, during the data transmission process, each node performs congestion control and fast retransmission when receiving valid feedback, and the valid feedback includes implicit feedback and explicit feedback.

[0015] Further, the consumer node constructs a subpath route by initiating a single interest request packet propagation to determine the producer node to obtain a primary subpath route and a backup subpath route, specifically including:

[0016] The consumer node sends an interest request packet to the producer node to obtain data. After receiving the interest request packet, each node in the process only propagates the interest request packet without forwarding it to determine the sub-path route from the producer node to the current node, and finally obtains the main sub-path route and the backup sub-path route to provide path pointing for the data transmission process.

[0017] Furthermore, the parameters carried by the interest message include prefix, , id, prev and end, the payload carried by the interest message includes and , where prefix indicates the content prefix name, represents the consumer node, id represents the identification ID, prev represents the node ID that sends the currently received capsule message, and end represents the flag that terminates the current data acquisition process. Represents the path vector, which is composed of the vector of node IDs. It represents the signal-to-noise ratio of the message received by each hop in the path vector from its adjacent previous hop;

[0018] The parameters carried by the capsule message include prefix, ,id, and prev, the payload carried by the capsule message includes payload data, wherein the payload data is the data content to be transmitted by the application;

[0019] The parameters carried in the capsule confirmation message include prefix, ,id, and ,in represents the downstream node, Indicates the upstream node;

[0020] The parameters carried by the echo message include ,in Represents a neighbor node.

[0021] Furthermore, the implicit feedback is implemented by the following method: after receiving the capsule data packet, the downstream node of the current subpath generates implicit feedback by using the broadcast of the wireless network, that is, the downstream node sends the capsule message to the upstream node by using the broadcast of the wireless network, and the capsule message is received by the upstream node, which is the implicit feedback;

[0022] The explicit feedback is implemented by the following method: when a downstream node of the current subpath receives a duplicate capsule data packet, the downstream node sends a capsule confirmation message to the upstream node, which is explicit feedback.

[0023] Further, each node performs congestion control and fast retransmission upon receiving valid feedback, specifically including:

[0024] When each node receives valid feedback, the congestion control adjusts the congestion control window size of the capsule data packet sending queue according to the principles of additive increase and multiplicative decrease, and the congestion control window size is adjusted only when the next hop of the subpath maintains sufficient channel quality; congestion control sends capsule data packets in sequence until the preset congestion control window size threshold, and triggers fast retransmission when the feedback timeouts, and fast retransmission will continue until valid feedback is received; capsule data packets that have not been successfully transmitted will wait in the queue for the next transmission opportunity; during the transmission process, the consumer node efficiently reorders the received out-of-order capsule data packets within the specified arrival timeout.

[0025] A second aspect of an embodiment of the present invention provides a sub-path-based reliable data transmission device in a wireless network, which is used to implement the above-mentioned sub-path-based reliable data transmission method in a wireless network, including:

[0026] An interest message processing module, used to construct and manage sub-path routes according to received interest messages, wherein the sub-path routes include primary sub-path routes and backup sub-path routes;

[0027] A channel quality update module, used to update the channel quality status in the local sub-path routing and start congestion control;

[0028] The periodic echo module is used to set a time period for sending echo messages. , according to the time period Send echo messages periodically until the program ends;

[0029] An echo message processing module, used for processing received echo messages;

[0030] A capsule message processing module, used for processing received capsule messages;

[0031] A capsule response processing module, used for processing the received capsule confirmation message;

[0032] A feedback processing module is used to process explicit feedback and implicit feedback received by the current node from downstream nodes;

[0033] A sending queue capsule message module, used to send capsule data packets cached in the queue; and

[0034] The capsule message sending module is used to resend the capsule message multiple times through the indicators of the sub-path until feedback is received.

[0035] Furthermore, the workflow of the interest message processing module specifically includes:

[0036] S101: When the data packet received by the interest message processing module If it is an interest data packet, the following steps are executed and the channel quality update module is called;

[0037] S102, if the current node , then the processing flow of the interest message processing module ends; otherwise, Add to In the example, the signal-to-noise ratio of the interest packet is added to , and then continue to perform the following steps;

[0038] S103: If the end in the interest data packet is an error flag false, query the prefix and If the item does not exist, As T Add to T, add the prefix of the interest data packet to T as the prefix of T to complete Creation of records, Records include S, ,H, , cwnd and ssth, and set S, queue and set H is initialized to be empty, Set to , set cwnd and ssth to and , where T represents the mapping state information from consumer ID and content prefix to transmission state, S represents the mapping set from data ID to its capsule sending state, and the set S includes event, time and , event indicates the ID of the capsule sending event, times indicates the number of capsule sending times, Indicates the downstream node ID, represents a first-in, first-out queue containing capsules waiting to be sent, H represents a set of hash values, each value in the set H is a complete combination of the previously sent data ID and its next hop ID, Indicates subpath routing, , cwnd represents the congestion control window size, ssth represents the slow start threshold, Indicates the initial congestion control size, represents the initial slow start threshold; if this item exists, jump directly to step S104; if the end in the interest data packet is the correct flag true and the prefix and If the item exists, jump to step S105; otherwise, end the processing flow of the interest message processing module;

[0039] S104: If the content corresponding to the prefix stored in the current node has been published in the current node and has never received a data packet , then the data packet Send to the upper layer application; if the content corresponding to the prefix stored in the current node has not been published in the current node, jump to step S105; otherwise, end the processing flow of the interest message processing module;

[0040] S105, the data packet Repeated sending times, and wait for a time less than or equal to A random time, where Indicates the maximum number of retries for sending interest packets per hop. Indicates the maximum waiting time for sending interest packets per hop;

[0041] The workflow of the capsule message processing module specifically includes:

[0042] S501: When the capsule message processing module receives a data packet If it is a capsule data packet, the following steps are performed;

[0043] S502, if , then call the channel quality update module; otherwise, do not call the channel quality update module and directly jump to step S503;

[0044] S503: Query mapping status information ,set up , where hash represents a hash function;

[0045] S504, if Not empty and the data packet From upstream, Based on Given the next hop, calculate ;if Not empty and the data packet If it comes from downstream, the feedback processing module is called; otherwise, the processing flow of the capsule message processing module ends;

[0046] S505, if , then the data packet Push into ,in express In , and call the send queue capsule message module, and record the number of capsule data packets sent by the send queue capsule message module as ; Otherwise, the processing flow of the capsule message processing module ends;

[0047] S506, if ,but , further if , a capsule confirmation message is sent. The parameters carried in the capsule confirmation message include prefix, ,id, and , and assign them to the prefix, ,id, and ; Otherwise, the processing flow of the capsule message processing module ends;

[0048] S507, if , then add h to H in the packet Send to application;

[0049] The workflow of the capsule response processing module specifically includes:

[0050] S601: When the capsule responds to the data packet received by the processing module If it is a capsule confirmation data packet, the following steps are executed;

[0051] S602, calling a channel quality update module;

[0052] S603, if , and T contains prefix and The elements of , the feedback processing module is called.

[0053] Furthermore, the workflow of the channel quality update module specifically includes:

[0054] S201, if the current node From the jth neighbor node Received data packet , then execute the following steps; if the current node No data received from neighboring nodes Data Packet , then set , , where broken represents a neighbor node and the current node The channel between them is disconnected and the current time is saved as , ending the processing flow of the channel quality update module;

[0055] S202, calculate the number of packets received from the jth neighbor node according to formula (1) The signal-to-noise ratio estimation ;

[0056] (1)

[0057] in, Indicates data packet The signal-to-noise ratio, express The smoothing parameter, arrival indicates the number of nodes received from neighbor nodes. Data Packet , no arrival means no arrival from neighboring nodes Data Packet ;

[0058] S203, calculate the data packet according to formula (2) Inter-arrival time ;

[0059] (2)

[0060] in, Indicates data packet The propagation rate, Indicates data packet A known upper bound on the inter-arrival time, represents the confidence ratio;

[0061] S204, Calculation , ;

[0062] S205. Get the current time ;

[0063] S206, if Any one of T In the example, when any message arrives, the cwnd and ssth contained in all T are adjusted according to the adjustment rules, and the send queue capsule message module is called; the adjustment rules are as follows: if cwnd = 0, then ,and ;

[0064] S207, from Start waiting for less than or equal to If a message arrives within the specified time, return to step S201.

[0065] Furthermore, the workflow of the feedback processing module specifically includes:

[0066] S701. When the packet received by the feedback processing module is a capsule or capsule confirmation packet, determine whether the packet is a capsule packet. If the packet is a capsule packet, then , where represents the ID of the downstream node sending the feedback; otherwise ; calculate ;

[0067] S702. If , then interrupt the execution event of , delete , calculate ; otherwise, end the processing flow of the feedback processing module;

[0068] S703. If , then adjust all cwnd and ssth in according to the received feedback. Specifically: adjust cwnd according to formula (3), and adjust ssth according to formula (4); otherwise, do not adjust the cwnd and ssth in;

[0069] (3)

[0070] (4)

[0071] S704. Delete the id item in , and add h to ;

[0072] S705. Call the send queue capsule message module.

[0073] Furthermore, the working process of the send queue capsule message module specifically includes:

[0074] S801. Let i = 0, ;

[0075] S802. If i < k, then pop a capsule packet from , call the send capsule message module, and i = i + 1; if , then directly jump to step S803; otherwise, end the processing flow of the send queue capsule message module;

[0076] S803. Return to step S802;

[0077] The working process of the send capsule message module specifically includes:

[0078] S901: When the data packet received by the interest message processing module is a capsule data packet, and If it is not empty, execute the following steps; otherwise, end the processing flow of the interest message processing module;

[0079] S902, define S, ,H, yes Members of , where times=0 in S, ;

[0080] S903, for ,if is a prefix of r and r is available, then ;otherwise, ;

[0081] S904, if , then let k represent the number of retransmissions, and retransmissions The current optimal subpath is ;

[0082] S905, if or ,but ,in Indicates the maximum number of retries for sending capsule packets per hop. Indicates along the path The next hop; if or , then delete ,recover The idth capsule packet in the , and adjust cwnd and ssth according to the following adjustment rules, where the adjustment rules are as follows: if the next hop is available, then adjust Otherwise, cwnd is adjusted to 0, and ssth is adjusted to ; Then end the subsequent execution steps;

[0083] S906, if , then delete ,from Delete id and define for All upstream nodes in the send capsule confirmation message;

[0084] S907, Calculation , the data packet In Modified to , prev is changed to , to update the data package , resend the updated data packet , calculate times = times + 1, let is the current time, All downstream nodes in are added to middle;

[0085] S908, Time to start waiting is less than or equal to Time, of which Indicates the timeout period for each capsule to be sent. If the waiting period is interrupted, the processing flow of the capsule message sending module ends; otherwise, continue to wait for the data packet be received;

[0086] S909, jump to step S903.

[0087] The beneficial effect of the present invention is that, by providing sub-path data transmission control for wireless networks, each module of the present invention dynamically constructs sub-path routing and processes transmission, so that bad sub-paths can be skipped, and control and guidance are performed through hop-by-hop congestion control and fast retransmission; the control performs balanced fault switching on sub-path routing and adjusts changes in congestion windows according to changes in channel quality; these robust methods enable it to quickly alleviate faults and improve performance, thereby providing reliable data transmission for related wireless network application scenarios. BRIEF DESCRIPTION OF THE DRAWINGS

[0088] Figure 1 is a flow chart of a sub-path-based reliable data transmission method in a wireless network of the present invention;

[0089] Figure 2 is a flow chart of the architecture of a reliable data transmission device based on sub-paths in a wireless network of the present invention;

[0090] Figure 3 It is the workflow and state change diagram of the interest message processing module of the present invention;

[0091] Figure 4 It is the workflow of the channel quality update module of the present invention and its state change diagram;

[0092] Figure 5 It is the working process of the periodic echo module of the present invention and its state change diagram;

[0093] Figure 6 It is a workflow and state change diagram of the capsule message processing module of the present invention;

[0094] Figure 7It is a work flow and state change diagram of the capsule response processing module of the present invention;

[0095] Figure 8 It is the workflow of the feedback processing module of the present invention and its state change diagram;

[0096] Fig. 9 It is a workflow and state change diagram of the sending queue capsule message module of the present invention;

[0097] Fig.10 It is a workflow of the capsule message sending module of the present invention and its state change diagram;

[0098] Fig.11 It is an example diagram of the deployment environment of the network topology of the present invention and its sub-path routing. DETAILED DESCRIPTION

[0099] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with the present invention. Instead, they are merely examples of devices and methods consistent with some aspects of the present invention as detailed in the appended claims.

[0100] The terms used in the present invention are only for the purpose of describing specific embodiments and are not intended to limit the present invention. The singular forms "a", "the" and "the" used in the present invention and the appended claims are also intended to include plural forms unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to and includes any or all possible combinations of one or more associated listed items.

[0101] It should be understood that although the terms first, second, third, etc. may be used in the present invention to describe various information, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of the present invention, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".

[0102] The present invention is described in detail below in conjunction with the accompanying drawings. In the absence of conflict, the features of the following embodiments and implementations can be combined with each other.

[0103] The purpose of the present invention is to provide a method and device for reliable data transmission based on subpaths in wireless networks (ResilientSubpath-based NDN Transport Protocol, RNTP), which solves the problem of using subpath transmission in wireless networks based on the existing Named-Data Networking (NDN) architecture. The RNTP method and device minimize the packet loss rate and achieve shorter delay by utilizing available subpaths.

[0104] Example 1

[0105] See also Figure 1 The reliable data transmission method based on subpaths in a wireless network of the present invention specifically includes the following process:

[0106] (1) The consumer node constructs a subpath route by initiating a single Interest request packet propagation to determine the producer node to obtain the primary subpath route and the backup subpath route.

[0107] Specifically, the consumer node sends an Interest request packet to the producer node to obtain data. After receiving the Interest request packet, each router node in the process only propagates the Interest request packet without forwarding it to determine the sub-path route from the producer node to the current router node, and finally obtains the main sub-path route and the backup sub-path route to provide path guidance for the data transmission process.

[0108] (2) When each router node receives an Interest message, Capsule message, Capsule acknowledgment (CapAck) message, or Echo message, it periodically updates its local channel quality (CQ) to adapt to the changing channel conditions.

[0109] Furthermore, the parameters carried by the Interest message include prefix, , id, prev and end. The payload carried by the Interest message includes and , where prefix indicates the content prefix name, Indicates the consumer node, id indicates the identification ID, prev indicates the ID of the node that sends the currently received Capsule message, and end indicates the sign of terminating the current data acquisition process. Represents the path vector, which is composed of the vector of node IDs. It indicates the signal-to-interference-plus-noise ratio (SINR) of each hop in the path vector receiving the message from its adjacent previous hop, and also indicates the path vector The parameters carried by the Capsule message include prefix, ,id, The payload carried by the Capsule message includes payload data, where the payload data is the data content to be transmitted by the application. The parameters carried by the CapAck message include prefix, ,id, and ,in represents the downstream node, Indicates the upstream node. The parameters carried in the Echo message include ,in Represents a neighbor node.

[0110] It should be understood that the above-mentioned Interest message, Capsule message, CapAck message and Echo message are all message types involved in the RNTP method and apparatus.

[0111] (3) Using the established main sub-path routing and backup sub-path routing to guide the data transmission control process of each hop can ensure the reliability of data transmission. Specifically, the data content to be transmitted is contained in the Capsule data packet. Each Capsule data packet also contains a path vector. After the current node receives the Capsule data packet from the upstream hop, the intra-path hop updates the downstream part of the path vector to an available and loop-free highly reliable sub-path. The reliable sub-path selects the main sub-path or backup sub-path with balanced channel quality. In this way, each hop forwards the Capsule data packet along the maximum reliable sub-path, which can effectively avoid sub-paths with poor CQ and potential failures. The use of this path vector also improves transmission efficiency, allowing the Capsule data packet to bypass the intermediate hops. This process realizes sub-path-based transmission. In the data transmission process, each node performs congestion control and fast retransmission when receiving valid feedback. Valid feedback includes implicit feedback and explicit feedback.

[0112] It should be understood that the available and loop-free highly reliable sub-path needs to select a primary sub-path or a backup sub-path with balanced channel quality, which can avoid the problem of excessive bandwidth consumption and performance degradation in the sub-path.

[0113] Furthermore, implicit feedback is implemented by the following method: after the downstream node of the current subpath receives the Capsule data packet, it generates implicit feedback by using the broadcast of the wireless network, that is, the downstream node sends the Capsule message to the upstream node by using the broadcast of the wireless network. If the Capsule message is received by the upstream node, it means that the downstream node has definitely received the Capsule data packet, which is implicit feedback.

[0114] Furthermore, explicit feedback is implemented by the following method: when a downstream node of the current sub-path receives a duplicate Capsule data packet, the downstream node sends a CapAck message to the upstream node, which is explicit feedback.

[0115] It should be understood that during the data transmission process, each downstream node will generate implicit feedback or explicit feedback, and the current node will select one of the implicit feedback and explicit feedback for processing. There may be more than one upstream node. For example, the Capsule data packet received by the downstream node does not come from the nearest node, but from a farther node. At this time, the nearest node also needs to know that the downstream node has received the Capsule data packet, and implicit feedback can play a good role. Explicit feedback is transmitted through the CapAck message sent by the downstream node to confirm the final delivery to the consumer or repeated reception, which can optimize the message efficiency. That is, explicit feedback (CapAck message) is used only when the downstream node receives duplicate Capsule data packets. Usually, explicit feedback is used only when implicit feedback fails, which can reduce the number of explicit feedback messages.

[0116] Furthermore, each node performs congestion control and fast retransmission when receiving valid feedback, including: when each node receives valid feedback, congestion control will adjust the congestion control window size (CWnd) of the capsule data packet sending queue according to the traditional additive increase and multiplicative decrease (AIMD) principle, and the congestion control window size will be adjusted only when the next hop of the sub-path maintains sufficient CQ to avoid unnecessary transmission; congestion control sends capsule data packets in sequence until the preset congestion control window size threshold to manage congestion, and triggers fast retransmission when the feedback timeouts; fast retransmission will continue until valid feedback is received; unsuccessfully transmitted capsule data packets will wait in the queue for the next transmission opportunity; during the transmission process, the consumer node efficiently reorders the received out-of-order capsule data packets within the specified arrival timeout. This sub-path-based hop-by-hop transmission control strategy enhances overall reliability.

[0117] Example 2

[0118] It is worth mentioning that the embodiment of the present invention further provides a reliable data transmission device based on a sub-path in a wireless network, which is used to implement the reliable data transmission method based on a sub-path in a wireless network in the above embodiment. Figure 2 As shown, the device includes interest message processing (ON_INTEREST ) module, channel quality update (UPDATE_CQ ) module, periodic echo (PERIODIC_ECHO ) module, echo message processing (ON_ECHO ) module, capsule message processing (ON_CAPSULE ) module, capsule response processing (ON_CAPACK ) module, feedback processing (DEAL_FEEDBACK ) module, send queue capsule message (SEND_CAP_IN_Q ) module and send capsule message (SEND_CAP ) module. The RNTP device runs in the NDN router and communicates with related routers in the NDN router through the wireless interface.

[0119] In this embodiment, the interest message processing module is used to construct and manage sub-path routes according to the received Interest message, wherein the sub-path routes include primary sub-path routes and backup sub-path routes.

[0120] Furthermore, if Figure 3 As shown, the workflow of the interest message processing module specifically includes:

[0121] S101: When the data packet received by the interest message processing module Is an Interest packet (carrying prefix, ,id,prev,end, and ), the following steps are executed and the channel quality update module is called. Indicates any data packet, which can be any of Interest, Capsule, CapAck, or Echo packets. When it is an Interest data packet, the interest message processing module will execute its processing flow.

[0122] It is easy to understand that the Interest data packet is a data packet composed of the Interest message. Therefore, it can be known that the Interest data packet carries prefix, ,id,prev,end, and .

[0123] S102, if the current node , then the processing flow of the interest message processing module ends; otherwise, Add to In the example, add the SINR of the Interest packet to , and then continue with the steps below.

[0124] S103: If the end in the Interest data packet is an error flag false, query the prefix and If the item does not exist, As T Add to T, add the prefix of the Interest data packet to T as the prefix of T to complete Creation of records, Records include S, ,H, , cwnd and ssth, and set S, queue and set H is initialized to be empty, Set to , set cwnd and ssth to and , where T represents the mapping state information from consumer ID and content prefix to transmission state, and S represents the mapping set from data ID to its Capsule sending state, for example , the set S includes events, times, and , event indicates the ID of the Capsule sending event, times indicates the number of times the Capsule is sent, Indicates the downstream node ID, represents a first-in, first-out (FIFO) queue containing capsules waiting to be sent. H represents a set of hash values. Each value in the set H is a complete combination of the previously sent data ID and its next hop ID. Indicates subpath routing, , cwnd represents the congestion control window size, ssth represents the slow start threshold, Indicates the initial congestion control size, Indicates the initial slow start threshold; if this item exists, jump directly to step S104; if the end in the Interest data packet is the correct flag true and the prefix and If the item exists, jump to step S105; otherwise, end the processing flow of the interest message processing module.

[0125] It should be noted that the device of the present invention includes 9 modules, and these modules share mapping status information. .

[0126] S104: If the content corresponding to the prefix stored in the current node has been published in the current node and has never received a data packet , then the data packet Sent to the upper-layer application; if the content corresponding to the prefix stored in the current node has not been published in the current node, jump to step S105; otherwise, end the processing flow of the interest message processing module.

[0127] It should be understood that whether the upper-layer application can process the Interest and Data messages in NDN can be customized by the user.

[0128] S105, the data packet Repeated sending times, and wait for a time less than or equal to A random time, where Indicates the maximum number of retries for sending interest packets per hop. Indicates the maximum waiting time for sending interest packets per hop.

[0129] In this embodiment, the channel quality update module is used to update the CQ state in the local sub-path routing and start congestion control.

[0130] Furthermore, if Figure 4 As shown, the workflow of the channel quality update module specifically includes:

[0131] S201, if the current node From the jth neighbor node Received data packet Time (packet If the SINR of the current node is known, the following steps are performed; No data received from neighboring nodes Data Packet , then set , , where broken represents a neighbor node and the current node The channel between them is disconnected and the current time is saved as , ending the processing flow of the channel quality update module.

[0132] S202, calculate the number of packets received from the jth neighbor node according to formula (1) SINR estimation :

[0133] (1)

[0134] Among them, SINR represents the data packet The signal-to-noise ratio, Represents the smoothing parameter of SINR, arrival represents the signal received from neighboring nodes Data Packet , no arrival means no arrival from neighboring nodes Data Packet The meaning of formula (1) is: when the current node Received from neighboring nodes Data Packet And neighbor nodes and the current node When the channel between them is not disconnected, Calculate the number of packets received from the jth neighbor node SINR estimation ; When the current node Received from neighboring nodes Data Packet And neighbor nodes and the current node When the channel between ; When the current node No data received from neighboring nodes Data Packet hour, .

[0135] S203, calculate the data packet according to formula (2) Packet Inter-Arrival Time (PIAT) :

[0136] (2)

[0137] in, Indicates data packet The propagation rate, Indicates data packet A known upper bound on the inter-arrival time, It indicates the confidence ratio, which is a value greater than 0 and less than 1. It is specified by the user according to the change in PIAT of the data stream. For estimating data packets Confidence proportion for the inter-arrival times.

[0138] S204, Calculation , .

[0139] S205. Get the current time .

[0140] S206, if Any one of T In the example, when any message arrives, the cwnd and ssth contained in all T are adjusted according to the adjustment rules, and the send queue capsule message module is called; the adjustment rules are as follows: if cwnd = 0, then ,and .

[0141] S207, from Start waiting for less than or equal to If a message arrives within the specified time, return to step S201.

[0142] In this embodiment, the periodic echo module is used to set a time period for sending an Echo message. , according to the time period Send Echo messages periodically until the program ends, such as Figure 5 shown.

[0143] In this embodiment, the echo message processing module is used to process the received echo message. When receiving the echo message, the echo message processing module processes the echo message and calls the channel quality updating module to update the channel quality status in the local sub-path routing.

[0144] In this embodiment, the capsule message processing module is used to process the received Capsule message.

[0145] Furthermore, if Figure 6 As shown in FIG. 1 , the workflow of the capsule message processing module specifically includes:

[0146] S501: When the capsule message processing module receives a data packet It is a Capsule data packet (carrying prefix, ,id, and prev), execute the following steps.

[0147] S502, if , then the channel quality update module is called; otherwise, the channel quality update module is not called and the process directly jumps to step S503.

[0148] It should be understood that The situation is that when the producer has just sent a Capsule packet from the current node, the Capsule packet does not carry any , this Capsule data packet does not need to call the channel quality update module, so there is conditions.

[0149] S503: Query mapping status information ,set up , where hash represents a hash function.

[0150] S504, if Not empty and the data packet From upstream, Based on Given the next hop, calculate ;if Not empty and the data packet If it comes from downstream, the feedback processing module is called; otherwise, the processing flow of the capsule message processing module is terminated.

[0151] S505, if , then the data packet Push into ,in express In , and call the send queue capsule message module, and record the number of Capsule data packets sent by the send queue capsule message module as ; Otherwise, the processing flow of the capsule message processing module ends.

[0152] S506, if ,but , further if , then send a CapAck message, the parameters carried by the CapAck message include prefix, ,id, and , assign them to the prefix, ,id, and ; Otherwise, the processing flow of the capsule message processing module ends.

[0153] S507, if , then add h to H in the packet Send to application.

[0154] In this embodiment, the capsule response processing module is used to process the received CapAck message.

[0155] Furthermore, if Figure 7 As shown in FIG. 1 , the workflow of the capsule response processing module specifically includes:

[0156] S601: When the capsule responds to the data packet received by the processing module If it is a CapAck packet, execute the following steps.

[0157] S602: Invoke a channel quality update module.

[0158] S603, if , and T contains prefix and The elements of , the feedback processing module is called.

[0159] In this embodiment, the feedback processing module is used to process explicit feedback and implicit feedback received by the current node from the downstream node. Explicit feedback refers to the CapAck message received by the current node from the downstream node, and implicit feedback refers to the Capsule message received by the current node from a downstream node.

[0160] Furthermore, if Figure 8 As shown in FIG. 1 , the workflow of the feedback processing module specifically includes:

[0161] S701: When the feedback processing module receives a data packet If it is a Capsule or CapAck packet, determine the packet Is it a Capsule data packet? For Capsule data packets, ,in Indicates the ID of the downstream node that sends feedback; otherwise ;calculate .

[0162] It should be understood that the Capsule data packet has parameters prefix, , id, prev, CapAck data packets have parameters prefix, ,id, , so according to the data packet The parameters carried in the packet determine whether it is a Capsule packet or a CapAck packet, where prev comes from the Capsule message. From the CapAck message.

[0163] S702. If , then interrupt 's execution event, delete , calculate ; otherwise, end the processing flow of the feedback processing module.

[0164] S703. If , then adjust all cwnd and ssth in according to the received feedback. Specifically: adjust cwnd according to formula (3), and adjust ssth according to formula (4); otherwise, do not adjust 's cwnd and ssth.

[0165] (3)

[0166] (4)

[0167] S704. Delete the id item in , and add h to .

[0168] S705. Call the send queue capsule message module.

[0169] In this embodiment, the send queue capsule message module is used to send the Capsule data packets cached in the send queue.

[0170] Furthermore, as Fig. 9 shows, the working process of the send queue capsule message module specifically includes:

[0171] S801. Let i = 0, .

[0172] S802. If i < k, then pop a Capsule data packet from , call the send capsule message module, and i = i + 1; if , then directly jump to step S803; otherwise, end the processing flow of the send queue capsule message module.

[0173] S803. Return to step S802.

[0174] In this embodiment, the send capsule message module is used to re - send the Capsule message multiple times through the metrics of the sub - path until feedback is received. Among them, the maximum number of retries is times.

[0175] Furthermore, as Fig.10As shown in FIG. 1 , the workflow of the capsule message sending module specifically includes:

[0176] S901: When the data packet received by the interest message processing module It is a Capsule data packet (carrying prefix, ,id, , prev), and When it is not empty, execute the following steps; otherwise, end the processing flow of the interest message processing module.

[0177] S902, define S, ,H, yes Members of , where times=0 in S, .

[0178] S903, for ,if is a prefix of r and r is available, then ;otherwise, .

[0179] S904, if , then let k represent the number of retransmissions, and retransmissions The current optimal subpath is , as far as possible to ensure Last used no the same.

[0180] S905, if or ,but ,in Indicates the maximum number of retries for sending capsule packets per hop. Indicates along the path The next hop; if or , then delete ,recover The idth Capsule packet in the packet is read and cwnd and ssth are adjusted according to the following adjustment rules. The specific adjustment rules are: if the next hop is available, adjust Otherwise, cwnd is adjusted to 0, and ssth is adjusted to ; Then end the subsequent execution steps.

[0181] S906, if , then delete ,from Delete id and define for All upstream nodes in the send a CapAck message (carrying prefix, ,id, , ).

[0182] S907, Calculation , the data packet In Modified to , prev is changed to , to update the data package , resend the updated data packet , calculate times = times + 1, let is the current time, All downstream nodes in are added to middle.

[0183] S908, Time to start waiting is less than or equal to Time, of which Indicates the timeout period for sending each capsule. If the waiting period is interrupted, the processing flow of the capsule message sending module ends; otherwise, continue to wait for the data packet is received.

[0184] S909, jump to step S903.

[0185] In summary, all modules in the RNTP device implement the following two functions: ① Sub-path routing management function: involving multiple modules, when an Interest message arrives, ON_INTEREST The module creates a subpath route, and when receiving arbitrary data, UPDATE_CQ The module updates the subpath metrics to maintain routing accuracy. This update process is critical for the processing of four types of messages, namely, for ON_INTEREST module,ON_ECHO module,ON_CAPSULE Modules and ON_CAPACK Module is critical. PERIODIC_ECHO Modules and ON_ECHO The module processes Echo to ensure that the channel quality of the sub-path is updated in a timely manner. ②Data transmission control function: involves multiple modules, ON_CAPSULE The module manages the capsule by pushing it into the send queue and processing implicit feedback. The module processes CapAck as explicit feedback. These feedbacks (i.e. implicit feedback and explicit feedback) are further processed by DEAL_FEEDBACK Module management, which adjusts the congestion control window size and ensures timely transmission of capsules from the queue. SEND_CAP_IN_Q The module sends a Capsule under congestion control by calling SEND_CAP The module implements fast retransmission for efficient and reliable transmission.

[0186] Example 3

[0187] The RNTP provided by the present invention is deployed in a wireless network, each node implements each module and shared variables in the RNTP device, and the RNTP is built on an existing NDN forwarder, in which the content storage mode is set to a FIFO queue mode. Fig.11 The deployment environment using a 25-node network topology is shown, where the consumer node is node 1 and the producer node is node 25. The two subpaths from node 1 to node 25 are composed of (1, 7, 13, 14, 20, 25) and (1, 6, 12,13, 14, 20, 25), respectively. The subpath routing is constructed by initiating a single interest request packet propagation. Assuming that the index of subpath 1 is higher and the performance is optimal, subpath 1 is selected as the main subpath routing, and each node interacts with its neighbors within a limited communication range. Fig.11 In the figure, the solid circles represent nodes on the path, and the dotted circles represent nodes outside the route. Since RNTP operates in a distributed manner, in order to simplify the expression, the following content uses “ -y@nodeA" means the The yth step of the module.

[0188] (1) Assume that node 1 sends an Interest message with ID 12 and obtains the content with prefix ABC stored in node 25. The Interest message sent by producer node 25 The parameters are prefix=ABC, =1, id=12, prev=-1, end=false, (1) After receiving the Interest message, the ON_INTEREST module of each node constructs a sub-path route from the producer node to the current node. The construction process of the sub-path route is implemented according to the workflow of the ON_INTEREST module. Taking node 6 as the current node as an example, the specific process of constructing the sub-path route from the producer node to the current node 6 is explained:

[0189] -1@Node 6: The ON_INTEREST module of the current node (i.e. node 6) receives the Interest message (with prefix=ABC =1, id=12, prev=-1, end=false, (), ), calls the UPDATE_CQ module and executes its workflow (see the following -1 to -7).

[0190] -2@Node 6: Due to (i.e. node 6) is not Inside, therefore, , Since the measured SINR of the Interest data packet is 30dB, .

[0191] -3@Node 6: Since end is false, and prefix and If it does not exist in T, then add T[prefix][1], add ((1, 6), (30dB)) to T[prefix][1], and initialize cwnd and ssth to and , assuming here and 20 and 40 respectively.

[0192] -4@Node 6: Since the current node does not store the content of prefix, continue to execute the following steps. -5@Node 6: Send information times, such as 3 times, with a random interval between each time (such as 23ms and 12ms, not exceeding an upper limit , such as 50ms), which can reduce the channel conflict rate and improve the transmission success rate. Then, the Interest message sent by node 6 is received by its neighboring nodes, such as node 12 and node 13, and these two nodes will also follow the steps similar to node 6 (from -1 to -5) Execute. By running the above steps through different nodes, node 25 finally receives a message from its neighbor node (such as node 20). The difference between this node and the previous node is that -4@Node 1 will end and no longer run because the current node has stored the content of prefix -5.

[0193] Through such steps, each node that receives the Interest message finally forms -3 subpath routes, stored in T[prefix][1] in these nodes, these routes point from the current node to (i.e., node 1), and finally we can get two sub-path routes: (1, 7, 13, 14, 20, 25) and (1, 6, 12, 13, 14, 20, 25). These constructed routes provide path pointing support for the subsequent data transmission process.

[0194] (2) For the UPDATE_CQ module, its working process is as follows: Assume that the current node has received an arbitrary message (which can be Interest, Capsule, CapAck or Echo message), then the UPDATE_CQ module may be Module (for processing Interest messages), Module (for processing Echo messages), Module (for processing Capsule messages) or Module (for processing CapAck messages) calls, these calls differ in their input parameters Different from the call, the execution steps triggered by the call are also shared with the mapping state information The execution steps are explained by the following example:

[0195] -1: Received is the jth neighbor of the current node ( ), the current node judgment j can be based on The order of the records is determined locally and is known The SINR is 30dB, perform the following steps.

[0196] -2: Calculate the signal-to-noise ratio estimate ,because is the message that has arrived, and It has never been recorded, that is ,therefore That is SINR, that is, 30dB.

[0197] -3: Calculation ,For example 2 packets / second, Set to 0.95, If set to 1.5 seconds, Second.

[0198] -4: Calculation , .

[0199] -5: Get the current time , which can be a timestamp, for example.

[0200] -6: Judgment Is it contained in any path in T? , for example, T includes a path (14, 20, 25) and the current node number is 14, and If the node is node 20, the judgment condition is met. At this time, if any message arrives, adjust the cwnd and ssth contained in all T. If cwnd > 0, for example, cwnd = 10, no adjustment is made; otherwise, cwnd is adjusted to ,For example = 20, cwnd is set to 20. After the above operations are completed, the SEND_CAP_IN_Q module is called to process the Capsule message buffered in the queue (see the following content arrive ).

[0201] -7: Waiting for most If a message arrives, return to step -1. For example, if a Capsule, CapAck, or Echo message arrives, it returns -1 step.

[0202] (3) For the PERIODIC_ECHO module, its working process is as follows:

[0203] -1: The PERIODIC_ECHO module on the current node randomly waits for a shorter time, such as 42 milliseconds randomly selected between 0 and 100 milliseconds.

[0204] -2: Assumption If it is 1 second, then the Echo message is sent with a period of 1 second so that its neighboring nodes can receive the Echo message from the current node.

[0205] (4) When the ON_ECHO module of a node receives an Echo message (denoted as ), it indicates that the neighbor node is active, so the UPDATE_CQ module is called (see the above content -1 to -7), and the message passed into it as a parameter.

[0206] (5) When node 25 receives the Interest message, it stores the prefix content declared in the Interest message and then sends a Capsule message carrying the content. The parameters of the message are (prefix, 25, 1, (1, 7, 13, 14, 20, 25), 25). The message is processed by the ON_CAPSULE module of each node that receives the message in the network. For generalization, the steps of processing the Capsule message by the ON_CAPSULE module on one of the nodes 13 are given below, which specifically include:

[0207] @Node 13: Assume that node 13's neighbor node 14 receives the Capsule message , it means that the ON_CAPSULE module receives a Capsule data packet (carrying prefix, ,id, , prev), such as (prefix, 25, 1, (1, 7, 13, 14, 20, 25), 14).

[0208] @Node 13: Because , so the UPDATE_CQ module is called (see above -1 to -7).

[0209] @Node 13: Find ,like , citing it as .

[0210] @Node 13: Because the current node has been visited by the Interest message, the ON_INTEREST module passes -3 Steps have been created , so Not empty and sent Node 14 is the upstream node of the current node 13, so h is calculated as id (if equal to 1) and (For example, node 7, because node 7 is located in The hash value of the previous node 13 in the middle, that is, the next hop), for example, if the hash algorithm is .

[0211] @Node 13: If , for example, if , then Push into , that is, to put the received Capsule message into the queue, and then call the SEND_CAP_IN_Q module (see the following content). arrive ), while recording the current The number of capsules sent by SEND_CAP_IN_Q, for example is 1.

[0212] @Node 13: If Established, for example ,because @Node 13 step has been Push into , so ,but , if equal to .because , then send a CapAck message (the message parameters are prefix, 1, 1, , ), which makes the path The non-adjacent upstream node learns that the current node has received the Capsule message.

[0213] @Node 13: If Not true, for example If not, the current step will not be executed.

[0214] Next, node 13's downstream neighbor nodes 7, 12, 6, and 1 and upstream neighbor nodes 14, 20, and 25 also receive the message sent by node 20 through step The Capsule message sent by the SEND_CAP_IN_Q module called in the . These nodes that receive the message will go through different processing flows:

[0215] ①From the path Upstream Capsule message processing: For downstream neighbor nodes 7, 12, 6, and 1, nodes 7, 12, 6, and 1 process the Capsule message in the same way as node 13 above. arrive The step is performed because node 7 is included in the message In particular, since node 1 is a consumer node, the different steps are ,because Established, for example ,in This means that the Capsule is the first message received by the consumer node, so h is added to T'.H. Sent to the application to complete the Capsule delivery.

[0216] ②From the path Downstream Capsule message processing: from the path Downstream Capsule message processing: For upstream neighbor node 14, upstream node 20, and upstream node 25, nodes 14, 20, and 25 will all execute arrive steps, but then In the step, because is not empty and from downstream (because nodes 14, 20, and 25 are included in the message ), DEAL_FEEDBACK is called (see 1 to 5), and then complete the processing of explicit feedback and implicit feedback.

[0217] ③ Non-path Capsule message processing: For other non For nodes, only arrive steps, because Steps will determine the send Node 13 is not from the path upstream and downstream (because the current node is not in the message ), the execution will be terminated to avoid useless Capsule message processing.

[0218] (6) For the ON_CAPACK module, its working process is as follows:

[0219] -1@node 20: node 13 is in its A CapAck message is sent when the If its neighbor node, such as its upstream node 20, receives the CapAck message For example, the parameters of the CapAck message are prefix, 1, 1, , , then the ON_CAPACK module will execute the following steps.

[0220] -2@Node 20: Node 20 calls the UPDATE_CQ module to update the channel quality information (see -1 to -7).

[0221] -3@Node 20: If ,and , for example, if ,and , the DEAL_FEEDBACK module is called (see 1 to 5).

[0222] In addition to node 20, node 25 can also receive the CapAck message. Since node 25 and node 20 are both included in (20, 35), the processing process of node 25 is similar to the process of node 20 mentioned above.

[0223] The remaining nodes other than nodes 20 and 25 (i.e., nodes not included in (20, 35)), -3 The judgment condition of step is not met, so -3 Step not executed.

[0224] The above steps enable the ON_CAPACK module to hand over the CapAck message from the downstream non-adjacent node to the DEAL_FEEDBACK module for processing.

[0225] (7) For the DEAL_FEEDBACK module, its working process is as follows:

[0226] 1@Node 13: The DEAL_FEEDBACK module is triggered when any of the following conditions are met, and different , and extract the parameters prefix, , id, prev, extract at the same time The way is as follows:

[0227] One is the ON_CAPSULE module in its The path entered in step Downstream Capsule Message ,make For example, when receiving node 7 in its Calls the SEND_CAP_IN_Q module, which in turn calls the SEND_CAP module -7 When sending the Capsule message, .

[0228] The second is the ON_CAPACK module in its step -3 Input CapAck message ,make Regardless of the type of message, the CapAck message also provides Parameters, order For example, when node 7 is in its Step 1 sends CapAck and is received by the current node 13. (See above -1@node 20 step), or when node 7 is in its SEND_CAP module -The CapAck message sent in step 6 is received by the current node 13, then .

[0229] 2@Node 13: Consider Conditions, among which Must be included in Because the SEND_CAP module The step will identify the downstream nodes and add them to , so this step ensures is a downstream node. If this condition is true, it means that the downstream node The Capsule message of the ID has been received, and the SEND_CAP module instance currently sending the ID is interrupted to avoid repeated transmission, and the id item in the calculation , for example, when id=1, is 7, and the hash algorithm is , then h=100007.

[0230] 3@Node 13: Because h is not in Inside, adjust according to formula (3) , For example, if the current cwnd is 40 and ssth is 80, adjust cwnd to , ssth is adjusted to 81.

[0231] 4@Node 13: Delete For example, if the capsule with id 1 is deleted (because the downstream node has confirmed receipt of the capsule), h is added to T'.H to prevent the current node from sending the capsule repeatedly.

[0232] 5@Node 13: Call the SEND_CAP_IN_Q module to send the cached Capsule message (see arrive ).

[0233] Except for node 13, the rest of the paths The DEAL_FEEDBACK module on is similar to the above working process.

[0234] (8) Assuming that multiple Capsule messages are cached in the send queue, the workflow of the SEND_CAP_IN_Q module is as follows:

[0235] -1@Node 13: Let i=0, ,For example , which means that 50 Capsule messages are cached in the queue. If cwnd is 40, then k is 40, indicating that a maximum of 40 Capsule messages can be transmitted.

[0236] -2@Node 13: From Pop up to k Capsule messages one by one , and then call the SEND_CAP module (see arrive ).

[0237] Except for node 13, the rest of the paths The SEND_CAP_IN_Q module on the MCU works similarly to the above process.

[0238] (9) For the SEND_CAP module, its specific workflow is as follows:

[0239] @Node 13: The SEND_CAP_IN_Q module of the current node 13 is in its step -2 Request to send Capsule message Afterwards, the SEND_CAP module will receive the Capsule message (with parameters prefix, ,id, , prev, assuming that the five parameters are prefix, 1, 1, (1, 7, 13, 14, 20, 25), 14), because the path Each node on the , including node 13, will be in the ON_INTEREST module -3 Steps to create the T project, so judge is non-empty, so the following steps are executed.

[0240] @Node 13: Define S, ,H, yes Members of the ON_INTEREST module step 3 was created; created , for example S[1], where times=0, , such S is used to record the sending status of the Capsule with this ID.

[0241] @Node 13: For ,For example ,judge match As a prefix. Further, if the next hop node 7 in r is available, then r is available. ;otherwise, This happens because the UPDATE_CQ module and The steps will be No message is received from neighboring nodes (including node 7) within 10 days (considering that the PERIODIC_ECHO module will The Echo message is sent intermittently in a periodic manner, so the channel will normally be Send at least one Echo message within 10 seconds), mark the channel between the current node and the neighbor node as broken (see UPDATE_CQ module -1 step).

[0242] @Node 13: Judgment Condition, if the condition is true, it means that the current message Used If a fault occurs, restart The current optimal subpath is , as far as possible to ensure Last used For example, when The channel between neighbor node 7 and current node 13 fails, so query get =(1, 6, 12, 13, 14), thus completing the switching of the faulty sub-path. and The designated downstream sub-paths (1, 7, 13, 14) are different, thus bypassing the faulty channel at (7, 13).

[0243] @Node 13: When or , which means that the conditions for transmitting the Capsule are met, so h is calculated as id and For example, when When it is (1,7,13,14), the next hop is node 13, and the hash algorithm is , id=1, then h=100013.

[0244] if or , which means that there is no reachable path or no remaining opportunity to try to send the Capsule. In this case, delete , to stop sending capsules and resume The idth Capsule in the packet is placed back into the sending queue to wait for subsequent sending to increase transmission reliability. Adjust cwnd and ssth. For example, if the current cwnd is 50 and ssth is 60, if the next hop is available, adjust cwnd to , adjust ssth to ; If the next hop is unavailable, adjust cwnd to 0 and ssth to . Then complete the following execution steps.

[0245] @Node 13: If the above h , which means that a Capsule message with the same ID as the above has been sent and does not need to be retransmitted again, so the ID is deleted from and Delete and need to notify by sending CapAck message All upstream nodes , such as node 20 and node 25, so that these upstream nodes know that the current node has already sent the Capsule message, avoiding repeated sending.

[0246] @Node 13: Completion The complete path from consumer to producer , for example when =(1, 6,12, 13, 14), , and send a new Capsule message (Will In Modified to , prev is changed to , that is, prev is changed to the current node 13, and the updated Capsule message is obtained ). Calculate times=times+1 to count the number of times sent next time, let The current time is used to record the time when the Capsule is sent. All downstream nodes in , such as nodes 1, 6, and 12, are added to In order to make the DEAL_FEEDBACK module -2 Step can determine which feedback comes from downstream nodes.

[0247] @Node 13: From the time the Capsule is sent Start waiting for the longest If the waiting period is interrupted, it ends. The interruption may be caused by the DEAL_FEEDBACK module. The interruption is caused by step -2. The interruption means that the Capsule feedback from the downstream node has been received and there is no need to make the next sending attempt.

[0248] @Node 13: There is no Capsule feedback at this time, which means that the Capsule may have lost packets. Jump to step , to carry out the next round of Capsule sending attempts.

[0249] In summary, the present invention provides sub-path data transmission control for wireless networks, and each module dynamically constructs sub-path routing and processes transmission, so that bad sub-paths can be skipped, and control and guidance are performed through hop-by-hop congestion control and fast retransmission; the control performs balanced fault switching on sub-path routing and adjusts changes in congestion windows according to changes in channel quality; these robust methods enable it to quickly alleviate faults and improve performance, thereby providing reliable data transmission for related wireless network application scenarios.

[0250] The above embodiments are only used to illustrate the design ideas and features of the present invention, and their purpose is to enable those skilled in the art to understand the content of the present invention and implement it accordingly. The protection scope of the present invention is not limited to the above embodiments. Therefore, any equivalent changes or modifications made based on the principles and design ideas disclosed by the present invention are within the protection scope of the present invention.

Claims

1. A reliable data transmission device based on sub-paths in a wireless network, characterized in that: include: The interest message processing module is used to construct and manage sub-path routes according to the received interest messages, wherein the sub-path routes include primary sub-path routes and backup sub-path routes; wherein the workflow of the interest message processing module specifically includes: S101: When the data packet received by the interest message processing module If it is an interest data packet, the following steps are executed and the channel quality update module is called; S102, if the current node , then the processing flow of the interest message processing module ends; otherwise, Add to In the example, the signal-to-noise ratio of the interest packet is added to , and then continue to perform the following steps; S103: If the end in the interest data packet is an error flag false, query the prefix and If the item does not exist, As T Add to T, add the prefix of the interest data packet to T as the prefix of T to complete Creation of records, Records include S, ,H, , cwnd and ssth, and set S, queue and the set H is initialized to be empty. Set to , set cwnd and ssth to and , where T represents the mapping state information from consumer ID and content prefix to transmission state, S represents the mapping set from data ID to its capsule sending state, and the set S includes event, time and , event indicates the ID of the capsule sending event, times indicates the number of capsule sending times, Indicates the downstream node ID, represents a first-in, first-out queue containing capsules waiting to be sent, H represents a set of hash values, each value in the set H is a complete combination of the previously sent data ID and its next hop ID, Indicates subpath routing, , cwnd represents the congestion control window size, ssth represents the slow start threshold, Indicates the initial congestion control size, represents the initial slow start threshold; if this item exists, jump directly to step S104; if the end in the interest data packet is the correct flag true and the prefix and If the item exists, jump to step S105; otherwise, end the processing flow of the interest message processing module; S104: If the content corresponding to the prefix stored in the current node has been published in the current node and has never received a data packet , then the data packet Send to the upper layer application; if the content corresponding to the prefix stored in the current node has not been published in the current node, jump to step S105; otherwise, end the processing flow of the interest message processing module; S105, the data packet Repeated sending times, and wait for a time less than or equal to A random time, where Indicates the maximum number of retries for sending interest packets per hop. Indicates the maximum waiting time for sending interest packets per hop; A channel quality update module, used to update the channel quality status in the local sub-path routing and start congestion control; The periodic echo module is used to set a time period for sending echo messages. , according to the time period Send echo messages periodically until the program ends; An echo message processing module, used for processing received echo messages; A capsule message processing module, used for processing received capsule messages; A capsule response processing module, used for processing the received capsule confirmation message; A feedback processing module is used to process explicit feedback and implicit feedback received by the current node from downstream nodes; A sending queue capsule message module, used to send capsule data packets cached in the queue; and The capsule message sending module is used to resend the capsule message multiple times according to the indicator of the sub-path until feedback is received; wherein the workflow of the capsule message sending module specifically includes: S901: When the data packet received by the interest message processing module is a capsule data packet, and If it is not empty, execute the following steps; otherwise, end the processing flow of the interest message processing module; S902, define S, ,H, yes Members of , where times=0 in S, ; S903, for ,if is a prefix of r and r is available, then ;otherwise, ; S904, if , then let k represent the number of retransmissions, and retransmissions The current optimal subpath is ; S905, if or ,but ,in Indicates the maximum number of retries for sending capsule packets per hop. Indicates along the path The next hop; if or , then delete ,recover The idth capsule packet in the , and adjust cwnd and ssth according to the following adjustment rules, where the adjustment rules are as follows: if the next hop is available, then adjust Otherwise, cwnd is adjusted to 0, and ssth is adjusted to ; Then end the subsequent execution steps; S906, if , then delete ,from Delete id and define for All upstream nodes in the send capsule confirmation message; S907, Calculation , the data packet In Modified to , prev is changed to , to update the data package , resend the updated data packet , calculate times = times + 1, let is the current time, All downstream nodes in are added to middle; S908, Time to start waiting is less than or equal to Time, of which Indicates the timeout period for each capsule to be sent. If the waiting period is interrupted, the processing flow of the capsule message sending module ends; otherwise, continue to wait for the data packet be received; S909, jump to step S903; The parameters carried by the interest message include prefix, , id, prev and end, the payload carried by the interest message includes and , where prefix indicates the content prefix name, represents the consumer node, id represents the identification ID, prev represents the node ID that sends the currently received capsule message, and end represents the flag that terminates the current data acquisition process. Represents the path vector, which is composed of the vector of node IDs. It represents the signal-to-noise ratio of the message received by each hop in the path vector from its adjacent previous hop; The parameters carried by the capsule message include prefix, ,id, and prev, the payload carried by the capsule message includes payload data, wherein the payload data is the data content to be transmitted by the application; The parameters carried in the capsule confirmation message include prefix, ,id, and ,in represents the downstream node, Indicates the upstream node; The parameters carried by the echo message include ,in Represents a neighbor node.

2. The reliable data transmission device based on sub-paths in a wireless network according to claim 1, characterized in that: The workflow of the capsule message processing module specifically includes: S501: When the capsule message processing module receives a data packet If it is a capsule data packet, the following steps are performed; S502, if , then call the channel quality update module; otherwise, do not call the channel quality update module and directly jump to step S503; S503: Query mapping status information ,set up , where hash represents a hash function; S504, if Not empty and the data packet From upstream, Based on Given the next hop, calculate ;if Not empty and the data packet If it comes from downstream, the feedback processing module is called; otherwise, the processing flow of the capsule message processing module ends; S505, if , then the data packet Push into ,in express In , and call the send queue capsule message module, and record the number of capsule data packets sent by the send queue capsule message module as ; Otherwise, the processing flow of the capsule message processing module ends; S506, if ,but , further if , a capsule confirmation message is sent. The parameters carried in the capsule confirmation message include prefix, ,id, and , and assign them to the prefix, ,id, and ; Otherwise, the processing flow of the capsule message processing module ends; S507, if , then add h to H in the packet Send to application; The workflow of the capsule response processing module specifically includes: S601: When the capsule responds to the data packet received by the processing module If it is a capsule confirmation data packet, the following steps are executed; S602, calling a channel quality update module; S603, if , and T contains prefix and The elements of , the feedback processing module is called.

3. The reliable data transmission device based on sub-paths in a wireless network according to claim 1, characterized in that: The workflow of the channel quality update module specifically includes: S201, if the current node From the jth neighbor node Received data packet , then execute the following step S202; if the current node No data received from neighboring nodes Data Packet , then set , , where broken represents a neighbor node and the current node The channel between them is disconnected and the current time is saved as , ending the processing flow of the channel quality update module; S202, calculate the number of packets received from the jth neighbor node according to formula (1) The signal-to-noise ratio estimation ; (1) in, Indicates data packet The signal-to-noise ratio, express The smoothing parameter, arrival indicates the number of nodes received from neighbor nodes. Data Packet , no arrival means no arrival from neighboring nodes Data Packet ; S203, calculate the data packet according to formula (2) Inter-arrival time ; (2) in, Indicates data packet The propagation rate, Indicates data packet A known upper bound on the inter-arrival time, represents the confidence ratio; S204, Calculation , ; S205. Get the current time ; S206, if Any one of T In the example, when any message arrives, the cwnd and ssth contained in all T are adjusted according to the adjustment rules, and the send queue capsule message module is called; the adjustment rules are as follows: if cwnd = 0, then ,and ; S207, from Start waiting for less than or equal to If a message arrives within the specified time, return to step S201.

4. The reliable data transmission device based on sub-paths in a wireless network according to claim 1, characterized in that: The workflow of the feedback processing module specifically includes: S701: When the feedback processing module receives a data packet When it is a capsule or capsule confirmation packet, judge the packet Is it a capsule data packet? is a capsule data packet, then ,in Indicates the ID of the downstream node that sends feedback; otherwise ;calculate ; S702, if , then interrupt Execution event, delete ,calculate ; Otherwise, end the processing flow of the feedback processing module; S703, if , then adjust according to the feedback received All cwnd and ssth in the formula are as follows: cwnd is adjusted according to formula (3), and ssth is adjusted according to formula (4); otherwise, no adjustment is made. cwnd and ssth in; (3) (4) S704, delete id item in the , add h to middle; S705: Call a module for sending a queue capsule message.

5. The reliable data transmission device based on sub-paths in a wireless network according to claim 1, characterized in that: The workflow of the sending queue capsule message module specifically includes: S801, let i=0, ; S802. If i < k, then pop a capsule data packet from , call the send capsule message module, and i = i + 1; if , then directly jump to step S803; otherwise, end the processing flow of the send queue capsule message module. S803. Return to step S802.

6. A reliable data transmission method based on subpaths in a wireless network, implemented by a reliable data transmission device based on subpaths in a wireless network according to any one of claims 1 to 5, characterized in that: The method comprises the following steps: The consumer node builds the subpath route by initiating a single interest request packet propagation to determine the producer node to obtain the primary subpath route and the backup subpath route; When each router node receives an interest message, capsule message, capsule confirmation message, or echo message, it periodically updates its local channel quality; The established primary sub-path routing and backup sub-path routing are used to guide the data transmission control process of each hop, specifically: the data content to be transmitted is contained in a capsule data packet, each capsule data packet also contains a path vector, after the current node receives the capsule data packet of the upstream hop, the intra-path hop updates the downstream part of the path vector to an available and loop-free reliable sub-path, the reliable sub-path selects a primary sub-path or a backup sub-path with balanced channel quality, and each hop forwards the capsule data packet along the maximum reliable sub-path through the above process; wherein, during the data transmission process, each node performs congestion control and fast retransmission when receiving valid feedback, and the valid feedback includes implicit feedback and explicit feedback.

7. The sub-path based reliable data transmission method in a wireless network according to claim 6, characterized in that: The consumer node constructs a subpath route by initiating a single interest request packet propagation to determine the producer node to obtain the primary subpath route and the backup subpath route, specifically including: The consumer node sends an interest request packet to the producer node to obtain data. After receiving the interest request packet, each node in the process only propagates the interest request packet without forwarding it to determine the sub-path route from the producer node to the current node, and finally obtains the main sub-path route and the backup sub-path route to provide path pointing for the data transmission process.

8. The sub-path based reliable data transmission method in a wireless network according to claim 6, characterized in that: The implicit feedback is implemented by the following method: after receiving the capsule data packet, the downstream node of the current subpath generates implicit feedback by using the broadcast of the wireless network, that is, the downstream node sends the capsule message to the upstream node by using the broadcast of the wireless network, and the capsule message is received by the upstream node, which is the implicit feedback; The explicit feedback is implemented by the following method: when a downstream node of the current subpath receives a duplicate capsule data packet, the downstream node sends a capsule confirmation message to the upstream node, which is explicit feedback.

9. The sub-path based reliable data transmission method in a wireless network according to claim 6, characterized in that: Each node performs congestion control and fast retransmission upon receiving valid feedback, specifically including: When each node receives valid feedback, the congestion control adjusts the congestion control window size of the capsule data packet sending queue according to the principles of additive increase and multiplicative decrease, and the congestion control window size is adjusted only when the next hop of the subpath maintains sufficient channel quality; congestion control sends capsule data packets in sequence until the preset congestion control window size threshold, and triggers fast retransmission when the feedback timeouts, and fast retransmission will continue until valid feedback is received; capsule data packets that have not been successfully transmitted will wait in the queue for the next transmission opportunity; during the transmission process, the consumer node efficiently reorders the received out-of-order capsule data packets within the specified arrival timeout.

Citation Information

Patent Citations

  • Named data network-oriented knowledge service routing mining method

    CN109614419A

  • Routing method based on named data network, electronic equipment and storage medium

    CN117221977A