A self-organizing throughput distribution algorithm for periodically beaconing devices

The self-organizing throughput distribution algorithm for beaconing nodes in wireless mesh networks addresses congestion by dynamically adjusting beacon timing based on neighbor beacons, achieving even distribution and reducing peak bandwidth concerns.

WO2025261824A1PCT designated stage Publication Date: 2025-12-26SIGNIFY HOLDING BV
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
PCT/EP2025/066031
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-02
Filing Date
2025-06-10
Publication Date
2025-12-26

AI Technical Summary

Technical Problem

In wireless mesh networks, uncoordinated periodic beaconing by devices leads to clustering of beacons, causing significant peak bandwidth concerns and potential network collapse due to uncontrolled broadcasting and rebroadcasting, which existing methods fail to adequately address without a central coordinator.

Method used

A self-organizing throughput distribution algorithm allows beaconing nodes to dynamically adjust their timing by calculating error and jitter factors based on neighboring beacons, distributing beacons evenly without external coordination, using a distributed network architecture.

Benefits of technology

This approach effectively reduces network congestion by evenly spacing beacon transmissions, mitigating peak bandwidth issues and preventing network collapse, ensuring efficient use of airspace.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025066031_26122025_PF_FP_ABST
    Figure EP2025066031_26122025_PF_FP_ABST
Patent Text Reader

Abstract

A major challenge of mesh networking is congestion, especially for multi-hop broadcasting in large and dense networks. At a time when there is growing competition for air time, this document describes a method, system, and apparatus in which periodically beaconing nodes can independently adjust their own timing, without the use of a dedicated agent such as a coordinator, such that the collective overall beacon distribution amongst like devices is even.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] A self-organizing throughput distribution algorithm for periodically beaconing devices

[0002] FIELD OF THE INVENTIONS

[0003] The present disclosure relates generally to the field of wireless computer networks. More specifically, the present disclosure is directed at managing congestion in wireless mesh networks.

[0004] BACKGROUND

[0005] This document discusses mesh networks, specifically the issue of congestion on mesh networks such as Zigbee, BLE Mesh (Bluetooth Mesh), and other similar networks.

[0006] With a plurality of devices periodically beaconing data at an equal rate, if these devices are acting independently of one another, and if the arrangement or distribution of node beacons is unspecified, then beacons may become clustered together for each beacon period and may give rise to significant peak bandwidth concerns. At worst, uncontrolled broadcasting and rebroadcasting can lead to network collapse. A method, system, and apparatus that implements explicitly a method to redistribute multi-node periodic beaconing to shape bandwidth in the airspace is described herein. Here, this disclosure offers a way for beaconing nodes to accomplish this amongst themselves without the need for a central coordinator.

[0007] Recognize that this method, system, and apparatus can function in a distributed network without a coordinator. It is also important to recognize that the word “beaconing” is used loosely here, and can refer to both broadcast and multicast packets in a mesh network. But in a more specific sense, beacons may contain different data but are required to be periodically broadcast or multicast at the same frequency of occurrence, and identifiable as such.

[0008] BRIEF SUMMARY

[0009] In some aspects, the techniques described herein relate to a network node (104) apparatus including: a processor (210); a network interface (206) electrically connected to the processor, the network interface including a radio (208) for connecting to a mesh network (102); and a memory (212) electrically connected to the processor, the memory including non-transitory machine-readable instructions to: if a timer has elapsed (608) then send a first beacon (610) through the network interface (206) and the radio (208) and preset the timer to an interval value (618); and if a next beacon (620) arrives from the radio (208), calculate an error factor, calculate a jitter factor and preset the timer (636) to the interval value (618) less a time since the first beacon was sent less the jitter factor and the error factor.

[0010] In some aspects, the techniques described herein relate to a network node (104) apparatus where the jitter factor is a randomly calculated from either a positive jitter factor or a negative jitter factor (632).

