IEEE802.11发展国际惯例先讲历史

802.11IEEE最初制定的一个无线局域网标准,这也是在无线局域网领域内的第一个国际上被认可的协议。主要用于解决办公室局域网和校园网中,用户与用户终端的无线介入,业务主要限于数据存取,速率最高只能达到2Mbps。由于802.11在速率和传输距离上不能满足人们的需要。因此,IEEE小组又相继推出了802.11a802.11b,许多新标准,几者之间技术上的主要差别在于MAC子层和物理层

由浅入深学习802.11协议(上)

IEEE802.11的工作方式及802.11网络基本元素

802.11定义了两种类型的设备,一种是无线站,通常是用过一台PC机器加上一块无线网络接口构成的,另一个称为无线接入点(Access PointAP),它的作用是提供无线和有线网络之间的桥接。一个无线接入点通常由一个一个无线输出口和一个有线的网络接口构成,桥接软件符合802.1d桥接协议。接入点就像是无线网络的一个无线基站,将多个无线的接入站聚合到有线网络上。无线的终端可以是802.11 PCMCIA卡、PCI接口、ISA接口,或者是在非计算机终端上的嵌入式设备(手机)。Ieee802.11的物理层协议。

SSID

由浅入深学习802.11协议(上)

BSS

由浅入深学习802.11协议(上)

DS

由浅入深学习802.11协议(上)

Ad hoc

由浅入深学习802.11协议(上)

IEEE802.11的物理层层协议

IEEE802.11无线网络标准规定了3中物理层传输介质方式。其中2种无力曾传输介质方式在微波频段,采用扩频传输技术进行数据传输,包括跳频序列扩频传输技术(FHSS)和直接序列扩展传输技术(DSSS)。另一种方式以广播段作为其物理层,也就是利用红外线光波传输数据流。

物理层结构

由浅入深学习802.11协议(上)

IEEE802.11标准规定的无力层协议可以分为一般物理层和物理层汇聚过程、无力媒体依赖两个子层。

物理层管理(Physical Layer Management):物理层管理与MAC层管理相连,为物理层提供管理功能。

物理层汇聚子层(PLCP):媒体访问控制(MAC)子层和物理层汇聚(PLCP)子层通过物理层服务访问点(SAP)利用原语进行通信。MAC发出指示后,PLCP就开始准备需要传输的媒体协议数据但愿(MPDU)。PLCP也从无线媒体向MAC层传递接受帧。PLCPMPDU附加字段,形成一种合成帧,字段中包含物理层发送器和接收器所需的信息。IEEE802.11标准称这个合成帧为PLCP协议数据单元(PPDU)。PPDU的帧结构提供了工作站之间MPDU的异步传输,因此,接收工作站的物理层必须同步每个单独的即将到来的帧。

物理媒体依赖(PMD)层:PLCP下方,PMD支持两个工作站之间通过无线媒体实现物理层实体的发送和接收。为了实现以上功能,PMD需要接面向无线媒体,并对帧传送提供调制和解调。PLCPPMD之间通过原语进行通信,控制发送和接收。

物理层主要功能
1.载波侦听功能
物理层通过命令其物理媒体依赖(PMD)子层检查媒体状态来执行载波侦听操作。

探测信号的到来(Detection of Incoming Signal):工作站的PLCP持续地对媒体进行监听。当媒体忙时,PLCP将读取PLCP前同步码和帧头,并试图同步接收器和数据率。

信道评价(Clear Channel Assessment):信道评价操作用于检测无线媒体忙碌还是空闲。

  • 如果媒体空闲,PLCP将发送一条状态字段表明为空闲的PHY-CCA,INDICATION原语到MAC层,使得MAC层可以考虑决定发送帧;

  • 如果媒体忙碌,PLCP将发送一条状态字段表明为忙碌的PHY-CCA.indication原语到MAC层。从MAC层就可以决定暂不能发送帧。

2.数据发送功能

如果前述的载波侦听出现媒体空闲状态,则物理层汇聚子层(PLCP)在接收到MAC层的PHY-TXSTART.request 原语后便将PMD从常规的检测接收模式转换到传输发送模式。同时,MAC层将与该请求一道告知PLCP要发送数据的字节数0-4095和数据速率。然后,PMD通过无线发送器在20微秒内发射帧的同步码。

