zoukankan      html  css  js  c++  java
  • 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
    版权声明:本文为博主原创文章,转载请附上博文链接!

  • 相关阅读:
    Topics
    telnetlib-telnet客户端操作
    logging-日志信息管理
    B.2 工具spy++
    B.1 XPath 获取技巧
    pyinstaller-将Python程序打包成一个独立可执行软件包
    探讨HTTP中敏感数据的安全性传输方案
    shell->一个经典的shell脚本结构
    c->再次封装已有函数的快速方法
    c->推荐的更安全的代码写法
  • 原文地址:https://www.cnblogs.com/mingyunrangwozoudaoxianzai/p/10050020.html
Copyright © 2011-2022 走看看