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:两个节点之间可以基于advertisingbearer收发广播消息,并且可以作为中继转发;
(4) GATT Bearer:用于没有ADVbearer能力的节点也能参与MESH网络。比如,节点T可以通过代理协议与其它节点在GATT连接上收发代理PDU。
<