发送器以1Mbit/s的速率发送前同步码和适配头,为接收器的收听提供特定的通用数据速率。适配头的发送结束后,发送器将数据速率改到适配头确认的速率。整个发送完成后,PLCPMAC层发送一条PHYTXEND.confirm原语,关闭发送器,并将PMD电路转换到接收模式

3.数据接收功能

如果信道检测评价到媒体处在忙碌状态,同时有合法到即将到来的前同步码,则物理层汇聚(PLCP)子层就开始监视该适配头。PMD检测到的信号能量超过85dBm,它就认为媒体忙碌。如果PLCP子层检测到帧的适配头是无误的它将向MAC发送一条PHY-RXSTART.indication原语,通知一个帧的到来。随同整个原语一起发送的,还有帧适配头的一些信息。

PLCP根据PLCP服务数据单元(PSDU)适配头长度的值,来设置字节计算器。计算器跟踪接收到到帧的字节数目,使PLCP知道帧什么时间结束

PLCP在接收数据的过程中通过PHY-DATA.indication信息向MAC层发送PSDU的字节。收到最后一个字节后,MAC层发送PHY-RXEND.indication原语,声明帧结束。

IEEE802.11MAC层协议

按照无线局域网(WLAN)的协议体系结构层次划分,MAC子层是位于物理(PHY)层和逻辑链路控制(LLC)子层中间的一个层次,其主要目的是在LLC子层的支持下为共享物理媒体提供访问控制以及执行寻址方式和帧产生与帧识别。

IEEE802.11标准中,以CSMA/CA协议作为无线局域网MAC协议的基础,主要用来支持异步业务,并称其为分布式访问控制方式(DCF)。为了使得系统也能够支持具有最大时延要求的一些同步或时限业务,标准中还要求了MAC协议支持用户可选择的中心网控方式(PCF

802.11标准设计独特的MAC。它通过协调功能(Coordination Function)来确定在基本服务集BSS中的移动站在什么时间能发送数据或接收数据802.11MAC包括两个子层

由浅入深学习802.11协议(上)

分布式访问控制方式DCF

分布式访问控制方式(PDF)是IEEE802.11标准规定的物理层兼容的无线局域网中的工作站和访问点(AP)之间共享无线媒体的主要访问控制协议。和IEEE802.3总线式以太网的CSMA/CA MAC协议类似,IEEE802.11标准规定无线局域网的分布式访问控制方式(DCF)使用具有碰撞避免功能的载波侦听多址接入(CSMA/CA)协议。

IEEE802.11标准规定的无线局域网媒体访问控制可以工作在集中式中心网络控制方式(PCF)PCF是在支持异步业务的DCF方式采用CSMA/CA协议)的基础上,依照其提供的访问优先权,有网络中心站(AP)控制(采用Polling协议方式)支持无竞争型同步或时限业务。

MAC层主要功能

1.mac层帧生成与分解

在帧发送前,MAC须将上层提交待发数据分段,然后加入地址、控制及校验信息,形成MAC帧发送缓冲区待发

在收到接收MAC帧之后对其解析,判断帧类型、完整性、地址匹配、校验无误后,提取数据并向上层提交

2.无线媒体访问控制

在帧发送后前,MAC须首先利用一下某方式获取到网络链接:具有碰撞避免功能的载波侦听多址接入(CSMA/CA)媒体访问控制(MAC)方式,IEEE802.11规范称为分布式访问控制方式(DCF)。

基于不同服务优先级别的集中式轮询(Polling)访问控制,IEEE802.11规范称为中心网络控制方式(PCF)。

3.加入网络与认证

工作站的电源打开之后,它在校验和连接到合适的工作站或访问点之前,首先检测有无现成站和访问点(AP)可供加入。工作站通过被动或主动扫描方式完成上述搜索过程。

IEEE802.11标准提供开放系统和共享迷药两种认证服务,用于增强802.11网络的安全性能。

4.提供数据安全和保密

为向帧传输提供和有线网络相近的安全性,iEEE802.11标准定义了可选的有线同等保密(WEP)。WEP生成共用加密密钥,发送端和接收端工作站均可用它加密和改变帧中信息位,以避免信息的泄漏。这个过程也称为对称加密。

MAC帧结构

IEEE802.11协议头

