802.11 标准规范了一个通用的媒体访问层,提供了支持基于 802.11 无线网络的操作的多种功能。一般地说, MAC 层用来在 802.11 基站之间通过在共享信道上的访问和协议管理和维护通信。作为网络的大脑, 802.11 MAC 层使用了 802.11 物理层,如 802.11b 或者 802.11a ,来执行载波监听、 802.11 帧的传送和接收。
媒体访问层基础
在传输帧的时候,一个基站首先要获取共享的信道的访问。 802.11 标准定义了两种媒体访问形式:分布式协调功能( DCF )和集中式协调功能(PCF )。 DCF 基于 CSMA/CA (载波监听多路访问 / 冲突防止)协议,且是强制的。在 DCF 模式下, 802.11 主机将竞争获取访问权,并且在发送无线帧的时候,其他站点是不会传输的。如果其他站点需要传输,则此站点将等待直到信道空闲。
作为访问媒介的条件, MAC 层检查其网络分配矢量( NAV )的值,这在每个站点中都存在,用来表示前一帧需要发送此帧的时间。网络分配矢量在站点试图发送帧之前必须置为零。在传输帧之前,站点根据帧长和传输速率计算发送帧所需的时间。站点将表示此时间的值放在帧头的 duration域中。当站点收到此帧后,检查 duration 域并作为设置对应 NAV 的基础。这个操作将为发送站点预留媒介。
DCF 的一个重要方面是随机退避时间。站点在检测到忙信道的时候使用此值。如果信道正在被使用,站点必须在下一次访问媒介之前等待一个随机的时间。这保证了多个想要发送数据的站点不会在同一时间来发送。随机退避时间使得站点等待不同的时间,避免了站点继续在同一时间来访问媒介、查看信道是否空闲、传输并冲突。随机退避时间明显的降低了无线帧冲突的数量,特别是在用户增多的情况下。
基于 radio 的局域网中,一个发送站点不能在发送数据的时候同时监听冲突,主要是因为站点不能在传输无线帧的时候使得其接收器开启。作为结果,接收站点如果检测到没有错误的时候需要发送一个 ACK 。如果发送站点在指定的时间后没有收到 ACK ,发送站点将假设发生了冲突(或者RF 干扰),并重传此帧。
为了能够支持数据帧的实时业务传输, 802.11 标准定义了一种可选的集中式协调功能( PCF ): AP 在竞争空闲期间内对站点进行轮询。站点只有在 ap 轮询到的时候才能够传输。基于 PCF 的数据传输时间(如果已启用)将在 DCF 竞争时间中发生(?)。
ap 基于轮询列表来对站点进行轮询,如果站点使用 DCF 的话则切换到竞争时间。这个过程支持操作的同步( VoIP )和不同步模型( Email 和Web 浏览)。
802.11 MAC 层函数
下面总结了 802.11 MAC 功能,特别是和基础架构无线站点相关的内容:
- 扫描 : 802.11 标准定义了被动和主动扫描,也就是说,一个 radio NIC 可以搜索 AP 。被动扫描是强制的,每个 NIC 搜索单独的信道来发现最好的信号。 AP 定期的发送 beacon , radio NIC 在扫描的时候接收此 beacon 并记录相应的信号强度。 beacon 中包含了 AP 的相关信息,如服务集标识符( SSID )、支持的速率等。 Radio NIC 可以使用这些信息和信号强度来比较 AP 并决定使用哪个 AP 。可选的主动扫描是类似的,除了 radio NIC 通过广播 rpobe 帧来初始化过程,而在区域内的 AP 则通过探测响应回复此报文。主动扫描使得 radio NIC 不需要经过一个 beacon 传输时间而直接从 AP 获取响应。尽管如此,问题在于主动扫描为网络增加了额外的开销,因为额外的探测和探测响应报文的传输开销。
- 认证 :认证实际上就是提供证明的过程, 802.11 标准中指定了两种形式的认证:开放系统认证和共享密钥认证。开放系统认证是强制的,包含了两个步骤:一个 radio NIC 首先通过发送认证请求帧到 AP 来初始化此过程, AP 则在响应帧的 Status COde 中设置同意或者拒绝的信息。共享密钥认证是可选的,包含了四个步骤。这是基于 WEP 密钥的认证方式。 Radio NIC 首先发送认证请求帧到 AP 上, AP 然后在响应帧中包含挑战码。 NIC 使用 WEP 密钥对此挑战码进行加密并发送到 AP 上, AP 将此密钥解密并与原来的挑战码进行比较。如果结果相同,则 AP 认为 NIC 有着同样的密钥。 AP 通过发送认证成功或者失败的帧来完成此过程。
- 关联 :一旦认证成功, NIC 在发送数据帧之前必须要和此 AP 关联。关联对于 NIC 和 AP 之间的信息同步是必要的,如支持的数据传输速率。 NIC 通过发送关联请求来初始化此过程,其中包含了 SSID 和支持的速率等信息。 AP 通过关联响应帧来响应此报文,其中包含关联的ID 以及 AP 的其他信息。一旦 NIC 和 AP 完成关联过程,双方就可以互相发送数据帧了。
- WEP :如果可选的 WEP 启用的话,无线网卡 NIC 在发送数据帧的时候将使用公共密钥对数据加密(不包括帧头),接收站点将采用同样的密钥对数据进行解密。 802.11 标准指定了 40 比特长度的密钥,并且没有制定密钥分发方法,这使得 802.11 无线局域网容易被攻击。尽管如此, 802.11i 工作组将 802.1X 和更强的加密结合起来为无线网络提供安全保障。
- RTS/CTS :可选的 RTS/CTS (request-to-send 和clear-to-send)功能为 AP 提供了对媒介的控制。对于大部分的 NIC ,用户在激活RTS/CTS 的时候可以设置一个最大的帧长门限值。例如, 1000 字节的帧长门限长度可以使得对于所有帧长大于 1000 字节的帧数据都将激活 RTS/CTS 功能。 RTS/CTS 功能缓解了隐藏终端问题:两个或者更多的 NIC 在关联到同一个 AP 的时候不能够互相知道对方。如果 NIC激活了 RTS/CTS ,在发送数据帧之前首先发送一个 RTS 帧, AP 将响应一个 CTS 帧,表示可以发送帧数据。在 CTS 帧的 duration 域中,包含了站点可以发送数据帧的时间。 AP 将会保留此时间直到站点发送数据完毕。这种方法避免了隐藏终端之间的冲突。对于每个帧,RTS/CTS 的握手过程将继续,直到帧长超过对应的门限值。
- 节能模式 :可选的节能模式使得用户可以在没有必要传送数据的时候启用从而减少电池能量的消耗。在节能模式下, NIC 通过每个报文帧头的 Status 比特位告诉 AP 自己将进入休眠模式。 AP 维护每个站点的休眠模式信息,并将对应的报文缓存。为了能够接收数据帧,休眠的NIC 必须定期(在正确的时间)的唤醒,来接收 AP 的正常的 beacon 。这些 beacon 将指示是否有报文需要传送到此站点。如果有的话,无线站点则从 AP 上获取数据。当接收完数据后,站点可以继续进入休眠模式。
- 分片 :可选的分片功能可以使得 802.11 站点将数据分为更小的帧。这使得有可能发生 RF 干扰错误的时候,不需要重传大的帧。因为比特错误总是影响一个数据帧,所以重传一个小的数据帧比重传大的数据帧开销要小。在 RTS/CTS 环境下,用户可以设置在超过帧长门限值的时候进行分片,也就是说,在超过门限值的时候, NIC 将会将报文分成多个小的报文。