Communication method and related device
By using broadcast channels to send data packets in star flash technology, the communication delay problem caused by node binding is solved, free routing handover and flexible communication of nodes in multi-hop networks are realized, and end-to-end delay is reduced.
Patent Information
- Application Number
- PCT/CN2025/073784
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2024-02-08
- Filing Date
- 2025-01-21
- Publication Date
- 2025-08-14
AI Technical Summary
In the G/T mode, the node roles are divided into G nodes and T nodes. The T nodes can only communicate with the bound G nodes and cannot freely switch routes, resulting in a long communication delay and the inability to flexibly deal with changes in link quality.
By sending data packets on the broadcast channel and using the broadcast MAC address or the neighbor node MAC address, any node in the multi-hop network can communicate directly, realizing free switching of routes, and reducing end-to-end communication delay.
Free routing handover of nodes in multi-hop network is realized, which reduces communication delay, improves the reliability and flexibility of data transmission, and avoids broadcast storms and time slot waiting.
Smart Images

Figure CN2025073784_14082025_PF_FP_ABST
Abstract
Description
Communication method and related device
[0001] This application claims priority to the Chinese patent application filed with the China Patent Office on February 8, 2024, with application number 202410179293.8 and application name “Communication Methods and Related Devices”, the entire contents of which are incorporated by reference into this application. Technical Field
[0002] The present application relates to the field of communication technology, and in particular to a communication method and related devices. Background Art
[0003] Spark Link (Near Link / Spark Link) is a new type of short-range wireless communication technology used to compete with traditional technologies such as Bluetooth and Wireless Fidelity (Wi-Fi). It is an enhanced version of the "Wi-Fi + Bluetooth" hybrid.
[0004] However, Starflash inherits Bluetooth's one-to-many G / T mode. In this mode, nodes are divided into two roles: G nodes (parent nodes) and T nodes (child nodes). Once several T nodes are bound to a G node, they can only communicate with the bound parent node; there are no other backup parent nodes. In other words, if Starflash continues to use this G / T mode, it will not be able to switch routes freely. Summary of the Invention
[0005] The present application provides a communication method and related devices to achieve free switching of routes.
[0006] In the first aspect, the present application provides a communication method that can be applied to a first node. For example, it can be performed by the first node, or it can be performed by a component configured in the first node (such as a chip, a chip system, etc.), or it can also be implemented by a logic module or software that can realize all or part of the functions of the first node, and the present application does not limit this. It should be understood that the first node in the present application can be a node in a multi-hop network composed of wireless communication technologies (for example, Star Flash, Bluetooth, Wi-Fi, or other shorter-range wireless communication technologies, etc.).
[0007] Exemplarily, the method includes: generating a first data packet, wherein a destination media access control (MAC) address of the first data packet is a MAC address of any node among the neighboring nodes of the first node, or a broadcast MAC address; and sending the first data packet on a broadcast channel.
[0008] It is understood that the node identified by the source address encapsulated in the network layer of the first data message can be the first node or another node. If it is the first node, the service corresponding to the first data message is initiated by the first node; if it is another node, the first data message may be generated based on data messages from other nodes.
[0009] It can also be understood that the neighbor node of the first node refers to a node located in the communication domain of the first node, and the communication domain of the first node refers to a range that can be covered by radio waves sent by the first node.
[0010] The broadcast channel in this application may be one of a plurality of predefined (eg, three) broadcast channels. It is understood that the data message generated by the node may be sent in turn on the plurality of predefined broadcast channels.
[0011] Exemplarily, when the first node is a node in a multi-hop network composed of Star Flash technology, the broadcast MAC address is a predefined Star Flash broadcast MAC address.
[0012] Based on this technical solution, by using a broadcast channel to send data packets, other nodes can receive the data packets on the broadcast channel. In other words, any node in the multi-hop network in this application can send data packets to other nodes or receive data packets from other nodes on the broadcast channel, without having to communicate with the parent node through the encrypted channel formed between the node and the parent node. Therefore, free switching of routes can be achieved. Moreover, this method of sending and receiving data packets through the broadcast channel does not require waiting until the time slot allocated to the node arrives before communication is carried out, effectively reducing the end-to-end communication delay.
[0013] In combination with the first aspect, in certain implementations of the first aspect, the destination MAC address of the first data packet is the MAC address of the second node, and the second node is a neighbor node of the first node; the method also includes: if no affirmative response (acknowledgement, ACK) message is received from the second node within a preset time after sending the first data packet, the first data packet is repeatedly sent on the broadcast channel.
[0014] The destination MAC address of the ACK message is the MAC address of the first node.
[0015] Based on this solution, the second node replies with an ACK message to the first node, which can improve the reliability of data transmission.
[0016] In combination with the first aspect, in certain implementations of the first aspect, the method further includes: sending a second data packet on the broadcast channel if no ACK packet is received from the second node within the preset time period after the Nth repetition of sending the first data packet, where N is a positive integer.
[0017] Where N is the upper limit of the number of repeated transmissions. The destination MAC address of the second data packet is different from the destination MAC address of the first data packet, and the source MAC address of the second data packet is the same as the source MAC address of the first data packet. In other words, the difference between the first data packet and the second data packet is that the destination MAC address is different. Alternatively, the second data packet resent by the second node can be a packet obtained by modifying the destination MAC address of the first data packet sent previously.
[0018] Based on this solution, the second node resends the second data message, which can further improve the reliability of data transmission.
[0019] In the second aspect, the present application provides a communication method that can be applied to a second node. For example, it can be performed by the second node, or it can be performed by a component configured in the second node (such as a chip, a chip system, etc.), or it can also be implemented by a logic module or software that can realize all or part of the functions of the second node, and the present application does not limit this. It should be understood that the second node in the present application can be a neighbor node of the first node in a multi-hop network composed of wireless communication technologies (for example, Star Flash, Bluetooth, Wi-Fi, or other shorter-range wireless communication technologies, etc.).
[0020] Exemplarily, the method includes: receiving a first data packet from a first node on a broadcast channel, the destination MAC address of the first data packet being the MAC address of any node among the neighboring nodes of the first node, or being a broadcast MAC address, and the first node being a node in the multi-hop network; determining that the destination MAC address of the first data packet is the broadcast MAC address or the MAC address of any node among the neighboring nodes of the first node.
[0021] For the description of the first data message, any node in the multi-hop network, and the broadcast MAC address, reference may be made to the description of the first aspect above, which will not be repeated here.
[0022] Based on this technical solution, by using a broadcast channel to send data packets, other nodes can receive the data packets on the broadcast channel. In other words, any node in the multi-hop network in this application can send data packets to other nodes or receive data packets from other nodes on the broadcast channel, without having to communicate with the parent node through the encrypted channel formed between the node and the parent node. Therefore, free switching of routes can be achieved. Moreover, this method of sending and receiving data packets through the broadcast channel does not require waiting until the time slot allocated to the node arrives before communication is carried out, effectively reducing the end-to-end communication delay.
[0023] It can be understood that all nodes within the communication domain of the first node (i.e., all neighboring nodes of the first node) can receive the first data packet sent by the first node on the broadcast channel, and the destination MAC address of the first data packet may be the MAC address of any node or the broadcast MAC address.
[0024] Exemplarily, when the destination MAC address of the first data packet is not a broadcast MAC address, the node (for example, the second node) that receives the first data packet needs to further determine whether the destination MAC address is consistent with its own MAC address. If not, the first data packet is discarded; if consistent, an ACK packet is replied, which indicates that the second node has received the first data packet.
[0025] Optionally, the destination MAC address of the first data message is the MAC address of any neighboring node of the first node, but is not the MAC address of the second node. The method further includes: discarding the first data message.
[0026] Optionally, the destination MAC address of the first data packet is the MAC address of the second node, and the method further includes: sending an ACK packet to the first node.
[0027] In combination with the second aspect, in certain implementations of the second aspect, after the second node sends an ACK message to the first node, the method also includes: determining whether the second node is a forwarding node; if the second node is a forwarding node, generating a third data message based on the payload data in the first data message, and sending the third data message on the broadcast channel; or, if the second node is not a forwarding node, parsing the first data message or discarding the first data message.
[0028] The source MAC address of the third data message is different from that of the first data message, and the destination MAC address of the third data message is the MAC address of any node, or a broadcast MAC address.
[0029] It can be understood that if the destination MAC address of the first data message is the MAC address of any node, then the destination MAC address of the third data message is the MAC address of any node; if the destination MAC address of the first data message is a broadcast MAC address, then the destination MAC address of the third data message is a broadcast address.
[0030] In combination with the second aspect, in certain implementations of the second aspect, determining whether the second node is a forwarding node includes: obtaining the destination address in the network layer address of the first data packet; and determining whether the second node is a forwarding node based on the destination address.
[0031] The network layer address refers to the address encapsulated by the network layer, which may be an Internet Protocol (IP) address or other network layer addresses compatible with the wireless communication technology, and is not limited in this application.
[0032] Optionally, the destination MAC address of the first data message is the MAC address of any node, and the node identified by the destination address in the network layer address of the first data message is any neighboring node of the first node.
[0033] Exemplarily, when the node identified by the destination address is consistent with the second node, it is determined that the second node is not a forwarding node; or, when the node identified by the destination address is inconsistent with the second node, it is determined that the second node is a forwarding node.
[0034] It can be understood that when the destination MAC address of the first data message is the MAC address of any node and it is determined that the second node is not a forwarding node, the first data message is parsed.
[0035] Optionally, the destination MAC address of the first data message is a broadcast MAC address, and the destination address in the network layer address of the first data message is a multicast address or a broadcast address.
[0036] Exemplarily, when the second node is included in the nodes identified by the destination address, the second node is determined to be a forwarding node; or, when the second node is not included in the nodes identified by the destination address, the second node is determined not to be a forwarding node.
[0037] It can be understood that when the destination MAC address of the first data message is a broadcast MAC address and it is determined that the second node is not a forwarding node, the first data message is discarded.
[0038] Based on this solution, broadcast storms can be effectively avoided.
[0039] In combination with the first and second aspects, in some implementations, the destination MAC address of the first data packet is the broadcast MAC address, and the first data packet is a broadcast packet or a multicast packet.
[0040] Among them, a multicast message means that the destination address in the network layer address of the first data message is a multicast address (for example, multicast IP), and a broadcast message means that the destination address in the network layer address of the first data message is a broadcast address (for example, broadcast IP).
[0041] In combination with the first and second aspects, in some implementations, the first data packet is carried in a broadcast frame, and the broadcast frame is generated based on a predefined basic frame structure.
[0042] In combination with the first and second aspects, in some implementations, the destination MAC address of the first data packet is the MAC address of any node in the multi-hop network, and the first data packet is a unicast packet.
[0043] It can be understood that a unicast message means that the node identified by the destination address in the network layer address of the first data message is unique.
[0044] In combination with the first and second aspects, in some implementations, the first data packet is carried in a unicast frame, and the unicast frame is generated based on a predefined basic frame structure.
[0045] In combination with the first and second aspects, in some implementations, the ACK message is carried in an ACK frame, and the ACK frame is generated based on a predefined basic frame structure.
[0046] It can be understood that since the ACK message is sent for a unicast message, the source MAC address of the ACK message is the same as the destination MAC address of the first data message, and the destination MAC address of the ACK message is the same as the source MAC address of the first data message.
[0047] In combination with the first and second aspects, in some implementations, the basic frame structure includes a field indicating the data type.
[0048] The data type indication field may be used to indicate the data type of the first data message.
[0049] In combination with the first and second aspects, in some implementations, the data type indication field is 0xFF, and the data type of the first data message is high-layer broadcast data.
[0050] In combination with the first and second aspects, in some implementations, the basic frame structure includes a field indicating a frame type, and the frame type includes: a unicast frame, a broadcast frame, or an ACK frame.
[0051] The frame type indication field may be used to indicate the frame type to which the first data packet belongs.
[0052] In combination with the first and second aspects, in some implementations, the frame type indication field is 0x00, and the frame type is the unicast frame; the frame type indication field is 0x01, and the frame type is the ACK frame; the frame type indication field is 0x02, and the frame type is the broadcast frame.
[0053] It should be understood that the value of the frame type indication field corresponding to each frame type may also be other values, and this application does not limit this.
[0054] In combination with the first and second aspects, in some implementations, the basic frame structure includes an indication field for broadcast-based transmission networking.
[0055] In combination with the first and second aspects, in some implementations, the indication field of the broadcast-based transmission networking is 0x1C or 0x1D.
[0056] It should be understood that the indication field of the broadcast-based transmission networking may also be other values, and this application does not limit this.
[0057] In a third aspect, the present application provides a communication device, comprising modules or units for implementing the method in any of the above aspects and any possible implementation of any of the aspects. It should be understood that each module or unit can implement the corresponding function by executing a computer program.
[0058] In a fourth aspect, the present application provides a communication device, comprising a processor, wherein the processor is configured to execute the method described in any of the above aspects and any possible implementation manner of any of the aspects.
[0059] The communication device may further include a memory for storing instructions and data. The memory is coupled to the processor, and when the processor executes the instructions stored in the memory, the methods described in the above aspects may be implemented.
[0060] The communication device may further include a communication interface, wherein the communication interface is used for the device to communicate with other devices. For example, the communication interface may be a transceiver, a circuit, a bus, a module, or other types of communication interfaces.
[0061] In a fifth aspect, the present application provides a chip system comprising at least one processor for supporting the implementation of the functions involved in any of the above aspects and any possible implementation of any of the aspects, for example, receiving or processing the data and / or information involved in the above method.
[0062] In one possible design, the chip system further includes a memory, which is used to store program instructions and data, and the memory is located inside or outside the processor.
[0063] The chip system can be composed of chips, or can include chips and other discrete devices.
[0064] In a sixth aspect, the present application provides a computer-readable storage medium comprising a computer program, which, when executed on a computer, enables the computer to implement the method in any of the above aspects and any possible implementation of any of the aspects.
[0065] In the seventh aspect, the present application provides a computer program product, which includes: a computer program (also referred to as code, or instructions), which, when executed, enables a computer to execute the method in any of the above aspects and any possible implementation of any of the aspects.
[0066] In an eighth aspect, the present application provides a communication system, comprising the aforementioned first node and second node. The first node is configured to execute the method of the aforementioned first aspect and any possible implementation thereof, and the second node is configured to execute the method of the aforementioned second aspect and any possible implementation thereof.
[0067] It should be understood that the third to eighth aspects of the present application correspond to the technical solutions of the first or second aspect of the present application, and the beneficial effects achieved by each aspect and the corresponding feasible implementation methods are similar and will not be repeated here. BRIEF DESCRIPTION OF THE DRAWINGS
[0068] FIG1 is a tree topology provided in an embodiment of the present application;
[0069] FIG2 is a schematic diagram of the transmission delay required for communication between node R and node L;
[0070] FIG3 is a diagram of a topology provided by an embodiment of the present application;
[0071] FIG4 is a schematic flow chart of a communication method provided in an embodiment of the present application;
[0072] FIG5 is a schematic diagram of a predefined basic frame structure provided in an embodiment of the present application;
[0073] FIG6 is a schematic diagram of a frame format provided in an embodiment of the present application;
[0074] FIG7 is another schematic flow chart of a communication method provided in an embodiment of the present application;
[0075] FIG8 is another schematic flow chart of a communication method provided in an embodiment of the present application;
[0076] FIG9 is a schematic block diagram of a communication device provided in an embodiment of the present application;
[0077] FIG10 is another schematic block diagram of a communication device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0078] The technical solution in this application will be described below with reference to the accompanying drawings.
[0079] To facilitate understanding of the embodiments of the present application, the following points are first explained:
[0080] First, in the embodiments of the present application, prefixes such as "first" and "second" are used only to facilitate the distinction and description of different things belonging to the same name category, and do not restrict the order, size, or quantity of things. For example, "first node" and "second node" are simply different nodes, and do not limit the number of nodes or the priority relationship between them; for another example, "first data message" and "second data message" are simply different messages, and there is no time sequence, size relationship, or priority relationship between the two.
[0081] Second, the "sending" and "receiving" in the embodiments of the present application indicate the direction of signal transmission. For example, "sending an ACK message to the first node" can be understood as the destination end of the ACK message being the first node, which can include direct sending through the air interface, and also includes indirect sending through the air interface by other units or modules. "Receiving an ACK message from the second node" can be understood as the source end of the ACK message being the second node, which can include direct receiving from the second node through the air interface, and also includes indirect receiving from the second node through the air interface from other units or modules. "Sending" can also be understood as the "output" of the chip interface, and "receiving" can also be understood as the "input" of the chip interface.
[0082] In other words, sending and receiving can be performed between nodes, for example, between a first node and a second node; or it can be performed within a node, for example, sending or receiving between components, modules, chips, software modules or hardware modules within a device through a bus, a line or an interface.
[0083] It is understood that before information is sent from the source to the destination, it may undergo necessary processing, such as encoding and modulation. After receiving the information from the source, the destination may also perform corresponding processing, such as decoding and demodulation, to interpret the valid information from the source. Similar expressions in this application can be understood similarly and will not be repeated here.
[0084] Third, in the embodiments of the present application, "at least one" refers to one or more, and "more" refers to two or more. "And / or" describes the association relationship of associated objects, indicating that three relationships may exist. For example, A and / or B can represent: the existence of A alone, the existence of A and B at the same time, and the existence of B alone, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship, but does not exclude the situation where the previous and next associated objects are in an "and" relationship. The specific meaning can be understood in conjunction with the context. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b, or c can represent: a, b, c; a and b; a and c; b and c; or a and b and c. Where a, b, c can be single or multiple.
[0085] Fourth, in the embodiments of the present application, descriptions such as "when...", "in the case of...", "if" and "if" all mean that the node will make corresponding processing under certain objective circumstances, which is not a time limit, and does not require the node to have a judgment action when implementing, nor does it mean that there are other limitations.
[0086] Fifth, the predefined in this application can be understood as: define, predefine, store, pre-store, pre-negotiate, pre-configure, solidify, or pre-burn.
[0087] To facilitate understanding of the embodiments provided in this application, the terms involved in this application are introduced in detail below.
[0088] 1. Mesh network: It is a multi-node, centerless, self-organizing wireless multi-hop communication network. Any wireless device node in the network can act as a router to send and receive signals, and can dynamically maintain connections and communications with other single or multiple nodes in any way.
[0089] The mesh network topology is not fixed and changes adaptively based on the channel quality between nodes. For example, it can include chain topology, star topology, mesh topology, etc.
[0090] Wireless mesh can communicate collaboratively with other networks to solve communication problems in most areas that are not covered by wired networks.
[0091] 2. Zigbee: This is a short-range wireless mesh protocol stack based on the Institute of Electrical and Electronics Engineers (IEEE) 802.15.4. This technology is primarily used in low-speed communication networks. Its most prominent feature is its low power consumption and its networking capabilities, particularly routing.
[0092] 3. OpenThread: An open-source wireless short-range mesh networking stack based on the Thread protocol. The Thread specification establishes a reliable, secure, and energy-efficient wireless communication protocol suitable for resource-constrained devices, such as those found in smart homes and commercial buildings.
[0093] OpenThread encompasses the full network layer scope of Thread, including Internet Protocol Version 6 (IPv6), the IPv6-based low-speed wireless personal area network standard (6LoWPAN), IEEE 802.15.4 with MAC security, mesh link establishment, and mesh routing.
[0094] 4. Wi-SUN Alliance: It is a Sub1G-based short-range wireless mesh standard organization and is widely used in large-scale networking technology in industrial Internet of Things (IIOT) scenarios.
[0095] 5. Star Flash is a new type of short-range wireless communication technology that competes with traditional technologies such as Bluetooth and Wi-Fi. It is an enhanced version of the "Wi-Fi + Bluetooth" hybrid.
[0096] 6. Root node: A convergence node in a wireless mesh network, responsible for drawing topological connectivity and routing calculations.
[0097] 7. Endpoint: A terminal node in a wireless mesh network, responsible for neighbor discovery and reporting parent-child relationships to the root node for routing calculation.
[0098] 8. Neighboring nodes: For a node, nodes within its communication domain are called neighboring nodes. The communication domain refers to the range covered by the radio waves sent by the node.
[0099] The technical solution provided in the embodiments of the present application can be applied to wireless communication systems, or shorter-range wireless communications in wireless communication systems, such as star flash, Bluetooth, or WiFi.
[0100] The technical solutions provided by the embodiments of the present application can also be applied to narrowband Starlight Bluetooth Low Energy (BLE) multi-hop networking scenarios, where the frequency of data transmission and reception is low. For example, in a smart home scenario, nodes may occasionally send or receive data (e.g., every few minutes to hours).
[0101] It is understood that the root node and end node in this application are devices equipped with radio frequency transceivers that utilize wireless communication technology. A root node may be, for example, a gateway, a bridge, or an edge router; an end node may be, for example, a smart light bulb, a smart appliance, or a smart meter. This application does not limit the specific form of the root node or end node.
[0102] For example, the following are several scenarios where mesh networks are required for wireless connections: 1. In the energy home user scenario, the overflow of users' photovoltaic power generation will cause additional expenses for the power grid company, so extremely low-latency rigid monitoring is required. The controllers in this scenario are generally distributed on rooftops and basements, and wireless connections through multi-hop mesh networks require the support of highly reliable and stable latency protocol capabilities. 2. There are more than 100 nodes in the whole-house smart scenario, and a single-hop star network cannot fully cover it, requiring the support of a multi-hop mesh network. 3. The wireless battery management system consists of hundreds of wireless batteries, so it is necessary to build a highly reliable and low-latency mesh network protocol capability to support the reliable operation and maintenance of the battery system in new energy vehicles.
[0103] Currently, there are mainly mesh network protocols based on the following technologies: open source short-range wireless mesh protocol stack based on Thread protocol, short-range wireless mesh protocol stack based on Zigbee, short-range wireless mesh based on Sub1G, and mesh network protocol stack based on Bluetooth technology.
[0104] Among them, the open-source short-range wireless mesh protocol stack based on the Thread protocol is widely used in smart home scenarios. Because link quality in smart home scenarios is relatively stable and network stability is dependent on location and distance, Open Thread uses distance-vector-based Routing Information Protocol (RIP) routing combined with flooding. However, this approach is only competitive within a small range (less than 50 nodes) and also suffers from low transmission rates and limited bandwidth.
[0105] The Zigbee-based short-range wireless mesh protocol stack is primarily used in smart home scenarios. Zigbee networking is implemented in ad hoc networks, using the Ad Hoc on-demand distance vector routing (AODV) protocol. This approach results in low communication rates and limited channels. Furthermore, the on-demand routing forwarding mode increases protocol overhead, making it impossible to guarantee transmission latency.
[0106] Sub-1G-based short-range wireless mesh is widely used in IIoT scenarios for large-scale networking. However, due to its sub-1G frequency band, it lacks universal applicability, has high hardware costs, and lacks differentiated competitiveness.
[0107] The Bluetooth-based mesh network protocol stack forwards messages using flooding. However, this flooding approach can cause broadcast storms, which can only be avoided by extending the transmission interval or limiting the number of forwarding nodes. While this approach avoids broadcast storms, it also increases communication latency.
[0108] With the emergence of Star Flash technology, the mesh network based on Star Flash technology is also about to emerge. However, Star Flash inherits the G / T mode of Bluetooth. In this mode, the node roles are divided into two types: G node (parent node) and T node (child node). Once two nodes are bound, they can only communicate with each other and cannot communicate with other nodes. That is, a T node has only one parent node with which it can communicate, and no other backup parent nodes. It can be seen that this one-to-many G / T mode naturally forms a tree topology, and it is impossible to obtain a many-to-many graph topology, and thus it is impossible to switch routes freely. Therefore, once the link of the parent node deteriorates, it is difficult for the child node to switch to the backup parent node with a better link to communicate in order to ensure end-to-end communication delay.
[0109] Figure 1 shows a tree topology. As shown in Figure 1, in the tree topology, node R is bound to 4 nodes (node A, order B, node C, node D), node C is bound to 4 nodes (node E, order F, node P, node H), node C is bound to 4 nodes (node I, order J, node K, node L), and the binding relationship cannot be changed. Among them, the 12 nodes include 4 G nodes (node R, node C, node J and node K) and 12 T nodes (other nodes except node R). Among them, 3 T nodes in the 12 T nodes are both G nodes and T nodes. In other words, a node is connected to multiple nodes, and this node can be called the root node of these multiple nodes, and these multiple nodes can be called the child nodes of this node.
[0110] As shown in Figure 1, two bound nodes (e.g., node C and node P) can communicate directly without forwarding through other nodes. When unbound nodes need to communicate, they must forward through an intermediate node. For example, when nodes R and L communicate, they must forward through nodes C and P.
[0111] Secondly, in the G / T mode, if several T nodes are bound to a single G node, the G node will allocate time slots for data transmission to each of the T nodes. Within a cycle, the G node communicates with these T nodes using pre-assigned time slots. Even if these T nodes do not have resources to communicate in the assigned time slots, these slots will be consumed, resulting in non-minimum end-to-end latency.
[0112] In the topology shown in Figure 1, when node R sends data to node L, it must first pass through node C and then node G. When the data packet is forwarded by the relay nodes (nodes C and G), it must wait until the preconfigured time slot before it can be transmitted, resulting in the end-to-end delay not being the minimum delay.
[0113] Figure 2 shows the transmission delay required for communication between node R and node L. As shown in Figure 2, the horizontal axis represents time and the vertical axis represents nodes. At time t3, node R sends data packet 1 to node C; after node C receives data packet 1, it sends data packet 1 to node P at time t4; after node G receives data packet 1, it needs to wait until time t9 before it can send data packet 1 to node L. It can be obtained that the total time required for node R to send data packet 1 to node L is Δt = t9-t2. If it is assumed that each moment corresponds to a time slot, then when node R sends data 1 to node L, a total of 7 time slots are required before node L can receive the data 1. In other words, the link layer scheduling relies on pre-allocated time slots, and it may not be possible to achieve the extremely low latency of sending and receiving at each hop.
[0114] In view of this, an embodiment of the present application provides a communication method and related devices. In this method, a node sends a data message on a predefined broadcast channel so that all neighboring nodes within the communication domain of the node can receive the data message on the broadcast channel. That is, all nodes are in a disconnected state and only need to listen to the data message on the broadcast channel. Therefore, when the sending node needs to communicate with other nodes, even if the link quality on a certain link is poor, the sending node can also communicate with other nodes through other links with better link quality, thereby realizing free switching of routes.
[0115] Before introducing the method provided by the embodiment of the present application, a topology structure applicable to the communication method provided by the embodiment of the present application is first introduced in conjunction with Figure 3. It should be understood that the topology structure can be a graph topology of a multi-hop network composed of wireless communication technology.
[0116] Figure 3 shows a graph topology provided by an embodiment of the present application. As shown in Figure 3, the topology includes a root node and 9 (or more) end nodes, all end nodes can communicate with the root node, and all end nodes can also communicate with each other. Among them, each node has its own communication domain, and the nodes located in the communication domain of a certain node can communicate directly with the node, and the nodes located outside the communication domain of a certain node need to be forwarded by multiple nodes to achieve communication with the node. In other words, the nodes in the communication domain of a certain node can communicate directly with the node without forwarding by other nodes; and the communication between the nodes outside the communication domain of a certain node and the node needs to be forwarded by other nodes. For example, node 1 and node 2 can communicate directly, and node 1 and node 3 can communicate through the forwarding of node 2.
[0117] As shown in Figure 3, the area within each dotted circle is a communication domain. For example, the communication domain of the root node is the area within dotted circle 4 in Figure 3, and the communication domain of node 1 is the area within dotted circle 1 in Figure 3.
[0118] For example, if other end nodes need to send data packets to the root node, if other nodes (for example, node 2) are not within the communication domain of the root node, node 2 needs to be forwarded by other end nodes before the data packet can be sent from node 2 to the root node. It should be noted that in each process of forwarding a data packet, each end node needs to forward it through the parent node of the end node, and generally not through the child node of the end node. Among them, each end node can determine the parent node and child node of the node based on the saved distance between each node and the root node. For example, the distance between node 2 and the root node is length 1, and the distance between node 3 and the root node is length 2; if distance 1 is greater than distance 1, node 3 is determined to be the parent node of node 2; if distance 1 is less than distance 2, node 3 is determined to be the child node of node 2.
[0119] The communication method provided by the embodiment of the present application is described in detail below in conjunction with Figure 4. In the flowchart shown in Figure 4, the method is shown from the perspective of node interaction, but the present application does not limit the execution subject of the method. For example, the first node in Figure 4 can also be a chip, chip system, or processor that supports the first node to implement the method, or a logic module or software that can implement all or part of the functions of the first node; the second node in Figure 4 can also be a chip, chip system, or processor that supports the second node to implement the method, or a logic module or software that can implement all or part of the functions of the second node.
[0120] FIG4 is a schematic flow chart of a communication method 400 provided in an embodiment of the present application. In the method 400, the first node is a node in a multi-hop network based on wireless communication technology (e.g., node 1 in FIG3 ), and the second node is a neighbor node of the first node (e.g., node 2 in FIG3 ).
[0121] As shown in Figure 4, the method 400 may include steps S401 to S403. Each step in the method 400 is described in detail below.
[0122] S401: A first node generates a first data message. The first data message includes a destination MAC address field, where the destination MAC address field is used to carry a destination address of the first data message.
[0123] Illustratively, the destination MAC address of the first data packet may be the MAC address of any neighboring node of the first node in the multi-hop network; or the destination MAC address of the first data packet may be a broadcast MAC address, which is a predefined broadcast MAC address. For example, the broadcast MAC address is: ff:ff:ff:ff:ff:ff (6 bytes).
[0124] It should be noted that the destination MAC address of the first data message is specifically the MAC address of any node in the multi-hop network or the broadcast MAC address, which is determined by the first node according to the destination address encapsulated by the data link layer for the first data message.
[0125] Exemplarily, the destination address encapsulated by the network layer for the first data packet is a unicast address, and the destination MAC address of the first data packet is the MAC address of any node in the multi-hop network; the destination address encapsulated by the network layer for the first data packet is a multicast address or a broadcast address, and the destination MAC address of the first data packet is a broadcast MAC address.
[0126] Optionally, the first data message further includes a source MAC address field, and the source MAC address field is used to carry the source address of the first data message. Since the first data message is sent by the first node, the source MAC address of the first message is the MAC address of the first node.
[0127] It can be understood that the source and destination MAC addresses of the first data message are addresses encapsulated at the data link layer.
[0128] S402: The first node sends the first data message on a broadcast channel. Correspondingly, the second node receives the first data message on the broadcast channel.
[0129] The broadcast channel in this application may be one of three predefined broadcast channels. It should be understood that the data message generated by the first node may be sent in turn on the three broadcast channels.
[0130] It is understood that if the neighboring nodes of the first node are listening on the broadcast channel, then the neighboring nodes of the first node can all receive the first data message. For ease of description, this application takes the second node among the neighboring nodes of the first node as an example to introduce the subsequent processing method of the neighboring nodes of the first node after receiving the first data message.
[0131] S403: The second node determines that the destination MAC address of the first data message is a broadcast MAC address or a MAC address of any node in the multi-hop network.
[0132] Optionally, when the destination MAC address of the first data packet is the MAC address of any node among the neighboring nodes of the first node, the second node's processing method for the first data packet may include at least one of the following: replying an ACK packet, forwarding the first data packet, discarding the first data packet, or parsing the first data packet.
[0133] Optionally, when the destination MAC address of the first data packet is a broadcast MAC address, the second node's processing of the first data packet may include at least one of the following: not replying to an ACK packet, forwarding the first data packet, or parsing the first data packet.
[0134] In an embodiment of the present application, multiple nodes in a multi-hop network can send and receive data packets on a broadcast channel, so a graph topology can be formed between the multiple nodes. Compared with a tree topology, this graph topology does not have a fixed binding relationship between the two nodes, that is, any node in the multi-hop network can send data packets to other nodes or receive data packets from other nodes on a broadcast channel without having to communicate with the parent node through an encrypted channel formed between the node and the parent node. Therefore, the method provided in the present application can realize free switching of routes, and this method of sending and receiving data packets through a broadcast channel does not need to wait until the time slot allocated to the node arrives before communicating, which effectively reduces the end-to-end communication delay.
[0135] The following describes in detail how the second node processes the first data message with reference to two examples.
[0136] Example 1: The destination MAC address of the first data packet is the MAC address of any neighboring node of the first node.
[0137] Exemplarily, the destination address of the first data packet is the MAC address of the second node, or is not the MAC address of the second node.
[0138] Optionally, when the destination address of the first data message is not the MAC address of the second node, the method 400 further includes: the second node discarding the first data message.
[0139] Optionally, when the destination address of the first data message is the MAC address of the second node, the method 400 further includes: the second node sending an ACK message to the first node, where the ACK message is used to indicate that the second node has received the first data message.
[0140] The destination MAC address of the ACK message is the MAC address of the first node, and the source MAC address is the MAC address of the second node.
[0141] The embodiment of the present application can improve the reliability of data transmission by sending an ACK message to the first node.
[0142] Due to some scenarios (for example, link deterioration or an abnormal state of the peer node), the second node may not be able to receive the first data message, or the ACK message sent by the second node may not successfully reach the first node. In other words, the first node may receive an ACK message from the second node within a preset time period after sending the first data message, or it may not receive an ACK message from the second node. It should be understood that the second node may only receive an ACK message from the second node if the destination address of the first data message is the MAC address of the second node.
[0143] Therefore, when the target address of the first data message is the MAC address of the second node, after S402, the method 400 further includes: the first node determines whether an ACK message is received from the second node within a preset time period after sending the first data message.
[0144] The preset duration may be, for example, 3 seconds or 5 seconds, etc., and this application does not limit this.
[0145] Case 1: The first node does not receive an ACK message from the second node within a preset time period after sending the first data message.
[0146] At this time, the first node may schedule a backoff window to trigger a retransmission mechanism (ie, repeatedly execute S402 ), or modify the destination MAC address of the first data message to obtain a second data message, and send the second data message on the broadcast channel.
[0147] The difference between the second data message and the first data message is that the destination MAC address is different. That is, compared with the first data message, only the destination MAC address of the second data message changes, and other contents may not be changed.
[0148] For example, the destination MAC address of the second data packet is the MAC address of a fourth node, and the fourth node is another node different from the second node among neighbor nodes of the first node.
[0149] In a possible implementation, the method 400 further includes: the first node repeatedly sending the first data message on the broadcast channel until an ACK message is received from the first node.
[0150] In another possible implementation, if the first node repeatedly transmits the first data message N times (N is a positive integer) on the broadcast channel and still does not receive an ACK message from the second node within a preset time period after the Nth (N is a positive integer) transmission of the first data message, the method 400 further includes: the first node transmitting the second data message on the broadcast channel. A description of the second data message is not repeated here.
[0151] Among them, N is the upper limit of the number of repeated transmissions, and the value of N can be predefined. For example, N can be other values such as 3 or 5, and this application does not limit this.
[0152] It is understood that the processing flow after the fourth node receives the second data message is the same as the processing flow after the second node receives the first data message. Similarly, if the first node does not receive an ACK message from the fourth node within the preset time period for sending the second data message, the first node processes the second data message in the same manner as the first data message, and will not be further described here.
[0153] Case 2: The first node receives an ACK message from the second node within a preset time period after sending the first data message.
[0154] Then, the first node may not repeatedly send the first data message on the broadcast channel, and may not send the second data message on the broadcast channel.
[0155] In combination with case one and case two, when the second node successfully receives the first data message from the first node, the method 400 also includes: the second node determines whether it is a forwarding node; and, when the second node is a forwarding node, generates a third data message based on the first data message and sends the third data message on the broadcast channel; or, when the second node is not a forwarding node, the second node parses the first data message.
[0156] The third data message is generated based on the payload data in the first data message. The third data message differs from the first data message in that: the source MAC address and the destination MAC address are different. The source MAC address of the third data message is the MAC address of the second node, and the destination MAC address is the MAC address of any neighboring node of the second node.
[0157] Optionally, the second node determines whether it is a forwarding node, including: the second node obtains a network layer address of the first data message; and determines whether the second node is a forwarding node according to a destination address in the network layer address.
[0158] The network layer address can be understood as the address that the network layer uses to encapsulate the first data message. For example, it can be an IP address or other network layer address that is compatible with wireless communication technology (for example, Star Flash). This application does not limit this.
[0159] As can be seen from the foregoing, the destination MAC address of the first data message is the MAC address of any neighboring node of the first node in the multi-hop network, and the destination address encapsulated by the network layer for the first data message is a unicast address, so the first data message can be called a unicast message.
[0160] The unicast address refers to the address of a single device, that is, when the first data message is a unicast message, the node identified by the destination address in the network layer address of the first data message is unique.
[0161] Optionally, the above-mentioned second node determines whether the second node is a forwarding node based on the destination address in the network layer address of the first data message, which may include: when the node identified by the destination address is the second node, determining that the second node is not a forwarding node; or when the node identified by the destination address is not the second node, determining that the second node is a forwarding node.
[0162] For example, if the third node (a neighboring node of the second node) receives the third data message, the third node can process the third data message in the same way as the second node processes the first data message, which will not be repeated here.
[0163] Example 2: The destination MAC address of the first data packet is a broadcast MAC address.
[0164] At this time, the second node does not need to send an ACK message to the first node.
[0165] Optionally, the method 400 also includes: the second node determines whether its own node is a forwarding node; and, if the second node is a forwarding node, parses the first data message; generates a third data message based on the first data message, and sends the third data message on the broadcast channel; or, if the second node is not a forwarding node, the second node discards the first data message.
[0166] The third data message is generated based on the payload data in the first data message. The third data message differs from the first data message in that the source MAC address is different. The source MAC address of the third data message is the MAC address of the second node, and the destination MAC address is the broadcast MAC address.
[0167] Similar to the above, the second node can determine whether it is a forwarding node based on the destination address in the network layer address of the first data message. The description of the network layer address can refer to the description in the above example 1 and will not be repeated here.
[0168] As can be seen from the foregoing, the destination MAC address of the first data message is a broadcast MAC address, and the destination address encapsulated by the network layer for the first data message is a multicast address or a broadcast address, so the first data message can be called a multicast message or a broadcast message.
[0169] The multicast address and the broadcast address refer to the addresses of multiple devices, that is, when the first data message is a multicast message or a broadcast message, the destination address in the network layer address of the first data message identifies multiple nodes.
[0170] The above-mentioned second node determines whether the second node is a forwarding node based on the destination address in the network layer address of the first data message, which may include: when the node identified by the destination address includes the second node, determining that the second node is a forwarding node; or when the node identified by the destination address does not include the second node, determining that the second node is not a forwarding node.
[0171] For example, if the third node (a neighboring node of the second node) receives the third data message, the third node can process the third data message in the same way as the second node processes the first data message, which will not be repeated here.
[0172] The node in this application determines whether to forward a data message based on the network layer address, which can effectively avoid broadcast storms.
[0173] Since the destination address in the network layer address of the first data message may be a broadcast address, the payload data in the first data message may be forwarded infinitely. In order to avoid wasting resources, the nodes in the multi-hop network may stop forwarding the payload data in the first data message based on at least one of the following conditions: starting from the service initiator sending the first data message, the number of times the payload data in the first data message is forwarded is recorded, and the forwarding stops after Q (Q is a positive integer, and the value of Q is predefined) times; after receiving the data message containing the payload data in the first data message, the node determines that the source MAC address of the data message is a child node of the node; or, after the node receives the data message containing the payload data in the first data message, no other node exists.
[0174] Regarding the method of determining the child node and the parent node, please refer to the relevant description in Figure 3 above, which will not be repeated here.
[0175] In combination with Example 1 and Example 2, the network layer address of the first data message may further include a source address.
[0176] However, it should be noted that the source address in the network layer address of the first data message is the address of the service initiator of the first data message, not the address of the node that sends the first data message.
[0177] Optionally, the node identified by the source address in the network layer address of the first data message in the present application may be the first node or may not be the first node.
[0178] Exemplarily, if the service corresponding to the first data message is initiated by the first node, the node identified by the source address in the network layer address of the first data message is the first node; if the first data message is initiated by other nodes (for example, the fourth node), the node identified by the source address in the network layer address of the first data message is not the first node, but the fourth node.
[0179] The fourth node may be any node in a multi-hop network. For example, the first node is a neighbor node of the fourth node.
[0180] The fourth data message differs from the first data message in that the source MAC address of the fourth data message is the MAC address of the fourth node, and the destination MAC address of the fourth data message is the destination MAC address of the first node, or a broadcast MAC address.
[0181] Optionally, when the above-mentioned first data packet is a unicast packet, the first data packet is carried in a unicast frame; the ACK packet is carried in an ACK frame; when the first data packet is a broadcast packet or a multicast packet, the first data packet is carried in a broadcast frame.
[0182] The above-mentioned unicast frame, ACK frame and the broadcast frame are all generated based on a predefined basic frame structure.
[0183] For the description of unicast messages, multicast messages, and broadcast messages, please refer to the description in Example 1 and Example 2 above and will not be repeated here.
[0184] Optionally, the basic frame structure includes a data type indication field, which can be used to indicate the data types of the first data message, the second data message, and the third data message.
[0185] The data type of the data message sent by the node in the multi-hop network in this application is high-level broadcast data. That is, the data types of the first data message, the second data message and the third data message are all high-level broadcast data.
[0186] Exemplarily, the data type indication field included in the basic frame structure is 0xFF, indicating that the data type is high-layer broadcast data. In other words, the index of the data type of the high-layer broadcast data is 0xFF.
[0187] It is understood that the data type can be indicated without requiring the MAC address to be carried in the data message. In other words, the indication of the data type is not dependent on the MAC address being carried in the data message. That is, even if the data message sent by the first node does not carry a MAC address, the data message may still include a field indicating the data type.
[0188] Optionally, the basic frame structure also includes a frame type indication field, and the frame type includes: unicast frame, broadcast frame, and ACK frame.
[0189] Exemplarily, the frame type indication field may be 0x00, 0x01, 0x02, or other values, which is not limited in this application.
[0190] It can be understood that the above 0x00, 0x01, and 0x02 can each indicate a frame type.
[0191] For example, if the frame type indication field is 0x00, the frame type is a unicast frame; if the frame type indication field is 0x01, the frame type is the ACK frame; if the frame type indication field is 0x02, the frame type is a broadcast frame.
[0192] For example, if the frame type indication field is 0x00, the frame type is a unicast frame; if the frame type indication field is 0x02, the frame type is the ACK frame; if the frame type indication field is 0x01, the frame type is a broadcast frame.
[0193] For example, if the frame type indication field is 0x01, the frame type is a unicast frame; if the frame type indication field is 0x00, the frame type is the ACK frame; if the frame type indication field is 0x02, the frame type is a broadcast frame.
[0194] For example, if the frame type indication field is 0x01, the frame type is a unicast frame; if the frame type indication field is 0x02, the frame type is the ACK frame; if the frame type indication field is 0x00, the frame type is a broadcast frame.
[0195] For example, if the frame type indication field is 0x02, the frame type is a unicast frame; if the frame type indication field is 0x00, the frame type is the ACK frame; if the frame type indication field is 0x01, the frame type is a broadcast frame.
[0196] For another example, if the frame type indication field is 0x02, the frame type is a unicast frame; if the frame type indication field is 0x01, the frame type is the ACK frame; if the frame type indication field is 0x00, the frame type is a broadcast frame.
[0197] Similar to the data type indication, the frame type indication does not necessarily require the data packet to carry a MAC address. In other words, the frame type indication is independent of the data packet carrying a MAC address. That is, even if the data packet sent by the first node does not carry a MAC address, the data packet may still include a frame type indication field.
[0198] Similarly, the frame type can be indicated without requiring the data message to include a field indicating the data type. In other words, the frame type indication is independent of the data message including an indication of the data type. That is, even if the data message sent by the first node does not include a field indicating the data type, the data message may still include a field indicating the frame type.
[0199] Optionally, the basic frame structure also includes an indication field for broadcast-based transmission networking.
[0200] Exemplarily, the indication field of the broadcast-based transmission networking is 0x1C or 0x1D, or other values, which are not limited in this application.
[0201] Similar to the data type and frame type indications, the broadcast-based transmission networking indication is not necessarily based on the data message carrying the MAC address. In other words, the broadcast-based transmission networking indication is independent of the data message carrying the MAC address. That is, even if the data message sent by the first node does not carry a MAC address, the data message may still include a broadcast-based transmission networking indication field.
[0202] Similarly, the broadcast-based transmission networking can be indicated without requiring the data message to include a field indicating the data type. In other words, the broadcast-based transmission networking indication is independent of the data message carrying the data type indication. That is, even if the data message sent by the first node does not include a field indicating the data type, the data message may still include a field indicating the broadcast-based transmission networking indication.
[0203] Similarly, the broadcast-based transmission networking can be indicated without requiring the data message to include a frame type indication field. In other words, the indication of the broadcast-based transmission networking does not depend on the frame type indication being carried in the data message. That is, even if the data message sent by the first node does not include a frame type indication field, the data message may still include a broadcast-based transmission networking indication field.
[0204] In summary, the MAC address, data type indicator field, frame type indicator field, or broadcast-based transmission networking indicator field carried in the above-mentioned data packets can be used in combination or independently. That is, a data packet sent by a node can carry one or more of the following: a MAC address, data type indicator field, frame type indicator field, or broadcast-based transmission networking indicator field.
[0205] Figure 5 is a schematic diagram of a predefined basic frame structure provided by an embodiment of the present application. As shown in Figure 5, the basic frame structure can be divided into a basic layer and a service layer. The basic layer is equivalent to the L2 link layer, and the service layer is equivalent to the L3 network layer and the L4 transport layer. The basic layer corresponds to bytes 0 to byte 20, and the service layer corresponds to bytes 21 to byte M. For example, byte 0 includes a frame structure indication and a reserved field, byte 1 includes the local media access layer identification type, the peer media access layer identification type, and a reserved field, bytes 2 to byte 7 are used to describe the local media access layer identification, byte 8 is used to describe the parsing key identification, bytes 9 to byte 14 are used to describe the peer media access layer identification, bytes 15 to byte 18 are used to describe the extended broadcast frame resource configuration information, byte 19 is used to describe the data type, byte 20 is used to describe the data length, and byte 21 is used to describe the data content. The subsequent bytes 22 to byte M (M is an integer greater than 22) are used to describe the data type, data length, and data content in sequence for each three consecutive bytes.
[0206] As shown in FIG5 , the source MAC address of the data message in this application is located from byte 2 to byte 7 in the basic frame structure, and the destination MAC address of the data message is located from byte 9 to byte 14 in the basic frame structure.
[0207] As shown in FIG5 , the data type indication field is located in the byte used to describe the data type.
[0208] As shown in FIG5 , the indication field of the above frame type and the indication field of the broadcast-based transmission networking are both located in the bytes used to describe the data content.
[0209] Taking byte 21 shown in FIG. 5 as an example, the fields included in byte 21 are described in conjunction with FIG. 6 .
[0210] Figure 6 is a schematic diagram of a frame format provided in an embodiment of the present application. As shown in Figure 6, byte 21 includes a transmission channel identifier (TCID), a length indicator, and data information. The TCID indicates the broadcast-based transmission network, the length indicator indicates the length of the data information, and the first byte of the data information identifies the frame type. The second byte and above contain the frame content, i.e., the payload.
[0211] The addresses exemplified in this application also have an indication field, which is shown in hexadecimal values, but this should not be considered limiting and can also be converted into values in other bases.
[0212] The following will be based on the embodiment shown in Figure 4 and will introduce the method provided by the present application in more detail in conjunction with Figures 7 and 8. In the communication methods shown in Figures 7 and 8, an IP address is used as an example of a network layer address for illustration.
[0213] It should be noted that, in the embodiments shown in FIG. 7 and FIG. 8 , the same or similar steps as those in the embodiment shown in FIG. 4 can be referred to the above description of the method 400 and will not be described in detail.
[0214] The following describes the method provided in an embodiment of the present application in detail in conjunction with FIG7 , using the topology shown in FIG3 , with an example of node 2 sending a data packet to node 4 in the topology shown in FIG3 . It should be understood that in the scenario where node 2 and node 4 communicate, the source address and destination address in the network layer address of the transmitted data packet (also known as a unicast packet) identify the nodes 2 and 4, respectively. In this application, node 2 is the service initiator.
[0215] FIG7 is another schematic flow chart of a communication method 700 provided in an embodiment of the present application. As shown in FIG7 , the method 700 may include steps S701 to S713. Each step of the method 700 is described in detail below.
[0216] S701: Node 2 generates data packet 1.
[0217] The source address of the data packet 1 encapsulated at the network layer is the address of node 1, and the destination address encapsulated at the network layer is node 3.
[0218] The source address of the data message 1 encapsulated at the data link layer is the MAC address of node 1, and the destination address of the data link layer encapsulated is the MAC address of node 3.
[0219] It is understandable that since node 2 knows that it needs to communicate with node 4, node 2 can select node 3 or node 6 close to node 4 as the forwarding node, rather than node 1 far away from node 4. In this embodiment of the application, node 3 is used as the forwarding node for forwarding.
[0220] S702: Node 2 sends data packet 1 on the broadcast channel.
[0221] For the description of the broadcast channel, please refer to the description in S401 above, which will not be repeated here.
[0222] Since node 2 sends data message 1 on the broadcast channel, node 3, node 6 and node 1 located in the communication domain of node 2 can all receive data message 1 on the broadcast channel.
[0223] S703 , node 3 , node 6 , and node 1 respectively obtain the destination MAC address of the data packet 1 , and determine whether the node identified by the destination address is itself.
[0224] Since the destination MAC address encapsulated by node 2 at the data link layer in this application is the MAC address of node 3, node 3, node 6 and node 1 respectively obtain the destination MAC address of data packet 1 and determine that the node identified by the destination MAC address is node 3.
[0225] When node 1 and node 6 determine that the node identified by the destination MAC address of data packet 1 is node 3 , they may proceed to S704 : discarding data packet 1 .
[0226] When node 3 determines that the node identified by the destination MAC address of data packet 1 is node 3, steps from S705 to S713 may continue to be executed.
[0227] S705, node 3 sends an ACK message to node 1. The ACK message is used to indicate that node 3 has received the data message 1. Correspondingly, node 1 receives the ACK message.
[0228] For the description of the ACK message, please refer to the description in Example 1 above and will not be repeated here.
[0229] S706 , node 3 obtains the destination IP address of data packet 1 , and determines that the node identified by the destination IP address is node 4 .
[0230] Since the destination IP address encapsulated by node 2 in the network layer in this application is the IP address of node 4, the node identified by the destination IP address in the data message 1 obtained by node 3 is node 4.
[0231] S707 , node 3 re-encapsulates the data link layer address of data message 1 to obtain data message 2 .
[0232] The difference between data message 2 and data message 1 is that the destination MAC address of data message 2 is the MAC address of node 4 , and the source MAC address is the MAC address of node 3 .
[0233] S708, node 3 sends data packet 2 on the broadcast channel.
[0234] Since the node 3 sends the data message 2 on the broadcast channel, the node 4, the node 6 and the node 2 located in the communication domain of the node 3 can all receive the data message 2 on the broadcast channel.
[0235] S709 , node 4 , node 6 , and node 2 respectively obtain the destination MAC address in the data packet 2 , and determine whether the node identified by the destination address is itself.
[0236] Since the destination MAC address encapsulated by node 2 at the data link layer in this application is the MAC address of node 4, node 4, node 6 and node 2 respectively obtain the destination MAC address in data packet 2 and determine that the node identified by the destination MAC address is node 4.
[0237] When node 6 and node 2 determine that the node identified by the destination MAC address in data packet 2 is node 4, the process proceeds to S710: discarding data packet 2.
[0238] When node 4 determines that the node identified by the destination MAC address in data packet 2 is node 4, steps S711 to S713 are continued.
[0239] S711, node 4 sends an ACK message to node 3. The ACK message is used to indicate that node 4 has received the data message 2. Correspondingly, node 3 receives the ACK message.
[0240] For the description of the ACK message, please refer to the description in Example 1 above and will not be repeated here.
[0241] S712 , node 4 obtains the destination IP address of data packet 2 , and determines that the node identified by the destination IP address is node 4 .
[0242] Since the destination IP address encapsulated by node 2 in the network layer in this application is the IP address of node 4, the node identified by the destination IP address in the data message 1 obtained by node 3 is node 4.
[0243] S713 , node 4 parses data message 2 and obtains payload data in data message 2 .
[0244] It can be understood that the payload data is the same as the payload data in data message 1.
[0245] It should be noted that if in S702, node 3 does not receive data packet 1 from node 2; or in S705, node 2 does not receive an ACK message from node 3, then node 2 can repeatedly send data packet 1 on the broadcast channel until it receives an ACK message from node 3, and then continue to execute the above steps S706 to S713.
[0246] If node 2 can repeatedly send data message 1 on the broadcast channel and still has not received an ACK message from node 3 after sending data message 1 N times, node 2 re-encapsulates the data link layer address of data message 1 to obtain data message 3, and sends data message 3 on the broadcast channel. Data message 3 differs from data message 1 in that the destination MAC address of data message 3 is not the MAC address of node 3, but can be, for example, the MAC address of node 6. Node 2 sends data message 3 on the broadcast channel and can continue to execute steps S703 to S713 above, but needs to replace the node that is only the execution subject of node 3 with node 6.
[0247] Node 2 in S701 to S707 above can be understood as the first node in method 400, and node 3, node 6, and node 1 can be understood as the second node in method 400; node 3 in S708 to S713 above can be understood as the first node in method 400, and node 2, node 6, and node 4 can be understood as the second node in method 400. The data message sent by the first node can be understood as the first data message in method 400, the data message received by the first node can be understood as the fourth data message in method 400, and the data message forwarded by the second node can be understood as the third data message in method 400.
[0248] In the embodiment of the present application, the use of a broadcast channel to send data packets can enable other nodes to receive the data packets on the broadcast channel. In other words, any node in the multi-hop network of the present application can send data packets to other nodes or receive data packets from other nodes on the broadcast channel, without having to communicate with the parent node through the encrypted channel formed between the node and the parent node. Therefore, free switching of routes can be achieved. Moreover, this method of sending and receiving data packets through the broadcast channel does not require waiting until the time slot allocated to the node arrives before communication is carried out, effectively reducing the end-to-end communication delay.
[0249] The following describes in detail the method provided in an embodiment of the present application in conjunction with FIG8 , taking the topology shown in FIG3 , and taking the example of node 1 in the topology shown in FIG3 sending a data message to node 2 and node 3 as an example. It should be understood that in the scenario where node 1 communicates with node 2 and node 3, the network layer address of the transmitted data message (also known as a multicast message) has a source address of node 1 and a destination address identifying nodes 2 and 3. In this application, node 1 is the service initiator.
[0250] FIG8 is another schematic flow chart of a communication method 800 provided in an embodiment of the present application. As shown in FIG8 , the method 800 may include steps S801 to S814. Each step of the method 800 is described in detail below.
[0251] S801, node 1 generates data packet 4.
[0252] The source address of the data message 4 encapsulated at the network layer is the address of node 2 , and the destination address of the data message 4 encapsulated at the network layer is a multicast address, specifically the addresses of node 2 and node 3 .
[0253] The source address of the data message 4 encapsulated at the data link layer is the MAC address of the node 1, and the destination address encapsulated at the data link layer is the broadcast MAC address.
[0254] S802, node 1 sends data packet 4 on the broadcast channel.
[0255] For the description of the broadcast channel, please refer to the description in S401 above, which will not be repeated here.
[0256] Since node 1 sends data message 4 on the broadcast channel, node 2 and node 5 located in the communication domain of node 1 can both receive data message 4 on the broadcast channel.
[0257] S803: Node 2 and node 5 determine that the destination MAC address of data packet 4 is a broadcast MAC address.
[0258] S804 , node 2 and node 5 obtain the destination IP address of data packet 4 and determine whether the node identified by the destination IP address includes themselves.
[0259] Since the destination IP address encapsulated by node 1 at the network layer in this application is the IP address of node 2 and node 3, node 2 and node 5 respectively obtain the destination IP address of data packet 4 and determine that the nodes identified by the destination IP address are node 2 and node 3.
[0260] When node 5 determines that the nodes identified by the destination IP address in data packet 4 are node 2 and node 3, the process continues with step S805: discarding data packet 4.
[0261] When node 2 determines that the nodes identified by the destination IP address in data message 4 are node 2 and node 3, steps S806 to S814 are continued to be executed.
[0262] S806 , node 2 parses data message 4 and obtains the payload data in data message 4 .
[0263] S807 , node 2 re-encapsulates the data link layer address of data message 4 to obtain data message 5 .
[0264] The difference between data message 5 and data message 4 is that the source MAC address of data message 4 is the MAC address of node 2 .
[0265] S808, node 2 sends data packet 5 on the broadcast channel.
[0266] Since node 2 sends data message 5 on the broadcast channel, node 3, node 6 and node 1 located in the communication domain of node 2 can all receive the data message 5 on the broadcast channel.
[0267] S809: Node 3, node 6, and node 1 determine that the destination MAC address in data message 5 is a broadcast MAC address.
[0268] S810, node 3, node 6, and node 1 obtain the destination IP address of data packet 5, and determine whether the node identified by the destination IP address includes itself.
[0269] Since the IP address of the data message does not change during the forwarding process, the destination IP addresses of the data message 5 obtained by node 3, node 6 and node 1 respectively are node 2 and node 3.
[0270] When node 6 and node 1 determine that the nodes identified by the destination IP address in data packet 5 are node 2 and node 3, the process continues with S811: discarding data packet 5.
[0271] When node 3 determines that the nodes identified by the destination IP address in data message 5 are node 2 and node 3, steps S812 to S814 are continued to be executed.
[0272] S812 , node 3 parses data message 5 and obtains the payload data in data message 5 .
[0273] It can be understood that the payload data in data message 5 is the same as that in data message 4.
[0274] S813 , node 3 re-encapsulates the data link layer address of data message 5 to obtain data message 6 .
[0275] The difference between data message 6 and data message 5 is that the source MAC address of data message 4 is the MAC address of node 3 .
[0276] S814, node 3 sends data packet 6 on the broadcast channel.
[0277] Because node 3 sends data packet 6 on the broadcast channel, nodes 4, 6, and 2 within the communication domain of node 3 can all receive data packet 5 on the broadcast channel. When nodes 4, 6, and 2 determine that the destination IP address of data packet 6 is the IP address of nodes 2 and 3, they will all discard the packet.
[0278] Node 1 in S801 to S807 above can be understood as the first node in method 400, and node 2 and node 5 can be understood as the second node in method 400; node 2 in S808 to S813 above can be understood as the first node in method 400, and node 1 and node 6 can be understood as the second node in method 400; node 3 in S814 above can be understood as the first node in method 400, and node 2 and node 6 can be understood as the second node in method 400. The data message sent by the first node can be understood as the first data message in method 400 above, the data message received by the first node can be understood as the fourth data message in method 400 above, and the data message forwarded by the second node can be understood as the third data message in method 400 above.
[0279] In the embodiment of the present application, the use of a broadcast channel to send data packets can enable other nodes to receive the data packets on the broadcast channel. In other words, any node in the multi-hop network of the present application can send data packets to other nodes or receive data packets from other nodes on the broadcast channel, without having to communicate with the parent node through the encrypted channel formed between the node and the parent node. Therefore, free switching of routes can be achieved. Moreover, this method of sending and receiving data packets through the broadcast channel does not require waiting until the time slot allocated to the node arrives before communication is carried out, effectively reducing the end-to-end communication delay.
[0280] The method provided by the embodiment of the present application is described in detail above in conjunction with Figures 1 to 8 , and the device provided by the embodiment of the present application is described in detail below in conjunction with Figures 9 and 10 .
[0281] Figures 9 and 10 are schematic diagrams of possible devices provided by embodiments of the present application. These devices can be used to implement the functions of the first node or the second node in the above method embodiments, and thus can also achieve the beneficial effects of the above method embodiments.
[0282] FIG9 is a schematic block diagram of a communication device according to an embodiment of the present application. As shown in FIG9 , the communication device 900 includes a processing module 910 and a transceiver module 920 .
[0283] One possible design is that the communication device 900 is used to implement the function of the first node in the method embodiment shown in FIG. 4 .
[0284] Exemplarily, the processing module 910 is configured to generate a first data message; and the transceiver module 920 is configured to send the first data message on a broadcast channel.
[0285] Optionally, the transceiver module 920 is also used to: if no affirmative response ACK message is received from the second node within a preset time after sending the first data message, repeatedly send the first data message on the broadcast channel, and the destination MAC address of the ACK message is the MAC address of the first node.
[0286] Optionally, the transceiver module 920 is also used to: if no ACK message is received from the second node within the preset time period after the first data message is repeatedly sent for the Nth time, send a second data message on the broadcast channel, the second data message being the unicast message, the destination MAC address of the second data message being different from the destination MAC address of the first data message, and N being a positive integer.
[0287] A more detailed description of the processing module 910 and the transceiver module 920 can be directly obtained by referring to the relevant description in the embodiment shown in FIG4 , and is not repeated here.
[0288] Another possible design is that the communication device 900 is used to implement the function of the second node in the method embodiment shown in FIG. 4 .
[0289] Exemplarily, the transceiver module 920 is used to: receive a first data packet from a first node on a broadcast channel; the processing module 910 is used to: determine that the destination MAC address of the first data packet is the broadcast MAC address or the MAC address of any node among the neighboring nodes of the first node.
[0290] Optionally, the processing module 910 is further configured to discard the first data packet.
[0291] Optionally, the transceiver module 920 is further configured to send an ACK message to the first node.
[0292] Optionally, the processing module 910 is further configured to determine whether the communication device 900 is a forwarding node.
[0293] Optionally, the processing module 910 is further configured to: when the communication device 900 is a forwarding node, generate a third data message according to the payload data in the first data message; and the transceiver module 920 is further configured to: send the third data message on the broadcast channel.
[0294] Optionally, the processing module 910 is further configured to: when the communication device 900 is not a forwarding node, parse the first data message or discard the first data message.
[0295] Optionally, the processing module 910 is further configured to: obtain a destination address in a network layer address of the first data message; and determine whether the second node is a forwarding node according to the destination address.
[0296] A more detailed description of the processing module 910 and the transceiver module 920 can be directly obtained by referring to the relevant description in the embodiment shown in FIG4 , and is not repeated here.
[0297] It should be noted that the communication device 900 may include a sending module but not a receiving module. Alternatively, the communication device 900 may include a receiving module but not a sending module. The specific implementation depends on whether the above-mentioned solution executed by the communication device 900 includes both sending and receiving actions. It is understood that since the communication device 900 has communication functionality, it can also be referred to as a communication device.
[0298] Figure 10 is another schematic block diagram of an apparatus provided in an embodiment of the present application. As shown in Figure 10, the communication apparatus 1000 includes at least one processor 1010. The at least one processor 1010 can be used to execute computer programs or instructions in a memory to implement the steps performed by the first node or the steps performed by the second node in the above method embodiment.
[0299] The processor 1010 may be a general-purpose processor or a dedicated processor. For example, it may be a baseband processor or a central processing unit. The baseband processor may be used to process communication protocols and communication data, while the central processing unit may be used to control a device (e.g., a first node, a second node, or a chip), execute software programs, and process data in the software programs.
[0300] Optionally, the communication device 1000 may further include at least one memory 1020 for storing instructions executed by the processor 1010 or storing input data required by the processor 1010 to execute instructions or storing data generated after the processor 1010 executes instructions. The at least one processor 1010 and the at least one memory 1020 may be provided separately. For example, each memory may be connected to one or more processors so that the connected processors can read information from the memory and store and / or write information in the memory. Alternatively, the at least one processor 1010 and the at least one memory 1020 may be integrated together, for example, one or more memories may be integrated into one processor.
[0301] Optionally, the communication device 1000 further includes an interface circuit 1030, which can be used to transmit data and / or signaling. The at least one processor 1010 and the interface circuit 1030 are coupled to each other. It is understood that the interface circuit 1030 can be a transceiver, an input / output circuit, a bus, a module, a pin, or other type of interface circuit, wherein the input circuit of the input / output circuit can be used for receiving, and the output interface can be used for sending.
[0302] Optionally, the communication device 1000 further includes a power supply circuit 1040 , which can be used to supply power to the communication device 1000 .
[0303] When the communication device 1000 is used in the method described in the above embodiment, at least one processor 1010 is used to perform the functions of the above processing unit, and the interface circuit 1030 is used to perform the functions of the above receiving unit and / or sending unit. Whether the interface circuit 1030 is used for sending or receiving can be determined by whether the communication device 1000 is used to perform a sending action or a receiving action in the solution implemented.
[0304] It is understood that when the communication device 1000 is a communication device (e.g., a first node or a second node), the interface circuit 1030 may be a transceiver, specifically including a transmitter and a receiver, where the transmitter is used to transmit signals and the receiver is used to receive signals. When the communication device 1000 is a chip used in a communication device, the interface circuit 1030 may be an input / output circuit, a bus, a module, a pin, or other type of interface circuit, wherein the input circuit of the input / output circuit may be used for receiving, and the output interface may be used for transmitting.
[0305] It should be understood that in the communication device 1000 shown in FIG. 10 , the processor 1010 may correspond to the processing module 910 in the above device 900 , and the interface circuit 1030 may correspond to the transceiver module 920 in the above device 900 .
[0306] It should also be understood that the coupling in the embodiments of the present application is an indirect coupling or communication connection between devices, units or modules, which can be electrical, mechanical or other forms, and is used for information exchange between devices, units or modules. The specific connection medium between the at least one processor 1010, at least one memory 1020, interface circuit 1030 and power supply circuit 1040 is not limited in the embodiments of the present application. In Figure 10, the embodiment of the present application is connected by a bus 1050 between the processor 1010, memory 1020, interface circuit 1030 and power supply circuit 1040. The bus 1050 is represented by a bold line in Figure 10, and the connection method between other components is only for schematic illustration and is not limited. The bus can be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For ease of representation, only one bold line is used in Figure 10, but it does not mean that there is only one bus or one type of bus.
[0307] The processor may be a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, a discrete gate or transistor logic device, a discrete hardware component, or any combination thereof. The general-purpose processor may be a microprocessor or any conventional processor.
[0308] The steps of the method disclosed in the embodiments of this application can be directly implemented and executed by a hardware decoding processor, or by a combination of hardware and software modules in the decoding processor. The software module can be located in a storage medium well-known in the art, such as random access memory, flash memory, read-only memory, programmable read-only memory, electrically erasable programmable memory, registers, etc. The storage medium is located in the memory, and the processor reads the information in the memory and, in conjunction with its hardware, completes the steps of the above method.
[0309] The memory in the embodiments of the present application may be a volatile memory or a non-volatile memory, or may include both volatile and non-volatile memories. Among them, the non-volatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of RAM are available, such as static RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), synchronous link DRAM (SLDRAM), and direct RAM bus RAM (DR RAM). It should be noted that the memory of the systems and methods described herein is intended to include, but is not limited to, these and any other suitable types of memory.
[0310] The methods provided in the above embodiments can be implemented in whole or in part by software, hardware, firmware or any combination thereof. When implemented using software, they can be implemented in whole or in part in the form of a computer program product. The computer program product may include one or more computer instructions. When the computer program instructions are loaded and executed on a computer, the process or function described in the embodiment of the present application is generated in whole or in part. The computer may be a general-purpose computer, a special-purpose computer, a computer network or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium. For example, the computer instructions may be transmitted from one website, computer, server or data center to another website, computer, server or data center via a wired (e.g., coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) method. The computer-readable storage medium may be any available medium that a computer can access or a data storage device such as a server or data center that includes one or more available media integrated therein. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic disk), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state disk (SSD)).
[0311] The present application also provides a computer program product, which includes: a computer program (also referred to as code, or instructions). When the computer program is run, the method executed by the first node in the embodiment shown in Figure 4 is executed, or the method executed by the second node is executed.
[0312] The present application also provides a computer-readable storage medium storing a computer program (also referred to as code or instructions). When the computer program is executed, the method executed by the first node in the embodiment shown in FIG4 is executed, or the method executed by the second node is executed.
[0313] The present application also provides a communication system, which includes the aforementioned first node and second node.
[0314] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0315] Those skilled in the art will clearly understand that, for the convenience and brevity of description, the specific working processes of the systems, devices and units described above can refer to the corresponding processes in the aforementioned method embodiments and will not be repeated here.
[0316] In the several embodiments provided in this application, it should be understood that the disclosed systems, devices and methods can be implemented in other ways. For example, the device embodiments described above are merely schematic. For example, the division of the units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, indirect coupling or communication connection of devices or units, which can be electrical, mechanical or other forms.
[0317] The units described as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected to achieve the purpose of this embodiment according to actual needs.
[0318] In addition, each functional unit in each embodiment of the present application may be integrated into one processing unit, or each unit may exist physically separately, or two or more units may be integrated into one unit.
[0319] If the functions are implemented in the form of software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or the part of the technical solution, can be embodied in the form of a software product. The computer software product is stored in a storage medium and includes several instructions for enabling a computer device (which can be a personal computer, server, etc.) to execute all or part of the steps of the method described in each embodiment of the present application. The aforementioned storage medium includes various media that can store program codes, such as a USB flash drive, a mobile hard disk, a read-only memory, a random access memory, a magnetic disk, or an optical disk.
[0320] The above description is merely a specific embodiment of the present application, but the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in this application should be included in the scope of protection of this application. Therefore, the scope of protection of this application should be based on the scope of protection of the claims.
Claims
1. A communication method, characterized in that: Applied to a first node, where the first node is a node in a multi-hop network composed of wireless communication technology, the method includes: Generate a first data message, where a destination media access control MAC address of the first data message is a MAC address of any neighboring node of the first node, or a broadcast MAC address; The first data packet is sent on a broadcast channel.
2. The method according to claim 1, characterized in that The destination MAC address of the first data packet is the broadcast MAC address, and the first data packet is a broadcast packet or a multicast packet.
3. The method according to claim 1 or 2, characterized in that The first data message is carried in a broadcast frame, and the broadcast frame is generated based on a predefined basic frame structure.
4. The method according to claim 1, wherein The destination MAC address of the first data message is the MAC address of any neighboring node of the first node, and the first data message is a unicast message.
5. The method according to claim 1 or 4, characterized in that The first data message is carried in a unicast frame, and the unicast frame is generated based on a predefined basic frame structure.
6. The method according to claim 4 or 5, characterized in that The destination MAC address of the first data packet is a MAC address of a second node, and the second node is a neighbor node of the first node; The method further comprises: If no ACK message is received from the second node within a preset time period after sending the first data message, repeatedly sending the first data message on the broadcast channel; The destination MAC address of the ACK message is the MAC address of the first node.
7. The method according to claim 6, characterized in that The method further comprises: If no ACK message is received from the second node within the preset time period after the first data message is repeatedly sent for the Nth time, a second data message is sent on the broadcast channel, where the second data message is the unicast message, and the destination MAC address of the second data message is different from the destination MAC address of the first data message, and N is a positive integer.
8. The method according to claim 6 or 7, characterized in that The ACK message is carried in an ACK frame, and the ACK frame is generated based on a predefined basic frame structure.
9. The method according to any one of claims 3, 5 and 8, characterized in that: The basic frame structure includes a field indicating the data type.
10. The method according to claim 9, characterized in that The data type indication field is 0xFF, and the data type of the first data message is high-layer broadcast data.
11. The method according to any one of claims 3, 5, 8 to 10, characterized in that The basic frame structure includes a frame type indication field, and the frame type includes: a unicast frame, a broadcast frame, or an ACK frame.
12. The method according to claim 11, characterized in that If the frame type indication field is 0x00, the frame type is the unicast frame; if the frame type indication field is 0x01, the frame type is the ACK frame; if the frame type indication field is 0x02, the frame type is the broadcast frame.
13. The method according to any one of claims 3, 5, 8 to 12, characterized in that The basic frame structure includes an indication field for broadcast-based transmission networking.
14. The method according to claim 13, characterized in that The indication field of the broadcast-based transmission networking is 0x1C or 0x1D.
15. A communication method, characterized in that: Applied to a second node, where the second node is a neighbor node of the first node in a multi-hop network composed of wireless communication technology, the method includes: receiving a first data packet from the first node on a broadcast channel, where the first node is a node in the multi-hop network; Determine that the destination media access control MAC address of the first data message is the broadcast MAC address or the MAC address of any neighboring node of the first node.
16. The method according to claim 15, characterized in that The destination MAC address of the first data packet is the broadcast MAC address, and the first data packet is a broadcast packet or a multicast packet.
17. The method according to claim 15 or 16, characterized in that The first data message is carried in a broadcast frame, and the broadcast frame is generated based on a predefined basic frame structure.
18. The method according to claim 15, characterized in that The destination MAC address of the first data message is the MAC address of any neighboring node of the first node, and the first data message is a unicast message.
19. The method according to claim 15 or 18, characterized in that The first data message is carried in a unicast frame, and the unicast frame is generated based on a predefined basic frame structure.
20. The method according to claim 18 or 19, characterized in that The destination MAC address of the first data packet is not the MAC address of the second node, and the method further includes: The first data packet is discarded.
21. The method according to claim 18 or 19, characterized in that The destination MAC address of the first data packet is the MAC address of the second node, and the method further includes: Send an ACK message to the first node, where the ACK message indicates that the second node has received the first data message.
22. The method according to claim 21, characterized in that The ACK message is carried in an ACK frame, and the ACK frame is generated based on a predefined basic frame structure.
23. The method according to any one of claims 17, 19 and 22, characterized in that: The basic frame structure includes a field indicating the data type.
24. The method according to claim 23, wherein The data type indication field is 0xFF, and the data type of the first data message is high-layer broadcast data.
25. The method according to any one of claims 17, 19, 22 to 24, characterized in that The basic frame structure includes a frame type indication field, and the frame type includes: a unicast frame, a broadcast frame, or an ACK frame.
26. The method according to claim 25, characterized in that If the frame type indication field is 0x00, the frame type is the unicast frame; if the frame type indication field is 0x01, the frame type is the ACK frame; if the frame type indication field is 0x02, the frame type is the broadcast frame.
27. The method according to any one of claims 17, 19, 22 to 26, characterized in that The basic frame structure includes an indication field for broadcast-based transmission networking.
28. The method according to claim 27, characterized in that The indication field of the broadcast-based transmission networking is 0x1C or 0x1D.
29. The method according to any one of claims 15 to 28, characterized in that The method further comprises: determining whether the second node is a forwarding node; In the case where the second node is a forwarding node, generating a third data message according to the payload data in the first data message, and sending the third data message on a broadcast channel; or, When the second node is not a forwarding node, parsing the first data packet or discarding the first data packet; The source MAC address of the third data message is different from that of the first data message, and the destination MAC address of the third data message is the MAC address of any node, or a broadcast MAC address.
30. The method according to claim 29, wherein The determining whether the second node is a forwarding node includes: Obtaining a destination address in the network layer address of the first data message; Determine whether the second node is a forwarding node according to the destination address.
31. A communication device, characterized in that: The method comprises one or more functional units, and is used to implement the method according to any one of claims 1 to 14, or to implement the method according to any one of claims 15 to 30.
32. A communication device, characterized in that: The device comprises a processor configured to execute a program code so as to enable the communication device to implement the method according to any one of claims 1 to 14, or to implement the method according to any one of claims 15 to 30.
33. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the computer program is executed by a processor, the method according to any one of claims 1 to 14 is executed, or the method according to any one of claims 15 to 30 is executed.
34. A computer program product, characterized in that The invention comprises a computer program which, when being executed, causes the method according to any one of claims 1 to 14 to be performed, or causes the method according to any one of claims 15 to 30 to be performed.
Citation Information
Patent Citations
Communication method and related device
CN120456170A
Trusted 802.11DSR (dynamic source routing) adjacent node detection and maintenance method
CN102170651A
Method and apparatus for converged networking
CN111316685A
Management method and device for wireless mesh network
CN112437459A
Communication method and communication device
CN116938494A