Wifi 连接过程

469 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第31天,点击查看活动详情 

一、Probe 探测过程


1.当环境中有AP存在时,AP会每个一段时间发送一个beacon帧,去告诉周围设备这里有一个AP可以进行连接。从下面的空口包可以看到AP是每隔10s发的beacon帧,去进行的广播。

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

2.当模块收到AP发出的beacon帧后会将帧解析出来,并在扫描界面显示出这个AP, 3.如果点击AP进行连接时,模块会先向AP发出probe request请求帧去请求连接 4.AP收到模块发出的probe request帧后会进行应答发出probe response帧 在这里插入图片描述

二、四次握手


认证过程(Authentication ) 1.在模块接收到probe response后,会向AP发送认证管理帧,去请求身份认证 2.AP在收到认证请求帧后会进行身份认证,包含加密方式,密钥等进行校验。校验完会做出回应发出一个认证管理帧,包含认证状态是成功还是失败

在这里插入图片描述

在Auth request包中可以看到如下信息: #包的内容: 信道,信号强度,速率等 #802.11包头:Destination为AP的mac,代表是向AP发送,Source自己的地址,代表是模块发送给AP。帧类型为管理帧等 #Auth request管理帧信息:加密类型,状态码 Auth Algorithm 0 表示没有密码,是开放的系统 状态码0表示成功,AP成功收到数据包 在这里插入图片描述 在这里插入图片描述

在Auth response包中可以看到如下信息: #包的内容: 信道,信号强度,速率等 #802.11包头:Destination为模块wlan的mac,代表是向模块发送,Source自己的地址,代表是AP发送给模块。帧类型为管理帧等 #Auth resonse管理帧信息:加密类型,状态码 Auth Algorithm 0 表示没有密码,是开放系统 状态码0表示成功,身份认证成功

在这里插入图片描述

三、DHCP


1.在完成四次握手过程后,模块会主动发一个DHCP请求,在局域网内广播,请求中包含AP的IP和MAC, 2.AP收到请求后首先对比是不是自己的IP,如果不是则不做操作,如果是则回一个DHCP报文,将IP告诉模块

可以看到开始模块的ip为0:0:0:0,后来AP给分配IP后,显示为192.168.31.249 在这里插入图片描述

四、ARP


1.在模块分配到有效的IP后,想要进行数据通信时,根据模块的路由表内容确定用于访问AP的转发IP地址是多少。然后模块在自己的本地ARP缓存中检查AP的匹配MAC地址 2.如果模块在ARP缓存中没有找到映射,它将会去询问AP硬件地址,将ARP请求帧广播到本地局域网。模块的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求 3.AP确定ARP请求中的IP地址与自己的IP地址匹配,则将模块的IP地址和MAC地址映射添加到本地ARP缓存中。 4.AP将包含其MAC地址的ARP回复消息直接发送回模块 5.当模块收到从AP发来的ARP回复消息时,会用AP的IP和MAC地址映射更新ARP缓存。ARP缓存是有生存期的,生存期结束后,将再次重复上面的过程。AP的MAC地址一旦确定,模块就能向AP通信了。

在这里插入图片描述