[0011] In some aspects, the techniques described herein relate to a network node (104) apparatus where the error factor is calculated as a time between the arrival of a previous beacon and the arrival of the first beacon less an average of the time between the arrival of a previous beacon and the arrival of the first beacon and a time between the arrival of the first beacon and the arrival of a next beacon (628).

[0012] In some aspects, the techniques described herein relate to a network node (104) apparatus where the mesh network (102) is a Zigbee network.

[0013] In some aspects, the techniques described herein relate to a network node (104) apparatus where the radio (208) broadcasts the first beacon.

[0014] In some aspects, the techniques described herein relate to a network node (104) apparatus further including an output device (214) connected to the processor (210).

[0015] In some aspects, the techniques described herein relate to a network node (104) apparatus further including a light (216) connected to the output device (214) and the next beacon contains instructions to turn on the light (216).

[0016] In some aspects, the techniques described herein relate to a method including: checking, by a processor (210), if a timer has elapsed (608) and if the timer has elapsed, sending a first beacon (610) through a network interface (206) and a radio (208) to a mesh network (102) and presetting the timer to an interval value (618); and checking, by the processor (210), for an arrival of a next beacon (620) from the radio (208), and if the next beacon has arrived, calculating an error factor, calculating a jitter factor, and presetting the timer (636) to the interval value (618) less a time since the first beacon was sent less the jitter factor and the error factor.

[0017] In some aspects, the techniques described herein relate to a method further including is a randomly calculating the jitter factor from either a positive jitter factor or a negative jitter factor (632). In some aspects, the techniques described herein relate to a method further including calculating the error factor by subtracting an average of the time between the arrival of a previous beacon and the arrival of the first beacon and a time between the arrival of the first beacon and the arrival of a next beacon (628) from the time between the arrival of a previous beacon and the arrival of the first beacon.

[0018] In some aspects, the techniques described herein relate to a method where the mesh network (102) is a Bluetooth mesh network.

[0019] In some aspects, the techniques described herein relate to a method where the radio (208) multicasts the first beacon.

[0020] In some aspects, the techniques described herein relate to a method further including turning on a light (216) connected to an output device (214) connected to the processor, the next beacon containing instructions to turn on the light (216).

[0021] In some aspects, the techniques described herein relate to a method where the light (216) is an LED.

[0022] BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

[0023] To easily identify the discussion of any particular element or act, the most significant digit or digits in a reference number refer to the figure number in which that element is first introduced.

[0024] Fig. 1 illustrates a diagram of a mesh network in accordance with one embodiment.

[0025] Fig. 2 shows a block diagram of a representative node in accordance with one embodiment.

[0026] Fig. 3 illustrates how a node calculates the next beacon time in accordance with one embodiment.

[0027] Fig. 4 illustrates an example of a two-node Mesh Network in accordance with one embodiment.

[0028] Fig. 5 illustrates an example of a three-node Mesh Network in accordance with one embodiment.

[0029] Fig. 6 is a flowchart showing the algorithm that operates on each node in the Mesh Network in accordance with one embodiment.

[0030] DETAILED DESCRIPTION

[0031] All illustrations of the drawings are for the purpose of describing selected versions of the present disclosure and are not intended to limit the scope of the claimed inventions.

[0032] Routed / flooded mesh networking standards do not explicitly offer many ways to shape traffic in order to alleviate peak bandwidth concerns, as these are largely considered application-specific, and rightfully so. However, there is interest in the optimal usage of airspace, approaching and pushing limits and boundaries to meet requirements in a competitive environment.

[0033] The repeated use of beaconing or forwarding (in BLE lingo) can introduce significant network overhead from rebroadcasting, and its effects are compounded by multiple like devices needing to do the same thing within the same period. Thus for these devices, it makes sense to line them up and emit broadcasts in a round-robin fashion, and the more uniformly distributed they are the better. This could be done by allowing an “outside agent” to monitor, compute, and assign the beacon timing offset or phase for each node. However, this type of dependency is both complex and invasive. A better way is for beaconing nodes to organize amongst themselves. This would alleviate any dependency on any external agent to implement the timing arrangements.

