无线局域网与802.11初探
1. 概述
1.1 介绍
无线局域网(Wireless Local Area Networks; WLAN)利用无线技术在空中传输数据、语音和视频信号。目前无线局域网已经深深融入大众的生活当中,例如在家里中使用的路由器,手机开启的热点链接,公交车上的的WIFI覆盖,手机数据连接这些都是无线局域网的使用场景。无线局域网因其快捷,方便等因素广为大家接受。
由于WLAN是基于计算机网络与无线通信技术,在计算机网络结构中,逻辑链路控制(LLC)层及在其之上的应用层对不同的物理层的要求可以相同也可以不同,因此,WLAN标准主要针对物理层和媒质访问控制层(MAC),涉及到所使用的无线频率范围,空中接口通信协议等技术规范与技术标准。
1.2 标准
IEEE 802.11是现今无线局域网通用的标准,它是由电气和电子工程协会(IEEE)所定义的无线网络通信的标准。
IEEE 802.11标准规范了无线局域网物理层PHY和媒体访问控制层MAC的协议,即开放式系统互联参考模型OSI的下面两层。在IEEE 802.11标准中,只定义了一种类型的MAC子层,它可以对应三种不同类型的物理层:跳频扩频FHSS、物理层直接序列扩频DSSS和物理层红外线IR。为了使用无线介质的特点,MAC子层采用了载波侦听多点接入/避免冲撞协议CSMA/CA。
下面是IEEE 802.11系列标准的发展流程:
- 802.11 定义微波和红外线的物理层和MAC子层(2.4GHz, 2Mbit/s, 1997)
- 802.11a 定义了微博物理层及MAC子层(5GHz, 54Mbit/s, 1999)
- 802.11b 物理层补充DSSS(2.4GHz, 11Mbit/s, 1997)
- 802.11b+ 物理层补充PBCC(2,4GHz, 11Mbit/s, 2002)
- 802.11c 关于802.11网络和普通以太网之间的互通协议(2000)
- 802.11d 关于国际间漫游的规范(2000)
- 802.11c 对服务等级QoS的支持(2004)
- 802.11d 关于国际间漫游的规范(2000)
- 802.11e 对等服务等级QoS的支持(2004)
- 802.11f 基站的互联性(2003)
- 802.11g 物理层补充OFDM(2.4GHz, 54Mbits/s, 2003)
- 802.11h 扩展物理层和MAC子层标准(5GHz, 欧洲, 2003)
- 802.11i 安全和鉴权方面的补充(2004)
- 802.11j 扩展物理层和MAC子层标准(5GHz, 日本, 2004)
- 802.11k 基于无线局域网的微波测量规范(2005)
- 802.11m 基于无线局域网的设备维护规范(2006)
- 802.11n 导入MiMO技术(2.4G/5GHz, 100-300Mbit/s, 2007)
1.3 架构
IEEE 802.11主要描述物理层和链路层,下面是规范描述的架构。
图 1 802.11规范架构图
物理层是介质访问控制层MAC与无线介质之间的接口,它传输和接收共享无线介质上的数据帧。
802.11将物理层进一步划分为两个组件:
(1)物理层收敛程序(Physical Layer ConvergenceProcedure,简称PLCP),MAC层和PLCP通过物理层服务访问点(SAP)利用原语进行通讯。MAC层发出指示后,PLCP就开始准备需要传输的介质协议数据单元(MPDUs)。PLCP也从无线介质向MAC层传递引入帧。PLCP为MPDU附加字段,字段中包含物理层发生和接收所需的信息,802.11标准称这个合成帧为PLCP写数据单元(PPDU)。PLCP将MAC协议数据单元映射成适合被PMD传送的格式,从而降低MAC层对PMD层的依赖程度。PPDU的帧结构提供了各个站之间MPDU的异步传输,因此,接收工作站的物理层必须同步每个单独的将到来的帧。
(2)物理介质依赖(Physical Medium Dependent,简称PMD),在PLCP下方,PMD支持两个工作站之间通过无线介质实现物理层实体的发送和接收。为了实现以上功能,PMD需直接面向无线介质(大气空间),并对数据进行调整和解调。PLCP和PMD之间通过原语通信,控制发送和接收功能。
(3)MSDU(MAC层业务数据单元,这是最原始的待发数据信息),经过封装编程MPDU(MAC层协议数据单元),MPDU传到PLCP子层编程PSDU(PLCP子层业务数据单元),PSUD经过封装变成PPDU(PLCP子层协议数据单元)。
1.4 拓扑结构及服务类型
WLAN主要由三种网络拓扑结构:
(1)独立基本服务集(Independent BSS,IBSS)网络(也叫ad-hoc网络)。
(2)基本服务集(Basic Service Set,BSS)网络。
(3)扩展服务集(Extent Service Set,ESS)网络。
图 2 独立基本服务集
图 3 基本服务集
图 4 扩展服务集
其中,ESS中的DS(分布式系统是一个抽象系统,用来连接不同的BSS的通信信道(通过路由服务),这样就可以消除BSS中STA与STA之间直接传输距离受到物理设备的限制。
根据拓扑结构可以得出802.11的两类服务:
站点服务SS(每个STA都要有的服务):认证(Authentication)、解除认证(Deauthentication)、加密(Privacy)、MSDU传递(MSDU delivery);
分布式系统服务DSS(DS特有的服务):关联(Association)、解除关联(Deassociation)、分布(Distribution)、集成(Integration)、重关联(Ressociation)。
2 协议
2.1 802.11帧格式
无线中数据传播的帧格式如下图所示。
图 6 802.11 帧格式
preamble是一个前导标识,叫做随机接入前导码,用于随机接入时识别UE身份,这里用于接收设备识别802.11。
PLCP域中包含一些物理层的协议参数,Preamble及PLCP是物理层的一些细节。
MAC也叫MAC帧头,包含了帧的类型、地址等信息。
User Data也叫帧体,主要封装数据部分,不同帧类型数据部分格式以及内容不同。
CRC是校验域,包含32位循环冗余码。
2.2 MAC帧详解
2.2.1 MAC帧格式
MAC层帧主要包含MAC帧头、帧体以及校验码,下面是MAC帧的帧结构。
图 7 MAC帧结构示意图
2.2.2 MAC帧头详解
1、Frame Control(帧控制域):
- Protocol Version(协议版本):通常为0;
- Type(类型域)和Subtype(子类型域):共同指出帧的类型。
- To DS:表明该帧是BSS向DS发送的帧;
- From DS:表明该帧是DS向BSS发送的帧;
- More Frag:用于说明长帧被分段的情况,是否还有其它的帧;
- Retry(重传域):用于帧的重传,接收STA利用该域消除重传帧;
- Power Manage(能量管理域):1表示STA处于power_save模式;0表示STA处于active模式;
- More Data(更多数据域):1表示至少还有一个数据帧要发送给STA;
- Wep:表示根据WEP(Wired Equivalent Privacy)算法对帧主体进行加密。1表示帧体部分包含被秘钥加密后的数据;0表示没有包含加密后的数据;
- Order(序号域):在长帧分段传送时,1表示接受者应该严格按照顺序处理该帧,否则为0;
2、Duration/ID(持续时间/标识):表明该帧和它的确认帧会占用信道多长时间;对于帧控制域子类型为:Power Save-Poll的帧,该域表示STA的连接身份(AID,Association Indentification)。
3、Address(地址域):源地址(SA)、目的地址(DA)、传输工作站地址(TA)、接收工作站地址(RA),SA与DA必不可少,后两个只对跨BSS的通信有用,而目的地址可以为单播地址、多播地址、广播地址。
4、Sequence Control(序列控制域):由代表的MSDU(MAC Server Data Unit)或者MMSDU(MAC Management Server Data Unit)的12位序列号和表示MSDU和MMSDU的每一个片段的编号的4位片段号组成。主要用于重组帧片段以及丢弃重复帧。
2.2.3 帧类型详解
针对不同的功能,可将802.11中额MAC帧细分为三类分别是:
(1)控制帧:用于竞争器件的握手通信和正向确认、结束非竞争期等;
(2)管理帧:主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等;
(3)数据帧:用于在竞争期和非竞争期传输数据;
帧类型主要根据帧控制域中额Type和Subtype两个字段共同定义,具体定义如下:
表 1 帧类型
TYpe Vale |
Type | Subtype value | Subtype Description |
00 | 管理帧 | 0000 | 关联请求帧 |
00 | 管理帧 | 0001 | 关联响应帧 |
00 | 管理帧 | 0010 | 重新关联请求帧 |
00 | 管理帧 | 0011 | 重新关联响应帧 |
00 | 管理帧 | 0100 | 探测请求帧 |
00 | 管理帧 | 0101 | 探测响应帧 |
00 | 管理帧 | 0110-0111 | 保留 |
00 | 管理帧 | 1000 | 信标帧 |
00 | 管理帧 | 1001 | 流量公告指示信息帧ATM |
00 | 管理帧 | 1010 | 断开关联帧 |
00 | 管理帧 | 1011 | 认证帧 |
00 | 管理帧 | 1100 | 取消认证帧 |
00 | 管理帧 | 1101-1111 | 保留 |
01 | 控制帧 | 0000-1001 | 保留 |
01 | 控制帧 | 1010 | 节能轮询帧PS-POLL |
01 | 控制帧 | 1011 | 请求发送帧RTS |
01 | 控制帧 | 1100 | 结束发送帧 CTS |
01 | 控制帧 | 1101 | 应答帧ACK |
01 | 控制帧 | 1110 | Contention-Free(CF)-End |
01 | 控制帧 | 1111 | CF-End+CF-Ack |
10 | 数据帧 | 0000 | Data |
10 | 数据帧 | 0001 | Data +CF-Ack |
10 | 数据帧 | 0010 | Data +CF-Poll |
10 | 数据帧 | 0011 | Data +CF-Ack +CF-Poll |
10 | 数据帧 | 0100 | 空白功能(无数据) |
10 | 数据帧 | 0101 | CF-Ack(无数据) |
10 | 数据帧 | 0110 | CF-Poll(无数据) |
10 | 数据帧 | 0111 | CF-Ack +CF-Poll (无数据) |
10 | 数据帧 | 1000-1111 | 保留 |
11 | 保留 | 0000-1111 | 保留 |
2.2.4 数据帧格式
数据帧的帧格式与通用MAC帧格式相同,但其格式与子类型无关。其中地址字段的内容定义见下表。不可用(N/A)字段将被忽略。
|
2.2.5 管理帧格式
管理帧的地址字段不随帧的子类型的改变而改变,且帧格式也与帧的子类型无关,如下图所示。
下面是对管理帧中帧主体所包含的信息内容。
(1) 信标帧格式。如表所示为信标管理帧的帧主体所包含的所有信息。
|
(2) ATIM帧格式。该子类型的帧主体为空。
(3) 解除关联帧格式。子类型解除关联管理帧的帧主体包含原因代码信息。
(4) 关联请求帧格式。子类型关联请求管理帧的帧主体包含如下表所示信息。
|
(5) 关联响应帧格式。子类型关联响应帧的帧主体包括如下信息。
|
(6) 重新关联请求帧格式。子类型重新关联请求管理帧的帧主体包含下表所示信息。
|
(7) 重新关联响应帧格式。子类型重新关联响应管理帧的帧主体包含下表所示信息。
|
(8) 试探请求帧格式。子类型试探请求管理帧的帧主体包含下表所示信息。
|
(9) 试探响应帧格式。子类型试探响应管理帧的帧主体包含下表所示信息。
|
(10) 认证帧格式。
|
|
参考资料:
(1)百度百科
(2)无线局域网入侵检测技术研究论文(王利平)