请问如果协调器开启加密,终端或路由不开启,那样还能成功组网么?
遇到一个协调器源码未知,自己用终端节点去组网,发现无法成功。但是我自己的协调器和终端节点组网是OK的。所以怀疑是加密问题,或者有其他原因也希望能告知
1、若对协调器和终端都进行加密,且DEFAULT_KEY相同,则能成功组网,数据通信亦没有问题(抓包发现,数据都已被加密)。
2、若对协调器和终端都进行加密,但DEFAULT_KEY不同,则终端仍能加入网络,但大约8秒钟之后,终端会退出网络(调试发现,终端实际是进行了一次复位)。
3、若对协调器加密、对终端不加密,则终端仍能加入网络,但相互间发送的数据,对方都不会接收(或者接手之后直接丢弃)。
要怎样做才能使未加密、或者KEY不同的终端无法加入网络?
要怎样做才能是我经过加密的终端不会加入到那些未加密、或者KEY不同的网络?
答:这个过程是正常的,整个入网过程中,beacon requets/beacon/associate request /associate response 都是基于MAC的数据帧,所以没有加密的,在这个时候,如果使能加密的话,就会有认证这个过程,如果认证没有通过的话,节点不会发出来device Announce,所以入网没有成功。
所以说评判入网有没有成功是看最后的有没有发device Announce出来的。所以说未加密和key不同的终端,虽然可以分配到短地址,但是认证不会通过的,最后还是会退网。同样经过加密的终端也不会加入到密码不对的网络里面去。
答:根据测试,与你所讲的基本一致。似乎zstack只能在网络层进行加密(SECURE=1时,抓包发现网络层sec字段为1),而MAC层是不能加密的(SECURE=1时,抓包发现MAC层sec字段为0)。而入网过程都是在MAC层进行的,所以即使SECURE=1,这个过程仍然能通过。
若终端和协调器KEY不同,终端若一段时间未通过认证,会自动退出网络。(这样就能使我的终端不会连到别人的网络)
不过有一点好像不对:若终端未加密、协调器加密,我发现终端不会自动退出网络,且协调器也不会强制令终端退出,不过我的协调器在给这个终端分配了地址之后不会对它进行device Announce,且它们之后也不会进行通信(因为我的协调器已加密)。
引用自
https://www.cnblogs.com/mm327596194/articles/7098009.html
协调器源码未知?有可能是加密也有可能是协调器本身加入了一些入网限制
谢谢答复,应该来说即使是加密了也不会影响终端入网吧,只是无法通信吧。还是说连入网都会失败?