WIFI协议及其物理帧结构介绍
1 目的
本文档对WIFI协议介绍、WIFI信道分配、WIFI扩展信道分配、WIFI帧结构进行简要介绍。
2 WIFI协议介绍
Ethenet(有线网)和Wifi(无线网)采用的协议都属于IEEE 802协议集。其中,Ethenet以802.3协议做为其网络层以下的协议;Wifi以802.11做为其网络层以下的协议。无论是有线网络,还是无线网络,其网络层以上的部分,基本一样。
3 WIFI信道分配
信道通俗来说就是频率范围,它决定了无线AP是在哪个频率范围内进行通信的。WIFI可以分别工作在2.4G、5.2G、5.8G频段。
1) 2.4G 频段
2.4G 频段的工作频率为2.4-2.4835GHz,频带宽度83MHz。在2.4 GHz范围内指定了14个信道,每个信道的带宽是22MHz。但是,实际使用中,有效的带宽是20MHz,其中有2MHz是隔离频带,起保护作用。2.4G频段范围内的信道,除了信道14与之前信道间隔是12 MHz外,其它信道之间的间隔为5 MHz。中国采用欧洲/ETSI标准,使用1-13信道。
在Wi-Fi中,相近无线路由器应选择互不重叠的信道工作,如(1、6、11),(1、7、13)2、7、12;3、8、13等;
2) 5.2G 频段
5.2G频段的工作频率为5.150GHz-5.250GHz,其中包含的信道编号为36-64,每个信道带宽为22MHz,有效带宽为20MHz,每个信道间隔5MHz。5.2G频段中不重叠的信道有8个,分别为36、40、44、48、52、56、60、64。
由于国家使用雷达环境中会与52、56、60、64信道冲突,因此常规模式下建议避开这些雷达信道,以免出现无线终端接入问题。因此常用36、40、44、48这四个信道。
3) 5.8G 频段
5.8G频段的工作频率为5.725GHz-5.845GHz,其中包含的信道编号为149-165,每个信道带宽为22MHz,有效带宽为20MHz,每个信道间隔5MHz。5.2G频段中不重叠的信道有5个,分别为149、153、157、161、165。
考虑到相邻的两个无线AP之间有信号重叠区域,为保证这部分区域所使用的信号信道不能互相覆盖,具体地说信号互相覆盖的无线AP必须使用不同的信道,否则很容易造成各个无线AP之间的信号相互产生干扰,从而导致无线网络的整体性能下降。因此常用的无线路由器可以自动跳转信道,信道设置为自动模式情况下,可以根据附近的信道进行自动调整信道保证上网不冲突,也可以直接选择固定的一个信道。
4 WIFI扩展信道
802.11n之前的默认频宽是20M,在802.11n协议之后,提出了信道绑定的功能,即将两个相邻的信道绑定起来一起使用。802.11n协议可以通过绑定功能将频宽提升到40M,802.11ac和802.11ax则将频宽进一步提升到80M、160M,频宽的提升带来的是速率成倍的增加,吞吐量也成倍增加。
40M频宽的信道是由两个20M频宽的信道绑定而来,其中包含了2个信道,为了区分它们,产生了主信道(primary channel)、辅信道(secondary channel)的概念。
1) 信道绑定功能出现之前,所有的帧(管理帧、控制帧、数据帧)都是在同一个信道上进行发送,信道绑定之后,管理帧、控制帧大多情况下都只在主信道上发送,只有数据帧才使用辅信道;
2) 信道绑定具有方向性,它可以向上绑定,也可以向下绑定,但需要注意的是:802.11n协议提供自主选择绑定方向,但11ac之后就直接默认了绑定方向,详情参考协议文档;
3) 虽然绝大多情况下,管理帧、控制帧大多情况下都只在主信道上发送,但也有例外,例外的两种情况称为:Non-HT Duplicate Frame、HT Duplicate Frame;
u Non-HT Duplicate Frame
Non-HT Duplicate Frame不是像数据帧、管理帧这种分类的帧,而是从操作属性上分类的帧。Non-HT Duplicate Frame有两个属性分别为:
1) Non-HT:帧发送采用非HT方式,即802.11a/g方式,前导码只包含L-STF、L-LTF、L-SIG,而不包含HT-STF、HT-LTF、HT-SIG和VHT-STF、VHT-LTF、VHT-SIG,这种方式可以兼容传统的设备;
2) Duplicate:这个帧被复制多次,这些复制的帧被同时发送到多个信道,如40M频宽需要复制1次,80M、160M频宽则分别需要复制3、7次;
u HT Duplicate Frame
HT Duplicate在802.11协议文档中被称为MCS 32。HT Duplicate Frame有两个属性:
1) HT:采用HT方式发送;
2) Duplicate:将待发送的帧复制多分,在每个信道上同时发送;
802.11ac引入了80MHz的频宽(4个信道进行绑定),如果想要使用80M的频宽,参与绑定的4个信道必须同时是空闲的,如果有一个信道忙碌,则无法使用80M进行发送数据,为了减缓这种情况,802.11ac提出了动态频宽的概念,即80M频宽中有的频宽处于忙碌状态,则可以降低到40M或者20M进行数据发送,前提是需要知道哪个信道是忙碌的,哪个信道是空闲的;
正常情况下,控制报文只在主信道上发送,这使得辅信道只能通过物理载波监听,这在发送大包时大大增加了碰撞的概率,解决方案是:将RTS/CTS进行复制,同时将这些RTS/CTS发送到不同的信道上,这样做也算是一箭双雕:既可以使用RTS进行带宽评估(如果信道空闲,则对端会回复CTS),也可以实现虚拟载波监听;
5 WIFI帧结构
IEEE802.11系列标准定义了WLAN无线网络数据帧的帧结构,和基本的物理层、MAC层通信标准。与802.3定义的以太网数据帧格式及通信方式不同,802.11定义的WLAN无线局域网由于通信介质和通信质量的问题,不能直接采用802.3的通信方式。在WLAN中,数据链路层面上的通信模式要比802.3以太网中的通信要复杂的多,因此802.11的帧格式也要相对复杂。
802.11无线帧最大长度为2346个字节,基本结构如下:
802.11帧中各个字段含义如下:
l Frame Control: 帧控制字段,含有许多标识位,表示本帧的类型等信息。
l Duration ID: 本字段一共有16bit,根据第14bit和15bit的取值,本字段有以下三种类型的含义:
(1)当第15bit被设置为0时,该字段表示该数据帧所传输要使用的时间,单位为微秒。(表明该帧和它的确认帧将会占用信道多长时间,Duration 值用于网络分配向量(NAV)计算)
(2)当第15bit被设置为1,第14bit也为0时,该字段用于让没有收到Beacon新标帧(管理帧的一种)公告免竞争时间。
(3)当第15bit被设置为1,第14bit为1时,该字段主要用于STA告知AP其关闭天线,将要处于休眠状态,并委托AP暂时存储发往该STA的数据帧。此时该字段为一种标识符,以便在STA接触休眠后从AP中获得为其暂存的帧。
l Address: 802.11与802.3以太网传输机制不同,802.11无线局域网数据帧一共可以有4个MAC地址,这些地址根据帧的不同而又不同的含义,但是基本上第一个地址表示接收端MAC地址,第二个地址表示发送端MAC地址,第三个地址表示过滤地址。
l Seq-ctl: 顺序控制位,该字段用于数据帧分片时重组数据帧片段以及丢弃重复帧。
l Frame Body: 帧所包含的数据包。
l FCS 帧校验和:主要用于检查帧的完整性。
Frame Control字段
802.11将帧的类型分为3种,分别为:管理帧、控制帧、数据帧,这三种类型的帧相互搭配使用,共同完成802.11无线网络的接入、数据传输、退出等功能。其帧类型主要在Frame Control字段中进行说明,802.11帧中Frame Control字段格式如下:
上述字段含义如下:
1) Protocol 表示802.11协议版本,目前802.11数据帧 只有一个版本,该字段为0。
2) Type 表示802.11帧的类型,Type=00表示本帧为管理帧,Type=01表示本帧为控制帧,Type=10表示本帧为数据帧。
数据帧:负责在工作站之间传递数据,可能会因为所处的网络环境不同而有所差异;
控制帧:通常与数据帧配合使用,负责区域的清空、信道获取以及载波监听的维护,并在收到数据帧后予以正面应答,借此以促进工作站之间数据传输的可靠性;
管理帧:负责监督,主要用来加入或退出无线网络,以及处理基站之间连接的转移事宜。
一般来说控制帧、管理帧都是不需要加密传输的,而数据帧则需要加密后再进行传输,另外一些特殊用途的NULL数据帧也是不加密的,比如power save status的帧。
3) SubType 具体到某一类型的802.11帧,更加详细的表明其类型。
4) To DS 表示该帧是否向无线工作站STA发送的帧。(表明该帧是否是BSS向DS发送的帧 )
5) From DS 表示该帧是否向AP上行网络发送的帧。
6) More Fragment 表示该帧是否有更多的分片。
7) Retry 表示该帧是否需要重传。
8) Power Management 如果此bit为1,则表示STA在发送完本帧后,将关闭天线处于休眠状态。(AP不允许关闭天线休眠,只有STA可以,因此AP发送的数据帧该字段恒为0)
9) More Data 表示在该帧传送完成后,将会有更多的数据,此bit只用于管理数据帧,在控制帧中此bit恒为0。
10) Protected 如果该bit为1,表示该帧受到链路层安全协议的保护。
11) Order 如果字段为1,表示帧和帧片段将会严格按照次序传送,但是这样会对发送与接收端带来额外的开销。
802.11帧中Address字段含义根据帧的不同而不同,具体如下表所示:
上述四种情况如下图所示:
IBSS表示该数据帧从STA发往AP上行以太网:
TO AP表示该数据帧从STA发往AP:
From AP表示该数据帧从AP发出,发往STA:
WDS表示该数据帧用于无线网桥键发送数据:
6 WIFI扫描方式
WIFI扫描方式分为主动扫描和被动扫描两种,主动扫描是指STA主动去探测搜索无线网络;被动扫描则是指STA只会被动的接收AP发送的无线信号。下面分别对两种扫描方式进行简要介绍。
6.1主动扫描
主动扫描情况下,STA会主动在其所支持的信道上依次发送探测信号,用于探测周围存在的无线网络,STA发送的探测信号称为探测请求帧(Probe Request)。探测请求帧又可以分为两类,一类是未指定任何SSID,一类是指定了SSID的。(注意:Probe Request帧发送方式是广播)
1) 探测请求帧不指定SSID
探测请求帧里面如果没有指定SSID,就是意味着这个探测请求想要获取到周围所有能够获取到的无线网络信号。所有收到这个广播探测请求帧的AP都会回应STA,并表明自己的SSID是什么,这样STA就能够搜索到周围的所有无线网络了。(注意:如果AP的无线网络中配置了Beacon帧中隐藏SSID的功能,此时AP是不会回应STA的广播型探测请求帧的,STA也就无法通过这种方式获取到SSID信息。)
2) 探测请求帧指定SSID
探测请求帧中指定了SSID,这就表示STA只想找到特定的SSID,不需要除指定SSID之外的其它无线网络。AP收到了请求帧后,只有发现请求帧中的SSID和自己的SSID是相同的情况下,才会回应STA。
6.2被动扫描
被动扫描情况下,STA是不会主动发送探测请求报文的,STA只是被动的接收AP定期发送的信标帧(Beacon帧)。(注意:Beacon帧是AP周期性发送的)
AP的Beacon帧中,会包含有AP的SSID和支持速率等信息,AP会定期的向外广播发送Beacon帧。例如AP发送Beacon帧的默认周期为100ms,即AP每100ms都会广播发送一次Beacon帧。STA通过在其支持的每个信道上侦听Beacon帧,来获知周围存在的无线网络。(注意如果无线网络中配置了Beacon帧中隐藏SSID的功能,此时AP发送的Beacon帧中携带的SSID是空字符串,这样STA是无法从Beacon帧中获取到SSID信息的。即,STA要通过主动扫描来获取网络信息)
手机或电脑的无线网卡,一般来说这两种扫描方式都会支持;(例如,宿舍某位同学的WiFi信号被其隐藏,你要使用网络,那么你会先向他询问SSID,然后进行主动扫描并连接),一般VoIP语音终端通常会使用被动扫描方式,其目的是可以节省电量。
7 WIFI子载波分配
在Wi-Fi 6之前,WIFI数据传输采用的是OFDM技术,用户是通过不同时间片段区分出来的。每一个时间片段,一个用户完整占据所有的子载波,并且发送一个完整的数据包。其示意图如下图所示。
Wi-Fi 6中引入了一种更高效的数据传输模式OFDMA(因为Wi-Fi 6支持上下行多用户模式,因此也可称为MU-OFDMA)。它通过将子载波分配给不同用户并在OFDM系统中添加多址的方法来实现多用户复用信道资源。802.11ax标准将最小的子信道称为——资源单位(Resource Unit,简称 RU),每个RU当中至少包含26个子载波,用户是根据RU区分出来的。我们首先将整个信道的资源分成一个个小的固定大小的时频资源块RU。在该模式下,用户的数据是承载在每一个RU上的,故从总的时频资源上来看,每一个时间片上,有可能有多个用户同时发送。
Wi-Fi 6中最小RU尺寸为2MHz,最小子载波带宽是78.125KHz,因此最小RU类型为26子载波RU。以此类推,还有52子载波RU,106子载波RU,242子载波RU,484子载波RU和996子载波RU,下表显示了不同信道带宽下的最大RU数。RU数量越多,发送小包报文时多用户处理效率越高,吞吐量也越高。