Method for updating a number of hops that is to be used for communication between a publisher mesh node and a subscriber mesh node in a wireless mesh network

11350340 · 2022-05-31

Assignee

Inventors

Cpc classification

International classification

Abstract

A method of enabling a publisher mesh node to update a number of hops that is to be used for communication between said publisher mesh node and a subscriber mesh node in a wireless mesh network, wherein said method comprises the steps of periodically receiving, by said subscriber mesh node, broadcasted messages from said publisher mesh node, wherein said broadcasted messages comprise a number of hops that said broadcasted messages may traverse in said mesh network, determining, by said subscriber mesh node, that one or more periodically broadcasted messages have not been received, transmitting, by said subscriber mesh node in reply to said determination that one or more periodically broadcasted messages have not been received, a probe message to said publisher mesh node, wherein said probe message comprises a number of hops corresponding to a periodically broadcasted message that was received by said subscriber mesh node.

Claims

1. A method of enabling a publisher mesh node to update a number of hops that is to be used for communication between said publisher mesh node and a subscriber mesh node in a wireless mesh network, wherein said method comprises the steps of: periodically receiving, by said subscriber mesh node, broadcasted messages from said publisher mesh node, wherein said broadcasted messages comprise a number of hops that said broadcasted messages may traverse in said mesh network; determining, by said subscriber mesh node, that one or more periodically broadcasted messages have not been received; and transmitting, by said subscriber mesh node, in response to said determination that one or more periodically broadcasted messages have not been received, a probe message to said publisher mesh node, wherein said probe message is a request for said publisher mesh node to update the number of hops that said broadcasted messages may traverse in said mesh network and comprises a number of hops taken by a periodically broadcasted message that was previously received by said subscriber mesh node.

2. The method in accordance with claim 1, wherein said method further comprises the step of: receiving, by said subscriber mesh node, a status message, wherein said status message comprises an updated number of hops that is to be used for communication between said publisher mesh node and said subscriber mesh node.

3. The method in accordance with claim 1, wherein said method further comprises the steps of: determining, by said subscriber mesh node, that a status message is not received from said publisher mesh node within a predefined period of time, wherein the status message is an expected response to the probe message; and transmitting, by said subscriber mesh node, an updated probe message to said publisher mesh node, wherein said updated probe message comprises an increased number of hops.

4. The method in accordance with claim 1, wherein said step of transmitting comprises the step of determining said number of hops corresponding to said periodically broadcasted message by any one or more of the steps of: receiving, by said subscriber mesh node, from a provisioner mesh node said number of hops that was set for said subscriber mesh node during a discovery phase in said mesh network; and using, by said subscriber mesh node, said number of hops in a broadcasted message that was last received from said publisher mesh node.

5. A method in accordance with claim 1, wherein said step of determining, by said subscriber mesh node, that one or more periodically broadcasted messages have not been received comprises any of: determining, by said subscriber node, that a broadcasted message has not been received in case a predefined amount of time has lapsed since a particular broadcasted message that was received; and determining, by said subscriber node, that an amount of not received broadcasted messages is above a predefined threshold.

6. A method for updating a number of hops that is to be used for communication between a publisher mesh node and a subscriber mesh node in a wireless mesh network, wherein said method comprises the steps of: periodically broadcasting, by said publisher mesh node, messages, wherein said messages comprise a number of hops that said broadcasted message may traverse in said mesh network; receiving, by said publisher mesh node, a probe message from said subscriber mesh node, wherein receipt of the probe message indicates that one or more periodically broadcasted messages have not been received, wherein said probe message is a request for said publisher mesh node to update the number of hops that said broadcasted messages may traverse in said mesh network and comprises a number of hops corresponding to a periodically broadcasted message that was received by said subscriber mesh node; and updating, by said publisher mesh node, said number of hops that said broadcasted message may traverse in said mesh network.

7. The method in accordance with claim 6, wherein said method further comprises the step of: transmitting, by said publisher mesh node, to said subscriber mesh node, a status message wherein said status message comprises an updated number of hops that is to be used for communication between said publisher mesh node and said subscriber mesh node.

8. The method in accordance with claim 6, wherein said step of updating comprises any one or more of: maintaining, by said publisher mesh node, said number of hops used in said broadcasted messages in case said number of hops in said probe message is less then said number of hops used in said broadcasted messages; and adopting, by said publisher mesh node, said number of hops in said probe message in case said number of hops in said probe message is more then said number of hops used in said broadcasted messages.

