优化篇之如何提高蓝牙Mesh网络的性能

概述

任何一种网络技术的优化都必须放在特定的应用场景下进行,蓝牙Mesh也不例外。而网络技术的优化能够大幅提高整体可用性,形成方案优势,本文将从功耗、延迟、拓扑等几个维度出发讲解如何设计一个优化的蓝牙Mesh网络。

能源取之不尽,却又是极其可贵

在笔者的其他文章中已经说到,蓝牙Mesh的通讯技术是借助低功耗蓝牙的广播扫描机制,而目前原厂的扫描功耗能够在10MA作用,低功耗蓝牙能够通过连接间隔实现定时睡眠,从而降低功耗。蓝牙Mesh同样设计了低功耗节点(Low Power Node)用于实现类似蓝牙连接的低功耗方案,与连接类似的是,一个节点必须在与周围(Single Hop)范围内的朋友节点(Friend Node)建立纽带(Friendship),这个节点才能成为低功耗节点。这种拓扑属于网络中的边缘节点,低功耗节点在大部分时间进入休眠状态,其内部维持一个定时器会在纽带超时前向朋友节点发送一次请求,而朋友节点会在低功耗节点休眠时存储其他节点发送给其低功耗节点的消息,每当低功耗节点请求时,朋友节点会将这些消息传递给低功耗节点,低功耗节点处理完消息后,又会进入休眠,如此周而复始,其中超时时间最大可以设置为96小时。这种设计需要确保在其周围必须存在朋友节点并其本身对于消息时延要求低。如果设备由市电供应,那将没有必要考虑这种方式。

三人成群,

可以考虑一下方案进一步优化功耗,考虑一种情况,如果一个网络中有五个节点,如果每个节点都是转发节点并能相互收到。一个消息发送给其单播地址,将会触发其余三个节点的转发,转发次数为3,看起来还好。但是如果目的地节点会发送相应消息,同样三个节点又会转发,转发次数为3+3,还不算太糟糕。如果一个节点发送到组播地址并要求回应,那么其他四个节点都会转发并发送自己单独的回应给原地址,而这四个节点的响应消息又会经过其它三个点的转发,转发次数为4+3*4,可怕吧,这就是出现广播泛洪。我们应当避免出现这种情况的发生,首先就是选取其中的一个或两个节点作为转发节点,而不是都是转发节点。其次对于发送给组播地址的消息,尽量不要使用带响应的类型。另外蓝牙Mesh有几个参数需要特别注意:

  1. 网络层数据广播次数与间隔
  2. 转发广播次数与间隔
  3. 网络层时间存活指数

网络层数据广播次数决定了一次消息的重复广播事件的次数,每次在37,38,39信道发送成为一个广播事件。转发次数决定转发该消息的重复广播事件的次数。间隔指的是两个相连的的广播事件的时间。

此外TTL表示时间存活系数,每次转发该值减一,直到为1将不在进行转发。值得一提的是,TTL的最大有效值为127,因此可以通过最多126次转发。而TTL可以设置成0,对方节点可以获知消息在单跳(Single hop)内。

发布了5 篇原创文章 · 获赞 4 · 访问量 2025

猜你喜欢

转载自blog.csdn.net/wb2kxb78/article/details/104444263
今日推荐