无线知识
CSMA/CA协议研究分析
2016-12-28 09:26:16来源:未知点击:

 一.概述

 

无线局域网标准802.11MAC802.3协议的MAC非常相似,都是在一个共享媒体之上支持多个用户共享资源,由发送者在发送数据前先进行网络的可用性检测。在802.3协议中,是由一种称为CSM/CD(Carrier Sense Multiple Access with Collision Detection)的协议来完成调节,这个协议解决了在Ethernet上的各个工作站如何在线缆上进行传输的问题,利用它检测和避免当两个或两个以上的网络设备需要进行数据传送时网络上的冲突。

 

CSMA/CA协议

 

  1. CSMA/CD为什么不能应用无线局域网以及CSMA/CA的由来

 

 CSMA/CD协议已成功地应用有线连接的局域网,但在无线局域网的环境下,确不能简单的搬用CSMA/CD协议,特别是碰撞检测部分。原因如下:

 

  1. 在无线局域网的适配器上,接收信号的强度往往小于发送信号的强度,因此若要实现碰撞检测,那么在硬件上需要的花费就会过大。

  2. 在无线局域网中,并非所有的站点都能够听见对方,而“所有的站点都能够听见对方”正是实现CSMA/CD协议必须具备的基础。

       下面用图一的例子来说明这点。虽然无线电波能够向所有方向传播,但其传播距离受限,而且当电磁波在传播过程中遇到障碍时,其传播距离就更短。图一中画有四个无线站点,并假设无线信号传播范围是以发送站为圆心的一个圆形面积。

      图一(a)表示站点AC想和B通信。但AC相距较远,彼此都听不见对方。当AC检测到信道空闲时,就想向B发送数据,结果发生了碰撞。(这祌未能检测其他站点信号的问题叫做隐蔽站问题。)

    当移动站之间的障碍物时也可能出现上述问题。例如,三个站点ABC彼此之间距离都差不多,相当于在一个等边三角形的三个顶点。但AC之间有一座山,因此AC彼此都听不见对方。若AC同时向B发送数据就会发生碰撞,使B无法正常接收。

    图一(a)给出了另一种情况。站点BA发送数据。而C又想和D通信。但C检测到信道忙,于是就停止向D发送数据,其实BA发送数据并不影响CD发送数据。如果这时不是BA发送数据而是AB发送数据,则当CD发送数据时就会干扰B接收A发来的数据。(这就是暴露占问题)。在无线局域网中,在不发生干扰的情况下,可允许同时多个移动站进行通信。这与有线网有很大的差别

    aAC同时向B发送信号,发生碰撞

     

    bBA发送信号,使C停止向D发送数据

    图一 无线局域网的站点又是听不到对方

    由此可见,无线局域网可能出现检测错误的情况:检测到信道空闲,其中并不空闲;而检测到信道忙,其实并不忙。

    CSMA/CD有两个要点:一是发送前先检测信道。信道空闲就立即发送,信道忙就随机推迟发送。二是边发送边检测信道,一发现碰撞就立即停止发送。因此偶尔发生的碰撞并不会使局域网的运行效率降低很多。既然无线局域网不能使用碰撞检测,那么就应该见量减少碰撞的发生。为此802.11委员会对CSMA/CD协议进行了修改,把烹煮检测改为碰撞避免CA。这样,802.11局域网就使用了CSMA/CA协议。碰撞避免思路是:协议的设计尽量减少碰撞发生的概率。在无线网中,即使在发送过程中发生了碰撞,也要把整个帧发送完毕。因此在无线局域网中一旦出现碰撞,在这个帧发送时间内信道资源就都被浪费了。

    802.11局域网在使用CSMA/CA的同时还使用停止等待协议。这是因为无线信道的通信质量远不如有线信道的,因此无线站点每通过无限局域网发送完一帧后,要等待收到对方的确认帧后才能继续发送下一帧。(链路层确认)

    2. 802.11MAC

    802.11标准设计了独特的MAC层。如图二所示:

    图二 802.11MAC

    它通过协调功能来确定在基本服务器集BBS中移动站在什么时间能发送和数据或接收数据。802.11MAC层在物理层的上面,它包括两个子层。

 

  1. 分布协调功能DCFDCF不采用任何中心控制,而是在每一个借点使用CSMA机制的分布式接入算法,让各个站通过争用信道来获取发送权。因此DCF向上提供曾用服务。802.11协议规定,所有的实现都必须有DCF功能。

  2. 点协调功能PCFPCF是选项,是用介入点AP集中控制整个BBS内的活动,因此自组网络就没有PCF子层。PCF使用集中控制的接入算法,用类似于探询的方法把发送数据权轮流给各个站,从而避免了碰撞的产生。对于时间敏感的业务,如分组语音,就应使用提供无争用服务的点协调功能PCF

    3.帧间间隔

    为了尽量避免碰撞,802.11规定,所有的站在完成发送后,必须再等待一段很短的时间(继续监听)才能发送下一帧。这段时间的通称是帧间间隔IFS。帧间间隔的长短取决于该站要发送的帧的类型。高优先级的帧需要等待的时间较短,因此可以优先获得发送权,但低优先级帧就必须等待较长的时间。若低优先级帧还没来得及发送而其他高优先级帧已发送到媒体,则媒体变为忙态因而低优先级帧就只能再推迟发送了。这样就减少了发生碰撞的机会。至于各种帧间间隔的具体长度,这取决于使用的物理层特性。

    三种帧间间隔的作用(参考图三):

    图三 CSMA/CA协议的工作原理

    1.SIFT,即短(Short)帧间间隔。SIFT是最短的帧间间隔,用来分隔开属于一次对话的各帧。在这段时间内,一个站应当能够从发送方式切换到接收方式。使用SIFS的帧类型有:ACK帧、CTS帧、由过长的MAC帧分片后的数据帧,以及所有回答AP探询的帧和在PCF方式中接入点AP发送出的任何帧。

    2.PIFS,即点协调功能帧间间隔(比SIFS长),是为了在开始使用PCF方式时(在PCF方式下使用,没有争用)优先获得接入到媒体中。PIFS的长度是SIPS加一个时隙时间(slot time)的长度。时隙的长度是这样确定的:在一个基本服务集BSS内,当某个站在一个时隙开始时接入到信道时,那么在下一个时隙开始时,其它站就都能检测出信道以转变为忙态。

    3.DIFS,即分布协调功能帧间间隔(最长IFS),在DCF方式中用来发送数据帧和管理帧。DIFS的长度比PIFS再多一个时隙长度。

    4.减少碰撞机制

    为了尽量减少碰撞的机会,802.11标准采用了一种叫做虚拟载波监听地的机制,这就是让源站把它要占用的信道时间(包括目的站发回确认帧所需时间)写入到所发送的数据帧中,(即在首部中的“持续时间”字段中写入需要占用信道时间,以微秒为单位,一直到目的站把帧确认完为止),以便使其他所有的站在这一段时间都不要发送数据。“虚拟载波监听”的意思是其他各站并没有监听信道,而是由于这些站都知道了源站正在用信道才不发送数据。这种好像是其他站都监听了信道。

    当站点检测到正在通信中传送的帧“持续时间”字段时,就调整自己的网络分配向量NAVNAV指出了信道处于忙状态的持续时间。信道处于忙状态就表示:或者是由于物理层的载波监听检测到信道忙,或者是由于MAC层的虚拟载波监听机制指出了信道忙。

    三.CSMA/CA的工作原理

    1.个站点有数据帧要发送时:

 

  1. 先检测信道。若检测到信道空闲,则等待一段时间DIFS后就发送整个数据帧,并等待确认。

  2. 目的站若正确收到此帧,则经过时间间隔SIFS后,向源站发送确认帧ACK

  3. 所有其他站都设置网络分配向量NAV,表明在这段时间内信道忙,不能发送数据。

  4. 当确认帧ACK结束时,NAV也就结束了。在经历了帧间间隔之后,接着会出现一段空闲时间,叫做争用窗口,表示在这段时间内有可能出现各站点争用信道的情况。

       2.退避算法

    CSMA/CA的算法如下:

 

  1. 若站点最初有数据要发送,且检测到信道空闲,在等待时间DIFS后,就发送整个数据帧。

  2. 否则,站点执行CSMA/CA协议的退避算法。就冻结退避计时器。只要信道空闲,退避计时器就进行倒计时。

  3. 当退避计时器减少到零是,站点就发送整个帧并等待确认。

  4. 发送站若收到确认,就知道自己发送的帧被目的站正确收到了。这时如果发送第二个帧,就要从上面的步骤(2)开始,执行CMSA/CA协议的退避算法,随机选定一段退避时间。

    若源站在规定时间内有没有收到确认帧ACK,就必须重传此帧,直到收到确认为止,或者经过若干次的重传失败后放弃传送。

    3.信道预约

    为了更好的解决隐蔽站带来的碰撞问题。802.11允许要求发送数据的站对信道进行预约。源站A发送数据帧之前发送一个短的控制帧(请求发送RTS),它包括源地址,目的地址和这次通信所需的持续时间。若信道空闲,则目的站B就响应一个控制帧(允许发送CTS)。如图四所示:

    a

    b

    图四 CSMA/CA协议中的RTSCTS

 

  1. A发送RTS帧(bB响应CTS帧,D在一段时间内不发送数据

    C处于A的传输范围内,但不在B的差un数范围内。因此C能够收到A发送的RTS,但经过一小段时间后,C不会收到B发送的CTS帧。这样,在A向B发送数据时,C也可以发送自己的数据给其他的站而不会干扰B。

    D收不到A发送的RTS帧,但能收到B发送的CTS帧。因此D知道B将要求和A通信,因此D在A和B通信的一段时间内不能发送数据,因而不会干扰B接收A发来的数据。

    E能收到RTS和CTS,因此E和B一样,在A发送数据帧和B发送确认帧的整个过程中都不能发送数据。

    四.802.11局域网的MAC

    802.11帧共有三种类型,即控制帧、数据帧和管理帧。802.11数据帧由三大部分组成,如图五所示:

    图五 802.11局域网的数据帧

 

  1. MAC首部,共30字节。帧的复杂性都在真的首部。

  2. 帧主体,也就是帧的数据部分,不超过2312字节。

  3. 帧检测序列FCS是尾部,共4字节。

    1.802.11帧的地址

    802.11数据帧字段使用情况如表一:

    表一:802.11帧的地址字段常用的情况

 

DS

DS

地址 1

地址 2

地址 3

地址 4

0

1

目的地址

AP 地址

源地址

——

1

1

AP 地址

源地址

目的地址

——

 

 

 

举例说明:站点AB发送数据帧,802.11的地址字段分析,如图六所示:

 

 

图六 AB发送数据帧

 

 

 

 

 

首先要由站点A把数据帧发送到接入点AP1,然后再由AP1把数九帧发送给站点B

 

当站点A把数据帧发送给AP1时,帧控制字段中的“到DS=1”而“从DS=0”。

 

因此地址1AP1MAC地址(接收地址),地址2AMAC地址(源地址),地址3BMAC地址(目的地址)。

 

AP1把数据帧发送给站点B时,帧控制字段中的“到DS=0”而“从DS=1”。

 

因此地址1BMAC地址(目的地址),地址2AP1MAC地址(发送地址),地址3AMAC地址(源地址)。

 

2.序号控制字段、持续字段和帧控制字段

 

1)序号控制字段占16位,其中序号子字段占12位(从0开始,每发送一个新帧就加1,到4095后再回到0),分片子字段占4位(不分片则保持为0,如分片则帧的序号子字段保持不变,而分片子字段从0开始,每个分片加1.最多到15)。重传的帧的序号和分片子字段的值都不变。序号控制的作用是使接收方能区分开是新传送的帧还是因为出现差错而重传的帧。

 