我们在学习IEEE802.11协议头之前还需要了解几个概念:

  • DU(Data Unit)数据单元;信息传输的最小数据集合。

  • MSDU(MAC Service Data Unit):MAC服务数据单元;

  • MPDU(MAC Protocol Data Unit):MAC协议数据单元;

传递过程逐层封装(Encapsulate):数据在传输过程中的封装方式。
下面在来认识一下802.11的数据结构:

由浅入深学习802.11协议(上)

从数据结构可以看出来802.11MAC Header(MAC)包括4个目分,分别是Frame Control(帧控制域)、Duration/ID(持续时间/标示)、Address(地址域)Sequence Control(序列控制域)。

1. Frame Control 帧控制域)

1) Protocol Version (协议版本占2)IEEE802.11协议版本,多数情况为0

2)Type(类型域)和Subtype(子类型域)共同指出帧的类型。其中,Type(2位)规定帧的具体用途,包括三种类型,管理帧取值为0,控制帧取值为1,数据帧取值为2.SubType(4位)为子类型,根据Type的不同对应多个子类型,协议规定不同类型、子类型的帧完成不同功能的操作。

3) ToDS(1)。表明该帧是BSSDS发送的帧。

4) FromDS (1)。表明该帧是DSBSS发送的帧。

To DS、From DS这两个字段的值决定MAC头中的四个地址字段的不同定义,具体如下图所示。

由浅入深学习802.11协议(上)

详细介绍如下:
  • BSSID ( Basic Service Set Identifier) :基本服务集标识符。

  • DA (Destination Address) :目的地址。

  • SA ( Sender Address) :源地址。

  • RA (Receiver Address) :接收端地址。

  • TA ( Transmission Address) :发送端地址。

  • WDS ( Wireless Distribution System) :无线分布式系统。

四个字段的取值如下:
  • 出现在IBSS环境中(可能是 管理帧或者是控制帧类型) ;或者 是STSL ( Station to Station Link)中 两个STA间的通信,这种情况下通信不经过AP

  • 表示Data帧从AP端发向STA端。

  • 表示Data帧从STA端发向AP端。

  • 表示两个AP间的通信,这是典型的WDS ( Wireless Distribution System)环境下AP间的通信,或者表示Mesh环境下MP间的通信;只有此时才会使用到Address4地址段。

5) More Frag (占1位)用于说明长帧被分段的情况,是否有后续数据,当取值为1时表示有后续数据,可能是数据帧或者管理帧类型。

6)Retry(重传域占1位)。是否重传,取值为1表示重传数据,可能是数据帧或管理帧类型,接收端进程使用此位判断帧是否重复。

7)Pwr Mgt (能量管理域占1位)省电模式,取值为1时表示STA处于省电模式,此时由STA向AP发送该值为1的帧(AP不使用该字段),省电模式下STA不接收除唤醒帧之外的帧数据,发送给它的数据帧由AP进行缓存。

8) More Data(更多数据域占1位)。物果是值为1表明至少还有个数据帧要发送给STA。当AP缓存了至少一个MSDU时,会向省电模式的STA发送该位为1的帧,表示有缓存数据需要STA进行接收,接收到此帧的STA会被唤醒并向AP发送PS-Poll帧,取回由AP代为存放的数据;该位也被AP用于有更多的广播、多播帧需要发送的情况。

9) Protected Frame (占1位)可能是数据帧或者管理帧类型,表示MSDU是否被加密;也用于表示PSK身份验证Frame#3帧;数据载荷位为空时,该字段取值为0。

10) Order (序号域占1位) :在非QoS帧的情况下,取值为1表示数据必须严格按照顺序处理,通常情况下该字段为0。

2.Duration/ID (持续时间/标识)
Duration/ID (持续时间/标识),表明该帧和它的确认帧将会占用信道多长时间;对于帧控制域子类型为Power Save-PoII 的帧,该域表示了STA的连接身份( AID, Association Indentification )。
3.Address ( 地址域)
Address(地址域)包括源地址(SA)、目的地址(DA)、传输工作站地址(TA)和接收工作站地址(RA)SA与DA必不可少,后两地址只针对BSS的通信才有用,而目的地址可以为单播地址 (Unicast address)、多 播地址(Multicast ad- dress)、广 播地址(Broadcast address)等。

4.Sequence Control (序列控制域)

