这个机制支持决定有效的BSS的特征。
STA or AP请求启用对STA以后可以选择加入的潜在的BSS的调查。
基元是被STA的SME生成去决定是否有其它的BSS可以加入。
在进行扫描之前,需要确认一些参数,这些参数有些事默认设置的,有些是需要人为配置,这些参数是:
BSSType, BSSID, SSID, ScanType, ChannelList, ProbeDelay, MinChannelTime and MaxChannelTime.
盒子是工作在主动扫描还是被动扫描模式是由ScanMode parameter of the
MLME-SCAN.request primitive这个参数决定的。SSID参数指定要扫描的一个或者多个SSID。
被动扫描
如果ScanType参量是被动扫描,STA应该在每个扫描信道上侦听,但是在每个信道上的侦听最长持续时间不应该超过在MaxChannelTime变量中定义的值。通过发现beacon报文和probe response报文
主动扫描
在扫描这个channel开始的间隙发送广播probe request,然后检测请求的channel,然后等待probe response, beacon和measurement pilot power levels (RCPI) 并且记录下里
ps:
The Measurement Pilot frame provides a subset of the information provided in a
Beacon frame, is smaller than a Beacon, and is transmitted more often than a
Beacon. The purpose of the Measurement Pilot frame is to assist a STA with
scanning.
每个被扫描的信道执行的过程:
a)Wait until the ProbeDelay time has expired or a PHYRxStart.indication primitive has been received.
b) Perform the Basic Access procedure as defined in 9.3.4.2.
c)发送一个probe request,目的地之是广播地址,当有需要扫描的SSID列表时(也就是When the SSID List is present in the MLME-SCAN.request primitive),发送一个或者多个probe请求,每个包含一个在ssid列表中指定的ssid和从MLME-SCAN.request primitive获取的BSSID SET to 0并且开始计时(ProbeTimer)
d)如果在ProbeTimer到达MinChannelTime时,没有信道被扫描到(即没有收到response,PHY-CCA.indication(busy)primitive没有被检测到),NAV被置为0,开始扫描下一个信道,或者这个信道有收到response,那么当ProbeTimer达到MaxChannelTime,开始处理所有该信道收到的probe response NAV被置为0并且开始扫描下一个信道,如图所示:
e).当所有信道被扫描完,MLME将会执行MLME-SCAN.confirm primitive处理BSSDescriptionSet中包含的所有收集的scan信息
只有AP和IBSS或者MBSS中的station才能回复probe请求。
在request element中被请求的element id应该被包含在probe response中如果正在回复的sta支持这些element如果是requested element是不合法格式。station将会忽略这个element或者后面所有的element的请求id。在probe response 帧中,station应该以requested element中相同的顺序返回requested elements
主动扫描在有些频段和监管部门是不被允许的。当station的mac收到一个主动扫描请求的时候应该首先去检查监管部门的信息然后决定是执行扫描还是返回不支持如果主动扫描是违法的事情。