9. A subscriber mesh node arranged for enabling a publishes mesh node to update a number of hops that is to be used for communication between said publisher mesh node and said subscriber mesh node in a wireless mesh network, wherein said subscriber mesh node comprises: receive equipment arranged for periodically receiving broadcasted messages from said publisher mesh node, wherein said broadcasted messages comprise a number of hops that said broadcasted messages may traverse in said mesh network; process equipment arranged for determining that one or more periodically broadcasted messages have not been received; and transmit equipment arranged for transmitting, in response to said determination that one or more periodically broadcasted messages have not been received, a probe message to said publisher mesh node, wherein said probe message is a request for said publisher mesh node to update the number of hops that said broadcasted messages may traverse in said mesh network and comprises a number of hops taken by a periodically broadcasted message that was previously received by said subscriber mesh node.

10. The subscriber mesh node in accordance with claim 9, wherein said receive equipment is further arranged for: receiving, a status message, wherein said status message comprises an updated number of hops that is to be used for communication between said publisher mesh node and said subscriber mesh node.

11. The subscriber mesh node in accordance with claim 9, wherein said process equipment is further arranged for: determining that a status message is not received from said publisher mesh node within a predefined period of time, wherein the status message is an expected response to the probe message, and wherein said transmit equipment is further arranged for: transmitting an updated probe message to said publisher mesh node, wherein said updated probe message comprises an increased number of hops.

12. The subscriber mesh node in accordance with claim 9, wherein said receive equipment is further arranged for: receiving, from a provisioner mesh node said number of hops that was set for said subscriber mesh node during a discovery phase in said mesh network; and/or wherein said process equipment is further arranged for: using said number of hops in a broadcasted message that was last received from said publisher mesh node.

13. The subscriber mesh node in accordance with claim 9, wherein said process equipment is further arranged for any one or more of: determining that a broadcasted message has not been received in case a predefined amount of time has lapsed since a particular broadcasted message that was received; and determining that an amount of not received broadcasted messages is above a predefined threshold.

14. A publisher mesh node arranged for updating a number of hops that is to be used for communication between said publisher mesh node and a subscriber mesh node in a wireless mesh network, wherein said publisher mesh node comprises: transmit equipment arranged for periodically broadcasting messages, wherein said messages comprise a number of hops that said broadcasted message may traverse in said mesh network; receive equipment arranged for receiving a probe message from said subscriber mesh node, wherein receipt of the probe message indicates that one or more periodically broadcasted messages have not been received, wherein said probe message is a request for said publisher mesh node to update the number of hops that said broadcasted messages may traverse in said mesh network and comprises a number of hops corresponding to a periodically broadcasted message that was received by said subscriber mesh node; and process equipment arranged for updating said number of hops that said broadcasted message may traverse in said mesh network.

15. The publisher mesh node in accordance with claim 14, wherein said transmit equipment is further arranged for: transmitting, to said subscriber mesh node, a status message wherein said status message comprises an updated number of hops that is to be used for communication between said publisher mesh node and said subscriber mesh node.

16. The publisher mesh node in accordance with claim 14, wherein said process equipment is further arranged for any one or more of: maintaining said number of hops used in said broadcasted messages in case said number of hops in said probe message is less then said number of hops used in said broadcasted messages; and adopting said number of hops in said probe message in case said number of hops in said probe message is more then said number of hops used in said broadcasted messages.

17. A non-transitory computer readable storage medium comprising computer program code which, when executed by a processor, cause the processor to implement a method of enabling a publisher mesh node to update a number of hops that is to be used for communication between said publisher mesh node and a subscriber mesh node in a wireless mesh network, wherein said method comprises the steps of: periodically receiving, by said subscriber mesh node, broadcasted messages from said publisher mesh node, wherein said broadcasted messages comprise a number of hops that said broadcasted messages may traverse in said mesh network; determining, by said subscriber mesh node, that one or more periodically broadcasted messages have not been received; and transmitting, by said subscriber mesh node, in response to said determination that one or more periodically broadcasted messages have not been received, a probe message to said publisher mesh node, wherein said probe message is a request for said publisher mesh node to update the number of hops that said broadcasted messages may traverse in said mesh network and comprises a number of hops taken by a periodically broadcasted message that was previously received by said subscriber mesh node.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

(1) FIG. 1 schematically illustrates a mesh network.

(2) FIG. 2 schematically illustrates an initial configuration procedure of a mesh network according to prior art.

(3) FIG. 3 schematically illustrates a method according to the present disclosure.

(4) FIG. 4 schematically illustrates a method according to the present disclosure.

