一 前言
802.11 规格的关键在于MAC(介质访问控制层),属于数据链路层,它定义了数据帧怎样在介质上进行传输。MAC 位于各种物理层之上,控制数据的传输。不同的物理层可以提供不同的传输速度,不过物理层之间必须彼此互通。
二 正文
3.1 MAC 所面临的挑战
3.1.1 射频链路质量
在有线的以太网中,假定对方必然会收到所传送的帧是合理的。无线链路问题:噪声问题,多径衰落(multipath fading)所造成的传输死角(dead spot),也可能导致帧的
无法传递。
有线:必然会收到帧。
无线:干扰和多径衰落总会存在。
802.11 采用正面回应机制。所有传送出去的帧都必须得到回应。
图3-1 所列出的步骤称为基本操作,指不可分割的单一处理单元。虽然整个处理过程包含好几个步骤,但还是会被视为单一不可分割的过程。无线电波的链路品质也会影响网络连接的速度。信号质量较好就可以用较高的速度来传送数据。信号质量通常随着距离的拉长而有所衰减,亦即802.11 工作站的数据传输速度,取决于他和接入点之间的相对位置。
3.1.2 隐藏节点的问题
在以太网络中,工作站是通过接收传输信号来行使CSMA/CD 载波侦听的功能。空中的介质线路中包含了信息,而且会传输到各网络节点。无线网络的界线比较模糊,有时候并不是每个
节点都可以跟其他节点直接通信,如图3-2 所示。
如图3-2 所示,节点2 可以之间跟节点1 和节点3 通信,不过某些因素导致节点1 与节点3 无法直接通信。(这与障碍物的关系并不大:节点1 与3 之间可能只是因为距离远,无法收到
对方的无线电波。)从节点1 的角度来看,节点3 属于隐藏节点。隐藏节点:我的看法是,不在节点的无线电波覆盖范围内,且是相对某个节点而言。如对于节点1,则节点3属于隐藏接点。
在无线网络中,由隐藏节点所导致的碰撞问题相当难以监听,因为无线收发器通常是半双工工作模式,即无法同时收发数据。为了防止碰撞发生,802.11 允许工作站使用请求发送(RTS)和允许发送(CTS)帧来清空传送区域。如图3-3 所示,节点1 有个数据帧待传送,因此送出一个RTS 帧启动整个过程。RTS 帧本身带有两个目的:预约无线链路的使用权,并要求接收到这一消息的其他的工作站停止发言。一旦收到RTS 帧,接收端会以CTS 帧应答。随着802.11 逐渐成熟,隐藏节点已经不成问题。在小型、不太活跃、只有几部客户端共享
一个接入点的网络里,很少会有同时进行传输的情况,何况还有不少闲置频宽可供重传之用。如果802.11 网卡的驱动程序支持,使用者可以通过调整RTS 门限值来控制RTS/CTS 程序。只要大于此门限值,就会进行RTS/CTS 交换程序。小于此门限值则会直接传送数据帧。
3.2 MAC 访问控制与时钟
无线介质的访问,是由协调功能所管控。以太网之类的CSMA/CA 访问,是由分布式协调功能(distributed coordination function,简称DCF)所管控。如果需要用到免竞争服务,则可
通过架构于DCF 之上的点协调功能(point coordination function,简称PCF)来管控。免竞争服务只提供于基础网络(infrastructure network),不过只要工作站支持HCF,就可以在网络中提供服务质量(quality of service ,简称QoS)。
DCF(分散式协调功能)
DCF 是标准CSMA/CA 访问机制的基础。
PCF(点协调功能)
点协调功能提供的是免竞争服务。称为点协调者的特殊工作站可以确保不必通过竞争即可使用介质。
HCF(混和式协调功能)
有些应用需要尽力传达更高一级的服务质量,却又不需要用到PCF 那么严格的管控。HCF允许工作站维护多组服务队列,针对需要更高服务品质的应用,则提拔更多的介质访问机会。
3.2.1 载波监听功能与网络分配矢量
载波监听主要用来判定介质是否处于可用状态。802.11 具备两种载波监听功能:物理载波监听与虚拟载波监听。只要其中有一个监听功能显示介质处于忙碌状态,MAC 就会将此报告给
高层的协议。虚拟载波监听是由网络分配矢量(Network Allocation Vector,简称NAV)所提供。802.11的帧通常会包含一个duration 位,用来预定一段介质使用时间。。工作站会将NAV 设定为预计使用介质的时间,这包括完成整个处理必须用到的所有帧。其他工作站会由NAV 值倒数至零。只要NAV 的值不为零,代表介质处于忙的状态,此即虚拟载波监听功能。当NAV 为零时,虚拟载波监听功能会显示介质处于闲置状态。
3.2.2 帧间隔。
802.11 会用到四种不同的帧间隔。其中三种用来判定介质的访问;为802.11 MAC 内建避免碰撞的功能,所以工作站会延迟介质的访问,直到介质再度空闲。不同的帧间隔,会为不同类型的传输产生不同的优先次序。其后的决定逻辑十分简单:当介质闲置下来时,高优先级的数据所等待的时间较短。
短帧间隔(Short interframe space ,简称SIFS)
SIFS 用于高优先级的传输场合,例如RTS/CTS 以及正面应答帧。经过一段SIFS(时间),即可进行高优先级的传输。
点帧间隔(PCF interframe space ,简称PIFS)
PISF 主要被PCF 使用在免竞争过程,有时被误解为优先性帧间隔。在免竞争时期,有数据传输的工作站可以等待PISF 期间过后加以传送,其优先程度高于任何竞争式传输。
分布式帧间隔(DCF interframe space ,简称DIFS)
DIFS 是竞争式服务中最短的介质闲置时间。如果介质闲置时间长于DIFS,工作站可以立即对介质进行访问。
扩展的帧间隔(Extended interframe space ,简称EIFS)
因为EIFS 并非固定的时间间隔。只有在帧传输出现错误时才会用到EIFS。
3.2.3 帧间隔与优先程度
一开始,基本操作和一般传送并无不同:在可以开始传送之前,基本操作同样必须等待一段帧间隔(通常是DIFS)时间。不过,其后的步骤即开始使用SIFS,而非DIFS。由于SIFS短于其他帧间隔,一项基本操作的第二(以及之后的)步骤会在其他类型的帧被传送之前将介质占为己用。利用SIFS 与NAV(网络分配矢量),工作站可以视需要占用介质一段时间。
3.3 利用DCF 进行竞争式访问
大部分的传输均采用DCF(分布式协调功能),DCF 提供了类似以太网的标准竞争式服务。DCF 允许多部独立的工作站彼此互动,无须通过中央管控,因此可以运用于IBSS 网络或基础
型网络。试图传送任何数据之前,工作站必须检查介质是否处于闲置状态。若处于忙碌状态,工作站必须延迟访问,并利用指数型退避(orderly exponential backoff)算法来避免碰撞发生。
在所有使用DCF 的传输当中,将会运用到两项基本原则:
1. 如果介质闲置时间长于DIFS,便可立即进行传输。载波监听同时可通过物理与虚拟(NAV)
方式进行。
注释:DIFS为一段帧间隔。虚拟载波监听是由网络分配矢量(Network Allocation Vector,简称NAV)所提供。NAV为预计占用介质的时间。举例:在饭馆中,点了黄焖鸡付钱后,老板会给你一个有号码的计时器,当计时器为0时,老板做好了,你就可以拿黄焖鸡吃。侯餐的计时器类似于NAV,预计等待吃饭的时间。
a. 如果之前的帧接收无误,介质至少必须空出一段DIFS 时间。
b. 如果之前的传输出现错误,介质至少必须空出一段EIFS 时间。
注释:DIFS 是竞争式服务中最短的介质闲置时间。如果介质闲置时间长于DIFS,工作站可以立
即对介质进行访问。扩展的帧间隔(Extended interframe space ,简称EIFS),EIFS 并非固定的时间间隔。只有在帧传输出现错误时才会用到EIFS。
2.如果介质处于忙碌状态,工作站必须等候至频道再度闲置。802.11 称之为访问延期。一旦访问延期,工作站会等候介质闲置一段DIFS 时间,同时准备指数型退避访问程序。
其中有一些规则取决于“线上”的特殊状况,与之前传送的结果有关。
1. 错误复原(error recovery)属于传送端的责任。传送端预期每个帧均应收到应答信息,
而且必须负责重传,直到传送成功为止。
a. 只有收到正面应答讯息,才表示传送成功。基本交换操作必须完成才算成功。如果某个
预期的应答迟迟未到,传送端即会认定其已丢掉,必须加以重送。
b. 所有单点传播数据必须得到应答。(因此,即使无线电波链路本质上属于广播介质,相
较于广播数据,单点传播数据基本上还是具备较高的服务质量。)
c. 只要传送失败,重传计数器就会累计,然后重新加以传送。
3.以下的帧类型可在SIFS 之后传输,因此优先程度较高:应答(acknowledgment)、RTS/CTS 交换程序中的CTS,以及分段程序中的帧片段。
a.一旦传送出第一个帧,工作站就会取得频道的控制权。以后帧及其回应均可使用SIFS进行传送,以锁定频道不被其他工作站使用。
b.传送中,后续帧会将NAV 更新成该介质预计使用的时间
4.如果较高层的封包长度超过所设定的门限,必须使用扩展帧格式。
a.长度超过RTS 门限的封包,必须使用RTS/CTS 交换程序。
b.长度超过分段门限的封包,必须加以分段。
3.3.1 DCF 与错误复原
错误监听与更正是由起始基本帧交换过程的工作站来决定。一旦监听到错误,该工作站必须负责重传。错误监听必须由传送端负责。有时候传送端可根据应答的有无,推论帧是否已经漏失。只要帧被重传,重传器就会累计。每个帧或帧片段就会分别对应到一个重传计数器。工作站本身具有两个重传计数器:短帧重传计数器与长帧重传计数器。
短帧重传计数器会在下列情况发生时归零: