many to one 的网络里,网关是带PA的,路由设备不带PA,这样导致网关的邻居表里没有路由设备,而路由设备的邻居表里有网关。当路由设备断电重启以后,心跳数据会直接单播目的之地为0x0000的网关,而此时网关是收不到路由设备发出的数据。路由设备会发起router request,但是没有设备相应该帧,需等待网关发出router request之后,路由设备才会重新建立一个合适的路由,把数据发送过去。是不是many to one的参数设置有问题,导致路由设备发起AVDO的router request之后,设备不会帮忙转发?
Alvin Chen:
不太懂你说的意思,
也就是你现在有3个设备;
1 ZC
2.ZR1
3.ZR2.ZR2 是通过ZR1中继的,而当ZR1掉线后,由于距离问题ZC和ZR2无法通信对吗?
个人建议你都加上PA,或者你ZR2附近还有其他ZR可以和ZC直接通信,你的ZR2才可以router request重新连接。
YiKai Chen:
描述很混亂,建議你抓包用抓包檔說明你的問題,還有你用的協議棧版本是?
user444907929:
回复 Alvin Chen:
ZR1通过ZR2中继,但是ZR1的邻居表里有ZC,ZC的邻居表里没有ZR1,当ZR1重新上电以后,会直接单跳数据到ZC,因为ZC在他的邻居表里,但实际上,通过单跳,ZC是收不到ZR1发送的数据的。所以ZR1会发出router request但没有设备相应,只有当ZC定时,或者有设备发出many to one路由失败的网络状态帧以后,ZC发出router request之后,ZR1再发送数据,ZC才能收到。协议栈版本Z-Stack Home 1.2.2a.44539
user444907929:
回复 YiKai Chen:
数据包是用私密加密,可能不太好提供。网络里至少有ZC,ZR1,ZR2 ,其中ZR1通过ZR2中继,但是ZR1的邻居表里有ZC,ZC的邻居表里没有ZR1,当ZR1重新上电以后,会直接单跳数据到ZC,因为ZC在他的邻居表里,但实际上,通过单跳,ZC是收不到ZR1发送的数据的。所以ZR1会发出router request但没有设备相应,只有当ZC定时,或者有设备发出many to one路由失败的网络状态帧以后,ZC发出router request之后,ZR1再发送数据,ZC才能收到。协议栈版本Z-Stack Home 1.2.2a.44539
YiKai Chen:
回复 user444907929:
有沒有抓包檔可以說明你的問題?
user444907929:
回复 YiKai Chen:
中午好好看了一下空中数据,发现是因为ZR1发出router request之后,ZR2没有帮忙转发该广播帧。如果ZC在ZR1的单跳范围内,ZC才会响应ZR1的router request。问题是不是在于many to one 的网络设置问题?