(5) FIG. 5 schematically illustrates a method according to the present disclosure.

(6) FIG. 6 schematically illustrates a method according to the present disclosure.

(7) FIG. 7 schematically illustrates a method according to the present disclosure.

(8) FIG. 8 schematically illustrates the format of a message according to the present disclosure.

(9) FIG. 9 schematically illustrates the format of a message according to the present disclosure.

DETAILED DESCRIPTION

(10) FIG. 1 schematically illustrates a mesh network 10. A publish-subscribe paradigm may be specified for exchanging the application data, i.e., data in Foundation layer or Model layer. The message sender, i.e., message publisher, 11 sends the message to the destination address called a publish address. Meanwhile, one or more receivers, or subscribers 12, 13, 14 subscribe to the publish address to receive the message. When a publisher mesh node 11 sends a multicast message, the number of hops, i.e. the Time To Live, TTL, value of the message is determined based on the distance towards a subscriber mesh node 12, 13, 14 that requires most number of hops. As shown in FIG. 1, publisher mesh node A 11 sends a multicast message to group address GA which is subscribed by subscriber mesh node B 12, subscriber mesh node C 13 and subscriber mesh node D 14. According to the topology, subscriber mesh node B 12 is one hop away from subscriber mesh node A 11. Subscriber mesh node A 11 needs at least two hops to reach subscriber mesh node C 13 and at least three hops to reach subscriber mesh node D 14. As a result, in order to reach all nodes that subscribe to group address GA, publisher mesh node 11 needs to send the mesh message with minimum TTL value equal to three. In practice, the TTL is typically set a little bit higher than the minimum value.

(11) FIG. 2 schematically illustrates a method 20 of determining the TTL according to the prior art. In FIG. 2, node A 22 is the publisher mesh node, and node B 23 is one of the subscribers. The mesh specification defines a heartbeat publish state and a heartbeat subscribe state which are used to control the heartbeat operation and retrieves heartbeat TTL measurement result. These states are defined in a foundation model which could only be accessed by using the device key of each node. In this case, the configuration client 21, which in most of the case a provisioner will do the corresponding configuration of each node. Firstly, the configuration client 21 configures 24 each subscriber 23 to receive the upcoming heartbeat message from the specific publisher 22. Secondly, the configuration client configures 25 the publisher 22 to start sending heartbeat messages. Meanwhile, the configuration client can optionally start a timer 26 to keep track of the heartbeat TTL measurement process time. During this period, the publisher 22 sends heartbeat messages 27, 28, 29 periodically to the preconfigured group address for updating the heartbeat subscription state 30. Once the heartbeat message 27, 28, 29 is received by the subscriber node 23, the measured TTL is recorded in the local node 23. When this procedure is finished, the configuration client 21 contacts 32 each subscriber 23 to collect 33 the test results. By summarizing the received test results 33 the configuration client 21 can configure 34 the publisher 22 to use a reasonable TTL value to publish message to the group address so that all the subscribers have a good chance to receive the message.

(12) Note that the procedure described in FIG. 2 is only for one group address. In case there are multiple publisher—subscribe relationships configured in the mesh network, this procedure is to be repeated for each publisher.

(13) Publisher and Subscriber Internal Storage

(14) During the provisioning, the subscriber mesh node can be informed with the publishers' network address and the message periodicity. Thus, the subscriber knows when to expect the upcoming application message, i.e. a periodic message, from the publisher mesh node. The publisher mesh node can also get the information about the subscriber's network address per group address. In this case, the publisher knows the addresses of the nodes that has subscribed to the group address.

(15) Publisher Internal Memory Structure

(16) An internal data structure, called subscriber TTL list, can be used by the publisher mesh node to store such information. The purpose of this table is to record the TTL of each subscriber mesh node per group address that they subscribe from. An example of this data structure is shown below. The group address field and the element address field stores all the subscribers network address of the corresponding group address. The TTL fields records the number of hops away from the publisher to each subscriber.

(17) TABLE-US-00001 Group Address Element Address TTL Group Address A 0x000A 10 0x000B 7 0x000C 2 Group Address B 0x000C 3 0x000D 6 0x000E 15
Subscriber Internal Memory Structure

(18) From the subscriber's 102 point of view, the Publisher TTL information table can be used to store the relationship between the publisher 101 and the subscriber 102 and the corresponding TTL. The table below shows one example of the data structure format. The publisher 101 address and the subscriber 102 address fields saves the relationship of the publisher 101 and the group address. The initial TTL is the TTL that used by the publisher 101 to send the application message. The remaining TTL is the network TTL value of the application message when received.

