报文聚合对802.11n性能的影响
来源:互联网 发布:mac安全性与隐私 编辑:程序博客网 时间:2024/06/15 09:51
报文聚合对802.11n性能的影响
2009年802.11n协议正式标准化,再一次实现了物理速率的提升,最高物理速率可以达到了300Mbps。而且,802.11n的A-MPDU(报文聚合)功能充分提高空间媒介的信道利用率,同时带来了WLAN网络的信道承载性能的成倍提升。下面我们就将主要分析一下A-MPDU(报文聚合)功能对802.11n性能的影响。
802.11协议定义每发送一个报文都必然进行信道竞争,都需要根据模式添加物理层报文头,对于单播报文还需要等待物理层的ACK确认,等等这些和实际发送的报文一样都需要消耗信道资源。
下表中假设持续发送1538bytes大小的单播报文,在不考虑重传和错包情况下,对比54Mbps、130Mbps和300Mbps物理速率情况下的单信道理论性能:
物理发送速率(Mbps)
54
130
300
发送一个报文所消耗的时间(us)
217
136
88
发送一个报文所浪费的时间(us)
144
150
150
每秒发送的报文数量(pps)
2768
3497
4202
性能(Mbps)
32.5
40.0
48.1
通过表中的数据可以看出,从54Mbps到300Mbps,虽然物理速率实现近6倍的提升,但实际性能并没有同比上升。802.11n协议为了能够实现WLAN网络性能的同步提升,为WLAN网络应用提供足够的性能,便提出了报文聚合(A-MPDU)技术。
802.11的任何一个报文在物理发送时会被作为一个MDPU发送,每一次发送都必然需要信道竞争和避让,从而消耗信道资源。而报文聚合A-MPDU通过将多个MPDU聚合为一个物理层报文,只需要进行一次信道竞争或避让,就可完成N个MPDU的同时发送,从而减少了发送N-1个MPDU报文所带来的信道资源消耗。通过报文聚合特性,充分提高了信道资源的利用率,极大地实现了802.11网络性能的提升。
图1为A-MPDU的结构图,其中MPDU Delimiter是为了A-MPDU而专门定义。另外,A-MPDU技术只会聚合同一个客户端的MPDU:
图1 A-MPDU报文结构
A-MPDU报文聚合特性得到了Block ACK功能的强大支持。通常的802.11网络中,任何一个单播报文都需要得到目的设备的ACK确认,每一个ACK都是一个802.11报文,都需要消耗信道资源。而Block ACK可以配合A-MDPU特性,对于整个A-MDPU中所有的802.11报文只需要一个Block ACK报文,充分减少了信道资源的消耗。
下面分别在20MHz和40MHz信息情况下对802.11n性能进行理论分析。通过图2、图3、图4、图5可以看出802.11的A-MPDU报文聚合为WLAN网络带来了极大的性能提升(以下分析结果假设每一个802.11报文都为1534bytes):
图2 20MHZ聚合报文数和性能关系
图3 20MHZ聚合报文数和信道利用率关系
图4 40MHZ聚合报文数和性能关系
图5 40MHZ聚合报文数和信道利用率关系
至此我们可以了解到,虽然802.11n的物理速率实现了接近6倍的提升,却没有为WLAN性能带来大的提升,但是却通过A-MPDU报文聚合将WLAN性能提升了6倍,最终实现了WLAN网络物理传输速率和性能的同步提升,将WLAN应用带到了一个高速接入的时代。
- 报文聚合对802.11n性能的影响
- 报文聚合对802.11n性能的影
- 【SQL】null对聚合函数的影响
- ToString()对性能的影响
- 视图对性能的影响
- synchronized 对性能的影响
- arraysize 对性能的影响
- 视图对性能的影响
- 文件系统对性能的影响
- malloc的标志对性能的影响
- static局部变量对性能的影响
- Ajax 对Web性能的影响分析
- Log4J对应用性能的影响
- Log4J对应用性能的影响
- 临时对象对软件性能的影响
- Java JVM设置对性能的影响
- 绑定变量对性能的影响
- 依赖自动统计对性能的影响
- (每日算法)LeetCode --- Combinations (组合数)
- Android managedQuery查询如果加入group by条件(及其猥琐的方法)
- Android开发实战--保存数据
- VS2013常用快捷键
- OpenSuSE 引导项修复(亲测可用)
- 报文聚合对802.11n性能的影响
- 算法 第一课
- [轉]深入理解C/C++ [Deep C (and C++)]
- RequestMethod.DELETE RequestMethod.PUT 这些类型是什么时候使用。
- MTK F&Q
- 你第一要做的是开始去做
- 完全重新初始化vs2013
- effective C++ 读书笔记 条款12与条款13
- java.util.NoSuchElementException