Relay node, mesh network system and data transmission method
By implementing the conversion of the receiving address and the sending address of the data packet in the relay node, the data forwarding process in the wireless network is simplified, the problem of complex data forwarding process in the prior art is solved, and the efficiency and security of data transmission are improved.
Patent Information
- Application Number
- CN202210794802.9
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-07
- Publication Date
- 2025-09-19
- Estimated Expiration
- 2042-07-07
AI Technical Summary
In the prior art wireless networks, there are complex technical issues in the encryption and decryption of data packets during data forwarding. In particular, in wireless networks, there are complex technical issues in the encryption and decryption of data packets. In particular, in wireless networks, the data forwarding process in the prior art is relatively complex.
By implementing the conversion of the receiving address and sending address of the data packet in the relay node, the data encryption and decryption process is avoided. The data packet transmission process is not involved during data forwarding, and there is no need to maintain routing table information during data forwarding. The logic is simple, there are no additional special protocol requirements for the software, and it has the advantages of being fast and efficient.
It simplifies the data forwarding process in wireless networks, improves the efficiency of data forwarding and the security and integrity of data, avoids the encryption and decryption process of data packets, improves the security and integrity of data transmission, avoids the transmission process of data packets, and solves the complexity of receiving and sending data packets in the data forwarding process.
Smart Images