(19) TABLE-US-00002 Publisher address Subscribe Address Initial TTL Remaining TTL 0x0001 0xa00a 15 2 0x0002 0xa00b 8 6
TTL Increment

(20) FIG. 3 schematically illustrates a method 100 according to the present disclosure. More specifically, FIG. 3 shows a typical message transaction when a subscriber mesh node 102 recognizes that it is receiving periodic messages from a publisher mesh node 101. The subscriber mesh node 102 recognizes that a publisher mesh node 101 sends periodic application messages, AppMessage, 103, 104 to a group address which it subscribes. The TTL field of the message is set using initial TTL set as nwkTTL_1.

(21) In one embodiment, a parameter can be defined to set the maximum interval for the application message periodicity. If the application message interval is higher than the defined maximum interval, the application is considered as sending messages sporadically. The purpose of this parameter is to keep the minimum sensitivity of the network communication status.

(22) For a subscriber mesh node 102, a timer can be started to keep track of the time when messages are expected from the publisher mesh node. Once a message 103, 104 is received, the timer is reset and keep counting for the next upcoming message.

(23) If an expected message is not received 105 within an estimated time window, the subscriber 102 will send 106 a ttl_probe message 300, i.e. a probe message in accordance with the present disclosure, to the publisher mesh node 101 using unicast address in the destination field.

(24) In an embodiment, the subscriber mesh node 102 can set its own threshold which is used to decide when to send 106 the ttl_probe message 300. For example, a subscriber mesh node 101 can send 106 the ttl_probe message 300 if the first expected message is not received 105. Alternately, the threshold can be set so that the ttl_probe message 300 will only be sent 106 if three application messages 105 are missed consecutively, for example.

(25) In the network layer of the ttl_probe message 300, the SRC field may be set with the network address of the subscriber mesh node, the destination address is set as the network address of the publisher mesh node. The network TTL is set as the same nwkTTL_1 that used by the publisher mesh node 101. The same nwkTTL_1 value is carried in the transport layer PDU as well so, once the message is received by the publisher mesh node 101, it will know the initial TTL value used by the subscriber 102.

(26) In an embodiment, the provisioner can tell the subscriber 102 about the TTL value that was set to the publisher mesh node 101 during the TTL discovery phase as described previously.

(27) In another embodiment, the subscriber mesh node 102 can use the TTL value received from the publisher mesh node 101 when it transmits the heartbeat value. Specifically, the maximum TTL value defined in the foundation model, heartbeat subscription state.

(28) In another embodiment, the subscriber mesh node 102 can use the value saved in its internal memory data structure.

(29) Once the ttl_probe message 300 is sent 106, the subscriber mesh node expects a ttl_status message 350 within certain time. If the ttl_status message 350 is not received on time, the subscriber mesh node may increase 107 the TTL value and send 108 a new ttl_probe message 300. The subscriber mesh node 102 may keep increasing 107 the TTL value of the new sent ttl_probe message 300 until a ttl_status message 350 is received 110.

(30) In one embodiment, it is recommended to have a reasonable TTL increase step 107 when sending a new ttl_probe message, for example, by adding 2 or 3 extra hop every time.

(31) In another embodiment, it is also possible to set an upper limit of number of retries 106 when sending the ttl_probe message 300. If the ttl_status message is not received 110 when the subscriber mesh node reaches the upper transmission limitation, the communication is considered broken for the moment.

(32) From the publisher's 101 perspective, it may receive a ttl_probe message 108 due to two reasons. In the first case, the communication between the subscriber 102 and publisher 101 is not reachable using the current TTL and it needs to be increased. In the second case, the application message 103, 104 sent by the publisher mesh node 101 is lost in the network not because of a shorter TTL value. To identify these two cases, the publisher mesh node 101 needs to compare 109 the initial_TTL value carried in the ttl_probe message and its local TTL value used for message publishing.

(33) If the initial_TTL is smaller than the current TTL, the publisher mesh node 101 may send the ttl_status 110 using the current TTL. Otherwise, the publisher mesh node may use the initial_TTL value contained in the ttl_probe as the TTL value for the out-going ttl_status message. Meanwhile, the network TTL value for the next application message is also increased to the new TTL value, i.e., nwkTTL_2.

