Wi-Fi和终端那点事 | 无线网络卡顿分析上篇 网络

2022-11-05 139

前言


日常无线运维工作中各位看官最害怕也最容易遇到的问题是什么?无线卡顿首当其冲,本文就无线为什么会发生卡顿,以及如何解决无线卡顿这两方面进行展开讲解,希望能够帮助各位看官深入了解到无线卡顿的深层次原因,以及在日常的工作中如何处理和避免此类问题。


    


无线为什么会发生卡顿?


在聊无线为什么会发生卡顿之前,我们先来聊聊

终端是如何连接上无线(SSID)的?


 


如上图:

终端连接到AP(无线接入点)释放的SSID上共需6个小步,我们把它分为3个阶段,分别是扫描阶段(Scan),认证阶段(Authentication),关联阶段(Association),接下来我们对这三个阶段进行展开讲解:


无线扫描


无线客户端有两种方式可以获取到周围的无线网络信息:


一种是被动扫描,无线客户端只是通过监听周围AP发送的信标帧(Beacon帧)获取无线网络信息;


另外一种为主动扫描,无线客户端在扫描的时候,同时主动发送一个探测请求帧(Probe Request帧),通过收到探测响应帧(Probe Response)获取网络信号。


无线客户端在实际工作过程中,通常同时使用被动扫描和主动扫描获取周围的无线网络信息。


主动扫描


无线客户端工作过程中,会定期地搜索周围的无线网络,也就是主动扫描周围的无线网络。根据探测请求帧(Probe Request帧)是否携带指定SSID,可以将主动扫描可以分为两种:


客户端发送广播探测请求帧(SSID为空)


客户端会定期地在其支持的信道列表中,发送广播探测请求帧(ProbeRequest帧)扫描无线网络。当AP收到探测请求帧后,会回应探测响应帧(Probe Response帧)通告可以提供的无线网络信息。无线客户端通过主动扫描,可以主动获知可使用的无线服务,之后无线客户端可以根据需要选择适当的无线网络接入。


 


客户端发送单播帧(携带指定的SSID)


当无线客户端配置希望连接无线网络或者已经成功连接到一个无线网络情况下,客户端也会定期发送单播探测请求帧(Probe Request帧)(该报文携带要配置或者已经连接的无线网络的SSID),当能够提供指定SSID无线服务的AP接收到探测请求后回复探测响应。通过这种方法,无线客户端可以主动扫描指定的无线网络。


 


被动扫描


被动扫描是指客户端通过侦听AP定期发送的Beacon帧发现周围的无线网络。提供无线网络服务的AP设备都会周期性发送Beacon帧,所以无线客户端可以定期在支持的信道列表监听信标帧获取周围的无线网络信息。当用户需要节省电量时,可以使用被动扫描。一般VoIP语音终端通常使用被动扫描方式。


 


   


认证&关联


为了保证无线链路的安全,无线用户接入过程中AP需要完成对无线终端的认证,只有通过认证后才能进入后续的关联阶段。802.11链路定义了认证机制,其中包括:开放系统认证(open-system authentication)和WPA认证,当然现在随着时代的发展,无线认证方式中还加入了802.1x认证以及web认证(本文主要是跟各位看官探讨无线卡顿的问题,此处关于1x认证和web认证的方式不做过多赘述)


开放系统认证


开放系统认证是一种不对站点身份进行认证的认证方式。原理上用户站点向接入点发出认证请求,仅仅是一个请求,不含任何用户名、口令等信息,就可以获得认证。开放系统认证的主要功能是让站点互相感知对方的存在,以便进一步建立通信关系来建立关联。


因为是无验证,所以申请者发送authentication报文,认证者收到后,同样发送authentication报文,并在status code字段置0,表示认证成功。


WPA认证


另外一种常见的加密方式就是我们的WPA认证,让我们来看下WPA认证的“四次握手”的过程,如下图:


 


PMK(pairwire master key PMK),由ssid和密码计算生成,长度为256位,密码和ssid不变的情况下,pmk是不会变化的


PTK(pairwise transient key),由5个参数产生,PMK,AP生成的随机数A-nonce,客户端生成的随机数S-nonce,AP的mac地址,客户端的mac地址,每次连接都会动态的更换


MIC(message integrity code)信息完整性检查码,由PMK和PTK混合生成一个加密散列函数,主要是用来防止篡改和验证客户端的主密钥


查看AP与客户端WPA认证的报文交互过程:


 


一次完整的四次握手交互过程:


1. AP向终端传送自己生成的随机数A-nonce,MIC为0


 


2. 客户端收到A-nonce后,加上自己的S-nonce生成PTK,然后生成MIC,客户端将S-nonce和MIC一并传给AP


 


3. AP收到S-nonce后,生成AP的PTK,紧接着生成MIC,对比客户端传过来的MIC,如果不正确,则结束本地验证,如果正确,则传给客户端身份验证通过的报文,并附上MIC


 


4. 确认第3个报文中的消息,并附上MIC:


 


至此,四次握手就完成了,接下来就开始数据的加密传输了。


至此,我们弄懂了终端是如何连接上AP(无线接入点)的,接下来,我们需要探讨无线为什么会发生卡顿?


相关内容我们将在《无线网络卡顿分析中篇》和大家介绍,敬请期待


最新回复 (0)
返回