Dynamic routing method, system and equipment of underwater acoustic communication network and storage medium
By acquiring node coordinates and link status in real time, the routing path of the underwater communication network is dynamically optimized, which solves the problems of static routing paths and changing link quality in the underwater communication network, and achieves highly adaptable, low-latency and energy-saving communication effects.
Patent Information
- Application Number
- CN202510826767.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-19
- Publication Date
- 2025-10-03
AI Technical Summary
The routing paths in underwater communication networks are static, lack cross-layer information participation, and cannot effectively cope with the problems of underwater node mobility and drastic changes in link quality.
The three-dimensional coordinates and node status information of each node are obtained in real time. The physical layer is used to measure the signal-to-noise ratio, propagation delay and packet loss rate to build a link state table. The network layer builds a neighbor table and triggers route discovery when no route is available to optimize routing path selection.
It achieves high adaptability and real-time performance, reduces transmission delay and packet loss rate, saves energy and balances network energy consumption, enhances system robustness, and avoids network crashes.
Smart Images

Figure CN120750825A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of underwater acoustic communication technology, and in particular to a dynamic routing method, system, device and storage medium for an underwater acoustic communication network. Background Art
[0002] Underwater communication networks typically consist of surface base stations, several fixed nodes, and several mobile nodes (such as AUVs and buoys). Surface base stations upload data to shore-based control centers via Wi-Fi, 4G, or satellite. Bidirectional communication between underwater nodes, or between underwater nodes and base stations, primarily occurs over underwater acoustic channels. Current underwater communication networks suffer from static routing paths, a lack of cross-layer information, and an inability to effectively handle the mobility of underwater nodes and the drastic changes in link quality.
[0003] Therefore, it is necessary to provide a dynamic routing method, system, device and storage medium for an underwater acoustic communication network to solve or improve the above problems. Summary of the Invention
[0004] The present application provides a dynamic routing method, system and storage medium for an underwater acoustic communication network to address the problems in current underwater communication networks such as static routing paths, lack of cross-layer information participation, and inability to effectively cope with drastic changes in underwater node mobility and link quality. The method enables the underwater acoustic communication network to adapt to the high dynamics and position changes of underwater nodes, cope with drastic fluctuations in underwater acoustic channel quality, and optimize the balance between energy consumption and transmission delay.
[0005] In a first aspect, the present application provides a dynamic routing method for an underwater acoustic communication network, the method comprising:
[0006] Each node obtains its own three-dimensional coordinates in real time through the positioning module, and periodically broadcasts enhanced neighbor discovery control packets including node location, node remaining energy and available bandwidth;
[0007] The physical layer of each node determines the signal-to-noise ratio, propagation delay and packet loss rate according to the received enhanced neighbor discovery control packet, and updates the link state table through the shared memory;
[0008] The network layer of each node reads the link status, location information and node residual energy of the neighboring node from the link status table in the shared memory to construct a neighbor table;
[0009] When the source node sends underwater acoustic communication data to the destination node based on the neighbor table and there is no available route, route discovery is triggered to obtain a target routing path;
[0010] The underwater acoustic communication data is sent based on the target routing path.
[0011] In a second aspect, the present application provides a dynamic routing system for an underwater acoustic communication network, the system comprising:
[0012] The broadcast module is used for each node to obtain its own three-dimensional coordinates in real time through the positioning module, and periodically broadcast the enhanced neighbor discovery control package including the node location, node remaining energy and available bandwidth;
[0013] An updating module, configured for the physical layer of each node to determine a signal-to-noise ratio, a propagation delay, and a packet loss rate according to the received enhanced neighbor discovery control packet, and to update a link state table through a shared memory;
[0014] A construction module, configured for the network layer of each node to read the link status, location information and node residual energy of a neighboring node from the link status table in the shared memory to construct a neighbor table;
[0015] An acquisition module, configured to trigger route discovery to acquire a target routing path when a source node sends underwater acoustic communication data to a destination node based on the neighbor table and no route is available;
[0016] The sending module is used to send the underwater acoustic communication data based on the target routing path.
[0017] In a third aspect, an electronic device is provided, comprising a processor, a communication interface, a memory, and a communication bus, wherein the processor, the communication interface, and the memory communicate with each other via the communication bus;
[0018] Memory for storing computer programs;
[0019] The processor is used to implement the steps of the dynamic routing method of the underwater acoustic communication network described in any embodiment of the first aspect when executing the program stored in the memory.
[0020] In a fourth aspect, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a processor, the steps of the dynamic routing method of the underwater acoustic communication network as described in any embodiment of the first aspect are implemented.
[0021] Compared with the prior art, the above technical solution provided by the embodiment of the present application has the following advantages: (1) strong real-time performance and high adaptability. By using the information such as the instantaneous signal-to-noise ratio (SNR), packet loss rate and propagation delay measured by the physical layer, the link quality changes can be reflected in time, and the routing decision response time can be greatly shortened. For high-speed moving AUVs, the node position is continuously acquired and the real-time neighbor relationship is established, so that the routing path maintains a small deviation from the actual position of the node, reducing the probability of path failure. (2) Reducing transmission delay and packet loss rate. The routing cost function gives priority to high SNR and low-latency links to avoid continuing to transmit when the link is degraded, reducing the large amount of delay and packet loss caused by retransmission. The local routing repair strategy (fast local reselection of failed links) can complete path switching within seconds to ensure timely transmission of urgent data. (3) Energy saving and balanced network energy consumption. Introducing the node residual energy as one of the measurement indicators makes the routing decision not only focus on the shortest path, but also avoids nodes with low energy, extending the overall network life. The backup path mechanism can avoid frequent global rerouting, reduce the flooding of control messages, and indirectly save energy consumption. (4) Cross-layer collaboration and strong system robustness. Cross-layer communication is achieved through the wireless network core module and shared memory, and each layer module can access key parameters on demand. When a single protocol module fails (such as a temporary failure of the MAC layer), it will not terminate the operation of the entire protocol stack. It will only affect the function of the corresponding layer and will not cause a network crash. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate embodiments consistent with the invention and, together with the description, serve to explain the principles of the invention.
[0023] In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, for ordinary technicians in this field, other drawings can be obtained based on these drawings without paying any creative labor.
[0024] Figure 1 A schematic diagram of a flow chart of a dynamic routing method for an underwater acoustic communication network provided in an embodiment of the present application;
[0025] Figure 2 is an exemplary flow chart of determining a target routing path provided by an embodiment of the present application;
[0026] Figure 3 is an exemplary flow chart of determining a target routing path as shown in other embodiments of the present application;
[0027] Figure 4 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0028] To make the purpose, technical solutions, and advantages of the embodiments of this application more clear, the technical solutions in the embodiments of this application will be clearly and completely described below in conjunction with the drawings in the embodiments of this application. Obviously, the described embodiments are part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.
[0029] Figure 1 A schematic flow chart of a dynamic routing method for an underwater acoustic communication network provided in an embodiment of the present application. In some embodiments, the embodiment may include the following steps:
[0030] In step 101, each node obtains its own three-dimensional coordinates in real time through a positioning module, and periodically broadcasts an enhanced neighbor discovery control packet including the node location, node remaining energy, and available bandwidth.
[0031] A node is a device entity (such as an AUV or underwater sensor) with independent communication capabilities in an underwater acoustic communication network. For example, an autonomous underwater vehicle (AUV) equipped with a sonar and a modem.
[0032] The positioning module is a hardware component that obtains the precise location of the node through acoustic ranging or inertial navigation, for example, a triangulation positioning system based on an underwater acoustic transponder.
[0033] The three-dimensional coordinates are the spatial positions of the nodes based on the reference origin (X: easting distance, Y: northing distance, Z: water depth).
[0034] The enhanced neighbor discovery control packet is a broadcast message (such as a HELLO_X packet) that carries node status information and is used for neighbor discovery and control.
[0035] In some embodiments, the node continuously collects its own three-dimensional coordinates through the positioning module (e.g., updates once per second), periodically generates enhanced neighbor discovery control packets, encapsulates the current coordinates, remaining energy (battery capacity), available bandwidth (MAC layer statistics), and sends them through physical layer broadcast (e.g., broadcast once every 5 seconds).
[0036] Step 102: The physical layer of each node determines the signal-to-noise ratio, propagation delay, and packet loss rate according to the received enhanced neighbor discovery control packet, and updates the link state table through a shared memory.
[0037] The physical layer is responsible for the conversion of electrical signals into sound waves, including the hardware and underlying drivers (such as transducers and demodulators). For example, an underwater acoustic modem.
[0038] The signal-to-noise ratio (SNR) is the ratio of signal power to noise power, measured in dB, and reflects link quality.
[0039] The propagation delay (TRT) is the time difference between the sending and receiving of a data packet (including the propagation delay of sound waves in water).
[0040] The packet loss rate (PLR) is the ratio of the number of lost packets to the total number of sent packets during the statistical period.
[0041] Shared memory is a common storage area (such as data structures in RAM) that can be read and written by each protocol layer in real time.
[0042] The link state table is a database table that records the link parameters of neighbor nodes.
[0043] In some embodiments, after the physical layer receives the enhanced neighbor discovery control packet: it calculates the signal-to-noise ratio of the packet (comparing signal / noise power), calculates the propagation delay (packet reception timestamp minus transmission timestamp), and calculates the packet loss rate (based on the historical reception window, such as the packet loss ratio within 10 seconds) and writes the calculation result into the corresponding entry of the link state table in the shared memory.
[0044] Step 103: The network layer of each node reads the link status, location information and node residual energy of the neighbor node from the link status table in the shared memory to construct a neighbor table.
[0045] The network layer is the protocol stack layer (software module) that implements routing decisions and data forwarding.
[0046] The neighbor table is a data structure that stores the status and topological relationships of reachable neighbor nodes.
[0047] In some embodiments, the network layer periodically accesses shared memory (e.g., every 2 seconds): reads the SNR, TRT, and PLR of neighbor nodes from the link state table, extracts the neighbor's 3D coordinates and residual energy from the latest HELLO_X packet, integrates this data to construct a neighbor table, and updates the available neighbor list in real time.
[0048] Step 104 : When the source node sends underwater acoustic communication data to the destination node based on the neighbor table and there is no available route, route discovery is triggered to obtain a target routing path.
[0049] A source node is a node that initiates a data transmission task, for example, an underwater sensor node that needs to send ocean monitoring data.
[0050] The destination node is the target node for data reception, for example, a surface buoy base station responsible for collecting data.
[0051] Available routes are valid destination node path records in the routing table.
[0052] Route discovery is a protocol process that searches for a target path by broadcasting a route request packet (ROUTE_REQ). For example, a source node broadcasts a ROUTE_REQ packet, and neighboring nodes relay it to the destination node.
[0053] The target routing path is the finalized data forwarding path node sequence.
[0054] In some embodiments, the source node may check the neighbor table and the routing table: if the destination node exists in the neighbor table, the message is sent directly in a single hop; if the routing table does not have a record of the destination node, route discovery is triggered.
[0055] Regarding the route discovery process: The source node broadcasts a ROUTE_REQ packet (containing the destination ID, source ID, and the initial path node sequence, a HopList). Upon receiving the packet, the relay node checks whether it is the destination node. If so, it replies with a ROUTE_REP packet. Otherwise, it adds its own ID to the HopList and forwards it to its neighbors. After receiving the ROUTE_REQ, the destination node sends a ROUTE_REP packet in the reverse direction of the HopList to confirm the path.
[0056] Step 105: Send the underwater acoustic communication data based on the target routing path.
[0057] Underwater acoustic communication data is the application layer data payload that needs to be transmitted (such as temperature and salinity monitoring results).
[0058] In some embodiments, the source node queries the next hop node according to the target routing path (such as the first hop of the path is AUV_01), sends the data packet to the next hop node, the network layer adds the path node sequence identifier, and after the MAC layer sends it through competition or scheduling, the relay node relays and forwards it in the order of the path until it reaches the destination node.
[0059] Figure 2 This is an exemplary flow chart of determining a target routing path provided by an embodiment of the present application. The process provided by this embodiment may include the following operations:
[0060] Step 201: Generate a routing request packet through the source node, and send the routing request packet to the relay node.
[0061] The route request packet is a control message used to discover a path (ie, a ROUTE_REQ packet), which carries the parameters required for route discovery.
[0062] A relay node is an intermediate node that participates in forwarding routing request packets, for example, an AUV located between the source node and the destination node.
[0063] In some embodiments, the source node checks the neighbor table and the routing table: if it confirms that there is no valid routing entry for the destination node, it generates a routing request packet and broadcasts or unicasts the routing request packet to the neighbor nodes via the physical layer.
[0064] The fields of the initialization route request packet may include a source ID, a destination ID, an initial path node sequence (HopList only contains its own ID), and a current path cost (CurrCost=0).
[0065] Step 202: In response to receiving the routing request packet, determine a candidate routing path according to a link cost function through the relay node.
[0066] The link cost function is a function that quantifies the quality of a single-hop link. Its input is the signal-to-noise ratio, propagation delay, node residual energy, and packet loss rate, and its output is the cost value.
[0067] A candidate routing path is a potential path that satisfies the forwarding conditions after evaluation by the relay node.
[0068] In some embodiments, after receiving the routing request packet, the relay node reads the link parameters (SNR, TRT, PLR) of the previous hop node and the neighbor's remaining energy from the shared memory, calls the link cost function to calculate the link cost value of this hop, and updates the routing request packet to calculate the accumulated path cost.
[0069] In some embodiments, determining the candidate routing path according to the link cost function by the relay node may include the following operations.
[0070] S10, calculating the link cost value to the previous hop node according to the link cost function through the relay node.
[0071] The previous hop node is the adjacent node that sends the routing request packet to the current relay node.
[0072] The link cost value is the calculation result of the link cost function, which quantifies the transmission cost of a single-hop link.
[0073] In some embodiments, the link cost function is as shown in the following formula (1):
[0074]
[0075] Among them, C link (i→j) is the link cost from node i to node j, SNR ij is the instantaneous signal-to-noise ratio from node i to j, TRT ij is the one-way propagation delay from node i to node j, E j is the current remaining energy of node j, E max is the initial maximum energy of node j, PLRij is the packet loss rate from node i to node j, α, β, γ, and δ are weight coefficients, which are preset values and can be adjusted according to actual needs. The sum of α, β, γ, and δ is 1.
[0076] S11, updating the path cumulative cost based on the link cost value.
[0077] The cumulative path cost is the total cost of the entire path from the source node to the current relay node (the CurrCost field in the routing request packet).
[0078] S12: Add the node identifier of the relay node to the routing node record table to determine the candidate routing path.
[0079] The routing node record table is a data structure that stores a sequence of path nodes (ie, the HopList field).
[0080] A node identifier is a unique identifier of a node (such as an ID or address).
[0081] In some embodiments, the relay node appends its own node identifier to the end of the routing node record table (HopList) and updates the HopList field of the routing request packet.
[0082] A candidate routing path is a potential path that meets the forwarding conditions.
[0083] In some embodiments, the relay node checks the updated cumulative cost of the path: if CurrCost_new < the locally recorded historical optimal cost to the destination node, it is marked as a candidate routing path and the updated routing request packet is forwarded to the neighbor node (if the conditions are met).
[0084] Step 203: When the relay node is the target node, return the routing response packet to the source node.
[0085] The route response packet is a path confirmation message (ie, ROUTE_REP packet) returned by the destination node, including the verified optimal path information.
[0086] In some embodiments, the relay node checks whether it is the destination node of the routing request packet: if so, it generates a routing response packet, encapsulates the current HopList and the total path cost (CurrCost), and sends the routing response packet to the source node in reverse unicast along the node sequence recorded in the HopList.
[0087] Step 204: Determine the target routing path from the candidate routing paths according to the routing response packet.
[0088] A candidate routing path is a set of potential paths generated during the routing discovery process (multiple paths may reach the destination node).
[0089] In some embodiments, the source node receives multiple routing response packets (if any): parses the path node sequence and total cost of each packet, selects the candidate path with the minimum total cost as the target routing path, and updates the routing table: records the node sequence and next hop node of the target routing path.
[0090] Figure 3 This is an exemplary flow chart of determining a target routing path as shown in other embodiments of the present application. In some embodiments, the process may include the following operations:
[0091] Step 301: Determine whether the relay node is the destination node.
[0092] In some embodiments, the relay node parses the destination ID field of the routing request packet and compares it with its own node ID: if there is a match, the current node is the destination node and steps 303 and 304 are executed; if there is no match, the current node is a relay node and step 302 is executed.
[0093] Step 302: Continue forwarding the route request packet to the next relay node through the relay node. The next relay node is the next forwarding target selected by the current relay node (selected from the neighbor table).
[0094] In some embodiments, the relay node selects a neighbor from the neighbor table that meets the following conditions: good link quality (such as SNR>threshold) and sufficient node remaining energy (such as>30%); and unicast forwards the updated route request packet (including new CurrCost and HopList) to the selected neighbor.
[0095] Step 303: Determine a target routing path from the candidate routing paths based on the cumulative path cost.
[0096] In some embodiments, the destination node compares the cumulative path costs of all received candidate paths and selects the path corresponding to the minimum CurrCost value as the target routing path.
[0097] Step 304: Add the target routing path identifier to the routing response packet.
[0098] The target routing path identifier is information that uniquely identifies the optimal path (such as a node sequence or a path ID).
[0099] The route response packet is a path confirmation message (ROUTE_REP packet) returned by the destination node.
[0100] In some embodiments, the destination node generates a routing response packet: encapsulates a target routing path node sequence (HopList); encapsulates a path cumulative cost (CurrCost); and sends the packet to the source node via reverse unicast along the path sequence.
[0101] In some embodiments, the method further comprises:
[0102] S20: Determine an alternative routing path from the candidate routing paths based on the cumulative path cost.
[0103] The alternative routing path is a suboptimal path reserved in addition to the target routing path, and is used for rapid switching when the primary path fails.
[0104] In some embodiments, the source node compares the cumulative path costs of all candidate routing paths, selects the path with the lowest cost as the target routing path, selects the valid path with the second lowest cost as the candidate routing path, and stores the candidate path information in a backup routing table.
[0105] S21: When the target routing path fails, determine the latest available path from the alternative routing paths.
[0106] Target routing path failure is a state where the primary path cannot transmit data (for example, the link is disconnected or the quality is below a threshold).
[0107] For example, the next-hop node AUV_15 does not reply with an ACK (hardware failure); the link packet loss rate suddenly increases to 50% (exceeding the threshold of 30%).
[0108] The latest available path is the valid path that can be immediately activated (node survival and link quality need to be verified).
[0109] In some embodiments, the method may further include the following operations:
[0110] S30, periodically evaluating the target routing path
[0111] Periodicity is a mechanism that repeats execution at fixed intervals. For example, triggering an evaluation every 60 seconds.
[0112] In some embodiments, the network layer routing maintenance thread traverses each hop link of the target routing path at regular intervals; and checks the real-time status parameters of each hop link (read from the shared memory).
[0113] S31: If an abnormal link with abnormal link data exists in the target routing path, locally update the abnormal link.
[0114] Link data anomaly means that the link quality indicator exceeds the preset threshold.
[0115] The link data anomaly includes at least one of the following: the link cost value exceeds the cost threshold, the node remaining energy is lower than the energy threshold, the link instantaneous signal-to-noise ratio drops by more than the instantaneous threshold, and the link packet loss rate exceeds the packet loss threshold. That is, if any one of the above occurs, it can be considered that the link data anomaly occurs.
[0116] The technical solution provided by the embodiments of this application can be implemented based on the SeaWiFi layered architecture. It can embed a cross-layer information exchange interface in the network layer routing module, and obtain key information from the physical layer and MAC layer in real time through shared memory (initialized by the processor) or socket communication. The following are examples of the submodules and complete process provided by the embodiments of this application:
[0117] Overall system architecture:
[0118] (1) Protocol stack architecture
[0119] 1) Application layer: performs packaging and unpacking of user data, parsing of control commands, and periodic data collection and upload.
[0120] 2) Transport layer: Provides a reliable transmission mechanism (TCP-like ACK or UDP-like lightweight mechanism is optional), and is mainly responsible for end-to-end data retransmission and flow control.
[0121] 3) Network layer (routing module): responsible for route discovery and maintenance, path selection, and forwarding strategy.
[0122] 4) MAC layer (time slot or Aloha, etc.): responsible for node competition and data transmission and reception within the same time slot, including ACK / NAK feedback.
[0123] 5) Physical layer (modem driver): Provides signal transmission and reception, real-time measurement of signal arrival strength (RSSI), signal-to-noise ratio (SNR), and propagation delay estimation.
[0124] 6) Shared Memory (Cross-Layer Shared Memory): Initialized and managed by the processor (core), used to store the "link status table" and "node location information table" collected in real time by the physical layer.
[0125] (2) Cross-layer information interaction process
[0126] 1) Physical layer to shared memory: When the physical layer receives a data frame or HELLO packet (neighbor discovery control packet), it calculates the propagation delay based on the timestamp and known transmission time, measures the signal strength, estimates the instantaneous SNR, and writes the above information into the "link state table" (including neighbor node ID, link SNR, estimated one-way propagation delay TRT, packet loss rate historical statistics, etc.).
[0127] 2) Positioning module to shared memory: Timing or event triggering, obtain the current three-dimensional coordinates of the node through the underwater positioning system (such as USBL, LBL, etc.), and write the position information into the "node position information table".
[0128] 3) Network layer to shared memory reading: When creating or updating a route, the network layer routing module reads the link status, location information, and remaining energy of each neighbor node from the shared memory (regularly exchanged through dedicated control messages).
[0129] 4) Network layer to physical layer / MAC layer: During data forwarding or route maintenance, the network layer can send query requests through the core to obtain details such as real-time signal-to-noise ratio threshold, link bandwidth, MAC layer queue length, etc. for routing cost function calculation.
[0130] The dynamic routing algorithm process includes:
[0131] (1) Initialization phase
[0132] After the node starts, it obtains its own position through the positioning module and periodically broadcasts a HELLO_X control packet (enhanced neighbor discovery control packet) with the current position, node remaining energy, and available bandwidth (MAC layer statistics).
[0133] The physical layer calculates the propagation delay and measures the signal-to-noise ratio based on the received HELLO_X packet, and updates the corresponding link entry through the shared memory.
[0134] (2) Neighbor Relationship Maintenance
[0135] Each node maintains a neighbor table, which includes the following fields:
[0136] Neighbor ID, timestamp of the last HELLO_X received, two-way propagation delay estimate TRT (obtained by the exchange between the HELLO_X sender and receiver), current link SNR (weighted average filtering), neighbor residual energy (synchronized from HELLO_X), neighbor location coordinates (X, Y, Z), channel packet loss rate (statistics within the past window)
[0137] When a HELLO_X message from a neighbor is not received for more than a preset timeout threshold (such as 3 HELLO_X cycles), it is considered as a link failure and the neighbor is removed from the neighbor table.
[0138] (3) Routing metric calculation
[0139] 1) Cost Metric
[0140] The cost of each link is calculated using the formula (1) mentioned above:
[0141] 2) Path Cost
[0142] For any path P = {S, n1, n2, ..., D} from the source node S to the destination node D, its total cost is defined as the sum of the costs of each link.
[0143] (4) Route discovery and selection
[0144] When the application layer makes a request to send data and the network layer finds no available route, the route discovery process is triggered.
[0145] The source node S constructs a ROUTE_REQ packet (route discovery packet), which includes:
[0146] |Preamble|Type=ROUTE_REQ|SrcID=S|DestID=D|SeqNo|CurrCost=0|HopList=[S]|CRC|
[0147] A ROUTE_REQ is forwarded to a neighbor when the following conditions are met:
[0148] 1) The received cost is less than the best cost of the node's currently known path to the destination;
[0149] 2) The hop count threshold does not exceed the preset threshold;
[0150] 3) The data packet has not been processed at this node.
[0151] After receiving ROUTE_REQ (routing response packet):
[0152] 1) Read the C of the link from this node to the forwarding party from the shared memory link , and add it to the package "CurrCost" (path cumulative cost);
[0153] 2) Add your own node ID to the "HopList" (routing node record table);
[0154] If the node is not the destination node, it selects a forwarding neighbor based on the routing strategy (heuristic or Dijkstra-like local shortest path) and continues to broadcast or unicast forward the ROUTE_REQ.
[0155] If the node is the destination node D, the "FinalCost" will be recorded and a ROUTE_REP packet will be returned to the source node S, which carries the minimum cost path and corresponding indicators such as hop count, delay, and energy consumption.
[0156] (5) Route maintenance and dynamic adjustment
[0157] Periodic reselection: The current routing path is periodically evaluated every Tupdate (e.g., 60 seconds). If the link cost Clink of a hop exceeds the threshold or the remaining energy of a node falls below the threshold, a local rerouting is immediately triggered (replacing only failed hops or hops with a sudden cost change).
[0158] Event-driven reselection: If the shared memory detects that the SNR of a link drops instantaneously by more than ΔSNR (e.g., 10dB) or the packet loss rate (PLR) exceeds ΔPLR (e.g., 30%), it immediately issues an alarm and notifies the network layer to recalculate the path.
[0159] Route repair: The source node can quickly switch to another route if the primary route fails by using multiple cached candidate paths (alternative routing table). If no alternatives are available, the source node re-initiates a ROUTE_REQ. The entire repair process must be completed within the time window Trepair (e.g., 5 seconds) to avoid prolonged data stagnation.
[0160] (6) Packet forwarding
[0161] The network layer sends the data packet to the MAC layer based on the next hop information in the routing table. The MAC layer sends the data in the allocated time slot or ALOHA random access time.
[0162] During the ACK feedback process of the destination node, the MAC layer will measure and update the link packet loss rate statistics, and the received power measured by the physical layer will continue to be written into the shared memory for use in the next round of routing.
[0163] (7) Routing table structure
[0164] Routing table entry (RoutingEntry):
[0165] |DestID|NextHopID|PathCost|HopCount|Timestamp_LastUpdate|BackupNextHop[]|CRC|
[0166] When an entry in the table has not been updated for a certain period of time, or the cost increases, the node will mark the entry as "pending verification" and require it to be deleted or updated at the next regular reselection.
[0167] Key modules and function implementation
[0168] (1) Cross-layer information collection module
[0169] 1) Physical layer sampling:
[0170] Upon receiving any data or control packet, the physical layer measures the received power Pr and signal-to-noise ratio SNR. It estimates the distance and reverse-checks the position based on the known transmit power Pt and the underwater acoustic propagation loss model (either the Thorp absorption model or the Sommerfeld model). The measurement results are written to the "Link State Table" via the shared memory interface:
[0171] |NeighborID|Timestamp|SNR|RTT_est|PLR_window|CRC|.
[0172] 2) Positioning module:
[0173] Based on USBL / LBL / inertial navigation information, the node's 3D absolute coordinates or base station relative coordinates are obtained in real time and written into the "node position information table":
[0174] |NodeID|Timestamp|Coord_X|Coord_Y|Coord_Z|CRC|.
[0175] (2) Routing metric calculation module
[0176] The "link state table" and "node location information table" are read from the shared memory in a timed or event-driven manner, and the Clink of each neighbor link is calculated according to the cost function and stored in the temporary table.
[0177] The weight coefficients {α, β, γ, δ} in the cost function can be sent down by the ground control center or dynamically adjusted according to the current congestion / energy consumption of the network (for example, when the remaining energy is <30%, increase γ to avoid low-energy nodes as relays; when delay-sensitive services are used, increase β to give priority to low-latency links).
[0178] (3) Routing discovery and maintenance module
[0179] Route discovery (ROUTE_REQ / ROUTE_REP) process:
[0180] Adopting the improved AODV (Adhoc On-Demand Distance Vector) + Dijkstra local search method:
[0181] When a node receives a ROUTE_REQ, it no longer blindly broadcasts but only unicasts and forwards it to the K lowest-cost neighbors that pass the metric screening (such as CurrCost + Clink < Costbest), thereby controlling the flooding range of control packets and reducing network overhead. After the destination node receives several ROUTE_REQs, it selects the one with the minimum CurrCost and sends a ROUTE_REP back to the source node, encapsulating the entire path information. After the source node updates the routing table, it starts data forwarding and marks this path as the primary route. If a backup is needed, a list of sub-optimal paths can be retained. Routing maintenance: Regular maintenance with a period of Tupdate (such as 60s): The routing maintenance thread scans the current routing table and checks at least whether the status of the next-hop link of each path has expired (such as not receiving a neighbor HELLO_X for more than the threshold), or whether the link cost has increased by more than the threshold Δcost. If the above situation is triggered, local repair is performed on this path:
[0182] If only the next-hop link fails, an available path is directly selected from the alternative paths for replacement;
[0183] If all alternative paths fail, a local route discovery is initiated again based on the current routing table, restricting the range of the route request message within a fixed number of hops upstream and downstream of the failed sub-path (such as within 2 hops) to reduce control overhead.
[0184] Event-driven maintenance: When the shared memory detects an instantaneous decrease in the link SNR or a sudden increase in the packet loss rate, the local re-selection module of the path where the link is located is immediately triggered.
[0185] (4) Routing table and backup path management
[0186] After each routing discovery process ends, the source node writes the optimal path into the current routing table and stores the K sub-optimal paths in the backup path list (BackupRoutingTable). Each backup path contains its cost (Cost) and the link cost information relative to the previous-hop node. When the primary path fails or the cost exceeds a certain threshold, the one with the lowest cost and the current link status available is selected from the backup paths for replacement; if the backup list is empty, a new routing discovery is triggered again.
[0187] (5) Data forwarding and confirmation
[0188] After the source node sends a data packet, the network layer encapsulates it into a PDU and sends it to the MAC layer. The MAC layer transmits the packet using TDMA time slots or UW-Aloha, and requires the receiver to send back an ACK frame in the next reverse time slot. After the receiver receives the packet, the physical layer measures the signal-to-noise ratio (SNR), updates the link status, and writes it to shared memory. The MAC layer decompresses the MAC header, forwards it to the network layer or processes it at the application layer, and then sends an ACK frame to the previous hop. If an ACK is not received within the predetermined waiting time, the sending node performs a retransmission (the maximum number of retransmissions is set to N, with N = 2 as the default). The packet loss rate statistic for the link is incremented and written to shared memory for use in the next routing cost calculation.
[0189] Based on the same inventive concept, an embodiment of the present application further provides a dynamic routing system for an underwater acoustic communication network, the system comprising:
[0190] The broadcast module is used for each node to obtain its own three-dimensional coordinates in real time through the positioning module, and periodically broadcast the enhanced neighbor discovery control package including the node location, node remaining energy and available bandwidth;
[0191] An updating module, configured for the physical layer of each node to determine a signal-to-noise ratio, a propagation delay, and a packet loss rate according to the received enhanced neighbor discovery control packet, and to update a link state table through a shared memory;
[0192] A construction module, configured for the network layer of each node to read the link status, location information and node residual energy of a neighboring node from the link status table in the shared memory to construct a neighbor table;
[0193] An acquisition module, configured to trigger route discovery to acquire a target routing path when a source node sends underwater acoustic communication data to a destination node based on the neighbor table and no route is available;
[0194] The sending module is used to send the underwater acoustic communication data based on the target routing path.
[0195] like Figure 4 As shown, an embodiment of the present application provides an electronic device, including a processor 111, a communication interface 112, a memory 113 and a communication bus 114, wherein the processor 111, the communication interface 112, and the memory 113 communicate with each other through the communication bus 114.
[0196] Memory 113, for storing computer programs;
[0197] In one embodiment of the present application, the processor 111 is configured to execute a program stored in the memory 113 to implement the method for dynamic routing of an underwater acoustic communication network provided by any of the aforementioned method embodiments, including:
[0198] Each node obtains its own three-dimensional coordinates in real time through the positioning module, and periodically broadcasts enhanced neighbor discovery control packets including node location, node remaining energy and available bandwidth;
[0199] The physical layer of each node determines the signal-to-noise ratio, propagation delay and packet loss rate according to the received enhanced neighbor discovery control packet, and updates the link state table through the shared memory;
[0200] The network layer of each node reads the link status, location information and node residual energy of the neighboring node from the link status table in the shared memory to construct a neighbor table;
[0201] When the source node sends underwater acoustic communication data to the destination node based on the neighbor table and there is no available route, route discovery is triggered to obtain a target routing path;
[0202] The underwater acoustic communication data is sent based on the target routing path.
[0203] An embodiment of the present application also provides a computer-readable storage medium having a computer program stored thereon. When the computer program is executed by a processor, the steps of the dynamic routing method of the underwater acoustic communication network provided in any of the aforementioned method embodiments are implemented.
[0204] It should be noted that, in this document, relational terms such as "first" and "second" are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any actual relationship or order between these entities or operations. Moreover, the terms "comprises", "includes" or any other variants thereof are intended to cover non-exclusive inclusions, so that a process, method, article or device that includes a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, article or device. In the absence of further restrictions, an element defined by the sentence "comprises a..." does not exclude the presence of other identical elements in the process, method, article or device that includes the element.
[0205] The foregoing description is intended only to provide specific embodiments of the present invention, which will enable those skilled in the art to understand and implement the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present invention. Therefore, the present invention is not intended to be limited to the embodiments shown herein, but is intended to be accorded the widest scope consistent with the principles and novel features claimed herein.
Claims
1. A dynamic routing method for an underwater acoustic communication network, characterized in that: The method comprises: Each node obtains its own three-dimensional coordinates in real time through the positioning module, and periodically broadcasts enhanced neighbor discovery control packets including node location, node remaining energy and available bandwidth; The physical layer of each node determines the signal-to-noise ratio, propagation delay and packet loss rate according to the received enhanced neighbor discovery control packet, and updates the link state table through the shared memory; The network layer of each node reads the link status, location information and node residual energy of the neighboring node from the link status table in the shared memory to construct a neighbor table; When the source node sends underwater acoustic communication data to the destination node based on the neighbor table and there is no available route, route discovery is triggered to obtain a target routing path; The underwater acoustic communication data is sent based on the target routing path.
2. The method according to claim 1, characterized in that When the source node sends underwater acoustic communication data to the destination node based on the neighbor table and no route is available, triggering route discovery to obtain a target routing path includes: Generate a routing request packet through the source node, and send the routing request packet to the relay node; In response to receiving the routing request packet, determining a candidate routing path according to a link cost function through the relay node; When the relay node is the target node, returning the routing response packet to the source node; The target routing path is determined from the candidate routing paths according to the routing response packet.
3. The method according to claim 2, characterized in that The determining of a candidate routing path according to a link cost function by the relay node includes: Calculating a link cost value to a previous hop node through the relay node according to the link cost function; Based on the link cost value, the path cumulative cost is updated, and the node identifier of the relay node is added to the routing node record table to determine the candidate routing path.
4. The method according to claim 3, characterized in that The link cost function is shown in the following formula: Among them, C link (i→j) is the link cost from node i to node j, SNR ij is the instantaneous signal-to-noise ratio from node i to j, TRT ij is the one-way propagation delay from node i to node j, E j is the current remaining energy of node j, E max is the initial maximum energy of node j, PLR ij is the packet loss rate from node i to node j, and α, β, γ, and δ are weight coefficients respectively.
5. The method according to claim 3, characterized in that The method further comprises: Determining whether the relay node is the destination node; If not, continue forwarding the routing request packet to the next relay node through the relay node; If so, determining a target routing path from the candidate routing paths based on the cumulative path costs; The target routing path identifier is added to the routing response packet.
6. The method according to claim 5, characterized in that The method further comprises: determining an alternative routing path from the candidate routing paths based on the cumulative path cost; When the target routing path fails, a latest available path is determined from the alternative routing paths.
7. The method according to claim 1, characterized in that The method further comprises: Periodically evaluating the target routing path; If there is an abnormal link with abnormal link data in the target routing path, the abnormal link is locally updated; wherein the link data abnormality includes at least one of the link cost value exceeding the cost threshold, the node remaining energy being lower than the energy threshold, the link instantaneous signal-to-noise ratio dropping exceeding the instantaneous threshold, and the link packet loss rate exceeding the packet loss threshold.
8. A dynamic routing system for an underwater acoustic communication network, characterized in that: The system comprises: The broadcast module is used for each node to obtain its own three-dimensional coordinates in real time through the positioning module, and periodically broadcast the enhanced neighbor discovery control package including the node location, node remaining energy and available bandwidth; An updating module, configured for the physical layer of each node to determine a signal-to-noise ratio, a propagation delay, and a packet loss rate according to the received enhanced neighbor discovery control packet, and to update a link state table through a shared memory; A construction module, configured for the network layer of each node to read the link status, location information and node residual energy of a neighboring node from the link status table in the shared memory to construct a neighbor table; An acquisition module, configured to trigger route discovery to acquire a target routing path when a source node sends underwater acoustic communication data to a destination node based on the neighbor table and no route is available; The sending module is used to send the underwater acoustic communication data based on the target routing path.
9. An electronic device, characterized in that: It includes a processor, a communication interface, a memory and a communication bus, wherein the processor, the communication interface and the memory communicate with each other via the communication bus; Memory for storing computer programs; The processor is configured to implement the steps of the dynamic routing method for an underwater acoustic communication network as described in any one of claims 1 to 7 when executing a program stored in the memory.
10. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the steps of the dynamic routing method of the underwater acoustic communication network as described in any one of claims 1 to 7 are implemented.
Citation Information
Cited By
Physical layer link response time measurement method, electronic equipment and storage medium
CN121217613A
Method for improving power failure alarm reporting success rate of G3 dual-mode communication module
CN121486270A
High-fault-tolerance and anti-mobility underwater acoustic routing decision optimization method based on neural network
CN121967295A