Patent Publication Number: US-2023156563-A1

Title: Mesh network system and mesh network resource allocation method

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This application claims priority of Taiwan Patent Application No. 110142161 filed on Nov. 12, 2021, the entirety of which is incorporated by reference herein. 
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The disclosure generally relates to a mesh network, and more particularly, to a mesh network system and a mesh network resource allocation method. 
     Description of the Related Art 
     In a mesh network system, there are usually numerous routers, and each of which is used to connect more than two network devices to determine the transmission path of data packets (files, messages, network interactions, etc.). The network devices are, for example, desktop computers and printers. The router may have transmitting and receiving functions and can serve as a transmitting terminal and a receiving terminal at the same time. The data packets transmitted by the router acting as the transmitting terminal include many layers, wherein one of the layers contains information like data source, file content, file size, and destination internet address, etc. The router acting as the receiving terminal mainly reads the information in this layer, determines the priority of data transmission, finds the best transmission path, and sends the data to the specified address. A Wi-Fi router is a router with wireless network sharing function that is composed of a router and a wireless network. Therefore, through the wireless and/or wired network connections between routers, a mesh network system can be formed. 
     Hence, how to enhance the utilization rate of the overall mesh network system and improve the processing efficiency of the mesh network system without adding new equipment has been one of the challenges to be overcome. 
     BRIEF SUMMARY OF THE INVENTION 
     In an exemplary embodiment, the disclosure is directed to a mesh network system that includes a first router. The first router has a processor for detecting a network architecture, designating a role of a second router as a transmitting device or a receiving device according to the network architecture, and assigning a work to the second router base on the role. The second router processes an event of the work and continues to monitor an activity related to the work after receiving the work assignment. 
     In another exemplary embodiment, the disclosure is directed to a mesh network resource allocation method that includes: detecting a network architecture by a processor of a first router; designating a role of a second router as a transmitting device or a receiving device according to the network architecture; assigning a work to the second router base on the role; and the second router processing an event of the work and continuing to monitor an activity related to the work after receiving the work assignment. 
     In the mesh network system and the mesh network resource allocation method provided by the disclosure, the router, as a parent node, is able to detect the processor and memory resources required for each model or task, and is also able to obtain information on the process and memory resources available in each of the routers in the network architecture that can be used aside from transmission, and so the parent-node router is able to allocate the models or tasks base on these information. Thus, without having to add new equipment, the utilization rate of the mesh network system as a whole is increased, and the processing efficiency of the mesh network system is improved. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
       The disclosure can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein: 
         FIG.  1    is a block diagram of a mesh network system according to an embodiment of the disclosure; 
         FIG.  2    is a flow chart of a mesh network resource allocation method according to an embodiment of the disclosure; 
         FIG.  3 A  and  FIG.  3 B  are schematic diagrams of a mesh network resource allocation method according to an embodiment of the disclosure; 
         FIG.  4    is a flow chart illustrating procedural steps of a task according to an embodiment of the disclosure; 
         FIG.  5    is a schematic diagram of routers with assigned tasks according to an embodiment of the disclosure; and 
         FIG.  6    is a schematic diagram of routers with assigned models for computation according to an embodiment of the disclosure. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     In order to illustrate the purposes, features and advantages of the disclosure, the embodiments and figures of the disclosure are shown in detail as follows. 
     Certain terms are used throughout the description and following claims to refer to particular components. As one skilled in the art will appreciate, manufacturers may refer to a component by different names. This document does not intend to distinguish between components that differ in name but not function. In the following description and in the claims, the terms “include” and “comprise” are used in an open-ended fashion, and thus should be interpreted to mean “include, but not limited to . . . ”. 
     The following disclosure provides many different embodiments, or examples, for implementing different features of the provided subject matter. Specific examples of components and arrangements are described below to simplify the present disclosure. These are, of course, merely examples and are not intended to be limiting. For example, the formation of a first feature over or on a second feature in the description that follows may include embodiments in which the first and second features are formed in direct contact, and may also include embodiments in which additional features may be formed between the first and second features, such that the first and second features may not be in direct contact. In addition, the present disclosure may repeat reference numerals and/or letters in the various examples. This repetition is for the purpose of simplicity and clarity and does not in itself dictate a relationship between the various embodiments and/or configurations discussed. 
     Furthermore, ordinal terms, such as “first”, “second”, and “third” used in the disclosure and claims, are used to modify the elements in the disclosure and claims, and are not used to indicate an order of priority, antecedent relationship, one element precedes another element, or the chronological order of execution of method steps, but is only used to distinguish elements with the same name. 
     Referring to  FIG.  1   , a mesh network system  100  includes a router AP 1  and a router AP 2 . Each of the routers AP 1 , AP 2  includes a Wi-Fi transmission service device  30 ,  31 , a 2.4G/5G/6G wireless device  40 ,  41 , a processor  10 ,  11 , and a storage device  20 ,  21 . 
     In one embodiment, each of the processors  10 ,  11  is composed by integrated circuits such as micro controllers, microprocessors, digital signal processors, application specific integrated circuits (ASIC), or logic circuits. 
     In one embodiment, each of the storage devices  20 ,  21  can be implemented using read-only memory, flash memory, floppy disk, hard disk, optical disc, compact disc, flash drive, tape, database accessible by internet, or any storage medium with similar functions. 
     In one embodiment, the router AP 1  represents a receiving terminal, and the AP 2  represents a transmitting terminal. In another embodiment, the router AP 1  and the router AP 2  may define themselves to be the transmitting terminal or the receiving terminal by their respective internal processors  10 ,  11 . 
     In one embodiment, when the router AP 1  is a parent node, the processor  10  of the router AP 1  designates other routers in the network architecture, like the child node router AP 2 , to serve as a transmitting terminal or a receiving terminal. 
     In one embodiment, the router AP 1  further includes a Wi-Fi sensing engine  50 . The Wi-Fi sensing engine  50  may be realized by an artificial intelligence engine that is a known model, for example but not limited to, a convolutional neural network (CNN), a recurrent neural network (RNN), or other known models. 
     In general, a mesh network system typically uses a main router with a wired connection to a broadband modem, plus one or more routers like wireless routers or satellite routers that can be placed in different rooms or locations depending on the size of the building. The main router and the satellite routers form their own mesh Wi-Fi network to cover a wider area and therefore providing higher speed and better reliability than traditional Wi-Fi routers. To extend the wireless range, the mesh network contains more than two routers connecting with one another, and depending on the connecting signal, the mesh network can be connected in a topology of star, daisy chain, or tree. In the tree topology, there are parent nodes, and each of which connects with more than one child node. These nodes exchange topology request/response messages to each other, and eventually the parent nodes would obtain the placement relationship between all child nodes as well as the connection addresses of all child nodes. In other words, all of the routers are able to communicate with one another. 
     In one embodiment, at least one of the routers in the mesh network serves as a receiver (Rx) and/or a transmitter (Tx) for wireless sensing. 
     In some embodiments, the router AP 1  and the router AP 2  have the same components, and the communication link between the two routers AP 1 , AP 2  is viewed as a network architecture. 
     In one embodiment, when the mesh network  100  includes a plurality of routers, the network architecture can be, but not limited to, a star topology network architecture, a daisy chain topology network architecture, a tree topology network architecture, or any other type of network architecture. In one embodiment, when the router AP 1  is a parent node, the processor  10  of the router AP 1  is able to detect the type of the current network architecture. 
     Since the main function of the routers AP 1 , AP 2  is to transmit signals, each of the routers AP 1 , AP 2  has its own processor  10 ,  11  and storage device  20 ,  21 , and when the routers AP 1 , AP 2  are not busy, the processors  10 ,  11  and the storage devices  20 ,  21  can be allocated to process work related to an activity. For example, the work is human activity detection, and the activity includes human movement, gesture recognition, and biometric measurement. 
     Referring to  FIG.  2   , a mesh network resource allocation method  200  is illustrated to describe some parts of the embodiment. 
     In step  210 , a network architecture is detected and/or monitored by a processor  10  of a router AP 1 . 
     For example, through transmitting and receiving packets, the router AP 1  obtains information about the network architecture via the transmission of packets, and the network architecture is, for example, a star topology network architecture, a daisy chain topology network architecture, a tree topology network architecture, or any other type of network architecture. 
     In step  220 , according to the network architecture, a role of a router AP 2  is designated by the processor  10  of the router AP 1  to be a transmitting device or a receiving device. 
     In one embodiment, the router AP 1  is a parent node, and the router AP 2  is a child node. 
     In one embodiment, when the router AP 1  is a parent node, it can communicate and conduct transmission with the external network directly. 
     In step  230 , through the processor  10  of the router AP 1 , work is assigned to the router AP 2  base on the role. 
     In one embodiment, the role refers to being a transmitting terminal or a receiving terminal. In another embodiment, the role refers to being a parent node or a child node. 
     In one embodiment, when the router AP 1  is a parent node, the processor  10  assigns work to the router AP 2  or other routers base on their roles. 
     Referring to  FIG.  3 A , a mesh network has  6  routers AP 1 ˜AP 6  and the resource of each router AP 1 ˜AP 6  has not been allocated. The router AP 1  is a parent node and serves the role of receiving terminal Rx 1  to the router AP 2 , and the router AP 2  serves the role of transmitting terminal Tx 1  to the router AP 1 . The router AP 1  serves the role of receiving terminal Rx 2  to the router AP 3 , and the router AP 3  serves the role of transmitting terminal Tx 2  to the router AP 1 . The router AP 4  serves the role of transmitting terminal Tx 3  to the router AP 2 , and the router AP 2  serves the role of receiving terminal Rx 3  to the router AP 4 . The router AP 3  serves the role of receiving terminal Rx 4  to the router AP 5 , and the router AP 5  serves the role of transmitting terminal Tx 4  to the router AP 3 . The router AP 3  serves the role of receiving terminal Rx 5  to the router AP 6 , and the router AP 6  serves the role of transmitting terminal Tx 5  to the router AP 3 . In this embodiment, there are 5 work, and since work assignment is not performed to each router, the router AP 1  ends up with 2 work to process (the numeral inside the brackets represents the number of work to be processed) whereas the router AP 2  has 1 work to process, the router AP 3  has 2 work to process, and other routers AP 4 ˜AP 6  has no work to process. 
     In one embodiment, work refers to computation task or workload. 
     In one embodiment, both models and tasks require computation. 
     Referring to  FIG.  3 B , work assignment is performed to each router in the mesh network. The mesh network has 6 routers AP 1 ˜AP 6  and the router AP 1  is a parent node. The router AP 1  serves the role of transmitting terminal Tx 1  to the router AP 2 , and the router AP 2  serves the role of receiving terminal Rx 1  to the router AP 1 . The router AP 1  serves the role of transmitting terminal Tx 2  to the router AP 3 , and the router AP 3  serves the role of receiving terminal Rx 2  to the router AP 1 . The router AP 4  serves the role of receiving terminal Rx 3  to the router AP 2 , and the router AP 2  serves the role of transmitting terminal Tx 3  to the router AP 4 . The router AP 3  serves the role of transmitting terminal Tx 4  to the router APS, and the router AP 5  serves the role of receiving terminal Rx 4  to the router AP 3 . The router AP 3  serves the role of transmitting terminal Tx 5  to the router AP 6 , and the router AP 6  serves the role of receiving terminal Rx 5  to the router AP 3 . It can be seen from above that the network architecture in FIG.  3 B is the same as the network architecture in  FIG.  3 A . 
     In  FIG.  3 B , the router AP 1  is a parent node and is used to detect a topology of the entire network architecture which is, in this embodiment, a tree topology structure. The router AP 1  assigns work to each of the routers AP 1 ˜AP 6  to share the workload. In this embodiment, there are 5 work, and the router AP 1  assigns work base on predefined rules and hardware loading of each router AP 1 ˜AP 6 . The hardware loading is, for example, a memory status and/or a processor status of each router AP 1 ˜AP 6 . In this embodiment, the router AP 1  assigns 1 work to the router AP 2  (the numeral in the brackets represents the number of work to be processed), 1 work to the router AP 3 , 1 work to the router AP 4 , 1 work to the router AP 5 , and 1 work to the router AP 6 . 
     Hence, based on the predefined rules or the hardware loading of each router AP 1 ˜AP 6 , the router AP 1  is able to assign work to each router AP 1 ˜AP 6  to enhance processing efficiency. In step  240 , after the router AP 2  receives the work assignment, the router AP 2  processes an event of the work and continues to monitor an activity related to the work. 
     In one embodiment, when the router AP 2  receives the work assignment, the processor  11  of the router AP 2  is used to process the event that needs to be computed for the work, like convert time domain to frequency, filter noise, analyze the received signal waveform, and capture characteristics of the signal waveform such as signal change, phase change, etc., and base on the captured signal characteristics, the router AP 2  determines an event to be triggered by the work, such as sending a message to a mobile device, and continues to monitor an activity related to the work. 
     In this embodiment, how the routers AP 3 ˜AP 6  detect and process the events is similar to that of the router AP 2 , and the difference lies in that the event which each of the routers AP 3 ˜AP 6  detects and processes may not be the same. 
     In one embodiment, when the processor  10  detects a change in the network architecture, the processor  10  dynamically adjusts the work assignment according to the changed network architecture. 
     In one embodiment, the router AP 1  assigns work to the router AP 2 , and the work includes a computational workload. 
     Therefore, by the router AP 1  assigning work to each of the routers AP 1 ˜AP 6 , 5 routers AP 2 ˜AP 6  in this embodiment are processing and detecting the work and activity assigned to them, and so the loading on each router is balanced whilst the processing efficiency of the network architecture as a whole is increased. In one embodiment, the work refers to a task. In one embodiment, each task is preferably assigned to each child node AP 2 ˜AP 6  because in a mesh network, a child node is succession of a parent node, and in terms of sharing workload, the distribution of resources this way is always better than not assigning work at all. Generally, the parent node has more communicative matters to process than the child node in the mesh network. Also, this way saves time, that is if each router AP 1 ˜AP 6  needs to monitor resource usage at all times, or if the tasks are sequential, there would be time delay issues because completed tasks must be transmitted to next station for process, and not every router can do such monitoring. Hence, tasks can be assigned by this simple method. 
     In one embodiment, the processor  10  detects whether other router has joined the network architecture and detects whether any router has left the network architecture. When the router AP 1  is a parent node, the router AP 1  updates the information about the current network architecture in real-time, so as to redistribute loadings assigned to each router. 
     In one embodiment, the processor assigns a plurality of tasks to all of the routers AP 1 ˜AP 6  base on the processor status and the memory status of each router AP 1 ˜AP 6  in the network architecture. In other words, the processor  10  is able to determine the processor resource and the memory resource required by each task and to obtain the processor resource and the memory resource available for use and excluding transmission-required-resources in each router AP 1 ˜AP 6 , and thereby the processor  10  is able to assign the tasks base on these information. 
     In one embodiment, each router accepts at least one task. For example, the router AP 1  accepts one task (a), and the router AP 2  accepts two tasks (a, b), namely, task (a) and task (b). 
     Referring to  FIG.  4   , the contents or steps of the tasks include: (a) the router AP 1  capturing a signal and transmitting the signal to a temporary storage such as the storage device  20 , wherein the storage device  20  can be a memory; (b) parsing a plurality packets in the signal; (c) pre-processing the signal by pre-processing the parsed packet data; (d) inferencing via an artificial intelligence engine (AI engine) by using the pre-processed signal; and (e) outputting result by the AI engine. 
     In one embodiment, the router AP 1  assigns tasks and each of the routers AP 1 ˜AP 6  executes its own tasks. Referring to  FIG.  5   , each router executes their assigned tasks. In this embodiment, there are 5 tasks to be processed, and the router AP 1  is responsible for (c) pre-processing signal of these 5 tasks while the routers AP 2 ˜AP 6  execute their own tasks (a, b, d, e). For example, the router AP 2  executes (a) capturing a signal and transmitting the signal to a temporary storage/buffer, (b) parsing a plurality of packets in the signal, (d) inferencing events by AI engine, and (e) outputting result of the first task; the router AP 3  executes (a) capturing a signal and transmitting the signal to a temporary storage/buffer, (b) parsing a plurality of packets of the signal, (d) inferencing events by AI engine, and (e) outputting result of the second task; the router AP 4  executes the steps of (a) capturing a signal and transmitting the signal to a buffer, (b) parsing a plurality of packets, (d) inferencing events by AI engine, and (e) outputting result of the third task; the router AP 5  executes the steps of (a) capturing a signal and transmitting the signal to a buffer, (b) parsing a plurality of packets, (d) inferencing events by AI engine, and (e) outputting result of the fourth task; and for the fifth task, the router AP 6  executes the steps of (a) capturing a signal and transmitting the signal to a buffer, (b) parsing a plurality of packets, (d) inferencing events by AI engine, and (e) outputting result. 
     When the tasks are assigned by the router AP 1 , since the steps (a)˜(e) of the tasks are sequential, each of the tasks needs to be performed according to the steps (a)˜(e). 
     For example, for the fourth task, the router AP 5  executes step (a) capturing a signal and transmitting the signal to a temporary storage and step (b) parsing a plurality of packets in the signal before transmitting the result of step (b) to the router AP 1  which is responsible for step (c) pre-processing signal of the fourth task. After completing step (c), the router AP 1  transmits the result of step (c) to the router AP 5 , and the router AP 5  subsequently executes step (d) inferencing events by AI engine and step (e) outputting result. 
     Thus, the processor  10  assigns a plurality of tasks to all routers in the network architecture according to the processor status and the memory status of each router AP 1 ˜AP 6 . When the processor  10  detects the processor status of one of the routers AP 2 ˜AP 6  is higher than a processor performance loading or the memory status of one of the routers AP 2 ˜AP 6  is higher than a memory capacity loading, like when the memory status of router AP 2  is 95% in usage which is over the memory capacity loading of 40%, the router AP 1  does not assign any task to the router AP 2 . 
     In one embodiment, the processor  10  assigns a plurality of models to all routers AP 1 ˜AP 6  in the network architecture according to the processor status and the memory status of each router AP 1 ˜AP 6 . 
     In one embodiment, each router accepts at least one model such as model A and continues to monitor for the triggering of at least one event corresponding to the at least one model. 
     In one embodiment, the models are artificial intelligence models. 
     For example, the plurality of models are models that have been trained by existing neural network and are respectively used to detect intrusion, breathing, and falling. A model A for intrusion detection refers to a model that has been trained with an existing method to determine an intruder has entered the house when user is at work, and ultimately relays the intrusion message to a mobile device of the user. A model B for breathing detection refers to a model that has been trained with an existing method to detect chest movements for determining whether the user is breathing. A model C for falling detection refers to a model that has been trained with an existing method to detect human posture for determining whether the user fell down. 
     Referring to  FIG.  6   , the routers AP 1 ˜AP 6  are assigned with models for computation. In  FIG.  6   , the processor  10  of the router AP 1  can detect in advance the remaining processor resources and memory resources of each router AP 1 ˜AP 6 , and assign the models base on these information. For example, the router AP 1  is responsible for executing the model C for continuously detecting whether someone fell down in the space, and the routers AP 2 ˜AP 6  are each responsible for executing the model A or the model B for continuously detecting whether there are intruders in the room or for continuously detecting for signs of breathing, respectively. However, these activities are merely exemplary, and the applied models are trained according to the required detection functionality. 
     Thus, the processor  10  assigns the plurality of models to the routers AP 1 ˜AP 6  base on the processor status and the memory status of each router AP 1 ˜AP 6 . There is no sequential issue involved with such assignment, and each router AP 1 ˜AP 6  just needs to continuously detect whether an event matched the assigned model has happened. 
     In addition, when the processor  10  detects a change in the network architecture, the processor  10  dynamically adjusts the assignment, of the models or the tasks, according to the changed network architecture. 
     In the mesh network system and the mesh network resource allocation method shown in the present disclosure, the router (being a parent node, for example) is able to detect the necessary processor resource and memory resource required by each model or task, and is also able to obtain the available processor resource and memory resource left in each router less what is needed for signal transmission, and so the parent-node router can assign models or tasks base on these information. Therefore, the usage rate of the mesh network system as a whole is increased, and the processing efficiency of the mesh network system is enhanced, without having to add new equipment. 
     The method, or particular form or a part thereof, can exist in a form of program codes that can be stored in a physical medium such as floppy disc, optical disc, hard drive, or any other machine readable, like computer readable, storage medium, and/or in a computer program product to which its external form is not limited. When the program code is loaded and executed by the machine/computer, the machine became a device practicing the present disclosure. The program code can also be transmitted by some transmitting media such as electric wire, electrical cable, optical fiber, or any transmission type, and when the program code is received, loaded, and executed by the machine/computer, the machine became a device practicing the present disclosure. When a general-purpose processing unit is used for implementation, the program code combines with the processing unit to provide an operation similar to a unique device applying specific logic circuits. 
     While the invention has been described by way of example and in terms of the preferred embodiments, it should be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.