Bluetooth MESH目前采用的是基于flooding协议的MESH网络技术。在发布的协议版本中,有提到在未来的修订版本中可能会加入基于路由协议的MESH网络。
的确,flooding协议是相对比较初级的MESH网络技术。由于在网络层中的数据包都是以广播的形式发送并且转发,会在网络中产生大量重复发送的数据包,从而对网络的整体功耗有很大程度的负面影响。目前的flooding MESH协议,只适合于规模比较小的网络,而且不适合于网络数据量比较大的应用场景。
在介绍网络层协议之前,首先对BLE MESH的网络架构做个了解(图片来源于协议规范)。
上图中一共有四种连接,五种节点,下面分别做介绍:
四种连接:
(1) ADV(Not Relayed):两个节点之间可以互相收发广播消息,但是由于不是中继节点,不能中继转发数据包;
(2) ADV(Low power):用于low powernode与friend node之间收发数据包,如上图中的J与P之间的连接、L与O之间的连接。在这个连接上,low power node会主动发起请求建立friendship连接,以及从friend node查询是否有自己的数据。
(3) ADV Bearer:两个