[0034] Each device initially sends a beacon after a random back-off on startup, then schedules to send every T seconds afterward. It also monitors other devices’ beacons, in particular, the one on the left (immediately before its own report, aka previous beacon 304) and right of itself (immediately after its own report, aka next beacon 308). With the T seconds reporting limit, the node will adjust its next report towards maintaining an equal distance from the left report (it earlier received) and right report (it anticipates receiving). Since every node is adjacent to one another in a cyclical fashion, all nodes participating in the dynamic adjustment will eventually space themselves evenly over time.

[0035] Fig. 1 is a diagram of a mesh network. There are six nodes, Node A 104, Node B 106, Noce C 108, Node D 110, Node E 112, and Node F 114, arranged in a round-robin fashion. No node is a master node, all nodes are peers, in this embodiment. This mesh network could be arranged in a broadcast fashion, with the node id numbers determining the order of the nodes. Or the network could be organized in a multicast network.

[0036] Fig. 2 shows a block diagram of a representative node, say Node A 104, usable to implement embodiments of the present disclosure. The other nodes, Node B 106-Node Node F 114 could have the same or different architectures as described in FIG. 2. Node A 104 can be implemented, for example, as a consumer device such as a smartphone, other mobile phones, tablet computer, a wearable computing device (for example, a smartwatch, eyeglasses, or a head wearable display), desktop computer, laptop computer, an Internet-of- things device, a lighting controller, or implemented with distributed computing devices. The Node A 104 may include computer components, such as a processor 210, a memory 212, a network interface 206, and an output device 214 connected by a bus 218. The memory 212 may contain non-transitory machine-readable instructions for the processor as well as other data and instructions.

[0037] The network interface 206 could provide a connection to a mesh network 102 (for example, the Internet, Zigbee, Bluetooth Mesh, or other networks). The network interface 206 could include a wireless interface implementing various radio frequency data communication standards, such as Wi-Fi, Bluetooth, Zigbee, or cellular data network standards (for example, 3G, 4G, 5G, 60 GHz, or LTE). In some embodiments, the network interface 206 is electrically connected to a radio 208. The radio 208 may connect to the mesh network 102.

[0038] The output device 214 can include any device via which Node A 104 can provide information to a user. For example, output device 214 can include a display to show images generated by or delivered to Node A 104. The display can incorporate various image generation technologies, for example, a liquid crystal display (LCD), a light-emitting diode (LED), such as an organic light-emitting diode (OLED), a projection system, a cathode ray tube (CRT), or the like, together with supporting electronics (for example, digital-to-analog or analog-to-digital converters, or signal processors). A device such as a touch screen that functions as both an input and output device can be used. The output device 214 can be provided in addition to or instead of a display. Examples include indicator lights, speakers, tactile “display” devices, printers, and so on. For example, the output device 214 could drive a light 216 such as an LCD, LED, incandescent, OLED, laser, or similar lights, and data within the beacon could instruct the processor to turn on the light. The output device 214 could also drive real-time location systems, heating, ventilation, and air conditioning (HVAC) systems, Internet-of-things (IOT) devices, a sensor network, etc.

[0039] Some implementations include electronic components, such as microprocessors, storage, and memory that store computer program instructions in a computer-readable storage medium (for example, a non-transitory computer-readable medium).

[0040] Many of the features described in this specification can be implemented as processes that are specified as a set of program instructions encoded on a computer-readable storage medium. When these program instructions are executed by one or more processors, they cause the processors to perform various operations indicated in the program instructions. Examples of program instructions or computer code include machine code, such as is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter. Through suitable programming, processor 210 can provide various functionalities for Node A 104, including any of the functionality described herein as being performed by a server or client, or other functionality associated with message management services.

