热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

802.11802.11ac协议

一.概述IEEE802.11工作组在2013年发布了802.11ac(Wave1)标准,然后在2016年又发布了802.11acWave

一. 概述

IEEE 802.11工作组在2013年发布了802.11ac(Wave1)标准,然后在2016年又发布了802.11ac Wave2版本,在Wave1的基础上做了一些改进与升级,本文不着重对比Wave1和Wave2的区别,而是将他们作为一个整体进行介绍。
  802.11ac又称为VHT(Very High Throughput),WFA将其重命名为WiFi5,是第一个速率超过1Gbps的802.11协议;
  802.11ac相对于802.11n的改动并没有非常大,更多的是对802.11n协议的加强,以及引入部分新的特性,主要从PHY、MAC两个维度简单概括一下802.11ac的新特性;


二. 专业术语

本小节对一些专业术语进行一个简要的说明,如下:
  1. A-MPDU:aggregate MAC protocol data unit;
  2. A-MSDU:aggregate MAC service data unit;
  3. HT-GF-STF:High-Throughput Greenfield Short Training field;
  4. HT-SIG:High-Throughput SIGNAL field;
  5. HT-STF:High-Throughput Short Training field;
  6. LDPC:low-density parity check;
  7. L-LTF:Non-HT Long Training field;
  8. L-SIG:Non-HT SIGNAL field;
  9. L-STF:Non-HT Short Training field;
  10. LTF:Long Training field;
  11. MCS:modulation and coding scheme;
  12. MIMO:multiple input, multiple output;
  13. NDP:null data packet;
  14. RIFS:reduced interframe space;
  15. SPP:A-MSDU signaling and payload protected aggregate MAC service data unit;
  16. STBC:space-time block coding;


三. PHY层

简单例举一下802.11ac协议中phy的新特性,主要包括如下:
  1. 工作频段:仅工作在5G频段;
  2. 支持3种工作模式:
   1) NON_HT:Non-HT format;
   2) HT_MF:HT-mixed format;
   3) 放弃了802.11n协议的HT_GF模式,增加了兼容性;
   4) VHT-mixed format,类似HT_MF模式,802.11ac协议新增的模式;
vht ppdu1
vht ppdu2
   简单了解一下VHT PPDU:
    a) VHT-SIG-A分为两个部分:VHT-SIG-A1和VHT-SIG-A2,一共48bit,如下所示(详细参见《IEEE 802.11-2016》21.3.8.3.3 VHT-SIG-A definition章节):
vht-sig-a
    b) VHT-SIG-B字段是一个变长字段,不同的频宽、SU和MU PPDU下各字段的长度是动态变化的,如下所示:
vht-sig-b
    Note:VHT-SIG-B字段每个20M频宽都发送一次,40M发送两次,80M发送4次,依次类推;
    c) VHT PPDU的发送:前导码部分使用的bpsk rate 1/2(6Mbps)的速率发送,数据部分则是由VHT-SIG-A中指定的mcs发送,如下所示:
vht ppdu tx
  3. MIMO
   1) 改进SU-MIMO,最多可支持8条流;
   2) 支持MU-MIMO,一次可以同时和4个终端通信,但只支持DL MU-MIMO,上行方向并不支持;
  4. 信道频宽
   1) 最大支持可选160MHz的频宽(包括80+80方式),此外还支持必选80、40、20的频宽;
   2) 相比于802.11n,没有了信道向上、向下绑定的概念,而是以中心频率代替,802.11ac中主信道、辅信道的设定和802.11n是一致的;
  5. 更高阶的调试技术
   1) 引入256-QAM,每个OFDM符号可以携带8bit信息;
   2) mcs增加了两个:mcs8、mcs9,共10中mcs方式;
   3) 在802.11n协议和信道带宽、空间流数相绑定,总共定义了77个mcs,802.11ac不再和带宽、流数绑定定义mcs,进行了简化:只定义了mcs0~mcs9共10种mcs;
   4) 和802.11n相比,调制方式对比如下:
vht-mcs
  6. 多空间流:最多可以支持8条空间流,相比WiFi4增加了1倍;
  7. 波束成形:简化设计,降低复杂度;
   1) 仅支持显式波束成形,不再支持隐式波束成形;
   2) 改进信道探测和反馈方式:信道探测使用空数据帧NDP,反馈信息由compressed V matrix组成,放弃了原来多种探测方式和多种反馈方式;
   Note:在802.11n显示波束成形中对信道的探测可以有两种方式:NDP(Null data packet,空包帧)和staggered preamble,反馈格式上有三种:CSI、Noncompressed beamforming和Compressed beamforming,在反馈的实时性上分为immediate和delayed两种;在802.11ac中仅支持NDP的探测方式,在反馈格式上只支持compressed V matrix,并采用immediate的方式。
  8. 信道评估CCA:跟802.11n类似,有一些区别,方法由40M扩展到80M、160M:
   1) 主信道载波监听信号强度-82dBm,辅信道仅进行能量检测,信号强度:-69dBm或-72dBm(频宽不同而不同);
   注意:
    a) 能量检测的信号强度和11n有些不同,11n的能量检测信道强度是-62dBm;
    b) 虽然11ac将能量检测信道强度降低了,但还是会存在主、辅信道检测不对称的情况,如果载波监听只需要-82dBm以上信号才认为信道忙,但实际却是-69dBm或-72dBm以上才认为繁忙;
    c) 主、辅信道的检测要求的不对称,导致使用辅信道的条件比主信道低,这样更容易发送冲突:辅信道有人在发送数据,但能量未达到阈值,此时发送方认为空闲,就把数据发送出去了,但造成的冲突可能会导致接收方那边无法正确解码;
   2) 主信道采用传统的DCF/CDCA方式竞争信道,DIFS周期后进入随机退避计数;辅信道在退避计数为0之前,对辅信道进行能量检测,周期为PIFS;
   3) 以上方式竞争信道就会出现以下一些组合:
    a) 主信道忙,所有辅信道也忙:此时不能发送数据,重新选一个随机时间再次检测整个信道(主信道+辅信道);
    b) 主信道忙,部分辅信道空闲:此时不能发送数据;
    c) 主信道忙,所有辅信道空闲:此时不能发送数据;
    d) 主信道空闲,所有辅信道也空闲:此时可以用主信道、所有辅信道发送数据;
    e) 主信道空闲,部分辅信道空闲:此时就有两种选择,不发送数据(11n协议的静态绑定),或者使用主信道+主信道相邻的辅信道发送数据(11ac新引入的动态绑定);
    f) 主信道空闲,所有辅信道忙:这种情形跟上一种是一样的;
  9. 由于实现起来比较复杂、或者带来的增益有限、或者有更好的方案替代等,去除了RIFS、L-SIG TXOP保护、PCO操作、Dual CTS等;


