Method for managing message routing in a mesh network
The method addresses energy-efficient message routing in mesh networks by allowing communication nodes to store and retransmit messages upon waking up, ensuring message delivery while reducing power consumption and bandwidth usage.
Patent Information
- Application Number
- PCT/EP2024/083465
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Priority Date
- 2023-12-05
- Filing Date
- 2024-11-25
- Publication Date
- 2025-06-12
AI Technical Summary
In mesh networks, particularly in IoT contexts, energy-efficient message routing is challenging due to nodes frequently entering sleep modes, leading to potential message loss and high power consumption when retransmitting messages.
A method where a management entity in a communication node stores received messages independently of acknowledgments and node states, and retransmits them when a neighboring node wakes up, eliminating the need for centralized message storage and reducing power consumption.
This approach ensures that nodes receive missed messages upon waking up, minimizes power usage by avoiding unnecessary retransmissions, and distributes message storage across nodes, reducing bandwidth and energy consumption.
Smart Images

Figure EP2024083465_12062025_PF_FP_ABST
Abstract
Description
Method for managing message routing in a mesh network
[0001] The technical field is that of telecommunications.
[0002] More specifically, the invention relates to a method for managing the routing of messages in a mesh network.
[0003] In telecommunications, several network topologies exist. Generally, in a given network topology, it is necessary to route information in the form of data packets in several stages and thus constitute a path from the source to the destination. We therefore speak of routing protocols and devices and, by abuse of language, just routing. A packet is transmitted by a source node and is received by a destination node after a number of retransmissions by intermediate nodes. This set of nodes represents a route and the algorithm that sets up how routes are determined or constructed is commonly called a routing protocol.
[0004] A mesh network is a network whose topology is characterized by a peer-to-peer connection of the network nodes, without hierarchy between the nodes. Therefore, among the network nodes, there is no single node that will be used in a privileged manner when routing messages. In a mesh network, all nodes must receive, send and relay messages circulating between the nodes. It is possible that, in such a network, there are routing protocols that will seek to identify more efficient routes than others and to use them, but such protocols cannot rely on the existence of an initial hierarchy among the nodes or on a differentiation between the nodes' faculties.Nodes may find themselves taking a particular role during the execution of a protocol but this will be following a random drawing among nodes which are of equal priority at the launch of the protocol.
[0005] Such mesh networks can be built with either wired or wireless communications between network nodes. They are widely used in the context of the Internet of Things (IoT), a context for which the acronym IoT (Internet of Things) is used. In a given space, several objects with wireless communication capabilities can be installed and then build a mesh network between them by sending messages to discover their neighbors (Hello messages). The OLSR protocol (Optimized Link State Routing protocol) is an example of such a protocol. Once the mesh network is built, messages can be routed within it in a non-hierarchical manner to allow communicating objects to receive instructions from the outside and, conversely, to send information back.Such a mesh network, which is built spontaneously by communicating objects discovering their neighbors, is often called an ad hoc network. When the communication technology between nodes is wireless, we often speak of MANET networks, an acronym for mobile ad hoc network.
[0006] In an IoT network, with wireless communications between network nodes, the issue of energy consumption is a significant constraint on the capabilities of the network nodes. The communicating objects, which are the network nodes, may not be connected to the electrical network and operate solely on battery power or with recharging from an intermittent electricity source such as a photovoltaic panel. Routing and message delivery within such a mesh network used in an IoT context must therefore take into account the constraints brought by the low energy capacities of the communicating objects. The power consumption to ensure routing must therefore be minimal and take into account the probable intermittency of the energy supply, and therefore the probable sleep time of network communication nodes. State of the art
[0007] Message routing in mesh networks, given the non-hierarchical structure of the network, is done step by step. Routing can be done without using any route concept. In this case, a communication node that receives a message, if it is not the only recipient, will retransmit it to all its neighbors, indiscriminately. This is called flooding. Control messages, for example acknowledgments, prevent message retransmissions in a loop. In other cases, routes can be discovered to prevent a node from retransmitting a given message to all its neighbors. Sending acknowledgment messages will use bandwidth and power consumption resources that are therefore not used for sending directly useful messages.
[0008] In any case, a node forwarding a message to its neighbor(s) may not have the information that its neighbors have received the message in question, especially when the node to which a message is routed is in a sleeping state and therefore has no possibility of receiving a message, let alone issuing an acknowledgment. Messages may therefore not be received without the sender being aware of it.
[0009] To overcome this type of problem, there are solutions that use a deferred mode (store and forward). In this mode, specific communication nodes store the messages that pass through them so that they can be retransmitted if necessary later.
[0010] Using such a deferred mode can be very consuming for the network in terms of memory resources, bandwidth and energy. In current implementations, a deferred mode first requires that one or more nodes be assigned to the message storage function. For example, in the MQTT protocol (acronym for Message Queues Telemetry Transport), which is widely used in Internet of Things contexts, a dedicated platform (called a broker) will store messages and manage their possible retransmission to clients. During retransmission, all the nodes located between the requesting node and the nodes that perform the message storage and retransmission functionality in deferred mode will be used if they are available and this again uses the network's radio resources to retransmit the messages, which implies additional power consumption.
[0011] The invention improves the situation.
[0012] According to a first functional aspect, the invention relates to a method for managing the routing of messages in a mesh network comprising communication nodes capable of switching from a sleep state to a wake-up state and having neighboring nodes in the mesh network, characterized in that it comprises the following steps carried out by a management entity present in a communication node of the mesh network, called the first node: Without taking into account acknowledgments of receipt and / or messages relating to the state of other nodes received by the first node, storing messages received by said first node for subsequent routing; After receiving a message from a neighboring node, called another node, indicating a switch to the wake-up state of this other node, retransmitting to said other node all or part of the stored messages.
[0013] Thanks to the invention, in the event of a node, called the other node, going to sleep, it will still receive a portion of the messages that were not transmitted to it during its sleep phase. Indeed, after indicating its transition to the wake-up state, a node neighboring the other node, called the first node, will retransmit stored messages.
[0014] Let us first recall that, in ad hoc mesh networks, particularly in the context of the Internet of Things, the communication nodes are subject to strong energy consumption constraints. To satisfy these constraints, the nodes will frequently enter a sleep phase, i.e., suspend their activity to no longer consume electricity. The sleep phase ends when the communication node wakes up, i.e., resumes its activity. One of the first actions performed upon waking up, i.e., when transitioning from a sleep state to a wake-up state, is to send its neighboring nodes a message indicating this waking up. The communication nodes of the mesh network considered in the invention are therefore capable of transitioning from a sleep state to a wake-up state or, more generally, capable of entering a sleep phase and capable of waking up.An example of nodes capable of waking up are communication nodes whose power supply is provided by a photovoltaic cell. The node will enter a sleep phase when the light is too low to supply it with energy (typically, at night) and will wake up (and therefore send messages to neighboring nodes indicating its waking up) when the light becomes sufficient again (typically, at dawn).
[0015] Let us also remember that, in mesh networks, there is a neighborhood relationship between the communication nodes. Each communication node will have one or more communication nodes which will be its neighboring nodes, that is to say it is possible to directly address a message to them, which can be transmitted to the neighboring nodes without going through another node. For a given node, it is therefore possible to distinguish in the communication network between its neighboring nodes and the other communication nodes of the mesh network. The neighborhood relationship thus defined is generally symmetrical. It may happen in certain cases that the neighborhood relationship is asymmetrical, that is to say that a node A has a node B as a neighbor, because it can address a message to it, while node B cannot directly address a message to node A.For example, when communications between nodes are wireless, if node A can transmit more powerfully than other nodes, it will be able to transmit to a distant node B whose own transmitter is not powerful enough for node B to send a message to node A.
[0016] The advantage of receiving messages after a sleep phase and indicating a transition to the wake-up state is obtained by implementing a deferred mode of message routing in the mesh network. But it is possible, thanks to the invention, to set up message routing in a mesh network in deferred mode without having to differentiate certain communication nodes from other nodes, the differentiated node(s) playing the role of one or more central platforms for storing and retransmitting messages. In the invention, all communication nodes play the same role and carry out cooperation between nodes at the local level to implement a collective version of a deferred mode of message routing.The term "first node" is chosen solely to specify which node performs the steps of storing and retransmitting messages at a given time and to differentiate it from the "other nodes" but does not imply the establishment of a hierarchy of nodes. A first advantage of the invention is therefore not to rely on differences in capacities between nodes, which would be contrary to the standard architecture of mesh networks.
[0017] It can be noted that, when the first node enters the sleep phase and then indicates its entry into the wake-up phase, it will symmetrically receive messages stored by its neighboring nodes.
[0018] One of the advantages of this solution, compared to the implementation of a dedicated, centralized platform implementing a deferred message routing mode, is that the messages are stored as close as possible to the nodes and not in a remote platform. When a node wakes up, the messages it has not received are retransmitted to it from one or more of the nodes that are its immediate neighbors. This retransmission from a neighboring node will therefore only use the resources of the node that wakes up and the neighboring node, whereas a retransmission from a centralized platform would have used the resources of all the nodes that are on the path between the platform and the node that wakes up. The invention is therefore more economical in terms of bandwidth and electricity resources of the nodes of the mesh network as a whole than a solution using a centralized platform.
[0019] Furthermore, in the invention, the storage of a received message is done independently of the subsequent reception of the message by a neighboring node. To achieve this effect, the storage of a message is done without taking into account a possible acknowledgment of receipt of the routed message or messages relating to the state of other nodes. A message warning of the upcoming sleep of a node, for example, will not be taken into account and will not trigger storage. The storage of messages by the nodes is done by taking into account other criteria, detailed in the different embodiments of the invention. Only the rebroadcasting of the stored messages is done by taking into account the state of the neighboring nodes, since it is done in reaction to a message indicating the awakening of a neighboring node.In state-of-the-art protocols, a communication node will generally delete received messages that it has subsequently routed in the network once it has received acknowledgments that these messages have arrived. In the invention, the storage of a message is done independently of the subsequent reception of the same message and will therefore not be interrupted in the event of receipt of an acknowledgment. Similarly, it is not necessary to broadcast messages warning of an upcoming sleep state to trigger the storage of messages by the nodes. An advantage of the invention is therefore its great simplicity of implementation as well as the possibility of dispensing with the broadcast of acknowledgments or messages announcing the sleep state of the nodes, or other messages relating to the state of the nodes, which are messages also occupying bandwidth and using electrical or memory resources for their processing.
[0020] The invention requires that each node has memory resources allowing it to store a fraction of the messages. Only a fraction of the messages must be stored by a given node since a node will generally have several neighbors and it is therefore not necessary for all the neighbors to store all the messages that pass through them. The invention therefore requires the use of memory resources by the communication nodes but each node will use fewer resources than a centralized platform which would have to store all the messages passing through the network. This advantage is due to the pooling of resources by all the nodes of the network which carry out a collective implementation of a deferred mode of routing the messages.
[0021] The invention is described by distinguishing between a first node and one of its neighboring nodes, called another node, but it is clear that a large part of the communication nodes of the mesh network will play the same role of first node in the implementation of the invention in order to allow distributed storage of messages across all the nodes of the network, and this as close as possible to the nodes which will periodically enter the sleep phase.
[0022] According to a first particular embodiment of the invention, a message received by said first node is stored when a determined condition is verified.
[0023] According to another particular embodiment of the invention, which may be implemented cumulatively with the previous embodiment, said determined condition is verified if at least one of the neighboring nodes of said first node has sent to said first node a message requesting the subsequent storage of the messages.
[0024] According to another particular embodiment of the invention, which may be implemented alternatively or cumulatively with the previous embodiment, said determined condition is verified if a determined proportion of the neighboring nodes of said first node have sent to it a message requesting the subsequent storage of the messages.
[0025] Thanks to these particular embodiments of the invention, the efficiency of the method according to the invention is improved. In these modes, the storage is an action that depends on a condition evaluated by the first node. In this way, the storage can be started or stopped depending on the relevance of carrying it out. For example, the storage can be triggered if the message loss rate crosses a given threshold, or if the energy supply conditions give rise to fears of numerous future node sleeps. In particular, the storage of received messages can be, thanks to these embodiments, modulated according to the requests that neighboring nodes make to a given node.
[0026] According to a second particular embodiment of the invention, which may be implemented alternatively or cumulatively with the previous embodiment, the method comprises, after the first node has switched to the wake-up state, the transmission to the neighboring nodes of said first node of a message indicating the switch to the wake-up state of said first node.
[0027] Thanks to this mode, the first node will also be able to receive messages that it would not have received during its sleep phase. To do this, it sends, like the other nodes, a message indicating its transition to the wake-up state to its neighboring nodes. In this way, the neighboring nodes will be able to retransmit to it the messages that it would not have received. This embodiment corresponds well to the preferred architecture for ad hoc networks according to which the capacities of the communication nodes are not differentiated. Here, all the communication nodes will alternately pass from sleep phases to wake-up phases; all the nodes will memorize a part of the messages that they receive, and all the nodes, when they receive from one of their neighboring nodes a message indicating its wake-up, will retransmit all or part of the memorized messages.
[0028] According to a third particular embodiment of the invention, which may be implemented alternatively or cumulatively with the preceding embodiments, said first node retransmits to the other node all or part of the stored messages depending on the messages retransmitted by all the neighboring nodes to the other node.
[0029] Thanks to this implementation mode, the bandwidth and energy resources of the mesh network are saved. Indeed, when a communication node indicates its transition to the wake-up state, the message indicating this wake-up will be transmitted to all of its neighboring nodes. These will then retransmit the messages they have memorized. There may therefore be duplicates in the memorized messages and consequently also duplicates in the messages retransmitted after the communication node wakes up. The nodes that memorize messages will seek to avoid the retransmission of duplicates. To do this, the neighboring nodes will listen to the messages retransmitted to the node that wakes up and if one of the messages they have memorized is retransmitted to the node that wakes up by another neighboring node, this message will not be retransmitted a second time.In this way, the number of duplicates during retransmissions is reduced to save bandwidth and energy resources. This implementation is improved by introducing variable timeouts before the first node retransmits the stored messages to the other node.
[0030] According to a fourth particular embodiment of the invention, which may be implemented alternatively or cumulatively with the previous embodiments, the proportion of messages stored by the first node among all the messages received for subsequent routing is determined as a function of the number of neighboring nodes of the first node.
[0031] According to another particular embodiment of the invention, which may be implemented alternatively or cumulatively with the preceding embodiments, the proportion of messages stored by the first node among all the messages received for subsequent routing is determined as a function of the minimum number of neighboring nodes that the neighboring nodes of the first node have.
[0032] According to another particular embodiment of the invention, which may be implemented alternatively or cumulatively with the preceding embodiments, the proportion of messages stored by the first node among all the messages received for subsequent routing is determined as a function of the average number of neighboring nodes that the neighboring nodes of the first node have.
[0033] According to another particular embodiment of the invention, which may be implemented alternatively or cumulatively with the preceding embodiments, the proportion of messages stored by the first node among all the messages received for subsequent routing is determined as a function of the average number of neighboring nodes that the communication nodes of the mesh network have.
[0034] Thanks to these particular implementation modes of the invention, the efficiency of the method according to the invention is improved. Indeed, the simplest way to implement the invention would consist in all the communication nodes storing all the messages they receive in order to be able to retransmit them to their neighboring nodes on request. This implementation would ensure that no message could be lost. But this implementation would not be efficient because the neighboring nodes of a given node would store identical messages in duplicate. The method according to the invention will therefore consist, in this embodiment, in determining for the communication nodes a proportion of messages to be stored in order to carry out a distributed backup of the messages in all the nodes of the mesh network.
[0035] According to a first approach, this proportion will depend on the number of neighboring nodes that a given node has. The more neighbors a node has, the lower the proportion of messages it will have to memorize since the more neighboring nodes there will be that can distribute the messages to memorize. A simple way to calculate a proportion of messages to memorize for a given node will therefore consist of determining its number of neighboring nodes and determining a proportion comparable to the inverse of this number. A node with ten neighboring nodes could thus decide to memorize 10% of the messages received; a node with five neighbors could memorize 20% of the messages received; a node with two neighbors, half of the messages received, and so on. Such a proportion could be increased in order to give itself a certain safety margin.
[0036] This approach assumes that the number of neighbors for a given node varies little among the nodes in the mesh network. This is generally the case for networks in an IoT context where communicating objects are distributed evenly in a given space and communicate wirelessly, with a similar range between objects. In this case, all communicating nodes in the mesh network will have approximately the same number of neighboring nodes. However, this situation cannot be guaranteed: the fact that a given node has a certain number of neighbors does not imply that its neighbors will also have the same number of neighbors.A node with ten neighbors may have among its ten neighbors a given node of which it is the only neighbor; to ensure that this particular node having only one neighbor can have all the messages, it will be necessary for the node with ten neighbors, which is the only neighbor node of the particular node, to memorize all the messages received whereas it would have rather memorized 10% of the messages in a first approach.
[0037] To take this phenomenon into account, the proportion of messages stored by a given node can be determined not only as a function of the number of neighboring nodes of the given node but also as a function of the number of neighbors that the neighbors themselves have of the given node. A first possible embodiment is then to take into account the minimum number of neighboring nodes that the neighboring nodes of a given node have. Another possible embodiment is to take into account the average number of neighboring nodes that the neighboring nodes of a given node have.
[0038] Another possible embodiment is to take into account all the communication nodes of the mesh network. In this mode, the proportion of stored messages will be a function of the average number of neighboring nodes that the nodes of the network have. Here again, the function will be inverse of this average number and a safety margin can be applied. If, in the network, a node has on average a little more than ten neighboring nodes, a proportion of 10% of the stored messages can be considered sufficient. In certain embodiments, this average number of neighboring nodes will be determined in a preliminary step of discovery of the neighboring nodes by the nodes of the network and in other embodiments, this average number will be given a priori as being an expected characteristic of the network to be built.That is, in some embodiments, the proportion of stored messages may be identical across all nodes of the mesh network and will be predetermined based on the average number of neighbors for the nodes of the network that is expected when the network is deployed.
[0039] According to another particular embodiment of the invention, which may be implemented cumulatively with the previous embodiments, the proportion of messages stored by the main node among all the messages received for subsequent routing is determined as a function of the topology of the mesh network.
[0040] Thanks to this particular mode of implementation of the invention, the proportion of messages stored by a given node takes into account, in addition to the number of neighboring nodes, elements relating to the topology of the network.
[0041] In a mesh network without distinction between nodes, the most relevant information for implementing the invention will be the number of neighboring nodes of the nodes of the communication network. But the invention can be implemented in networks with a more complex topology. For example, if the network is a tree network, in which a distinction is made in the direction of message transmission between messages descending to the leaves of the network and messages ascending to the root of the network, without the possibility of communication between the leaves of the network, the number of neighboring nodes for a node of the network must be understood as its number of neighboring nodes in the descending direction. Indeed, in this topology, a given node will always have only one neighboring node in the ascending direction.So, in this topology, messages in the upstream direction are to be memorized in all cases since a given node has only one neighbor node in the upstream direction, and it may therefore be necessary to memorize all the upstream messages for this neighbor node, whereas, for messages in the downstream direction, the proportion of messages to be memorized will be a function of the number of leaves that the node has.
[0042] According to another particular embodiment of the invention, which may be implemented cumulatively with the previous embodiments, a given message is stored by the first node following the success of a random draw relating to a given probability.
[0043] Thanks to this particular embodiment of the invention, the storage of a proportion of the messages received by a given node is effective. Once a proportion of messages to be stored is determined, this embodiment provides a way of carrying out the invention. When a message is received by a communication node for subsequent routing, it will proceed to store this message, independently of the subsequent reception of the message, according to a random draw with regard to the determined proportion of messages to be stored. An advantage of this embodiment is that it does not require any calculation or communication in addition to determining the proportion of messages to be stored.
[0044] According to another particular embodiment of the invention, which may be implemented cumulatively with the previous embodiments, a given message is stored by the first node based on information present in the given message.
[0045] Thanks to this particular mode of implementation of the invention, a random draw is avoided at each message reception, which can be consuming in computing resources and therefore energy. In this mode, if a proportion of messages to be memorized is determined, this will be compared with information present in the message. For example, if the proportion of messages to be memorized by a given communication node is determined as having to be 10%, information present in the message, such as any identifier, can be used, and the message will be memorized only if the identifier ends with a specific digit among the ten possible digits.
[0046] Another embodiment of the invention will use the information present in the messages to decide on storage independently of the proportions decided. For example, information present may consist of a priority level, and the implementation of the invention may consist of deciding on a proportion of stored messages for standard priority messages as a function of the number of neighboring nodes, as already seen, and multiplying this proportion by two for high priority messages or, on the contrary, dividing it by two for low priority messages. These proportions are of course indicative and may be modulated according to a number of defined priority levels. Certain messages, comprising specific information, may be defined as having to be stored in all cases.
[0047] According to another particular embodiment of the invention, which may be implemented alternatively or cumulatively with the previous embodiment, the first node transmits in a prior step to its neighboring nodes information relating to the information present in a given message which will be used by the first node to decide whether or not to store the given message.
[0048] Thanks to this particular implementation of the invention, coordination is possible between neighboring nodes to store the received messages in a distributed manner. Indeed, if the distribution key chosen is information present in the message, it must be ensured that neighboring nodes will not retain the same messages. For example, if the proportion of messages stored among the messages received for a given node is 10%, a given node may decide to store the messages for which a given information ends with '0' and will then inform its neighboring nodes of this choice. The neighboring nodes will then store messages for which the same information ends with a number other than '0'. Gradually, the information relating to the messages that will be stored by the nodes will propagate until a balance and distribution of the stored messages between the different nodes is achieved.
[0049] It may be noted that the invention does not guarantee that all messages will be stored by all nodes but seeks to guarantee an economy of means to obtain a probability deemed sufficient that at least one node among all the neighboring nodes of a given node will have stored a message that should have been received during a sleep phase of the given node, which will allow a retransmission of messages not received by the neighboring nodes of the given node, therefore a retransmission that will use only a single transmission step and not several steps as is the case when a centralized platform is used to manage the retransmissions.
[0050] According to another particular embodiment of the invention, which may be implemented cumulatively with the previous embodiments, the message indicating the transition to the wake-up state of the other node includes information relating to the last message received by said other node.
[0051] Thanks to this particular embodiment of the invention, additional information is transmitted to optimize and reduce the number of retransmissions. In this way, the embodiment makes it possible to further save the memory and energy resources of the communication nodes. The information transmitted may be, for example, a date below which the other node indicates that it has received all the messages. In this way, the first node does not have to retransmit the messages received older than this transmitted date, since the other node has indicated that it has received all the messages before this date. There is therefore a saving of resources by avoiding unnecessary retransmissions. The information transmitted may also be a message counter, or an identifier, which makes it possible to indicate a subset of the messages received that do not need to be retransmitted.
[0052] In a particular embodiment, which may be implemented alternatively or cumulatively with the previous embodiments, the first node will erase stored messages from its memory based on information received from the neighboring nodes of the first node.
[0053] With this implementation, the memory resources of the first node are optimized.
[0054] Indeed, the first node needs to periodically delete the stored messages in order to avoid overloading its memory resources, which are limited in an Internet of Things context. The first node can implement a FIFO policy (acronym for First In First Out), that is to say, it will have a queue in which the stored messages are arranged in the temporal order of their storage, and, when the queue is full, the oldest message is deleted to give space to a new message received which must be stored. A node can also have several queues, a given queue being used to store messages of a given category, according to their importance and therefore the usefulness of storing them. A larger queue can then be assigned to the most important messages.
[0055] To optimize the use of memory resources, information received by the first node from neighboring nodes can be used. For example, when nodes include information about the last message they received in their wake-up messages, the first node can save this information and delete messages that are older than the oldest date transmitted by its neighboring nodes. In this way, the first node is sure not to store a useless message because it is older than the oldest message received by all its neighboring nodes.
[0056] According to another particular embodiment of the invention, which may be implemented cumulatively with the previous embodiments, a communication node transmits to its neighboring nodes a message requiring storage of the messages received.
[0057] Thanks to this particular mode of implementation of the invention, the nodes can optimize the storage of messages received by their neighboring nodes. Indeed, a node can often anticipate its sleep phases. It can then send its neighboring nodes a message indicating that it will enter a sleep phase from a given moment and requesting storage of the messages received. The message can for example request that the storage of messages be triggered on a given date or that the proportion of received messages that are stored be increased compared to standard operation in order to increase the probability that the node will indeed receive, upon waking up, all the messages that it will not have received during its sleep phase.
[0058] According to a first material aspect, the invention relates to a management entity managing the routing of messages in a mesh network comprising communication nodes, said communication nodes being able to switch from a sleep state to a wake-up state and having neighboring nodes in the mesh network, the management entity being present in a communication node of the mesh network, called the first node, and comprising the following modules: A module for storing messages received by said first node for subsequent routing in the mesh network, the storing of a received message being done independently of the subsequent reception of the message by a neighboring node of the first node; A module for retransmitting to a neighboring node, called another node, all or part of the stored messages, said retransmission taking place after the reception of a message from said other node indicating a switch to the wake-up state of this other node.
[0059] According to another material aspect, the invention relates to equipment comprising a management entity according to the invention.
[0060] According to another material aspect, the invention relates to a computer program capable of being implemented by equipment, the program comprising code instructions which, when executed by a processor, carry out the steps of the management method defined above.
[0061] Finally, according to another material aspect, the invention relates to a data medium on which is recorded a computer program comprising sequences of instructions for implementing the management method defined above.
[0062] The data carrier may be any entity or device capable of storing the programs. For example, the carrier may comprise a storage means, such as a ROM, for example a CD ROM or a microelectronic circuit ROM, or a magnetic recording means such as a hard disk or a Flash memory. On the other hand, the carrier may be a transmissible medium such as an electrical or optical signal, which may be conveyed via an electrical or optical cable, by radio or by other means. The program according to the invention may in particular be downloaded from a network such as the Internet or from a network such as that set up when deploying a mesh network in a given space. Alternatively, the information carrier may be an integrated circuit in which the program is incorporated, the circuit being adapted to execute or to be used in the execution of the method in question. Brief description of the figures
[0063] The invention will be better understood on reading the following description, given by way of example, and made with reference to the appended drawings in which:
[0064] represents a mesh network composed of communication nodes which illustrates an exemplary embodiment of the invention.
[0065] illustrates an example of messages exchanged between communication nodes of a mesh network during an embodiment of the invention.
[0066] illustrates an example of steps implemented by a communication node within the framework of an embodiment of the invention. Detailed description
[0067] It represents an NWK mesh network. The NWK network is formed by communication nodes ND, ND', ND0, ND1.
[0068] The communication nodes ND, ND', ND0, ND1 have a neighbor relationship between them, represented in the by two-way arrows. This relationship is, in the example of the, symmetrical. If we explain the neighbor relationships between nodes represented in the: The node ND0 has nodes ND and ND' as neighbors. The node ND1 has nodes ND and ND' as neighbors. The node ND has nodes ND', ND0 and ND1 as neighbors. The node ND' has nodes ND, ND0 and ND1 as neighbors.
[0069] The communication node ND is a data processing device conventionally comprising one or more memories MEM associated with a CPU processor, not shown in the figure. The memories can be of the ROM (Read Only Memory) or RAM (Random Access Memory) or Flash type. The communication node ND further comprises a management entity 100.
[0070] The management entity 100 comprises a storage module 101.
[0071] The management entity 100 comprises a retransmission module 102.
[0072] In the, the NWK network comprises only four nodes ND, ND', ND0, ND1 for reasons of simplification of the presentation. In a more realistic implementation of the invention, the NWK network will comprise several tens or hundreds of nodes. Still to simplify the presentation, a management entity 100 is only present in the node ND. In a more realistic implementation of the invention, almost all of the nodes of the NWK network comprise a management entity 100 capable of implementing the method according to the invention.
[0073] The NWK network will, for example, be a MANET-type network known to those skilled in the art. It comprises several dozen or hundreds of communication nodes arranged over a given space in order to cover a geographical area. Communications between nodes, in this example, are then wireless. The sending of messages by a communication node is then done by broadcast, without the node favoring a direction when it sends a message. Only the closest nodes will then be able to receive messages from a given node that transmits at a given power and these nodes will then be the neighboring nodes of the given node. In general, the nodes have the same transmission power and in this case, if a node can send a message to another node, the latter will be able to send with the same power and will be able to respond to it, but this is not an obligation.Communications between nodes can also be wired, or these two modes of communication can be mixed: some nodes can have wired communications between them, nearby, and on the other hand use wireless communications for more distant communications. Or conversely, nodes can use WiFi or Bluetooth wireless connections nearby and then create a wireless local subnet and some nodes distinguished from the local subnet will then act as gateways for the local subnet by being connected by wired communication to other nodes and thus form a larger-scale network. Several network topologies and several types of communication can therefore be used jointly even if, in general, the NWK network will be a mesh network, whose communication nodes have the same capabilities and communicate with each other via a wireless link.
[0074] The NWK network will for example be a network used in an IoT context. The communication nodes ND, ND', ND0, ND1 are then for example equipment, sensors, or sensors, or actuators, or any other type of connected object that can be used in this context. For example, the communication nodes ND, ND', ND0, ND1 can be water meters, or electricity meters that will connect to each other and create the NWK network in order to send their information step by step to a gateway itself connected to the Internet. Or the nodes ND, ND', ND0, ND1 can be equipment present in an industrial or residential area which will again connect to each other and create an NWK network allowing information to be sent or instructions to be transmitted.
[0075] The NWK network may be an ad hoc network. In this case, the NWK network does not have a predefined architecture but will see its architecture depend on the activation of the nodes of the NWK network and the connection of new communication nodes to the already existing NWK network. When a communication node ND, ND', ND0, ND1 is launched or its initial connection to the NWK network, the node ND, ND', ND0, ND1 will send its neighbors a specific message, called a Hello message, which will either be retransmitted step by step to all the nodes of the network, or received only by the neighboring nodes without being retransmitted. For example, in the OLSR protocol, Hello messages are intended only for the neighboring nodes of the transmitter and are not retransmitted. These messages contain information on the neighboring nodes detected by a given node in order to organize transmissions within the NWK network.
[0076] The communication nodes ND, ND', ND0, ND1 have the hardware architecture of a conventional computer. They include processors as well as RAM-type random access memories or possibly read-only memories such as Flash or ROM memory (not shown in the figure). They may have input-output devices such as keyboards and / or screens (not shown in the figure), but this will not be the case in all contexts, and for example, this will not necessarily be the case in an IoT context. The communication nodes ND, ND', ND0, ND1 have communication means such as antennas or chips dedicated to communications that allow them to communicate via wireless or wired links and to send messages to their neighboring nodes and also to receive messages from other communication nodes.
[0077] The management entity 100 included in the communication node ND uses the hardware resources of the communication node ND such as memories, computing capacities of the processors, communication capacities with neighboring nodes to carry out the steps of the management method according to the invention. We recall that, in general, all the nodes ND, ND', ND0, ND1 of the NWK network comprise a management entity similar to the management entity 100 which all implement the method, but, in certain embodiments, only a part of the nodes ND, ND', ND0, ND1 of the NWK network comprise a management entity 100.
[0078] In an IoT context, the communication nodes ND, ND', ND0, ND1 have limited computing, energy and / or memory resources. Also, the capacity of the NWK network in terms of bandwidth is limited, and therefore the ability to send messages between nodes is also limited. An advantage of the invention is to ensure that the use of these limited resources is reduced to a minimum compared to other solutions.
[0079] In particular, in an IoT context, the nodes ND, ND', ND0, ND1 do not always have a permanent power supply. They can be powered by a battery, or by an intermittent energy source such as a photovoltaic cell or a wind turbine. The nodes ND, ND', ND0, ND1 are therefore able to enter a sleep phase when their power supply becomes too low for them to perform their functions. During this sleep phase, a communication node ND, ND', ND0, ND1 will not receive any messages. Neighboring nodes that have sent a message to the communication node that has entered the sleep phase will not generally be notified of this sleep phase and will therefore not be notified of the non-receipt of messages sent during this sleep phase.
[0080] The communication nodes ND, ND', ND0, ND1 are able to pass from a sleep state, in which their activity is almost zero, and therefore their electricity consumption is also zero, to a wake-up state in which they resume normal activity. This passage from a sleep state to a wake-up state is done for example because of a change in their power supply, or in a programmed manner, or following an external intervention or for any other reason. When a communication node ND, ND', ND0, ND1 passes from a sleep state to a wake-up state, it transmits to its neighboring nodes a specific WK message indicating its passage to the wake-up state. Depending on the uses, these WK messages can be retransmitted step by step to all the nodes ND, ND', ND0, ND1 of the NWK network or may not be retransmitted and used only by the neighboring nodes of the node that passes to the wake-up state.
[0081] In the NWK network, messages are transmitted step by step between communication nodes ND, ND', ND0, ND1. The management method according to the invention makes it possible to ensure the routing of messages in the NWK network even when nodes ND, ND', ND0, ND1 which should route messages are in a sleep phase and therefore have not received these messages. The method according to the invention will achieve this objective independently of the knowledge of the success of the reception of the messages by the nodes at a given moment, therefore without using acknowledgment type messages, nor without using messages relating to the state of the nodes. The storage of messages routed by a node is done without taking into account acknowledgments of receipt and / or messages relating to the state of other nodes received by the first node.The method will also achieve this objective without using a centralized message storage platform that would require rebroadcasting messages across the entire NWK network and would therefore use a lot of bandwidth and power consumption resources during these rebroadcasts across the entire NWK mesh network. The method achieves this objective by accepting that a certain proportion of messages may be lost but by ensuring a possibility of modulating this acceptable loss rate by changing some of the parameters of the method according to the invention. One of the most important parameters of the method according to the invention is the proportion of messages stored by a given ND node among the set of messages M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 that can be received by the ND node.
[0082] In the exemplary embodiment presented in the, the storage module 101 included in the management entity 100 will carry out the storage of a part of the messages M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 received by the node ND for subsequent routing in the mesh network NWK, the storage of a received message M0, M2, M4, M6, M8 being done independently of the subsequent reception of the message by a neighboring node ND', ND0, ND1 of the node ND.
[0083] In our exemplary embodiment, the parameter corresponding to the proportion of messages to be memorized among the messages received M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 by the node ND is set to half or 50%. In other exemplary embodiments, this parameter may be set to 10% or 20% of the messages received M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 but these numbers are only indicative. This proportion may be variable over time, for example to ensure a greater chance of memorizing messages when there are frequent entries into sleep mode of nodes of the NWK network, or in reaction to requests from nodes of the NWK network.
[0084] To decide whether the management entity 100 of the node ND stores a received message M0, M1, M2, M3, M4, M5, M6, M7, M8, M9, one possible way of proceeding consists of recovering digital information present in the received message such as an identifier or a date or any other variable and storing only the messages M0, M2, M4, M6, M8 for which this digital information ends with an even number, in order to store a proportion close to 50% of the received messages. It is this exemplary embodiment which is represented in the by a brace pointing to the module 101, symbolizing the storage by the latter of the messages M0, M2, M4, M6, M8 among the messages M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 received by the node ND, i.e. effectively a proportion of 50% of stored messages.
[0085] In the exemplary embodiment of the, the node ND', neighbor of the node ND, will also memorize a proportion of 50% of the received messages. The determination of an equitable distribution of the memorized messages will ensure that the node ND', for its part, memorizes the messages M1, M3, M5, M7, M9 among the received messages M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 as indicated on the.
[0086] This memorization is done independently of the success or failure of the subsequent reception of the message after its transmission by the node ND to its neighboring nodes ND', ND0, ND1. For this, the memorization can be decided by reading information present in the received message, as explained above, or by a random draw. Here, each message received among M0, M1, M2, M3, M4, M5, M6, M7, M8, M9 would have a one in two chance of being memorized given that the proportion of messages to be memorized is fixed at 50%.
[0087] Still in the embodiment example presented in the, the retransmission module 102 included in the management entity 100 will carry out the retransmission to the node ND0 neighboring the node ND of all or part of the stored messages M0, M2, M4, M6, M8, said retransmission taking place after the reception of a WK message from said node ND0 indicating a transition to the wake-up state of this node ND0.
[0088] In the, the reception, by the node ND, of the message WK sent by the node ND0 upon its awakening and the retransmission, consequently, by the node ND to the node ND0, of the stored messages M0, M2, M4, M6, M8 is represented by the corresponding labels above and below the arrow connecting the nodes ND0 and ND.
[0089] Still in the, the node ND' is also neighbor of the node ND0 and will therefore also receive, as indicated, the message WK indicating the awakening of the node ND0. The node ND' will then retransmit to the node ND0, the messages that it has memorized among the messages received, namely the messages M1, M3, M5, M7, M9.
[0090] In other exemplary embodiments, a message received by the node ND is stored when a determined condition is verified. For example, the storage of received messages can be triggered from the moment when a neighboring node ND', ND0, ND1 requests the node ND to start it. Or, it can start when all the neighboring nodes ND', ND0, ND1 request it or a proportion determined in advance. In other exemplary embodiments, the determined condition can relate to the message loss rate that is observed, and which triggers the storage of messages when it passes a certain threshold. The determined condition can also relate to the electrical supply, because a drop in supply will increase the rate of node sleep and therefore of message loss. The determined condition can also be programmed in advance so that the storage of received messages takes place at dates and times determined in advance.
[0091] The, for its part, illustrates an example of messages exchanged between the communication nodes of a mesh network during an embodiment of the invention.
[0092] Let us take the example of the NWK mesh network which is formed of the communication nodes ND, ND', ND0, ND1 represented in. In such an NWK mesh network, the communication of messages is done from one node to another and by sending messages in broadcast mode (translation from English broadcast) from a given node to all of its neighbors.
[0093] Since message communication is done in broadcast mode, if we take the example of the, when node ND0 sends a WK message indicating its wake-up, this will be addressed to all of its neighboring nodes, that is to say to the two nodes ND and ND'. Once node ND has received the WK message sent by node ND0, it will retransmit the messages it has memorized, namely messages M0, M2, M4, M6, M8. This retransmission is also done in broadcast mode and will therefore reach the three neighboring nodes of node ND, namely nodes ND', ND0, ND1. Similarly, node ND' will retransmit the messages it has memorized, namely messages M1, M3, M5, M7, M9. This retransmission is also done in broadcast mode and will therefore reach the neighboring nodes of node ND', namely nodes ND, ND0, ND1.
[0094] This shows a possible example of the order between the different transmissions and receptions of messages between the nodes ND0, ND, ND', ND1 of the mesh network NWK. Other orders of transmissions and receptions are possible. The only constraint imposed by the invention is that the retransmission by the node ND to its neighboring nodes of the stored messages M0, M2, M4, M6, M8 necessarily occurs after the reception by the node ND of the message WK transmitted by the node ND0. And similarly, the retransmission by the node ND' of the stored messages M1, M3, M5, M7, M9 takes place after the reception by the node ND' of the message WK. But, for example, the order between these two receptions by the nodes ND and ND' of the message WK is not fixed, nor is the order between the receptions by the neighboring nodes of the retransmitted stored messages.
[0095] The, for its part, illustrates an example of steps implemented by a communication node within the framework of an embodiment of the invention.
[0096] In the example presented here, the steps described below are implemented by all the nodes ND, ND', ND0, ND1 of the mesh network NWK. In other words, all the communication nodes have the same capabilities and include management entities 100 which execute the operations of the method according to the invention in the same way. However, in other examples, it is possible for the nodes to execute the method differently, for example because they do not all have the same memory resources. It is also possible for the method to be executed only by a subset of the communication nodes of the mesh network.
[0097] We recall that the method according to the invention does not guarantee that all messages in the NWK network will be transmitted to their recipients. The method, however, seeks to ensure that the number of losses remains minimal, while using a minimum of memory, energy and bandwidth resources of the NWK network and that the loss rate can be controlled by adjusting parameters of the method according to the invention.
[0098] We successively present six steps S1, S2, S3, S4, S5, S6 but the order of execution of these different steps can vary during the implementation of the method by a management entity 100 of a communication node.
[0099] Step S1 comprises the discovery of its neighborhood in the NWK mesh network by a communication node. In particular, in certain exemplary embodiments, the management entity 100 must know the number of neighbors of the communication node in which the management entity 100 executes the method according to the invention, because this number of neighbors will be a parameter used for adjusting the method according to the invention. The discovery of this number of neighbors can be done by sending specific messages or by reusing the Hello type messages that are addressed by the nodes to their neighborhood when setting up MANET type networks.
[0100] Once the number of neighboring nodes has been determined by each node, it is possible for the nodes to broadcast this information throughout the NWK mesh network so that the nodes of the NWK network can determine an average value of the number of neighbors for all the communication nodes of the NWK mesh network. This average quantity may be used as a parameter in certain exemplary embodiments of the method according to the invention.
[0101] More simply than establishing an average number of neighbors for all nodes in the NWK mesh network, a given node can seek to determine the average number of neighboring nodes that its own neighbors have, or the minimum number of neighbors that its neighbors have. These quantities, too, can be used as parameters in implementing the method according to the invention.
[0102] Other quantities relating to the number of neighbors of the communication nodes of the NWK mesh network may be determined in step S1 for subsequent use in the method according to the invention.
[0103] In some simpler embodiments, the average number of neighbors of the nodes of the NWK network is defined a priori during the deployment of the nodes, for example by an expert in charge of building the NWK network.
[0104] In addition to discovering quantities relating to the number of neighbors, a communication node may seek to discover in step S1 information relating to the topology of the NWK network. For example, if the communication links are unidirectional, the method according to the invention will be adapted to take this information into account. Such information may be transmitted in the Hello type messages exchanged upon creation of the network or upon the arrival of a new node in the network.
[0105] Step S2 includes determining for the communication nodes of the NWK mesh network a proportion of messages to be stored. This proportion will be partly determined using information determined at the time of step S1.
[0106] For example, a node may decide to store messages in inverse proportion to the number of neighbors of the node. A node that has 10 neighbors will then decide, in an exemplary embodiment of the method, to store one tenth, or 10%, of the messages that it will receive for subsequent routing. Other formulas for determining the proportion of messages to be stored may use the average number of neighbors for the nodes in the entire network, or the average or minimum number of neighbors for the neighbors of the node that determines the proportion of messages that it will store. An increase in the proportion may be applied in order to improve the chances of being able to retransmit a message: for a number of 10 neighbors, the proportion of messages stored could then be 15% or 20% for example.A possible formula to give the proportion of stored messages can be for example a / N where a is a number greater than 1 and N is the number of neighbors considered (average number on the whole NWK network or number relative to a given node or its immediate neighborhood). Conversely, a reduction of the proportion can be applied in order to save even more resources (in particular memory resources) of the nodes, even if it risks a greater number of message losses.
[0107] In general, the proportion of stored messages will decrease with the number of neighbors of the nodes. Indeed, the more neighbors there are, the more the storage of messages can be distributed among the different nodes and therefore the lower the proportion of messages that each node will have to store.
[0108] Step S2 will also take into account information relating to the topology of the NWK network as reported during step S1, or defined a priori, if this topology is different from that of a network where communication between nodes is multidirectional, without differences in the directions of communication.
[0109] In certain simpler embodiments, step S1 can be avoided and the proportion of messages stored by the nodes of the NWK network will be defined a priori during the deployment of the communication nodes and the constitution of the NWK network, for example by an expert in charge of constructing the NWK network.
[0110] Step S3 includes the implementation of an effective distribution of the storage of messages received between nodes of the NWK network.
[0111] Once a proportion of messages to be stored for a given node has been decided, several implementation methods are possible. A first possible method is to carry out a random draw with regard to this proportion upon receipt of a message to decide whether to store it.
[0112] Among the possible modes, others are based on the use of information present in the received messages. In particular, a specific identifier can be retained during the implementation of the method and it can be decided that a node will memorize a received message according to the value taken by this identifier and the proportion of messages to be memorized.
[0113] For example, if the chosen identifier takes integer values, and the proportion of messages to be stored is a multiple of 10%, the information that will be used will be the last digit of the value taken by the identifier retained in the message. Still for example, if the proportion is 10% for a given ND node, the management entity 100 present in this ND node will store only the messages whose value ends with '0' or one of the ten other possible digits.
[0114] These implementation examples work well when the chosen identifier is close to a random number. It can be, for example, a random identifier of the message or a date, that of the message transmission for example, as long as it is expressed in number of seconds since a given date as in the Unix operating system with the epoch command. An IP address can also be used but risks giving less random results.
[0115] Using the last digits of an identifier, it is possible to define proportions that are multiples of 10%. Proportions to the nearest percentage point can be defined using the last two digits of a given identifier, again provided that it is sufficiently close to a random datum.
[0116] It is also possible to use an identifier whose value is expressed as a sequence of bits. The last bits of such a value can then be used in a similar way to implement the storage of a proportion of messages received, which will then necessarily be a quantity expressed in base 2.
[0117] Using a value taken by an identifier to decide whether to store a message requires coordination between nodes to prevent only certain messages from being stored. The value retained by a given node that will be used to decide whether or not to store a message can be called the node's key. It is necessary to ensure that the different nodes in the NWK network use different keys. This coordination is the subject of step S3.
[0118] This coordination can be done by sending a message to their neighboring nodes by the communication nodes ND, ND', ND0, ND1 indicating the quantity they have chosen as a key. If a node realizes that it has chosen a value identical to one of its neighboring nodes, it can then change it and inform its neighboring nodes of its chosen key. The operation of such coordination is improved when the nodes use a variable delay before sending their chosen keys to their neighboring nodes.
[0119] In a possible variant, the nodes can observe the keys retained by their neighboring nodes. They can then easily check whether the retained keys cover all the values that can be taken by the retained identifiers and therefore ensure that, for all messages received, at least one of their neighbors will memorize it. The nodes can then send one or more messages to their neighboring nodes indicating that the keys retained by their neighboring nodes do not cover all possible values. One or more neighboring nodes can then modify their retained keys, by retaining more, in order to cover all possible values.
[0120] In another variant, a node may explicitly ask one or more of its neighboring nodes to retain a specific key. In this variant, the nodes decide for their neighboring nodes the keys defining the messages to be stored.
[0121] We recall that when the storage of messages is decided according to a random draw, this coordination step S3 is not necessary. A choice will be made when implementing the method according to the invention which will favor either the saving of resources at the time of storage (choosing to store a message according to a value taken by an identifier is a more economical operation than a random draw) to the detriment of the emission of messages necessary for the coordination between nodes or the reverse.
[0122] The three steps S1, S2, S3 correspond to an implementation of the method according to the invention. These steps can be reduced to a minimum in certain exemplary embodiments. For example, it can be decided at the time of setting up the NWK mesh network that each node ND, ND', ND0, ND1 will store 10% or 20% of the messages received for subsequent routing and that the decision on this storage will be made by a random draw at each message reception. These decisions a priori reduce steps S1, S2, S3 to a minimum.
[0123] In other exemplary embodiments, a message received by a node among the nodes ND, ND', ND0, ND1 is stored when a determined condition is verified. For example, the storage of the received messages can be triggered from the moment when a neighboring node ND', ND0, ND1 requests the node ND to start it. Or, it can start when all the neighboring nodes ND', ND0, ND1 request it or a proportion determined in advance. In other exemplary embodiments, the determined condition can relate to the message loss rate that is observed, and which triggers the storage of the messages when it passes a certain threshold. The determined condition can also relate to the electrical supply, because a drop in supply will increase the rate of nodes going to sleep and therefore of message loss.The determined condition can also be programmed in advance so that the storage of the received messages takes place at dates and times determined in advance. In these exemplary embodiments, the determined condition is determined in advance of the deployment of the NWK network and is carried out by programming the storage module 101 of the management entity 100 present in the nodes of the NWK network. The deployment of these exemplary embodiments can therefore be done without using the coordination steps S1, S2, S3.
[0124] Steps S4, S5, S6 correspond to the implementation of an embodiment of the method according to the invention during the routing of messages in the NWK mesh network. These steps can occur concurrently throughout the operation of the method in the NWK network.
[0125] Step S4 corresponds to the storage of messages received by a node ND, ND', ND0, ND1 for subsequent routing in the NWK mesh network.
[0126] Let us begin by specifying that, if the message does not have to be routed subsequently by the communication node ND, ND', ND0, ND1, for example because the node in question is the only or the last recipient of the message, the latter will not be memorized because such memorization would be useless. In this case, the message in question has indeed arrived at its recipient.
[0127] The management entity 100 present in the communication node ND, ND', ND0, ND1 will therefore decide for a received message, independently of the subsequent routing of this message, whether this message will be stored or not. We have seen that the decision of this storage can be taken after having decided that a certain proportion of the messages will be stored, by using either a random draw with regard to this proportion or a key making it possible to emulate a random draw by looking at a value taken by an identifier of the message with the retained key.
[0128] Other exemplary embodiments are possible, which will use one or more pieces of information present in the messages to decide on storage independently of the proportions decided. For example, a piece of information present may consist of a priority level, and the implementation of the invention may consist of deciding on a proportion of messages stored for standard priority messages as a function of the number of neighboring nodes, as already seen, and multiplying this proportion by two for high priority messages or, on the contrary, dividing it by two for low priority messages. These proportions are of course indicative and may be modulated according to a number of defined priority levels. Certain messages, comprising specific information, may be defined as having to be stored in all cases.In other exemplary embodiments, a message received by a node among the nodes ND, ND', ND0, ND1 is stored when a determined condition is verified.
[0129] The storage step S4 may also include erasing previously stored messages.
[0130] Indeed, the nodes ND, ND', ND0, ND1 need to periodically erase the stored messages in order to avoid overloading their memory resources, which are limited in an Internet of Things context. The nodes can implement a FIFO policy (acronym for First In First Out), that is to say they will have a queue in which the stored messages are arranged in the temporal order of their storage, and, when the queue is full, the oldest message is deleted to give space to a new message received which must be stored. A node can also have several queues, a given queue being used to store messages of a given category, according to their importance and therefore the usefulness of storing them. Priority information present in the messages can then be used to assign them during step S4 to the queue corresponding to their priority level.A larger queue can then be assigned to the most important messages.
[0131] To optimize the use of memory resources, information received by a node from its neighboring nodes can be used. For example, nodes can include in the WK messages indicating their wake-up information about the last message they received, and their neighboring nodes that receive the WK message can save this information and delete messages that are older than the oldest date transmitted by their own neighboring nodes. In this way, nodes are sure not to store useless messages, namely messages older than the oldest message received by all their neighboring nodes.
[0132] It is also possible, still to optimize the use of memory resources, to set up messages in which a node asks its neighboring nodes to start the memorization step S4 of the messages received from a given date. Indeed, a node ND, ND', ND0, ND1 can often anticipate its sleep phases. It can then send to its neighboring nodes ND, ND', ND0, ND1 a message indicating that it will enter a sleep phase from a given moment and requesting memorization of the messages received. The message can for example request that the memorization of messages be triggered on a given date or that the proportion of received messages that are memorized be increased compared to standard operation in order to increase the probability that the node will indeed receive, upon waking up, all the messages that it will not have received during its sleep phase.In a possible embodiment of the invention, the basic operation of a management entity 100 is not to carry out storage S4 of the received messages for subsequent routing and to start storage only in the presence of a received message sent by a neighboring node which requests storage to be carried out, then to stop storage after retransmission of the stored messages.
[0133] Step S5, for its part, corresponds to the retransmission of all or part of the stored messages, said retransmission taking place after the reception of a WK message from a neighboring node indicating a transition to the wake-up state of this neighboring node.
[0134] When a node wakes up, it will send a specific WK message to its neighboring nodes, a message that requests the retransmission of the messages that the neighboring nodes have memorized. In this way, the waking node will find the messages that it missed during its sleep phase. If necessary, the waking node will forward the messages in question to other recipients and will possibly memorize, for possible later retransmission, an agreed proportion of these received messages.
[0135] In some exemplary embodiments, a node that receives a WK message indicating the awakening of one of its neighboring nodes will listen to the messages retransmitted by the other neighboring nodes, which will also probably have received the same WK message. The node will then not retransmit messages already retransmitted by other neighboring nodes, in order to save energy resources as well as bandwidth of the NWK network. The implementation of this exemplary embodiment implies that the nodes introduce variable time delays before proceeding with the S5 retransmission of the stored messages. Indeed, if all the nodes immediately retransmit the stored messages after receiving a WK message, they will not be able to listen to the messages retransmitted by their neighboring nodes and duplicate retransmissions are then likely.
[0136] Step S6, for its part, corresponds to the transmission of WK messages by the communication nodes ND, ND', ND0, ND1 when they pass from a sleep state to a wake-up state.
[0137] In embodiments, all of the communication nodes in the NWK mesh network will transmit this type of WK message at the same time as they store a proportion of the messages they receive. The storage of messages is therefore carried out in a distributed manner, as close as possible to the communication nodes, by their immediate neighbors.
[0138] The advantage of the invention here is to avoid rebroadcasts of messages from a centralized platform, rebroadcasts which will cross the entire NWK mesh network and consume a large part of the bandwidth resources of the NWK network. The distributed storage of messages by neighboring nodes makes it possible to avoid this retransmission across the entire NWK network.
[0139] In embodiments, the WK message includes information relating to the last message received by the communication node, before it enters a sleep phase. In this way, the nodes that receive the WK message will not retransmit messages older than the one indicated since these messages were received a priori by the node that has just indicated its awakening by a WK message. This embodiment therefore makes it possible to save even more bandwidth resources.
[0140] The nodes that receive this information in the WK messages can combine the information sent back by all of their neighboring nodes in order to determine which messages to store. It is not necessary, for a given node, to keep messages that are older than the oldest of the last messages received by the neighboring nodes of the given node. Indeed, these older messages will never have to be retransmitted and therefore do not have to be stored. They can therefore be deleted by the management entity 100 to save the memory resources of the communication node 100.
[0141] This information about the last message received can be included in WK type messages or in specific messages, addressed especially to inform neighboring nodes of the messages they can delete.
[0142] Steps S4, S5, S6 will be carried out concurrently by the management entities 100 present in the nodes ND, ND', ND0, ND1 throughout the life of the NWK mesh network as messages are sent and received and nodes ND, ND', ND0, ND1 are woken up.
[0143] Steps S1, S2, S3 may also be repeated as new nodes arrive in the NWK mesh network or, on the contrary, when certain nodes are removed, because such events may change the topology of the NWK network and in any case change the number of neighboring nodes of the NWK network, which has been seen to be an operating parameter of the method according to the invention. These changes may therefore trigger, in certain embodiments, updates to the parameters of the method according to the invention, updates carried out by new executions of steps S1, S2, S3 according to the needs of the method.
[0144] Finally, it should be noted here that, in this text, the term "module" can correspond to a software component as well as to a hardware component or a set of hardware and software components, a software component itself corresponding to one or more computer programs or sub-programs or, more generally, to any element of a program capable of implementing a function or a set of functions as described for the modules concerned. In the same way, a hardware component corresponds to any element of a hardware assembly capable of implementing a function or a set of functions for the module concerned (integrated circuit, smart card, memory card, etc.).
Claims
Method for managing the routing of messages in a mesh network (NWK) comprising communication nodes (ND, ND', ND0, ND1) capable of switching from a sleep state to a wake-up state and having neighboring nodes in the mesh network, characterized in that it comprises the following steps carried out by a management entity (100) present in a communication node (ND) of the mesh network (NWK), called the first node: Without taking into account acknowledgments of receipt and / or messages relating to the state of other nodes received by the first node (ND), storing messages received by said first node (ND) for subsequent routing; After receiving a message (WK) from a neighboring node (ND0), called the other node, indicating a switch to the wake-up state of this other node (ND0), retransmitting to said other node (ND0) all or part of the stored messages. Management method according to claim 1, characterized in that a message received by said first node (ND) is stored when a determined condition is verified. Management method according to one of claims 1 or 2, characterized in that the method further comprises, after a transition to the wake-up state of the first node (ND), a step of transmitting to the neighboring nodes (ND', ND0, ND1) of said first node (ND) a message (WK) indicating the transition to the wake-up state of said first node (ND). Management method according to one of claims 1 to 3, characterized in that, during the retransmission step, said first node (ND) retransmits to the other node (ND0) all or part of the stored messages depending on the messages retransmitted by all the neighboring nodes (ND, ND') to the other node (ND0). Management method according to one of claims 1 to 4, characterized in that the proportion of messages stored by the first node (ND) among all the messages received for subsequent routing is determined as a function of the number of neighboring nodes (ND', ND0, ND1) of the first node (ND). Management method according to one of claims 1 to 5, characterized in that the proportion of messages stored by the main node (ND) among all the messages received for subsequent routing is determined as a function of the topology of the mesh network (NWK). Management method according to one of claims 1 to 6, characterized in that a given message is stored by the first node (ND) following the success of a random draw relating to a given probability. Management method according to one of claims 1 to 7, characterized in that a given message is stored by the first node (ND) as a function of information present in the given message. Management method according to claim 8, characterized in that the method further comprises a preliminary step in which the first node (ND) transmits to its neighboring nodes (ND', ND0, ND1) information relating to the information present in a given message which will be used by the first node (ND) to decide whether or not to store the given message. Management method according to one of claims 1 to 9, characterized in that the message (WK) indicating the transition to the wake-up state of the other node (ND0) comprises information relating to the last message received by said other node (ND0). Management method according to one of claims 1 to 10, characterized in that a communication node (ND, ND', ND0, ND1) transmits to its neighboring nodes (ND, ND', ND0, ND1) a message requiring storage of the received messages. Management entity (100) managing the routing of messages in a mesh network (NWK) comprising communication nodes (ND, ND', ND0, ND1), said communication nodes (ND, ND', ND0, ND1) being capable of switching from a sleep state to a wake-up state and having neighboring nodes (ND, ND', ND0, ND1) in the mesh network (NWK), the management entity (100) being present in a communication node (ND) of the mesh network (NWK), called first node (ND), and comprising the following modules: A module (101) for storing messages received by said first node (ND) for subsequent routing in the mesh network (NWK), the storage of a received message being done independently of the subsequent reception of the message by a neighboring node (ND', ND0, ND1) of the first node (ND);A module (102) for retransmitting to a neighboring node (ND0), called another node (ND0), all or part of the stored messages, said retransmission taking place after the reception of a message (WK) from said other node (ND0) indicating a transition to the wake-up state of this other node (ND0).; Equipment (ND) comprising a management entity (100) according to claim 12. Computer program capable of being implemented by equipment (ND), the program comprising code instructions which, when executed by a processor, performs the steps of the management method according to claim 1. Data carrier on which is recorded a computer program according to claim 14 comprising sequences of instructions for implementing the management method according to claim 1.
Citation Information
Patent Citations
Routing Mechanism for Distributed Hash Table Based Overlay Networks
US20110205949A1
Distributed Sleep Management for Battery Powered Multi-Hop Heterogeneous Wireless Network
US20180227846A1