[0041] It will be appreciated that Node A 104 is illustrative and that variations and modifications are possible. Computer systems used in connection with the present disclosure can have other capabilities not specifically described here. Further, while Node A 104 is described with reference to particular blocks, it is to be understood that these blocks are defined for convenience of description and are not intended to imply a particular physical arrangement of component parts. For instance, different blocks can be located in the same facility, in the same server rack, or on the same motherboard. Further, the blocks need not correspond to physically distinct components. Blocks can be configured to perform various operations, for example, by programming a processor or providing appropriate control circuitry, and various blocks might or might not be reconfigurable depending on how the initial configuration is obtained. Implementations of the present disclosure can be realized in a variety of apparatus, including electronic devices implemented using any combination of circuitry and software.

[0042] Fig. 3 shows how Node A 104 calculates the next beacon time 318, using the following algorithm. The next beacon time 318 is the time 302 that Node A 104 waits before sending out the next beacon message.

[0043] The sequence is that a previous node sends the previous beacon 304, then Node A sends its own beacon, the first beacon 306, and the next node sends the next beacon 308. The time between the previous beacon and the first beacon is x=tc- tr312. The time between the first beacon and the next beacon is y = tR - tc 314.

[0044] 1. Once enabled, a node (Node A 104) immediately sends out the first beacon

[0045] 306 and schedules the subsequent beacon with an interval value of T seconds (T is an interval value corresponding to the time required to send out all of the beacons from all of the nodes in the mesh network, i.e. each node send out one beacon every T seconds).

[0046] 2. Node A 104 monitors for beacons from other nodes. As Node A 104 receives a beacon, it updates a. variable x, the left time gap 312: the time gap between its own scheduled beacon (time tc) and the one it receives immediately before (time tn), x= tc - tL. b. variable y, the right time gap 314: the time gap between the report it sends (tc) and the one it receives immediately after that (tn), y= tR - tc.

[0047] 3. As x and y are updated, Node A 104 dynamically decides when to send its beacon when Node A 104 is next in line to the beacon: a. If x<= y, Node A 104 beacons at the scheduled time (i.e., T seconds from its previous beacon), tc. b. if x > y, Node A 104 does the following:

[0048] 1. compute error factor 316 e = (x - (x+y) / 2). i.e. e = x - average(x,y)

[0049] 2. compute a random j itter factor 310 jit

[0050] 3. advances its subsequent beacon tc’ = tc - e + jit

[0051] 4. Every node adjusts its beacon time according to the same logic.

[0052] NOTE on jitter factor 310 jit: This is to deal with the race condition between two or more effectively simultaneous beacons, whose perceived simultaneity is exacerbated by the processing time of the received packet(s) and of its own beacon. This time delta of zero would lead to continuous tight coupling of devices, aggravating rather than mitigating the occurrence of peak bandwidth. A random jitter 310, though small, will help to introduce sufficient friction between adjacent devices to encourage de-coupling. Note that in some systems, there may be sufficient overall system irregularity such that a random jitter is not required.

[0053] Fig. 4 shows an example of a two-node Mesh Network 102, with Node A 104 and Node B 106. The algorithm for processing this network is as follows:

[0054] 1. In the A Reports 402 scenario, there is only one node (Node A 104) beaconing, i.e., Node A 104 does not receive any other node's report. a. Node A 104 sends beacons at regular Time 412 (T seconds) interval, a full circle is T seconds. b. Node A 104 initializes x=T / 2, and y=T / 2 2. In the First Report from B 404 scenario, when Node B 106 is assigned and sends its first report at time tc(B), Node A 104 (which last reported at time tc(A)) receives this beacon and calculates time gap y(A) = ti A)- tc(A) = tc(B)- tc(A). a. If x < y, Node A 104 maintains its subsequent beacon tC‘(A) = tC(A) + T b. If x > y, Node A 104 computes error factor 316 e = x - (x+y) / 2 (i.e. x- average(x,y)) and advances its subsequent beacon to tc‘(A) = tc(A) + T - e + jit 406

[0055] 3. Node B 106 will make a similar adjustment for its subsequent beacon as in step 2.

