9

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

如果我的站处于省电模式,并且它的接收器在 DTIM 帧之间长时间关闭(例如 10 秒),并且在此期间接入点重新启动,因此我的关联丢失,我如何检测到这一点?

我知道最常见的情况是同步完全丢失,以至于我会错过一些信标,然后简单地返回 AP 搜索,但是如果我有幸看到信标,是否有一些如何找出这是同一 AP 的新“实例”?

我能想到

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

作为一个完美主义者,我想知道是否有一种完全可靠的方法来检测 AP 是否已重新启动,而不仅仅是整理线索。

4

2 回答 2

1

我建议您查看接收到的信标帧中的 TSF,如果它与您预期的 TSF 差异太大,您将向 AP 发送 NULL 数据帧。如果 AP 重新启动,它应该以取消身份验证帧响应,原因是“从未经身份验证的 STA 收到第 2 类帧”。

于 2011-05-30T15:57:07.710 回答
0

我对那个级别的无线卡一无所知,但我会采取一条实用的路线并分析来自 AP 的通信,直到断开与典型关闭序列匹配的模式;例如,“没有更多流量,DTIM 同步突然丢失,然后是 AP 公告”。

在我脑海中浮现:也许查看 Kismet 的 AP 检测和分析代码以获得一两个想法。我敢打赌以前有人遇到过这个问题。

干杯!

于 2011-05-20T03:22:59.237 回答