如何在PS模式下通过AP重启来检测解除关联

时间:2011-05-10 12:58:10

标签: wifi low-level power-saving

我正在为无线网卡写一个相当低级别的驱动程序,虽然大部分规范都相当简单,但我还没有解决一个问题:

如果我的电台处于省电模式且其接收器在DTIM帧之间长时间(例如10秒)关闭,并且在此期间重新启动接入点,那么我的关联就会丢失,我该怎么办?检测到这个?

我知道最常见的情况是同步丢失得足够彻底,以至于我会错过许多信标,之后只需回到AP搜索,但如果幸运的话,我会看到信标,有没有办法找出这是同一个AP的新“实例”?

我能想到

  • 短(呃)TIM字段 - 但我相信如果没有流量等待,AP可以缩短TIM信息
  • AP时间戳意外更改。
  • “下一个DTIM的信标数量”字段意外更改。

作为一个完美主义者,我想知道是否有一种完全可靠的方法可以检测到AP已经重新启动,而不仅仅是把线索放在一起。

2 个答案:

答案 0 :(得分:1)

我建议您查看收到的信标帧中的TSF 如果它与TSF的差别太大,您希望发送一个NULL数据 框架到AP。如果AP重新启动,它应该响应 deauthenticate frame with reason“Class 2 frame from from 非认证STA“。

答案 1 :(得分:0)

我对该级别的无线卡没有任何了解,但我会采取实际的路线并分析来自AP的通信,直至断开与典型关机序列相匹配的模式;例如,“不再有流量,突然丢失DTIM同步,然后是AP公告”。

脱离我的头脑:或许可以查看Kismet的AP检测和分析代码,了解一两个想法。我敢打赌别人之前遇到过这个问题。

干杯!