Sequence Control (序列控制域) :由代表MSDU (MAC Server Data Unit)或者 MMSDU ( MAC Management Server Data Unit)的12位序列号( Sequence Number )和表示MSDU和MMSDU的每一个片段的编号的4位片段号组成(FragmentNumber)。
5.802.11的其他数据结构
802.11的数据结构还存在有其他部分, 包括Frame Body ( 帧体部分)和FCS (校验 码),其中Frame Body (帧体部分),包含信息根据帧的类型有所不同,主要封装的是上层的数据单元,长度为0~2312个字节,可以推出,802.11帧最大长度为2346个字节。FCS(校验码)包含32位完整性校验码。

针对帧的不同功能,可将802.11中 的MAC帧分为以下三类:

  • 数据帧:用于在竞争期和非竞争期传输数据。

  • 控制帧:用于竞争期间的握手通信和正向确认,为数据帧的发送提供辅助功能。

  • 管理帧:主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等。

数据帧  

数据帧会将上层协议的数据置于帧主体加以传递,会用到哪些位,取决于该数据所属的类型。

1. Data数据帧

Data数据帧的作用在于携带传输数据,它的Data部分便是需要传输的具体数据,至于传输多大的数据,数据使用何种方式进行加密它并不关心。

Data数据帧在实际抓包软件中的数据信息。

由浅入深学习802.11协议(上)

2. Nnll数据帧

NUll数据帧由MAC标头与FCS结尾所组。当工作站进入休眠状态,接入点必须开始为之暂存数据。如果该移动式工作站没有数据要通过分布式系统传输,可以使用Null数据帧。Null数据帧的用法,如下图所示。  

由浅入深学习802.11协议(上)

Null数据帧在实际抓包软件中的数据,如下图所示:

由浅入深学习802.11协议(上)

控制帧

控制帧主要用于协助数据帧的传递,控制帧通常与数据帧搭配使用,可用于管理无线媒介的访问、提供MAC层的可靠性,负责区域的清空、信道的取得以及载波监听的维护等,并于收到数据时予以正面的应答,借此促进工作站间数据传输的可靠性。
控制帧中的Frame Control位,结构示意:

由浅入深学习802.11协议(上)

控制帧中的Frame Control位,字段的详细说明如下:
1)Protocol (协议版本)。协议版本的值为0,因为这是目前绝无仅有的版本。
2)Type(类型)。控制帧的类型识别码为01,所有控制帧该位都为01。
3)Subtype (次类型)。。此位代表发送控制帧的子类型。
4)ToDS、FromDS。控制帧负责处理无线介质的访问,因此只能够由无线工作站产生。传输系统并不会收发控制帧,因此这两个位为0。
5)More Fragments(尚有片段)。控制帧不可能被切割,因此该位为0。
6)Retry (重试)控制帧与管理或数据帧不同,无须在序列中等待重发,因此该位为0。
7)Power Management (电源管理)该位用来指示、完成当前的帧交换过程后,发送端的电源管理状态。
8)More Data (尚有数据)。More Data位只用于管理数据帧,因此在控制帧中该位为0。
9)Protected rrame(文保护帧)。控不会进行加密,因此对控制帧而言, prtected Frame位为0。
10)Order (次序)。控制帧是基于 帧交换程序(atomic frame exchange opera-tion)的构成部件,因此必须依序发送,所以这个位为0。 

Subtype与帧类型的对应,其中Subtype字段使用二进制表示,具体介绍如下:

  • 1010: Power Save (PS) – Poll (省电一轮询)。

  • 1011: RTS (请求发送, 即: RequestToSend,预约信道,帧长20字节)。

  • 1100: CTS (清除发送,即: ClearToSend,同意预约,帧长14字节)。

  • 1101: ACK (确认)。

  • 1110: CF-End (无竞争周期结束)。

  • 1111: CF-End (无竞争周期结束) + CF-ACK (无竞争周期确认)。 

