一. 概述
1. 本文主要对802.11n协议的MAC层做一个简单记录,主要是描述其在吞吐量提升方面的措施,包括如下内容:
1) 聚合;
2) 块确认;
3) 与传统设备的保护机制;
4) 20/40MHz共存模式;
2. 随着PHY的速率不断提高,11n最高已经达到600Mbps了,但实际吞吐量(MAC层)的增加确越来越低,《下一代无线局域网–802.11n的吞吐量、强健性和可靠性》书中提到两组数据:
1) 40MHz 2x2 PHY速率为270Mbps情况下,MAC层只能得到约92Mbps的吞吐量,MAC层的效率大约为1/3;
2) 40MHz 4x4 PHY速率为540Mbps情况下,MAC层的吞吐量和上者是一样的;
3. 造成MAC层效率非常低的原因:随着PHY速率增加,前导码和帧间距的固定开销越来越大:
1) 有效载荷相对较短的情况下,前导码和帧间距占用了更大比例的传输时间;
2) 更多的空间流,需要的前导码也更长,使得系统开销比例也升高了;
下图是一个1500B大小的帧,在不同PHY速率下,前导码的系统开销占比:
Note:1500字节的帧尚且如此,如果有效载荷更短,比如只有50B,那系统开销的占比将更加惊人;
4. 为了提升效率,802.11e(前面两点)和802.11n(后面两点)均在以下几个方面进行改进:
1) TXOP内进行数据突发:即一次空口竞争,发送多个报文,减少了空口竞争过程的开销;
2) 理解块确认:发送方每次发送完数据,接收方不再马上进行ACK确认,而是发送方先连续发送多个数据帧,然后再与接收方进行沟通确认(BAR、BA);
3) 缩小帧间间距:使用比SIFS更短的间距RIFS;
4) 数据聚合:将进行聚合到一起,共用一些系统开销(如前导码、802.11 MAC头);
二. 专业术语
本小节对一些专业术语进行一个简要的说明,如下:
1. LLC:Logic Link Control,逻辑链路控制子层;
2. MAC:介质访问控制子层;
3. PLCP:Physical Layer Convergence Procedure,物理层会聚协议;
4. PMD:Physical Medium Dependent;
5. MSDU:MAC Service Data Unit,当网络层数据传到LLC子层,会在网络层数据前添加LLC头,其中包括加密信息等,此时数据包被称作MSDU,但需要注意的是:控制帧、管理帧和数据帧中,只有数据帧才会在LLC中形成MSDU,一般MSDU的最大size是2304(不含加密信息部分);
6. MPDU:MAC Protocol Data Unit),MSDU移交到MAC层的时候,会加上MAC头部信息和尾部FCS校验信息,这时就形成了一个802.11无线帧,也就是我们平常无线抓包所看到的帧,此时数据包就称作MPDU;
7. PSDU:PLCP Service Data Unit,当MPDU传到PLCP子层,数据包就换名字了,虽然是同一个东西,但此时就叫PSDU了;
8. PPDU:PLCP Protocol Data Unit,当PSDU到达PLCP子层后,会加上前导同步码(PLCP Preamble Code)和PHY头部(PLCP Header)&#