(34) Once the subscriber mesh node 102 receives 110 the ttl_status, it may stop sending ttl_probe message 300 and wait for the next incoming application message 111. Once the ttl_status message is sent 110 from the publisher mesh node 101, and the TTL increases, the corresponding TTL field in the publishers 101 internal data structure is also updated. The TTL field of the Subscriber TTL list data structure is updated to the latest TTL per group address that the subscriber 102 listens to and the network address of the subscriber mesh node 102. When the subscriber mesh node 102 receives 110 the ttl_status message, the internal data structure, Publisher TTL information table, is also updated. The entry is first searched by using the publisher address and subscriber address as key. The Initial TTL field is updated according to the initial_TTL value carried from the ttl_status message. The remaining TTL field is assigned with the network TTL value when the message is received.

(35) TTL Decrement

(36) The mesh network topology and communication status might be changed due to redeployment or network extension, e.g., adding new relays. In some cases, the TTL value that was originally configured to the publisher mesh node might become more than necessary. In this case, it is good to reduce the TTL in order to reduce the unnecessary channel occupancy. The TTL decrement procedure comprises of two phases, the discovery phase and the adjusting phase. These two phases are described separately in this section.

(37) TTL Change Discovery Phase

(38) Once the subscriber mesh node 102 receives an application message 151, 152, 153 from the publisher 101, the remaining TTL is typically accessible in the TTL field from the network layer. The remaining TTL indicates how many extra hops that the message may further relayed in the mesh network. From the publisher mesh node 101 point of view, a publisher mesh node 101 may need to set the application message TTL according to the furthest subscriber mesh node.

(39) In order to discover the TTL changes, the subscriber mesh node 102 may need to keep track of either sudden change or the gradually changed TTL value of the received application message. In FIG. 4, i.e. the method as indicated with reference numeral 150, and FIG. 5, i.e. the method as indicated with reference numeral 160, a subscriber mesh node 102 is defined such that it has a TTL value of 3—i.e. an application message sent by the publisher mesh node 101 may need at least three hops to reach the subscriber mesh node 102.

(40) Additionally, a TTL variation threshold, TH, may be defined as being three. The threshold, TH, serves the purpose of increasing the system sensitivity to a changing TLL value. Referring to both FIGS. 4 and 5, it is assumed that due to some changes in the mesh network, the TTL value is being increased by the subscriber mesh node. For example, a first application message 151 sent by the publisher mesh node has a RemainingNwkTTL of 2 when the application message reaches subscriber mesh node 102. The second application message 152 has a RemainingNwkTTL of 4 when the message reaches the subscriber mesh node 152 and the third application message 153 has a RemainingNwkTTL of 9 when the message reaches subscriber mesh node 102.

(41) In one embodiment, a TTL variation threshold can be defined to trigger 161 the sending of a ttl_probe message. The subscriber mesh node may store the previous TTL value that triggers the ttl_probe message. If the TTL value in the received application message, i.e., Remaining TTL−Stored TTL>threshold, the ttl_probe message may be sent from the subscriber mesh node. An example is shown in FIG. 5 the first two AppMessage 151, 152 with RemainingNwkTTL 2 and 4 does not pass the threshold defined by TH (3). However, the third AppMessage 153 triggers 161 the ttl_probe message because RemainingNwkTTL(9)−TTL (3)=6 which is larger than the defined TH (3).

(42) In one embodiment, the ttl_probe message can be sent 161 periodically to urge the publisher mesh node to update the TTL. In another embodiment, the ttl_probe can be sent 161 after every received application message 151, 152, 153 in order to reduce the possible network congestion in a busy mesh network.

(43) TTL Adjusting Phase

(44) The subscriber mesh node 102 may send 161 a ttl_probe message to decrease the TTL of the publisher mesh node. In the network part of the message, the SRC field is set as the network address of the subscriber mesh node. The DST field is set as the network address of the publisher mesh node. The network layer TTL is set as the value that the subscriber mesh node 102 would like to optimize. For example, if the publisher TTL value saved in the subscriber mesh node 102 is 15, a reasonable TTL value for the ttl_probe message 161 could be 7 or 8. The same TTL value is included in the initialTTL field of the transport layer PDU of the sent ttl_probe message 161.

(45) In order to properly decrease the TTL from the publisher mesh node 101 side, the publisher mesh node 101 may need to check the Subscriber TTL list data structure before it responds 162 with the ttl_status message. Once a ttl_probe message is received 161, the publisher mesh node 101 may first need to identify if the message aims at increasing or decreasing the TTL. If the ttl_probe message: comes from the mesh node that is furthest away from the publisher and The initialTTL value included in the transport PDU is smaller than the current TTL that the publisher used for sending the application multicast message the publisher will start decreasing the TTL. When setting the TTL value for the outgoing ttl_status message 162, the publisher mesh node 101 may compare if the received initialValue is bigger than the second largest TTL value needed for the subscriber mesh nodes. If so, the initialValue is selected. Otherwise, the second largest TTL saved in the Subscriber TTL list data structure is used for in the ttl_status message.

