WiFi Rekey造成的Battery Camera Offline Issue

背景知识:

1. 对于Battery base的产品,为了尽可能的延长电池的使用时间,减少充电次数,在处理完事情后都会进入sleep mode,然后等待被唤醒(本地的PIR trigger唤醒,或者来自WOL Wake On Lan)

2. 对于WiFi的密钥,可以分为两类:

成对密钥(Pairwise Transient Key):用于客户端和AP之间的单播, 通过四次握手完成;

组密钥(Group Key):用于所有客户端和AP之间组播或者多播, 通过两次握手完成;当工作站离开网络,不论是使用完毕或者被踢出网络,网络系统即可更新组密钥。当组密钥更新后,每个工作站都必须再进行一次组密钥交换。组密钥通常由AP主导更新,不过工作站也可以主动发送确认消息来要求更新组密钥。

3. 常规的wakeup都是走broadcast

 

问题:

对于成对密钥,client跟AP协商好之后不会变,就算设备去睡觉也不会有问题

对于组密钥,AP端可能会定期更新,但因为是组播包,不能保证每台设备都能收到,特别是在信号不好的情况下,对于常规的client,如果没收到,client会发现后续AP发的packet无法解密的时候会主动发起重连,但对于正在sleep的设备而言,如果没有收到,那group key不会被更新,而设备也不会主动醒来去重连(如果定期醒来会耗电),在这种状态下AP端业务无法通过WOL来唤醒设备(因为WOL packet已经用新的group key加密,client不认识)

 

解决方案:

1. 直接disable rekey,即在AP端把group rekey interval设成0

2. AP端使用unicast唤醒

你可能感兴趣的:(Product,Development,battery,camera)