[0056] Fig. 5 shows an example of a three-node Mesh Network 102, with Node A 104, Node B 106, and Node C 108. The algorithm for processing this network is as follows:

[0057] 1. In the A and B Reports 506 diagram, suppose Node A 104 and Node B 106 are beaconing with even spacing.

[0058] 2. In the First report from C 508 diagram, in the next round, Node A 104 beacons at time tC(A), and Node B 106 is supposed to beacon at time tC(B). Before tC(B), Node C 108 is assigned and sends its first beacon at time tC(C): a. Node A 104 receives Node C's 108 beacon and updates its y= tC(C) - tC(A). Node A 104 already has a record of x = tC(A) - (tC(B)-T) from the previous round, where tC(B) - T is Node B's previous beacon time. i. Node A 104 knows Node B's 106 anticipated next beacon 308 time

[0059] (anticipated time tC(B) is after actual time tC(C)) so Node A 104 will not advance its beacon prior to receiving Node B's 106 beacon. b. Node B 106 receives Node C's 108 beacon, and updates x = tC(B) - tC(C). Node B also has a record of y = tC(A) - (tC(B)-T) from the previous round, where tC(B) - T is Node B's previous beacon time. Node B 106 now knows it is the next node to beacon based on the information above. It will make the decision on whether to advance its subsequent beacon: i. If x < y, Node B 106 beacons at the originally scheduled time tB‘(B) = tC(B) + T. ii. If x > y, Node B 106 computes e = x - (x+y) / 2 (i.e. x-average(x,y)) and advances its subsequent beacon to tB‘(B) = tC(B) + T - e + jit

[0060] 3. After Node B 106 beacons, Node A 104 and Node C 108 will update their x and y calculations. a. Node A 104 makes the decision as in 2.b whether to advance its subsequent beacon, shown in the A advances its next report 510 diagram. b. Node C 108 now knows there are at least two nodes, Node C 108 plans to advance its subsequent beacon accordingly 512, but before its next beacon goes out, it will receive Node A beacon first then its x and y will be updated again.

[0061] 4. All three nodes keep updating their x and y estimates and plan the next beacon.

[0062] In one embodiment, CCA (clear channel assessment) is used. For this embodiment, any beacon transmission may be retried and / or repeated to improve reliability.

[0063] Fig. 6 is a flowchart showing a possible method that operates on each node in the Mesh Network 102. The flow chart Starts 602 by setting x to NONE and time_L to NONE 604. Then the timer is preset to RANDOM (0, T) 606. If the timer has not elapsed 608, then check if a beacon has arrived 620. If not, loop back to checking the timer 608.

[0064] If the timer has elapsed 608, then send the beacon 610 and check to see if time_L is NONE 612. If time_L is not NONE 612, set x to time_now - time_L 616. Regardless of the status of time L 612, set time C to time now 614 and then preset the timer to T 618. Then check to see if a beacon was received 620.

[0065] If a beacon is received 620, check to see if x = NONE 622. If x = NONE 622, then set time L to time now 626 and loop back to timer elapsed 608.

[0066] If x does not equal NONE 622, set y to time_now - time_C 624 and err to x - (x + y) / 2 628. Then check to see if err is greater than zero 630. If err is not greater than zero, loop back to checking if the timer has elapsed 608.

[0067] If err is greater than zero 630, set jit (the jitter factor) to RANDOM(-jit, +jit) 632, set timer l to T 634, and preset timer to T - y - (err+jit) 636. Then loop back to checking if the timer has elapsed 608.

[0068] While the disclosure has been illustrated and described in detail in the drawings and foregoing description, such illustration and description are to be considered illustrative or exemplary and not restrictive. The claimed inventions are not limited to the disclosed embodiments.

[0069] Other variations to the disclosed embodiments can be understood and effected by those skilled in the art in practicing the claimed inventions, from a study of the drawings, the disclosure, and the appended claims.

[0070] 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.

[0071] A single processor or other unit may fulfill 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 measures cannot be used to obtain an advantage.

[0072] 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.