(46) The ttl_status message 162 is configured as the following. In the network layer, the SRC fields is set as the network address of the publisher mesh node. The DST address is set as the group address for multicast. The network layer TTL is set as the select TTL as shown in this section. The same TTL value is included in the initialTTL field of the transport layer.

(47) In one embodiment, the network TTL field could still be set as the previous TTL that used by the publisher mesh node. The purpose is to increase the possibility for all subscriber mesh nodes 102 to receive the ttl_status message 162. In another embodiment, the publisher mesh node 101 may send the ttl_status message 162 multiple times to increase the chance that all subscriber mesh nodes 102 can receive this message to update the TTL.

(48) When the ttl_status message is received 162 by the subscriber mesh node 102, the subscriber mesh node 102 may stop sending the ttl_probe message. Since the ttl_status is a multi-cast message, all the subscriber mesh nodes that receive the message collect the remaining TTL value from the ttl_status network layer and update the Publisher TTL information table.

(49) Message Sequence Chart for Sporadic Message Publisher

(50) The sporadic message publisher TTL optimization procedure is similar as the case of periodic message publisher mesh node. Only the difference is highlighted here. In one embodiment, the publisher mesh node 101 that is considered as sporadic message publisher mesh node may need to periodically send the ttl_status message to the subscriber's mesh node 102 group address. The ttl_status message interval may be known by all subscriber mesh nodes 102 during the provisioning phase. The subscriber mesh nodes 102 may use the ttl_status message to detect the existence and hop count of the publisher.

(51) In another embodiment, subscriber mesh nodes 102 can be configured to send ttl_probe message periodically. Once the ttl_probe message is received, the publisher mesh node 101 may respond with a ttl_status message. Different intervals can be configured which defines the ttl_probe message publishing speed. If a ttl_status message is received in time, the publisher mesh node 101 can choose to send the ttl_probe message using a relatively longer period. Otherwise, the subscriber mesh node 102 might choose to use a shorter interval to quickly trigger the ttl_status message. The remaining procedure for TTL increase and decrease are the same as described previously.

(52) Publisher Flow Chart

(53) Once a ttl_probe message is received by the publisher mesh node 101, it will search its internal data memory, Subscriber TTL list data structure, using the group address and the element address as the key. If no match found, the received ttl_probe message is discarded. Otherwise, the TTL field of the found entry may be used to compare with the initialTTL value of the ttl_probe message transport layer PDU. If the initialTTL value is bigger than the current TTL value used by the publisher mesh node, the ttl_probe message is considered as a TTL increasing request. Otherwise, if the ttl_probe message comes from the subscriber mesh node that has the largest TTL, and the initialTTL is smaller than the value saved in the table, the ttl_probe is requesting for TTL decreasing. Other cases are considered as neither TTL increase nor TTL decrease, the ttl_status message will be sent using the current TTL value.

(54) As shown by the method 200 in FIG. 6 after provisioning, the publisher mesh node may know by itself if it is a periodic message publisher mesh node or a sporadic message publisher mesh node 201. In case of a sporadic message publisher mesh node, the publisher mesh node 101 may check 205 whether it is time to publish a ttl_status message. If it is time, the publisher mesh node 101 may publish 207 ttl_status message to each group address periodically. Otherwise, the publisher mesh node may wait 206 for incoming ttl_probe message.

(55) Once a ttl_probe message is received, the message purpose is analysed 203 using the Subscriber TTL list data structure. The ttl_status message is prepared according to the received ttl_probe message and the message is eventually sent 204 to the group address.

(56) If however, the publisher mesh node 101 is a periodic message publisher, it checks 202 if a ttl_probe message has been received. Upon receiving a ttl_probe message, the publisher mesh node 201 may detect 203 the purpose of the received ttl_probe message—i.e. to increase or decrease the TTL. A ttl_status message is prepared according to the received ttl_probe message and the message is eventually sent 204 to the group address.

(57) Subscriber Flow Chart

(58) The internal data structure, Publisher TTL information table, is used to save the relationship of publisher mesh node and multicast address relationship, the TTL value that the publisher mesh node used to send the application message and the remaining TTL when the application message is received. The network layer TTL value of the received ttl_status is compared with the remaining TTL value of the table to decide if a ttl_probe message should be sent to the publisher mesh node to decrease the TTL. Once a ttl_status message is received by a subscriber mesh node, the initial TTL field is updated according to the initial_TTL value in the transport PDU part. The remaining TTL field is updated according to the network TTL field of the received ttl_status message. Once the subscriber mesh node decides to send a ttl_probe message, the network TTL value is set according to the value saved in the initial TTL field.

