Relay of mesh networks
By analyzing node characteristics in a mesh network and determining the optimal relay path using a classification model based on machine learning, the problem of blocked data transmission path validity in a mesh network is solved, and more reliable data transmission is achieved.
Patent Information
- Application Number
- CN202411394859.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-10-05
- Filing Date
- 2024-10-08
- Publication Date
- 2025-04-08
AI Technical Summary
In a mesh network, due to distances between devices in the path, signal path obstacles or signal interference, the path validity of the relay data may be hindered, resulting in unstable data transmission.
By obtaining the characteristics of each node in the mesh network, an optimal relay path for providing data from the source node to the destination node is determined based on these characteristics, the path including the source node, the destination node and at least one relay node. Use a machine learning-based classification model to generate indications of relay paths and provide relay maps to nodes to ensure data is transmitted along the most efficient path.
By determining and using the most efficient relay path, the reliability of communication links between nodes is improved, ensuring that data and/or commands can be reliably transmitted to the intended node, and system functionality is improved.
Smart Images

Figure CN119788143A_ABST
Abstract
Description
Technical Field
[0001] The present disclosure generally relates to mesh networks. Background Art
[0002] A data communication network may include various hubs, switches, routers, and other network devices that are interconnected and configured to process data as it passes through the network. Such devices may be used to form a mesh network in which multiple network devices form a multi-path data transmission path. In such a configuration, data and / or commands originating from a source network device may be relayed via other network devices in the mesh network until it reaches a destination network device. However, the effectiveness of the path through which the relayed data is passed may be hampered by various factors, such as the distance between devices in the path, signal path obstructions, or signal interference. Summary of the invention
[0003] Provided herein are system, apparatus, device, method and / or computer program product embodiments for relaying data in a mesh network, and / or combinations and sub-combinations thereof. In an embodiment, characteristics of each of a plurality of nodes constituting the mesh network are obtained. Based on these characteristics, a relay path for providing data from a source node in the plurality of nodes to a destination node in the plurality of nodes is determined. The relay path includes a source node, a destination node, and at least one relay node in the plurality of nodes. An indication of the relay path is provided to at least one of the source node, the destination node, or at least one relay node.
[0004] In an embodiment, the at least one relay node is configured to send and receive data via a Wi-Fi based communication protocol, and the at least one relay node is not associated with an access point.
[0005] In another embodiment, at least one of the source node, the destination node, or the at least one relay node comprises at least one of an Internet of Things (IoT) device, a television, a sound bar, a computing device, an application, or a smartphone.
[0006] In another embodiment, determining the relay path includes providing a representation of the feature to a machine learning based classification model, and receiving an output generated by the machine learning based classification model corresponding to an indication of the relay path.
[0007] In another embodiment, the characteristic includes at least one of: a throughput of each of the plurality of nodes; a received signal strength of each of the plurality of nodes relative to one or more other nodes of the plurality of nodes; a signal-to-noise ratio of each of the plurality of nodes relative to one or more other nodes of the plurality of nodes; a modulation coding scheme used by each of the plurality of nodes; an indication of operational behavior of each of the plurality of nodes; or an indication of a period during which each of the plurality of nodes receives a beacon signal from at least one other node of the plurality of nodes.
[0008] In another embodiment, at least one relay node includes a first access point and a second access point communicatively coupled via the Internet.
[0009] In another embodiment, the indication of the relay path includes at least one of the following: a first identifier from a first node among multiple nodes in the relay path, or a second identifier from a second node among multiple nodes in the relay path, wherein at least one relay node receives data from the first node; and at least one relay node will send data to the second node. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The accompanying drawings are incorporated herein and constitute a part of this specification.
[0011] Figure 1 A block diagram of a multimedia environment is shown in accordance with some embodiments.
[0012] Figure 2 A block diagram of a streaming media device according to some embodiments is shown.
[0013] Figure 3 A block diagram of a mesh network is shown in accordance with some embodiments.
[0014] Figure 4 is a block diagram of a system including different mesh networks communicatively coupled to each other via one or more access points, according to some embodiments.
[0015] Figure 5 is a block diagram of a system for determining a relay path for relaying data in a mesh network, according to some embodiments.
[0016] Fig. 6A is a block diagram of a beacon medium access control (MAC) frame in accordance with some embodiments.
[0017] Figure 6B is a block diagram of a unicast MAC frame according to some embodiments.
[0018] Figure 7 A block diagram of a mesh network configured to relay frames between various smart devices is shown in accordance with some embodiments.
[0019] Figure 8 is a flow chart of a method for providing an indication of a relay path in a mesh network according to an embodiment.
[0020] Fig. 9 is a flow chart of a method for determining a relay path in a mesh network according to an embodiment.
[0021] Fig.10 An example computer system is shown that can be used to implement various embodiments.
[0022] In the drawings, like reference numbers generally refer to like or similar elements. Also, generally, one or more left-most digits of a reference number indicate the drawing in which the reference number first appears. DETAILED DESCRIPTION
[0023] Embodiments described herein can solve some or all of all of the above problems associated with mesh networks. For example, various features of multiple devices (or nodes) that constitute a mesh network can be determined. These features can indicate at least some signal characteristics, throughput, and operational behavior of such devices. These features can be analyzed to determine an improved or optimal (e.g., most efficient) relay path for relaying data and / or commands via a device. A relay map can be provided to each device in the improved or optimal relay path, which indicates that when data is received from a particular second device in the path, a particular first device in the path should relay the data.
[0024] For example, in an embodiment, characteristics of each of a plurality of nodes constituting a mesh network are obtained. Based on these characteristics, a relay path for providing data from a source node in the plurality of nodes to a destination node in the plurality of nodes is determined. The relay path includes a source node, a destination node, and at least one relay node in the plurality of nodes. An indication of the relay path is provided to at least one of the source node, the destination node, or at least one relay node.
[0025] By determining and using the most efficient relay path to relay data, the reliability of the communication link between nodes in the path is improved, and therefore, data and / or commands are reliably transmitted to the intended nodes. Therefore, the technology described herein improves the functionality of a system (e.g., a mesh network) because nodes in the network are able to correctly receive data and / or commands and perform their functions as expected.
[0026] Various embodiments of the present disclosure may use Figure 1102. The embodiments of the present disclosure may be implemented and / or may be a part of the multimedia environment 102 shown in . However, it should be noted that the multimedia environment 102 is provided for illustration purposes only and not for limitation purposes. As will be appreciated by those skilled in the relevant art based on the teachings contained herein, embodiments of the present disclosure may be implemented using the multimedia environment 102 and / or may be part of an environment other than the multimedia environment 102 and / or in addition to the multimedia environment 102. An example of the multimedia environment 102 will now be described.
[0027] Multimedia Environment
[0028] Figure 1 A block diagram of a multimedia environment 102 according to some embodiments is shown. In a non-limiting example, the multimedia environment 102 can be for streaming media. However, the present disclosure is applicable to any type of media (instead of or in addition to streaming media), and any mechanism, means, protocol, method and / or process for distributing media.
[0029] The multimedia environment 102 may include one or more media systems 104. The media system 104 may represent a family room, kitchen, backyard, home theater, school classroom, library, car, boat, bus, airplane, movie theater, stadium, auditorium, park, bar, restaurant, or any other location or space where streaming media content needs to be received and played. One or more users 132 may operate the media system 104 to select and consume content.
[0030] Each media system 104 may include one or more media devices 106, each of which is coupled to one or more display devices 108. It should be noted that unless otherwise specified herein, the terms "coupled," "connected to," "attached," "linked," "combined," and similar terms may refer to physical, electrical, magnetic, logical, and the like connections.
[0031] The media device 106 may be a streaming device, a DVD or Blu-ray device, an audio / video playback device, a cable box, and / or a digital video recording device, for example only. The display device 108 may be a monitor, a television (TV), a computer, a smart phone, a tablet, a wearable device (e.g., a watch or glasses), an appliance, an Internet of Things (IoT) device, and / or a projector, for example only. In some embodiments, the media device 106 can be part of, integrated with, operably coupled to, and / or connected to its corresponding display device 108.
[0032] Each media device 106 can be configured to communicate with a network 118 via a communication device 114. The communication device 114 can include, for example, a cable modem or a satellite television transceiver. The media device 106 can communicate with the communication device 114 via a link 116, which can include a wireless (e.g., WiFi) and / or wired connection.
[0033] In various embodiments, network 118 can include, but is not limited to, wired and / or wireless intranets, extranets, the Internet, cellular, Bluetooth, infrared and / or any other short-range, long-range, local, regional, global communication mechanisms, means, methods, protocols and / or networks, and any combination thereof.
[0034] The media system 104 may include a remote control 110. The remote control 110 can be any component, part, means and / or method for controlling the media device 106 and / or the display device 108, such as a remote control, a tablet, a laptop, a smart phone, a wearable device, an on-screen control, an integrated control button, an audio control, or any combination thereof, for example only. In an embodiment, the remote control 110 communicates wirelessly with the media device 106 and / or the display device 108 using cellular, Bluetooth, infrared, etc., or any combination thereof. The remote control 110 may include a microphone 112, which will be further described below.
[0035] The multimedia environment 102 may include a plurality of content servers 120 (also referred to as content providers, channels, or sources 120). Figure 1 Only one content server 120 is shown in FIG. 1 , but in practice the multimedia environment 102 may include any number of content servers 120 . Each content server 120 may be configured to communicate with the network 118 .
[0036] Each content server 120 may store content 122 and metadata 124. Content 122 may include any combination of music, videos, movies, television programs, multimedia, images, still pictures, text, graphics, game applications, advertisements, program content, public service content, government content, local community content, software, and / or any other content or data object in electronic form.
[0037] In some embodiments, metadata 124 includes data about content 122. For example, metadata 124 may include associated or auxiliary information indicating or relating to writers, directors, producers, composers, artists, actors, summaries, chapters, productions, history, years, trailers, alternate versions, related content, applications, and / or any other information related to or associated with content 122. Metadata 124 may also or alternatively include links to any such information related to or associated with content 122. Metadata 124 may also or alternatively include one or more indexes to content 122.
[0038] The multimedia environment 102 may include one or more system servers 126. The system servers 126 are operable to support the media devices 106 from the cloud. It should be noted that the structural and functional aspects of the system servers 126 may reside in whole or in part in the same or different system servers 126.
[0039] The system server 126 may include a relay path determiner component 128. The relay path determiner component 128 may be configured to determine an optimal relay path for relaying data used by one or more media devices 106, and provide an indication of the optimal relay path to the one or more media devices 106 via the network 118. The one or more media devices 106 may relay data according to the indication. Figure 5 As shown, additional details regarding the relay path determiner component 128 will be described in detail below with reference to the relay path determiner 504 .
[0040] The system server 126 may also include an audio command processing module 130. As described above, the remote control 110 may include a microphone 112. The microphone 112 may receive audio data from a user 132 (as well as other sources such as a display device 108). In some embodiments, the media device 106 may be audio responsive, and the audio data may represent spoken commands from the user 132 to control the media device 106 as well as other components in the media system 104 (e.g., the display device 108).
[0041] In some embodiments, audio data received by microphone 112 in remote control 110 is sent to media device 106, which is then forwarded to audio command processing module 130 in system server 126. Audio command processing module 130 is operable to process and analyze the received audio data to identify spoken commands of user 132. Audio command processing module 130 may then forward the spoken commands back to media device 106 for processing.
[0042] In some embodiments, the audio data may alternatively or additionally be processed by the audio command processing module 216 (see Figure 2 ) processing and analysis. The media device 106 and the system server 126 can then collaborate to select one of the spoken commands to be processed (either the spoken command recognized by the audio command processing module 130 in the system server 126 or the spoken command recognized by the audio command processing module 216 in the media device 106).
[0043] Figure 2 A block diagram of an example of a media device 106 according to some embodiments is shown. The media device 106 may include a streaming module 202, a processing module 204, a storage / buffer 208, and a user interface module 206. As described above, the user interface module 206 may include an audio command processing module 216.
[0044] The media device 106 may also include one or more audio decoders 212 and one or more video decoders 214 .
[0045] Each audio decoder 212 can be configured to decode audio in one or more audio formats, such as, but not limited to, AAC, HE-AAC, AC3 (Dolby Digital), EAC3 (Dolby Digital Plus), WMA, WAV, PCM, MP3, OGG GSM, FLAC, AU, AIFF and / or VOX, just as examples.
[0046] Similarly, each video decoder 214 can be configured to decode video in one or more video formats, such as, but not limited to, MP4 (MP4, m4a, m4v, f4v, f4a, m4b, m4r, f4b, mov), 3GP (3gp, 3gp2, 3g2, 3gpp, 3gpp2), OGG (ogg, oga, ogv, ogx), WMV (wmv, wma, asf), WEBM, FLV, AVI, QuickTime, HDV, MXF (OP1a, OP-Atom), MPEG-TS, MPEG-2PS, MPEG-2TS, WAV, Broadcast WAV, LXF, GXF, and / or VOB, just as examples. Each video decoder 214 may include one or more video codecs, such as but not limited to H.263, H.264, H.265, AVI, HEV, MPEG1, MPEG2, MPEG-TS, MPEG-4, Theora, 3GP, DV, DVCPRO, DVCPRO, DVCProHD, IMX, XDCAM HD, XDCAM HD422 and / or XDCAM EX, as examples only.
[0047] Reference now Figure 1 and Figure 2Both, in some embodiments, the user 132 can interact with the media device 106 via, for example, the remote control 110. For example, the user 132 can interact with the user interface module 206 of the media device 106 using the remote control 110 to select content, such as movies, television programs, music, books, applications, games, etc. The streaming module 202 of the media device 106 can request the selected content from one or more content servers 120 via the network 118. The one or more content servers 120 can send the requested content to the streaming module 202. The media device 106 can send the received content to the display device 108 to play the content to the user 132.
[0048] In a streaming embodiment, the streaming module 202 may send content to the display device 108 in real time or near real time as the content is received from one or more content servers 120. In a non-streaming embodiment, the media device 106 may store content received from one or more content servers 120 in the storage / buffer 208 to play the content on the display device 108 at a later time.
[0049] Data relay in mesh networks based on optimal relay paths
[0050] like Figure 2 As further shown in FIG. 1 , the media device 106 may include a characteristics determiner module 218. The characteristics determiner module 218 may be configured to determine various characteristics (e.g., signal characteristics, throughput, and operating behavior) of the media device 106 and one or more other media devices communicatively coupled thereto. The determined characteristics may be provided to the relay path determiner component 128 via the network 118. As described herein, the relay path determiner component 128 may determine an optimal relay path based on the characteristics and provide an indication of the determined relay path to the media device 106. Figure 5 As shown, additional details regarding the characteristics determiner module 218 will be described in detail below with reference to the characteristics determiner 508.
[0051] Figure 3 2 shows a block diagram of a mesh network 300 according to some embodiments. Figure 3As shown, mesh network 300 may include multiple nodes 302A to 302H. Each of multiple nodes 302A to 302H may include a computing device such as a media device 106 or an IoT device. As used herein, the term "IoT device" is intended to broadly cover any device capable of digitally communicating with another device. For example, a device capable of digitally communicating with another device can include an IoT device, as used herein, even if such communication is not conducted over the Internet. Examples of IoT devices include, but are not limited to, smartphones, laptops, notebook computers, tablet computers, netbooks, desktop computers, video game consoles, set-top boxes, or OTT streaming media players. Other examples of IoT devices include so-called "smart home" devices, such as, but not limited to, smart bulbs, smart switches, smart sockets, smart refrigerators, smart washing machines, smart dryers, smart coffee machines, smart alarm clocks, smart smoke alarms, smart carbon monoxide detectors, smart security sensors, smart doorbell cameras, smart indoor or outdoor video cameras, smart door locks, smart thermostats, smart plugs, smart TVs, smart speakers, smart remote controls, or voice controllers.
[0052] One or more of the nodes 302A-302H may be communicatively coupled to one or more other of the nodes 302A-302H via a mesh network topology. For example, according to such embodiments, a node of the nodes 302A-302H may be directly linked to one or more other of the nodes 302A-302H, such that the nodes can communicate directly with each other without a router, hub, access point, and / or Internet connection. For example, as Figure 3 As shown, node 302A can communicate directly with node 302B, node 302C, node 302D and node 302E. Node 302B can communicate directly with node 302A, node 302C, node 302D and node 302E. Node 302C can communicate directly with node 302A, node 302B, node 302D, node 302E and node 302H. Node 302D can communicate directly with node 302A, node 302B, node 302C, node 302E, node 302G, node 302H. Node 302E can communicate directly with node 302A, node 302B, node 302D, node 302F, node 302G, node 302H. Node 302F can communicate directly with node 302E and node 302G. Node 302G may communicate directly with node 302B, node 302E, node 302F, and node 302H. Node 302H may communicate directly with node 302C, node 302D, node 302E, and node 302H.
[0053] A unique identifier may be assigned to each of the nodes 302A to 302H. The identifier may be a media access control (MAC) address, which may be assigned to the node by the manufacturer of the node or via a setup process. Each of the nodes 302A to 302H may use a MAC frame to communicate directly with another node in the nodes 302A to 302H. Each MAC frame may specify at least a first MAC address, a second MAC address, a third MAC address, and a payload. The first MAC address may identify the destination node for the MAC frame, the second MAC address may identify the source node that is sending the MAC frame, and the payload may include various information, including but not limited to control information, management information, and / or data. In order to establish a mesh network 300 without using a router, a hub, an access point, and / or being connected to the Internet, each of the nodes 302A to 302H may be configured to communicate directly with one or more other nodes in the nodes 302A to 302H using a MAC frame sent according to a wireless communication protocol such as Wi-Fi, and these MAC frames are independent of routers, hubs, or access points. In order to disassociate the frame, each of the nodes 302A to 302H can be configured to send a frame using a locally managed MAC address and not specifying a basic service set (BSS) identifier (ID) associated with a router, hub, or access point, which is typically specified via a third MAC address. In contrast, the third MAC address may include a group identifier corresponding to a group of nodes 302A to 302H that communicate with each other. The MAC address may be designated as locally managed during the setup of the mesh network 300, such as by a user or network administrator. In order to indicate that the MAC address is locally managed, the universal / local (U / L) bit including the MAC address in the MAC frame may be set to a value of 1. Similarly, a group identifier for the third MAC address may also be specified during setup.
[0054] In some aspects, one of the nodes 302A-302H may communicate indirectly with another of the nodes 302A-302H via one or more relay paths including one or more of the nodes 302A-302H configured as one or more relay nodes. Figure 3, node 302A may communicate indirectly with node 302C via node 302B and / or node 302D. In this example, node 302B and / or 302D may be configured as a relay node that relays data from node 302A to node 302C. In another example, node 302F may be configured to communicate with node 302C via nodes 302G and 302H, wherein node 302G is configured as a relay node that relays data from node 302F to node 302H, and node 302H is configured as a relay node that relays data from node 302G to node 302C.
[0055] In reference Figure 3 In the described embodiment, it should be noted that the mesh network 300 can operate without being connected or relying on a hub, access point or router connected to any wide area network (WAN) or the Internet. One advantage of this method is that the nodes 302A to 320H of the mesh network 300 can establish communication links with each other more quickly, such as when power is re-energized after a power outage. Traditional methods require hubs, routers and / or access points to power on and establish an Internet connection before the mesh network is operable. This unnecessarily increases the delay of using the nodes of the mesh network 300. In the case where the nodes of the mesh network 300 are powered by batteries, additional advantages can be obtained. In this case, there will be no interruption in use even during a power outage, because these nodes continue to operate as expected without a wide area network or Internet connection.
[0056] In some aspects, one or more nodes 302A to 302H may be communicatively coupled to one or more access points or routers. Such access points may be communicatively coupled to other one or more access points or one or more routers, which are communicatively coupled to other nodes forming another mesh network. For example, Figure 4 4 is a block diagram of a system 400 including different mesh networks communicatively coupled to each other via one or more access points according to some embodiments. Figure 4 , system 400 may include a first mesh network 402 and a second mesh network 404, the first mesh network 402 including nodes 302A to 302H, and the second mesh network 404 including nodes 408A and 408B. Nodes 408A and 408B may be configured to directly communicate with each other in a manner similar to the nodes 302A to 302H described above. Mesh network 402 may be located in a first place, and mesh network 404 may be located in a second place that is the same or different from the first place. Examples of places include, but are not limited to, homes, offices, buildings, factories, warehouses, bars, restaurants, cinemas, stadiums, auditoriums, cars, buses, ships, or any other structure, location, or space where nodes may be present.
[0057] exist Figure 4 In the illustrated example, node 302G may be communicatively coupled to access point 406A, node 408B may be communicatively coupled to access point 406B, and access point 406A may be communicatively coupled to access point 406B. Access point 406A may be located in the same premises as mesh network 402, and access point 406B may be located in the same premises as mesh network 404. According to the above configuration, communications originating from one or more of nodes 302A through 302G of mesh network 402 may be relayed to one or more of nodes 408A and 408B of mesh network 404 via access points 406A and 406B. To enable communication with access point 406A, node 302G may be configured to send MAC frames to access point 408A that are commonly managed (e.g., managed by access point 406A) and associated with access point 406 (e.g., by specifying the BSSID of access point 406A as a third MAC address of the MAC frames sent thereby). Similarly, to enable communication with access point 406B, node 408B may be configured to send MAC frames to access point 406A that are commonly managed (e.g., managed by access point 406B) and associated with access point 406B (e.g., by specifying the BSSID of access point 406B as a third MAC address of the MAC frames sent thereby).
[0058] It should be noted that while system 400 uses an access point for each mesh network 402 and 404, the embodiments described herein are not limited in this regard. For example, a single access point may be used that is communicatively coupled to one or more nodes of mesh network 402 and one or more nodes of mesh network 404. It should also be noted that the one or more access points used to communicatively couple to multiple mesh networks may be located in a single location or in multiple locations, which may be the same as or different from the one or more locations where the multiple mesh networks are located, as long as the one or more access points are within range of at least one node in each of the multiple mesh networks.
[0059] In some cases, one relay path may be more efficient at relaying data than other relay paths depending on various factors, such as placement of relay nodes, signal quality of signals sent and / or received thereby, etc. According to embodiments described herein, an optimal relay path for relaying data between a source node and a destination node may be determined.
[0060] For example, Figure 5 is a block diagram of a system 500 for determining a relay path for relaying data in a mesh network according to some embodiments. Figure 5As shown, the system 500 includes a plurality of nodes 502A to 502E and a relay path determiner 504. Each of the nodes 502A to 502E may be as described above with reference to Figure 3 and Figure 4 Examples of nodes 302A to 302H, 408A, and 408B are described. Figure 5 As further shown in FIG. 5 , node 502A may include one or more computing resources 506 , a characteristic determiner 508 , a frame generator 510 , a relay map 512 , and one or more wireless interfaces 514 .
[0061] The one or more computing resources 506 may include one or more hardware components (e.g., one or more processors, main memory, secondary memory (e.g., hard drive, removable storage device, etc.), network interface (e.g., one or more wireless interfaces 514), etc. Fig.10 The detailed description describes additional details regarding such hardware components.
[0062] The one or more wireless interfaces 514 may include components suitable for enabling the node 502A to wirelessly communicate with other devices via corresponding wireless protocols. The one or more wireless interfaces 332 may include, for example but not limited to, one or more of the following: a Wi-Fi interface that enables the node 502A to wirelessly communicate with another node, access point, or other device with long-range Wi-Fi capabilities according to one or more wireless network protocols based on the IEEE (Institute of Electrical and Electronics Engineers) 802.11 family of standards; a cellular interface that enables the node 502A to wirelessly communicate with a remote device via one or more cellular networks; a Bluetooth interface that enables the node 502A to perform short-range wireless communications with other devices with Bluetooth capabilities; or a Zigbee interface that enables the node 502A to wirelessly communicate with other devices with Zigbee capabilities.
[0063] The frame generator 510 may be configured to generate various types of MAC frames. The MAC frame may be a low-level frame (e.g., a frame generated and sent via the MAC layer rather than the Internet Protocol (IP) layer). For example, the frame generator 510 may be configured to generate a beacon MAC frame (also referred to herein as a beacon signal). Each beacon signal may be generated periodically, or may be generated in response to a specific event (e.g., a change in the power state or operation of the node 502A). The beacon signal may uniquely identify the node 502A and may be broadcast to a plurality of other nodes (e.g., nodes 502B to 502E). Other nodes may use the beacon signal to discover the node 502A and / or determine whether the node 502A is operating. The beacon signal may also include data indicating one or more specific states (e.g., power state, operating state, etc.) of the node 502A.
[0064] Fig. 6A is a block diagram of a beacon MAC frame 600 according to some embodiments. Fig. 6A As shown, the beacon MAC frame 600 may include various fields including, but not limited to, a two-byte frame control field 602, a two-byte duration field 604, a six-byte first MAC address field 606, a six-byte second MAC address field 608, a six-byte third MAC address field 610, a two-byte sequence control field 612, a variable byte payload field 614, and a four-byte frame check sequence field 616.
[0065] The frame control field 602 may indicate the type of frame and various control information. Since the beacon MAC frame 600 is not associated with an access point, the beacon MAC frame 600 may be an action frame type. An action frame is a management frame used to trigger a specific action (e.g., discovering a node 502A, determining whether the node 502A is operating, determining one or more specific states of the node 502A, etc.). The duration field 604 may include a value indicating a time period during which a channel or medium through which the beacon MAC frame 600 is sent is occupied. The first address field 606 may specify a broadcast address (e.g., a repeating sequence of hexadecimal values F). A node receiving a beacon MAC frame 600 including such a broadcast address may determine that such a frame is broadcast and is sent to multiple nodes. The second address field 608 may specify a source node (e.g., node 502A) that is sending the beacon MAC frame 600. The third address field 610 may specify a specific MAC address, which indicates that the beacon MAC frame 600 is part of a mesh network. For example, before the node is set up, the MAC address included in the third address field 610 may use a default MAC address, in which the U / L bit is set to indicate that the default MAC address is locally managed. After the node is set up, the MAC address included in the third address field 610 may be unique to the node in the mesh network (the U / L bit is set to indicate that the MAC address is locally managed). This enables the node receiving such a beacon MAC frame to filter out neighboring devices that do not belong to the mesh network. For nodes belonging to a group (e.g., a group of smart light bulbs included in a particular room), the MAC address included in the third address field 610 may specify a group identifier corresponding to a plurality of nodes included in the group. The sequence control field 612 may include a sequence and / or fragment number associated with the beacon MAC frame 600. In an embodiment, the value stored in the sequence control field 612 may be 0 and may be set by a driver (e.g., a Wi-Fi driver) of the node that sends the beacon MAC frame 600. The payload field 614 may include a payload including various types of information including, but not limited to, control information, management information, and / or data (e.g., information indicating a power state or an operating state or behavior of a node transmitting the beacon MAC frame 600). The payload may be constructed using a type-length-value (TLV) field encoding that allows for forward and backward compatibility. The frame check sequence field 616 may include an error detection code calculated by the transmitting node based on the data in the beacon MAC frame 600. When the destination node receives the beacon MAC frame 600, the error detection code is recalculated and compared with the error detection code included in the beacon MAC frame 600. If the two error detection codes are different, it may be assumed that there is an error in the received beacon MAC frame and the frame may be discarded.
[0066] Another type of MAC frame that the frame generator 510 can generate is a group broadcast frame. The group broadcast frame can be configured to deliver commands and / or any other type of data to a group of nodes at the same time. For example, multiple lights in a particular room may be part of a group addressed by a single group broadcast frame. The format of the group broadcast frame can be the same as the beacon MAC frame 600, except that the MAC address included in the third address field 610 can include a group identifier corresponding to the multiple nodes included in the group (wherein the U / L bit is set to indicate that the MAC address is locally managed).
[0067] Another type of MAC frame that the frame generator 510 can generate is a unicast MAC frame. Unicast MAC frames can be reliably delivered to a specific target MAC address. These frames can be confirmed by the receiving node via the PHY-ACK protocol. When a unicast frame is lost or damaged, the sending node can automatically retry the transmission of the unicast frame. Figure 6B An exemplary format of a unicast MAC frame is shown in FIG, which shows a block diagram of a unicast MAC frame 615. Figure 6B As shown, the format of the unicast MAC frame 615 is similar to the beacon MAC frame 600, except for the MAC address stored in the first address field 606. Figure 6B As shown, the first address field 606 may include a destination MAC address that uniquely identifies a single node to which the unicast MAC frame 615 is intended.
[0068] Reference again Figure 5 , the feature determiner 508 may be as described above with reference to Figure 2An example of a feature determiner module 218 described herein. The feature determiner 508 can be configured to determine various features associated with the node 502A. For example, the feature determiner 508 can be configured to analyze one or more computing resources 506 to determine the throughput (e.g., how busy a particular computing resource is) of the node 502A (e.g., with respect to request rate, memory allocation level, number of processing cycles, etc.), as well as hourly / daily statistics (average, maximum, minimum, standard deviation, jitter, skew, kurtosis, etc.) and / or patterns regarding network usage, processing usage, memory usage, etc. These metrics can be collected periodically (e.g., every second, every minute, every hour, every day, etc.). The feature determiner 508 can also be configured to perform beacon surveys on other nodes communicatively coupled to the node 502A to determine various network-related features. For example, the feature determiner 508 may determine the modulation coding scheme (MCS) used by the node 502A, the received signal strength of the node 502A determined based on the received beacon MAC frame, the signal-to-noise ratio of the beacon MAC frame received by the node 502A, the bit error rate and / or loss frequency based on the beacon MAC frame received by the node 502A, etc. The feature determiner 508 may also determine the periodicity of receiving the beacon MAC frame (e.g., the receiving period of the beacon MAC frame is hourly, daily, weekly, etc.). Based on the above characteristics, the feature determiner 508 may also determine the characteristics of other nodes coupled to it in communication, such as but not limited to: the operational behavior of these nodes (e.g., whether the node is powered on or off, or performs a specific operation, or a usage pattern indicating when (e.g., time and / or day) the node is powered on, powered off, or performs a specific operation). The feature determiner 508 may also determine other characteristics of the node based on the beacon survey, including but not limited to: an identifier (e.g., a MAC address) associated with each node included in the beacon signal, information contained in the beacon signal for identifying the function of the node, whether the node is powered by a battery or via a wall socket, etc. The characteristics determiner 508 may provide an indication or representation of one or more of the above characteristics to the relay path determiner 504 via the one or more wireless interfaces 514 (eg, via a MAC frame).
[0069] Each of the nodes 502B to 502E may include components similar to those illustrated for node 502A. Thus, for example, each of the nodes 502B to 502E may include one or more computing resources, a characteristic determiner, a frame generator, one or more wireless interfaces, and a relay map (as described below).
[0070] The relay path determiner 504 may be as described above with reference to Figure 1An example of a relay path determiner component 128 described. The relay path determiner 504 may include a characterizer 516, a classification model 518 based on machine learning, and a relay map generator 520. The characterizer 516 may be configured to receive an indication of a feature provided by the feature determiner 508, and generate one or more feature vectors representing the feature. The one or more feature vectors generated by the characterizer 516 may take any form such as a digital, visual and / or textual representation, and may also include any other suitable form. The characterizer 516 may operate in a variety of ways to characterize or generate one or more feature vectors of features obtained from the feature determiner 508. For example, but not limited to: the characterizer 516 may characterize the indication by time series analysis, keyword characterization, semantic-based characterization, digital count characterization, and / or n-gram-TFIDF characterization. One or more feature vectors are provided to the classification model 518 based on machine learning.
[0071] The classification model 518 based on machine learning can be configured to generate one or more classifications based on the feature vector provided to the model. Each classification indication in one or more classifications is used to relay data from the source node in nodes 502A to 502E to the specific relay path of the destination node in nodes 502A to 502E. For example, each classification in one or more classifications can be associated with a value (or score) between 0.0 and 1.0, wherein the higher the number, the better the relay path for the source node and the destination node. The classification model 518 based on machine learning can generate corresponding classifications for each source node-destination node in the mesh network. It is worth noting that the score value described herein is purely exemplary, and other score values can also be used. Each relay path determined by the classification model 518 based on machine learning can include an identifier of the source node, one or more identifiers of one or more relay nodes and an identifier of the destination node. The example of such an identifier is the MAC address of such a node. One or more relay paths determined for each node in nodes 502A to 502E can be provided to a relay mapping generator 520. For example, the first N relay paths may be provided to the relay map generator 520, where N is a positive integer.
[0072] The machine learning-based classification model 518 can be trained to generate one or more classifications based on a historical feature set obtained for nodes included in a plurality of different mesh networks (as described above with reference to the feature determiner 508). These features can be obtained over a period of days, weeks, months, or years. These features can be input as a feature vector into a machine learning algorithm (e.g., a supervised machine learning algorithm), which learns the feature type suitable for the optimal relay path based on the feature vector.
[0073] The relay map generator 520 may be configured to generate one or more relay maps for each of the nodes 502A to 502E. For example, for a given node in a particular relay path, the relay map generator 520 may map a first identifier of a first node in the relay path to a second identifier of a second node in the relay path, wherein the given node receives data from the first node (e.g., via a MAC frame) and the received data is to be sent to the second node. The relay map generator 520 may generate more than one map for a given node. In the event that a node in the relay path is no longer available for use as a relay (e.g., due to power outage, severe signal interference, etc.), one or more additional maps may be used as a backup relay path.
[0074] Each map may be ranked according to the value of the classification generated by the machine learning based classification model 518. In one embodiment, the relay map generated for a particular node may be provided to the node by the relay map generator 520 and stored as the relay map 512. In another embodiment, the relay map generated for the particular node may be provided to a different node in the mesh network, and the different node may forward the map to the node for which the relay map is intended.
[0075] For example, assume that the determined relay path includes node 502A, node 502B, and node 502D, where node 502A is a source node, node 502B is a relay node, and node 502D is a destination node. In this example, node 502B can receive and store a first relay mapping 512 that maps an identifier of node 502A to an identifier of node 502D. Using this mapping, node 502B forwards data received from node 502A to node 502D.
[0076] The relay path determiner 504 may be implemented by a device (e.g., a server) that is remote from the location of the nodes 502A to 502E but is communicatively connected to at least one of the nodes 502A to 502E via an access point. In this implementation, the relay map generated for all nodes in the mesh network may be provided to at least one node, and the at least one node communicates the map to other nodes in the mesh network. Alternatively, the relay path determiner 504 may be implemented by a device within the location of the nodes 502A to 502E, such as by one or more of the nodes 502A to 502E.
[0077] Figure 7 is a block diagram of a mesh network 700 configured to relay frames between various smart devices according to some embodiments. Figure 7 As shown, mesh network 700 may include a plurality of nodes 702A through 702H. Figure 7In the illustrated example, node 702A is a first smart switch, node 702B is a first smart bulb, node 702C is a second smart bulb, node 702D is a second smart switch, node 702E is a first smart socket, node 702F is a third smart bulb, node 702G is a fourth smart bulb, and node 702H is a second smart socket. The smart bulbs corresponding to nodes 702B and 702C, the second smart switch corresponding to node 702D, and / or the first smart socket corresponding to node 702E may be within the range of the smart switch corresponding to node 702A, and therefore, node 702A may discover nodes 702B, 702C, 702D, and / or 702E via beacon signals sent by nodes 702B, 702C, 702D, and / or 702E. However, the smart bulbs corresponding to nodes 702F and 702G may not be within the range of the first smart switch corresponding to node 702A, and therefore, node 702A cannot detect the beacon signals sent by nodes 702F and 702G. The first smart switch corresponding to node 702A can communicate directly with the smart bulbs corresponding to nodes 702B and 702C to activate (e.g., power on) or deactivate (e.g., power off) such smart bulbs. The first smart switch corresponding to node 702A and the smart bulbs corresponding to nodes 702B and 702C can be located in a first room (e.g., a living room).
[0078] Similarly, the smart light bulbs corresponding to nodes 702F and 702G may be within the range of the smart switch corresponding to node 702D, and thus, node 702D may discover nodes 702F and 702G via beacon signals sent by nodes 702F and 702G. A second smart switch corresponding to node 702D may communicate directly with the smart light bulbs corresponding to nodes 702F and 702G to activate or deactivate the smart light bulbs. The second smart switch corresponding to node 702D and the smart light bulbs corresponding to nodes 702F and 702G may be located in a second room (e.g., a kitchen).
[0079] The user may desire to control all four smart light bulbs corresponding to nodes 702B, 702C, 702F, and 702G via the first smart switch corresponding to node 702A. Therefore, all four smart light bulbs must receive the command sent by the first smart switch. Since the smart light bulbs corresponding to nodes 702F and 702G are out of range, the command from the first light bulb switch can be relayed via another node, for example, the second smart switch corresponding to node 702D and / or the first smart socket corresponding to node 702E.
[0080] As mentioned above Figure 5As described, the relay path determiner 504 can determine an optimal relay path for relaying commands from the first smart switch corresponding to the node 702A and the third and fourth smart light bulbs corresponding to the nodes 702F and 702G based on the characteristics of one or more nodes in the nodes 702A to 702H collected via the characteristic determiner 508. In the example, the relay path determiner 504 can determine that the optimal relay path is via the second smart switch corresponding to the node 702D. Therefore, the relay path determiner 504 can provide a relay map (e.g., relay map 512) to the node 702D, which indicates that the command received from the first smart switch corresponding to the node 702A is to be relayed to the third and fourth smart light bulbs corresponding to the nodes 702F and 702G. For example, the relay map can map a first identifier (e.g., a MAC address) of the first smart switch to a second identifier of the third smart light bulb and a third identifier of the fourth smart light bulb.
[0081] Figure 8 8 is a flow chart of a method 800 for providing an indication of a relay path in a mesh network according to an embodiment. The method 800 can be performed by processing logic, which can include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. It should be understood that not all steps disclosed herein need to be performed. In addition, a person of ordinary skill in the art will understand that some steps can be performed simultaneously or in parallel. Figure 8 The different orders of execution are shown.
[0082] Method 800 by reference Figure 5 8. However, the method 800 is not limited to this example embodiment.
[0083] In 802, a characterizer 516 may obtain characteristics of each of a plurality of nodes (e.g., nodes 502A to 502E) constituting a mesh network. For example, as described herein, a characteristic determiner 508 from one or more of the nodes 502A to 502E may determine characteristics associated with the node and provide the characteristics to the characterizer 516 via one or more wireless interfaces 514. The characteristics obtained by the characterizer 516 may include at least one of: (i) a throughput of each of the plurality of nodes, (ii) a received signal strength of each of the plurality of nodes relative to one or more other nodes of the plurality of nodes; (iii) a signal-to-noise ratio of each of the plurality of nodes relative to one or more other nodes of the plurality of nodes; (iv) an MCS used by each of the plurality of nodes; (v) an indication of an operational behavior of each of the plurality of nodes; and / or (vi) an indication of a period during which each of the plurality of nodes receives a beacon signal (e.g., a beacon MAC frame) from at least one other node of the plurality of nodes.
[0084] At 804, the machine learning-based classification model 518 may determine, based on the features, a relay path for providing data from a source node (e.g., node 502A) of the plurality of nodes to a destination node (e.g., node 502E) of the plurality of nodes, the relay path including the source node, the destination node, and at least one relay node (e.g., node 502B, node 502C, and / or node 502D) from the plurality of nodes. For example, as described herein, at least one of the source node, the destination node, or at least one relay node may include at least one of an IoT device, a television, a sound bar, a computing device, an appliance, or a smartphone.
[0085] At 806, the relay map generator 520 may provide an indication of the relay path (e.g., the relay map 512) to at least one of the source node, the destination node, or the at least one relay node. For example, as described herein, the indication of the relay path may include a first identifier (e.g., a MAC address) from a first node among the plurality of nodes in the relay path from which the at least one relay node receives data, or a second identifier (e.g., a MAC address) from a second node among the plurality of nodes in the relay path to which the at least one relay node is to send data.
[0086] In some aspects, at least one relay node is configured to send and receive data via a Wi-Fi based communication protocol and is not associated with an access point. For example, a MAC frame that transmits data may be locally managed and may not specify a BSSID of an access point.
[0087] In some aspects, at least one relay node includes a first access point and a second access point communicatively coupled via the Internet. Figure 4 As shown, at least one relay node may be access point 406A communicatively coupled to access point 406B. In this way, data may be relayed from one mesh network to another mesh network via access points 406A and 406B.
[0088] Fig. 9 900 is a flow chart of a method 900 for determining a relay path in a mesh network according to an embodiment. The method 900 can be performed by processing logic, which can include hardware (e.g., circuits, dedicated logic, programmable logic, microcode, etc.), software (e.g., instructions executed on a processing device), or a combination thereof. It should be understood that not all steps disclosed herein need to be performed. In addition, a person of ordinary skill in the art will understand that some steps can be performed simultaneously or in parallel. Fig. 9 The different orders of execution are shown.
[0089] Method 900 by reference Figure 5 5. However, the method 900 is not limited to this example embodiment.
[0090] At 902 , the featurizer 516 may provide representations of features (eg, one or more feature vectors) to a machine learning based classification model 518 .
[0091] At 904 , the relay map generator 520 may receive an output generated by the machine learning based classification model 518 , the output corresponding to an indication of a relay path (eg, the relay map 512 ).
[0092] Computer System Example
[0093] For example, one or more well-known computer systems (e.g., Fig.101000) to implement various embodiments. For example, a combination or sub-combination of computer system 1000 can be used to implement one or more of the following: media device 106, remote control 110, one or more content servers 120, one or more system servers 126, relay path determiner component 128, feature determiner module 218, nodes 302A to 302H, access points 406A and 406B, nodes 408A and 408B, nodes 502A to 502E, feature determiner 508, frame generator 510, one or more wireless interfaces 514, relay path determiner 504, featureizer 516, machine learning-based classification model 518, relay map generator 520, relay map 512, and nodes 702A to 702H. Similarly or alternatively, for example, one or more computer systems 1000 can be used to implement any of the embodiments discussed herein, as well as combinations and sub-combinations thereof.
[0094] Computer system 1000 may include one or more processors (also referred to as central processing units or CPUs), such as processor 1004. Processor 1004 may be connected to a communications infrastructure 1006 or bus.
[0095] The computer system 1000 may also include one or more user input / output devices 1003 , such as a monitor, keyboard, pointing device, etc., which may communicate with the communication infrastructure 1006 via one or more user input / output interfaces 1002 .
[0096] One or more processors 1004 may be a graphics processing unit (GPU). In an embodiment, a GPU may be a processor that is a dedicated electronic circuit designed to process math-intensive applications. A GPU may have a parallel structure that is efficient for processing large blocks of data in parallel, such as math-intensive data common in computer graphics applications, images, videos, etc.
[0097] The computer system 1000 may also include a main memory 1008, such as a random access memory (RAM). The main memory 1008 may include one or more levels of cache. The main memory 1008 may store control logic (ie, computer software) and / or data therein.
[0098] The computer system 1000 may also include one or more secondary storage devices or memories 1010. For example, the secondary storage 1010 may include a hard disk drive 1012 and / or a removable storage device or drive 1014. The removable storage drive 1014 may be a floppy disk drive, a tape drive, an optical drive, an optical storage device, a tape backup device, and / or any other storage device / drive.
[0099] The removable storage drive 1014 can interact with the removable storage unit 1018. The removable storage unit 1018 may include a computer usable or readable storage device having computer software (control logic) and / or data stored thereon. The removable storage unit 1018 may be a floppy disk, a magnetic tape, an optical disk, a DVD, an optical disk, and / or any other computer data storage device. The removable storage drive 1014 can read from and / or write to the removable storage unit 1018.
[0100] Secondary memory 1010 may include other means, devices, components, tools, or other methods for allowing computer programs and / or other instructions and / or data to be accessed by computer system 1000. Such means, devices, components, tools, or other methods may include, for example, a removable storage unit 1022 and an interface 1020. Examples of removable storage unit 1022 and interface 1020 may include a program cartridge and cartridge interface (e.g., as found in video game devices), a removable storage chip (e.g., an EPROM or PROM) and associated socket, a memory stick and USB or other port, a memory card and associated memory card slot, and / or any other removable storage unit and associated interface.
[0101] The computer system 1000 may also include a communication or network interface 1024. The communication interface 1024 may enable the computer system 1000 to communicate and interact with any combination of external devices, external networks, external entities, etc. (individually and collectively referenced by reference numeral 1028). For example, the communication interface 1024 may allow the computer system 1000 to communicate with an external or remote device 1028 via a communication path 1026, which may be wired and / or wireless (or a combination thereof) and may include any combination of a LAN, a WAN, the Internet, etc. Control logic and / or data may be sent to and from the computer system 1000 via the communication path 1026.
[0102] Computer system 1000 may also be any of a personal digital assistant (PDA), a desktop workstation, a laptop or notebook computer, a netbook, a tablet computer, a smartphone, a smart watch or other wearable device, an appliance, part of the IoT, and / or an embedded system, to name a few non-limiting examples, or any combination thereof.
[0103] Computer system 1000 may be a client or server, accessing or hosting any applications and / or data via any delivery paradigm, including but not limited to remote or distributed cloud computing solutions; local or in-house software (“in-house” cloud-based solutions); “as a service” models (e.g., Content as a Service (CaaS), Digital Content as a Service (DCaaS), Software as a Service (SaaS), Managed Software as a Service (MSaaS), Platform as a Service (PaaS), Desktop as a Service (DaaS), Framework as a Service (FaaS), Backend as a Service (BaaS), Mobile Backend as a Service (MBaaS), and Infrastructure as a Service (IaaS), among others); and / or hybrid models including any combination of the examples described above or other services or delivery paradigms.
[0104] Any applicable data structures, file formats, and schemas in computer system 1000 may be derived from standards, including but not limited to JavaScript Object Notation (JSON), Extensible Markup Language (XML), another markup language (YAML), Extensible Hypertext Markup Language (XHTML), Wireless Markup Language (WML), message packages, XML User Interface Language (XUL), or any other similar representation of functionality, alone or in combination. Alternatively, proprietary data structures, formats, or schemas may be used alone or in combination with known or open standards.
[0105] In some embodiments, a tangible, non-transitory device or article of manufacture including a tangible, non-transitory computer-usable or readable medium having control logic (software) stored thereon may also be referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system 1000, main memory 1008, auxiliary memory 1010, and removable storage units 1018 and 1022, as well as tangible articles of manufacture embodying any combination of the foregoing. When the control logic is executed by one or more data processing devices (e.g., computer system 1000 or one or more processors 1004), such control logic may cause these data processing devices to operate as described herein.
[0106] Based on the teachings contained in this disclosure, it is obvious to a person skilled in the relevant art how to use the Fig.10 It is apparent that data processing devices, computer systems, and / or computer architectures other than those shown can be used to make and use the embodiments of the present disclosure. In particular, the embodiments can be operated with software, hardware, and / or operating system implementations other than those described herein.
[0107] in conclusion
[0108] It should be understood that the detailed description section, but not any other section, is intended to be used to interpret the claims. The other sections can set forth one or more but not all exemplary embodiments contemplated by the inventors, and therefore, are not intended to limit the present disclosure or the appended claims in any way.
[0109] Although the present disclosure describes exemplary embodiments of exemplary fields and applications, it should be understood that the present disclosure is not limited thereto. Other embodiments and modifications thereto are possible and within the scope and spirit of the present disclosure. For example, without limiting the generality of this paragraph, the embodiments are not limited to the software, hardware, firmware, and / or entities shown in the drawings and / or described herein. In addition, the embodiments (whether or not explicitly described herein) have significant utility for fields and applications beyond the examples described herein.
[0110] Embodiments are described herein with the aid of functional building blocks, which illustrate implementations of specified functions and their relationships. For ease of description, the boundaries of these functional building blocks are arbitrarily defined herein. As long as the specified functions and relationships (or their equivalents) are properly performed, alternative boundaries can be defined. In addition, alternative embodiments can use different orders to perform functional blocks, steps, operations, methods, etc. as described herein.
[0111] "One embodiment", "embodiment", "exemplary embodiment" or similar phrases mentioned herein indicate that the described embodiments may include specific characteristics, structures or features, but not every embodiment must include the specific characteristics, structures or features. In addition, these phrases do not necessarily refer to the same embodiment. In addition, when describing specific characteristics, structures or features in conjunction with an embodiment, it is within the cognitive scope of a technician in the relevant field to incorporate such characteristics, structures or features into other embodiments, regardless of whether or not explicitly mentioned or described herein. In addition, some embodiments can be described using the expressions "coupled" and "connected" and their derivatives. These terms are not necessarily synonymous with each other. For example, some embodiments can be described using the terms "coupled" and / or "connected" to indicate that two or more elements are in direct physical or electrical contact with each other. However, the term "coupled" can also mean that two or more elements are not in direct contact with each other, but still cooperate or interact with each other.
[0112] The breadth and scope of the present disclosure should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.
Claims
1. A computer-implemented method comprising: obtaining characteristics of each of a plurality of nodes constituting a mesh network; Based on the feature, determining a relay path for providing data from a source node among the plurality of nodes to a destination node among the plurality of nodes, the relay path comprising the source node, the destination node, and at least one relay node among the plurality of nodes; as well as An indication of the relay path is provided to at least one of the source node, the destination node, or the at least one relay node.
2. The computer-implemented method of claim 1 , wherein: The at least one relay node is configured to send and receive the data via a Wi-Fi based communication protocol, and the at least one relay node is not associated with an access point.
3. The computer-implemented method of claim 1 , wherein: At least one of the source node, the destination node, or the at least one relay node includes at least one of the following: Internet of Things (IoT) devices; television; Soundbar; Computing equipment; apparatus; or Smartphone.
4. The computer-implemented method of claim 1 , wherein: Determining the relay path includes: providing a representation of the features to a machine learning based classification model; and An output generated by the machine learning based classification model corresponding to an indication of a relay path is received.
5. The computer-implemented method of claim 1 , wherein: The features include at least one of the following: a throughput of each of the plurality of nodes; a received signal strength of each node in the plurality of nodes relative to one or more other nodes in the plurality of nodes; a signal-to-noise ratio of each node in the plurality of nodes relative to one or more other nodes in the plurality of nodes; a modulation and coding scheme used by each of the plurality of nodes; an indication of operational behavior of each of the plurality of nodes; or Each node of the plurality of nodes receives an indication of a period of a beacon signal from at least one other node of the plurality of nodes.
6. The computer-implemented method of claim 1 , wherein: The at least one relay node includes a first access point and a second access point communicatively coupled via the Internet.
7. The computer-implemented method of claim 1 , wherein: The indication of the relay path includes at least one of the following: a first identifier from a first node of a plurality of nodes in the relay path, wherein the at least one relay node receives data from the first node; or A second identifier from a second node among the plurality of nodes in the relay path, wherein the at least one relay node is to transmit data to the second node.
8. A system for relaying data in a mesh network, comprising: one or more memories; and at least one processor, each processor coupled to at least one of the one or more memories and configured to perform operations including: obtaining characteristics of each of a plurality of nodes constituting a mesh network; Based on the feature, determining a relay path for providing data from a source node among the plurality of nodes to a destination node among the plurality of nodes, the relay path comprising the source node, the destination node, and at least one relay node among the plurality of nodes; as well as An indication of the relay path is provided to at least one of the source node, the destination node, or the at least one relay node.
9. The system according to claim 8, wherein: The at least one relay node is configured to send and receive the data via a Wi-Fi based communication protocol, and the at least one relay node is not associated with an access point.
10. The system according to claim 9, wherein: At least one of the source node, the destination node, or the at least one relay node includes at least one of the following: Internet of Things (IoT) devices; television; Soundbar; Computing equipment; apparatus; or Smartphone.
11. The system according to claim 8, wherein: Determining the relay path includes: providing a representation of the features to a machine learning based classification model; and An output generated by the machine learning based classification model corresponding to an indication of a relay path is received.
12. The system according to claim 8, wherein: The features include at least one of the following: a throughput of each of the plurality of nodes; a received signal strength of each node in the plurality of nodes relative to one or more other nodes in the plurality of nodes; a signal-to-noise ratio of each node in the plurality of nodes relative to one or more other nodes in the plurality of nodes; a modulation and coding scheme used by each of the plurality of nodes; an indication of operational behavior of each of the plurality of nodes; or Each node of the plurality of nodes receives an indication of a period of a beacon signal from at least one other node of the plurality of nodes.
13. The system according to claim 8, wherein: The at least one relay node includes a first access point and a second access point communicatively coupled via the Internet.
14. The system according to claim 8, wherein: The indication of the relay path includes at least one of the following: a first identifier from a first node of a plurality of nodes in the relay path, wherein the at least one relay node receives data from the first node; or A second identifier from a second node among the plurality of nodes in the relay path, wherein the at least one relay node is to transmit data to the second node.
15. A non-transitory computer-readable medium having instructions stored thereon, which, when executed by at least one computing device, cause the at least one computing device to perform operations comprising: obtaining characteristics of each of a plurality of nodes constituting a mesh network; Based on the feature, determining a relay path for providing data from a source node among the plurality of nodes to a destination node among the plurality of nodes, the relay path comprising the source node, the destination node, and at least one relay node among the plurality of nodes; as well as An indication of the relay path is provided to at least one of the source node, the destination node, or the at least one relay node.
16. The non-transitory computer readable medium of claim 15, wherein: The at least one relay node is configured to send and receive the data via a Wi-Fi based communication protocol, and the at least one relay node is not associated with an access point.
17. The non-transitory computer readable medium of claim 16, Wherein, at least one of the source node, the destination node or the at least one relay node includes at least one of the following: Internet of Things (IoT) devices; television; Soundbar; Computing equipment; apparatus; or Smartphone.
18. The non-transitory computer readable medium of claim 15, wherein: Determining the relay path includes: providing a representation of the features to a machine learning based classification model; and An output generated by the machine learning based classification model corresponding to an indication of a relay path is received.
19. The non-transitory computer readable medium of claim 15, wherein: The features include at least one of the following: a throughput of each of the plurality of nodes; a received signal strength of each node in the plurality of nodes relative to one or more other nodes in the plurality of nodes; a signal-to-noise ratio of each node in the plurality of nodes relative to one or more other nodes in the plurality of nodes; a modulation and coding scheme used by each of the plurality of nodes; an indication of operational behavior of each of the plurality of nodes; or Each node of the plurality of nodes receives an indication of a period of a beacon signal from at least one other node of the plurality of nodes.
20. The non-transitory computer readable medium of claim 15, wherein: The at least one relay node includes a first access point and a second access point communicatively coupled via the Internet.