Figure CN115190563B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of communications, and in particular to a relay node, a mesh network system, and a data transmission method. Background Art
[0002] In a wireless network, when a station and an access point are far apart, a relay device in relay mode can be used to extend the access point's communication range, allowing the station to fall within the access point's better signal range. The process of data forwarding between the station and the access point via the relay device includes: data packets sent by the station are transmitted to the relay device via the relay device's SoftAP port, and the relay device forwards received data packets to the access point via its STA port to enable communication between the station and the access point. However, during the data forwarding process, the relay device must decrypt received data packets using the SoftAP port and the station's key, and encrypt forwarded data packets using the STA port and the access point's key. Furthermore, the data forwarding process involves the mutual mapping and conversion between the SoftAP port and the STA port at the TCP / IP protocol layer. Therefore, the relay device requires upper-layer software processing, resulting in a relatively complex data forwarding process.
[0003] In addition, in existing mesh networks used to expand the coverage of wireless networks, in order for data packets to be correctly forwarded, each node generally needs to establish and maintain routing table information. During the data forwarding process, if the destination MAC address of the data packet is in the routing table of the current node and is not the current node's own MAC address, the current node chooses to forward the data packet downward to the child node corresponding to the sub-routing table containing the destination MAC address. However, in the above data forwarding process, because the data packet needs to be submitted to the upper-layer software of the current node, the decision on which node to continue to transmit the data packet is made by querying the routing table information, there is a problem that the data forwarding process is relatively complex.
[0004] Therefore, there is an urgent need for a relay node, a mesh network system, and a data transmission method that can make the data forwarding process relatively simple. Summary of the Invention
[0005] The embodiments of the present application provide a relay node, a mesh network system, and a data transmission method, which can solve the problem of relatively complex data forwarding process in wireless networks in the prior art.
[0006] To achieve the above object, the technical solution of the present invention is achieved as follows:
[0007] In a first aspect, the present application provides a data transmission method, including: the software layer of the site generates a data packet, wherein the sending address of the data packet is the MAC address of the site and the receiving address is the MAC address of the access point; the hardware layer of the site modifies the receiving address of the data packet to the MAC address of its own parent node and then sends it; the relay node that receives the data packet returns an ACK frame, and modifies the receiving address of the data packet to the MAC address of its own parent node and then forwards it uplink until the data packet is forwarded to the access point; after receiving the data packet, the access point returns an ACK frame, parses the data packet, and determines whether it receives data from the site based on the sending address of the data packet.
[0008] In the second aspect, the present application also provides another data transmission method, including: an access point sends a data packet, wherein the receiving address of the data packet is the MAC address of the site and the sending address is the MAC address of the access point; the relay node receives the data packet based on the MAC address of the site and the sending address of the data packet is the MAC address of its own parent node based on its own stored assistance table, returns an ACK frame to its own parent node, and modifies the sending address of the data packet to its own MAC address before forwarding it downlink until the data packet is forwarded to the site, wherein the assistance table includes the MAC addresses of all lower-level nodes for which it provides relay services; and the hardware layer of the site receives the data packet based on the sending address of the data packet being the MAC address of its own parent node and the receiving address being the MAC address of the site, returns an ACK frame, and modifies the sending address of the received data packet to the MAC address of the access point before transmitting it to the software layer, so that the software layer determines whether to receive data from the access point based on the sending address of the data packet.
[0009] In a third aspect, the present application provides a mesh network system, comprising: a site, an access point, and a relay node. The site comprises a software layer and a hardware layer, the software layer is used to generate a data packet, wherein the sending address of the data packet is the MAC address of the site and the receiving address is the MAC address of the access point; the hardware layer is used to modify the receiving address of the data packet to the MAC address of its own parent node before sending it. The relay node is used to perform an uplink forwarding procedure after receiving the data packet, wherein the uplink forwarding procedure includes: returning an ACK frame, and modifying the receiving address of the received data packet to the MAC address of its own parent node before performing uplink forwarding; and when there are multiple relay nodes and they are connected hierarchically, each node performs an uplink forwarding procedure until the data packet is forwarded to the access point. After receiving the data packet, the access point is used to return an ACK frame, parse the data packet, and determine whether to receive data from the site based on the sending address of the data packet.
[0010] In a fourth aspect, the present application also provides another mesh network system, comprising: a station, an access point, and a relay node. The access point is configured to send data packets, wherein the receiving address of the data packets is the station's MAC address and the sending address is the access point's MAC address. The relay node is configured to perform a downlink forwarding procedure, wherein the downlink forwarding procedure includes: receiving a data packet based on a stored assistance table containing the station's MAC address and the data packet's sending address being the MAC address of its parent node, returning an ACK frame to its parent node, and then performing downlink forwarding after modifying the data packet's sending address to its own MAC address. The assistance table includes the MAC addresses of all lower-level nodes for which it provides relay services. When there are multiple relay nodes connected hierarchically, each relay node performs the downlink forwarding procedure until the data packet is forwarded to the station. The station comprises a software layer and a hardware layer. The hardware layer is configured to receive data packets based on the data packet's sending address being the MAC address of its parent node and the receiving address being the station's MAC address, return an ACK frame, and modify the sending address of the received data packet to the access point's MAC address before transmitting it to the software layer, so that the software layer determines whether to receive data from the access point based on the data packet's sending address.
[0011] In a fifth aspect, the present application provides a relay node, comprising: a storage module, a filtering and return module, an address conversion module and a sending module. The storage module is used to store an assistance table, wherein the assistance table includes the MAC addresses of all lower-level nodes that need to provide relay services. The filtering and return module is connected to the storage module, and is used to receive a first data packet whose receiving address exists in the assistance table and whose sending address is the MAC address of the parent node, and return an ACK frame to the parent node, and determine whether the first data packet needs to be forwarded downstream; and receive a second data packet sent by a child node, and return an ACK frame to the child node, and determine whether the second data packet needs to be forwarded upstream, wherein the receiving address of the second data packet is its own MAC address. The address conversion module is connected to the filtering and return module, and is used to modify the sending address of the first data packet determined by the filtering and return module to be forwarded downstream to its own MAC address; and modify the receiving address of the second data packet determined by the filtering and return module to be forwarded upstream to the MAC address of the parent node. The sending module is connected to the address conversion module, and is used to send the first data packet whose sending address has been modified by the address conversion module and the second data packet whose receiving address has been modified by the address conversion module.
[0012] In the embodiments of the present application, the relay node implements data forwarding based on the conversion of the receiving address or sending address of the data packet. Data forwarding does not involve data packet encryption and decryption processing, and does not require the maintenance of routing table information. The logic is simple, and there are no additional special protocol requirements for software. It has the advantages of fast and efficient transmission, and solves the problem of relatively complex data forwarding processes in wireless networks. In addition, during the data forwarding process, the software layer of the station will believe that it is connected to the access point, and the software layer of the access point will believe that it is connected to the station. The software layers of both the station and the access point are unaware of the existence of the relay node. BRIEF DESCRIPTION OF THE DRAWINGS
[0013] The drawings described herein are used to provide a further understanding of the present application and constitute a part of the present application. The illustrative embodiments of the present application and their descriptions are used to explain the present application and do not constitute an improper limitation on the present application. In the drawings:
[0014] Figure 1 Flowchart of the first embodiment of the node pairing method according to the present application;
[0015] Figure 2 This is a schematic diagram of the format of a pairing request data packet according to one embodiment of the present application;
[0016] Figure 3 This is a schematic diagram of the format of a pairing consent data packet according to one embodiment of the present application;
[0017] Figure 4 A schematic diagram of an embodiment of a mesh network system of the present application;
[0018] Figure 5 A schematic diagram of an embodiment of a relay node of the present application;
[0019] Figure 6 This is a schematic diagram of an embodiment of a node to be paired in the present application;
[0020] Figure 7 for Figure 6 The node to be paired joins Figure 4 A flowchart of a node pairing method according to a first embodiment of a mesh network system;
[0021] Figure 8 is a flow chart of a second embodiment of the node pairing method according to the present application;
[0022] Figure 9 1. A schematic diagram of the format of a pairing rejection packet according to an embodiment of the present application;
[0023] Figure 10 for Figure 6 The node to be paired joins Figure 4 A flowchart of a node pairing method according to a second embodiment of a mesh network system;
[0024] Figure 11 Flowchart of a third embodiment of the node pairing method according to the present application;
[0025] Figure 12 Flowchart of a fourth embodiment of the node pairing method according to the present application;
[0026] Figure 13 Flowchart of the first embodiment of the data transmission method according to the present application;
[0027] Figure 14 A schematic diagram of the format of a data packet generated by a site according to an embodiment of the present application;
[0028] Figure 15 A schematic diagram of another embodiment of the mesh network system of the present application;
[0029] Figure 16 A schematic diagram of another embodiment of a relay node of the present application;
[0030] Figure 17 for Figure 15 A flow chart of a data transmission method according to an embodiment of the present invention;
[0031] Figure 18 for Figure 15 A flow chart of another embodiment of a data transmission method for a third-level node transmitting a data packet to an access point;
[0032] Figure 19 Flowchart of a second embodiment of the data transmission method according to the present application;
[0033] Figure 20 for Figure 15 A flow chart of a data transmission method according to an embodiment of the present invention; and
[0034] Figure 21 for Figure 15 A flow chart of a data transmission method according to another embodiment of the present invention is provided. DETAILED DESCRIPTION
[0035] The following will illustrate the embodiments of the present application with reference to the accompanying drawings. In these drawings, the same reference numerals represent the same or similar components or method processes.
[0036] It must be understood that the words "comprise", "include" and the like used in this specification are used to indicate the existence of specific technical features, values, method steps, operation processing and / or components, but do not exclude the addition of more technical features, values, method steps, operation processing, components, or any combination of the above.
[0037] It should be understood that when a component is described as being “connected” or “coupled” to another component, it can be directly connected or coupled to the other component, and intervening components may be present. Conversely, when a component is described as being “directly connected” or “directly coupled” to another component, there are no intervening components.
[0038] Before explaining the relay node, mesh network system and data transmission method of the present application, the terminology of the present application is explained first. The "mesh network system" described in the present application refers to a mesh communication network formed by communication between network nodes; "network node" refers to a computing device (for example: workstation, server, terminal device, network device) connected to a network with an independent address and the function of transmitting or receiving data, wherein a network node with a relay function is called a relay node, and a network node without a relay function is called a station (STA). All network nodes can provide the STA function of working as a station in the infrastructure mode defined by the 802.11 protocol. Therefore, the relay node can execute different programs and play the role of a station. It should be noted that for the relay node, the MAC address used for the STA function and the relay function can be the same or different; and the access point (Access Point) A network node / relay node directly connected to an access point (AP) is called a root node; a network node connected to an access point through a root node is called a second-level node, a network node connected to an access point through a second-level node is called a third-level node, and so on; of two directly connected network nodes, the upper-level network node is called the parent node of the lower-level network node, and the lower-level network node is called the child node of the upper-level network node; each network node has one and only one parent node, and a parent node can have many child nodes. The root node is directly connected to an access point, and the access point can be considered the parent node of the root node; a network node with a higher level than that of a certain network node is called the subordinate node of this network node (for example, the third, fourth, and fifth-level nodes are all subordinate nodes of the second-level node); all subordinate nodes of a certain network node that need to pass through to communicate with the access point are called descendant nodes of this network node. In addition, the "assistance table" described in this application refers to the information stored in each relay node that records the relevant information of its descendant nodes (for example, MAC addresses or MAC address variants, where the MAC address variants are the result of a hash calculation or the result of a CRC calculation). The following embodiments illustrate the assistance table stored in each relay node to record the MAC addresses of its descendant nodes. Furthermore, the "MAC address of an access point" described in this application refers to the Basic Service Set Identifier (BSSID) of the access point.
[0039] During the construction of the mesh network system, each relay node can construct the contents of its own stored assistance table, and each network node can confirm its own parent node. Therefore, before describing the relay nodes, mesh network system, and data transmission method of the present application, it is necessary to first describe the construction process of the mesh network system.
[0040] During the construction of the mesh network system, a network node serving as a root node may establish a connection with an access point through an existing pairing connection method, which will not be described here. A network node serving as a non-root node (hereinafter referred to as a node to be paired) may confirm its parent node and join the mesh network system through the node pairing method described below, and enable each relay node of the mesh network system to update the contents of its own stored assistance table.
[0041] See also Figure 1 , which is a flow chart of the first embodiment of the node pairing method according to the present application. The node pairing method includes: the node to be paired sends a pairing request data packet to its parent node and starts a timer, wherein the sending address of the pairing request data packet is the MAC address of the node to be paired and the receiving address is the MAC address of the parent node of the node to be paired, and the parent node of the node to be paired is a relay node of the mesh network system (step 110); after the relay node receives the pairing request data packet and determines that it can provide relay service for the node to be paired, it adds the MAC address of the node to be paired to the assistance table stored in itself, and determines whether it is a root node, wherein the assistance table includes the MAC addresses of all subordinate nodes for which it provides relay service (step 120); if it is determined to be a non-root node, the relay node modifies the receiving address of the received pairing request data packet to the root node. After changing the MAC address to that of its own parent node, it forwards the packet upstream (step 130); if it is determined to be a root node, the relay node returns a pairing agreement packet, wherein the receiving address of the pairing agreement packet is the MAC address of the node to be paired and the sending address is its own MAC address (step 140); upon receiving the pairing agreement packet, the relay node confirms that the sending address of the pairing agreement packet is the MAC address of its parent node and that the receiving address exists in its own stored assistance table, and then changes the sending address of the pairing agreement packet to its own MAC address and forwards it downstream until the pairing agreement packet is forwarded to the node to be paired (step 150); if the timer does not time out, the node to be paired receives the pairing agreement packet, which means that the pairing is successful (step 160). It should be noted that when the parent node of the node to be paired is a root node, steps 130 and 150 can be omitted.
[0042] The formats of the pairing request data packet and the pairing consent data packet may be data frames, management frames, control frames, or other custom types of frames defined by the 802.11 protocol, and the same data packet may be used to represent multiple meanings or multiple types of data packets may be used.
[0043] In one embodiment, the format of the pairing request data packet may be a null data frame defined using the 802.11 protocol, wherein the null data frame includes: a frame control field, a continuation field, an address 1 field, an address 2 field, an address 3 field, a sequence control field, and a frame check sequence field; specifically, in step 110, the node to be paired sends a pairing request data packet, including: the node to be paired fills the address 1 field in the null data frame with the MAC address of the parent node of the node to be paired, fills the address 2 field with the MAC address of the node to be paired, sets the first preset bit of the address 3 field to a first preset value to define the null data frame as a handshake frame, sets multiple second preset bits of the address 3 field to a third preset value to define the type of the handshake frame as a pairing request, and generates and sends the pairing request data packet. In one example, the first preset bit of the address 3 field may be bit0, the first preset value may be 1 (ie, bit0 is 1), the multiple second preset bits of the address 3 field may be bit1 to bit4, the third preset value may be 0 (ie, bit1 to bit4 are all 0), and the other bits of the address 3 field (ie, bit5 to bit47) may be reserved for encoding so that the handshake frame carries pairing related information (such as Figure 2 As shown, Figure 2 (Figure 2 is a schematic diagram of the format of an embodiment of a pairing request packet according to the present application). Note that although the 802.11 protocol defines an address where bit 0 is set to 1 as a multicast address, null data frames do not actually include a multicast address. Therefore, utilizing this feature allows both hardware and software to easily identify the packet as defined in this application.
[0044] In addition, the format of the pairing agreement packet may also be an empty data frame defined using the 802.11 protocol; specifically, if the relay node that receives the pairing request packet is a root node, the pairing agreement packet is returned in step 140, which also includes: the root node fills the address 1 field in the empty data frame with the MAC address of the node to be paired, fills the address 2 field with the MAC address of the root node, sets the first preset bit of the address 3 field to the first preset value to define the empty data frame as a handshake frame, and sets the multiple second preset bits of the address 3 field to the fourth preset value to define the type of the handshake frame as pairing agreement, so as to generate and return the pairing agreement packet. In one example, the first preset bit of the address 3 field may be bit0, the first preset value may be 1 (i.e., bit0 is 1), the multiple second preset bits of the address 3 field may be bit1 to bit4, the fourth preset value may be 1 (i.e., bits 1 to bit3 are all 0, and bit4 is 1), and the other bits of the address 3 field (i.e., bit5 to bit47) may be reserved for encoding so that the handshake frame carries pairing related information (such as Figure 3 As shown, Figure 3 FIG. 1 is a schematic diagram of the format of a pairing consent data packet according to an embodiment of the present application).
[0045] More specifically, the following pairing Figures 4 to 7 By way of example Figure 1 An illustration of the node pairing method shown.
[0046] See also Figure 4 , which is a schematic diagram of an embodiment of the mesh network system of the present application. Figure 4 As shown, the mesh network system 100 includes an access point 200 and multiple network nodes. The multiple network nodes can communicate with each other through the mesh network. The multiple network nodes include multiple relay nodes (i.e., relay node 300a, relay node 300b, and relay node 300c). Relay node 300a serves as a root node for communication with access point 200, the parent node of relay node 300c is relay node 300b, and the parent node of relay node 300b is relay node 300a.
[0047] See also Figure 5 , which is a schematic diagram of an embodiment of a relay node of the present application. Relay nodes 300a, 300b, and 300c may each include: a storage module 410, a receiving module 420, a processing module 430, a data packet generation module 440, an address translation module 450, and a sending module 460. The receiving module 420 is connected to the storage module 410, the processing module 430 is connected to the receiving module 420 and the storage module 410, the data packet generation module 440 is connected to the processing module 430, the address translation module 450 is connected to the storage module 410 and the processing module 430, and the sending module 460 is connected to the address translation module 450 and the data packet generation module 440. The storage module 410 is used to store the assistance table. Among them, the receiving module 420, the processing module 430, the data packet generation module 440, the address conversion module 450 and the sending module 460 can be implemented as software, hardware and appropriate combinations thereof; the software module can be located in a storage medium in this field and perform its work through a processor. For example, if the above modules are all software modules, they can be located in the same processor, or in different processors in any combination.
[0048] See also Figure 6, which is a schematic diagram of an embodiment of a node to be paired in the present application. The node to be paired 500 is a node that wants to join the mesh network system 100. The node to be paired 500 includes: a data packet generation module 510, a sending module 520, a receiving module 530 and a processing module 540. The sending module 520 is connected to the data packet generation module 510, and the processing module 540 is connected to the sending module 520 and the receiving module 530. The processing module 540 includes a timer 542. Among them, the data packet generation module 510, the sending module 520, the receiving module 530 and the processing module 540 can be implemented as software, hardware and their appropriate combination; the software module can be located in a storage medium in this field and perform its work through a processor. For example, if the above modules are all software modules, they can be located in the same processor, or in different processors in any combination.
[0049] See also Figures 4 to 7 , Figure 7 for Figure 6 The node to be paired joins Figure 4 Flowchart of the node pairing method of the first embodiment of the mesh network system. Figure 6 500 nodes to be paired want to join Figure 4 In the mesh network system 100, the node to be paired 500 generates a pairing request packet via the packet generation module 510 (step 610). The sending module 520 sends the pairing request packet to the relay node 300c (step 620), and starts the timer 542 (step 630). The parent node of the node to be paired 500 is the relay node 300c. The sending address of the pairing request packet is the MAC address of the node to be paired 500, and the receiving address is the MAC address of the relay node 300c. Since the receiving address of the pairing request packet is the MAC address of the relay node 300c, the relay node 300c receives the pairing request packet via the receiving module 420. After the processing module 430 of the relay node 300c determines that it can provide relay services for the node to be paired 500, based on the fact that the sending address of the pairing request packet is the MAC address of the node to be paired 500, the MAC address of the node to be paired 500 is added to the assistance table stored in the storage module 410 (step 640). The processing module 430 of the relay node 300c then determines whether the relay node 300c is a root node. If the processing module 430 of the relay node 300c determines that it is not a root node, the relay node 300c modifies the receiving address of the received pairing request packet from the MAC address of the relay node 300c to the MAC address of the relay node 300b through the address translation module 450 (step 650). The sending module 460 then transmits the pairing request packet with the modified receiving address by the address translation module 450 to the relay node 300b (step 660).
[0050] Because the receiving address of the pairing request packet is the MAC address of relay node 300b, relay node 300b receives the pairing request packet via receiving module 420. After the processing module 430 of relay node 300b determines that it can provide relay services for node 500 to be paired, it adds the MAC address of node 500 to the assistance table stored in storage module 410 based on the sending address of the pairing request packet being the MAC address of node 500 to be paired (step 670). If the processing module 430 of relay node 300b determines that it is a non-root node, relay node 300b modifies the receiving address of the received pairing request packet from the MAC address of relay node 300b to the MAC address of relay node 300a via address translation module 450 (step 680). The sending module 460 then transmits the pairing request packet, with the receiving address modified by address translation module 450, to relay node 300a (step 690).
[0051] Because the receiving address of the pairing request packet is the MAC address of the relay node 300a, the relay node 300a receives the pairing request packet via the receiving module 420. After the processing module 430 of the relay node 300a determines that it can provide relay services for the node to be paired 500, based on the fact that the sending address of the pairing request packet is the MAC address of the node to be paired 500, the MAC address of the node to be paired 500 is added to the assistance table stored in the storage module 410 (step 710). When the processing module 430 of the relay node 300a determines that it is the root node, the relay node 300a generates a pairing agreement packet via the packet generation module 440 (step 720). The sending module 460 transmits the pairing agreement packet generated by the packet generation module 440 to the relay node 300b (step 730). The receiving address of the pairing agreement packet is the MAC address of the node to be paired 500, and the sending address is the MAC address of the relay node 300a.
[0052] Since the sending address of the pairing consent packet is the MAC address of the relay node 300a, and the receiving address exists in the assistance table stored in the storage module 410 of the relay node 300b, the relay node 300b receives the pairing consent packet through the receiving module 420, and modifies the sending address of the pairing consent packet to the MAC address of the relay node 300b through the address conversion module 450 (step 740), and the sending module 460 sends the pairing consent packet with the sending address modified by the address conversion module 450 to the relay node 300c (step 750). Since the sending address of the pairing consent packet is the MAC address of the relay node 300b, and the receiving address exists in the assistance table stored in the storage module 410 of the relay node 300c, the relay node 300c receives the pairing consent packet through the receiving module 420, and modifies the sending address of the pairing consent packet to the MAC address of the relay node 300c through the address conversion module 450 (step 760), and the sending module 460 modifies the sending address of the pairing consent packet to the node to be paired 500 through the address conversion module 450 (step 770).
[0053] Since the receiving address of the pairing agreement packet is the MAC address of the node to be paired 500, the node to be paired 500 receives the pairing agreement packet through the receiving module 530. If the timer 542 has not timed out when the receiving module 530 receives the pairing agreement packet, it means that the pairing is successful (step 780) (that is, the node to be paired 500 successfully joins the mesh network system 100).
[0054] See also Figure 8 , which is a flow chart of the second embodiment of the node pairing method according to the present application. In addition to the above steps 110 to 160, the node pairing method may also include: when the relay node that receives the pairing request data packet determines that it cannot provide relay service for the node to be paired, it returns a pairing rejection data packet, wherein the receiving address of the pairing rejection data packet is the MAC address of the node to be paired and the sending address is its own MAC address (step 170); when the relay node that receives the pairing rejection data packet confirms that the sending address of the pairing rejection data packet is the MAC address of its parent node and the receiving address exists in its own stored assistance table, it deletes the MAC address of the node to be paired from its own stored assistance table, and modifies the sending address of the received pairing rejection data packet to its own MAC address and then forwards it downlink until the pairing rejection data packet is forwarded to the node to be paired (step 180); and if the timer does not time out, the node to be paired receives the pairing rejection data packet, which means that the pairing fails (step 190). It should be noted that when it is determined that it cannot provide relay service for the node to be paired and the relay node that returns the pairing rejection data packet is the parent node of the node to be paired, step 180 can be omitted.
[0055] The format of the pairing rejection packet may be a data frame, management frame, control frame, or other custom-defined frame defined by the 802.11 protocol. In one embodiment, the format of the pairing rejection packet may also be an empty data frame defined by the 802.11 protocol. Specifically, when the node receiving the pairing request packet determines that it cannot provide relay services for the node to be paired, it returns the pairing rejection packet. The method also includes: the relay node receiving the pairing request packet fills the address 1 field in the empty data frame with the MAC address of the node to be paired, fills the address 2 field with its own MAC address, sets the first preset bit of the address 3 field to a first preset value to define the empty data frame as a handshake frame, and sets multiple second preset bits of the address 3 field to a second preset value to define the type of the handshake frame as pairing rejection, thereby generating and returning the pairing rejection packet. In one example, the first preset bit of the address 3 field may be bit0, the first preset value may be 1, the multiple second preset bits of the address 3 field may be bit1 to bit4, the second preset value may be 2 (ie, bit1, bit2 and bit4 are all 0, bit3 is 1), and the other bits of the address 3 field (ie, bit5 to bit47) may be reserved for encoding so that the handshake frame carries pairing related information (such as Figure 9 As shown, Figure 9 FIG. 4 is a schematic diagram of the format of a pairing rejection data packet according to an embodiment of the present application.
[0056] In one embodiment, situations in which a relay node determines that it cannot provide relay services for a node to be paired may include but are not limited to: (1) the storage capacity of the relay node's assistance table has reached an upper limit and it can no longer provide relay services for more network nodes; (2) the relay node turns off the relay service function; (3) the relay node is attempting to switch to connect to other network nodes; (4) the relay node has left the mesh network system.
[0057] It should be noted that the relay node determined in step 170 to be unable to provide relay service for the node to be paired may be a relay node serving as a root node or a non-root node.
[0058] More specifically, the following pairing Figures 4 to 6 、 Figure 10 By way of example Figure 8 An illustration of the node pairing method shown.
[0059] See also Figures 4 to 6 、 Figure 10 , Figure 10 for Figure 6 The node to be paired joins Figure 4 Flowchart of the node pairing method of the second embodiment of the mesh network system. Figure 10 and Figure 7The difference lies in the process after the relay node 300b determines that it cannot provide relay service for the node to be paired 500, so the process description of step 610 to step 660 is not repeated. Figure 10 As shown, after the relay node 300b determines that it cannot provide relay service for the node to be paired 500 through the processing module 430, it generates a pairing rejection data packet through the data packet generation module 440 (step 790), and sends the pairing rejection data packet to the relay node 300c through the sending module 460 (step 810), wherein the receiving address of the pairing rejection data packet is the MAC address of the node to be paired 500 and the sending address is the MAC address of the relay node 300b. The relay node 300c confirms through the processing module 430 that the sending address of the pairing rejection data packet is the MAC address of its parent node, and after the receiving address exists in the assistance table stored in the storage module 410, the MAC address of the node to be paired is deleted from the assistance table stored in the storage module 410 (step 820); then, the relay node 300c modifies the sending address of the received pairing rejection data packet to the MAC address of the relay node 300c through the address conversion module 450 (step 830); thereafter, the relay node 300c sends the pairing rejection data packet with the sending address modified by the address conversion module 450 to the node to be paired 500 through the sending module 460 (step 840).
[0060] Since the receiving address of the pairing rejection packet is the MAC address of the node to be paired 500, the node to be paired 500 receives the pairing rejection packet through the receiving module 530. If the timer 542 has not timed out when the receiving module 530 receives the pairing rejection packet, it means that the pairing has failed (step 850) (that is, the node to be paired 500 has not successfully joined the mesh network system 100).
[0061] See also Figure 11 , which is a flowchart of a third embodiment of the node pairing method according to the present application. In addition to the above steps 110 to 190, the node pairing method may further include: if the timer times out and the node to be paired does not receive a pairing rejection packet or a pairing success packet, it means that the pairing has failed (step 192).
[0062] In one embodiment, see Figure 12 , which is a flowchart of the fourth embodiment of the node pairing method according to the present application; before step 110, the node pairing method may also include: setting the node to be paired to only receive data packets of various types that meet the filtering conditions, wherein the filtering conditions are that the sending address of each type of data packet is the MAC address of the parent node of the node to be paired and the receiving address is the MAC address of the node to be paired (step 102).
[0063] In one embodiment, see Figure 12Before step 102, the node pairing method may further include: the node to be paired extracts the signal strength (Received Signal Strength Indication, RSSI) between each relay node and the access point in the mesh network system and obtains the signal strength between the node to be paired and each relay node from multiple beacon data packets or multiple probe response data packets obtained by the scanning program (step 104); and the node to be paired selects a relay node as its parent node based on the signal strength between each relay node and the access point and the signal strength between the node to be paired and each relay node (step 106).
[0064] In one example, the scanning procedure involves the node to be paired actively detecting and searching for relay nodes in the mesh network system. Specifically, the node to be paired can sequentially send probe request frames on its supported channels. The probe request frames do not carry an SSID but may include a vendor-defined information element (Vendor IE), such as a BSSID and information requesting assistance, to detect all available relay nodes in the surrounding area. Relay nodes that receive the probe request frames will send probe response frames to the node to be paired. The probe response frames may include the BSSID, the signal strength between the node and the access point, the MAC address of the root node to which the node is connected, the level of the node in the mesh network system, the number of downstream nodes providing relay services, information on the assistance that can be provided, and other vendor-defined information elements. Therefore, through the scanning procedure, the node to be paired can receive the probe response frames sent by each relay node, obtain the signal strength between the node and each relay node, and the signal strength between each relay node and the access point, and then select a relay node as its parent node. For example, the node to be paired first selects the relay node with the best signal strength between it and its parent node as its parent node. However, if the signal strength between the selected relay node and its parent node is poor / the signal strength between the nodes on its uplink path is poor, the node to be paired will instead select the relay node with the second best signal strength as its parent node, and so on, until a suitable relay node is selected as its parent node.
[0065] In another example, the scanning procedure is for the node to be paired to passively receive beacon frames sent by each relay node in the mesh network system. Specifically, each relay node in the mesh network system periodically broadcasts beacon frames, and the node to be paired can listen for beacon frames on each channel it supports. The beacon frame may include vendor-defined information elements such as the BSSID, the signal strength between itself and the access point, the MAC address of the root node to which it is connected, the level of the node in the mesh network system, the number of downstream nodes for which it provides relay services, and information on assistance that can be provided. Therefore, through the above scanning procedure, the node to be paired can receive the probe response frames sent by each relay node, obtain the signal strength between itself and each relay node, and the signal strength between each relay node and the access point, and then select a relay node as its parent node.
[0066] pass Figure 1 、 Figure 8 、 Figure 11 and Figure 12 The node pairing method can enable a non-root network node (i.e., a node to be paired) to confirm its own parent node and join the mesh network system, and enable each relay node of the mesh network system to update the content of its own stored assistance table to construct a mesh network system.
[0067] See also Figure 13 , which is a flow chart of the first embodiment of the data transmission method according to the present application. The data transmission method includes: the software layer of the station generates a data packet, wherein the sending address of the data packet is the MAC address of the station and the receiving address is the MAC address of the access point (step 1010); the hardware layer of the station modifies the receiving address of the data packet to the MAC address of its own parent node and then sends it (step 1020); the relay node that receives the data packet returns an ACK frame, modifies the receiving address of the data packet to the MAC address of its own parent node, and then forwards it uplink until the data packet is forwarded to the access point (step 1030); and after receiving the data packet, the access point returns an ACK frame, parses the data packet, and determines that data from the station is received based on the sending address of the data packet (step 1040).
[0068] The format of the data packet generated by the software layer of the station may be a data frame, a management frame, a control frame defined by the 802.11 protocol, or other custom-defined frames.
[0069] In one embodiment, the format of the data packet generated by the software layer of the station may be a data frame defined by the 802.11 protocol, wherein the data frame includes: a frame control field, a continuation field, an address 1 field, an address 2 field, an address 3 field, a sequence control field, an address 4 field, a quality of service (QoS) control field, a high throughput (HT) control field, a frame body field, and a frame check sequence field (e.g., Figure 14 As shown, Figure 14 (a schematic diagram of the format of an embodiment of a data packet generated by a station according to the present application); specifically, the station's software layer populates the Address 1 field of the data frame with the access point's MAC address and the Address 2 field with its own MAC address to generate the data packet, but this embodiment is not intended to limit the present application. For example, the station's software layer populates the Address 3 field of the data frame with the access point's MAC address and the Address 4 field with its own MAC address to generate the data packet (i.e., the Address 3 field is populated with the receiving address and the Address 4 field is populated with the sending address).
[0070] In one embodiment, considering the security of data transmission, the data transmission method may encrypt the data packet at the station and decrypt the data packet at the access point. Specifically, when the encryption and decryption method adopts the Temporal Key Integrity Protocol (TKIP), the Counter Mode Cipher Block Chaining Message Authentication Protocol (CCMP), or the Wired Equivalent Privacy (WEP), step 1010 may include: the software layer of the station generates a data packet and encrypts the data packet, or step 1020 may include: the hardware layer of the station encrypts the data packet, modifies the receiving address of the data packet to the MAC address of its own parent node, and then sends it; step 1040 may include: the access point decrypts the received data packet and, based on the fact that the sending address of the data packet is the MAC address of the station, determines that the data from the station is received. In another embodiment, when TKIP or WEP is used for encryption and decryption, step 1020 may include: the hardware layer of the site modifies the receiving address of the data packet to the MAC address of its own parent node, encrypts the data packet, and then sends it; step 1040 may include: the access point decrypts the received data packet and, based on the fact that the sending address of the data packet is the MAC address of the site, determines to receive the data from the site.
[0071] In one embodiment, to ensure the accuracy and integrity of data transmission, the data transmission method may employ a cyclic redundancy check (CRC) algorithm to verify data packets. Specifically, step 1020 may include: after the hardware layer of the station modifies the receiving address of the data packet to the MAC address of its own parent node, first performing a CRC calculation on the data packet, then inserting the calculated CRC code into the data packet, and then sending the data packet; step 1030 may include: after the relay node receives the data packet, performing a CRC check on the data packet; if the data packet passes the CRC check, the relay node returns an ACK frame, modifies the receiving address of the received data packet to the MAC address of its own parent node, then performs a CRC calculation on the data packet, inserting the calculated CRC code into the data packet, and then forwarding the data packet uplink until the data packet is forwarded to the access point; step 1040 may include: after the access point receives the data packet, first performing a CRC check on the data packet; if the data packet passes the CRC check, the access point returns an ACK frame, and parses the data packet to obtain data from the station.
[0072] In another embodiment in which a CRC check algorithm is used to check a data packet, step 1020 may include: the hardware layer of the site first performs a CRC calculation on the data packet, fills the calculated CRC code into the data packet, then modifies the receiving address of the data packet to the MAC address of its own parent node, and then sends the data packet; step 1030 may include: the relay node that receives the data packet modifies the receiving address of the data packet to the MAC address of the access point, then performs a CRC check on the data packet, and when the data packet passes the CRC check, returns an ACK frame, modifies the receiving address of the data packet to the MAC address of its own parent node (the data packet retains the original CRC code), and then forwards the data packet uplink until the data packet is forwarded to the access point; step 1040 may include: after receiving the data packet, the access point first performs a CRC check on the data packet, and when the data packet passes the CRC check, returns an ACK frame, and parses the data packet to obtain data from the site.
[0073] In one embodiment, considering the security, correctness and integrity of data transmission, the data transmission method may include simultaneously encrypting and decrypting the data field of the data packet and verifying the data packet using a CRC check algorithm. Figures 15 to 17 The data transmission method is described by way of an embodiment.
[0074] See also Figure 15 , which is a schematic diagram of another embodiment of the mesh network system of the present application. Figure 15As shown, the mesh network system 1000 includes an access point 2000 and multiple network nodes. The multiple network nodes can be interconnected via a tree topology communication method. The multiple network nodes include multiple relay nodes (i.e., relay node 3000a, relay node 3000b, and relay node 3000c). Relay node 3000a serves as a root node for communication with access point 2000, the parent node of relay node 3000c is relay node 3000b, and the parent node of relay node 3000b is relay node 3000a (i.e., relay node 3000a, relay node 3000b, and relay node 3000c are hierarchically connected).
[0075] See also Figure 16 , which is a schematic diagram of another embodiment of a relay node of the present application. Relay nodes 3000a, 3000b, and 3000c can all have relay and STA functions, and may include: a storage module 3010, a filtering and return module 3020, an address translation module 3030, a sending module 3040, an encryption and decryption module 3050, and a software module 3060. The filtering and return module 3020 is connected to the storage module 3010, the address translation module 3030 is connected to the filtering and return module 3020, the sending module 3040 is connected to the address translation module 3030, and the encryption and decryption module 3050 is connected to the address translation module 3030, the filtering and return module 3020, and the software module 3060. The storage module 3010 is used to store an assistance table. The contents of the assistance table stored in the storage module 3010 of relay node 3000a include the MAC address of relay node 3000b and the MAC address of relay node 3000c, and the contents of the assistance table stored in the storage module 3010 of relay node 3000b include the MAC address of relay node 3000c. Furthermore, the filtering and return module 3020, the address translation module 3030, the sending module 3040, and the encryption and decryption module 3050 can be implemented as software, hardware, or any suitable combination thereof. In this embodiment, the filtering and return module 3020, the address translation module 3030, the sending module 3040, and the encryption and decryption module 3050 are located at the hardware layer, while the software module 3060 is located at the software layer. However, this embodiment is not intended to limit the present application.
[0076] See also Figures 15 to 17 , Figure 17 for Figure 15 A flow chart of a data transmission method according to an embodiment of the present invention is provided, wherein the third-level node is a relay node 3000c, the relay node 3000c plays the role of a station, and the relay node 3000a and the relay node 3000b can provide relay services for the relay node 3000c.
[0077] Relay node 3000c generates a data packet through software module 3060, where the receiving address of the data packet is the MAC address of access point 2000 and the sending address is the MAC address of relay node 3000c (step 1110). Relay node 3000c encrypts the data packet generated by software module 3060 through encryption / decryption module 3050 and sends it to address translation module 3030. Address translation module 3030 then modifies the receiving address of the encrypted data packet to the MAC address of relay node 3000b (step 1120). Then, sending module 3040 performs a CRC calculation on the data packet with the receiving address modified by address translation module 3030, and inserts the calculated CRC code into the data packet (step 1130). The data packet is then sent to relay node 3000b (step 1140).
[0078] Based on the fact that the receiving address of the data packet is the MAC address of relay node 3000b, relay node 3000b receives the data packet through filtering and return module 3020 and performs a CRC check on the data packet (step 1150). When the data packet passes the CRC check, relay node 3000b returns an ACK frame to relay node 3000c (step 1160). In addition, relay node 3000b also determines through filtering and return module 3020 that the data packet needs to be forwarded uplink, causing relay node 3000b to modify the receiving address of the data packet to the MAC address of relay node 3000a through address translation module 3030 (step 1170). Relay node 3000b then performs a CRC calculation on the data packet whose receiving address has been modified by address translation module 3030 through sending module 3040, and inserts the calculated CRC code into the data packet (step 1180). The data packet is then forwarded uplink to relay node 3000a (step 1190).
[0079] Based on the fact that the receiving address of the data packet is the MAC address of relay node 3000a, relay node 3000a receives the data packet through filtering and return module 3020 and performs a CRC check on the data packet (step 1210). If the data packet passes the CRC check, relay node 3000a returns an ACK frame to relay node 3000b (step 1220). Furthermore, relay node 3000a also determines through filtering and return module 3020 that the data packet needs to be forwarded uplink. Therefore, relay node 3000a modifies the receiving address of the data packet to the MAC address of access point 2000 through address translation module 3030 (step 1230). Relay node 3000a then performs a CRC calculation on the data packet whose receiving address has been modified by address translation module 3030, inserts the calculated CRC code into the data packet (step 1240), and then forwards the data packet uplink to access point 2000 (step 1250).
[0080] Based on the fact that the receiving address of the data packet is the MAC address of access point 2000, access point 2000 receives the data packet and performs a CRC check on the data packet (step 1260). When the data packet passes the CRC check, it returns an ACK frame to relay node 3000a (step 1270), decrypts the received data packet, and based on the fact that the sending address of the data packet is the MAC address of relay node 3000c, determines that data is received from relay node 3000c (step 1280).
[0081] See also Figure 15 、 Figure 16 and Figure 18 , Figure 18 for Figure 15 A flow chart of another embodiment of a data transmission method in which a third-level node transmits a data packet to an access point, wherein the third-level node is a relay node 3000c, the relay node 3000c plays the role of a site, and the relay node 3000a and the relay node 3000b can provide relay services for the relay node 3000c.
[0082] Relay node 3000c generates a data packet via software module 3060, where the receiving address of the data packet is the MAC address of access point 2000 and the sending address is the MAC address of relay node 3000c (step 1110). Relay node 3000c encrypts the data packet generated by software module 3060 via encryption / decryption module 3050 and sends it to filtering and return module 3020. Filtering and return module 3020 then calculates a CRC on the encrypted data packet and inserts the calculated CRC code into the data packet (step 1121). Address translation module 3030 then modifies the receiving address of the data packet to the MAC address of relay node 3000b (step 1131). The data packet is then sent to relay node 3000b via sending module 3040 (step 1141).
[0083] Based on the fact that the receiving address of the data packet is the MAC address of relay node 3000b, relay node 3000b receives the data packet and modifies the receiving address of the data packet to the MAC address of access point 2000 via address translation module 3030. Relay node 3000b then performs a CRC check on the data packet via filtering and return module 3020 (step 1151). When the data packet passes the CRC check, it returns an ACK frame to relay node 3000c (step 1161). Furthermore, relay node 3000b determines via filtering and return module 3020 that the data packet needs to be forwarded uplink, causing relay node 3000b to modify the receiving address of the data packet to the MAC address of relay node 3000a via address translation module 3030 (step 1171), and forwards the data packet uplink to relay node 3000a via sending module 3040 (step 1181).
[0084] Based on the fact that the receiving address of the data packet is the MAC address of relay node 3000a, relay node 3000a receives the data packet and modifies the receiving address of the data packet to the MAC address of access point 2000 via address translation module 3030. Relay node 3000a then performs a CRC check on the data packet via filtering and return module 3020 (step 1211). If the data packet passes the CRC check, relay node 3000a returns an ACK frame to relay node 3000b (step 1221). Furthermore, relay node 3000a determines via filtering and return module 3020 that the data packet needs to be forwarded uplink. Relay node 3000a then modifies the receiving address of the data packet to the MAC address of its own parent node via address translation module 3030 (although this step can be omitted since relay node 3000a's parent node is access point 2000). Relay node 3000a then forwards the data packet uplink to access point 2000 via sending module 3040 (step 1241).
[0085] Based on the fact that the receiving address of the data packet is the MAC address of access point 2000, access point 2000 receives the data packet and performs a CRC check on the data packet (step 1260). When the data packet passes the CRC check, it returns an ACK frame to relay node 3000a (step 1270), decrypts the received data packet, and based on the fact that the sending address of the data packet is the MAC address of relay node 3000c, determines that data is received from relay node 3000c (step 1280).
[0086] See also Figure 19, which is a flow chart of a second embodiment of a data transmission method according to the present application. The data transmission method includes: an access point sending a data packet, wherein the receiving address of the data packet is the MAC address of the station and the sending address is the MAC address of the access point (step 2010); a relay node receiving the data packet based on its own stored assistance table having the MAC address of the station and the sending address of the data packet being the MAC address of its own parent node, returning an ACK frame to its own parent node, and then forwarding the data packet downlink until the data packet is forwarded to the station, wherein the assistance table includes the MAC addresses of all lower-level nodes for which it provides relay services (step 2020); and a hardware layer of the station receiving the data packet based on the sending address of the data packet being the MAC address of its own parent node and the receiving address being the MAC address of the station, returning an ACK frame, and then modifying the sending address of the received data packet to the MAC address of the access point and transmitting the ACK frame to the software layer, so that the software layer determines that data from the access point is received based on the sending address of the data packet (step 2030).
[0087] The format of the data packet sent by the access point may be a data frame, a management frame, a control frame defined by the 802.11 protocol, or other custom-defined frames.
[0088] In one embodiment, the format of the data packet sent by the access point may be a data frame defined by the 802.11 protocol, such as Figure 14 Specifically, the access point fills the Address 1 field in the data frame with the station's MAC address and the Address 2 field with its own MAC address to generate the data packet, but this embodiment is not intended to limit the present application. For example, the access point fills the Address 3 field in the data frame with the station's MAC address and the Address 4 field with its own MAC address to generate the data packet (i.e., the Address 3 field is filled with the receiving address and the Address 4 field is filled with the sending address).
[0089] In one embodiment, to ensure data transmission security, the data transmission method may encrypt a data packet at the access point and decrypt the data packet at the station. Specifically, step 2010 may include: the access point encrypts the data packet and then sends it. Step 2030 may include: the station's hardware layer decrypts the data packet, modifies the data packet's sending address to the access point's MAC address, and then transmits the data packet to the software layer, so that the software layer determines whether to receive data from the access point based on the data packet's sending address. In another embodiment, step 2010 may include: the access point encrypts the data packet and then sends it. Step 2030 may include: the station's hardware layer modifies the data packet's sending address to the access point's MAC address, and then transmits the data packet to the software layer. The software layer decrypts the data packet and determines whether to receive data from the access point based on the data packet's sending address.
[0090] In one embodiment, to ensure the correctness and integrity of data transmission, the data transmission method may use a CRC check algorithm to check the data packet. Specifically, step 2010 may include: after the access point performs CRC calculation on the data packet, fills the calculated CRC code into the data packet, and then sends the data packet; step 2020 may include: the relay node that receives the data packet performs CRC check on the data packet, when the data packet passes the CRC check, the relay node returns an ACK frame, modifies the sending address of the received data packet to its own MAC address, then performs CRC calculation on the data packet, fills the calculated CRC code into the data packet, and then forwards it downlink; step 2030 may include: the hardware layer of the station performs CRC check on the data packet, when the data packet passes the CRC check, the hardware layer returns an ACK frame, modifies the sending address of the received data packet to the MAC address of the access point, and then transmits it to the software layer, so that the software layer determines whether to receive data from the access point based on the sending address of the data packet.
[0091] In another embodiment in which a CRC check algorithm is used to check a data packet, step 2010 may include: after the access point performs CRC calculation on the data packet, it fills the calculated CRC code into the data packet and then sends the data packet; step 2020 may include: the relay node that receives the data packet performs CRC check on the data packet; when the data packet passes the CRC check, the relay node returns an ACK frame and modifies the sending address of the data packet to its own MAC address (the data packet retains the original CRC code) before forwarding it downlink; step 2030 may include: the hardware layer of the station modifies the sending address of the data packet to the MAC address of the access point and then performs CRC check on the data packet; when the data packet passes the CRC check, the hardware layer of the station returns an ACK frame and transmits the data packet that passes the CRC check to the software layer, so that the software layer determines whether to receive data from the access point based on the sending address of the data packet.
[0092] In one embodiment, considering the security, correctness and integrity of data transmission, the data transmission method may include simultaneously encrypting and decrypting the data field of the data packet and verifying the data packet using a CRC check algorithm. Figure 15 、 Figure 16 and Figure 19 The data transmission method is described by way of an embodiment.
[0093] Please refer to the Figure 15 、 Figure 16 and Figure 20 , Figure 20 for Figure 15Flowchart of a data transmission method according to an embodiment of the present invention, wherein the third-level node is a relay node 3000c, and the relay node 3000c plays the role of a station. The relay node 3000a can provide relay services for the relay node 3000b and the relay node 3000c (i.e., the content of the assistance table of the relay node 3000a includes the MAC address of the relay node 3000b and the MAC address of the relay node 3000c), and the relay node 3000b can provide relay services for the relay node 3000c (i.e., the content of the assistance table of the relay node 3000b includes the MAC address of the relay node 3000c).
[0094] Access point 2000 generates a data packet, encrypts the data packet, performs CRC calculation on the data packet, and fills the calculated CRC code into the data packet (step 2110), and then sends the data packet to relay node 3000a (step 2120), wherein the receiving address of the data packet is the MAC address of relay node 3000c and the sending address is the MAC address of access point 2000.
[0095] Relay node 3000a, based on its stored assistance table, has the MAC address of relay node 3000c and the MAC address of the data packet. Relay node 3000a receives the data packet through filtering and return module 3020 and performs a CRC check on the data packet (step 2130). If the data packet passes the CRC check, it returns an ACK frame to access point 2000 (step 2140). Furthermore, relay node 3000a, through filtering and return module 3020, determines that the data packet needs to be forwarded downlink. Relay node 3000a, through address translation module 3030, modifies the data packet's send address to the MAC address of relay node 3000a (step 2150). Relay node 3000a, through sending module 3040, performs a CRC calculation on the data packet, whose send address has been modified by address translation module 3030, and inserts the calculated CRC code into the data packet (step 2160). Relay node 3000a then sends the data packet to relay node 3000b (step 2170).
[0096] Relay node 3000b, based on its stored assistance table, has the MAC address of relay node 3000c and the data packet's sending address is the MAC address of relay node 3000a. Relay node 3000b receives the data packet through filtering and return module 3020 and performs a CRC check on the data packet (step 2180). If the data packet passes the CRC check, it returns an ACK frame to relay node 3000a (step 2190). Furthermore, relay node 3000b determines through filtering and return module 3020 that the data packet needs to be forwarded downlink. Relay node 3000b modifies the data packet's sending address to the MAC address of relay node 3000b through address translation module 3030 (step 2210). Relay node 3000b then performs a CRC calculation on the data packet, whose sending address has been modified by address translation module 3030, through sending module 3040, and inserts the calculated CRC code into the data packet (step 2220). The data packet is then sent to relay node 3000c (step 2230).
[0097] Relay node 3000c receives the data packet via filtering and return module 3020, based on the fact that the sending address of the data packet is the MAC address of relay node 3000b and the receiving address is its own MAC address. Relay node 3000c determines that the data packet does not need to be forwarded and performs a CRC check on the data packet (step 2240). If the data packet passes the CRC check, it returns an ACK frame to relay node 3000b (step 2250). Relay node 3000c decrypts the data packet via encryption and decryption module 3050, and modifies the sending address of the decrypted data packet to the MAC address of access point 2000 via address translation module 3030. The decrypted data packet is then transmitted to software module 3060, which determines that the data packet is received from access point 2000 based on the sending address of the data packet being the MAC address of access point 2000 (step 2260).
[0098] Please refer to the Figure 15 、 Figure 16 and Figure 21 , Figure 21 for Figure 15 A flow chart of another embodiment of a data transmission method for transmitting a data packet from an access point to a third-level node, wherein the third-level node is a relay node 3000c, and the relay node 3000c plays the role of a site. The relay node 3000a can provide relay services for the relay node 3000b and the relay node 3000c, and the relay node 3000b can provide relay services for the relay node 3000c.
[0099] Access point 2000 generates a data packet, encrypts the data packet, performs CRC calculation on the data packet, and fills the calculated CRC code into the data packet (step 2110), and then sends the data packet to relay node 3000a (step 2120), wherein the receiving address of the data packet is the MAC address of relay node 3000c and the sending address is the MAC address of access point 2000.
[0100] Relay node 3000a, based on its stored assistance table, has the MAC address of relay node 3000c and the data packet's send address is the MAC address of access point 2000. Relay node 3000a receives the data packet through filtering and return module 3020 and performs a CRC check on the data packet (step 2130). If the data packet passes the CRC check, it returns an ACK frame to access point 2000 (step 2140). Furthermore, relay node 3000a, through filtering and return module 3020, determines that the data packet needs to be forwarded downlink. Relay node 3000a, through address translation module 3030, modifies the data packet's send address to relay node 3000a's MAC address (step 2150), and transmits the data packet to relay node 3000b through transmission module 3040 (step 2161).
[0101] Relay node 3000b, based on its stored assistance table, has the MAC address of relay node 3000c and the data packet's sending address is the MAC address of relay node 3000a. Relay node 3000b receives the data packet through filtering and return module 3020 and performs a CRC check on the data packet (step 2180). The sending address needs to be changed to the MAC address of access point 2000 before the CRC check is performed. If the data packet passes the CRC check, it returns an ACK frame to relay node 3000a (step 2190). Furthermore, relay node 3000b determines through filtering and return module 3020 that the data packet needs to be forwarded downlink. Relay node 3000b then changes the sending address of the data packet to the MAC address of relay node 3000b through address translation module 3030 (step 2210), and transmits the data packet to relay node 3000c through transmission module 3040 (step 2231).
[0102] Relay node 3000c receives the data packet via filtering and return module 3020, based on the fact that the sending address of the data packet is the MAC address of relay node 3000b and the receiving address is its own MAC address. Relay node 3000c determines that the data packet does not need to be forwarded and performs a CRC check on the data packet (step 2240). The CRC check is performed after the sending address is changed to the MAC address of access point 2000. If the data packet passes the CRC check, it transmits an ACK frame back to relay node 3000b (step 2250). Relay node 3000c decrypts the data packet via encryption / decryption module 3050, and, via address translation module 3030, modifies the sending address of the decrypted data packet to the MAC address of access point 2000. The decrypted data packet is then transmitted to software module 3060, which determines that the data packet is received from access point 2000 based on the sending address of the data packet being the MAC address of access point 2000 (step 2260).
[0103] It should be noted that if there is no causal relationship between the above steps, this application does not limit the order of their execution.
[0104] In summary, in the embodiments of the present application, a relay node implements data forwarding based on the conversion of the receiving address or sending address of a data packet. Data forwarding does not involve encryption and decryption of the data packet, and does not require the maintenance of routing table information. The logic is simple, and there are no additional special protocol requirements for the software. This has the advantages of being fast and efficient, and solves the problem of the relatively complex data forwarding process in wireless networks. In addition, because the data packets received or sent by the software layers of the station and access point are no different than when there is no relay node between the station and the access point, the software layers of the station and access point are unaware of the existence of the relay node. Therefore, there is no need for the software layer to make special modifications to the data packets. In addition, the format of the data packets generated by the station or access point can be a data frame, management frame, control frame, or other custom frame type defined by the 802.11 protocol.
[0105] Although the above-described components are included in the drawings of this application, it does not exclude the use of more additional components to achieve better technical effects without violating the spirit of the invention.
[0106] While the present invention is described using the above embodiments, it should be noted that these descriptions are not intended to limit the present invention. On the contrary, the present invention encompasses modifications and similar arrangements that are obvious to those skilled in the art. Therefore, the scope of the claims should be interpreted in the broadest manner to encompass all obvious modifications and similar arrangements.
Claims
1. A data transmission method, characterized in that: The following steps are involved: (A) a software layer of the station generates a data packet, wherein the sending address of the data packet is the MAC address of the station and the receiving address is the MAC address of the access point; (B) The hardware layer of the site modifies the receiving address of the data packet to the MAC address of its own parent node and then sends it; (C) The relay node that receives the data packet sends back an ACK frame, modifies the receiving address of the data packet to the MAC address of its own parent node, and then forwards the data packet upstream until the data packet is forwarded to the access point; and (D) After receiving the data packet, the access point returns an ACK frame, analyzes the data packet, and determines whether to receive data from the station based on the sending address of the data packet.
2. The data transmission method according to claim 1, wherein: The step (A) comprises: The software layer of the site generates the data packet and encrypts the data packet.
3. The data transmission method according to claim 1, wherein: The step (B) comprises: After the hardware layer of the site encrypts the data packet, it modifies the receiving address of the data packet to the MAC address of its own parent node before sending it.
4. The data transmission method according to claim 2 or 3, characterized in that: The step (D) comprises: The access point decrypts the received data packet and determines to receive the data from the station based on the sending address of the data packet being the MAC address of the station.
5. The data transmission method according to claim 1, wherein: The step (B) further includes: performing a cyclic redundancy check algorithm on the data packet; the step (C) further includes: performing a cyclic redundancy check on the received data packet, and returning the ACK frame only when the data packet passes the cyclic redundancy check.
6. A data transmission method, characterized in that: The following steps are involved: (a) The access point sends a data packet, wherein the receiving address of the data packet is the MAC address of the station and the sending address is the MAC address of the access point; (b) The relay node receives the data packet based on the MAC address of the site and the sending address of the data packet is the MAC address of its own parent node based on its own stored assistance table, transmits an ACK frame back to its own parent node, and modifies the sending address of the data packet to its own MAC address before forwarding it downlink until the data packet is forwarded to the site, wherein the assistance table includes the MAC addresses of all lower-level nodes for which it provides relay services; and (c) The hardware layer of the station receives the data packet based on the fact that the sending address of the data packet is the MAC address of its own parent node and the receiving address is the MAC address of the station, returns an ACK frame, modifies the sending address of the received data packet to the MAC address of the access point, and then transmits it to the software layer, so that the software layer determines that data is received from the access point based on the sending address of the data packet.
7. The data transmission method according to claim 6, characterized in that: The step (a) comprises: The access point encrypts the data packet and then sends it.
8. The data transmission method according to claim 7, characterized in that: The step (c) comprises: After the hardware layer of the site decrypts the data packet, it modifies the sending address of the data packet to the MAC address of the access point, and then transmits it to the software layer, so that the software layer determines whether to receive the data from the access point based on the sending address of the data packet.
9. The data transmission method according to claim 7, wherein: The step (c) comprises: The hardware layer of the station modifies the sending address of the received data packet to the MAC address of the access point and then transmits the data packet to the software layer; and The software layer decrypts the data packet and determines to receive the data from the access point based on the sending address of the data packet.
10. The data transmission method according to claim 6, wherein: The step (a) also includes: performing a cyclic redundancy check algorithm on the data packet; the step (b) also includes: performing a cyclic redundancy check algorithm on the data packet, and only when the data packet passes the cyclic redundancy check algorithm verification, the relay node returns the ACK frame.
11. A mesh network system, characterized in that: include: The station includes a software layer and a hardware layer, wherein the software layer is used to generate a data packet, wherein the sending address of the data packet is the MAC address of the station and the receiving address is the MAC address of the access point; and the hardware layer is used to modify the receiving address of the data packet to the MAC address of its own parent node before sending; a relay node configured to execute an uplink forwarding procedure after receiving the data packet, wherein the uplink forwarding procedure includes: returning an ACK frame and modifying the receiving address of the received data packet to the MAC address of its own parent node before performing uplink forwarding; and when there are multiple relay nodes connected hierarchically, each relay node executes the uplink forwarding procedure until the data packet is forwarded to the access point; and The access point is configured to transmit an ACK frame after receiving the data packet, parse the data packet, and determine whether to receive data from the station based on the sending address of the data packet.
12. The mesh network system according to claim 11, wherein: The software layer is further used to generate the data packet and encrypt the data packet.
13. The mesh network system according to claim 11, wherein: Also includes: A cyclic redundancy check algorithm is performed on the data packet.
14. A mesh network system, characterized in that: include: An access point for sending a data packet, wherein the receiving address of the data packet is the MAC address of the station and the sending address is the MAC address of the access point; A relay node configured to execute a downlink forwarding procedure, wherein the downlink forwarding procedure includes: receiving the data packet based on a stored assistance table having the MAC address of the site and the MAC address of the data packet being sent by the relay node, returning an ACK frame to the parent node, and performing downlink forwarding after modifying the data packet's sending address to its own MAC address, wherein the assistance table includes the MAC addresses of all lower-level nodes for which the relay node provides relay services; when there are multiple relay nodes connected hierarchically, each relay node executes the downlink forwarding procedure until the data packet is forwarded to the site; and The station includes a software layer and a hardware layer. The hardware layer is used to receive the data packet based on the fact that the sending address of the data packet is the MAC address of its own parent node and the receiving address is the MAC address of the station, return an ACK frame, and modify the sending address of the received data packet to the MAC address of the access point before transmitting it to the software layer, so that the software layer determines whether to receive data from the access point based on the sending address of the data packet.
15. The mesh network system according to claim 14, wherein: The access point also encrypts the data packet.
16. The mesh network system according to claim 14, wherein: The access point is further configured to perform a cyclic redundancy check algorithm calculation on the data packet.
17. A relay node, characterized in that: include: A storage module, configured to store an assistance table, wherein the assistance table includes MAC addresses of all subordinate nodes requiring relay services; a filtering and return module, connected to the storage module, configured to receive a first data packet whose receiving address is in the assistance table and whose sending address is the MAC address of the parent node, return an ACK frame to the parent node, and determine that the first data packet needs to be forwarded downstream; receive a second data packet sent by a child node, return an ACK frame to the child node, and determine that the second data packet needs to be forwarded upstream, wherein the receiving address of the second data packet is its own MAC address; an address translation module, connected to the filtering and return module, configured to modify the sending address of the first data packet determined by the filtering and return module to be forwarded downstream to the MAC address of the MAC address of the MAC address of the MAC address of the MAC address of the MAC address of the parent node; and modify the receiving address of the second data packet determined by the filtering and return module to be forwarded upstream to the MAC address of the parent node; and The sending module is connected to the address conversion module and is used to send the first data packet whose sending address is modified by the address conversion module and the second data packet whose receiving address is modified by the address conversion module.
18. The relay node according to claim 17, characterized in that The relay node also includes: an encryption and decryption module and a software module.
Citation Information
Patent Citations
Wireless mesh network networking method and device based on physical layer protocol
CN112738733A
Simple mesh network for wireless transceivers
US20150078198A1
Simple mesh network for wireless transceivers
US20160191259A1