当前位置: 首页 > news >正文

WIFI协议全解析08:WiFi连接背后的握手过程,你的设备是如何“入网”的

WiFi连接背后的握手过程,你的设备是如何“入网”的?

当你点开手机的WiFi列表,输入密码,看到屏幕上显示“已连接”,你可能以为这只是一个瞬间的操作。
但在背后,其实设备和路由器完成了一套复杂的“握手仪式”。如果你对TCP的“三次握手”耳熟能详,那么今天我们来聊聊 WiFi 的“入网握手”。


在这里插入图片描述

1. WiFi入网的三个阶段

整个过程可以分为三个主要阶段:

  1. 发现(Discovery) —— 谁在附近?
  2. 认证(Authentication & Association) —— 能不能加入?
  3. 加密握手(4-Way Handshake) —— 数据怎么传输才安全?

这就像你去参加一场派对:

  • 先看看周围有哪些派对(扫描AP),
  • 选一个你想加入的(连接请求),
  • 主办方确认你的身份(密码验证),
  • 最后两边约定好暗号(加密密钥),才能放心聊天。

2. 阶段一:发现 (Discovery)

设备要连WiFi,第一步就是“找网络”。

这里有两种方式:

  • 被动扫描:设备只是安静等待,路由器会定时广播 Beacon帧(广播自己的SSID)。
  • 主动扫描:设备会主动发送 Probe Request,询问“附近有没有叫X的网络?”。路由器则用 Probe Response 来回应。

👉 就像在广场上喊:“谁是‘FreeWiFi’?”,有的路由器就会回答:“我就是!”


3. 阶段二:认证 & 关联 (Authentication & Association)

找到了目标AP之后,设备需要说:“我想加入你们。”

这分为两步:

  1. 认证(Authentication)

    • 如果是开放WiFi(无密码),这一步形同虚设,几乎直接通过。
    • 如果是WEP(古早已淘汰)、WPA/WPA2/WPA3,就需要交换身份验证信息。
  2. 关联(Association)

    • 设备会发送 Association Request,请求加入。
    • 路由器回应 Association Response,分配一个“Association ID”,就像派对给你发了一个工牌。

到这里,你“进场成功”,但还没法真正聊秘密话题。因为密码还没验证完。


4. 阶段三:加密握手(4-Way Handshake)

WiFi 的安全核心就是 WPA/WPA2/WPA3 的 4次握手(Four-Way Handshake)。

为什么要握手?因为:

  • 设备和路由器都知道“密码”(PSK),但不能直接把密码说出来。
  • 所以他们要通过握手来确认“我们都知道正确的密码”,并生成一个 临时会话密钥(PTK) 用来加密数据。

过程简化版:

  1. 路由器发送一个随机数(Nonce)给设备。
  2. 设备用密码和这个随机数生成一个密钥,再发回去。
  3. 双方验证密钥正确,确认对方也知道密码。
  4. 双方最终生成 会话密钥,后续所有数据都会加密传输。

👉 这就像你和朋友约定“见面暗号”:

  • 你说:“今天天气不错吧?”
  • 对方必须回答:“是的,适合打篮球。”
  • 如果对上了,就说明确实是自己人。

5. 你看到的“已连接”背后

所以,当你的手机显示“已连接到WiFi”,实际上意味着:

  1. 扫描到了目标SSID
  2. 通过了认证 & 关联
  3. 完成了4次加密握手
  4. DHCP分配了IP地址(否则你连上了也“不能上网”)

如果某一步失败,就会出现:

  • “无法加入网络”(认证失败)
  • “已连接但无法上网”(DHCP/IP问题)
  • 频繁掉线(握手失败或信号差)

6. 总结

WiFi连接不是“一键完成”,而是一个复杂的协作过程:

  • 发现:找到谁在广播WiFi
  • 认证/关联:确认身份,分配工牌
  • 4次握手:验证密码,生成加密密钥
  • DHCP:拿到IP,才能真正冲浪

下次你连不上网,不妨想想是哪个环节出了问题。


💡 小贴士:
如果你是做IoT开发的工程师,理解WiFi握手过程非常重要:

  • ESP32/ESP8266 等MCU提供了底层事件回调(如 WIFI_EVENT_STA_CONNECTEDWIFI_EVENT_STA_DISCONNECTED),你可以针对不同阶段做故障处理。
  • 抓包工具(如 Wireshark + WiFi网卡)能直观看到四次握手过程,非常推荐动手实践。

http://www.dtcms.com/a/362510.html

相关文章:

  • USB4与PCIe的技术融合:新一代接口协议的架构革新
  • 2025 全球 GEO 服务商 TOP10 揭晓|硕芽科技引领生成搜索优化新时代
  • Java全栈学习笔记28
  • GitHub宕机自救指南
  • MyBatis Plus 【详解】| 学习日志 | 第 17 天
  • 【ES9.X】GitHub-events 聚合方案
  • 【系统架构设计(12)】系统运行与软件维护
  • 机器学习笔记-第二周
  • ansible判断
  • 【系统架构设计(11)】软件测试全景解析:从方法论到实践策略
  • 163起融资,梅卡曼德融资额夺冠,钉钉、百度智能云10周年,汉桑科技IPO| 2025年8月人工智能投融资观察 · 极新月报
  • 开发组件库【详细教程】含同时支持【完整引入】和【手动导入】,核心配置文件,本地调试,依赖的安装和声明,发布组件库等
  • @JsonFormat格式化日期
  • FastAPI 介绍及示例开发
  • 飞牛OS Nas,SSH安装宝塔后,smb文件不能共享问题
  • Elasticsearch赋能3D打印机任务统计分析
  • ASO优化从命名开始增长:打造Apple Store和Google Play完美应用名称
  • 【代码里的英雄传】Dubbo 的一生:一位分布式勇士的传奇旅程
  • 一键提取,是真强呀!~
  • 碳星球解决方案技术落地:多源数据整合 + AI 建模,赋能政府调控、企业管理与园区零碳治理
  • 《水浒智慧》第二部 “英雄是怎么炼成的” (上篇)读书笔记
  • GPT-5在医疗领域应用的研究效能初探(上)
  • Apache 的安装及基本使用
  • 文字识别接口-文字识别技术-ocr api
  • GEM5学习(3):如何快速创建一个组件
  • 【Maven】《十分钟搞清Maevn项目》
  • AI Agent 扣子介绍
  • 优选算法的映射之妙:哈希表专题
  • 固定资产管理系统核心功能拆解:批量导入、OCR 识别有多高效?
  • Linux内核O(1)调度算法