802.11是国际电工电子工程学会(IEEE)为无线局域网络制定的标准。目前在802.11的基础上开发出了802.11a、802.11b、802.11g、802.11n、802.11ac。并且为了保证802.11更加安全的工作,开发出了802.1x、802.11i等协议
使用802.11协议的设备连接到无线网络需要三步
扫描(获得网络信息)
认证(确认身份)
连接(确定连接、交换数据)
802.11的帧格式类似于以太网,但是更加复杂。并且为了解决无线网络的缺陷,需要添加额外的功能。所有802.11的帧分为三类:
管理帧
控制帧
数据帧
其中的管理帧最为复杂
802.11的帧格式十分复杂,但是大体上遵循一种格式
1、frame control 位
Protocol位:协议版本有连个bit构成,用以显示该帧所使用的MAC版本:0
type与subtype位:类型与次类型位用来指定所使用的帧类型
TO DS与from DSbit:这两个bit用来指示帧的目的地是否为传输系统
Morefragments bit:这个功能类似与IP的更多片位。如果上层的封包经过MAC分段的处理,最后一个分段除外,其他片段均将此位置1。
Retrybit:重传帧位。任何重传的帧会将此bit置位1,以协助接收端剔除重复的帧。
Powermanagement bit:802.11网卡为了提高电池的使用时间,通常可以关闭网卡以节省电力。此位用来指定传送端在完成目前的基本帧交换之后是否进入省电模式,1代表工作站即将进入省电模式,而0则代表工作站一直保持清醒状态。基站发出去的帧该位必为0。
Moredata bit:为服务处于省电模式的工作站,基站会将这些由“传输系统”接收而来的帧加以暂存。基站如果设定此位,代表至少有一个帧待传送给休眠的工作站。
Protectedframe bit:之前该位为WEP bit。如果帧受到链路层安全协议的保护,该位为1.
Orderbit:帧和帧片段可以按序传送,不过发送端与接收端的MAC必须付出额外的代价。一旦进行“严格依序”传送,该位为1。
2、duration/ID位
有三种可能形式
1、 设定NAV:当第15bit被设定为0时,duration/ID位会用来设定NAV,数值代表目前所进行的传输预计使用介质多少微秒。
2、 免竞争期间所传送的帧:14bit为0,15bit为1.其他位为0。因此duration/ID位为32768,这个值被解读为NAV。它让没有收到Beacon信标帧的工作站,得以公告免竞争期间,以便将NAV更新为适当的数值,避免干扰到免竞争传输。
3、 PS-poll帧(省电-轮询):14bit为1,15bit为1。移动工作站可以关闭天线以达到省电的目的。休眠的工作站必须定期醒来。确保不至于丢失任何帧,从休眠状态醒来的工作站和必须发送一个PS-poll帧,以便从基站取得以前暂存的帧。此外,醒来的工作站会在PS-poll帧中加入连接识别码(association ID,简称AID),以显示其所隶属的BSS,AID值介于1-2007之间。
3、address位
一个802.11帧最多可以包含四个地址位。这些地址为经过编号,因为随着帧类型的不同,这些位的作用也有所差异。
基本上,address代表接收端,address2代表传送端,address3代表被接收端拿过来的过滤地址。
在基础网络中,第三个地址位会被接收端用来判定该帧是否属于其所连接网络。
注意:802.11规定工作站应该忽略那些不属于相同BSSID的帧,但大多数产品并未正确实现BSSID过滤功能,还是会将收到的所有帧传送给上层协议。
802.11所使用的定位模式,乃是依循其他IEEE802网络所使用的格式,包括以太网。地址位为48bit。如果传送给实际介质的第一个bit为0,代表是单一工作站(单播地址)。1代表组播地址。如果全为1代表广播。
目的地址:代表最后的接收端,是负责将帧交付上层协议处理的工作站
源地址:代表传输的来源。
接收端地址:代表负责处理该帧的无线工作站。
如果是无线工作站,接收端地址即为目的地址。
如果帧的目的地址是与基站连接的以太网节点,接收端即为基站的无线界面,目的地址可能是连接到以太网的一台路由器。
传送端地址:代表将帧传送至无线介质的无线界面。传送端地址通常只用于无线桥接
4、basicservice set ID(BSSID)
在基础网络里,BSSID(基本服务集标识)是基站无线界面所使用的MAC地址。而对等(adhoc)网络则会产生一个随机的BSSID,并将universal/localbit设定为1,以防止与其他官方指定的MAC地址产生冲突。
要使用多少地址位,取决于帧类型。大部分的数据帧会使用三个位:来源,目的和BSSID。数据帧中,地址位的编号与排列方式取决于帧的传送路径。大部分的传输只会用到三个地址。这解释了为什么帧格式中,四个地址位其中三个是相邻的。
5、顺序控制位
此位的长度为16bit,用来重组帧片段以及丢弃重复帧。它由四个bit的frament number(片段编号)以及12bit的sequence number位组成。
当上层帧交付MAC传送,会被赋予一个sequencenumber(顺序编号)。此位的作用,相当于已传帧计数器取4096的模
计数器从0开始,MAC每处理一个上层封包就会加1。如果上层封包被切割处理。所有帧片段都会具有相同的顺序编号。如果是重传帧。则编号不会改变。
该位不同于IP首部的标识字段。因为IP首部的标识字段只是用来标识是同一数据报,而没有排序功能,并且IP是无序的协议,也不用考虑顺序。
帧片段之间的差异在于framentnumber。第一个片段遍号为0,其后每个片段依次加1。
6、帧主体
帧主体(frameboby)又称数据位。负责在工作站间传送上层数据(payload)。在最初的指定的规格中,802.11帧最多可以传送2034字节的数据。802.2LLC标头具有八个字节,所以最多可以传送2296个字节。防止分段必须在协议层加以处理。
802.11与其他链路层协议的不同:
1、802.11帧中并没有任何上层协议的标记。上层协议是以额外标头type位加以标记,同时将其作为802.11所承载数据的开始。
2、802.11通常不会将帧填补至最小长度。802.11所使用的帧并不大,随着芯片与电子技术的进展,目前已经没有填补的必要了。
7、帧检验序列(FCS)
FCS通常被视为循环冗余码(cyclic redundancy cheak,CRC),因为底层的数学运算相同。
FCS计算范围涵盖MAC标头里所有位以及帧主体。如果FCS有误,随即丢弃。并且不进行应答。
数据帧的格式如上图所示,头部长度为24或30字节。主要功能是为工作站与基站之间传递数据。
由于数据的发送方和接收方的不同,所以数据帧也会有小分类。主要可分为四类
function |
To DS |
From DS |
Address1 |
Address2 |
Address3 |
Address4 |
IBSS |
0 |
0 |
DA |
SA |
BSSID |
Not use |
TO AP |
1 |
0 |
BSSID |
SA |
DA |
Not use |
FROM AP |
0 |
1 |
DA |
BSSID |
SA |
Not use |
WDS |
1 |
1 |
RA |
TA |
DA |
SA |
IBSS(Independent BasicService Set)独立基本服务集
BSSID(Basic Service SetIdentifier)基本服务集标识符(为AP的MAC地址)
DA(Destination Address)目的地址
SA(Sender Address)源地址
RA(Receiver Address)接收端地址
TA(Transmission Address)发送端地址
WDS(WirelessDistribution System)无线分布式系统
* WDS(wireless distribution system),无线分布系统:构建在FHSS或DSSS底下,可让基地台与基地台之间得以沟通,比较不同的是有WDS的功能是可当做无线网络的中继器,且可多台基地台对一台。
以下根据上述四种帧进行分析
1、IBSS帧
当无线MAC收到一个帧时,首先会去检查BSSID,只有BSSID与工作站相同的帧才会交由上层协议加以处理。
2、发送自基站(from AP)的帧
该帧会记载帧的源MAC地址。区分源与发送端是必要的,因为802.11MAC会将应答发送给帧的transmitter(发送端AP),而较上层协议会将应答发送给帧的source(源)。
基站只会应答来自工作站的NULL帧,而不会在应答中使用NULL
3、发送至基站(TO AP)的帧
4、WDS中的帧
当基站被部署为无线桥接器时,会用到四个地址位。
控制帧常用的有四个。即RTS、CTS、ACK、PS-poll。
RTS/CTS:实现虚拟载波监听功能。
l 为防止冲突的发生,需要和以太网类似的冲突检测机制。
l 但是由于无线网络的特点,会产生隐藏节点,而物理载波监听无法发现隐藏节点,还是会产生冲突
因此出现虚拟载波监听机制。使用RTS/CTS以及NAV来实现这个功能
ACK:因为无线网络的特点,很难保证数据一定会到达目的地。为了确保数据一定到达。802.11采用确认、重传机制。
即每一个数据都必须确认ACK,如果未收到ACK,发送方重新发送。
这会导致信号差的时候,重传概率加大,造成传输速度下降
PS-poll:省电模式-轮询帧。这是考虑到使用无线网络的设备多数为移动设备,无法保证供电,为了尽量减少工作站的耗电,采取的一种模式。
*省电模式:工作站处于休眠状态(信号发射功率放大器关闭),基站为工作站暂存帧,然后定时发送Beacon(信标)帧,休眠的工作站定时醒来,获取信标帧,然后解析即可知道自己在基站中是否有暂存帧。如果有,则发送PS-poll帧,而且一个PS-poll只对应一个暂存帧,工作站会一直发送PS-poll帧,直至所有暂存帧全部取出。
所以PS-poll帧只能由工作站发送给基站。
1、RTS(请求发送)
RTS帧可用来取得介质的控制权,以便传输大型帧。至于多大为大型,是由网卡驱动程序的RTS threshold(门限)决定的。
Frame control:除subtype为1101外,没有不同
duration:设定一个时间,总共为三个SIFS、一个CTS、一个ACK、第一个帧片段或帧的传送需要的时间
2、CTS(允许发送)
3、ACK(应答)
4、PS-Poll(省电模式-轮询)
BSSID:此位包含发送端所在的BSS的BSSID,此BSS建立自目前所连接的AP
Transmitter address(发送端地址):此为PS-Poll帧发送端的MAC地址。
因为PS-Poll帧中并未包含duration信息,因此无法更新NAV。不过,所有收到PS-Poll帧的工作站,都会以短帧间隔加上发送ACK信号所需要的时间来更新NAV。使得基站在发送ACK信号时,不会与移动基站发生碰撞。
因为数据分为普通数据和广播组播数据。获取方式也有细微不同。下次进行讨论
管理帧主要服务于扫描、认证和连接过程。Beacon帧也属于管理帧。
1、管理帧的结构
地址位:为了限制广播或组播管理帧所造成的副作用,收到管理帧之后,工作站必须加以验证,虽然不是所有实现均会进行这一BSSID过滤程序,例如Beacon帧。
计算持续时间:免竞争设置为32768;
帧主体:如果使用长度固定的位,称为固定式位。如果长度不定,称为信息元素。
2、字类型(subtype)的说明
子类型Subtype值 |
代表的类型 |
0000 |
Association Request(关联请求) |
0001 |
Association Response (关联响应) |
0010 |
Reassociation Request(重关联请求) |
0011 |
Reassociation Response(重关联响应) |
0100 |
Probe Request(探测请求) |
0101 |
Probe Response(探测响应) |
1000 |
Beacon(信标帧) |
1001 |
ATIM(通知传输指示信息) |
1010 |
Disassociation(解除关联) |
1011 |
Authentication(解除身份验证) |
1100 |
Deauthentication(解除身份验证) |
3、固定字段和信息元素
管理帧更加复杂的是,帧主体中还包括固定字段(fixed field)和长度不定的信息元素(information element)。
802.11规定这些固定字段和信息元素的位置是固定的,但是并不是每一个固定字段和信息元素都是必须存在的。分析起来更加复杂。
4、管理帧的不同帧的格式
A: Beacon(信标)帧
信标帧是相当重要的维护机制,主要用来宣告某个网络的存在。定期发送的信标,可让移动工作站得知该网络的存在,从而调整加入该网络所必要的参数。
B: 检测要求(proberequest)
移动工作站会利用probe request帧来扫描所在区域内有哪些802.11网络。
Probe request帧包含两个位。SSID和移动工作站所支持的速率。收到Probe request帧的工作站会据此判断对方能否加入网络。
C: 检测应答(proberesponse)
如果检测要求所探查的网络与之相容,该网络就会以probe response帧应答。
D: IBSS的数据待传指示通知信息(ATIM)帧
IBSS中的工作站如果为处于休眠状态的接收者暂存帧,就会在递送期间发送一个ATIM帧,通知对方有信息待传。
E: 解除连接和解除认证(disassociation与 deauthentication)
F: 连接要求(associationrequest)
一旦工作站找到相容的网络并且通过身份认证,便会发送连接请求帧,试图加入网络
Capability information(性能信息)用来指出移动工作站所欲加入的网络类型
G: 重新连接帧(reassociationrequest)
位于相同的扩展服务区域,但在不同基本服务区域之间游走的移动工作站,若要再次使用传输系统,必须与网络重新连接。
H: 连接应答与重新连接应答(associationresponse与reassociationresponse)
I: 认证(authentication)
J: Action
802.11h加入了action帧的支持,用来触发测量动作
无线基站的核心,其实就是桥接器,负责在有线与无线介质之间转换帧
无线介质到有线介质
1、基站收到一个帧,会检测该帧是否完整。接下来,基站会帧对所使用的物理城,检视物理层标头,然后验证802.11帧上的帧检验码
2、该帧无误,基站会继续检视是否应该进一步处理
a:传送至基站的帧,会将基站的MAC地址(BSSID)放到802.11MAC标头的address1位。不符该基站BSSID的帧应予以丢弃。(有些产品并未实现此步骤)
b:802.11 MAC接着监测且移出重复的帧。产生重复帧的原因很多,不过最常见的情况是802.11应答信息在传递过程中丢失或有所损毁。为了简化上层协议的工作,因此由802.11MAC负责剔除重复的帧
3、一旦决定处理该帧,就必须进行解密,因为该帧会收到链路层安全算法的保护
4、解密之后,判断该帧是否为帧片段,是否重组。完整性保护针对重组后完整帧,而不是个别的帧片段。(完整性保护ICV在数据中,也被加密)
5、经过步骤2的检验,判定基站必须桥送该帧,较复杂的802.11MAC标头就会被转换为较简单的以太网MAC标头。
a:记录在802.11MAC标头的address3的目的地址,会被复制到以太网的目的地址。
b:记录在802.11MAC标头的address2位的源地址,会被复制到以太网的源地址
c:从802.11data位里的SNAP标头,将TYPE类型代码复制到以太网帧里的type位。如果该以太网帧亦使用SNAP,就复制整个SNAP标头
d:顺序信息主要供帧片段重组之用,不过当帧被桥送之后即立即丢弃
e:如果有标准的服务质量处理程序,即在此进行无线与有线的Qos对应。不过到目前为止,用来表示服务质量的形式,通常就是在有线帧中使用的802.1p优先级等级bit,或者其他的控制形式。
6、重新计算帧校验码。以太网与802.11使用相同的算法来计算FCS,不过802.11帧多出一些位,同时为FCS所保护。
7、将产生的新帧交付以太网界面传送
有线介质至无线介质
1、验证以太网FCS后,基站首先会检视是否需要进一步处理所接收到的帧,也检视该帧的目的地址是否属于目前与基站连接的工作站。
2、将SNAP标头加入以太网帧的数据之前。上层封包是以SNAP标头进行封装,而其type位是自以太网里的类型代码复制而来。如果该以太网帧也使用SNAP,则复制整个SNAP标头
3、对帧的传送进行排程。802.11包含复杂的省电过程,将帧置于传送序列之前,基站可能会将帧暂存于缓存区。
4、一旦帧被置于序列待传,就会被赋予一个顺序编号。如有必要,所产生的数据可以用完整性检测值加以保护。如果帧需要分段,则会根据事先设定好的分段门限进行分段。分段帧时,将会在sequence control位指定片段编号
5、如果帧需要保护,对帧的本体进行加密
6、802.11MAC标头根据以太网MAC首部产生
a:将以太网的目的地址复制到802.11MAC标头的address1位
b:将BSSID置于MAC标头的address2位,以作为帧的发送者
c:将帧的源地址复制到MAC标头的address3
d:将其它位填入802.11MAC标头。也就是把预计传送时间填入duration位,并把适当的标志填入到frame control 位
7、重新计算帧校验码。以太网与802.11使用相同的算法来计算FCS,不过802.11帧多出一些位,同时为FCS所保护
8、所产生的新帧交付802.11界面传送界面