###1。 802.11 的bit Rate 和 throughput

802.11 的bit rate指的是理论上的物理层传输速度, 以802.11 a/gn/ac 为例, 使用OFDM, 一个讯符周期为4us, 采用不同的编码方式时,传输速率也不同,

throughput 则是指传输层(TCP/UDP)的数据传输速率

传输层的数据进入, IP层, 需要添加IP层的帧头等数据, 进入MAC层, 还需要添加MAC层的帧头, 进入物理层, 还需要添加物理层的前导码和物理层的帧头, 可以看到, throughput势必要大大低于bit rate, 事实上,802.11 throughput能够达到宣称的bit rate的 50% ~ 60% 就已经很不错了

用户大部分时候都是通过传输层来传递数据,因此, 提升throughput尤为重要, 802.11 协议也在不断地引进新的技术来改善物理层和MAC层来提升throughput

###2. 物理层的改进

####2.1 MIMO

MIMO (多入多出)是802.11n物理层的核心,指的是一个系统采用多个天线进行无线信号的收发。它是当今无线最热门的技术,无论是3G、IEEE 802.16e WIMAX,还是802.11n,都把MIMO列入射频的关键技术, MIMO主要有如下的典型应用,包括:

  • 提高吞吐 : 通过多条通道,并发传递多条空间流,可以成倍提高系统吞吐
  • 提高无线链路的健壮性和改善SNR : 通过多条通道,无线信号通过多条路径从发射端到达接收端多个接收天线。由于经过多条路径传播,每条路径一般不会同时衰减严重,采用某种算法把这些多个信号进行综合计算,可以改善接收端的SNR。需要注意的是,这里是同一条流在多个路径上传递了多份,并不能够提高吞吐

####2.2 SDM

当基于MIMO同时传递多条独立空间流(spatial streams), 将成倍地提高系统的吞吐

MIMO系统支持空间流的数量取决于发送天线和接收天线的最小值。如发送天线数量为3,而接收天线数量为2,则支持的空间流为2。MIMO/SDM系统一般用“发射天线数量×接收天线数量”表示, 显然,增加天线可以提高MIMO支持的空间流数。但是综合成本、实效等多方面因素,目前业界的WLAN AP都普遍采用3×3的模式

MIMO/SDM是在发射端和接收端之间,通过存在的多条路径(通道)来同时传播多条流(即发射端的天线作为独立流分别发射多个数据, 而接收端的单个天线能够就收所有的流, 可以同时提高吞吐和改善SNR)。有意思的事情出现了:一直以来,无线技术(如OFMD)总是企图克服多径效应的影响,而MIMO恰恰是在利用多径来传输数据

####2.3 MIMO更多子载波

在室内等典型应用环境下,由于多径效应的影响,信号在接收侧很容易发生(ISI),从而导致高误码率。OFDM调制技术是将一个物理信道划分为多个子载体(sub-carrier),将高速率的数据流调制成多个较低速率的子数据流,通过这些子载体进行通讯,从而减少ISI机会,提高物理层吞吐。

802.11 将20MHz 划分为64个子载波, 间距为312.5kHz, 其中有些子载波未使用

  • 802.11a : 共64个子载波, 使用了52个子载波, 其中4个作为导波, 用于传输固定的位元(为了避免傅立叶转换中出现过强的光谱线) , 剩余48个用于传输数据
  • 802.11g : 共64个子载波, 使用了52个子载波, 其中4个作为导波, 用于传输固定的位元(为了避免傅立叶转换中出现过强的光谱线) , 剩余48个用于传输数据
  • 802.11n : 共64个子载波, 使用了56个子载波, 其中4个作为导波, 用于传输固定的位元(为了避免傅立叶转换中出现过强的光谱线), 剩余52个用于传输数据
  • 802.11ac : 共64个子载波, 使用了56个子载波,其中4个作为导波, 用于传输固定的位元(为了避免傅立叶转换中出现过强的光谱线), 剩余52个用于传输数据

对于HT40, HT80和HT160

  • HT40 : 共128个子载波, 使用了114个子载波, 其中6个作为先导子载波, 剩余的108个用于数据传输
  • HT80 : 共256个子载波, 使用了242个子载波, 其中8个作为先导子载波, 剩余的234个用于数据传输
  • HT160 : 共512个子载波, 使用了484个子载波, 其中16个先导子载波, 剩余的468个用于数据传输

