wifi的主动扫描和被动扫描

要实现wifi上的探针模块,简单了了解了802.11中的各种帧,对一些帧的发送频率和方式也有简单了解。不过了解的都不够细致。只是简单知道手机打开wifi后回不停的向外发送probe request这个帧,然后也在不停的监听当前信道上AP广播过来的beacon帧。这里详细介绍一下802.11中的主动扫描和被动扫描。

主动扫描和被动扫描是在手机的角度来说,手机为了发现AP,必须进行扫描,通过扫描得到AP的信息,然后才能去连接。

主动扫描

主动扫描是指手机(这里的sta就用手机代替啦,其实可以是很多种形式)每隔一段时间发送probe request帧,用来询问AP的信息。probe request可以单独发给某个AP,也可以在一个信道上进行广播,当然多数时候是在一个信道上进行广播,广播完成后,会在当前信道等待一段时间,如果收到帧反馈,则做记录,如果超时,就会切换到下个信道进行广播,这里有个细节,切换到新的信道后,在广播之前,会等待一小段时间,如果这小段时间内没有收到任何信息,则说明当前信道没有AP活动,那么直接切换到下个信道。

 

被动扫描

被动扫描是指手机被动的接收AP发出的beacon帧,通过解析beacon帧中的信息来获取当前AP列表。手机在监听beacon帧的时候也是会不停的切换信道,保证每个信道都能监听到。这种模式下,只监听beacon帧,不发送探测帧,比较节省资源,不过获取AP列表时间相对长一些,不如主动扫描获得信息更及时,但感觉也足够用了,慢也慢不了几秒,其实是可以被用户容忍的。

 

手机端被动扫描和主动扫描都会实现,这样能保证更快速的发现AP,实现连接。

在手机连接AP后,协议中主动扫描和被动扫描都是被允许的,但是有些厂商可能并没有实现,因为这个并不是一个强制要求。

beacon帧的间隔是可以动态调整的,对AP来说间隔越短,就会越早被发现。probe request帧的间隔也可以调整,一般厂商都往高了调,并且连接AP以后都倾向于不发了,这样会比较省电,毕竟对于智能手机来说电池真是有点不够用。

如果一个AP想协议隐形,可以不发beacon帧,不回探测帧。
---------------------
作者:奔狼的春晓
来源:CSDN
原文:https://blog.csdn.net/lixuande19871015/article/details/77674881
版权声明:本文为博主原创文章,转载请附上博文链接!

posted @ 2018-12-01 16:41  半夏生  阅读(5899)  评论(0编辑  收藏  举报