Method and system for data transfer over mesh network
By selecting seed nodes in the mesh network and using the autonomous processing capabilities of edge devices and Internet access to optimize data transmission, the problems of insufficient throughput and redundant transmission in the wireless mesh network are solved, and efficient data transmission is achieved.
Patent Information
- Application Number
- CN202380088742.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2022-12-30
- Filing Date
- 2023-12-19
- Publication Date
- 2025-07-22
AI Technical Summary
The prior art has problems such as insufficient throughput, low communication efficiency, redundant data transmission and resource overload in wireless mesh networks, especially in large mesh networks, which are difficult to efficiently transmit time-sensitive data.
The seed node mechanism is adopted, nodes in the mesh network are selected as seed nodes, and data is sent to the subset of nodes through unicast, multicast or seeding operations, reducing direct connections and repeated transmissions, and optimizing data transmission with the autonomous processing capabilities of edge devices and Internet access.
It improves the data transmission efficiency of mesh networks, reduces unnecessary data transmission volume, reduces resource overhead of the head-end system, and is suitable for time-sensitive data transmission in low bandwidth environments.
Smart Images

Figure CN120359782A_ABST
Abstract
Description
[0001] Related Applications
[0002] This application claims the benefit of priority of UK Patent Application Serial No. 2219840.2, filed on December 30, 2022, which is incorporated herein by reference in its entirety. Technical Field
[0003] This disclosure pertains to the field of methods and systems for transmitting data over a mesh network, and particularly over a mesh network including nodes with devices for metering and / or controlling resources. Background Art
[0004] Metering devices can be deployed in enterprises, residences, and other locations to measure the consumption of resources such as electricity, water, and gas.
[0005] Although some metering devices can only provide basic metering functions, other metering devices in the art, referred to as "smart meters", can provide more advanced functions such as control and communication functions.
[0006] In an example, some metering devices can be configured to convey information related to resource consumption. In another example, some metering devices can be configured to receive information such as billing information and control signals, such as service disconnection control signals, etc. In an example, the transmission of information related to the metering of resource consumption can simplify automatic billing, reduce operating costs, and enable advanced analysis of resource consumption.
[0007] Although in some examples, metering devices can communicate directly with a router or gateway device, in other examples, a wireless mesh network can be formed by multiple metering devices, where each metering device operates as an interconnected node within the wireless mesh network.
[0008] When implemented in a wireless mesh network, a metering device operating as a network node can relay messages to or from a gateway device, router, or head-end system. In an example, messages can be routed along a path by hopping from node to node (e.g., from metering device to metering device) until the message reaches the target destination (e.g., gateway / router or target metering device).
[0009] Various routing protocols can be implemented in a wireless mesh network to ensure the availability of sufficient data routing paths within the mesh network at any given time. In some examples of a wireless mesh network, paths within the network can self-form and / or self-repair (e.g., reconfigure around a broken path). Such self-repair can allow a routing-based network to operate in the event of a node failure or when the connection between nodes becomes unreliable.
[0010] In use, intelligent metering devices within a wireless mesh network can continuously communicate with each other to, for example, exchange messages or send data. In an example, different nodes within the network can have different hardware and software configurations and can thus support different communication modes. Additionally, each node can support multiple communication modes.
[0011] Throughput and reliability are important issues for communication in such wireless mesh networks. For example, throughput can be affected if a node has communication to process but cannot access the communication channel. Other nodes may already be using the channel for communication, or the channel may be unavailable in some other way. Additionally, variable environmental conditions and in-band interference can cause communication failures in wireless mesh networks.
[0012] An example mesh network of metering devices can include hundreds of thousands or even millions of devices. In use, a head-end system may need to push data to the devices on the mesh network. However, the throughput of the mesh network can impede such an operation and can incur significant overhead at the head-end system.
[0013] Furthermore, existing data distribution schemes for sending data on the mesh network may implement inefficient schemes that can result in an overload of redundant or discarded data.
[0014] In some examples, an outbound processing batch may overload the resources of the head-end system. Additionally, as the system supports more types of data, each device may need to propagate more than one message in the network.
[0015] As an example, when targeting the entire network, especially if the data to be sent has time constraints, unicast transmission of data across the mesh network may actually be infeasible.
[0016] Similarly, multicast transmission of data may be inherently inefficient on large mesh networks, especially if receiving nodes may discard the data, or if the multicast packets are insufficient to filter out devices that do not need the data. Blind unicast is also a poor solution, mainly because it is not scalable. Multicast can impose an unnecessary load on the mesh network.
[0017] Accordingly, it is desirable to provide a relatively low-complexity, efficient, and effective method and system for transmitting data on a mesh network and, in particular, on a mesh network including nodes with devices for metering and / or controlling resources. Such a method and system are desirable for transmitting time-sensitive data on a mesh network that supports relatively low-bandwidth data transmission between nodes.
[0018] Accordingly, an object of at least one embodiment of at least one aspect of the present disclosure is to eliminate or at least mitigate at least one of the above disadvantages of the prior art. Summary of the Invention
[0019] The present disclosure pertains to the field of methods and systems for transmitting (e.g., sending) data over a mesh network, and particularly over a mesh network including nodes with devices for metering and / or controlling resources. According to a first aspect of the present disclosure, a method for transmitting data over a mesh network is provided. The method includes selecting at least one node in the mesh network to be configured as a seed node for sending data to a subset of nodes in the mesh network. The method further includes providing data to be sent to the subset of nodes from a head-end system to at least one seed node. The method further includes sending the data from at least one seed node to the subset of nodes.
[0020] Advantageously, by seeding nodes such that the seed nodes send data, an efficient use of the mesh network can be achieved. That is, data can be sent to nodes without the overhead of directly connecting to and sending data to each node, which can result in significant overhead at the head-end system.
[0021] The mesh network can include a full mesh topology or a partial mesh topology. The network can include one or more intermediate nodes, such as routers or gateway devices. The network can include one or more root nodes between nodes (e.g., end nodes) and the head-end system.
[0022] The head-end system can be used as a central processing system for sending and / or receiving data, data streams, data packets, and / or messages from nodes. The head-end system can be or can include a server. The head-end system can be outside the mesh network, e.g., can send / receive from one or more nodes in the mesh network. The head-end system can generate and / or process data. The head-end system can be communicatively coupled to another system (e.g., a cloud-based system) for generating and / or processing data.
[0023] In an example, the network can be, for example, a time-slotted channel hopping (TSCH) network defined by IEEE 802.15.4.
[0024] In an example, nodes can be configured to support communication modes including orthogonal frequency division multiplexing (OFDM). One or more nodes can be configured to support a communication mode based on frequency shift keying (FSK).
[0025] The step of providing data to at least one seed node can include sending the data from the head-end system by performing a unicast operation over the mesh network.
[0026] That is, the head-end system can convey data to a node selected as a seed node, for example, convey directly or convey via one or more nodes by addressing the data to the seed node. Advantageously, this can limit the amount of data transmission on the mesh network. The head-end system can convey data via the root node of the mesh network.
[0027] The step of providing data to at least one seed node can include the seed node sending a request for the data on the mesh network and / or obtaining the data from the head-end system.
[0028] Advantageously, the node selected as the seed node can send a request for data to the head-end system. In response, the head-end system can unicast the data to the seed node, thereby limiting the amount of unnecessary or duplicate data transmission on the mesh network.
[0029] The step of providing data to at least one seed node can include at least one seed node sending a request for the data on another network and / or obtaining the data from the head-end system.
[0030] For example, a node (e.g., an end node) can be configured to communicate on another network (e.g., the Internet) via a wireless connection or the like. In an example, the node can be a smart meter installed at a home location, and the smart meter has Internet capabilities via a home router (e.g., via a Wi-Fi connection or the like).
[0031] The node can obtain data from the head-end system via another network, such as via the Internet. The node can request data from the head-end system and / or the head-end system can push data to the node.
[0032] Advantageously, providing data to the node via another network (e.g., via the Internet) can reduce unnecessary or duplicate data transmission on the mesh network.
[0033] Each node within the subset of nodes can include a device or module for metering and / or controlling resources.
[0034] For example, the device can include circuitry and / or components for metering the consumption of resources and / or controlling access to resources, such as via a service disconnect switch or the like.
[0035] Each node within the subset of nodes can include a device having processing capabilities configured to communicate with devices of one or more other nodes within the subset on the mesh network, such as an edge device.
[0036] That is, each node may include or may be attached to a device referred to in the art as an "edge" device. In an example embodiment, each node may include a network radio that may be directly attached to a metering device for metering the consumption of resources such as natural gas, electricity, or water.
[0037] Such an edge device may be configured to communicate directly with other nodes on the network without having to communicate with or via a head-end system or any intermediate root node.
[0038] That is, the edge device may have sufficient processing and communication capabilities to achieve a degree of autonomous operation without direct and / or continuous supervision of control by the head-end system.
[0039] The selection of at least one seed node may be based on the geographical location of the at least one seed node relative to other nodes within the network.
[0040] For example, a seed node may be a node located within a relatively dense population of nodes forming a subset. A seed node may be a node substantially surrounded by the nodes forming the subset.
[0041] The selection of at least one seed node may be based on the address and / or identification data corresponding to the at least one seed node.
[0042] A seed node may be selected based on a postal code / zip code. A seed node may be selected based on coordinates (e.g., latitude and longitude).
[0043] The selection of at least one seed node may be based on the level of interference between the seed node and other nodes in the network. For example, the selection of at least one seed node may be based on a received signal strength indicator (RSSI), which may indicate the level / quality / reliability of connectivity.
[0044] Advantageously, a seed node may be selected as a node having sufficient / adequate connectivity with one or more other nodes to enable efficient transfer of data within the subset.
[0045] The selection of at least one seed node may be based on the type and / or level of connectivity of the at least one seed node to the head-end system.
[0046] For example, a seed node may be a node having Internet access via another network. In an example, a seed node may have a Wi-Fi connection to the network to enable Internet access.
[0047] The type may additionally / alternatively refer to a category, such as a router, a metering device, etc.
[0048] The selection of at least one seed node can be based on depth, such as the number of hops. That is, the selection of at least one seed node can be based on, for example, the minimum distance from a node to the root node of the mesh network or to the head-end system in the mesh network. In fact, this depth can be represented as a map.
[0049] The selection of at least one seed node can be based on the time-to-live (TTL) and / or the hop limit. For example, the selection of at least one seed node can be based on a predefined hop limit.
[0050] The TTL (which can be an integer quantity) can refer to the number of hops it takes for a message to reach the root from a node (e.g., a seed node). For example, in a case where the depth can be represented as a map, the TTL can actually indicate the map while taking into account any traffic in the network traffic. In fact, the TTL can be considered to represent the time it may take for one or more messages to reach the head-end system from a node (e.g., the selected seed node). Advantageously, although the TTL can be similar to the depth in some respects, it can be easier to track and easier to average. In fact, the TTL value can be based on geography and / or connectivity.
[0051] The selection of at least one seed node can be based on throughput, such as the throughput of the number of messages being forwarded. That is, in some examples, the selection of at least one seed node can be based on tracking the frequency of a particular node that the network selects for message delivery.
[0052] The selection of at least one seed node can be based on neighbor list density. For example, given a lookup table of neighbors (e.g., adjacent nodes), the occurrences of nodes and the occurrences of the best / optimal nodes can be searched. By scoring such combinations, a node can be selected as a seed node. It can be noted that the nodes identified as "best / optimal nodes" can be based on any one or more of the above criteria, such as type, category, depth, TTL, throughput, level of interference / RSSI, address and / or identification data, geographical location, etc.
[0053] As described above, the selection of at least one seed node can be based on at least one of several parameters, variables, and / or factors. It will be understood that a combination of one or more of the above can be implemented to select a particular seed node.
[0054] The method according to any one of the preceding claims, wherein the node to be configured as the seed node is dynamically selected.
[0055] For example, a node initially selected as a seed node can be disabled during use, and another node can be selected as a seed node to temporarily or permanently replace the initially selected seed node.
[0056] The selection of nodes as seed nodes can be made by the head-end system, e.g., based on the suitability of the nodes as seed nodes, and / or based on the characteristics of one or more nodes, and / or based on programmable parameters such as user settings, installation parameters, etc.
[0057] Multiple nodes in a mesh network can be selected to be configured as seed nodes for sending data to a subset of nodes in the mesh network.
[0058] The amount (quantity) of multiple nodes selected as seed nodes can be based, for example, on the density of the seed nodes. The density of the seed nodes can refer, for example, to the geographical density of the seed nodes.
[0059] In some examples, the amount of seed nodes in a mesh network can be increased or decreased, e.g., dynamically increased or decreased.
[0060] For example, the amount of seed nodes in a mesh network can be increased or decreased based on an initial selection or distribution (predefined) time limit. That is, the initial selection or distribution of the seed nodes can expire and subsequently be updated, increased, decreased, or otherwise changed.
[0061] In another example, the amount of seed nodes in a mesh network can be increased or decreased based on the size of the network. The size can refer to the number of nodes and / or the geographical size. For example, when a device (node) is registered (e.g., added to the network), additional nodes can be selected as seed nodes. In some examples, when a device (node) is registered (e.g., added to the network), existing seed nodes can be reconfigured so that they no longer operate as seed nodes. In non-limiting examples, such deselection of seed nodes can depend on where any such new devices registered on the network are located.
[0062] In another example, the amount of seed nodes in a mesh network can be increased or decreased based on a score associated with one or more regions of the network. For example, such a score can indicate the likelihood of success (e.g., successful operation as a seed node) in a particular region of the network.
[0063] In another example, the amount of seed nodes in a mesh network can be increased or decreased based on a score associated with one or more seed nodes. For example, if it is determined during a network calibration process that there are an excessive number of seed nodes (e.g., operating "too well"), then the number of seed nodes in the mesh network can be reduced. Conversely, if it is determined during a network calibration process that the amount of seed nodes is insufficient (e.g., operating "not well enough"), then the number of seed nodes in the mesh network can be increased.
[0064] As described above, the selection of the amount of seed nodes in a mesh network can be based on at least one of a number of parameters, variables, and / or factors. It will be understood that a combination of one or more of the above can be implemented to select a particular amount of seed nodes in a mesh network.
[0065] In some examples, the amount of nodes to be configured as seed nodes can be selected dynamically.
[0066] A subset of nodes can be defined by the geographical location and / or characteristics of each node in the subset of nodes.
[0067] For example, the subset of nodes can correspond to a zip code / postal code area or a defined latitude and longitude range.
[0068] Sending data from at least one seed node to a subset of nodes can include at least one seed node performing a unicast operation to push the data to one or more adjacent nodes.
[0069] Sending data from at least one seed node to a subset of nodes can include a seed device hosting the data and providing the data to the one or more adjacent nodes in response to a request for the data from the one or more adjacent nodes.
[0070] Sending data from at least one seed node to a subset of nodes can include at least one seed node performing a multicast operation to push the data to one or more nodes in the subset via one or more other nodes in the subset.
[0071] Sending data from at least one seed node to a subset of nodes can include at least one seed node preferentially sending data to nodes without an active Internet connection as compared to sending data to nodes with an active Internet connection.
[0072] The data can include weather forecast data.
[0073] In other examples, the data can include firmware updates.
[0074] According to a second aspect of the present disclosure, a system is provided, such as a mesh network system. The system includes a network of nodes configured to form a mesh network. The system further includes a headend system. At least one node is configured as a seed node for sending data to a subset of nodes in the mesh network. The headend system is configured to provide the data to be sent to the subset of nodes to at least one seed node. The seed node is configured to send the data to the subset of nodes.
[0075] The headend system can be configured to send data to at least one seed node by performing a unicast operation on the mesh network.
[0076] At least one seed node can be configured to send requests for data and / or obtain data from a head-end system over a mesh network.
[0077] At least one seed node can be configured to send requests for data and / or obtain data from a head-end system over another network.
[0078] Each node within a subset of nodes can include a device for metering and / or controlling resources.
[0079] Each node within a subset of nodes can include a device having processing capabilities configured to communicate with devices of one or more other nodes within the subset over a mesh network.
[0080] The selection of at least one seed node can be based on at least one of the following: the geographical location of the at least one seed node relative to other nodes within the network; the address and / or identification data corresponding to the at least one seed node; the level of interference between the at least one seed node and other nodes in the network; and / or the type and / or level of connectivity of the at least one seed node to the head-end system.
[0081] Nodes to be configured as seed nodes can be selected dynamically. For example, the head-end system can be configured to select nodes to be configured as seed nodes.
[0082] A subset of nodes can be defined by the geographical location and / or characteristics of each node within the subset of nodes.
[0083] At least one seed node can be configured to perform a unicast operation to push data to one or more adjacent nodes.
[0084] At least one seed node can be configured to host data and provide the data to one or more adjacent nodes in response to requests for the data from the one or more adjacent nodes.
[0085] At least one seed node can be configured to perform a multicast operation to push data to one or more nodes within a subset via one or more other nodes of the subset.
[0086] At least one seed node can be configured to prioritize sending data to nodes without an active Internet connection over sending data to nodes with an active Internet connection.
[0087] The data can include weather forecast data.
[0088] The above summary is intended to be merely exemplary and not restrictive. The present disclosure includes one or more corresponding aspects, embodiments, or features, either alone or in various combinations, whether or not specifically recited (including claimed) in that combination or alone. It should be understood that the features defined above according to any aspect of the present disclosure or the features relating to any particular embodiment of the present disclosure below can be used alone or in combination with any other defined features in any other aspect or embodiment, or form additional aspects or embodiments of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0089] These and other aspects of the present disclosure will now be described, by way of example only, with reference to the accompanying drawings, in which:
[0090] Figure 1 A block diagram depicting an example of a mesh network;
[0091] Figure 2 An example of unicast operation in a mesh network is depicted;
[0092] Figure 3 An example of multicast operation in a mesh network is depicted;
[0093] Figure 4 Several examples of transmitting data in a mesh network according to an embodiment of the present disclosure are depicted;
[0094] Figure 5 Depicts a mesh network according to an embodiment of the present disclosure Figure 4 A block diagram of an example node of; and
[0095] Figure 6 A method of transmitting data in a mesh network according to an embodiment of the present disclosure is depicted. DETAILED DESCRIPTION
[0096] Figure 1 An example of a mesh network 100 is depicted. The example network 100 can be a time-synchronized channel hopping (TSCH) network. The mesh network 100 is an example of a mesh network on which the present invention can be implemented. In the example, the mesh network 100 can include a full mesh topology (e.g., where any node can communicate with any node within range), or a partial mesh topology with more limited or selected connectivity between nodes.
[0097] An example mesh network includes a head-end system 110. The head-end system 110 can be used as a central processing system for sending and / or receiving data, data streams, data packets, and / or messages from nodes 105a - 105h of the mesh network 100, as described in more detail below. The head-end system 110 can generate and / or process data. In an example, the head-end system 110 can be communicatively coupled to another system (such as a cloud-based system) for generating and / or processing data.
[0098] The example mesh network 100 includes a root node 115. The root node 115 of the mesh network 100 can be configured to communicate with nodes 105a - 105h to perform operations such as obtaining data from nodes 105a - 105h and / or sending data to the head-end system 110. In some examples, the root node 115 can also operate as a node similar to other nodes 105a - 105h. The root node 115 can include a router or gateway device. The root node 115 can be configured to send and receive data to / from the head-end system 110 via another network 120 such as the Internet, an intranet, or any other data communication network.
[0099] Although only a single root node 115 is depicted for illustrative purposes, it will be understood that the mesh network 100 can include more than one root node 115.
[0100] Similarly, the depicted mesh network 100 includes multiple nodes 105a - 105h. Each node 105a - 105h can be an end node. For purposes of example, only nodes 105a - 105h are depicted, but it will be understood that substantially more than seven nodes can be implemented. For example, in a mesh network of metering devices, thousands, hundreds of thousands, or even millions of devices can be implemented in the mesh network.
[0101] Each node 105a - 105h can include a device for metering and / or controlling resources. For example, the device can include circuitry and / or components for metering resource consumption and / or controlling access to resources such as through a service disconnect switch. In an example, the mesh network 100 can be associated with a utility network. In such an example, nodes 105a - 105h can include circuitry and / or components for metering resources, for determining various operating characteristics of the utility network, and / or for sending the collected data to the head-end system 110 via the root node 115 through the mesh network 100.
[0102] In addition, nodes 105a - 105h can also be configured to communicate with each other such that data can be exchanged between nodes 105a - 105h. That is, nodes 105a - 105h can include local processing capabilities to enable a certain degree of autonomy in communicating with other nodes in the network 100.
[0103] The nodes 105a - 105h forming the mesh network 100 can be effectively provided in layers, as Figure 1 annotated. In this example, the root node 115 forms layer 0. The nodes 105a, 105b communicatively directly coupled to the root node 115 form the first layer of the mesh network 100, "layer 1". Similarly, the nodes 105c - 105e communicatively coupled to the mesh network 100 through the "layer 1" nodes form the second layer of the mesh network 100, "layer 2". Similarly, the nodes 105f - 105h communicatively coupled to the mesh network 100 through the "layer 2" nodes form the third layer of the mesh network 100, "layer 3". In order for data to propagate from the root node 115 to layer 3 of the mesh network 100, three "hops" of the data will be required.
[0104] In an example use case, the head - end system may need to deliver data to some or all of the nodes of the network 100. In a first example, unicast transmission of data across the mesh network 100 can be implemented. However, when targeting an entire network that includes a large number of nodes and the transmission bandwidth to any particular node may be extremely limited, this unicast operation may actually be infeasible. This is described in more detail with reference to Figure 2 which.
[0105] In another example, multicast transmission of data can be implemented by the head - end system 110 to send data across the mesh network 100. However, this multicast may be inherently inefficient on a large mesh network, as described in more detail with reference to Figure 3 which.
[0106] In Figure 2 an example of this unicast operation is depicted in the example mesh network 200. In this example, the head - end system communicates with multiple nodes via the root node 210.
[0107] It can be seen that in order to send data from the root node to level 1 nodes, such as nodes 205a, 205b, 205c, a single "hop" is performed by the data.
[0108] However, in order for the root node 210 to send data to the level four end - point nodes 205g, 205h, four hops are required. Additionally, in this example, during the process of delivering data to the level four end - point nodes 205g, 205h, the data can be consumed by twelve nodes. That is, the level 1 node 205a can consume the data and provide the data to eleven other nodes via the level 2 node 205d and two level 3 nodes 205e, 205f.
[0109] Thus, it can be seen that unicast may be an inherently inefficient means of delivering data to each endpoint node, consuming a large amount of bandwidth in the entire mesh network 200 and involving most or all nodes to deliver data. Such unicast may not be suitable for the dissemination of time-critical data.
[0110] For completeness, an example of a broadcast operation is depicted in the exemplary mesh network 300 of Figure 3 In this example, the headend system communicates with multiple nodes via the root node 310.
[0111] In this example, the root node 310 sends data to all nodes 305a - 305e within the transmission range 320 of the root node 310. In turn, a receiving node (e.g., a level 1 node, such as node 305e) can send the data to all nodes 305d, 305f, etc. within the transmission range 335 of the level 1 node 305e. It can be seen that such a multicast method may result in a certain amount of unnecessary or duplicate data transmissions on the mesh network and may thus be an inefficient means of providing data to endpoint nodes.
[0112] Figure 4 Several examples of transmitting data on a mesh network 400 in accordance with embodiments of the present disclosure are depicted.
[0113] In the example, the data may include weather forecast data and / or firmware updates.
[0114] In a first example, a node in the mesh network 400 is selected as a first seed node 405. The first seed node 405 can be configured as a seed node for sending data to a subset of nodes in the mesh network 400. The selection of the first seed node 405 can be based on the geographical location of the first seed node 405 relative to other nodes within the mesh network 400. For example, the first seed node 405 can be a node located within a relatively dense population of nodes forming the subset. The first seed node 405 can be a node substantially surrounded by the nodes forming the subset.
[0115] In an example embodiment, the selection of the first seed node 405 can be based on the address and / or identification data corresponding to the first seed node 405. The first seed node 405 can be selected based on a postal code / zip code. The first seed node can be selected based on coordinates (e.g., latitude and longitude). The selection of the first seed node 405 can be based on the interference level between the first seed node and other nodes in the network. For example, the selection of the first seed node 405 can be based on a received signal strength indicator (RSSI), which can indicate the level / quality / reliability of connectivity.
[0116] In an example embodiment, the selection of the first seed node 405 may be based on depth, such as the number of hops. That is, the selection of the first seed node 405 may be based on, for example, the minimum distance from the node to the root node 210, 310 of the mesh network 400 or to the head-end system in the mesh network 400. In fact, the depth may be represented as a map.
[0117] The selection of the first seed node 405 may be based on the time-to-live (TTL) and / or the hop limit. For example, the selection of the first seed node 405 may be based on a predefined hop limit.
[0118] The selection of the first seed node 405 may be based on throughput, such as the throughput of the number of messages being forwarded. That is, in some examples, the selection of the first seed node 405 may be based on tracking the frequency at which the network selects a particular node for message delivery.
[0119] The selection of the first seed node 405 may be based on the neighbor list density. For example, given a lookup table of neighbors (e.g., adjacent nodes), the occurrences of nodes and the occurrences of the best / optimal nodes may be searched. By scoring such a combination, a node may be selected as the first seed node 405. It may be noted that the nodes identified as "best / optimal nodes" may be based on any one or more of the above criteria, such as type, category, depth, TTL, throughput, level of interference / RSSI, address and / or identification data, geographical location, etc.
[0120] The head-end system 410 provides the data to be sent to the subset of nodes to the first seed node 405. The head-end system 410 may serve as a central processing system for sending and / or receiving data, data streams, data packets, and / or messages from the nodes. The head-end system 410 may generate and / or process data. The head-end system 410 may be communicatively coupled to another system (e.g., a cloud-based system) for generating and / or processing data.
[0121] The first seed node 405 may send data, or may process data and send additional data based on the processed data and / or based on commands or instructions in the data.
[0122] In a first example, the head-end system 410 may directly address the first seed node 405 to provide data to the first seed node 405. Advantageously, this may limit the amount of data transmission on the mesh network 400.
[0123] As can be seen in Figure 4 the first seed node may send the data (or the processed data) from the first seed node to the subset of nodes.
[0124] That is, the first seed node can receive data from the head-end system 410 and push the data (or processed data, etc.) to other nodes within the mesh network 400. In some examples, providing data to the first seed node 405 can include the first seed node 405 sending a request for the data over the mesh network 400 and / or obtaining the data from the head-end system 410.
[0125] In additional examples, the first seed node 405 can receive data from the head-end 410 system over another network. For example, the first seed node 405 can be configured to communicate over another network (such as the Internet) via a wireless connection or the like. In an example, the first seed node 405 can include a device (such as a smart meter) installed at a home location that has Internet capabilities via a home router (such as via a Wi-Fi connection or the like). The first seed node 405 can obtain data from the head-end system 410 over another network (such as over the Internet). The first seed node 405 can request data from the head-end system 410 and / or the head-end system 410 can push data to the first seed node 405.
[0126] In some examples, the transmission of data from the first seed node 405 to a subset of nodes can include the first seed 405 node prioritizing the transmission of data to nodes without an active Internet connection over the transmission of data to nodes with an active Internet connection.
[0127] It can be seen that, compared with Figure 2 the unicast operation of Figure 3 or the multicast operation of Figure 2 and Figure 3 as shown in
[0128] seeding the first seed node with data (where the first seed node is configured to broadcast the data to additional nodes within range) can be an efficient means of sending data between edge nodes compared to the unicast or multicast operations from a root node as shown in
[0129] Edge nodes can be endpoints of the mesh network 400. That is, data can be sent to the nodes without the overhead of directly connecting to and sending data to each node in the network, which can result in significant overhead at the head-end 410 system.
[0130] In a second example, a node in the mesh network 400 can be selected as the second seed node 415. The second seed node 415 can be configured as a seed node for sending data to a subset of nodes in the mesh network 400. The selection of the second seed node 415 can be based on the geographical location of the second seed node 415 relative to other nodes within the mesh network 400. For example, the second seed node 415 can be a node located within a relatively dense population of nodes that form the subset. The second seed node 415 can be a node substantially surrounded by the nodes that form the subset.
[0131] The head-end system 410 provides the data to be sent to the subset of nodes to the second seed node 415.
[0132] In this second example, the second seed node 415 can host the data and / or a processed version of the data or data generated in response to a command or instruction within the data. The second seed node 415 can be configured to provide the data to another node in the network 400 when the other node in the network requests the data (e.g., sends a request to the second seed node 415).
[0133] Again, in the second example, the head-end system 410 can directly address the second seed node 415 to provide data to the second seed node 405, thereby advantageously limiting the amount of data transmission on the mesh network 400.
[0134] In another example, the second seed node 405 can receive data from the head-end 410 system via another network. For example, the second seed node 405 can be configured to communicate over another network (e.g., the Internet) via a wireless connection or the like.
[0135] In some examples, the second seed node 425 can send data only for a limited number of hops. For example, the data can include additional data or instructions to the receiving node to limit the number of hops (e.g., nodes) over which the data is sent.
[0136] It can be seen that, compared with Figure 2 the unicast operation of Figure 3 or the multicast operation of Figure 2 and Figure 3 illustrated in
[0137] seeding a second seed node with data (where the second seed node is configured to host the data and provide the data to other nodes when requested by other nodes) can be an efficient means of sending data between edge nodes compared to the unicast or multicast operations from a root node as illustrated in
[0138] In a third example, a node in the mesh network 400 can be selected as a third seed node 425. The third seed node 425 can be configured as a seed node for sending data to a subset of nodes in the mesh network 400. The selection of the third seed node 425 can be based on the geographical location of the third seed node 425 relative to other nodes within the mesh network 400.
[0139] The headend system 410 provides the third seed node 425 with data to be sent to the subset of nodes.
[0140] In this third example, the third seed node 425 can receive the data and then broadcast (e.g., multicast or unicast) the data and / or a processed version of the data or data generated in response to an instruction or command within the received data.
[0141] In some examples, the third seed node 425 can send the data only for a limited number of hops. For example, the data can include additional data or instructions to the receiving node to limit the number of hops (e.g., nodes) the data is sent.
[0142] It can be seen that, compared with Figure 2 the unicast operation or Figure 3 the multicast operation of Figure 2 and Figure 3 shown in
[0143] and
[0144] seeding the third seed node 425 with data (where the third seed node 425 is configured to receive and broadcast the data) can be an efficient means of sending data between edge nodes (e.g., endpoints of the mesh network 400) compared to the unicast or multicast operations from the root node as shown in
[0145] In some examples, the nodes to be configured as the second seed node 405 can be selected dynamically.
[0146] Although example networks including three seed nodes 405, 415, 425 have been described, in other examples, there can be fewer or more than three seed nodes. Additionally, any combination of the three data transfer techniques can be implemented, such as seed then push, host, or broadcast.
[0147] For example, the amount of seed nodes 405, 415, 425 in the mesh network 400 can be increased or decreased based on an initially selected or distributed (predefined) time limit. That is, the initial selection or distribution of the seed nodes 405, 415, 425 can expire and be subsequently updated, increased, decreased, or otherwise changed.
[0148] In another example, the amount of seed nodes 405, 415, 425 in the mesh network 400 can be increased or decreased based on the size of the network 400. The size can refer to the number of nodes and / or the geographical size. For example, when a device (node) is registered (e.g., added to the network), additional nodes can be selected as seed nodes. In some examples, when a device (node) is registered (e.g., added to the network), existing seed nodes can be reconfigured so that they no longer operate as seed nodes. In a non-limiting example, such deselection of a seed node can depend on where any such new device registered on the network is located.
[0149] In another example, the amount of seed nodes 405, 415, 425 in the mesh network 400 can be increased or decreased based on a score associated with one or more regions of the mesh network 400. For example, such a score can indicate the likelihood of success (e.g., successful operation as a seed node 405, 415, 425) in a particular region of the mesh network 400.
[0150] In another example, the amount of seed nodes 405, 415, 425 in the mesh network 400 can be increased or decreased based on a score associated with one or more of the seed nodes 405, 415, 425. For example, if it is determined during a mesh network calibration process that there are an excessive number of seed nodes 405, 415, 425 (e.g., operating "too well"), then the number of seed nodes 405, 415, 425 in the mesh network 400 can be reduced. Conversely, if it is determined during the network calibration process that the amount of seed nodes 405, 415, 425 is insufficient (e.g., operating "not well enough"), then the number of seed nodes 405, 415, 425 in the mesh network 400 can be increased. In some examples, the amount of nodes to be configured as seed nodes 405, 415, 425 can be dynamically selected.
[0151] Figure 5 depicts an example node 500 of Figure 4 the mesh network 400 according to an embodiment of the present disclosure.
[0152] In an example, the node 500 includes a metering module 505. The metering module 505 can be used to meter and / or control resources such as electricity, gas, water, etc.
[0153] Node 500 also includes a device 510 (e.g., an edge device) having processing capabilities configured to communicate with devices of one or more other nodes in the mesh network 400 via the mesh network. That is, each node 500 can be attached to a device known in the art as an edge device. In an example embodiment, the edge device 510 includes a processor 515, a memory 520, and a transceiver 525, such as one or more transceivers. The processor 515, the memory 520, and the transceiver 525 are coupled via a bus 530, which can be any suitable switching fabric.
[0154] The edge device 510 can be configured to communicate directly with other nodes on the network without having to communicate with or via a head-end system or any intermediate root node. That is, the edge device 510 can have sufficient processing and transceiver capabilities to achieve a degree of autonomous operation without direct and / or continuous supervision of control by a head-end system.
[0155] In this example, the transceiver 525 is coupled to an antenna 545 for wireless communication with other nodes in the network 400.
[0156] In some examples, such as Figure 5 the example depicted in, the transceiver 525 can be coupled to another network 540 (e.g., the Internet) via a router (e.g., via Wi-Fi, etc.). This can allow the node 500 to directly pull data without the head-end system having to provide the data via the mesh network 400.
[0157] Figure 6 A method of transmitting data in a mesh network according to an embodiment of the present disclosure is depicted.
[0158] In a first step 605, at least one node in the mesh network is selected to be configured as a seed node for sending data to a subset of nodes in the mesh network. For example, the at least one node can include Figure 4 a first seed node 405, a second seed node 415, and / or a third seed node 425 of the mesh network 400 as depicted.
[0159] In a second step 610, a head-end system, such as Figure 4 the head-end system 410 as depicted, provides data to be sent to the subset of nodes to at least one seed node.
[0160] In a third step 615, the data is sent from the at least one seed node to the subset of nodes. The sending of the data can be according to the first, second, and / or third examples described above with reference to Figure 4 the example mesh network 400, e.g., seed then push, hosted, or broadcast.
[0161] Although the present disclosure has been described in terms of specific embodiments as set forth above, it should be understood that these embodiments are illustrative only and the claims are not limited to those embodiments. Those skilled in the art will be able to make modifications and substitutions in view of the present disclosure, and such modifications and substitutions are considered to fall within the scope of the appended claims. Each feature disclosed or illustrated in this specification can be incorporated into any embodiment, either alone or in any appropriate combination with any other feature disclosed or illustrated herein.
[0162] List of Reference Numerals
[0163] 100 Mesh Network
[0164] 105a - h Nodes
[0165] 110 Head - End System
[0166] 115 Root Node
[0167] 120 Another Network
[0168] 200 Mesh Network
[0169] 205a - c Level - 1 Nodes
[0170] 205d Level - 2 Node
[0171] 205e - f Level - 3 Nodes
[0172] 210 Root Node
[0173] 300 Mesh Network
[0174] 305a - f Nodes
[0175] 310 Root Node
[0176] 320 Transmission Range
[0177] 335 Transmission Range
[0178] 400 Mesh Network
[0179] 405 First Seed Node
[0180] 410 Head - End System
[0181] 415 Second Seed Node
[0182] 425 Third Seed Node
[0183] 500 Example Node
[0184] 505 Metering Module
[0185] 510 Edge Device
[0186] 515 Processor
[0187] 520 Memory
[0188] 525 Transceiver
[0189] 530 Bus
[0190] 540 Another Network
Claims
1. A method for transmitting data in a mesh network (400), the method comprising: selecting at least one node (405, 415, 425) in the mesh network to be configured as a seed node for sending data to a subset of nodes in the mesh network; providing the data to be sent to the subset of nodes from a head - end system (410) to the at least one seed node; and sending the data from the at least one seed node to the subset of nodes.
2. The method according to claim 1, wherein the selection of the at least one seed node (405, 415, 425) is based on at least one of the following: the geographical location of the at least one seed node relative to other nodes within the network; the address and / or identification data corresponding to the at least one seed node; the interference level between the at least one seed node and other nodes in the network; the type and / or level of connectivity of the at least one seed node to the head - end system; the minimum distance in the mesh network from the nodes to a root node or to the head - end system; time - to - live (TTL) and / or a predefined hop limit; tracking of the throughput of the nodes and / or the frequency at which the mesh network selects specific nodes for message delivery; and / or neighbor - list density, and optionally, wherein the neighbor - list density is based on a search for the number of occurrences of nodes and / or the number of occurrences of identified best / optimal nodes.
3. The method according to any one of the preceding claims, wherein the nodes to be configured as the seed nodes (405, 415, 425) are dynamically selected.
4. The method according to any one of the preceding claims, wherein the quantity of nodes selected as the at least one seed node (405, 415, 425) is based on at least one of the following: the density of seed nodes; the (predefined) time limit for the initial selection or distribution of the at least one seed node; the size of the mesh network; a fraction associated with one or more regions of the network; and / or a fraction associated with the at least one seed node.
5. The method according to any one of the preceding claims, wherein the quantity of nodes to be configured as seed nodes (405, 415, 425) is dynamically selected.
6. The method according to any one of the preceding claims, wherein the step of providing the data to the at least one seed node (405, 415, 425) comprises sending the data from the head - end system (410) by performing a unicast operation on the mesh network (400).
7. The method according to any one of claims 1 to 6, wherein the step of providing the data to the at least one seed node (405, 415, 425) comprises the at least one seed node sending a request for the data on the mesh network (400) and / or obtaining the data from the head - end system (410).
8. The method according to any one of claims 1 to 6, wherein the step of providing the data to the at least one seed node (405, 415, 425) includes the at least one seed node sending a request for the data on another network (540) and / or obtaining the data from the head-end system (410).
9. The method according to any one of the preceding claims, wherein each node (500) within the subset of nodes includes a module (505) for metering and / or controlling resources.
10. The method according to any one of the preceding claims, wherein each node (500) within the subset of nodes includes a device (510) having processing capabilities configured to communicate with devices of one or more other nodes within the subset on the mesh network (400).
11. The method according to any one of the preceding claims, wherein the subset of nodes is defined by the geographical location and / or characteristics of each node within the subset of nodes.
12. The method according to any one of the preceding claims, wherein sending the data from the at least one seed node (405, 415, 425) to the subset of nodes includes: The at least one seed node performing a unicast operation to push the data to one or more adjacent nodes.
13. The method according to any one of the preceding claims, wherein sending the data from the at least one seed node (405, 415, 425) to the subset of nodes includes: The at least one seed node hosting the data and providing the data to one or more adjacent nodes in response to requests for the data from the one or more adjacent nodes.
14. The method according to any one of the preceding claims, wherein sending the data from the at least one seed node (405, 415, 425) to the subset of nodes includes: The at least one seed node performing a multicast operation to push the data to one or more nodes of the subset via one or more other nodes of the subset.
15. The method according to any one of the preceding claims, wherein sending the data from the at least one seed node (405, 415, 425) to the subset of nodes includes: The at least one seed node preferentially sending data to nodes without an active Internet connection as compared to sending data to nodes having an active Internet connection.
16. The method according to any one of the preceding claims, wherein the data includes weather forecast data.
17. A system, comprising: A network of nodes (400) configured to form a mesh network; And A head-end system (410); Wherein at least one node is configured as a seed node (405, 415, 425) for sending data to a subset of nodes in the mesh network; Wherein the head-end system is configured to provide the data to be sent to the subset of nodes to the at least one seed node; And Wherein the at least one seed node is configured to send the data to the subset of nodes.