####2.4 QAM-64 / QAM-256 编码方式

按照无线通信的基本原理,为了使信息适合在无线信道这样不可靠的媒介中传递,发射端将把信息进行编码并携带冗余信息,以提高系统的纠错能力,使接收端能够恢复原始信息。802.11n所采用的QAM-64的编码机制可以将编码率(有效信息和整个编码的比率)从3/4 提高到5/6 (即一个symbol能个够传递6个bit, 5个为有效数据)。所以,对于一条空间流,在MIMO-OFDM基础之上,物理速率从58.5提高到了65Mbps(即58.5乘5/6除以3/4)

802.11ac 采用的 QAM-256 能够将每一个讯符所携带的码元数目提升到8个(QAM-64为6个)

####2.5 Short Guard Interval

由于多径效应的影响,信息符号(Information Symbol)将通过多条路径传递,可能会发生彼此碰撞,导致ISI干扰。为此,802.11a/g标准要求在发送信息符号时,必须保证在信息符号之间存在800 ns的时间间隔,这个间隔被称为Guard Interval (GI)。802.11n仍然使用缺省使用800 ns GI。当多径效应不是很严重时,用户可以将该间隔配置为400 ns,对于一条空间流,可以将吞吐提高近10%,即从65Mbps提高到72.2 Mbps。对于多径效应较明显的环境,不建议使用Short Guard Interval (GI)

####2.6 40/80/160 MHz带宽绑定

对于无线技术,提高所用频谱的宽度,可以最为直接地提高吞吐。就好比是马路变宽了,车辆的通行能力自然提高。传统802.11a/g使用的频宽是20MHz,而802.11n支持将相邻两个频宽绑定为40MHz来使用,所以可以最直接地提高吞吐。

802.11n定义了HT40, 而802.11ac则定义了HT80和HT160

需要注意的是:对于一条空间流,并不是仅仅将吞吐从72.2 Mbps提高到144.4(即72.2×2 )Mbps。对于20MHz频宽,为了减少相邻信道的干扰,在其两侧预留了一小部分的带宽边界。而通过40MHz绑定技术,这些预留的带宽也可以用来通讯,可以将子载体从104(52×2)提高到108。按照72.22108/104进行计算,所得到的吞吐能力达到了150Mbps

####2.7 MRC (Maximal-Ratio Combining)

MRC和吞吐提高没有任何关系,它的目的是改善接收端的信号质量。基本原理是:对于来自发射端的同一个信号,由于在接收端使用多天线接收,那么这个信号将经过多条路径(多个天线)被接收端所接收。多个路径质量同时差的几率非常小,一般地,总有一条路径的信号较好。那么在接收端可以使用某种算法,对这些各接收路径上的信号进行加权汇总(显然,信号最好的路径分配最高的权重),实现接收端的信号改善。当多条路径上信号都不太好时,仍然通过MRC技术获得较好的接收信号

####2.8 MU-MIMO

多用户MIMO, 传统的MIMO, 发送端一次只能与一个接收端进行通信, 事实上, 很多终端设备, 例如手机, 通常只有一根天线, 并不能使用MIMO来提升throughput, 而利用MU-MIMO技术, 多个接收端设备能够组成一个虚拟的MIMO, 发送端可以同时向这些设备发送数据, 能够大大提升发送端的Tx Throughput

在现实场景中, AP端通常都具有多天线, 而实际使用时, 终端设备往往下行数据较多, 上行数据较少, 因此,MU-MIMO提升AP端的Tx throughput的实际意义较大

###3. MAC层改进

####3.1 帧聚合 A-MSDU

MSDU ( MAC Service Data Unit) 指的是上层传输给MAC层的数据, 其添加 Mac 层的帧头和帧尾后, 形成 MPDU, 传递给物理层处理

A-MSDU技术是指把多个MSDU通过一定的方式聚合成一个较大的载荷。这里的MSDU可以认为是Ethernet报文。通常,当AP或无线客户端从协议栈收到报文(MSDU)时,会打上Ethernet报文头,我们称之为A-MSDU Subframe;而在通过射频口发送出去前,需要一一将其转换成802.11报文格式。而A-MDSU技术旨在将若干个A-MSDU Subframe聚合到一起,并封装为一个802.11报文进行发送。从而减少了发送每一个802.11报文所需的PLCP Preamble,PLCP Header和802.11MAC头的开销,同时减少了应答帧的数量,提高了报文发送的效率。

