副标题:Beacon、Probe、Auth、Assoc 落在哪一层,以及 Windows 默认为什么抓不到
专栏:《嵌入式学生的方案测试课》第 9 篇(空口下篇,诚实边界)
前置:第 8 篇已经抓过网口 DHCP / TCP / MQTT;第 5 篇会四层分流
标签:嵌入式、Wireshark、802.11、WiFi、软件测试
读者:第 8 篇交过三张网口截图;简历可能写过「空口抓包」,实际没见过 Radiotap
学完交什么:网口/空口对照表、200 字「我抓过什么、没抓过什么」、一份无空口时的替代证据包
本篇禁止伪造 monitor 截图。没有支持监听的网卡,作业到对照表和串口替代结束,仍然算过关。
0. 这篇结束你能干什么
勾这 4 条。勾不完,不要把第 8 篇的 MQTT 图改标题叫空口。
- 打开任意一份自己的 pcap 或截图,能从 Protocol 列和详情树第一层判断:这是 Ethernet/IP,还是 Radiotap + 802.11。
- 能说出 Beacon、Probe Request/Response、Authentication、Association 各自回答第 5 篇哪一层的问题;能把 WPA2 四次握手(EAPOL)和 MQTT CONNECT 分到两个世界。
- 能用自己的话说清:Windows 默认不是 monitor mode;笔记本 Wireshark 不是综测仪;没有监听网卡时,用串口 RSSI、连接状态、驱动 event、AH 公开的
AT+SYSDBG=LMAC,1(有板才做)替代。 - 缺陷单里能写「缺 802.11 Assoc 证据,当前依据 AT 返回码和 RSSI」。这句比假装抓过空口更像方案测试。
本篇实验的必做部分不接空口仪器。可选部分写给「刚好有 Linux + 支持 monitor 的 USB 网卡」的人。没有就停,不要编。
1. 为什么方案测试必须懂空口,却不能装做过
客户说「配不上」。第 5 篇已经把这句话拆成四层。空口专门回答前两层:
- 射频:空中有没有这个 AP 的 Beacon?设备有没有发 Probe?RSSI、信道、速率在 Radiotap 里是多少?
- 关联:Auth 过了没有?Assoc 成功没有?四次握手完成没有?
网口回答后两层:DHCP、ARP、TCP、MQTT、HTTP、RTSP。
学生翻车有两种,比不会点鲨鱼鳍更严重:
- 装懂。把第 8 篇的 MQTT CONNECT 截图,口头改成「我抓了空口」。面试官看一眼 Protocol 列是 MQTT,不是 802.11,当场结束。
- 放弃分层。因为抓不到空口,就觉得射频和关联无法测。于是永远停在「串口有 CONNECTED 就算过」。原厂 FAQ 里大量配网失败,恰恰要靠空口统计或驱动 event,而不是靠再发一次 MQTT。
方案测试的成熟标志不是「我会 monitor」,而是「我知道这一层的合格证据是什么;没有仪器时,我用什么降级证据,并且把缺口写进报告」。
泰芯公开文档里,AH 用AT+SYSDBG=LMAC,1打开空口统计打印,用AT+SYSDBG=UMAC,1看上层协议栈。TXW82x 配网失败先看驱动 event 和「连接事件不等于 DHCP 完成」。这些都是空口思维,不一定是 Wireshark 空口。
2. 最小原理:空口是 802.11 帧,不是 IP 包
2.1 先画两棵树,钉在工位
第 8 篇的网口树:
Frame └── Ethernet II 源 MAC / 目的 MAC(有线或虚拟以太网) └── IPv4 源 IP / 目的 IP └── TCP SYN / ACK / RST / 重传 └── MQTT / HTTP / …空口树(monitor 抓到之后才长这样):
Frame └── Radiotap Header 信道、速率、天线、RSSI/RCPI、噪声(字段因网卡而异) └── 802.11 管理 / 控制 / 数据帧 ├── Beacon / Probe / Auth / Assoc 管理帧 ├── RTS / CTS / ACK 控制帧 └── Data + LLC/SNAP └── EAPOL(四次握手)或 LLC 后的 IP └── 若已解密或本来就是明文,才可能再看到 IP/TCP判断口诀:
| 你看到 | 这是 | 不是 |
|---|---|---|
| 第一层 Ethernet II,Protocol 列 TCP / MQTT / DHCP / HTTP / TLS | 网口 | 空口 |
| 第一层 Radiotap 或 802.11,Protocol 列 802.11 / EAPOL / 带 Beacon 字样 | 空口 | 网口 |
串口里的AT+CWJAP/WIFI CONNECTED/PAIRING SUCCESS | UART 旁路 | 既不是网口也不是空口 |
详情树比 Protocol 列更可靠。有些 Wireshark 把 802.11 Data 解到了 IP,Protocol 列可能显示 TCP,但第一层仍是 Radiotap。以详情树最上层为准。
2.2 三种 802.11 帧,方案测试各用它们回答什么
802.11 把帧分成三类。你不必背帧控制字段的每一个 bit,但必须知道测配网时先找哪一类。
管理帧(Management)
用来发现和关联。方案测试配网失败,80% 的空口工作在这里。
| 帧 | 谁发给谁 | 它证明什么 | 落在第 5 篇哪一层 |
|---|---|---|---|
| Beacon | AP 周期性广播 | 这个 SSID 在这个信道上活着;带加密套件、信道、能力信息 | 射频:扫不扫得到的前提 |
| Probe Request | STA 主动问「有没有这个 SSID / 有哪些 AP」 | 设备在扫 | 射频 / 扫描 |
| Probe Response | AP 回答 Probe | AP 听到了设备,并回应 | 射频:不只是你电脑看得到 AP |
| Authentication | STA 与 AP 认证(Open 系统下很短) | 认证这一步过了没有 | 关联的前半 |
| Association Request / Response | 关联请求与应答 | 关联成功才会有 AID;失败看状态码 | 关联 |
| Deauthentication / Disassociation | 任一方踢人或离开 | 掉线是被踢还是自己走 | 关联掉线 |
控制帧(Control)
RTS / CTS / ACK。用来协调介质、确认收到。你入门阶段很少靠它们写缺陷单。看到 ACK 很多,不代表业务成功;看不到 ACK,也不要第一天就写「射频芯片坏了」——可能是你监听位置不对、网卡漏帧。
数据帧(Data)
关联成功之后,真正的业务 MSDU 走这里。WPA2 下单播数据是加密的。你在空口上看到 Data,不等于你能看见里面的 MQTT。解密需要密钥,实验室有条件才做;学生默认做不到。
所以:空口擅长回答「连上没有」,不擅长在没有密钥时回答「MQTT 主题对不对」。后者回到第 8 篇网口。
2.3 Radiotap:空口里的「环境表」
Radiotap 不是 802.11 标准帧的一部分,是网卡驱动塞给抓包软件的元数据。常见字段:
- 信道 / 频率(2.4G 是 2412、2437、2462 这类 MHz,对应信道 1/6/11)
- 速率或 MCS
- 天线
- SSI Signal / RSSI / RCPI(名称因驱动而异,都是信号强度一类的数)
- 噪声
方案测试用它做两件事:
- 确认你监听的信道和 AP 实际信道一致。听错信道 = 空列表,不是芯片没 Beacon。
- 给「弱网」一个空口数字,而不是「感觉有墙」。
第 5 篇已经警告:2.4G 学生板 RSSI 一般是负数;AH 近距离公开允许正数 0 到 10。Radiotap 里的数和 AT 打印的 RSSI 不一定同一公式,报告里写清来源,不要把两种数横比到小数点后两位。
2.4 WPA2 四次握手是空口侧密钥,不是 MQTT
关联成功之后,WPA2-PSK 还要做 EAPOL 四次握手,双方推出 PTK,之后单播才加密。
顺序(简化,够测试用):
扫到 Beacon/Probe -> Authentication -> Association -> EAPOL 1/4, 2/4, 3/4, 4/4 空口侧,Wireshark Protocol 常显示 EAPOL -> 之后 Data 加密 -> 这才可能 DHCP(网口或解密后的空口数据) -> 这才可能 TCP / MQTT CONNECT(应用)两句禁令:
- 抓到 MQTT CONNECT,不能说「四次握手成功」。那是应用层,握手早在前面。
- 抓到 EAPOL,不能说「上云成功」。密钥有了,DHCP 和 MQTT 都还没开始。
Open 网络没有这套四次握手,教学上更简单,但不要用家里无密码热点当产品过关标准。产品几乎都是 WPA2/WPA3。
WPA3-SAE 的握手和 WPA2 不同。本篇只要求你知道「名字不同、仍属于关联后、DHCP 前」。细节留给有板的原厂文档。
2.5 monitor mode 是什么,为什么换一张普通网卡不够
普通 STA 模式:网卡只把发给自己的数据、部分广播,交给操作系统。别人的单播丢掉。管理帧大多也不给你。这就是第 8 篇「同一 AP 下看不见设备 MQTT」的物理原因之一:你甚至不是这对会话的端点。
monitor mode:网卡尽量把听到的 802.11 帧(含管理帧、别人的数据帧)交上来,并附 Radiotap。通常还要指定信道。这叫监听,不是「再插一张用来上网的 Wi-Fi 网卡」。
硬边界:
| 平台 | 常见情况 | 你应该怎么说 |
|---|---|---|
| Windows + 笔记本自带网卡 | 绝大多数不能进 monitor;Wireshark 网卡列表里的「Wi-Fi」是网口视角 | 「我没做空口」 |
| Windows + 部分 USB 网卡 + 特殊驱动 | 少数能,配置痛苦,本专栏不作为必做 | 做成了再写进报告,写网卡型号和驱动 |
| Linux + 支持 monitor 的芯片(部分 Atheros / Realtek / 专用嗅探卡) | 才是学生可选路径 | 写iw/ 接口名 / 信道 |
| macOS | 部分机型可机场监听,流程和 Linux 不同 | 做成了写版本,没做就别抄命令 |
| 综测仪 / 协议分析仪 | 原厂射频和认证实验室 | 第一周身份证明不是这个 |
「我换了一张 USB 网卡,Wireshark 里多了一行」只说明多了一块网口设备。若详情树仍是 Ethernet II,你还在第 8 篇。
2.6 混杂模式不是 monitor
有人在 Wireshark 网卡选项里勾了 promiscuous(混杂)。那是以太网世界的词:接收目的 MAC 不是自己的帧。无线 STA 模式下勾它,不能让你看到 802.11 管理帧,也不能解开别人的 WPA2 单播。
口误对照:
- promiscuous / 混杂:网口侧,以太网
- monitor / 监听:空口侧,802.11
面试把这两个说反,比说不出 MCS 更减分。
3. 总对照表(抄到labs/week09/air-vs-host.md)
| 看到的 Protocol / 详情树 | 这是 | 能回答什么问题 | 不能回答什么 |
|---|---|---|---|
| TCP / MQTT / HTTP / DHCP / DNS / TLS | 网口 | 业务、三次握手、重传、CONNACK、DHCP 四步 | 扫不扫得到、Auth/Assoc 失败原因 |
| Ethernet / ARP | 网口 | 二层是否通、网关 MAC | 射频 |
| 802.11 Beacon / Probe | 空口 | 扫不扫得到、SSID 是否隐藏、信道是否对 | MQTT 密钥对不对 |
| Auth / Assoc | 空口 | 关联失败发生在哪一步、状态码 | 有没有拿到 IP |
| Radiotap + RSSI/信道/速率 | 空口元数据 | 射频质量和听错信道 | 应用 JSON |
| EAPOL | 空口(数据/密钥) | 四次握手有没有打完 | 云平台鉴权 |
| 只有串口 AT / 驱动 event | 都不是,是旁路 | 模组状态机、RSSI 打印、CONNECTED / GOT IP | 不能当 pcap 附件冒充 |
| nRF Connect 扫描 BLE | 另一条空口(第 17 篇) | BLE 广不广播 | Wi-Fi Assoc |
配网失败时按表找缺的那一行证据。缺空口就写缺空口,用串口补;不要把网口 DHCP 失败的图贴到「扫不到」的单上。
4. 必做实验:证明你能区分,而不是证明你有嗅探卡
下面五步,有第 8 篇的材料就能做。做完你就有资格谈论空口。
步骤 1:把第 8 篇的图再打开,当反例
打开labs/week08/里任意一张包列表截图,或 pcap。
在详情树最上层找单词。你现在应当看到Ethernet II或Linux cooked或Frame下面直接是 IPv4。Protocol 列是 DHCP / TCP / MQTT / HTTP / TLS / DNS 之一。
在截图上用画图工具标三处,存labs/week09/host-not-air.png:
- Protocol 列的值
- 详情树第一层协议名
- 一行字:「这是网口。不是 802.11。」
这一张图是本篇的及格线。很多人作业交空口概念,却交不出这张反例。
步骤 2:在 Wireshark 显示过滤器里「故意找空口」,确认找不到
对同一份网口 pcap输入:
wlan或:
wlan.fc.type_subtype == 0x08(Beacon 的 type_subtype 常见写法;记不住就用wlan。)
期望:列表为空,或过滤器语法虽绿但 0 包。
再输入第 8 篇用过的:
dhcp || mqtt || tcp.flags.syn==1期望:包回来了。
把两次过滤器各截一张,标注「同一份 pcap」。结论写进labs/week09/filters.md:
文件:week08 热点拓扑.pcap wlan -> 0 包,因为这是网口捕获 dhcp -> N 包,IP 层证据 我没有 monitor 捕获文件过滤器为空,不能写成「家里没有 Beacon」。只能写成「这份文件里没有 802.11 层」。
步骤 3:用串口把「空口该回答的问题」降级回答一遍
没有 monitor,射频和关联不是不能测,是证据降级。ESP8266 最小集(第 4、5 篇已做过,本篇要按空口问题重新标注):
| 空口问题 | 无空口时你做什么 | 合格降级证据 |
|---|---|---|
| 有没有 Beacon / 能不能扫到 | AT+CWLAP,目标 SSID 在不在列表,RSSI 数字 | 扫网原文 + 环境表距离/天线 |
| 设备有没有去连 | AT+CWJAP发出去的时间和参数 | 带时间戳的发送行 |
| Auth/Assoc 失败还是 DHCP 失败 | 只有FAIL/WIFI CONNECTED/WIFI GOT IP的先后 | 错密码应失败在 CONNECTED 之前;DHCP 失败停在 CONNECTED 之后 |
| 掉线是射频崩了还是被踢 | 走远看 RSSI 与断开打印是否一起出现;近距离突然断开更像 AP 踢人或省电 | 一次只改距离或只改 AP 省电 |
把第 5 篇四层注入里「拔天线」和「错密码」两段会话,复制到labs/week09/downgrade.md,每段上面加一行:
本段替代的空口证据:Beacon/Probe(拔天线)或 Auth/Assoc(错密码) 缺口:没有 802.11 状态码,无法区分 Auth 失败还是 Assoc 失败成熟就成熟在最后那句缺口。
步骤 4:对照路由器管理页,仍然不是空口
打开家用 AP 的已连接设备列表。能看见 ESP8266 的 MAC,只能证明关联可能已经成功(AP 侧视角)。它:
- 不是 Radiotap
- 通常看不到 Probe 过程
- 不能当 MQTT 证据
截一张打码 MAC 的管理页,注明「AP 侧关联列表,非空口 pcap」。这是第三种旁路,和串口并列,仍进不了 Wireshark 空口列。
步骤 5:写 200 字诚实声明(本篇最重要的作业)
模板,必须改成你的第一人称细节:
我抓过:Windows + Npcap,电脑热点拓扑下的网口。 见过的 Protocol:DNS、DHCP、TCP、(MQTT 或 HTTP)。 详情树第一层:Ethernet II。 我没抓过:Radiotap、Beacon、Probe、Auth、Assoc、EAPOL。 平台限制:当前是 Windows 笔记本自带网卡,未进 monitor mode。 配网射频/关联层,我用 AT 扫网、RSSI、CONNECTED/GOT IP 和错密码返回值替代。 缺陷单会写「缺 802.11 管理帧证据」。 我不会把 MQTT 截图称为空口。少于 120 字或出现「精通空口」四个字,作业退回。
5. 可选实验:真的有 Linux + monitor 网卡才往下做
没有硬件就整节跳过。不要在 Windows 上把命令抄进报告假装跑过。
5.1 先确认网卡真的支持
在 Linux 里:
iw dev iw phy在 phy 能力里找monitor。没有这个字,换网卡,不要折磨驱动。
常见教学路径(接口名以你的为准,下面用wlan0举例):
sudo ip link set wlan0 down sudo iw wlan0 set type monitor sudo ip link set wlan0 up sudo iw dev wlan0 set channel 6或airmon-ng start wlan0得到wlan0mon。airmon-ng 会杀网络管理进程,做完要恢复,否则笔记本没网。
然后:
sudo wireshark选 monitor 接口。显示过滤器:
wlan.ssid == "lab-ap-01"或先wlan.fc.type_subtype == 0x08看 Beacon。
你现在应该看到:详情树Radiotap Header,下面IEEE 802.11 Beacon frame。SSID 在 tagged parameters 里。Radiotap 里有频率 2437 一类的数(信道 6)。
若仍是 Ethernet II:接口不是 monitor,或 Wireshark 选错网卡。
5.2 只抓管理帧,不要在宿舍扫全城当作品
合法边界:
- 只针对你自己的实验 AP 和自己的板
- 密码、客户 SSID、邻居网络打码
- 不为解密别人的 WPA2 去跑握手字典
- 中国大陆读者不做 HaLow / Sub-1GHz 发射(第 16 篇);2.4G 家用实验 AP 保持常规功率,不要外接大功率天线当玩具
建议捕获过滤器(这次可以用,因为空口包极多,不滤会爆盘):
type mgt先只要管理帧。配网一次,停。文件大于 50MB 还没有 Beacon,先查信道。
5.3 人为制造四层,在空口上对得上号
| 注入(一次一个) | 空口期望 | 串口期望 |
|---|---|---|
| 拔天线 / 远离 | Probe 还在或变少,Beacon RSSI 很差或听不到目标 SSID | CWLAP列表空或 RSSI 极差 |
| 错密码 | 能看到 Assoc 或四次握手失败(视实现),随后 Deauth | CWJAPFAIL,无 GOT IP |
| 隐藏 SSID | 被动扫描可能看不到 Beacon 里的 SSID 字符串,主动 Probe 指定 SSID 仍可能连 | 扫网列表没有名字,直连指定 SSID 仍可能成功 |
| 正确密码近距离 | Beacon -> Auth -> Assoc -> EAPOL | CONNECTED 然后 GOT IP |
隐藏 SSID 那一行足够让你明白:扫不到名字不等于 AP 没开。产品测试要单独写隐藏 SSID 用例。
5.4 仍然解不开别人的 MQTT
即便你有空口,WPA2 单播默认仍是加密 Data。没有用 wpa-pwd 等办法(仅限你自己的实验室网络)喂给 Wireshark,Protocol 列不会出现 MQTT。
所以第 8 篇的电脑热点拓扑并不过时。空口看关联,网口看业务,两份证据。原厂同时要串口。三份才像一份配网缺陷单。
6. 没有空口时,原厂现场实际在看什么
把「我没有嗅探卡」翻译成「我可以跟原厂对话」:
- 启动日志从头到尾。版本号、校准、CPU1 ready(TXW82x)、首个错误。
- 驱动 / 协议栈 event。扫描完成、关联成功、关联失败原因、四次握手失败、DHCP 完成。公开 FPV 文档写:连接事件不等于 DHCP 完成;Wi-Fi 已连接但不能联网时,分别确认关联、DHCP、默认网卡、网关、DNS、SNTP/TLS、应用鉴权。
- LMAC 统计。AH 公开:
AT+SYSDBG=LMAC,1打开空口统计;AT+SYSDBG=UMAC,1打开上层。没有 Wireshark 空口时,这就是芯片自己的空口视角。 - RSSI 与扫网列表。数字 + SSID 是否出现。AH 近距离正数可能正常。
- 配对状态机。AH:
PAIRING SUCCESS之后必须AT+PAIR=0才握手;chan_list 与 bss_bw 必须 AP/STA 一致。这是关联层配置,不是 MQTT。 - AP 侧列表与信道。路由器或 AH AP 是否看到 STA。
你会发现:原厂很多时候也不是每人一台协议分析仪。分析仪出现在认证、掉包到需要看重传率和频谱的时候。配网「能扫不能连」,日志和 event 先上。
7. 换成泰芯公开场景,方法怎么变
公开文档能迁移的,是问题分层,不是把 ESP 的CWLAP改名叫SCAN就结束。
| 公开事实 | 空口问题 | 学生板迁移 | 原厂以手册为准 |
|---|---|---|---|
| 手机搜不到 HaLow,因为 Sub-1GHz,不是 2.4G b/g/n/ac/ax | 「扫不到」首先可能是频段错了,不是天线虚焊 | 不要用手机 Wi-Fi 列表验证 AH | 国内无 AH 合规业余频段,不做发射 |
AP/STA 的chan_list、bss_bw必须一致(含顺序) | 空口上会表现为扫不到或关联不上 | ESP 上对应信道/带宽/加密套件不一致 | AT+CHAN_LIST/AT+BSS_BW |
AT+PAIR=1成功后必须AT+PAIR=0才握手 | 停在配对模式 ≠ 已关联 | ESP 没有 PAIR,但有「配网模式没退出」同类状态机 | 缺陷单写状态机,不写芯片玄学 |
AT+SYSDBG=LMAC,1 | 芯片侧空口统计 | ESP 用CWJAP返回和 RSSI 替代,报告写替代 | 有 AH 板再打开打印 |
AT+SCAN结果在 umac dbg:AT+SYSDBG=umac,1 | 扫描层 | AT+CWLAP | 不要把网口 netat 当空口 |
| TXW82x:连接事件 ≠ DHCP 完成 | Assoc 成功仍可能没 IP | WIFI CONNECTED≠WIFI GOT IP | 已连接但不能联网的公开检查单 |
| TXW82x 配网失败先看驱动 event | 空口/驱动,不要先改 RTSP URL | 先看串口 event,再看 VLC | CPU1 未 ready 不解释业务 |
| 笔记本 Wireshark 不是综测仪 | 空口能力有限 | 本篇诚实声明 | SRRC 连续发射只在有资质环境,第 16 篇 |
网桥 netat 从网口发 AT:那是第 8 篇的例外通道,更不是 802.11 监听。
8. 缺陷单范文:能扫不能连(无空口的诚实写法)
标题:【关联】错密码时无明确 FAIL,10 秒后模组不再响应 AT 严重级别:主要 环境:见 labs/week09/env.md 板:ESP-12F #3 固件:AT 1.7.4 / SDK 2.2.1(以 AT+GMR 原文为准) AP:lab-ap-01,WPA2-PSK,信道 6(路由器页) 天线:IPEX 已坐实 距离:0.5 m,视距 捕获:无 802.11 monitor;有 UART 115200 完整会话 前置:AT 探活 OK;AT+CWLAP 列表含 lab-ap-01,RSSI -47 步骤: 1. AT+CWJAP="lab-ap-01","wrong-password-xx" 2. 等待 20 s,期间继续尝试 AT 期望:20 s 内返回 FAIL 或明确错误码,之后仍响应 AT 实际:无 FAIL;12.4 s 后 AT 无回显,复位后恢复。必现 3/3 附件:uart-assoc-hang.txt;host-not-air.png(仅证明未把网口当空口) 初步分层:关联层状态机。射频层不支持(近距离能扫到,RSSI -47) 证据缺口:无 Auth/Assoc 状态码,无法区分认证失败、关联失败或驱动死锁 下一步:原厂板打开 LMAC/UMAC 打印或驱动 event;有 monitor 时补 802.11 管理帧对比不合格标题:「Wireshark 抓不到空口所以芯片不行」。工具能力不是缺陷。
另一张只写缺口、不写锅:
标题:【射频】隔两堵墙扫不到目标 SSID(无空口确认是否还有 Beacon) 实际:CWLAP 列表空;近距离同固件同 AP 可扫到 RSSI -44 初步分层:射频或环境。不能排除 AP 在远点关了 2.4G、或设备只听错信道 证据缺口:无 Beacon/Radiotap,无法证明 AP 在该位置仍在广播 建议:用支持 monitor 的设备在同一位置听信道 6;或带一台已知好的手机扫描对照9. 30 秒口径(对着镜子说,录音)
空口是 Radiotap 加 802.11,看 Beacon、Probe、Auth、Assoc 和四次握手。
默认 Wireshark 是网口,看 Ethernet、IP、TCP、MQTT。
Windows 笔记本通常进不了 monitor,我没抓过空口。
配网射频和关联,我用扫网、RSSI、连接事件和 GOT IP 分层;缺管理帧我会写进缺陷单。
EAPOL 不是 MQTT,CONNECTED 不是 GOT IP。
计时超过 40 秒或出现「精通」,重录。
10. 作业
目录:
labs/week09/ env.md # 沿用第 1 篇环境表 air-vs-host.md # 抄对照表,用自己的话补一列「我实际见过?」 host-not-air.png # 第 8 篇图标注「这是网口」 filters.md # wlan 为空,dhcp/mqtt 非空 downgrade.md # 拔天线 + 错密码,写替代与缺口 honest-200.txt # 200 字声明 ap-client-list.png # 可选,AP 管理页打码 monitor/ # 可选,真有 monitor 才建 beacon.png assoc.png radiotap-rssi.png nic-and-iw.txt # 网卡型号、iw 能力原文验收:
air-vs-host.md每一行「我实际见过?」填是或否,不许全是。honest-200.txt明确写没抓过 Beacon。- 没有任何文件把 MQTT 标成 802.11。
- 可选 monitor 目录如果存在,必须有网卡型号;没有型号视为造假,整周作业作废。
11. 自测题(先闭卷)
- 详情树第一层是 Ethernet II,Protocol 是 MQTT,这是网口还是空口?
- 混杂模式和 monitor mode 差在哪?
- Beacon 回答哪一层?Assoc Response 呢?DHCP Ack 呢?MQTT CONNACK 呢?
- 为什么同一家用 WPA2 AP 下,空口即使抓到 Data 也不等于能看见设备 MQTT?
- EAPOL 四次握手成功,能否声称产品配网过关?
- Windows 默认抓不到空口,缺陷单射频栏是空着不写,还是写降级证据加缺口?
- AH 公开
AT+SYSDBG=LMAC,1属于 Wireshark 空口吗? - 手机搜不到 HaLow,优先怀疑天线还是频段?
- 把第 8 篇过滤器
mqtt用在 monitor 的 pcap 上,可能发生什么? - 简历如何写本周内容才不翻车?
答案在附录 A。
12. 学生常见翻车
- 网口 MQTT 截图口头改名空口。
- 勾了 promiscuous 就写「已做空口」。
- 简历「精通 Wireshark 空口 / 综测仪 / 802.11 协议栈」。
- 没有 monitor 就把射频层标 N/A,再也不测扫网。
- 在宿舍对邻居 AP 做握手破解当作业。
- 拿 Radiotap RSSI 和 AT RSSI 当同一个校准值给硬件改匹配。
- 把 Deauth 抓到一次就写「芯片乱发解认证」,不看是 AP 踢人、漫游还是你自己断开。
- HaLow 用笔记本 Wi-Fi 监听,听不到就报死料——频段根本不在 2.4G。
- 可选实验没做,却在博客放一张网上找来的 Beacon 图。
- 认为方案测试必须先买嗅探卡才能上班。到岗先跟日志和 event。
13. 下一篇预告
第 10 篇:《MQTT 不是发 JSON:CONNECT、KeepAlive、QoS 和弱网掉线怎么分层》。
空口和关联过了,IP 也有了,产品仍可能「上不了云」。下一篇把 TCP 之上的 CONNECT、CONNACK、KeepAlive、重连后必须重新订阅,收成测试清单。主案例用农业终端那套 MQTT 故事,但按测试口吻讲:掉线先看 Wi-Fi,再 TCP,再 MQTT,再业务。
本篇的诚实声明要带着:没有空口时,弱网证据用 RSSI 和网口重传,不要假装看过 802.11 重传计数。
附录 A. 自测题参考答案
- 网口。第一层 Ethernet 已经够判。
- 混杂是以太网收非本机 MAC;monitor 是 802.11 监听管理帧和别人的无线帧,通常要切信道。Windows 笔记本默认两者都不会变成空口。
- Beacon:射频/扫描。Assoc Response:关联。DHCP Ack:IP。CONNACK:应用(MQTT)。
- 单播加密,你没有密钥;而且 monitor 也不一定听全。业务明文仍优先网关侧网口。
- 不能。还差 DHCP、网关、DNS、TLS、CONNECT/CONNACK、业务订阅。
- 写降级证据(扫网、RSSI、AT 返回)并声明缺口。空着等于这层没测。
- 不属于。那是芯片 UART(或网口 netat)上的 LMAC 统计打印,空口思维,空口媒介不是 Wireshark。
- 频段。公开 FAQ:HaLow 是 Sub-1GHz,与家用 2.4G/5G 路由器不能直接互联。
- 常常 0 包。加密 Data 解不出 MQTT;没解密时 Protocol 不是 mqtt。不要用空口 pcap 的 mqtt 过滤器空去证明设备没上云。
- 写「能区分网口/空口;完成网口抓包;空口仅认知,用 AT/RSSI 做射频与关联分层」。不要写精通空口。
附录 B. 合格会话长什么样(可对照)
无 monitor 的及格周记:
2026-xx-xx 21:10 第 9 篇 捕获接口:未做 monitor(Win10 自带 Intel Wi-Fi,无监听能力) 网口反例:week08 pcap,Ethernet II + DHCP/TCP 过滤器 wlan:0 包 降级: 近距离 CWLAP 含 lab-ap-01 RSSI -46 错密码 CWJAP -> +CWJAP:4 FAIL(以你模组原文为准) 正确密码 T1 CONNECTED 2.1s,T2 GOT IP 2.8s 缺口:无 Auth/Assoc 状态码,无 Radiotap 结论:本周不声称空口抓包有 monitor 的及格补充(可选):
网卡:USB xxxx,iw phy 含 monitor 信道:6(2437 MHz),与 AP 管理页一致 见过:Beacon SSID=lab-ap-01;Assoc Response status=0 未见:解密后的 MQTT(未向 Wireshark 提供 PSK,且业务改在热点网口抓)附录 C. 公开资料(本篇用到的)
- 泰芯 AH 方案 FAQ:手机搜不到 HaLow;RSSI 近距离可为正;配对必须退出才握手;近距离多台卡顿先隔开
- 泰芯 AH-SDK AT 指令:
AT+SCAN、AT+SYSDBG=LMAC,1/UMAC,1、AT+PAIR、AT+CHAN_LIST、AT+BSS_BW - TXW82x FPV 公开开发文档:连接事件不等于 DHCP 完成;已连接但不能联网的分层检查;CPU1 承担 LMAC / 802.11 Core
- 第 8 篇:同一 AP 下网口看不见设备 MQTT;电脑热点拓扑
手册版本以官网为准。学生板命令不要直接套 AH。
附录 D. 给硬件同事的最短问法(有空口数字才用)
没有 Radiotap 就不要用这种口气。有的话:
同一位置、同一 AP 信道 6。 好板 Beacon RSSI 约 -48(Radiotap SSI Signal,网卡 xxxx)。 坏板同一监听设备听不到目标 Beacon,或 RSSI -85。 串口 CWLAP 与空口结论一致。 请先核对该板天线、IPEX 镂空、匹配;我这边固件版本是 ____。没有空口时,把「Radiotap」换成「CWLAP RSSI」,并加一句「无 802.11 独立证据」。
(第 9 篇完)