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

    文章

    3699

    浏览量

    113448
  • SSID
    +关注

    关注

    0

    文章

    14

    浏览量

    11302
  • FCS
    FCS
    +关注

    关注

    4

    文章

    32

    浏览量

    14429
  • wifi网络
    +关注

    关注

    0

    文章

    12

    浏览量

    7394
收藏 人收藏

    评论

    相关推荐

    经典蓝牙解析说明

    在无线通信协议的开发过程中,器是工程师们不可或缺的工具。掌握器的使用,就如同拥有了能够洞察无线电波的“火眼金睛”。这不仅使我们能够验证发出的数据
    的头像 发表于 07-24 09:04 1678次阅读
    经典蓝牙<b class='flag-5'>抓</b><b class='flag-5'>包</b>解析说明

    终端节点为什么无法

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

    USB数据软件程序下载

    USB数据软件程序下载
    发表于 09-09 16:01 9次下载

    MCU_Wireshark USB 过滤(特定端口地址)

    启动WiresharkUSB的过程如下,这里点击“开始”就可以进入界面了。不过,Wireshark启动USB
    发表于 12-08 16:36 14次下载
    MCU_Wireshark USB <b class='flag-5'>抓</b><b class='flag-5'>包</b>过滤(<b class='flag-5'>抓</b>特定端口地址)

    SRT协议的工作流程、数据结构及Wireshark分析

    摘 要:本文从SRT协议的工作流程谈起,着重介绍和解析了SRT协议的数据结构,并举例说明如何利用Wireshark软件进行链路故障分析,从而解决实际工作中的问题。
    的头像 发表于 05-17 10:08 3402次阅读

    如何抓取app数据 网络原理及实现

    要实现对App的网络数据,需要监控App与服务器交互之间的网络节点,监控其中任意一个网络节点(网卡),获取所有经过网卡中的数据,对这些数据按照网络协议进行解析,这就是
    发表于 08-11 09:30 3031次阅读
    如何抓取app数据<b class='flag-5'>包</b> 网络<b class='flag-5'>抓</b><b class='flag-5'>包</b>原理及实现

    如何利用eNSP进行实验?

    使用Wireshark工具进行ping,并分析报文
    的头像 发表于 09-12 09:32 4037次阅读
    如何利用eNSP进行<b class='flag-5'>抓</b><b class='flag-5'>包</b>实验?

    CentOS中使用tcpdump

    CentOS中使用tcpdump
    的头像 发表于 10-28 14:48 150次阅读