A-MSDU报文是由若干个A-MSDU Subframe组成的,每个Subframe均是由Subframe header (Ethernet Header)、一个MSDU和0-3字节的填充组成。

A-MSDU技术只适用于所有MSDU的目的端为同一个HT STA的情况

####3.2 帧集合 A-MPDU

MPDU (MAC Protocol Data Unit) 指的是MAC层传递给物理层的数据, 包含MAC层的帧头和帧尾

与A-MSDU不同的是,A-MPDU聚合的是经过802.11报文封装后的MPDU,这里的MPDU是指经过802.11封装过的数据帧。通过一次性发送若干个MPDU,减少了发送每个802.11报文所需的PLCP Preamble,PLCP Header,从而提高系统吞吐量

其中MPDU格式和802.11定义的相同,而MPDU Delimiter是为了使用A-MPDU而定义的新的格式。A-MPDU技术同样只适用于所有MPDU的目的端为同一个HT STA的情况

####3.3 Block ACK

为保证数据传输的可靠性,802.11协议规定每收到一个单播数据帧,都必须立即回应以ACK帧。A-MPDU的接收端在收到A-MPDU后,需要对其中的每一个MPDU进行处理,因此同样针对每一个MPDU发送应答帧。Block Acknowledgement通过使用一个ACK帧来完成对多个MPDU的应答,以降低这种情况下的ACK帧的数量

Block Ack机制分三个步骤来实现:

  1. 通过ADDBA Request/Response报文协商建立Block ACK协定。
  2. 协商完成后,发送方可以发送有限多个QoS数据报文,接收方会保留这些数据报文的接收状态,待收到发送方的BlockAckReq报文后,接收方则回应以BlockAck报文来对之前接收到的多个数据报文做一次性回复。
  3. 通过DELBA Request报文来撤消一个已经建立的Block Ack协定

###3. 不同协议的兼容

####3.1 11b和11g的防护模式

在802.11b/g混合模式中,当802.11g站点使用ERP-OFDM调制技术向信道发送OFDM信号时,802.11b站点监听到信道有信号,但因其无法识别出是802.11g站点发送的信号正在使用信道,于是将OFDM信号当做信道噪声,认为信道空闲,继而也向信道发送数据,从而引起冲突。为了避免上述冲突发生,使802.11b/g设备能够相容工作,IEEE提出在802.11gMAC层中使用保护机制

保护机制提供了一种允许802.11g设备根据具体的工作环境选择OFDM调制技术或CCK调制技术的功能。在实际应用中,保护机制有CTS-to-self和RTS/CTS两种实现方式

  1. CTS-to-self : 通常,802.11g工作站是使用「反身 CTS 防护」(CTS-to-self protection),当工作站必须为待传帧采用防护机制时,就会发送一个 CTS 帧,并且将接收端位址设为本身的MAC, 换言之, CTS 帧的目的地为工作站本身 CTS 帧用来更新网络配置向量(NAV),告诉其他正在使用实体介质的工作站,随后将占用无线链路多少时问,以便传送 CTS,OFDM 调制的帧,以及经OFDM 调制的回应讯息, 虽然工作站是将 CTS 传送给自己,不过网络上所有工作站都必须聆听CTS 帧,并且据以更新 NAV。CTS 帧是以可行的最高速率传送,并且使用所有工作站均了解的调制方式, 如此一来,传输量必然会大幅降低。以最高速率传送最大的 Ethernet 数据帧及其回应总共需要 294 微秒,不过用来净空网络的 CTS 帧至少需要 107 微秒·如果使用长同步信号的话,可能需要 200 微秒以上的时间
  2. RTS/CTS : 第二种机制是采用完整的 RTS/CTS 交换程序, 完整的 RTS/CTS 交换程序在遭遇隐藏节点时比较可靠,不过必须牺牲一些传输量做为代价, 用来预订介质使用权的相容性帧,搞不好比传送数据占用更长的时间, RTS与 CTS 各占用 100 微秒,而最大数据帧及其回应讯息总共也才用掉 300 微秒

CTS-to-self模式的实现只需由发起站点通告一个CTS帧,导致的带宽耗费和网络延时相对RTS/CTS模式较少,但它无法处理“节点隐藏”问题,隐藏节点侦听不到CTS信号时,冲突还可能发生。为了尽量避免冲突,必须使用鲁棒性更好的RTS/CTS模式

