客户端怎么发现网络
客户端发现网络有两条路径:主动扫描逐个信道发送 Probe Request 并等待 Probe Response,速度快但会暴露终端的存在,定向探测还会带上曾连过的网络名;被动扫描只是安静监听 Beacon,慢但不会主动暴露自己。两者的权衡就是发现速度与隐私、耗电之间的取舍。
基本信息
| 主动扫描 | 逐信道发送 Probe Request,快但暴露终端身份 |
|---|---|
| 被动扫描 | 只监听 Beacon,慢但安静 |
| dwell 时间 | 通常每个信道停留 40~120ms |
| 定向探测 | 针对某个 SSID 的探测,隐匿 SSID 也会被应答 |
| 对业务的影响 | 扫描期间射频要离开服务信道,属于 off-channel 时间 |
典型使用场景
- 排查邻区与信道占用:触发一次扫描看周边环境
- 解释「Wi-Fi 列表要等几秒才出来」:SSID 多时扫描耗时明显上升
- 评估隐匿 SSID 的实际安全价值:定向探测仍会得到应答
- 诊断语音卡顿:通话中频繁扫描会造成周期性丢包
- 理解 802.11k 的价值:邻居报告能显著缩短扫描时间
触发扫描与抓包
触发扫描与抓包
# Windows:触发一次扫描并列出网络(含 BSSID 与信道)
netsh wlan show networks mode=bssid
# Linux:主动扫描,查看信号与信道
sudo iw dev wlan0 scan | grep -E "SSID|freq|signal"
# 抓包观察探测过程
wlan.fc.type_subtype == 4 # Probe Request
wlan.fc.type_subtype == 5 # Probe Response主动与被动扫描对比
| 对比项 | 主动扫描 | 被动扫描 |
|---|---|---|
| 发现速度 | 快 | 慢 |
| 隐私 | 暴露终端与历史 SSID | 不暴露 |
| 耗电 | 较高 | 较低 |
| 隐匿 SSID 发现 | 可发现(定向探测) | 无法发现,没有 Beacon |
| 对业务的影响 | 占用 off-channel 时间 | 同样需要离开服务信道 |
扫描期间射频会离开服务信道,语音通话中频繁扫描会造成卡顿。这是「打电话时网络抖动」的一个常见来源,与信号强度无关。
隐匿 SSID 仍会被定向 Probe Response 暴露,安全价值有限,反而增加连接耗时与终端耗电。不要把它当作安全手段使用。
工程上的结论
- 扫描时间随周边 SSID 数量上升,密集办公楼里「连网变慢」往往就是这个原因
- 语音终端在通话中应减少扫描频率,否则会出现周期性丢包
- 隐匿 SSID 只能挡住被动扫描,定向探测照样能发现,安全收益很低
- 802.11k 邻居报告能把扫描范围缩小到几个候选信道,是漫游优化的基础
- 用系统命令触发扫描会短暂离开服务信道,正式测试前要避开正在跑的业务