按照局域网的体系结构,局域网由逻辑链路控制子层LLC、介质访问控制子层MAC和物理层PHY构成,不同的局域网统一采用了统一的LLC协议,它们的差别在于介质访问控制子层MAC和物理层PHY。物理层涉及数据的调制方式、数据速率、工作频段,已经在IEEE802.11标准中进行了讨论,这里讨论IEEE802.11的介质访问控制子层MAC层。
9.3.1 介质访问控制法
MAC层定义介质访问控制方法和MAC帧格式,无线局域网的介质访问控制方法是在CSMA/CD协议的基础上进行改进的介质访问控制方法CSMA/CA。CSMA/CD协议已经成功在有线局域网中使用,但CSMA/CD在无线局域网环境下却会发生一些问题。
首先是隐蔽站问题。由于无线局域网的接收信号强度远小于发送信号强度,可能会发生距离发射天线距离较较远点的站未能侦听到发生冲突,这种站称为隐蔽站。隐蔽站的存在使得网上已经不空闲,但隐蔽站认为网上空闲,继续发送数据,导致冲突产生,发送失败。
隐蔽站的实例如图9-3(1)所示,图中画出了4个无线移动站,假定无线信号的传播范围是以发送站为圆心的一个圆面积。图中A站和C站都要与B站通信,但A站、C站相距较远,彼此听不到对方,当A站、C站检测到信道空闲时,就向B站发送数据,结果产生碰撞发生冲突。
其次是暴露站的问题。无线局域网络允许在同一时刻多对站点同时发送数据。而在如图9-3(2)所示网络中,站点B要向A站发送数据,而站点C也要向D站发送数据,但由于B的数据发送导致C检测到信道忙,于是C站不发送数据处于等待状态。而实际B站向A站发送数据并不影响C站向D站发送数据。
图9-3 介质访问控制中存在的问题示意
由于隐蔽站和暴露站问题的存在,CSMA/CD不能直接用在无线局域网中,需要对它进行改造。改造的重点是冲突检测部分,无线局网络改造CSMA/CD的思路是即将冲突检测CD(Collsion Detection)改造为冲突避免CA(Collsion Avoidance),即将CSMA/CD改造成CSMA/CA。
为了有效避免冲突,802.11的MAC层定义了两个子层,分别采用两种操作模式,即点协调功能PCF(Point Coordination Function)和分布协调功能DCF(Distribution Coordination Function),如图9-4所示。
图9-4 MAC层所定义的两个子层
PCF是一种无争用服务,PCF采用集中式控制方式,由网上的控制中心采用轮询的办法将发送权轮流交给网上的各个站,从而避免了冲突的发生。
DCF是一种争用服务,DCF采用分布式控制方,采用CSMA/CA协议,通过CSMA争用来获取信道,并通过发送数据前对对信道的预约来避免冲突(CA)发生。
802.11 协议规定,DCF和PCF可以共存于一个站中,PCF对每一个站是选用的功能,DCF是每一个站必须具有的功能。
CSMA/CA协议的工作流程分为两步:
①每个站需要发送数据,先监听信道状态,监听到信道空闲,维持一段时间后,才送出数据。由于每个站采用的维持随机时间不同,所以可以减少冲突的机会。
②送出数据前,先送一个请求传送控制帧RTS(Request to Send)给接收站,接收站收到RTS帧后,向发送站回应一个允许发送控制帧CTS(Clear to Send),发送站收到CTS后,就完成了预约,可向接收站发送其数据帧了,(而没有收到RTS的站时不能发送数据的)。接收站收到数据帧后,向发送站返回确认帧ACK(Acknowledge)。CSMA/CA利用RTS-CTS握手机制,完成信道预约,确保接下来传送数据帧时,不会被碰撞。
CSMA/CA的工作机制可以有效解决隐蔽站和暴露站的问题。原理如图9-5所示,设B站、C站、E站在A站的无线信号覆盖的范围内,而站D不在其内;A站、E站、D站在B站的无线信号覆盖的范围内,但C站不在其内。
图9-5 CSMA/CA的工作机制的原理示意
如果站A要向站B发送数据,那么,站A在发送数据帧之前,要先向站B发送RTS帧,站B收到RTS帧后就向站A回应CTS帧。站A收到CTS帧后就完成预约,就可向B站发送其数据帧了。现在讨论在A和B两个站附近的一些站将做出什么反应。
对于C站,C站处于A站的无线传输范围内,但不在B站的无线传输范围内。因此C站能够收听到站A发送的RTS帧,但经过一小段时间后,站C收听不到站B发送的CTS帧。说明自己不在B站的无线传输范围内,自己可以与在自己无线传输范围内的站点D传输数据,而不会干扰B站接收数据。于是站点C可以向站点D发送数据。
对于D站,D站收听不到A站发送的RTS帧,但能收听到B站发送的CTS帧,说明自己在B站的无线传输范围内,自己不能发送数据。因此,站D在收到B站发送的CTS帧后,应在B站随后接收数据帧的时间内关闭数据发送操作,以避免干扰B站接收自A站发来的数据。
对于E,它能收到RTS帧和CTS帧,说明自己处于A站和B站的覆盖范围,因此,站E在站A发送数据帧的整个过程中不能发送数据。
可以看出CSMA/CA协议通过RTS和CTS帧预约信道能有效地避免了冲突的发生,同时不影响不在无线传输范围内的其他站的同时发送数据。通过虽然使用RTS和CTS帧会使整个网络的效率有所下降。但这两种控制帧都很短,它们的长度分别为20和14字节。而数据帧则最长可达2346字节,相比之下的开销并不算大。相反,若不使用这种控制帧,则一旦发生冲突而导致数据帧重发,则浪费的时间就更大。
尽管CSMA/CA协议经过了精心设计,但冲突仍然会发生。例如:B站和C站同时向A站发送RTS帧。这两个RTS帧发生冲突后,使得站A收不到正确的RTS帧,因而A站就不会发送后续的CTS帧。这时,站B和站C像以太网发生冲突那样,各自随机地推迟一段时间后重新发送其RTS帧。推迟时间的算法也是使用二进制指数退避。
9.3.2 MAC帧格式
IEEE802.11定义的MAC帧结构如图9-6所示。MAC帧由30字节的帧头、长度可变(0~2312字节)的帧主体信息(数据)和i4字节的帧校验序列FCS组成。无线局域网中发送的各种类型的MAC帧都采用这种帧结构,帧格式中的各字段定义如下:
帧控制FC(Frame Control):帧控制字段在工作站之间发送的控制信息。控制字段又可划分为若干子字段。重要的子字段有协议字段、类型字段、和有线等效保密字段等子字段。其中,协议字段表明使用的协议版本;类型字段用来表明当前发送帧的类型,如控制帧、数据帧或管理帧;有线等效保密字段表明在无线信道上使用WEP加密算法在效果上可以和在有线信道上通信一样地保密。
图9-6 IEEE802.11定义的MAC帧结构
①持续时间(Duration/ID):在这个字段内包含发送站请求发送持续时间的数值,值的大小取决于帧的类型。在CSMA/CA协议中,允许传输站点预约信道一段时间,该时间的值被写入持续时间字段中。通常每个帧一般都包含表示下一个帧发送的持续时间信息。网络中的各个站都通过监视帧中这一字段,来推测前边的发送站尚需占用的时间,推迟自己的发送,从而减少发生冲突的概率。
地址1、地址2、地址3、地址4,地址字段包含不同类型的地址,地址的类型取决于发送帧的类型。这些地址类型可以包含基本服务组标识(BSS-ID)、源地址、目标地址、发送站(AP)地址和接收站(AP)地址。各段地址长度均为48位,且有单独地址、组播地址和广播地址之分。
地址字段存在4个地址字段,地址4是用于自组网络,在这里不予讨论。当无线网上的两个终端站A、B之间进行数据通信时,发送站A需要将数据发给无线接入点AP,然后再从AP发给B,此时从A发出的数据帧中需要给出自己的地址(源地址),接收站的地址(目的地址)以及无线AP的地址。即要给出3个地址,它们分别用地址1、2、3表示。如A站要将数据发给B站,此时A站发出的数据帧中地址1中表示的是目的地址,地址2中表示的是AP地址,地址3中表示的是源地址。
②序列控制(Sequence Control):序列控制字段指出当前发送帧的序号。序列控制字段能够使接收方区分开某一帧是新传送来的,还是因为出现错误而重传的。该字段最左边的4位由分段号子字段组成,第一个分段号为0,后面的发送分段的分段号依次加1。站在数据接收时,可通过监视序列号和分段号来判断是否为重复帧。
③帧主体(Body):帧主体字段的有效长度可变,所载的信息取决于发送帧的类型。如果发送帧是数据帧,那么该字段会包含一个LLC数据单元。如果发送帧是管理帧或控制帧,它们会在帧体中包含一些特定的控制参数。如果帧不需要承载信息,那么帧体字段的长度为0。
④帧校验序列(FCS):帧校验系列用于差错控制,无线局域网采用循环冗余码校验法CRC对传输的数据帧进行差错校验。发送方对发送的数据按照CRC算法生成帧校验系列FCS,接收方通过帧校验系列FCS对收到的数据信息进行校验,检查接收帧中是否有数据传输发生的差错。
检验出现错误的帧要设法进行恢复。差错恢复在接收方把收到错帧和没有收到帧一样对待,就是简单的不给响应帧;当发送方向某站发送出一个帧后,若经过一定的时间间隔之后,收不到来自对方(目的工作站)的响应帧,则判断已发送的帧出现传输错误,要对该帧进行重发。系统要控制重发的次数,当超过重发次数限制之后,工作站会丢弃该帧。
9.3.3 MAC层的工作原理
无线局域网的大部分无线功能都是建立在MAC层上的,MAC层的功能主要是负责客户终端与无线AP之间的通信,主要功能有:扫描、认证、接入、传输、加密和漫游等,这些功能都是通过通信双方交换MAC帧来完成的。
MAC的帧分为3种类型:数据帧、管理帧、控制帧。
①数据帧:数据帧的功能是向目的工作站的MAC层传送数据信息。发送方要发送数据时,将来自LLC层的数据帧封装成MAC帧,传给物理层调制成无线信号进行传输。接收站收到无线信号时,经物理层解调恢复出MAC帧,对MAC帧解封得LLC帧,交给LLC层。
②管理帧:管理帧负责发现无线AP以及在工作站与无线AP之间建立初始的通信,提供建立连接和认证服务。当客户要接入无线网络时,首先要通过扫描发现当前环境下存在的无线AP,然后才能进行无线通信,实现数据传输。
当工作站要发送数据时,选择当前环境中存在的无线AP,然后向其发起认证,通过认证后,客户终端向无线AP发起连接,完成连接后,客户终端与无线AP之间的传输链路已经建立,二者就可以进入收发数据帧。管理帧如Beacon、Probe、Authenticcation、Association。其中Beacon、Probe用于扫描发现无线AP,Authenticcation用于认证,Association用于连接。
③控制帧:控制帧的功能是实现通信传输的介质控制。主要的控制帧有请求发送(RTS帧)、允许发送(CTS帧)和确认(ACK帧)。当客户终端与无线AP之间完成建立连接和认证之后,控制帧按照CSMA/CA协议的工作流程为数据帧的发送提供请求发送(RTS)、允许发送(CTS),获取信道使用权,进行数据发送。接收方对发来的数据进行接收,并对收到数据对数据信息进行差错校验,校验结果正确,则向发送方回应确认(ACK)帧,表示数据已正确接收。
另外,扫描是客户终端接入无线局域网的第一个步骤,客户终端通过扫描来发现当前环境在存在的无线AP,或者是在漫游时寻找新的无线AP。无线局域网的扫描存在主动扫描(Active Scanning)和被动扫描(Passive Scanning)两种方式。
当AP上设置了SSID信息后,AP会定期(100ms)发送一个Beacon的管理帧,Beacon帧中包含了该AP的服务集标识符(SSID)名称、通信速率、认证方式以及加密算法、工作信道,发送时间间隔等信息,上网的客户终端通过侦听无线AP定期发送的Beacon帧来发现周围的无线AP。
在被动扫描(Passive Scanning)方式中,客户终端会在不同信道之间不断切换,静候Beacon帧的到来,当一个客户终端进入有无线信号覆盖的环境时,将记录所有收到的任何Beacon帧的信息,以此来发现周围的无线AP,获取网络服务。
在主动扫描方式中,客户终端主动在每个信道上发送Probe Ruestest帧,从AP回应的Probe Response帧获取AP的SSID名称、通信速率、认证方式以及加密算法、工作信道,发送时间间隔等信息,以此来发现周围的无线AP,获取网络服务。
一般情况下,无线局域网的扫描方式采用被动扫描方式,当客户终端进入有无线信号覆盖的环境时,就能发现该环境下的所有无线AP,通过选择合适的无线AP获取网络服务。当系统需要隐藏某个SSID信息时,可以采用主动扫描方式。例如在一栋办公大楼中提供了两个无线接入AP,其SSID名称分别是“Office”和“Visitor”,其中Office为公司人员提供无线接入服务,连接此SSID可访问公司内网资源,而Visitor专为外部访客提供无线接入服务,连接此SSID仅可以访问Internet资源。为了提高无线网络的安全性,可以将“Office”的无线服务设置为隐藏SSID方式,外部访客将不知道有名为Office的AP存在,而内部员工可以通过主动扫描方式获得连接此SSID,获取公司内部网络资源服务。隐藏SSID是最简单、最简便的无线网络安全接入手段之一。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。