(59) Referring now to the method 250 shown in FIG. 7, The subscriber 102 decides 251 if a ttl_probe message should be sent to the publisher mesh node 101 either for TTL increase or decrease purpose. If a ttl_probe message needs to be sent, the subscriber mesh node 102 sends 252 the message and expects a corresponding ttl_status message in response. If 25 the message is received, the local storage is updated 254 as described above. Otherwise, the TTL value of the ttl_probe message is increased 255 and sent 252 to the publisher mesh node 101 again. Once the ttl_status message is received, the subscriber mesh node may stop sending the ttl_probe message.

(60) Model State Definition

(61) This section shows a possible implementation of the idea described in this disclosure. The disclosure may be defined in terms of states which is compatible with the standard BLE mesh specification. Two states are defined to control the TTL update procedure, i.e., the TTL PROBE state and the TTL STATUS state. The TTL_PROBE states define the subscriber operation on sending the ttl_probe message while the TTL_STATUS state defines the operation that the publisher mesh node sends the ttl_status message. The behaviors upon state value change is also described in this section.

(62) TTL_PROBE State

(63) This state may be implemented in all application message subscribers. This state is a composite state and may contain the following sub-states. TTL increase step. The number of TTL increased if the previous send ttl_probe message is not respond with ttl_status. TTL variation threshold. The threshold of TTL variation when a ttl_probe message is sent for TTL decrease. Max publisher silence time. The maximum time without publish communication before the subscriber send a ttl_probe message. Number of TTL probe message. The upper limit of number of ttl_probe message that the subscriber send for TTL adjustment. TTL status waiting time. The waiting time after a ttl_probe message sent to the publisher until the next ttl_probe message being sent.
TTL_STATUS State

(64) This state is implemented in the publisher side to control the behaviour of the ttl_status sending if the publisher is a sporadic application message publisher. Is periodic publisher. A Boolean indicator to flag if the publisher is a periodical message publisher or not. TTL status message periodicity. For sporadic publishers only. Set to configure the ttl_status message periodicity.
The Model

(65) A model may be defined to contain the instances of TTL_PROBE state, TTL_STATUS state, ttl_probe message and ttl_status message. The model may also specify the functions to operate the procedures of optimizing the TTL value by using the defined states and messages. In one embodiment, the model is a Bluetooth SIG adopted model that extends an existing model such as the Heartbeat model. In another embodiment, the model is a Bluetooth SIG adopted model that is a root model which does not extend any other models. In yet another embodiment, the model is a vendor model that extends an existing model such as the Heartbeat model. In yet another embodiment, the model is a vendor model that is a root model which does not extend any other models.

(66) Memory Consumption Consideration

(67) One potential problem of the present disclosure is that it might require extra memory to handle the replay protection. The replay protection mechanism is one of the security procedures that is applied by the Bluetooth Low Energy, BLE, mesh to protect the network from replay attack. It requires a destination node to remember the signature of the last message that was sent to it from all the source nodes. For example, a destination node can use the network source address (2 bytes) and the network sequence number (3 bytes) of the source node as the signature. In this case, to keep track each source node, it requires 5 bytes for replay attack protection. Since the proposal according to the present disclosure potentially might require all the message subscribers to send ttl_probe message to the message publisher, it implies that the replay protection memory consumption of the publisher is dependent on the number of its subscribers. However, the replay protection buffer servers a general purpose of message transmission, and the proposal according to the present disclosure will only consume extra memory for replay protection if the relationships between the publisher and the subscriber(s) fulfil all the following conditions. The message subscriber does not send any other message to the message publisher except the ttl_probe in the network. The message publisher only sends unreliable message to the subscriber, which means the publisher in the network does not expect any acknowledgement from the subscriber(s).
To solve this potential problem, the inventors propose two possible solutions. Since the publish—subscribe relationship is known by the provisioner, the memory requirement for replay protection can be informed to the publisher during the configuration period. If the publisher cannot fulfil the requirement, it can inform the provisioner during this phase. In this case, it is possible for the provisioner and network administrator to aware of this potential problem. Alternatively, the publisher can decide to stop using this feature if this feature requires too much memory that a publisher can afford. Each publisher keeps track on the replay protection memory entities that is dedicated for ttl_probe message. This can be done by identifying the message from its opcode. If the memory requirement for keeping track of ttl_probe excesses the publisher memory capacity, the publisher can delete all the entries that is dedicated for ttl_probe message. The saved space can be used for replay protection for other nodes. Alternately, it may also send a multicast message to the group, probably multiple times, indicating the publisher will stop processing any incoming ttl_probe message. In an embodiment, this message can include a value to indicate the time when the publisher will start processing the ttl_probe again. During this period, if a ttl_probe message is received, it will be discarded silently and will not be put into the replay protection buffer. From this time, the publisher starts using a relatively big TTL value for the following message transmission. Optionally, a warning message may be sent from the publisher to the network administrator to indicate this problem.
ttl_probe Message Format

