home 1.20 AddrManager中MAC 超时未删除
时间:10-02
整理:3721RD
点击:
协议栈使用home 1.20
开加密
网络架构如下:
一个协调器,一个路由器,两个终端
1.其中一个终端的父节点是协调器,另一个终端的父节点是路由器
2.在协调器端看到两个终端的MAC地址,这是正常的。
路由器下Assress Manager里只有一个父节点的MAC,也就是协调器的MAC
3.此时我关掉路由器下的终端,一个小时后,协调器端的Assress Manager还是存在已经断电终端的MAC地址,并未清除
4.随后又关掉协调器下的终端,一个小时后,协调器端的Assress Manager还是存在已经断电终端的MAC地址,并未清除
但协调本身的Assolist中已经无此终端的信息了
所以说如果子节点长期没有父节点通信的情况下,根据Child Aging功能,父节点会把节点信息从Association List并没有去AddrManager里面删除
那什么情况下会从AddrManager,里把MAC删除?
还有一种情况,在加密状态下,终端的MAC地址都会存到Coord里,此时路由的AddrManager里没有此终端的MAC地址(终端是通过路由如的网),
我在协调器端用AddrMgrEntryRelease释放此终端的MAC地址,可以释放,当终端再次通信时MAC也不会回到Coord端,而是出现在路由器的
AddrManager里.
按照现在的机制,如果我入网设备一定是不会出问题,假设我有设备坏掉时,用新设备替换时,如果替换的设备过多会造成AddrManager满,此时就
网络就瘫痪了.