转自:http://my.oschina.net/u/994235/blog/220586
1. 802.11管理功能–用户接入过程
STA (工作站)启动初始化、开始正式使用、AP 传送数据幀之前,要经过三个阶段才能接入:
(1) 扫描(SCAN)
(2) 认证(Authentication)
(3) 关联(Association)
1.1 802.11管理–扫描(SCAN)
1) 若无线站点 STA 设成 Ad-hoc (无AP)模式:
STA先寻找是否已有 IBSS(与STA所属相同的SSID)存在,如有,则参加(join);若无, 则会自己创建一个IBSS,等其他站来 join。
2) 若无线站点 STA 设成 Infrastructure (有AP)模式:
--主动扫描方式 (特点:能迅速找到)
•依次在每个信道上发送Probe request报文,从Probe Response中获取BSS的基本信息, Probe Response包含的信息和Beacon帧类似
-- 被动扫描方式 (特点:找到时间较长,但STA节电)
• 通过侦听AP定期发送的Beacon帧来发现网络, Beacon帧中包含该AP所属的BSS的基本信息以及AP的基本能力级,包括: BSSID(AP的MAC地址)、 SSID、支持的速率、支持的认证方式,加密算法、 Beacons帧发送间隔,使用的信道等
• 当未发现包含期望的SSID的BSS时,STA可以工作于IBSS状态
1.2 802.11管理功能–认证(Authentication)
802.11支持两种基本的认证方式:
• Open-system Authentication
1) 等同于不需要认证,没有任何安全防护能力
2) 通过其他方式来保证用户接入网络的安全性,例如Address filter、用户报文中的SSID
• Shared-Key Authentication
1) 采用WEP加密算法
2) Attacker可以通过监听AP发送的明文Challenge text和STA回复的密文Challenge text计算出WEP KEY
另外,STA可以通过Deauthentication来终结认证关系。
1.3 802.11管理功能–关联(Association)
1) Association
• STA通过Association和一个AP建立关联,后续的数据报文的收发只能和建立Association关系的AP进行
2) Reassociation
• STA在从一个老的AP移动到新AP时通过Reassociation和新AP建立关联
• Reassociation前必须经历Authentication过程
3) Deassociation
• STA通过Deassociation和AP解除关联关系
2. 802.11相关协议
3. 802.11帧格式
3.1 802.11 MAC Header(MAC头)
• Frame Control(帧控制域)
• Duration/ID(持续时间/标识)
• Address(地址域)
• Sequence Control(序列控制域)
3.1.1 Frame Control(帧控制域)
• Protocol Version(协议版本):通常为0;
• Type(类型域)和Subtype(子类型域):共同指出帧的类型;
• To DS:表明该帧是BSS向DS发送的帧;
• From DS:表明该帧是DS向BSS发送的帧;
• More Frag:用于说明长帧被分段的情况,是否还有其它的帧;
• Retry(重传域):用于帧的重传,接收STA利用该域消除重传帧;
• Pwr Mgt(能量管理域):1:STA处于power_save模式;0:处于active模式;
• More Data(更多数据域):1:至少还有一个数据帧要发送给STA ;
• Protected Frame: 1:帧体部分包含被密钥套处理过的数据;否则:0;
• Order(序号域):1:长帧分段传送采用严格编号方式;否则:0。
3.1.2 Duration/ID(持续时间/标识)
表明该帧和它的确认帧将会占用信道多长时间;对于帧控制域子类型为:Power Save-Poll的帧,该域表示了STA的连接身份(AID, Association Indentification)。
3.1.3 Address(地址域)
Address(地址域):源地址(SA)、目的地址(DA)、传输工作站地址(TA)、接收工作站地址(RA),SA与DA必不可少,后两个只对跨 BSS的通信有用,而目的地址可以为单播地址(Unicast address)、多播地址(Multicast address)、广播地址(Broadcast address)。
3.1.4 Sequence Control(序列控制域)
Sequence Control(序列控制域):由代表MSDU(MAC Server Data Unit)或者MMSDU(MAC Management Server Data Unit)的12位序列号(Sequence Number)和表示MSDU和MMSDU的每一个片段的编号的4位片段号组成(Fragment Number)。
3.2 Frame Body(帧体部分)
包含信息根据帧的类型有所不同,主要封装的是上层的数据单元,长度为0~2312个字节,可以推出,802.11帧最大长度为:2346个字节;
3.3 FCS(校验域)
包含32位循环冗余码。
3.4 地址格式
1) 方案一:
A和B 在同一个IBSS,A->B (Ad hoc无线自组网中的数据帧的地址格式)。
2) 方案二:
从AP发出的无线数据帧中的地址格式。
3) 方案三:
发到AP的无线数据帧中的地址格式。
4) 方案四:
通过无线分布系统传输的无线数据帧中的地址格式。
4. WLAN拓扑结构
WLAN有以下三种网络拓扑结构:
1) 独立基本服务集(Independent BSS, IBSS)网络(也叫ad-hoc网络);
2) 基本服务集(Basic Service Set, BSS)网络;
3) 扩展服务集(Extent Service Set, ESS)网络。
其各自的特点如下所示:
4.1 IBSS-无AP
也叫Ad Hoc 网(无线自组网):IBSS (Independent BSS,独立基本服务集),无AP,站点间直接通信。
4.2 BSS-有AP
又名Infrastructured网(基础设施网):有AP(Access Point, 接入点),无线站点通信首先要经过AP。
4.3 ESS-有AP和DS
ESS:属 Infrastructured 网 ( DS:分配系统,AP:接入点, SSID:ESS扩展服务集标识符。一个移动节点使用某 ESS 的 SSID 加入到该扩展服务集中,一旦加入ESS,移动节点便可实现从该ESS的一个BSS到另一个BSS的漫游)
5. 802.11帧类型
针对帧的不同功能,可将802.11中的MAC帧细分为以下3类:
• 数据帧:用于在竞争期和非竞争期传输数据;
• 控制帧:用于竞争期间的握手通信和正向确认(RTS信道预约、CTS预约成功、ACK等)、结束非竞争期等,为数据帧的发送提供辅助功能;
• 管理帧:主要用于STA与AP之间协商、关系的控制,如关联、认证、同步等。
Frame Control(帧控制域)中的Type(类型域)和Subtype(子类型域)共同指出帧的类型,当Type的B3B2位为00时,该帧为管理帧;为 01时,该帧为控制帧;为10时,该帧为数据帧。而Subtype进一步判断帧类型,如管理帧里头细分为关联和认证帧
5.1 管理帧 (Management Frame)
Type | SubType | FrameType |
00 | 0000 | Association request (连接请求) |
00 | 0001 | Association response (连接响应) |
00 | 0010 | Reassociation request(重连接请求) |
00 | 0011 | Reassociation response(重连接联响应) |
00 | 0100 | Probe request(探测请求) |
00 | 0101 | Probe response(探测响应) |
00 | 1000 | Beacon(信标,被动扫描时AP 发出,notify) |
00 | 1001 | ATIM(通知传输指示消息) |
00 | 1010 | Disassociation(解除连接,notify) |
00 | 1011 | Authentication(身份验证) |
00 | 1100 | Deauthentication(解除认证,notify) |
00 | 1101~1111 | Reserved(保留,未使用) |
ATIM:Announcement Traffic Indication Message,ATIM仅在ATIM窗口期间传送,ATIM没有负载。
5.2 控制帧 (Control Frame)
Type | Subtype | Frametype |
01 | 1010 | Power Save(PS)- Poll(省电-轮询) |
01 | 1011 | RTS(请求发送,即: Request To Send ,预约信道,帧长20字节) |
01 | 1100 | CTS(清除发送,即:Clear To Send ,同意预约,帧长14字节) |
01 | 1101 | ACK(确认) |
01 | 1110 | CF-End(无竞争周期结束) |
01 | 1111 | CF-End(无竞争周期结束)+CF-ACK(无竞争周期确认) |
RTS和CTS用于信道预约,CF-End+CF_ACK和ACK用于确认正确接收到帧。
1) ACK帧
5.3 数据帧 (Data Frame)
Type | Subtype | Frametype |
10 | 0000 | Data(数据) |
10 | 0001 | Data+CF-ACK |
10 | 0010 | Data+CF-Poll |
10 | 0011 | Data+CF-ACK+CF-Poll |
10 | 0100 | Null data(无数据:未传送数据) |
10 | 0101 | CF-ACK(未传送数据) |
10 | 0110 | CF-Poll(未传送数据) |
10 | 0111 | Data+CF-ACK+CF-Poll |
10 | 1000 | Qos Data |
10 | 1001 | Qos Data + CF-ACK |
10 | 1010 | Qos Data + CF-Poll |
10 | 1011 | Qos Data + CF-ACK+ CF-Poll |
10 | 1100 | QoS Null(未传送数据) |
10 | 1101 | QoS CF-ACK(未传送数据) |
10 | 1110 | QoS CF-Poll(未传送数据) |
10 | 1111 | QoS CF-ACK+ CF-Poll(未传送数据) |