0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Probe Request的主动扫描抓包交互流程

冬至子 来源:通信之WLAN 作者:ChaserDtao 2023-05-30 16:39 次阅读

Beacon帧为周期间隔发送,虽大部分路由器将其间隔时间默认设置100ms(近似值),但路由器可以将其值配置更大。仅依赖“被动扫描”,WiFi设备在扫描过程中,存在漏掉发现周围WiFi网络的情况。因此,为了提高设备发现WiFi网络的能力,有了基于Probe Request和Probe Response帧的“主动扫描”。本节接下来分析“主动扫描”。

好。下面我们看下“主动扫描”的抓包交互流程。

[场景1]:

  • WiFi设备在信道N上,发送Probe Request帧,其目的地址为广播地址,称为广播帧。
  • 工作在信道N上的路由器,收到该广播后,会响应Probe Response帧,其目的地址为单播地址,称为单播帧。
  • WiFi设备收到Probe Response帧后,回复Ack确认,如下图所示。

图片

[场景2]:

  • WiFi设备在信道N上,发送Probe Request帧,其目的地址为单播地址,称为单播帧。
  • 工作在信道N上,路由器的Mac地址为Probe Request帧中的目的地址,收到该Probe Request帧后,回复Ack确认,并回复Probe Response帧。
  • WiFi设备收到Probe Response帧后,回复Ack确认。如下图所示。

图片

通过以上可知,Probe Request帧可以被用作单播或广播帧进行扫描请求。接下来我们就看“主动扫描”依赖Probe Request和Probe Response帧的格式内容。

Probe Request和Probe Response帧都为管理帧,符合管理帧通用定义格式:802.11 MAC Header + Frame Body + FCS,如下:

图片

  • Probe request帧,子类型为4,可作为广播帧或单播帧。做广播帧时,Address3为广播地址;做单播帧时,Address3为BSS对应的BSSID或一个单播接收地址。
  • Probe Response帧,子类型为5,作为单播帧响应WiFi设备。

802.11 MAC Header字段与Beacon帧一致,这里不再赘述,可参考【WiFi基础学习到实在(五)】。

在开始讨论Probe Request和Probe Response帧Body内容前,留个问题“WiFi设备每次连接WiFi网络前,已扫描到该WiFi网络,为什么还要通过发送Probe Request单播帧,做一次与路由器的交互呢?”

好,接下来我们探讨抓包中Probe Request帧的Body内容,如下图所示。

图片

Probe Request帧Body内容只包含元素(Elements)。作为Probe Request帧,它的主要目的是触发路由器给其回复Probe Response帧,发送的内容越短,占用信道资源越少,效率越高。因此,Probe Request帧只携带一些必要的内容信息

[1]SSID Element:

表明扫描的目标网络SSID。如Probe Request为广播帧,隐藏网络的网络名称与之相同,将会通过Probe Response回应。而网络名称不相同的网络,则不回应。

注:

Probe Request为广播,SSID Element字段长度为0或不包含SSID List element。则所有非隐藏网络则收到后,回复Probe Response,隐藏网络则不回应。

[2]Supported Rate和Extended Supported Rate Element:

表明扫描设备支持的速率集,路由器收到后,选择其一种支持的速率发送Probe Response帧。

[3]DSPS Element:

表明当前Probe Request帧在那个信道上扫描发送。

[4]HT Capability Element:

表明WiFi设备支持802.11n,是一个HT设备。

注:

  • 如Probe Request帧中包含HE Capability Element,则表明WiFi设备支持802.11ax。
  • 作为请求帧,Probe Request帧Body可包含请求Element ID,如接收Probe Request帧的设备支持请求ID,则在回复的Probe Response帧Body中应携带该Element ID信息。
  • 实际WiFi设备使用中,为了尽可能扫描到周围WiFi网络,存在在一个信道上发送多个Probe Request帧。

注:协议规范【原文】

In an infrastructure BSS or in an IBSS, STAs receiving Probe Request frames shall respond with a probe response when the SSID in the probe request is the wildcard SSID or matches the specific SSID of the STA or when the specific SSID of the STA is included in the SSID List element.

以上Element详细解释可参考【WiFi基础学习到实战(六)】。

发送Probe Request帧,触发接收者回复Probe Response帧,从中获取当前WiFi网络的信息能力。

接下来我们分析Probe Response帧的内容,如下图所示Beacon帧和Probe Response帧的Body内容:

图片

图片

Probe Response帧Body内容分为:字段(Fields)和元素(Elements)。其Body内容和对应路由器发送的Beacon帧一致,Body内容解释可参考【WiFi基础学习到实战(五-六)】。

这里我们分析下Probe Response帧Body内容可能存在与Beacon帧不同点。

  • Probe Response帧为单播帧,接收地址为单播地址。做为响应Probe Request帧,其Body可能携带Request帧中请求的Element ID信息。
  • Beacon帧为广播帧,其Body中可能不携带Probe Request请求的Element ID信息。

Probe Response帧主要是将WiFi网络的信息能力主动的反馈给请求设备。请求设备通过其Body内容了解当前WiFi网络的状态。

