当PANID冲突发生时,网络管理者广播新的PANID,但是终端设备是接收不到的,所以终端设备会与网络失去连接,这样的话,如果网络中有很多的终端,那么都会与网络失去连接,那么PANID 冲突管理意义就不大了,虽然PANID不冲突了,但是却使所有终端设备与网络失去连接。是不是协议栈本身就有这种问题呢?
Peter_Zheng:
在同一空间如果同时存在多个zigbee网络,可能出现的一个问题就是网络ID(PANID)冲突,这问题会导致zigbee网络出现混乱。
在zigbee2004和zigbee2006这个问题没有解决办法,到了zigbee 2007协议有了描述,不过各厂家的解决不太一样。
就ZSTACK来说,引入了一个叫网络管理节点的概念,通过激活网络管理节点,可以解决PANID冲突的问题。
可以按照下图提示的方法,添加宏NWK_MANAGER,来激活网络管理节点。
需要注意的是网络管理节点只能是协调器或者路由器,终端节点不适合作为网络管理节点;一个网络只能存在一个网络管理节点,如果同时有多个网络管理节点,会导致网络管理的混乱。
zhigang zhang:
回复 Peter_Zheng:
您这个并没有解答我的问题,我的问题是PANID冲突发生时,网络管理者广播新的网络ID,但是终端设备是接收不到这个新的网络ID,所以当网络中的协调器、路由器都更改为新的网络ID时,终端设备没有更改,所以终端设备会失去网络,这个问题如何解决呢?
zhigang zhang:
回复 Peter_Zheng:
您这个并没有解答我的问题,我的问题是PANID冲突发生时,网络管理者广播新的网络ID,但是终端设备是接收不到这个新的网络ID,所以当网络中的协调器、路由器都更改为新的网络ID时,终端设备没有更改,所以终端设备会失去网络,这个问题如何解决呢?
WZ:
回复 Peter_Zheng:
首先,在ZigBee的网络架构里面,不管是PANID的冲突检测还是信道冲突检测,本来就是有风险的。
在协议栈里面我们只提供了实现的方法,但是没有规定实现的条件。
我相信你问的是在两个已经建好网络的时候突然发现冲突了,带休眠的ED设备的问题。没有什么特别好的办法。现在的PANiD的检测机制是在建立网络的时候就起作用的。
在现实的产品中为了防止该现象出现,一般就会用简单加密的方法来避免该现象的出现,