Message transmission method, apparatus and device, and readable storage medium
By establishing multiple communication links between Wi-Fi devices for redundant transmission and carrying redundant tags, the problem of packet loss and disconnection caused by Wi-Fi's susceptibility to interference is solved, thus improving the reliability and efficiency of message transmission.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- XINHUASAN INFORMATION TECH CO LTD
- Filing Date
- 2026-02-14
- Publication Date
- 2026-05-19
AI Technical Summary
As a wireless transmission method, Wi-Fi is easily affected by environmental interference, leading to packet loss, bit errors, and short-term disconnections. The link quality fluctuates greatly with location and time, affecting the quality of message transmission in communication scenarios.
Multiple communication links are established between the sending and receiving devices based on the MLO protocol. Links with low joint failure probability are selected for redundant transmission, and redundant tags are carried in the messages. The receiving device identifies and discards duplicate messages through the redundant tags.
It improves the reliability and efficiency of communication message transmission, especially in complex network environments, effectively responding to momentary interruptions of single links and enhancing the transmission reliability of critical services.
Smart Images

Figure CN122069602A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of communication technology, and in particular to a message transmission method, apparatus, device and readable storage medium. Background Technology
[0002] In modern communication systems, Wi-Fi has become a key infrastructure for terminal devices to connect to upper-layer wireless access devices. However, as a wireless transmission method, Wi-Fi is susceptible to environmental interference, prone to packet loss, bit errors, and short-term disconnections. The link quality fluctuates significantly with location and time, affecting the quality of message transmission in various communication scenarios. Summary of the Invention
[0003] In view of this, in order to solve the above-mentioned technical problems, this application provides a message transmission method, apparatus, device and readable storage medium, which can improve the reliability of communication message transmission.
[0004] Specifically, this application is implemented through the following technical solution: According to a first aspect of the embodiments of this application, a message transmission method is provided, applied to a sending end device, wherein the sending end device and a receiving end device establish multiple communication links based on the MLO protocol, the method comprising: From the multiple communication links with the receiving device, select the first link for forwarding the message to be sent; The message is sent to the receiving end via the first link and the second link forming a redundant link pair with the first link; wherein the message carries a redundancy tag, the redundancy tag being used by the receiving end device to identify whether the received message is a duplicate message.
[0005] Optionally, the probability of synchronous degradation between the first link and any of the second links is lower than a preset threshold; the synchronous degradation probability represents the probability that the first link and the second link will simultaneously experience link quality degradation within a preset time period.
[0006] Optionally, the second link among the multiple communication links that forms a redundant link pair with the first link is determined through the following steps: For each candidate link, based on the degradation status identifiers of the first link and the candidate link at each sampling time within a preset time period, the synchronous degradation probability of the first link and the candidate link is determined; wherein, the candidate link is any link other than the first link among the multiple communication links; the degradation status identifier indicates link quality degradation when it is a first value, and indicates link quality normal when it is a second value; Based on the synchronous degradation probability of the first link and each candidate link, at least one link is selected from each candidate link as the second link.
[0007] Optionally, determining the synchronization degradation probability between the first link and the candidate link includes: Based on the degradation status identifiers of the first link and the candidate link at each sampling time, the actual number of synchronous degradations of the first link and the candidate link during the preset time period is determined; the actual number of synchronous degradations refers to the number of times that the degradation status identifiers of the first link and the candidate link are both the first value at the same sampling time. The expected number of synchronous degradations of the first link and the candidate link during the preset time period is obtained; the expected number of synchronous degradations is determined based on the number of degradation status identifiers of the first link and the number of degradation status identifiers of the candidate link and the first value during the preset time period. Based on the actual number of synchronous degradations and the expected number of synchronous degradations, the synchronous degradation probability of the first link and the candidate link is determined.
[0008] Optionally, obtaining the expected number of synchronization degradations of the first link and the candidate link during the preset time period includes: Based on the number M1 of the first link whose degradation state is identified as the first value at each sampling time within the preset time period, and the total number N of sampling times within the preset time period, the first probability of the first link experiencing link quality degradation is determined. Based on the number M2 of candidate links whose degradation state is identified as the first value at each sampling time and the total number N, a second probability of link quality degradation of the candidate link is determined. Based on the assumption that the link quality degradation of the first link and the candidate link are independent of each other, the expected frequency of simultaneous link quality degradation of the first link and the candidate link is determined according to the first probability, the second probability and the total number N, as the expected number of simultaneous degradations.
[0009] Optionally, at any sampling time, if at least one of the following conditions is met, the degradation state flag at that sampling time is set to the first value: The link signal-to-noise ratio at this sampling time is lower than the preset lower limit threshold. Alternatively, the difference between the link round-trip delay at this sampling moment and the reference round-trip delay is greater than a preset delay surge threshold; the reference round-trip delay is determined based on the round-trip delay at each sampling moment within the preset time period; Alternatively, a packet loss or retransmission event was detected on the link at that sampling time; Alternatively, the Channel State Information (CSI) score at that sampling time is lower than a preset channel quality threshold.
[0010] Optionally, the message carries an encapsulation header; the encapsulation header includes a MAC frame header and an IP header; the redundancy tag is inserted before the IP header and adjacent to the IP header; The specified field in the MAC frame header is set to a preset value; the preset value is used to indicate that the encapsulation header carries a redundant tag; the specified field is a field that represents the upper layer protocol type.
[0011] Optionally, when the packet payload is divided into multiple data fragments, sending the packet to the receiving end via the first link and a second link forming a redundant link pair with the first link includes: A fragmented message is generated based on each data fragment, and the fragmented message is sent to the receiving end through the first link and the second link; wherein, each fragmented message carries a redundancy tag, and the redundancy tag includes at least: Data Identifier ID, used to indicate the message to which the data fragment carried by this fragment belongs; Fragment sequence number, used to indicate the position of the data fragment carried by the fragment message in the payload; Fragmentation flags are used to indicate whether the data fragment carried by the fragmented message is the last fragment of the payload.
[0012] Optionally, before selecting a first link for forwarding the currently to-be-sent message, the method further includes: Determine whether the message type of the message to be sent is a preset message type; wherein, the preset message type is determined based on the current message sending scenario of the receiving device; If so, then from among the multiple communication links with the receiving device, the first link for forwarding the message to be sent is selected.
[0013] According to a second aspect of the embodiments of this application, a message transmission method is provided, applied to a receiving end device, wherein the receiving end device and the sending end device establish multiple communication links based on the MLO protocol, the method comprising: Receive messages from the multiple communication links; If it is determined that the currently received message carries a redundancy tag, determine whether the currently received message is a duplicate message based on the redundancy tag; If not, perform message processing operations on the currently received message; If so, the currently received message will be discarded.
[0014] Optionally, the message reception record stored for any received message includes at least: the data identifier ID included in the redundant tag carried by the message; the data identifier ID is used to identify the original message to which the payload data carried by the message belongs; The step of determining whether the currently received message is a duplicate message based on the redundancy tag includes: Check the stored message reception records to see if there is a first reception record that matches the data identifier ID in the redundant tag; If the currently received message is not a fragmented message, and the first received record exists, then the currently received message is determined to be a duplicate message; otherwise, the currently received message is determined not to be a duplicate message, and a new message received record is added for the currently received message.
[0015] Optionally, the message reception record stored for any received message may also include: the fragment sequence number and the value of the fragmentation flag included in the redundancy tag carried by the message; The step of determining whether the currently received message is a duplicate message based on the redundancy tag includes: From the stored message reception records, query whether there is a second reception record that meets the following first matching condition; the first matching condition includes: the values of data identifier ID, fragment sequence number and fragment flag in the message reception record are all the same as the corresponding values in the redundancy tag carried by the currently received message; If the second receiving record exists, then the currently received message is determined to be a duplicate message; Otherwise, determine that the currently received message is not a duplicate message, and add a new message reception record for the currently received message.
[0016] Optionally, the message reception record stored for any received message may also include the value of a flow feature field; the flow feature field is one or more fields in the 5-tuple information; The step of determining whether the currently received message is a duplicate message based on the redundancy tag includes: Extract the quintuple information from the currently received message; From the stored message reception records, query whether there exists a second reception record that satisfies both the first matching condition and the following second matching condition; wherein, the second matching condition includes: the value of the flow feature field included in the message reception record is the same as the value of the corresponding flow feature field in the parsed quintuple information.
[0017] Optionally, the message processing operation on the currently received message includes: Based on the redundant tags carried by the currently received message, identify whether the currently received message is a fragmented message; If so, the data fragments carried in the fragmented message are cached, and if all data packets corresponding to the load of the cached target message are detected, the data fragments are reassembled according to the fragment sequence number of each data fragment; wherein, the target message is the message identified by the data identifier ID in the redundant tag carried in the fragmented message.
[0018] Optionally, the message encapsulation header includes a specified field; the specified field is a field in the MAC frame header used to indicate the upper-layer protocol type; after receiving the message, the method further includes: If the value of a specified field in the currently received message is detected to be a preset value, it is determined that the currently received message carries a redundant tag. If it is determined that the currently received message carries a redundant label, the redundant label is parsed from the message.
[0019] According to a third aspect of the embodiments of this application, a message transmission apparatus is provided, applied to a sending end device, wherein the sending end device and a receiving end device establish multiple communication links based on the MLO protocol, the apparatus comprising: The link selection module is configured to select a first link for forwarding a message from multiple communication links between the receiving device and the receiving device. A redundant transmission module is configured to send the message to the receiving end via the first link and a second link forming a redundant link pair with the first link; wherein the message carries a redundancy tag, the redundancy tag being used by the receiving end device to identify whether the received message is a duplicate message.
[0020] Optionally, the probability of synchronous degradation between the first link and any of the second links is lower than a preset threshold; the synchronous degradation probability represents the probability that the first link and the second link will simultaneously experience link quality degradation within a preset time period.
[0021] Optionally, the second link among the multiple communication links that forms a redundant link pair with the first link is determined through the following steps: The synchronous degradation probability determination module is configured to determine the synchronous degradation probability of the first link and the candidate link for each candidate link based on the degradation status identifiers of the first link and the candidate link at each sampling time within a preset time period; wherein, the candidate link is any link other than the first link among the multiple communication links; the degradation status identifier indicates link quality degradation when it is a first value, and indicates normal link quality when it is a second value; The second link selection module is configured to select at least one link from each candidate link as the second link based on the synchronization degradation probability of the first link and each candidate link.
[0022] Optionally, when the synchronization degradation probability determination module is configured to determine the synchronization degradation probability between the first link and the candidate link, it includes: The actual synchronization degradation count determination module is configured to determine the actual synchronization degradation count of the first link and the candidate link within a preset time period based on the degradation status identifiers of the first link and the candidate link at each sampling time; the actual synchronization degradation count refers to the number of times that the degradation status identifiers of the first link and the candidate link are both the first value at the same sampling time. The expected number of synchronous degradations determination module is configured to obtain the expected number of synchronous degradations of the first link and the candidate link during the preset time period; the expected number of synchronous degradations is determined based on the number of degradation status identifiers of the first link and the number of degradation status identifiers of the candidate link and the first value during the preset time period. The synchronous degradation probability calculation module is configured to determine the synchronous degradation probability of the first link and the candidate link based on the actual number of synchronous degradations and the expected number of synchronous degradations.
[0023] Optionally, when the expected synchronization degradation number determination module is configured to obtain the expected synchronization degradation number of the first link and the candidate link within the preset time period, it includes: Based on the number M1 of the first link whose degradation state is identified as the first value at each sampling time within the preset time period, and the total number N of sampling times within the preset time period, the first probability of the first link experiencing link quality degradation is determined. Based on the number M2 of candidate links whose degradation state is identified as the first value at each sampling time and the total number N, a second probability of link quality degradation of the candidate link is determined. Based on the assumption that the link quality degradation of the first link and the candidate link are independent of each other, the expected frequency of simultaneous link quality degradation of the first link and the candidate link is determined according to the first probability, the second probability and the total number N, as the expected number of simultaneous degradations.
[0024] Optionally, at any sampling time, if at least one of the following conditions is met, the degradation state flag at that sampling time is set to the first value: The link signal-to-noise ratio at this sampling time is lower than the preset lower limit threshold. Alternatively, the difference between the link round-trip delay at this sampling moment and the reference round-trip delay is greater than a preset delay surge threshold; the reference round-trip delay is determined based on the round-trip delay at each sampling moment within the preset time period; Alternatively, a packet loss or retransmission event was detected on the link at that sampling time; Alternatively, the Channel State Information (CSI) score at that sampling time is lower than a preset channel quality threshold.
[0025] Optionally, the message carries an encapsulation header; the encapsulation header includes a MAC frame header and an IP header; the redundancy tag is inserted before the IP header and adjacent to the IP header; The specified field in the MAC frame header is set to a preset value; the preset value is used to indicate that the encapsulation header carries a redundant tag; the specified field is a field that represents the upper layer protocol type.
[0026] Optionally, when the payload of the message is divided into multiple data fragments, the redundant transmission module is configured to send the message to the receiving end through the first link and a second link forming a redundant link pair with the first link, including: A fragmented message is generated based on each data fragment, and the fragmented message is sent to the receiving end through the first link and the second link; wherein, each fragmented message carries a redundancy tag, and the redundancy tag includes at least: Data Identifier ID, used to indicate the message to which the data fragment carried by this fragment belongs; Fragment sequence number, used to indicate the position of the data fragment carried by the fragment message in the payload; Fragmentation flags are used to indicate whether the data fragment carried by the fragmented message is the last fragment of the payload.
[0027] Optionally, before selecting a first link for forwarding the currently to-be-sent message, the apparatus further includes: The message type determination module is configured to determine whether the message type of the message to be sent is a preset message type; wherein the preset message type is determined based on the current message sending scenario of the receiving device; if so, then from multiple communication links with the receiving device, a first link for forwarding the message to be sent is selected.
[0028] According to a fourth aspect of the embodiments of this application, a message transmission apparatus is provided, applied to a receiving end device, wherein the receiving end device and the sending end device establish multiple communication links based on the MLO protocol, the apparatus comprising: The receiving module is configured to receive messages from the multiple communication links; The redundancy detection module is configured to determine whether the currently received message is a duplicate message based on the redundancy tag if it is determined that the currently received message carries a redundancy tag. The first processing module is configured to perform message processing operations on the currently received message if no. The second processing module, if configured to do so, will discard the currently received message.
[0029] Optionally, the message reception record stored for any received message includes at least: the data identifier ID included in the redundant tag carried by the message; the data identifier ID is used to identify the original message to which the payload data carried by the message belongs; When the redundancy detection module is configured to determine whether a currently received packet is a duplicate packet based on the redundancy tag, it includes: Check the stored message reception records to see if there is a first reception record that matches the data identifier ID in the redundant tag; If the currently received message is not a fragmented message, and the first received record exists, then the currently received message is determined to be a duplicate message; otherwise, the currently received message is determined not to be a duplicate message, and a new message received record is added for the currently received message.
[0030] Optionally, the message reception record stored for any received message further includes: the fragment sequence number and fragment flag value included in the redundancy tag carried by the message; when the redundancy detection module is configured to determine whether the currently received message is a duplicate message based on the redundancy tag, it includes: From the stored message reception records, query whether there is a second reception record that meets the following first matching condition; the first matching condition includes: the values of data identifier ID, fragment sequence number and fragment flag in the message reception record are all the same as the corresponding values in the redundancy tag carried by the currently received message; If the second receiving record exists, then the currently received message is determined to be a duplicate message; Otherwise, determine that the currently received message is not a duplicate message, and add a new message reception record for the currently received message.
[0031] Optionally, the message reception record stored for any received message further includes the value of a flow feature field; the flow feature field is one or more fields in the five-tuple information; when the redundancy detection module is configured to determine whether the currently received message is a duplicate message based on the redundancy label, it includes: Extract the quintuple information from the currently received message; From the stored message reception records, query whether there exists a second reception record that satisfies both the first matching condition and the following second matching condition; wherein, the second matching condition includes: the value of the flow feature field included in the message reception record is the same as the value of the corresponding flow feature field in the parsed quintuple information.
[0032] Optionally, when the first processing module is configured to perform message processing operations on the currently received message, it includes: Based on the redundant tags carried by the currently received message, it is identified whether the currently received message is a fragmented message; if so, the data fragments carried by the fragmented message are cached, and if all data messages corresponding to the payload of the cached target message are detected, the data fragments are reassembled according to the fragment sequence number of each data fragment; wherein, the target message is the message identified by the data identifier ID in the redundant tags carried by the fragmented message.
[0033] Optionally, the message encapsulation header includes a specified field; the specified field is a field in the MAC frame header used to indicate the upper-layer protocol type; after receiving the message, the device further includes: If the value of a specified field in the currently received message is detected to be a preset value, it is determined that the currently received message carries a redundant tag. If it is determined that the currently received message carries a redundant label, the redundant label is parsed from the message.
[0034] According to a fifth aspect of the embodiments of this application, an electronic device is provided, the electronic device comprising: a memory and a processor; the memory being used to store a computer program; the processor being used to execute the above-described message transmission method by invoking the computer program.
[0035] According to a sixth aspect of the embodiments of this application, a computer-readable storage medium is provided, on which a computer program is stored, wherein the program, when executed by a processor, implements the above-described message transmission method.
[0036] The technical solutions provided in this application embodiment may include the following beneficial effects: In the technical solution provided in this application, multiple links are automatically established between the wireless access device and the terminal device that support MLO for transmitting messages. The sending device selects two or more links with a low probability of joint failure from the multiple links, and redundantly transmits key messages with redundant tags. The receiving end can identify whether the currently received message is a duplicate message based on the specified tag carried by each message, and discard the redundant message, thereby improving the reliability of message transmission while ensuring transmission efficiency.
[0037] Furthermore, this method can improve the reliability of message transmission in different network environments. For all-optical indoor networks deployed using FTTR, this application effectively addresses the momentary interruption of a single link caused by complex indoor environments by redundantly sending critical messages through multiple paths with low joint failure probability selected from multiple communication links, thereby enhancing the transmission reliability of critical services. Attached Figure Description
[0038] Figure 1A This is a schematic flowchart illustrating a message transmission method according to an exemplary embodiment of this application; Figure 1B This is a schematic diagram illustrating an exemplary embodiment of this application, showing that there are multiple communication links between a transmitting end device and a receiving end device; Figure 1C This is a schematic diagram of a packaging head structure shown in an exemplary embodiment of this application; Figure 1D This is an exemplary embodiment of the present application illustrating a selection flowchart for at least one second link used in conjunction with the first link to forward the packet; Figure 2A This is a schematic diagram illustrating an exemplary embodiment of the present application of a process for determining the synchronization degradation probability of a first link and a candidate link; Figure 2B This is a flowchart illustrating an exemplary embodiment of this application for determining the expected number of synchronous degradations; Figure 3 This is a schematic diagram illustrating the field structure of a redundant label according to an exemplary embodiment of this application; Figure 4 This is a schematic flowchart of another message transmission method illustrated in an exemplary embodiment of this application; Figure 5 This is a schematic diagram of the structure of a message transmission device shown in an exemplary embodiment of this application; Figure 6 This is a schematic diagram of the structure of another message transmission device illustrated in an exemplary embodiment of this application; Figure 7 This is a hardware schematic diagram of an electronic device illustrated in an exemplary embodiment of this application. Detailed Implementation
[0039] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims. It should be understood that although the terms first, second, third, etc., may be used in this application to describe various information, such information should not be limited to these terms. These terms are only used to distinguish information of the same type from one another.
[0040] In modern communication systems, Wi-Fi has become a key infrastructure for terminal devices to connect to upper-layer wireless access devices. However, as a wireless transmission method, Wi-Fi is susceptible to environmental interference, prone to packet loss, bit errors, and short-term disconnections. The link quality fluctuates significantly with location and time, affecting the quality of message transmission in various communication scenarios.
[0041] For example, the AGV system's Wi-Fi provides the communication foundation for the AGVs to connect to the upper-level system. Specifically, as mobile devices, AGVs cannot connect to the network via wired connections like fixed equipment. Methods such as towed cables and sliding contact lines have high path rigidity and maintenance costs, making them suitable only for a limited number of scenarios. The stable wireless access provided by Wi-Fi allows AGVs to move freely within workshops and warehouses while maintaining continuous communication. Furthermore, AGV operation relies on real-time online scheduling. The scheduling system sends tasks, routes, and traffic control instructions to the AGVs via Wi-Fi, and the AGVs transmit back information such as location, battery level, faults, and task progress in real time, enabling multi-vehicle collaboration, dynamic path planning, and flexible production. At the operation and management level, AGVs connect to the factory network via Wi-Fi, enabling remote monitoring, log collection, parameter configuration, and software upgrades, facilitating integration with the upper-level control system.
[0042] However, as a wireless transmission method, Wi-Fi is inherently unreliable and has at least the following limitations, which affect the quality of message transmission in AGV scenarios: (1) Susceptible to interference and environmental influences: Due to multipath and electromagnetic interference caused by metal shelves, equipment, motors, welding, etc. in the workshop, Wi-Fi adopts a shared channel and contention mechanism, which is prone to packet loss, bit errors and short-term disconnection. The link quality fluctuates greatly with location and time; (2) Packet loss and retransmission problems: Under normal link quality conditions, messages may still be dropped when instantaneous congestion or interference occurs, requiring retransmission from the lower or upper layers to recover, causing some control messages to arrive late or in an abnormal order, which may lead to problems such as disordered instruction execution or asynchronous state; (3) Unpredictable risks caused by changes in network load: When video streams, a large number of logs or multiple vehicles are running concurrently on the same Wi-Fi network, control messages compete with other services for bandwidth and time slots, causing messages to be temporarily unreachable at a certain moment.
[0043] In view of this, this application provides a message transmission method. In this method, multiple links are automatically established between a wireless access device supporting MLO and a terminal device based on MLO technology for message transmission. The sending device selects two or more links with a low probability of joint failure from the multiple links, redundantly transmits key messages, and the messages carry redundant tags. The receiving end can identify whether the currently received message is a duplicate message based on the specified tags carried by each message, and discard redundant messages, thereby improving the reliability of message transmission while ensuring transmission efficiency.
[0044] Multi-channel Loop (MLO) is one of the core features introduced in the Wi-Fi 7 standard. It improves throughput, reduces latency, and enhances connection robustness by simultaneously utilizing multiple frequency bands or channels. Traditional Wi-Fi devices can only communicate on one frequency band (such as 2.4 GHz or 5 GHz) at a time. Devices supporting MLO (such as Wi-Fi 7 access points and terminals) can establish independent but cooperative links on multiple frequency bands / channels simultaneously. These links together form a communication link set; each link has independent physical layer parameters (such as center frequency and bandwidth), MAC layer context, and channel quality metrics.
[0045] This method is applicable to wireless networking environments with various networking modes, including traditional access networks and all-optical access networks with FTTR (Fiber To The Room) architecture, to improve the reliability of wireless data transmission in various networking scenarios. Taking an FTTR network as an example, the wireless access terminal device can be an FTTR slave gateway (optical AP) deployed in each room, and the terminal device is a user-side wireless terminal such as a mobile phone or computer. When the message transmission method provided in this application is enabled between the two, the slave gateway / terminal device can use its supported multi-band links to redundantly transmit messages of critical control signaling or real-time service data. The receiving end device can quickly deduplicate the message by specifying a tag, avoiding the repeated processing of redundant copies of the same message. In this mode, even if one link loses packets due to interference, obstruction, or momentary fading, the other link can still ensure successful message delivery, effectively avoiding problems such as video stuttering, voice interruption, or loss of control commands, thereby significantly improving the stability of wireless communication and user experience under the FTTR network.
[0046] Next, this embodiment explains the message transmission method from the perspective of the sending device. Multiple communication links are established between the sending device and the receiving device based on the MLO protocol. One of the sending device and the receiving device is a wireless access device, and the other is a terminal device. In other words, the sending device can be either a wireless access device that needs to send messages or a terminal device that needs to send messages. For example, in a scenario where an AGV connects to an AP, the sending device can be the AP, used to issue control commands to the AGV, or the sending device can be an AGV terminal, used to report status information to the AP, etc.
[0047] See Figure 1A The flowchart illustrating an exemplary message transmission method may include at least the following steps: S101, Select a first link from among the multiple communication links with the receiving device to forward the message to be sent; S102, the message is sent to the receiving end through the first link and the second link forming a redundant link pair with the first link; wherein the message carries a redundancy tag, the redundancy tag is used by the receiving end device to identify whether the received message is a duplicate message.
[0048] The multiple communication links between the transmitting device and the receiving device refer to multiple parallel physical or logical communication links (such as multiple frequency band links in Wi-Fi 7) established based on the MLO protocol.
[0049] For example, see Figure 1B The illustrative diagram illustrates a scenario where multiple communication links exist between a transmitting device and a receiving device. Links L1, L2, and L3 exist between them. Link L1 is channel 6 in the 2.4 GHz band with an operating bandwidth of 20 MHz; link L2 is channel 36 in the 5 GHz band with an operating bandwidth of 80 MHz; and link L3 is channel 100 in the 6 GHz band with an operating bandwidth of 160 MHz. The three links are activated simultaneously and operate independently, together forming multiple communication links between the transmitting and receiving ends.
[0050] A redundant link pair refers to a highly available transmission channel composed of two communication links that are independent of each other in terms of physical path, transmission medium, or logical channel, used to achieve redundant transmission of the same message. In this embodiment, the redundant link pair includes a first link and a second link. Among the multiple communication links established between the sending device and the receiving device, there is at least one second link, which forms a redundant link pair with the first link. The same message needs to be sent simultaneously through both the first link and the second link that forms the redundant link pair with the first link to achieve redundant transmission of the same message, thereby improving the reliability of message transmission.
[0051] To ensure effective redundant transmission and prevent simultaneous failure of primary and backup links due to environmental or channel dependence, this embodiment requires that the selected first link and any second link have a synchronization degradation probability lower than a preset threshold; the synchronization degradation probability represents the probability that the first link and the second link will simultaneously experience link quality degradation within a preset time period.
[0052] Link quality degradation refers to a state in which the transmission performance of a communication link significantly declines at a certain moment or within a certain period of time, failing to meet the preset quality of service requirements. This state can be quantitatively evaluated through one or more link performance indicators. When at least one link performance indicator is detected to exceed the preset degradation threshold corresponding to that indicator, the link is determined to have experienced link quality degradation. These link performance indicators may include, but are not limited to, link signal-to-noise ratio, link round-trip time, packet loss rate or retransmission events, and CSI (Channel State Information) score.
[0053] The synchronous degradation probability refers to the probability that link quality degradation will occur simultaneously within a preset time period. If the synchronous degradation probability of the first link and any second link is lower than a preset threshold, it means that the possibility of the communication quality of the first link and the second link deteriorating simultaneously is very small. This synchronous degradation probability can be determined by analyzing the link quality of the first link and the second link at various sampling times within the preset time period. The more times the link quality of the first link and the second link deteriorates at the same sampling time, the stronger the correlation between the two links, and the greater the possibility of simultaneous link quality deterioration and link failure. The preset time period can represent a historical time window of a set duration starting from the current time.
[0054] Based on the above, since the message needs to be sent on the first link and the second link that forms a redundant link pair with the first link, when selecting the first link for forwarding the message to be sent, the selected link not only has good transmission quality itself, but can also form a redundant link pair with at least one other link that satisfies the synchronization degradation probability constraint. In other words, a candidate link that can be used as the first link must at least meet the following two conditions: (1) the current link quality meets the availability threshold and is in an effective available state; (2) there is at least one other communication link such that the synchronization degradation probability between the two is lower than the preset threshold, so that they can jointly undertake the redundant transmission task.
[0055] Based on this, the specific selection strategy for the first link can be flexibly determined according to system design requirements and operating scenarios. For example, the optimal primary link can be dynamically selected based on real-time link status, or pre-configured rules can be used to perform targeted allocation between message types and links, determining the link used to forward the current message according to the pre-agreed correspondence between message types and links.
[0056] Therefore, the sending device can select a first link and a corresponding second link for forwarding the message to be sent in any of the following ways, including but not limited to: (1) Dynamic selection based on link quality and synchronization degradation probability The transmitting device can pre-calculate or estimate in real time the probability of synchronous degradation of any two links in multiple communication links within a preset time period, that is, the probability that the link quality of two links will degrade simultaneously at the same sampling time.
[0057] Subsequently, links that meet the following conditions are selected from multiple communication links as reference links: The link itself is currently in good condition (e.g., the link quality is higher than the available threshold) and there is at least one other link, such that the probability of synchronization degradation between the link and the other link is lower than a preset threshold.
[0058] When selecting a first link for forwarding a message to be sent, one of the reference links that meets the above conditions can be further selected as the first link for main path forwarding based on link quality. At the same time, at least one other link among the multiple communication links whose synchronous degradation probability with the first link is lower than a preset threshold is determined as the second link for redundant message transmission.
[0059] (2) Pre-configured link allocation and dynamic redundancy pairing based on message type To improve the transmission efficiency and determinism of specific message types, multiple communication links can be pre-configured to allocate links according to message type in some scenarios. For example, the system stipulates that control messages are sent preferentially on link 1, real-time data messages are sent preferentially on link 2, and large file transfer messages are sent preferentially on link 3.
[0060] Under this type of pre-configured strategy, based on the message type of the message to be sent, a link matching the message type among multiple communication links can be selected as the first link for this transmission.
[0061] The transmitting device can pre-configure an alternative link that forms a redundant link pair with each communication link between itself and the receiving device. This alternative link is one of the communication links. Based on this, if at least one second link forming a redundant link pair with the first link is pre-configured, the second link in the at least one redundant link pair associated with the first link can be directly selected for redundant transmission.
[0062] Alternatively, the transmitting device can continuously monitor the link quality status of each link in multiple communication links in the background, and select at least one other link from the multiple communication links whose synchronization degradation probability is lower than a preset threshold as the second link based on the current link status data of the first link and other links in the multiple communication links.
[0063] It is understandable that in the above-mentioned method of configuring a backup link to form a redundant link pair for each communication link with the receiving device, the link redundancy backup relationship of each redundant link pair is not fixed and can be dynamically updated according to real-time changes in link quality. For example, if the probability of synchronous degradation between link 1 and link 3 is lower than a preset threshold, and links 1 and 3 are redundant backups for each other, when link 3 suffers a serious quality degradation due to temporary obstruction, the system can reassess the probability of synchronous degradation between link 1 and other links (such as link 2), and select a new redundant backup for that link if the threshold is met, thereby ensuring that the combination of multiple communication links is always in a high-reliability state.
[0064] The messages transmitted on the first link and the second link have completely identical content; they differ only in their transmission paths, constituting multi-link redundant transmission. To enable the receiving device to identify whether messages from different links belong to the same message, messages transmitted on both the first and second links carry the same redundancy tag. This redundancy tag serves as a unique identifier in the redundant transmission scenario, used to associate the message sent on the first link with a copy of the message sent on the second link in multi-link concurrent transmission, ensuring that the receiving end can correctly deduplicate redundant copies.
[0065] In this embodiment, the redundancy tag is generated based on a predefined redundancy tag structure and encapsulated in the packet header. Specifically, each packet includes an encapsulation header containing a standard IP header; the redundancy tag is inserted before and immediately adjacent to the IP header. For example, see... Figure 1C An exemplary diagram of an encapsulation header structure is shown. The encapsulation header of the message includes a MAC header, an LLC / SNAP header, and an IP header (such as IPv4 / IPv6 Header). The Redundancy Subheader is inserted before the IP header.
[0066] Additionally, the encapsulation header also includes a MAC frame header, in which a specified field is set to a preset value. This preset value indicates that the encapsulation header carries a redundant tag. The specified field is a field representing the upper-layer protocol type, such as the EtherType field in a MAC frame. In scenarios using IEEE 802.3 LLC / SNAP encapsulation, the protocol identifier field in the SNAP header can be set to the same preset value to achieve an equivalent indication function. For example, see... Figure 1C The diagram shown illustrates the specified field settings in a SNAP encapsulation scenario. The field indicating the protocol type is set to the preset value 88-B5. The receiving device can identify the existence of a custom redundant label when the EtherType field is detected to be at the preset value.
[0067] Furthermore, when the message payload is large and it is divided into K data fragments for transmission, the message to be sent is divided into K fragmented messages, and the payload field of each fragmented message carries one data fragment. In this case, each fragmented message carries a redundancy tag, which includes at least the following three fields: Redundancy ID (Data Identifier ID): Used to indicate the packet to which the data fragment carried by this fragmented packet belongs, ensuring that data fragments from different packets are not confused; Redundancy Sequence Number (Redundancy_Seq): This indicates the position of the data fragments carried by the fragmented message within the payload, facilitating the receiver to reassemble them in order. Fragments Flag: Used to indicate whether the data fragment carried by the fragmented message is the last fragment of the payload (for example, a flag of 0 indicates that it is the last fragment, and a flag of 1 indicates that there are still subsequent data fragments).
[0068] For packets whose payload is not fragmented (i.e., K=1), the fragmentation sequence number and fragmentation flag in the redundancy tag can be set to preset default values (e.g., fragmentation sequence number is 0, fragmentation flag is 0) to indicate that the packet is a complete, single data unit that does not require reassembly and does not contain subsequent fragments; or, the redundancy tag carried by a packet whose payload is not fragmented does not include the fragmentation sequence number and fragmentation flag. In this way, the receiving end can uniformly process fragmented and non-fragmented packets when parsing the redundancy tag: when the fragmentation flag and fragmentation sequence number included in the redundancy tag are both preset default values, or when the redundancy tag does not carry the fields of fragmentation flag and fragmentation sequence number, it can be determined that the packet is an independent complete frame and does not belong to a fragmented packet, without waiting for other fragments or performing reassembly operations, thereby improving processing efficiency and simplifying logical judgment.
[0069] Furthermore, when the payload of the message is divided into K data fragments, during the process of sending the message to the receiving end through the first link and the second link forming a redundant link pair with the first link, a fragmented message can be generated based on each data fragment, and the payload field of each fragmented message carries a data fragment; furthermore, each fragmented message is sent to the receiving end through the first link and the second link.
[0070] Based on this, after the message is transmitted to the receiving device via the first link and the second link, due to the possible difference in transmission delay between the two links, the receiving device may receive the message transmitted via the first link first, or it may receive the message transmitted via the second link first. For the received message, the receiving device can parse the redundant tag carried in its encapsulation header, and based on the key fields such as data identifier ID, fragment sequence number, and fragment flag in the redundant tag, query whether a message with the same redundant tag has been received locally, effectively identifying whether the currently received message is a duplicate message, so as to perform the corresponding message processing operation or message discarding operation.
[0071] In this embodiment of the disclosure, multiple links are automatically established between the wireless access device and the terminal device based on MLO technology to transmit messages. The transmitting device selects two or more links with low probability of synchronization degradation from the multiple links, and redundantly transmits key messages with redundant tags. The receiving end can identify whether the currently received message is a duplicate message based on the specified tag carried by each message, and discard the redundant message. This retains the reliability gain brought by multi-link redundancy, and avoids the upper-layer application from repeatedly processing the same message, saving computing and bandwidth resources.
[0072] This method can effectively address link fluctuations caused by metal obstruction, co-channel interference, and human movement in network scenarios sensitive to latency and reliability, such as industrial control, AGV communication, AR / VR, and FTTR. While ensuring transmission efficiency, it improves the reliability of message transmission. In the FTTR environment, it can also give full play to the advantages of MLO multi-link, providing carrier-grade transmission reliability for critical services while maintaining high throughput and low latency.
[0073] In addition, this method does not require changes to the underlying MLO protocol stack; it can be implemented simply by optimizing the link selection strategy and using lightweight label encapsulation, making it low-cost and easy to implement.
[0074] In some embodiments, regarding the selection of a second link that forms a redundant link pair with the first link among multiple communication links, see [link to relevant documentation]. Figure 1D An exemplary flowchart illustrates the selection of a second link that forms a redundant link pair with the first link. The second link among the multiple communication links that forms a redundant link pair with the first link can be determined through the following steps: S1011, for each candidate link, based on the degradation status identifiers of the first link and the candidate link at each sampling time within a preset time period, determine the synchronous degradation probability of the first link and the candidate link; wherein, the candidate link is any link other than the first link among the multiple communication links; the degradation status identifier indicates link quality degradation when it is a first value, and indicates normal link quality when it is a second value; Candidate links refer to all other available links in a set of multiple communication links besides the first link. For example, if the sender and receiver establish three links L1, L2, and L3 through MLO, and L1 is currently used as the first link, then the candidate links are L2 and L3; if L2 is used as the first link, then the candidate links are L1 and L3, and so on.
[0075] The degradation status flag is a binary label used to indicate whether the link is in a degraded state at the sampling time. When the flag is a first value (e.g., 1 or false), it indicates that the link quality is degraded at the sampling time (e.g., at least one link performance indicator does not meet the threshold requirements for normal communication); when the flag is a second value (e.g., 0 or true), it indicates that the link quality is normal at the sampling time.
[0076] For example, the condition under which the degradation status indicator at any sampling time is set to the first value may include, but is not limited to, any of the following conditions: (1) the link signal-to-noise ratio at the sampling time is lower than the preset lower limit threshold of the signal-to-noise ratio; (2) or, the difference between the link round-trip delay at the sampling time and the reference round-trip delay is greater than the preset delay surge threshold; the reference round-trip delay is determined based on the round-trip delay at each sampling time within the preset time period; (3) or, a packet loss or retransmission event is detected in the link at the sampling time; (4) or, the channel state information CSI score at the sampling time is lower than the preset channel quality threshold.
[0077] For the first link / candidate link, if the link quality at the sampling time meets any of the above conditions, the degradation status identifier of the link at the sampling time can be set to the first value; otherwise, if each of the above conditions is not met, the degradation status identifier of the link at the sampling time can be set to the second value.
[0078] For example, assuming a preset time period is an observation window of length N (where N is the number of sampling moments included in the statistics, corresponding to an actual time length of approximately N×T), the first link or candidate link Li is sampled at a fixed period T (e.g., T = 100 ms). For each sampling moment t (t = 1…N) of link Li, a binary degradation event Ei(t)∈{0,1} is defined to indicate whether the link is in a state of significant quality degradation at that moment.
[0079] Link Li is considered to have experienced link quality degradation at sampling time t if any of the following conditions are met, and the degradation status flag corresponding to sampling time t is denoted as Ei(t)=1; otherwise, Ei(t)=0: (1)SNRi(t) <SNR_min: where \(SNR_i(t)\) is the signal-to-noise ratio of link \(L_i\) at time \(t\), and \(SNR_{min}\) is the preset lower threshold of SNR. When the SNR is lower than this threshold, the physical layer channel quality is considered too low. (2) \(RTT_i(t)-median(RTT_i(\cdot))>\Delta RTT_{thr}\): where \(RTT_i(t)\) is the round-trip delay of link \(L_i\) at time \(t\), \(RTT_i(\cdot)\) represents the RTT sequence within the current window, \(median(RTT_i(\cdot))\) is the median of this sequence as the reference round-trip delay, and \(\Delta RTT_{thr}\) is the preset sudden increase threshold allowed for RTT. When the increment of the current RTT compared to the reference round-trip delay of the window exceeds \(\Delta RTT_{thr}\), it indicates that the round-trip delay has increased abnormally, and the link quality is determined to deteriorate. (3) \(loss_i(t) = 1\) (packet loss / retransmission occurs): where \(loss_i(t)\) is the packet loss / retransmission indication variable of link \(L_i\) at time \(t\), and a value of 1 indicates that a packet loss or retransmission event is detected within this sampling period. (4) \(Q_i(t)<Q_{thr}\) (simplified CSI / channel quality is lower than the threshold): where \(Q_i(t)\) is the simplified CSI / channel quality index of link \(L_i\) at time \(t\) (such as the mean subcarrier SNR or the aggregated quality score), and \(Q_{thr}\) is the lower threshold of this index. When \(Q_i(t)\) is lower than \(Q_{thr}\), the overall channel quality is considered to have deteriorated significantly.
[0080] Through the above determination rules, the link quality of each link within a preset time period is abstracted into a sequence of 0 / 1 deterioration events \(\{E_i(t)\}_{t = 1..N}\), including \(N\) deterioration status identifiers.
[0081] The synchronous deterioration probability of the first link and the candidate link reflects the probability that the first link and the candidate link simultaneously experience a deterioration in link quality. Based on this, when determining the synchronous deterioration probability of the first link and the candidate link, it can be determined according to the actual observed number of synchronous deteriorations of the first link and the candidate link within a preset time period, and the expected number of synchronous deteriorations of the first link and the candidate link deduced under the condition that the first link and the candidate link are assumed to be independent of each other.
[0082] See Figure 2A The schematic diagram of the determination process of the synchronous deterioration probability of the exemplary first link and the candidate link may include steps: S201, based on the degradation status identifiers of the first link and the candidate link at each sampling time, determine the actual number of times the first link and the candidate link are synchronously degraded during the preset time period; the actual number of times the degradation status identifiers of the first link and the candidate link are both the first value at the same sampling time. For example, if the first link is denoted as Li and the candidate link is denoted as Lj, then the actual number of synchronous degradations of the first link and the candidate link during the preset time period represents the number of times that the degradation status identifiers of links Li and Lj are both the first value at the same sampling time during each sampling time within the preset time period.
[0083] The actual number of synchronous degradations can be expressed as: Where “∧” represents a logical AND operation, Ei(t) represents the degradation status flag of link Li at sampling time t, and Ej(t) represents the degradation status flag of link Lj at sampling time t. The first value of the degradation status flag is set to 1, and the second value is set to 0. Then, a synchronous degradation is counted if and only if Ei(t) = 1 and Ej(t) = 1. Therefore, CoFail ij This represents the total number of times that two links are simultaneously in a state of link quality degradation at N sampling times.
[0084] S202, obtain the expected number of synchronous degradations of the first link and the candidate link during the preset time period; the expected number of synchronous degradations is determined based on the number of degradation status identifiers of the first link and the number of degradation status identifiers of the candidate link and the first value during the preset time period. The expected number of simultaneous degradations represents the anticipated number of times (i.e., the theoretical average number of co-occurrences) of link quality degradation occurring simultaneously on the first link and the candidate link within the preset time period. It is used to quantify the correlation between the degradation behaviors of the two links. This expected number of simultaneous degradations is not a direct statistical count of the actual number of simultaneous degradations, but rather a theoretical estimate based on the assumption of link degradation independence. It can be determined based on the probability of the first link independently experiencing link quality degradation and the probability of the candidate link independently experiencing link quality degradation within the preset time period.
[0085] Therefore, see Figure 2B An exemplary flowchart for determining the expected number of synchronization degradations is shown, which can obtain the expected number of synchronization degradations of the first link and the candidate link during the preset time period through the following steps: S2021, based on the number M1 of the first link whose degradation state is identified as the first value at each sampling time within the preset time period and the total number N of sampling times within the preset time period, determine the first probability of the first link experiencing link quality degradation. S2022, based on the number M2 of candidate links whose degradation state is identified as the first value at each sampling time and the total number N, determine the second probability of the candidate link experiencing link quality degradation; S2023, based on the assumption that the link quality degradation of the first link and the candidate link are independent of each other, the expected frequency of simultaneous link quality degradation of the first link and the candidate link is determined as the expected number of simultaneous degradations according to the first probability, the second probability and the total number N.
[0086] The assumption that the link quality degradation of the first link and the candidate link are independent means that, at any sampling time within a preset time period, the events of link quality degradation occurring on the first link and the events of link quality degradation occurring on the candidate link are statistically independent of each other; that is, whether one link degrades will not affect the probability of degradation on the other link. The channel environment, interference sources, fading characteristics, and other influencing factors of the two links are not statistically significantly correlated, and their degradation behavior is driven by their own independent stochastic processes. Therefore, under this assumption, the probability of both links degrading simultaneously is equal to the product of their individual degradation probabilities.
[0087] For example, taking the first link Li and the candidate link Lj as examples, assuming that the degradation events Ei(t) of the first link Li and Ej(t) of the candidate link Lj are independent of each other in the time dimension, the expected number of synchronous degradations within the window can be approximated as: E_indep_ij = (M1×M2) / N; Where E_indep_ij represents the theoretically expected number of simultaneous degradations when the degradation events of links Li and Lj are independent, calculated based on their respective degradation probabilities. Specifically, P1=M1 / N represents the first probability of link quality degradation occurring in the first link, and P2=M2 / N represents the second probability of link quality degradation occurring in the candidate link. If the degradation events of the two links are independent of each other, then at any sampling time, the probability of both links deteriorating simultaneously is P=P1×P2= (M1 / N) ×(M2 / N); and the expected total number of simultaneous degradations over N sampling times is E_indep_ij=P×N=(M1×M2) / N.
[0088] S203, based on the actual number of synchronization degradations and the expected number of synchronization degradations, determine the synchronization degradation probability between the first link and the candidate link.
[0089] When the actual number of synchronous degradations is close to the expected number of synchronous degradations, the excess number is close to 0, indicating that the frequency of synchronous degradation of the two links is comparable to the expectation in the scenario where the two links are independent, and the correlation of short-term quality degradation is not obvious. If the actual number of synchronous degradations is significantly greater than the expected number of synchronous degradations, the excess number is positive and increases with the difference, indicating that there is significant excess synchronous link quality degradation in the two links, that is, the two links tend to enter a degradation state at the same time in a short period of time, and the risk of joint failure is high.
[0090] Therefore, in this step, the synchronization degradation probability between the first link and the candidate link can be determined based on the excess number of actual synchronization degradations compared to the expected synchronization degradations.
[0091] To avoid instability of the value when the number of degradations is extremely small, the excess number can be normalized based on the number of times the first link and the candidate link experience link quality degradation within the preset time period. The normalized result can then be used as the synchronous degradation probability of the first link and the candidate link.
[0092] For example, this synchronous degradation probability can be formulated as: Cdeg(i,j) = (CoFail_ij - E_indep_ij) / max(Fail_i, Fail_j, 1) Wherein, the numerator CoFail_ij - E_indep_ij represents the excess number of actual synchronous degradations relative to the expected number of synchronous degradations under the independent assumption; the denominator max(Fail_i, Fail_j, 1) represents the larger of the link degradation numbers Fail_i and Fail_j existing in the first link Li and the candidate link Lj respectively, and ensures that this value is not less than 1, so as to avoid division by zero and achieve reasonable normalization of the excess number.
[0093] If CoFail_ij is close to E_indep_ij, then Cdeg(i,j) is close to 0, indicating that the frequency of synchronous degradation of the two links is comparable to the expectation in independent scenarios, and the correlation of short-term quality degradation is not obvious. If CoFail_ij is significantly greater than E_indep_ij, then Cdeg(i,j) is positive and increases with the difference, indicating that there is significant excess synchronous link quality degradation in the two links, that is, the two links tend to enter a degraded state simultaneously in a short period of time, and the risk of joint failure is high.
[0094] To facilitate normalization and subsequent threshold selection, Cdeg(i,j) can also be subjected to monotonically nonlinear compression: Cdeg′(i,j) = 1- exp( - λ·max(Cdeg(i,j), 0)) Where λ>0 is an adjustment parameter used to control the steepness of the compression curve; max(Cdeg(i,j), 0) truncates negative values to 0, thus focusing on the part of the excess synchronization link quality degradation. The compressed Cdeg′(i,j) takes values in the range [0,1), which has a stronger distinguishing effect on high synchronization link quality degradation. The closer the value is to 1, the higher the probability of synchronization link quality degradation between the first link Li and the candidate link Lj.
[0095] S1012, based on the synchronization degradation probability of the first link and each candidate link, select at least one link from each candidate link as the second link.
[0096] The synchronization degradation probability requirement between the first link and any second link must be lower than a preset threshold. Therefore, when selecting at least one link as the second link from among the candidate links, at least one link can be selected from among the candidate links that meet the synchronization degradation probability requirement of being lower than the preset threshold. For example, the candidate link with the lowest synchronization degradation probability can be selected as the second link from among the candidate links that meet the synchronization degradation probability requirement of being lower than the preset threshold.
[0097] Assuming the first link Li and the candidate link Lj, calculate G(i,j)=Cdeg′(i,j) within the most recent time window, and set the threshold to G_th, then: When G(i,j)<G_th, the short-term link quality degradation processes of the first link Li and the candidate link Lj are considered to be relatively independent and suitable as a redundant link pair. When G(i,j)≥G_th, it is considered that the first link Li and the candidate link Lj have a strong tendency for short-term synchronous link quality degradation and are not suitable as redundant link pairs for critical control messages.
[0098] For example, there are multiple communication links between the sending and receiving devices, including L1, L2, and L3. The first link is L1, and the candidate links are L2 and L3. If the synchronization degradation probability between L1 and L2 is 5%, the synchronization degradation probability between L1 and L3 is 45%, and the preset threshold is 15%, then L2 is a candidate link that meets the requirement that the synchronization degradation probability is lower than the preset threshold. L2 is then used as the second link to cooperate with the first link L1 in sending messages.
[0099] In this embodiment, when selecting a second link to cooperate with the first link in transmitting messages, for each candidate link, the actual number of synchronous degradations between the candidate link and the first link is statistically analyzed based on real-time sampling data. The theoretical expected number of synchronous degradations is also calculated based on their respective independent degradation frequencies. The true correlation between the links is quantified by comparing the differences between the two, and the link least related to the degradation behavior of the first link is selected as the second link. This identifies redundant links with independence from a statistical correlation perspective, which is suitable for complex and variable scenarios such as industrial AGVs and mobile robots. The selected second link is less susceptible to interference from the same environment as the first link, thus improving the efficiency and reliability of redundant transmission.
[0100] In some embodiments, based on the core fields mentioned above, the redundancy tag may also include extended fields such as version number, header length, flags, path ID, lifetime / deadline, and integrity / check to support more complex redundant transmission control and system security assurance.
[0101] See Figure 3 The illustration shows a schematic diagram of the field structure of a redundancy tag. This redundancy tag can employ a fixed-length 16-byte structure to ensure natural 4 / 8-byte alignment on most CPUs, while also reserving space for future expansion. For example, the field layout of the redundancy tag can be: Version (4 bits): The current version number is 0001, which is used to ensure compatibility with future protocol evolution and facilitate subsequent function expansion; Flags (4 bits): Custom semantic control bits, including: bit0: P (Primary), the value is used to indicate whether the message is the original message sent by the first link or a copy of the message sent by the second link; bit1: F (Fragments Flag), used to indicate whether the data fragment carried by this fragment message is the last fragment; bit2-bit3: R (Reserved), reserved bits for later definition; HLen (4 bits): Indicates the total length of the redundant tag fields, in 4 bytes. The current redundant tag is 16 bytes, so HLen = 4; This is reserved for future expansion. If optional fields need to be added in the future, the HLen value can be increased. During parsing, subsequent non-standard parts will be skipped based on this field. PathID (4 bits): Used to identify logical paths, emphasizing the attribution of redundant paths. This field is filled in by the sender based on the currently used physical link, indicating whether the current link is the first link or a second link that forms a redundant pair with the first link; Redundancy_ID (16 bits): This indicates the original packet to which the data fragment carried by the fragmented packet belongs. Multiple fragmented packets corresponding to the payload of the same original packet carry the same Redundancy_ID, which is used to aggregate data fragments carried by fragmented packets from different links at the receiving end. This Redundancy_ID allows for cyclic reuse within connection windows at different time periods, improving resource utilization.
[0102] Redundancy_Seq (32 bit): This indicates the position of the data fragments carried by the fragmented message in the payload of the original message, which facilitates the receiver to reassemble them in order. The fragment sequence numbers corresponding to multiple data fragments of the same payload can monotonically increase, which is used by the receiver to identify duplicate messages, perform deduplication and out-of-order reassembly in multipath scenarios. Lifetime / Deadline (32 bit): Indicates the effective lifespan or deadline of the redundant message, calculated from the time of transmission. It is used by the receiving end to determine whether the message still needs to be processed (if it times out, it is discarded). Unlike IP TTL, it reflects the service-level timeliness rather than the network hop count. Integrity / Check (32 bit): Performs integrity verification (such as CRC-32) on the redundant tag itself to prevent the tag from being accidentally modified or destroyed during transmission, and avoids the misuse of the same Redundancy_ID or Redundancy_Seq by different systems or paths due to tag errors, thereby causing incorrect merging or state confusion.
[0103] In this embodiment, the redundant label design takes into account simplicity, scalability and high reliability. It can support multi-link redundant transmission, deduplication, fragmentation and reassembly, path identification, timeliness control and error prevention mechanism without significantly increasing message overhead. It is suitable for scenarios with extremely high requirements for transmission reliability, such as industrial control, real-time communication and autonomous driving.
[0104] Next, this embodiment explains the message transmission method from the perspective of the receiving device. Multiple communication links are established between the sending device and the receiving device based on the MLO protocol. One of the sending device and the receiving device is a wireless access device, and the other is a terminal device. If the sending device is a wireless access device that needs to send messages, then the receiving device is a terminal device that receives messages.
[0105] See Figure 4 An exemplary flowchart of another message transmission method is shown, which may include at least the following steps: S401, Receive messages from the multiple communication links; In other words, the receiving device receives messages from the sending device based on multiple communication links between the receiving device and the sending device.
[0106] S402, if it is determined that the currently received message carries a redundancy tag, determine whether the currently received message is a duplicate message based on the redundancy tag; The message encapsulation header includes a designated field, which is a field in the MAC frame header used to indicate the upper-layer protocol type (e.g., the EtherType field in an Ethernet frame). To maintain compatibility with existing message encapsulation header structures, this application sets the value of this designated field to a preset value when the transmitted message carries a redundancy tag, so that the receiving device can quickly determine whether the currently received message carries a redundancy tag. Based on this, upon receiving the message, if the value of the designated field in the currently received message is detected to be a preset value, it is determined that the currently received message carries a redundancy tag; if it is determined that the currently received message carries a redundancy tag, the redundancy tag is parsed from the message.
[0107] If it is determined that the currently received message does not carry a redundant tag, the message is decapsulated according to the transmission process of non-redundant messages, and then the message is processed accordingly, such as transmitting the message and data to the upper-layer protocol stack for application layer processing.
[0108] For a currently received message, if the message carries a redundancy tag, it indicates that the message has been redundantly transmitted on multiple links, and it is necessary to identify whether the currently received message is a duplicate copy. Therefore, after parsing the redundancy tag from the message, it is possible to determine whether the currently received message is a duplicate based on the redundancy tag.
[0109] S403, if not, perform message processing operation on the currently received message; When the redundancy tag indicates that the currently received message is not a duplicate message, it means that the currently received message is a valid message received for the first time. Then, message processing operations are performed on the currently received message, which may include, but are not limited to, decapsulating the message, extracting payload data, verifying integrity, and performing corresponding business logic processing (such as parsing control instructions, reporting status data, playing media streams, etc.) according to the message type or content.
[0110] Additionally, a new message reception record can be added for the currently received message. This new message reception record can be used for subsequent redundant message deduplication identification. The message reception record can include at least the data identifier ID included in the redundancy tag carried by the currently received message, and if the redundancy tag carries fragment sequence number and fragment flag values, it can also include the fragment sequence number and fragment flag values, and / or include one or more fields from the five-tuple information of the currently received message.
[0111] S404, if so, discard the currently received message.
[0112] Under a multi-link redundancy transmission mechanism, the same message is sent concurrently through the first link and at least one second link. Due to potential differences in transmission latency between different links, the receiving end may receive multiple messages with identical content but different paths sequentially. Matching redundancy tags allows for accurate identification of whether these messages belong to the same message. If a matching message reception record is found locally at the receiving end, it indicates that the message has been successfully received and processed, and the currently received message is a duplicate reception.
[0113] If duplicate messages are processed again at this point, such as by passing the payload data carried by the message to the upper-layer protocol stack, it will lead to problems such as duplicate instruction processing and application layer data corruption. Therefore, this step discards the currently received message when it detects that the message being received locally at the receiving end device is a duplicate message. This achieves redundant message deduplication, preserving the high reliability advantages of multi-links while avoiding duplicate processing by upper-layer applications. It ensures that upper-layer services only perceive a valid delivery once, achieving highly reliable, non-duplicated transmission and improving the overall efficiency and stability of the system.
[0114] In this embodiment, when the receiving device receives a message through multiple communication links, it checks whether a message with the same logical unit has been processed locally based on the redundant tag carried in the message. If no such message has been received, the tag is recorded and the payload is delivered to the upper layer. If a matching record already exists, the current message is determined to be a redundant copy and discarded. In this way, the low-probability joint failure link pairing and tagged redundant transmission between the receiving and sending ends work together to form a closed-loop message transmission method where the sending end reliably and redundantly transmits messages, and the receiving end accurately deduplicates messages. The redundant tags achieve accurate deduplication, ensuring that the upper-layer protocol stack processes valid data only once. This allows MLO redundant transmission to improve reliability while avoiding problems such as duplicate instruction execution, data corruption, or resource waste.
[0115] In some embodiments, the determination of whether the currently received message is a duplicate message based on the redundancy tag in step S402 can be implemented based on the field information carried in the redundancy. In this embodiment, the redundancy tag carried by the currently received message may include at least the field: data identifier ID, which is used to identify the original message to which the payload data carried by the message belongs; correspondingly, the message reception record stored for any received message includes at least the data identifier ID included in the redundancy tag carried by the message. Based on this, the process of determining whether the currently received message is a duplicate message based on the redundancy tag can be implemented through the following steps: The system queries the stored message reception records to see if there is a first reception record that matches the data identifier ID in the redundancy tag. If the currently received message is not a fragmented message, and the first reception record exists, the currently received message is determined to be a duplicate message. Otherwise, the system determines that the currently received message is not a duplicate message and adds a new message reception record for the currently received message.
[0116] The determination of whether a currently received message is a fragmented message can be made using any of the following methods: (1) The communication system pre-agres that all messages transmitted between the sending end and the receiving end are complete messages and the fragmentation mechanism is not enabled; under this agreement, any received message is regarded as a non-fragmented message by default; (2) The structure of the redundant label only contains the data identifier ID and does not contain fields for fragment reassembly (such as fragment sequence number, fragment flag, etc.); if the receiving end does not detect any fragment-related fields by parsing the redundant label, it determines that the message is a non-fragmented message. (3) The structure of the redundant label carries fragmentation-related fields (such as fragmentation number, fragmentation flag, etc.) for fragmentation reassembly, and the fragmentation-related fields are all preset values, used to indicate that the message is a non-fragmented message.
[0117] In any of the above scenarios, since the message is transmitted in its complete form, the payload data corresponding to the same original message is carried by only a single message. Therefore, if there is already a receiving record with the same data identifier ID, it can be uniquely determined that the current message is a repeatedly received message.
[0118] Furthermore, in scenarios where the packet payload is divided into multiple data fragments and transmitted as multiple fragmented packets, the redundant label carried by the currently received packet can at least include fragment-related fields: fragment sequence number and fragment flag. The specific meanings of these fields are described in the preceding embodiments. This embodiment uses a ternary key composed of data identifier ID, fragment sequence number, and fragment flag to uniquely identify a packet. If two packets have the same ternary key, it indicates that these two packets are the same packet. This can accurately distinguish packets from different payloads, different fragment locations, and different transmission replicas, effectively avoiding misjudgments caused by data identifier ID conflicts in packet fragmentation transmission scenarios.
[0119] Based on this, a ternary key can be used to identify whether the currently received message is a duplicate message. That is, the message reception record stored for any received message must include at least: the data identifier ID, fragment sequence number, and fragment flag value included in the redundancy tag carried by the message. When determining whether the currently received message is a duplicate message based on this redundancy tag, it can be achieved in the following way: From the stored message reception records, query whether there exists a second reception record that meets the following first matching condition; wherein, meeting the first matching condition includes: the values of data identifier ID, fragment sequence number, and fragment flag in the message reception record are all the same as the corresponding values in the redundancy tag carried by the currently received message; if the second reception record exists, it is determined that the currently received message is a duplicate message; otherwise, it is determined that the currently received message is not a duplicate message, and a new message reception record is added for the currently received message.
[0120] In other words, when a new message arrives, the receiving end compares the ternary key in its redundant tag with the ternary key in each message reception record stored locally on the receiving device. If there is a second reception record with a completely matching ternary key, the currently received message is determined to be a duplicate message, which has been previously received and processed, and needs to be discarded. If there is no second reception record with a completely matching ternary key, it means that the currently received message is a valid message received for the first time, and message processing operations are performed and a new message reception record is added.
[0121] To further improve the accuracy of duplicate message identification and avoid misjudgment or incorrect deduplication caused by different data streams using the same redundant label (such as Redundancy_ID reuse), the message reception record stored locally in the receiving device for any received message may also include the value of the flow feature field; the flow feature field is one or more fields in the five-tuple information, such as source IP address, destination IP address, source port number, destination port number, transport layer protocol type, etc.
[0122] For example, in long-connection or high-concurrency scenarios, different service flows may reuse the same Redundancy_ID at different times (e.g., due to limited ID space or cyclical operation within a time window). If only redundant tags are relied upon for matching, packets from different flows may be misjudged as the same redundant copy, leading to the incorrect discarding of valid packets. Introducing some or all fields from the 5-tuple as flow context constraints can effectively isolate different communication sessions, ensuring that deduplication operations are performed only within the same logical flow.
[0123] Based on this, when querying the stored message reception records for a matching message reception record based on this redundant label, the following steps can be taken: Extract the quintuple information from the currently received message; From the stored message reception records, query whether there exists a second reception record that satisfies both the first matching condition and the following second matching condition; wherein, satisfying the second matching condition includes: the value of the flow feature field included in the message reception record is the same as the value of the corresponding flow feature field in the parsed quintuple information.
[0124] In other words, if a message reception record in the stored message reception records matches the corresponding flow feature fields in the redundant label and 5-tuple information carried by the currently received message in both the redundant label and the flow context, then it is determined that a matching second reception record exists in the stored message reception records. Therefore, the currently received message is considered a duplicate message and needs to be discarded. By introducing a flow feature field matching method, the system can improve the accuracy of duplicate message identification in multi-stream, multi-session environments while ensuring high reliability.
[0125] Furthermore, in scenarios where messages are transmitted in fragments, the payload data of the same original message is split into multiple data fragments, which are then encapsulated in multiple fragmented messages for transmission. Each fragmented message carries the same data identifier ID (used to associate with the same original message), but has different fragment sequence numbers and fragment flags (used to indicate the fragment position and whether it is the last fragment). Therefore, the receiving device needs to reassemble the fragmented messages.
[0126] Based on this, when it is determined that the currently received message is not a duplicate message, and message processing operations are performed on the currently received message, fragmented message reassembly can be achieved in the following way: Based on the redundant tags carried by the currently received message, it is identified whether the currently received message is a fragmented message; if so, the data fragments carried by the fragmented message are cached, for example, the payload data of the message is cached in a reassembly buffer associated with the data identifier ID in the redundant tag carried by the fragmented message. Furthermore, if all data messages corresponding to the payload of the cached target message are detected, the data fragments are reassembled according to their fragment sequence numbers; wherein, the target message is the message identified by the data identifier ID in the redundant tag carried by the fragmented message.
[0127] In the process of identifying whether the currently received message is a fragmented message, if it is pre-agreed that the redundancy label of non-fragmented messages does not carry fragmentation sequence number and fragmentation flag, then it can be checked whether the redundancy label includes fragmentation sequence number and fragmentation flag. If it does, then the currently received message is determined to be a fragmented message. Alternatively, if it is pre-agreed that the redundancy label of non-fragmented messages carries fragmentation sequence number and fragmentation flag, and the fragmentation sequence number and fragmentation flag are preset values, then it can be checked whether the values of the fragmentation sequence number and fragmentation flag included in the redundancy label are preset values. If they are, then it is determined whether the currently received message is a fragmented message.
[0128] If the fragment sequence number values in the redundancy tag corresponding to each data fragment of the same original message increase sequentially from a preset starting value, after caching the payload data of the currently received message, if it is detected that the fragment flag included in the redundancy tag carried by the currently received message indicates that the data encapsulated in the message is the last fragment of the target payload, and the fragment sequence number values corresponding to each cached data fragment satisfy the condition of increasing sequentially from the preset starting value to the fragment sequence number value corresponding to the currently received message, then all data packets corresponding to the payload of the cached target message are determined.
[0129] In some embodiments, for the message reception records of received messages stored locally at the receiving end, a background scheduled task periodically cleans up timed-out message reception records to prevent the infinite accumulation of reception records from exhausting memory resources and to ensure that deduplication is based only on historical data within a valid time window. The timeout threshold is set to cover the maximum transmission delay required for all fragments (including the last fragment) corresponding to the load of a complete message to reach the receiving end under the worst link quality conditions. For example, in industrial Wi-Fi scenarios, if actual measurements or estimates suggest that the last fragment corresponding to the load of a message may arrive no later than 500 milliseconds after transmission under extreme interference, the timeout threshold can be set to 600 milliseconds or 1 second to allow for a safety margin.
[0130] Corresponding to the embodiments of the aforementioned message transmission method, see [link to relevant documentation]. Figure 5 As shown, this application also provides an embodiment of a message transmission device applied to a sending end device, wherein the sending end device and the receiving end device establish multiple communication links based on the MLO protocol, and the device includes: The link selection module 501 is configured to select a first link for forwarding a message from multiple communication links between the receiving device and the receiving device. The redundant transmission module 502 is configured to send the message to the receiving end through the first link and a second link forming a redundant link pair with the first link; wherein the message carries a redundancy tag, the redundancy tag being used by the receiving end device to identify whether the received message is a duplicate message.
[0131] In some embodiments, the probability of synchronous degradation between the first link and any of the second links is lower than a preset threshold; the probability of synchronous degradation represents the probability that the first link and the second link will simultaneously experience link quality degradation within a preset time period.
[0132] In some embodiments, the second link among the plurality of communication links that forms a redundant link pair with the first link is determined by the following steps: The synchronous degradation probability determination module is configured to determine the synchronous degradation probability of the first link and the candidate link for each candidate link based on the degradation status identifiers of the first link and the candidate link at each sampling time within a preset time period; wherein, the candidate link is any link other than the first link among the multiple communication links; the degradation status identifier indicates link quality degradation when it is a first value, and indicates normal link quality when it is a second value; The second link selection module is configured to select at least one link from each candidate link as the second link based on the synchronization degradation probability of the first link and each candidate link.
[0133] In some embodiments, when the synchronization degradation probability determination module is configured to determine the synchronization degradation probability between the first link and the candidate link, it includes: The actual synchronization degradation count determination module is configured to determine the actual synchronization degradation count of the first link and the candidate link within a preset time period based on the degradation status identifiers of the first link and the candidate link at each sampling time; the actual synchronization degradation count refers to the number of times that the degradation status identifiers of the first link and the candidate link are both the first value at the same sampling time. The expected number of synchronous degradations determination module is configured to obtain the expected number of synchronous degradations of the first link and the candidate link during the preset time period; the expected number of synchronous degradations is determined based on the number of degradation status identifiers of the first link and the number of degradation status identifiers of the candidate link and the first value during the preset time period. The synchronous degradation probability calculation module is configured to determine the synchronous degradation probability of the first link and the candidate link based on the actual number of synchronous degradations and the expected number of synchronous degradations.
[0134] In some embodiments, when the expected synchronization degradation number determination module is configured to obtain the expected synchronization degradation number of the first link and the candidate link within the preset time period, it includes: Based on the number M1 of the first link whose degradation state is identified as the first value at each sampling time within the preset time period, and the total number N of sampling times within the preset time period, the first probability of the first link experiencing link quality degradation is determined. Based on the number M2 of candidate links whose degradation state is identified as the first value at each sampling time and the total number N, a second probability of link quality degradation of the candidate link is determined. Based on the assumption that the link quality degradation of the first link and the candidate link are independent of each other, the expected frequency of simultaneous link quality degradation of the first link and the candidate link is determined according to the first probability, the second probability and the total number N, as the expected number of simultaneous degradations.
[0135] In some embodiments, at any sampling time, if at least one of the following conditions is met, the degradation state identifier at that sampling time is set to a first value: The link signal-to-noise ratio at this sampling time is lower than the preset lower limit threshold. Alternatively, the difference between the link round-trip delay at this sampling moment and the reference round-trip delay is greater than a preset delay surge threshold; the reference round-trip delay is determined based on the round-trip delay at each sampling moment within the preset time period; Alternatively, a packet loss or retransmission event was detected on the link at that sampling time; Alternatively, the Channel State Information (CSI) score at that sampling time is lower than a preset channel quality threshold.
[0136] In some embodiments, the message carries an encapsulation header; the encapsulation header includes a MAC frame header and an IP header; the redundancy tag is inserted before and adjacent to the IP header; The specified field in the MAC frame header is set to a preset value; the preset value is used to indicate that the encapsulation header carries a redundant tag; the specified field is a field that represents the upper layer protocol type.
[0137] In some embodiments, where the packet payload is divided into multiple data fragments, The redundant transmission module is configured to send the message to the receiving end via the first link and a second link forming a redundant link pair with the first link, including: A fragmented message is generated based on each data fragment, and the fragmented message is sent to the receiving end through the first link and the second link; wherein, each fragmented message carries a redundancy tag, and the redundancy tag includes at least: Data Identifier ID, used to indicate the message to which the data fragment carried by this fragment belongs; Fragment sequence number, used to indicate the position of the data fragment carried by the fragment message in the payload; Fragmentation flags are used to indicate whether the data fragment carried by the fragmented message is the last fragment of the payload.
[0138] In some embodiments, before selecting a first link for forwarding a message to be sent, the apparatus further includes: The message type determination module is configured to determine whether the message type of the message to be sent is a preset message type; wherein the preset message type is determined based on the current message sending scenario of the receiving device; if so, then from multiple communication links with the receiving device, a first link for forwarding the message to be sent is selected.
[0139] See Figure 6 As shown, this application also provides an embodiment of another message transmission device applied to a receiving end device, wherein the receiving end device and the sending end device establish multiple communication links based on the MLO protocol, and the device includes: The receiving module 601 is configured to receive messages from the multiple communication links; The redundancy detection module 602 is configured to determine whether the currently received message is a duplicate message based on the redundancy tag when it is determined that the currently received message carries a redundancy tag. The first processing module 603 is configured to perform message processing operations on the currently received message if no. The second processing module 604 is configured to discard the currently received message if the condition is met.
[0140] In some embodiments, the message reception record stored for any received message includes at least: a data identifier ID included in the redundant tag carried by the message; the data identifier ID is used to identify the original message to which the payload data carried by the message belongs; When the redundancy detection module is configured to determine whether a currently received packet is a duplicate packet based on the redundancy tag, it includes: Check the stored message reception records to see if there is a first reception record that matches the data identifier ID in the redundant tag; If the currently received message is not a fragmented message, and the first received record exists, then the currently received message is determined to be a duplicate message; otherwise, the currently received message is determined not to be a duplicate message, and a new message received record is added for the currently received message.
[0141] In some embodiments, the message reception record stored for any received message further includes: the fragment sequence number and fragmentation flag value included in the redundancy tag carried by the message; when the redundancy detection module is configured to determine whether the currently received message is a duplicate message based on the redundancy tag, it includes: From the stored message reception records, query whether there is a second reception record that meets the following first matching condition; the first matching condition includes: the values of data identifier ID, fragment sequence number and fragment flag in the message reception record are all the same as the corresponding values in the redundancy tag carried by the currently received message; If the second receiving record exists, then the currently received message is determined to be a duplicate message; Otherwise, determine that the currently received message is not a duplicate message, and add a new message reception record for the currently received message.
[0142] In some embodiments, the message reception record stored for any received message further includes the value of a flow feature field; the flow feature field is one or more fields in the five-tuple information; when the redundancy detection module is configured to determine whether the currently received message is a duplicate message based on the redundancy tag, it includes: Extract the quintuple information from the currently received message; From the stored message reception records, query whether there exists a second reception record that satisfies both the first matching condition and the following second matching condition; wherein, the second matching condition includes: the value of the flow feature field included in the message reception record is the same as the value of the corresponding flow feature field in the parsed quintuple information.
[0143] In some embodiments, when the first processing module is configured to perform message processing operations on the currently received message, it includes: Based on the redundant tags carried by the currently received message, it is identified whether the currently received message is a fragmented message; if so, the data fragments carried by the fragmented message are cached, and if all data messages corresponding to the payload of the cached target message are detected, the data fragments are reassembled according to the fragment sequence number of each data fragment; wherein, the target message is the message identified by the data identifier ID in the redundant tags carried by the fragmented message.
[0144] In some embodiments, the packet encapsulation header includes a specified field; the specified field is a field in the MAC frame header used to indicate the upper-layer protocol type; after receiving the packet, the apparatus further includes: If the value of a specified field in the currently received message is detected to be a preset value, it is determined that the currently received message carries a redundant tag. If it is determined that the currently received message carries a redundant label, the redundant label is parsed from the message.
[0145] The specific implementation process of the functions and roles of each unit in the above device can be found in the implementation process of the corresponding steps in the above method, and will not be repeated here.
[0146] This application also provides an electronic device, the structural schematic diagram of which is shown below. Figure 7 As shown, the electronic device 700 includes at least one processor 701, a memory 702, and a bus 703. At least one processor 701 is electrically connected to the memory 702. The memory 702 is configured to store at least one computer-executable instruction, and the processor 701 is configured to execute the at least one computer-executable instruction to perform the steps of any message transmission method provided in any embodiment or optional implementation of this application.
[0147] Furthermore, the processor 701 can be an FPGA (Field-Programmable Gate Array) or other devices with logic processing capabilities, such as an MCU (Microcontroller Unit) or a CPU (Central Processing Unit).
[0148] This application also provides another readable storage medium storing a computer program that, when executed by a processor, implements the steps of any message transmission method provided in any embodiment or optional implementation of this application.
[0149] The readable storage media provided in this application include, but are not limited to, any type of disk (including floppy disk, hard disk, optical disk, CD-ROM, and magneto-optical disk), ROM (Read-Only Memory), RAM (Random Access Memory), EPROM (Erasable Programmable Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), flash memory, magnetic cards, or optical cards. In other words, readable storage media include any medium by which a device (e.g., a computer) stores or transmits information in a readable form.
[0150] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the scope of protection of this application.
Claims
1. A message transmission method, characterized in that, Applied to a transmitting device, wherein multiple communication links are established between the transmitting device and the receiving device based on the Multi-Link Operation (MLO) protocol, the method includes: From the multiple communication links with the receiving device, select the first link for forwarding the message to be sent; The message is sent to the receiving end via the first link and the second link forming a redundant link pair with the first link; wherein the message carries a redundancy tag, the redundancy tag being used by the receiving end device to identify whether the received message is a duplicate message.
2. The method according to claim 1, characterized in that, The probability of synchronous degradation between the first link and any of the second links is lower than a preset threshold; the synchronous degradation probability represents the probability that the first link and the second link will simultaneously experience link quality degradation within a preset time period.
3. The method according to claim 2, characterized in that, The second link, which forms a redundant link pair with the first link among the multiple communication links, is determined through the following steps: For each candidate link, based on the degradation status identifiers of the first link and the candidate link at each sampling time within a preset time period, the synchronous degradation probability of the first link and the candidate link is determined; wherein, the candidate link is any link other than the first link among the multiple communication links; the degradation status identifier indicates link quality degradation when it is a first value, and indicates link quality normal when it is a second value; Based on the synchronous degradation probability of the first link and each candidate link, at least one link is selected from each candidate link as the second link.
4. The method according to claim 3, characterized in that, Determining the synchronization degradation probability between the first link and the candidate link includes: Based on the degradation status identifiers of the first link and the candidate link at each sampling time, the actual number of synchronous degradations of the first link and the candidate link during the preset time period is determined; the actual number of synchronous degradations refers to the number of times that the degradation status identifiers of the first link and the candidate link are both the first value at the same sampling time. The expected number of synchronous degradations of the first link and the candidate link during the preset time period is obtained; the expected number of synchronous degradations is determined based on the number of degradation status identifiers of the first link and the number of degradation status identifiers of the candidate link and the first value during the preset time period. Based on the actual number of synchronous degradations and the expected number of synchronous degradations, the synchronous degradation probability of the first link and the candidate link is determined.
5. The method according to claim 4, characterized in that, The process of obtaining the expected number of synchronization degradations of the first link and the candidate link within the preset time period includes: Based on the number M1 of the first link whose degradation state is identified as the first value at each sampling time within the preset time period, and the total number N of sampling times within the preset time period, the first probability of the first link experiencing link quality degradation is determined. Based on the number M2 of candidate links whose degradation state is identified as the first value at each sampling time and the total number N, a second probability of link quality degradation of the candidate link is determined. Based on the assumption that the link quality degradation of the first link and the candidate link are independent of each other, the expected frequency of link quality degradation occurring simultaneously in the first link and the candidate link is determined as the expected number of simultaneous degradations according to the first probability, the second probability and the total number N.
6. The method according to any one of claims 3-5, characterized in that, At any sampling time, if at least one of the following conditions is met, the degradation state flag at that sampling time is set to the first value: The link signal-to-noise ratio at this sampling time is lower than the preset lower limit threshold. Alternatively, the difference between the link round-trip delay at this sampling moment and the reference round-trip delay is greater than a preset delay surge threshold; the reference round-trip delay is determined based on the round-trip delay at each sampling moment within the preset time period; Alternatively, a packet loss or retransmission event was detected on the link at that sampling time; Alternatively, the Channel State Information (CSI) score at that sampling time is lower than a preset channel quality threshold.
7. The method according to claim 1, characterized in that, The message carries an encapsulation header; the encapsulation header includes a MAC frame header and an IP header; the redundancy tag is inserted before the IP header and adjacent to the IP header; The specified field in the MAC frame header is set to a preset value; the preset value is used to indicate that the encapsulation header carries a redundant tag; the specified field is a field that represents the upper layer protocol type.
8. The method according to claim 7, characterized in that, When the payload of the message is divided into multiple data fragments, Sending the message to the receiving end via the first link and the second link forming a redundant link pair with the first link includes: A fragmented message is generated based on each data fragment, and the fragmented message is sent to the receiving end through the first link and the second link; wherein, each fragmented message carries a redundancy tag, and the redundancy tag includes at least: Data Identifier ID, used to indicate the message to which the data fragment carried by this fragment belongs; Fragment sequence number, used to indicate the position of the data fragment carried by the fragment message in the payload; Fragmentation flags are used to indicate whether the data fragment carried by the fragmented message is the last fragment of the payload.
9. The method according to claim 1, characterized in that, Before selecting a first link for forwarding the currently to-be-sent message, the method further includes: Determine whether the message type of the message to be sent is a preset message type; wherein, the preset message type is determined based on the current message sending scenario of the receiving device; If so, then from among the multiple communication links with the receiving device, the first link for forwarding the message to be sent is selected.
10. A message transmission method, characterized in that, Applied to a receiving device, wherein multiple communication links are established between the receiving device and the transmitting device based on the MLO protocol, the method includes: Receive messages from the multiple communication links; If it is determined that the currently received message carries a redundancy tag, determine whether the currently received message is a duplicate message based on the redundancy tag; If not, perform message processing operations on the currently received message; If so, the currently received message will be discarded.
11. The method according to claim 10, characterized in that, The message reception record stored for any received message shall include at least: the data identifier ID included in the redundant tag carried by the message; the data identifier ID is used to identify the original message to which the payload data carried by the message belongs; The step of determining whether the currently received message is a duplicate message based on the redundancy tag includes: Check the stored message reception records to see if there is a first reception record that matches the data identifier ID in the redundant tag; If the currently received message is not a fragmented message, and the first received record exists, then the currently received message is determined to be a duplicate message; otherwise, the currently received message is determined not to be a duplicate message, and a new message received record is added for the currently received message.
12. The method according to claim 11, characterized in that, The message reception record stored for any received message also includes: the fragment sequence number and fragment flag value included in the redundant tag carried by the message; The step of determining whether the currently received message is a duplicate message based on the redundancy tag includes: From the stored message reception records, query whether there is a second reception record that meets the following first matching condition; the first matching condition includes: the values of data identifier ID, fragment sequence number and fragment flag in the message reception record are all the same as the corresponding values in the redundancy tag carried by the currently received message; If the second receiving record exists, then the currently received message is determined to be a duplicate message; Otherwise, determine that the currently received message is not a duplicate message, and add a new message reception record for the currently received message.
13. The method according to claim 12, characterized in that, The message reception record stored for any received message also includes the value of a flow feature field; the flow feature field is one or more fields in the 5-tuple information; The step of determining whether the currently received message is a duplicate message based on the redundancy tag includes: Extract the quintuple information from the currently received message; From the stored message reception records, query whether there exists a second reception record that satisfies both the first matching condition and the following second matching condition; wherein, the second matching condition includes: the value of the flow feature field included in the message reception record is the same as the value of the corresponding flow feature field in the parsed quintuple information.
14. The method according to claim 10, characterized in that, The message processing operation for the currently received message includes: Based on the redundant tags carried by the currently received message, identify whether the currently received message is a fragmented message; If so, the data fragments carried in the fragmented message are cached, and if all data packets corresponding to the load of the cached target message are detected, the data fragments are reassembled according to the fragment sequence number of each data fragment; wherein, the target message is the message identified by the data identifier ID in the redundant tag carried in the fragmented message.
15. The method according to claim 10, characterized in that, The message encapsulation header includes a specified field; the specified field is a field in the MAC frame header used to indicate the upper-layer protocol type; After receiving the message, the method further includes: If the value of a specified field in the currently received message is detected to be a preset value, it is determined that the currently received message carries a redundant tag. If it is determined that the currently received message carries a redundant label, the redundant label is parsed from the message.
16. A message transmission device, characterized in that, Applied to a transmitting device, wherein multiple communication links are established between the transmitting device and the receiving device based on the MLO protocol, the device includes: The link selection module is configured to select a first link for forwarding a message from multiple communication links between the receiving device and the receiving device. A redundant transmission module is configured to send the message to the receiving end via the first link and a second link forming a redundant link pair with the first link; wherein the message carries a redundancy tag, the redundancy tag being used by the receiving end device to identify whether the received message is a duplicate message.
17. A message transmission device, characterized in that, Applied to a receiving device, wherein multiple communication links are established between the receiving device and the transmitting device based on the MLO protocol, the device includes: The receiving module is configured to receive messages from the multiple communication links; The redundancy detection module is configured to determine whether the currently received message is a duplicate message based on the redundancy tag if it is determined that the currently received message carries a redundancy tag. The first processing module is configured to perform message processing operations on the currently received message if no. The second processing module, if configured to do so, will discard the currently received message.
18. An electronic device, characterized in that, include: Memory, processor; The memory is used to store computer programs; The processor is configured to invoke the computer program to implement the method as described in any one of claims 1-9 or 10-15.
19. A readable storage medium having a computer program stored thereon, characterized in that, When the program is executed by the processor, it implements the method as described in any one of claims 1-9 or 10-15.