到这里,我们对Probe Request和Probe Response帧的探讨就结束了,现在回到我们开始的问题“有些WiFi设备连接WiFi网络前,已扫描到该WiFi网络,为什么还要通过发送Probe Request单播帧,做一次与路由器的交互呢?”。

答:WiFi设备连接前做Probe Request请求,一是获取当前WiFi网络的加密方式,为接下来的认证关联做准备;二是获取WiFi网络的TSF,更新校准本地的TSF。

注:协议规范【原文】

A non-DMG STA’s TSF timer shall be accurate to within ± 100 ppm. A DMG STA’s TSF timer shall be accurate to within ± 20 ppm.

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 路由器
    +关注

    关注

    22

    文章

    3505

    浏览量

    111345
  • SSID
    +关注

    关注

    0

    文章

    14

    浏览量

    11208
  • FCS
    FCS
    +关注

    关注

    4

    文章

    32

    浏览量

    14356
  • wifi网络
    +关注

    关注

    0

    文章

    12

    浏览量

    7371
收藏 人收藏

    评论

    相关推荐

    CC2530 packet sniffer 为什么不到,?

    我用packet sniffer 软件,芯片用的是CC2530,想协调器给终端设备发送的信道和pandid值,但是抓取不到,不知道为什么?只有MAXC层有数据,NWK层和应用层都没有数据,求大神指点?
    发表于 03-14 10:53

    终端节点为什么无法

    终端节点为什么无法?终端节点收不到协调器无线发送的数据包打断点调试协调器无线发送成功,终端节点开启低功耗模式,并且轮询设置为5s,每5s向协调器发送data request请求
    发表于 03-16 10:27

    CC2640 使用BTool怎么用?

    CC2640使用BTool怎么用?我一直用simpleBLEPeripheral改写的程序,烧写simpleBLEPeripheral,使用BTool,出现[/url]。使用p
    发表于 03-16 11:27

    WIZnet芯片通讯时怎么?

    `Q:WIZnet芯片进行公网通讯或者芯片间通讯的话怎么?A:芯片和PC通讯的话可以直接通过Wireshark,如果芯片和公网直接通讯或者通讯是发生在芯片之间,则没有办法直接
    发表于 03-13 11:32

    加密后分析的问题?

    请问一下,我的zigbee设备全部都开启了加密, 使用软件的时候,数据都是加密的,我应该怎么解密分析这些数据呢,谢谢了
    发表于 06-01 14:22

    若协调器断电,然后重新上电,捕捉终端发出 orphan notification ,然后就开始发出 Beacon Request信号,怎么改一下能一直发orphan notification入网而不在发Beacon Request???

    [size=1em][size=1em]若[size=1em]协调器断电,[size=1em]然后[size=1em]重新上电,[size=1em]捕捉终端发出 orphan
    发表于 06-01 10:50

    Packet Sniffer 异常,有时能抓到有时不到,有时协调器会回应有时不会回应,请问是怎么回事?

    有时不会回应。而且离线节点的beacon request 协调器虽然回应 但是节点没有后续操作,都定义了NV_RESTORE附
    发表于 06-01 07:41

    BLE Execute Write Request Callback在哪里?请问我该如何知道合适数据已经全部传输完毕?

    本帖最后由 一只耳朵怪 于 2018-6-7 09:37 编辑 BLE用WriteLongCharValue发送超过20个字节的看到流程为:perpare write
    发表于 06-06 12:45

    请问ZigBee如何修改Data Request的发送次数?

    我给终端开启了休眠,并关闭了终端一直发送Data Request。但是开启了终端在唤醒之后发送传感器数据之后收到数据确认帧之后发送Data Request显示只有一次Data
    发表于 08-09 09:18

    ZLL touchlink过程遇到问题的解决办法?

    你好,对ZLLRC和Zlight2的touchlink过程进行,如附件,第1-16的数据还能理解,分别是扫描请求、扫描响应、识别、网络
    发表于 08-07 10:45

    如何使用WireShark进行网络

      如何使用WireShark进行网络:准备工作、wireshark 主界面介绍、封包列表介绍
    发表于 04-02 07:05

    展示MQTT和OTA应用的数据交互流程

    。MQTT 数据交互流程OTA 数据交互流程以 MQTT 通道为例,固件升级流程如下图所示:原作者:RT-Thread软件
    发表于 08-11 10:53

    请问BLE-Dongle是否支持协议分析?请问怎么进行协议分析?

    如题,请问贵司的BLE-Dongle是否支持协议分析?请问怎么进行协议分析?
    发表于 09-07 07:12

    如何将多个数据存储在一个数组中?

    probe_request_80211 *probe_request = (struct probe_request_80211*) sniffer_data->buf; os_sprintf
    发表于 06-12 08:18

    无线接入过程的三个阶段

    无线客户端工作过程中,会定期地搜索周围的无线网络,也就是主动扫描周围的无线网络。根据探测请求帧(Probe Request帧)是否携带指定SSID,可以将
    发表于 03-30 10:33 6323次阅读
    无线接入过程的三个阶段