控制帧中常用的四种类型如下:
1)RTS帧。用来取得媒介的控制权,用于传送分段帧,分段由网卡驱动程序中 的RTS threshold阀值确定。
2)CTS帧。用于回复RTS帧,如果没有RTS当然也就没有CTS,它们两个多数是成对出现的。
3)ACK帧。MAC及任何数据的传送(包括一般传送,RTS/CTS交换之前的帧、帧片段)都需要通过ACK帧进行确认。
4)PS-POLL帧。移动式工作站从省电模式苏醒后,会向AP传送一个PS-POLL帧用于获得缓存数据。
RTS请求发送
RTS帧可用于获得传输数据的主动权并告知其他需要传输数据的客户端等待避免信号干扰其中数据传输的大小划分是由网卡驱动程式中的RTS threshold阀值来定义介质访问权只针对单点传播unicast帧使用对于广播broadcast与组播multicast帧不受影响

由浅入深学习802.11协议(上)

RTSMAC标头由四个位构成:
1.Frame Control (帧控制)。FrameControl位并没有任何特殊之处。帧的sub- type (子类型)位设定为1011,代表RTS帧。除此之外,它与其他的控制帧具备相 同位。(在IEEE 802.11协议中规定,最高有效位乃是最后一个位,因此在subtype位中,第7个位代表最高效位)
2.Duration (持续时间)。RTS 帧会试图预定传输介质使用权,供帧交换程序使用,因此RTS帧发送者必须计算RTS帧结束后还需要多少时间。
3.Address 1位。Receiver Address (接收端地址),接收大型帧的工作站的地址。
4.Address 2。Transmitter Address(发送端地址),RTS帧的发送端的地址。下图为使用抓包软件抓取的实际RTS数据包。

由浅入深学习802.11协议(上)

CTS允许发送

CTS帧有两种作用,早先CTS帧仅用于应答RTS帧,如果没有RTS出现,就不会产生CTS,后来CTS帧被802.11g防护机制用来避免干扰较旧的工作站。

由浅入深学习802.11协议(上)

CTS帧的MAC标头由三个位构成:

1)Frame Corrol (帧控制)。帧的subtype(子类型)位被设定为1100,代表CTS帧。
2)Duration(持续时间)用于应答RTS时,CTS帧的发送端会以RTS帧的Duration值作为持续时间的计算基准。会为整个RTS-CTS-frame-ACK交换过程预留介质使用时间。不过,当CTS帧被发送出后,只剩下其他末帧或帧片段及其回应待传。CIS帧发送端会将RTS帧的Duration值成去发送CTS帧及其后短帧间隔所需的时间,然后将计算结果置于CTS的Duaton位。
3)Address1位:Recciver Address(接收端地址)。CTS帧的接收端即为之前RTS帧的发送端,因此MAC会将RTS帧的发送端地址复制到CTS帧的接收端地址。802.11g保护操作所使用的CTS帧会被发送给发出RTS的工作站,而且只用来设定NAV。
下图为使用抓包软件抓取的实际CTS数居包:

由浅入深学习802.11协议(上)

ACK(应答)
ACK (positive acknowledgment)帧是MAC以及任何数据传输都需要一个应答,包括一般传输RTS/CTS交换之前的帧、帧片段,服务质量扩展功能放宽了个别数据帧必须各自得到应答的要求。

由浅入深学习802.11协议(上)

ACK帧的MAC标头由三个位构成:

1.FrameControl(帧控制)。帧的subtype (子类型)位被设定为1101, 代表ACK帧。
2. Duration (持续时间)ACK信号在整个帧交换过程处于什么位置,Duration的值可以有两种设定方式。在完整的数据帧及一段连续帧片段的最后一个片 段中,Duration 会被设定为0。数据发送端 会将Frame Control (帧控制)位中的MoreFragments(尚有片段)位设定为0,表示数据传输已经结束。
如果More Fragments位为0,表示整个传输已经完成,不用再延长对无线信道的控制权,因此会将Duration设定为0。
如果More Fragments位为1,表示还有 数据仍在发送中。此时Duration位 的用法和CTS帧中的Duration位相同。发送ACK以及短帧间隔所需要的时间,将由最近帧片段所记载的Duration中减去。如果不是最后一个ACK帧,Duration的计算方式类似CTSDuration的计算方式。事实上,IEEE 802.11协议中将ACK帧中的Duration设定称为虚拟CTS。
3. Address 1位: Receiver Address (接收端地址)
接收端地址是由所要应答的发送端帧复制而来。技术上而言,它是由所要应答 帧的Address 2位复制而来。应答主要是针对数据帧、管理帧以及PS-Poll帧。
   

本文来源于互联网:由浅入深学习802.11协议(上)