芯片开发阶段的帧聚合迥异于商用AP,前者更偏向实现过程,后者偏向结果。也就是说用户在使用商用设备时不会管你特性是如何实现的,他们只关心效果,开启这个功能能否实实在在的提高AP的吞吐量。

  网上搜索了众多教程,大同小异,个别讲的别叫有深度的,妈的又要收费,操蛋。

  好吧,扯远了,貌似每次写学习笔记之前都要先啰嗦几句。妹的,天气热的心情狂躁。


1,概述

  帧聚合是针对802.11n高吞吐量的特性设计的新功能,也就是说早期的a/b/g是不支持的。有些AP在设置界面会让用户选择是否开启聚合(一般AMPUD和AMSDU是分开的),而这个选项一般只在打开11n only或b/g/n mixed模式才显示为激活,但某些AP即使在b/g模式下也可以勾选,但要记住,即使勾选了,也不会生效的。

  聚合,顾名思义就是把把零散的数据包聚合在一块,形成一个大的数据包。由于无线比有线更大的协议开销,如果不加限制的来一个包发送一个,如果是大包还行,特别是上网产生的小包,会生成很大的协议开销。聚合功能就是根据这个需要而诞生。

  聚合是一个MAC的功能,众所周知的网络七层协议,开启聚合后,数据从上往下传输,在MAC会被聚合起来。聚合也分先后,从LLC下发到MAC会先聚合为MSDU,经过MAC加工后形成MSDU,然后下发到PHY的PLCP层,此时可以聚合为PSDU。(待确认,貌似我文字能力太差了,一个概述都写的乱七八糟。还是简单点吧。)

2,帧结构

A-MPDU帧聚合

 重点:1,每两个MPDU帧中有一个Delimiter,作用一,分隔MPDU以方便解析;作用二,某个MPDU解析错误时跳到下一个以Delimiter结尾的MPDU继续解析。

      Delimiter帧结构:

      

        MAC Header后面就是A-MPDU subframe,而A-MPDU subframe帧以Delimiter开头,意思是说,A-MPDU以Delimiter开始,以delimiter结束?至于结束时有没有Delimiter,还待定。

      各个字段的含义:

      

    2,11n协议规定,MPDU报文必须为四个字节的整数倍,所以MPDU结尾都有一个Pading来补足这个限制。

    3,11n协议规定,A-MPDU报文长度不能大于65535字节。芯片中,A-MPDU传输是分片的,Fragment长度为2346个字节。

    4,小报文发送频繁,为避免响应不及时,协议规定A-MPDU只能封装一个小于256字节的数据就必须发送。

    5,每个MPDU都有对应的序列号,接收方根据MPDU的序列号发送BA。

    6,A-MPDU既支持单播数据,也支持组播和多播。

2013-7-28 802.11n帧聚合的更多相关文章

  1. 自学Aruba1.3-WLAN一些基本常识802.11n速率计算方式、802.11n及802.11AC速率表

    点击返回:自学Aruba之路 自学Aruba1.3-WLAN一些基本常识802.11n速率计算 1. 802.11n速率计算方式1.1 802.11n使用的主要技术 802.11n采用MIMO多天线技 ...

  2. 802.11n 连接的建议设置是什么?

    这些是用于支持 802.11N 的英特尔无线适配器的默认设置. 这些建议采用的设置可以在英特尔® PROSet/ 无线软件的 高级菜单上找到. 属性 值 频带 2.4 的 802.11n 通道宽度 自 ...

  3. 自学Aruba1.2-WLAN一些基本常识802.11n速率计算方式、802.11n及802.11AC速率表

    点击返回:自学Aruba之路 自学Aruba1.2-WLAN一些基本常识802.11n速率计算方式.802.11n及802.11AC速率表 1. 802.11n速率计算方式 以802.11g的54M最 ...

  4. 网络工程知识(二)VLAN的基础和配置:802.1q帧;Access、Trunk、Hybrid接口工作模式过程与配置;VLANIF的小实验

    介绍-VLAN VLAN(Virtual Local Area Network)即虚拟局域网,工作在数据链路层. 交换机将通过:接口.MAC.基于子网.协议划分(IPv4和IPv6).基于策略的方式划 ...

  5. 用802.11n 加速,将android手机屏幕投影到win7电脑上

    在做Android应用开发的时候,经常需要将已经完成的应用展示给一同开发的小伙伴,然而一直感觉没有找到一种十分方便的办法.特别是看到了开发IOS的小伙伴在做展示的时候的方便.因为Apple既做PC,也 ...

  6. 2013/8/28 JS+HTML 三级省市区联动

    var mp = ["安徽","北京","福建","甘肃","广东","广西", ...

  7. http://www.cnblogs.com/Joyes1989/archive/2013/06/28/3161739.html centos 输入法安装切换

    昨天装了一个centos  安装输入法的时候  让我有点纠结  全英文的 读不懂

  8. vs远程调试 转http://www.cnblogs.com/magicchaiy/archive/2013/05/28/3088274.html

    远程调试应用场景 部署环境:ASP.NET(C#)+IIS+Win7 64 bit 很多公司的开发模式都是将开发机器和服务器分开,也就是开发一台机,服务器一台机.而测试人员会在服务器上录入测试数据,此 ...

  9. <2013 12 28> AOI PCB设计

    主要设计指标: “3.多块拼板最大尺寸:60*50(CM)4. 检测速度:(230-250)片/小时 5.检测通过率:98%6.最窄线宽:设两种精度 A.最窄线宽:0.2mm, 识别精度 0.1mm  ...

随机推荐

  1. vector中erase用法注意事项

    以前就发现了vector中的erase方法有些诡异(^_^),稍不注意,就会出错.今天又一次遇到了,就索性总结一下,尤其是在循环体中用erase时,由于vector.begin() 和vector.e ...

  2. CLIENT_0004:Unable to find valid Kerberos ticket cache (kinit)

    背景 今天在使用JavaAPI来连接sqoop1.99.7的时候,遇到了个错误. 错误信息如下: 0 [main] WARN org.apache.hadoop.util.NativeCodeLoad ...

  3. IoC基础例子

    一个简单的例子: 一般新建一个com.dao包,存放一些dao接口. com.dao.impl里面存放具体的dao com.service存放service接口 com.service.impl具体的 ...

  4. oracle不小心更新了数据库中的所有内容后的恢复

    开发过程中,在更新数据库中的某一条数据时,由于疏忽忘记加where判断条件了,这时更新会提示是否要更新全部数据,但是由于自己没有仔细看提示导致直接点确定并commit了,导致数据库中所有数据的相关字段 ...

  5. Redis----windows下的常用命令

    1:首先下载redis.从下面地址下:https://github.com/MSOpenTech/redis/releases2:创建redis.conf文件:这是一个配置文件,指定了redis的监听 ...

  6. 超炫jQuery测试答题功能

    推荐一款超炫jQuery测试答题功能插件 实例代码 <body> <div class="container" id="main"> & ...

  7. nwjs 实现的 分块上传

    1.先上核心工具类/** * Created by Administrator on 2017/6/12. */let fs = require("fs");/** * Creat ...

  8. UIApplication的详细介绍

    UIApplication 什么是UIApplication? UIApplication对象是应⽤程序的象征.每一个应用都有⾃己的UIApplication对象,这个对象是系统自动帮我们创建的, 它 ...

  9. I.MX6 Android Linux UART send receive with multi-thread and multi-mode demo

    /******************************************************************************************* * I.MX6 ...

  10. Windows下C++删除清除map

    清除单map(非嵌套map) #include<map> #include<string> #include<iostream> using namespace s ...