[0073] Any reference signs in the claims should not be construed as limiting the scope.

[0074] LISTING OF DRAWING ELEMENTS:

[0075] 102 mesh network

[0076] 104 Node A

[0077] 106 Node B

[0078] 108 Node C

[0079] 110 Node D

[0080] 112 Node E

[0081] 114 Node F

[0082] 206 network interface

[0083] 208 radio

[0084] 210 processor

[0085] 212 memory

[0086] 214 output device

[0087] 216 light

[0088] 218 bus

[0089] 302 time

[0090] 304 previous beacon

[0091] 306 first beacon

[0092] 308 next beacon

[0093] 310 jitter factor

[0094] 312 left time gap

[0095] 314 right time gap

[0096] 316 error factor

[0097] 318 next beacon time

[0098] 402 A Reports

[0099] 404 First Report from B

[0100] 406 A advances it's next report

[0101] 412 Time

[0102] 506 A and B Report

[0103] 508 First Report for C

[0104] 510 A Advances its Next Report

[0105] 512 C Advances its Next Report

Claims

CLAIMS:

1. A network node (104) apparatus comprising: a processor (210); a network interface (206) electrically connected to the processor, the network interface including a radio (208) for connecting to a mesh network (102); and a memory (212) electrically connected to the processor, the memory including non-transitory machine-readable instructions to:- if a timer has elapsed (608) then send a first beacon (610) through the network interface (206) and the radio (208) and preset the timer to an interval value (618); and- if a next beacon (620) arrives from the radio (208), calculate an error factor, calculate a jitter factor and preset the timer (636) to the interval value (618) less a time since the first beacon was sent less the jitter factor and the error factor, where the error factor is calculated as a time between the arrival of a previous beacon and the arrival of the first beacon less an average of the time between the arrival of a previous beacon and the arrival of the first beacon and a time between the arrival of the first beacon and the arrival of a next beacon (628) and where the timer is preset if the error factor is greater than zero.

2. The network node (104) apparatus of claim 1 where the jitter factor is a randomly calculated from either a positive jitter factor or a negative jitter factor (632).

3. The network node (104) apparatus of claim 1 where the mesh network (102) is a Zigbee network.

4. The network node (104) apparatus of claim 1 where the radio (208) broadcasts the first beacon.

5. The network node (104) apparatus of claim 1 further comprising an output device (214) connected to the processor (210).

6. The network node (104) apparatus of claim 5 further comprising a light (216) connected to the output device (214) and the next beacon contains instructions to turn on the light (216).

7. A method comprising: checking, by a processor (210), if a timer has elapsed (608) and if the timer has elapsed, sending a first beacon (610) through a network interface (206) and a radio (208) to a mesh network (102) and presetting the timer to an interval value (618); and checking, by the processor (210), for an arrival of a next beacon (620) from the radio (208), and if the next beacon has arrived, calculating an error factor, calculating a jitter factor, and presetting the timer (636) to the interval value (618) less a time since the first beacon was sent less the jitter factor and the error factor, wherein calculating the error factor comprises calculating the error factor by subtracting an average of the time between the arrival of a previous beacon and the arrival of the first beacon and a time between the arrival of the first beacon and the arrival of a next beacon (628) from the time between the arrival of a previous beacon and the arrival of the first beacon and where the timer is preset if the error factor is greater than zero.

8. The method of claim 8 further comprising is a randomly calculating the jitter factor from either a positive jitter factor or a negative jitter factor (632).

9. The method of claim 7 where the mesh network (102) is a Bluetooth mesh network.

10. The method of claim 7 where the radio (208) multicasts the first beacon.

11. The method of claim 7 further comprising turning on a light (216) connected to an output device (214) connected to the processor, the next beacon containing instructions to turn on the light (216).

12. The method of claim 11 where the light (216) is an LED.

Citation Information

Patent Citations

  • Time synchronization in resource constrained networks

    US20190007902A1

  • Time synchronization of mesh network nodes

    US20230388037A1