四. MAC层

MAC层也做了一些改进,主要是对802.11n协议的加强:
  1. Enhanced RTS/CTS
   1) 最初是用于解决隐藏节点碰撞问题,后来被用于虚拟载波监听;
   2) 802.11ac则进一步改进,将其用于动态频宽(动态信道管理),80MHz的频宽下,可以通过RTS/CTS,探测哪些信道不可用,从而降低到40MHz、20MHz来发送数据;
   3) 协调机制
    a) 在其使用的信道内以20MHz为单位的子信道内发送RTS,当信道带宽为80MHz时,再复制3份到其余60MHz的3个辅信道上;当信道带宽为160MHz时,复制7份到剩下的140MHz,这样做的好处:不管周边设备的主信道是80MHz或者160MHz信道中的任意20MHz都可以侦听到这个RTS报文,每个收到RTS报文的设备将虚拟载波侦听设为忙;
    b) 收到RTS报文的设备会检测其主信道或者80MHz带宽内的其他子信道是否繁忙,如果信道带宽的一部分被使用,则接收设备只会在CTS帧内响应可用的20MHz的子带宽,并报告重复的带宽;
    c) 在每个可用的20MHz带宽的子信道上回复CTS报文,这样发送设备就知道了哪些信道是可用的,哪些信道是不可用的,最终只在可用的子信道上发送数据,需要注意的是可使用的信道只能是连续的:80MHz、40MHz、20MHz,而不能是不连续:60MHz、不连续的40MHz;
  2. Enhanced A-MPDU/A-MSDU;
   1) AMSDU:可选支持长度最大增加到11454 B,802.11n无直接限制,比HT MPDU的最大值(8192)稍小一点:7935 B;
   2) AMPDU:可选支持长度最大增加到11048575 B,802.11n为65535 B;
   Note:部分数据的长度如下所示
vht phy max bytes
  3. MU-MIMO
   1) 应答机制:AP在竞争到信道后发送Multi-User数据帧,并向三个Station独立地请求BLOCK ACK确认及接收应答,如下所示:
MU-MIMO BA
   Note:其中第一个sta可以直接进行BA的应答,不需要BAR,但笔者一直没有找到第一个sta具体是指哪个:STA1、STA2、STA3?
   2) 队列控制:在AP竞争到信道后,就可以开始一次MU传输,在SU-MIMO中,向手机传输语音流的时候,其他的设备必须等待,在MU-MIMO中,可以同时向其他的设备传输低优先级报文,促使AP竞争到介质访问权的接入类(AC)叫做主AC,其他的AC就叫做二级AC,二级AC可以搭便车向其他接收端传输数据流,前提是二级AC的长度不应超过主AC的长度,如下所示:
MU-MIMO AC BA
   Note:此处笔者也有类似的疑惑,接收端如何知晓哪个是主AC sta,因为主AC sta可以直接回复BA;


附:

华为《什么是802.11ac和802.11ac Wave2》一文中有一个和802.11n对比,笔者觉得非常不错,特意记录下来
wifi4vswifi5


五. 参考资料

1. 《IEEE 802.11-2016》;
  2. 802.11ac技术解析:http://www.h3c.com/cn/d_201708/1018832_30005_0.htm;
  3. 什么是802.11ac和802.11ac Wave2:https://support.huawei.com/enterprise/zh/doc/EDOC1100081210;
  4. 深入探究802.11ac技术:https://www.mwrf.net/tech/communications/2012/7412.html;
  5. 一文看懂802.11ac和802.11n的区别:https://www.21ic.com/article/822080.html;


推荐阅读
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 20189216 2018-2019-2 《密码与安全新技术专题》第二次作业
    201892162018-2019-2《密码与安全新技术专题》第二次作业课程:《密码与安全新技术专题》班级:1892班姓名:鲍政李学号:20189216上课教师:谢四江上课日期: ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文详细介绍了MySQL表分区的创建、增加和删除方法,包括查看分区数据量和全库数据量的方法。欢迎大家阅读并给予点评。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • Android系统源码分析Zygote和SystemServer启动过程详解
    本文详细解析了Android系统源码中Zygote和SystemServer的启动过程。首先介绍了系统framework层启动的内容,帮助理解四大组件的启动和管理过程。接着介绍了AMS、PMS等系统服务的作用和调用方式。然后详细分析了Zygote的启动过程,解释了Zygote在Android启动过程中的决定作用。最后通过时序图展示了整个过程。 ... [详细]
  • JSP 从入门到精通
    .body{textalign:center;}什么是URIURLURN?URI全称统一资源标识符,现在有两个方案,就是URL和URN.URL统一资源定位符,通常由scheme,d ... [详细]
author-avatar
手机用户2602938185
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有