凡是需要确保 802.118 工作站不致干扰 802.11b 工作站的场合,就得敌用防护机制。比较明显的情况是 802.11b 工作站与基站进行连接时。此时所有与基站连接的 802.119 工作站均会启动防护机制,以确保 80211b 工作站不致于受到或造成干扰。比较不明显的场合,像是与 802.11b 基站共用频道的情况下也会启用防护机制。因为共用频道的两部基站必须分享实体介质,其他基站上使用相同频道的 802.11b 工作站也会触护防护机制

防护机制系通过 Beacon 帧中的 ERP 信息元素来控制。802.11g 在 Beacon 帧的信息元素中加入了一个 Use Protection 位元。只要此位元设置为 1, 工作站就必须使用防护机制。当一 部非 802.11g 工作站连接到无线局域网络,此防护位元就会被设置负责传送 Beacon 帧的工作站必须负责判断是否败用防护机制。在基础型网络里,防护机制是由基站所掌控。在独立型网络中,则是由 Beacon 发送者负责

802.11g 网络中的 Beacon 帧也可以用来控制同步信号的长度,藉此达到防护的目的。在ERP 信息元素中,Barker Preamble Mode 位元可用来告诉所有已连接的工作站,究竟应该使用长同步信号或短同步信号。如果网络上所有工作站均能够使用短同步信号,则 Barker Preamble Mode 位元就会被设置为 0,并且所有工作站均将使用短同步信号以达到更高效率。不过,只要其中一部工作站无法使用短同步信号与网络连接,此位元就会被设置为 1,而且所有防护帧均将使用长同步信号

虽然 802.11 g 能够达到 802.11 a 的传输率,不过防护机制所占用的额外传输时问,或许会让数据传输量腰斩一半, 有测试结果表明:

  • 纯802.11g模式下,网络平均吞吐率最大可达23.95Mb/s
  • 启用CTS-to-self保护机制的802.11b/g混合模式下,网络平均吞吐率仅为11.45Mb/s,约为前者的50%
  • 启用RTS/CTS保护机制时,网络平均吞吐率只有7Mb/s,减少到前者的30%,

####3.2 11n兼容 11a/b/g

WLAN标准从802.11a/b发展到802.11g,再到现在的802.11n,提供良好的向后兼容性显得尤为重要。802.11g提供了一套保护机制来允许802.11b的无线用户接入802.11g网络。同样的,802.11n协议提供相似的机制来允许802.11a/b/g用户的接入。

802.11n设备发送的信号可能无法被802.11a/b/g的设备解析到,造成802.11a/b/g设备无法探测到802.11n设备,从而往空中直接发送信号,导致信道使用上的冲突。为解决这个问题,当802.11n运行在混合模式(即同时有802.11a/b/g设备在网络中)时,会在发送的报文头前添加能够被802.11a或802.11b/g设备正确解析的前导码。从而保证802.11a/b/g设备能够侦听到802.11n信号,并启用冲突避免机制,进而实现802.11n的设备与802.11a/b/g设备的互通

除了发送兼容的前导同步信号和帧头之外,802.11n设备还能使用802.11g中提供的其他保护机制让使用旧标准的设备知道发送数据和执行退避的时机。这种借用802.11g被802.11n使用在802.11g和802.11a上的机制称为“自我CTS”(CTS-toself)802.11n设备会发送一个“自我CTS”帧,这个CTS帧包含了足够的信息,能够保护接下来802.11n的传输不被周围的旧标准设备干扰。这个CTS信号必须使用旧标准能够读取的传输方式发送。使用的兼容的前导同步信号和自我CTS等保护模式特性的开销非常较大,抵消了802.11n能带来的部分好处,在混合模式中802.11n设备的传输吞吐量将会下降

802.11n还可以工作在一种称之为HT- greenfield的纯粹模式,即不需要保护机制,也无需向后兼容传统的数据包格式, HT-greenfield无需增加传统的前导信号和帧头。它减少了12微秒的开销,因此它可以对无法汇聚的短尺寸和中等尺寸的载荷提高效率。另一方面,HT-greenfield的帧格式仍然比802.11a/g长4微秒。因此,HT-greenfield对于采用中等长度的数据包来发送多条空间流帮助不大