2)持续期字段占16位。CMSA/CA协议允许传输站点预约信道一段时间。这个时间写入到持续字段中。最高位为0表示持续期,持续期不超过215-1=32767,单位是微秒。

 

3)帧控制字段共分为11个子字段。

 

①协议版本字段现在是0.

 

②类型字段和子类型字段用来区分帧的功能。802.11帧共有三种类型:控制帧、数据帧和管理帧,而每一种帧又分为若干祌子类型。例如,控制帧有RTSCTSACK等集中不同的控制帧。

 

③更多分片字段置为1时表示这个帧属于一个帧的多个分片之一。因为无线的信道质量较差,所以无线局域网数据帧不宜过长。当帧长为n而误比特率p=10-4时,正确收到这个帧的概率p=1-pn。若n=12144bit,则算出这时p=0.2969,即正确收到这样的帧的概率还不到30%。因此为了提高传输速率,在信道质量较差时,需要把一个较长的帧划分为许多短的分片。这时可以在一次使用RTSCTS帧预约信道后连续发送这些分片。当然这仍然要使用停止等待协议,即发送一个分片,等到收到确认后在发送下一个分片,不过后面的分片不需要用RTSCTS帧从新预约信道。如图七所示:

 

 

图七 分片发送

 

 

 

④有线等效保密字段WEP1位。若WEP=1,就表明采用了WEP加密算法。WEP表明使用在无线信道的这种加密算法在效果上可以和有线信道上通信一样地保密。

 

 

 

 
联系我们
  • 电 话:86-21-3892-0246
  • 网 址:www.shdingjun.com
  • E-mail:shdj168@163.com
  • 地 址:上海市浦东新区浦东大道2536号
Copyright 2013-2019 上海定均电子科技有限公司版权所有 All Rights 沪ICP备17003907号 Power by DedeCms