本文参考了一下两篇文章:
https://blog.csdn.net/tushanpeipei/article/details/111157151
https://forum.huawei.com/enterprise/zh/thread-232281.html
无线终端接入过程
扫描
STA搜索无线网络的过程就叫做扫描,扫描分为两类,主动扫描和被动扫描。
主动扫描
STA会主动在其所支持的信道上依次发送探测信号,用于探测周围存在的无线网络,STA发送的探测信号成为探测请求帧。探测请求帧又可以分为两类,一类是未指定任何SSID,一类是指定了SSID的。
未指定SSID扫描
探测请求帧里面如果没有指定SSID,就意味着这个探测请求想要获取到周围所有的能够获取到的无线网络信号。如果AP的无线网络中配置了Beacon帧中隐藏SSID的功能,此时AP是不会回应STA的广播型探测请探测求帧,STA也就无法通过这种方式获取到SSID。
指定SSID扫描
探测请求帧中指定了SSID,这就表示STA只想找到特定的SSID,不需要除指定SSID之外的其他无线网络。AP收到了请求帧后,只有发现请求帧中的SSID和自己的SSID是相同的情况下才会回应STA。
被动扫描
被动扫描情况下,STA是不会主动发送探测请求的报文,STA要做的是被动接收AP定期发送的Beacon帧。AP的Beacon帧中,会包含有AP和SSID和支持速率等信息,AP会定期向外广播发送Beacon帧。STA就是通过在其支持的每个信道上侦听Beacon帧,来获知周围存在无线网络。如果无线网络中配置了Beacon帧中隐藏SSID的功能,此时AP发送的Beacon帧中携带的SSID是空串,这样STA是无法从Beacon帧中获取到SSID信息的。
STA是通过主动扫描还是被动来搜索无线信号呢?这完全是由STA的支持情况来决定的。手机或者电脑的无线网卡,一般来说这两种扫描当打都会支持。无论是主动扫描还是被动扫描探测到的无线网络都会显示在手机或者电脑的网络链接中,供使用者选择接入。而一般VoIP语言终端通常会使用被动扫描方式,其目的是节省电量。
当手机扫描到无线网络信号之后,就可以选择接入哪个网络,这时STA就需要进入链路认证阶段。
链路认证
STA和AP之间是通过无线链路进行链接,建立这个链路的过程中,需要STA通过无线链路的认证,只有通过认证之后才能进行STA和AP之间的无线关联。但是此时仍然不能判断STA是否有接入无线网络的权限,需要根据后续STA是否需要进行接入认证、是否通过接入认证才能判断。