(68) FIG. 8 illustrates a possible message format of a ttl_probe message according to the present disclosure. The ttl_probe message 300 is sent from application message subscribers to one or more application message publishers. It is a unicast message with source address, SRC, 304 field in the network layer set as the subscriber's network address and the destination address, DST, 305 field in the network layer as the publisher network address. The ttl_probe message 300 is a message sent by the application message subscriber to the application message publisher asking for TTL update. The message format of the ttl_probe message is shown in FIG. 8. In the network layer, the SRC field 304 is set as the network address of the subscriber element. The DST field 305 is set as the network address of the application message publisher. The value of TTL 306 is set by the application.

(69) In one embodiment, the ttl_probe message 300 is defined as one of Transport Control messages which are generated by upper transport layer and only encrypted/authenticated at the network layer.

(70) In another embodiment, the ttl_probe message 300 is defined as an access message which are generated by a model and encrypted/authenticated at the upper transport layer and the network layer.

(71) In either of the above embodiments, the ttl_probe message contains opcode 301 and parameters 302, 303. The opcode 301 that identifies the message can be defined as a Bluetooth SIG opcode or a vendor opcode. The parameters consist of a “Initial TTL” field 302 and “Sub-Address” field 303. The initial TTL field 302 is set with the TTL value used by the message publisher when sending this message. The Sub-address field 303 is set with the group address that the node is subscribed with.

(72) ttl_status Message Format

(73) FIG. 9 illustrates a possible message format of a ttl_probe message according to the present disclosure. The ttl_status message 350 is sent from the application message publisher to the application message subscribers. It is a multicast message with source address 304 set as the publisher network address and the destination address 305 as the group address that subscribed by the subscribers. The ttl_status message 350 is sent from the message publisher once it receives a ttl_probe message 300. The message format of the ttl_status message 350 is shown in FIG. 9. In the network layer, the SRC field 304 is set as the network address of the ttl_status message 350 sender, i.e., the application message publisher. The DST field 305 is set as a group address that subscribed by the application message subscribers. The value of TTL 306 is set by the application.

(74) In one embodiment, the ttl_status message 350 is defined as one of Transport Control messages which are generated by upper transport layer and only encrypted/authenticated at the network layer.

(75) In another embodiment, the ttl_status message is defined as an access message which are generated by a model and encrypted/authenticated at the upper transport layer and the network layer.

(76) In either of the above embodiments, the ttl_status message 350 contains opcode 351 and parameters 352. The opcode 351 identifies that the message can be defined as a Bluetooth SIG opcode or a vendor opcode. The parameters consist of a “Initial TTL” field 352. The initial TTL field 352 is set as the TTL value that is set by the ttl_status message 350 sender.

(77) It is possible to define the ttl_probe message 300 and ttl_status message 350 as either transport control message or access layer message. In either case, the message should contain the fields defined above.

(78) Other variations to the disclosed examples can be understood and effected by those skilled in the art in practicing the claimed disclosure, from a study of the drawings, the disclosure and the appended claims. In the claims, the word “comprising” does not exclude other elements or steps, and the indefinite article, “a” or “an” does not exclude a plurality. A single processor or other unit may fulfil the functions of several items recited in the claims. The mere fact that certain measures are recited in mutually different dependent claims does not indicate that a combination of these measured cannot be used to advantage. A computer program may be stored/distributed on a suitable medium, such as an optical storage medium or a solid-state medium supplied together with or as part of other hardware, but may also be distributed in other forms, such as via the Internet or other wired or wireless telecommunication systems. Any reference signs in the claims should not be construed as limiting the scope thereof.

(79) The present disclosure is not limited to the examples as disclosed above, and can be modified and enhanced by those skilled in the art beyond the scope of the present disclosure as disclosed in the appended claims without having to apply inventive skills.