当802.11 WLAN网络上的数个装置同时传送数据时,由于频宽的限制,会发生“封包碰撞”(collision)的情况。一般以太网络是使用“指数回归算法”(exponential backoff algorithm)来解决这种问题,而802.11标准也不例外。802.11的MAC标准称作“分布式基础无线媒体撷取控制”(distributed foundation wireless MAC;DFWMAC)。
如果真要自行设计“专属的WLAN”,必须先行克服从射频实体层至MAC层的通信协议问题。假设他们已经具有很纯熟的27MHz无线电传收机技术,则剩下的就是要解决MAC层的通信协议问题,这主要包含两个重要的问题:CSMA/CA和回归(backoff)。当然,除此之外,RTS/CTS流量控制和“分布式协调功能(distributed coordination function;DCF)”,以及更上层的驱动程序、应用软件、各通信层之间的接口….等,都要严格考虑在内。不过,本文将专注于回归技术的探讨。
碰撞的问题
当两台装置同时开始传送数据时,它们将会先检查缆线中是否有载波存在,若载波有存在,而且缆线是处于闲置状态,它们就会马上传送封包。因为它们所发射的电子信号会彼此干扰,这种干扰会造成“封包碰撞”的结果。碰撞会使封包内的数据混淆不清,致使接收到的封包无法还原成正确的数据。
虽然,CSMA/CA和回归都能解决碰撞的问题,不过,在功能上,它们是有差别的。CSMA/CA是一种“竞争”(contention)通信协议,它倾听WLAN网络,避免碰撞发生。它和传统的CSMA/CD(被以太网络使用)不同,CSMA/CD是在碰撞发生之后,才起来处理后续的传送作业。CSMA/CA则是防患未然,所以比较有助于网络通信。因为它在任何真正的数据被传送之前,会先在网络上广播(broadcast)一个信号,倾听是否有碰撞发生,同时告诉其它装置不要广播。
当发生碰撞时,装置必须等待一段时间,等缆线恢复闲置时,才能再传送。不过,若两个装置
同时再次发射信号,则另一个碰撞又将再次发生。为了避免这个情况发生,就必须采用“二进制指数回归算法”来解决。
回归的概念
在碰撞之后,再次尝试发射信号之前,每一个传送装置必须等待一段时间。不过,如果它们的等待或延迟时间都一样,则下次还是会有碰撞发生。因此,每个装置必须选择一个0到D的随机数,当成必须等待的时间长度。D是标准的延迟时间值。若又发生碰撞,则每个装置会将之前所选择的随机数大小加倍,这表示现在的随机延迟时间是在0到2D之间。如果又有另一个碰撞发生,则延迟范围将在0到4D之间。以此类推。每碰撞一次,随机延迟时间会以指数增加,所以下次会发生碰撞的机率将会大幅降低,而且重复回归所花费的时间很短,可以忽略不计。
802.11的回归机制
802.11/DFWMAC的回归机制和以太网络的不完全一样,因为前者还牵涉到DCF。DCF是以CSMA/CA为基础的通信协议。DFWMAC整合了两个协调功能—PCF和DCF。PCF支持同步数据传输,DCF支持异步数据传输。这两个模式共享媒体频宽,以多时分工(time-multiplex)的方式,将彼此的数据组合成一个“超大讯框(superframe)”的结构。
利用讯框之间不同的间距(interframe space;IFS),DCF和PCF可以并存。由于具有PCF的桥接器(AP)的IFS比较小,因此它的通信优先级会比处于DCF模式中的工作站高。所以,AP可以在CSMA/CA网络上建立一个超大讯框。
在没有AP装置的WLAN网络环境之中,存取数据要靠DCF。一旦媒体闲置了一段特定的时间(DIFS),并且可以在“竞争窗口”(contention window;CW)的大小范围内,选择一个随机的回归值当成延迟时间。竞争窗口或回归时间都是被分割成数个时槽(slot),每个时槽至少要包含:发射机开启所需的时间+媒体传播所需的时间+侦测忙碌的媒体所需的时间。每个时槽的大小和实体层非常有关。
选择最小延迟时间的工作站,将是最早存取媒体的;其它工作站则暂停它们的回归定时器,等待别人传送完毕;而且,在下一个周期内,继续等待所剩余的延迟时间。通常,已经等待很久的工作站,会比刚加入的工作站,能更早存取媒体。等待的时间愈久,获得存取权的机率就愈高。碰撞只发生在两个或更多个工作站选择了相同的时槽的时候。若持续发生碰撞,它们必须重新竞争,并使用以指数增加的CW值,亦即,2倍的CW、4倍的CW、……,直到最大的CW限制值。