处理蓝牙BLE MESH消息的网络风暴

时间:2023-03-29 16:44:52

网络风暴的触发原因:

由于消息广播的方式,可能会发生大量的消息传输和网络拥塞,导致网络效率降低,甚至崩溃。

蓝牙mesh网络是基于广播的方式进行消息传输的,因此每个节点都会将消息广播给周围的节点,进而形成一个消息传递的网络。在某些情况下,由于节点数量过多、消息频繁发送等原因,可能会导致网络中出现大量的消息传输,从而引发网络风暴。

蓝牙mesh消息的网络风暴可能会带来以下危害:

  • 网络效率降低:由于大量的消息传输和网络拥塞,网络效率会降低,导致节点之间的通信变得缓慢和不可靠。

  • 能量消耗增加:网络风暴会导致节点需要花费更多的时间和能量来传输和接收消息,从而缩短节点的电池寿命。

  • 数据丢失和冲突:如果网络过载,可能会导致消息丢失和数据冲突等问题,从而影响网络的稳定性和可靠性。

  • 网络崩溃:在极端情况下,网络风暴可能会导致网络崩溃,节点无法通信,从而无法完成任务。

为了避免蓝牙mesh消息的网络风暴,可以采取一些措施,例如:

  • 控制消息发送频率,避免频繁发送消息;
  • 合理规划网络拓扑结构,减少节点数量;
  • 采用分组广播等方式,减少网络拥塞;
  • 对网络流量进行监控和管理,及时发现并处理网络异常情况。

网络风暴举例:

在蓝牙mesh网络中,每个节点都需要通过广播的方式向周围节点发送消息,而广播通道的范围是整个蓝牙频谱,包括37、38、39三个通道。因此,如果只有大量的BLE消息仅仅往37通道发送,会对蓝牙mesh网络产生以下影响:

  • 通信干扰:由于BLE消息和蓝牙mesh消息都是通过广播的方式进行传输,如果大量的BLE消息只往37通道发送,会导致蓝牙mesh消息在37通道上的传输受到干扰,从而影响节点之间的通信。

  • 网络拥塞:如果大量的BLE消息只往37通道发送,会导致37通道的网络拥塞,从而影响蓝牙mesh网络的稳定性和可靠性。

  • 能量消耗增加:如果大量的BLE消息只往37通道发送,会导致节点需要花费更多的时间和能量来接收BLE消息,从而缩短节点的电池寿命。

合理构建mesh网络:

规划一个可以支持200个蓝牙mesh设备正常通信的网络拓扑图,需要考虑以下几个因素:

  1. 网络结构:选择适当的网络结构,可以最大限度地提高网络效率和稳定性。
  2. 节点密度:在确定节点分布位置时,需要合理规划节点的密度,以免节点过多或过少,导致网络效率低下或不稳定。
  3. 信道分配:在确定信道分配时,需要合理分配蓝牙mesh消息和BLE消息的广播通道,以避免网络拥塞和通信干扰。

在此网络拓扑图中,节点分为三个区域,每个区域包含一个主节点和若干个从节点。每个主节点负责管理其所在区域的从节点,并将消息转发到其他区域的主节点。从节点只与所在区域的主节点通信,并将消息转发到其他从节点。通过这种结构,可以最大限度地降低节点之间的通信量,并避免网络拥塞和通信干扰。

信道分配方面,蓝牙mesh消息采用三个广播通道均匀分配,BLE消息则采用其他通道,避免与蓝牙mesh消息发生冲突。

在上述方案中,需要使用至少3个NetKey和3个AppKey

同一区域内的从节点之间的通信是不需要经过主节点转发的。因为它们使用相同的NetKey和AppKey来保护通信,并且在同一个分组中。因此,它们可以直接通过广播或单播的方式进行通信,而不需要经过主节点转发。

当一个从节点需要向同一区域内的其他从节点发送消息时,它可以直接使用目标从节点的地址和分组地址进行通信。如果目标从节点在范围内,那么消息将通过广播或单播方式直接传输给目标从节点,不需要经过主节点转发。只有当目标从节点不在范围内时,才需要主节点进行转发。

当一个从节点需要向另一个区域内的从节点发送消息时,它需要知道目标从节点的地址和所属的分组,然后将消息发送到目标区域的主节点。目标区域的主节点将消息解密并转发给目标从节点。

因此,在蓝牙mesh网络中,从节点之间的通信需要经过主节点进行转发,这可以保证消息的安全性和可靠性。同时,蓝牙mesh网络的分层结构也使得网络具有良好的可扩展性和灵活性,可以根据具体的应用场景进行定制和优化。