Wi-Fi 6(802.11ax)解析14:非主动形式的BSR(Buffer Status)反馈

news2025/3/12 13:28:26

序言

该机制的基本思想就是通过AP竞争,获得TXOP传输时间后,根据各个终端的缓存情况,进行RU资源的分配,当分配完成后,进行上行OFDMA的传输。在这个过程中,缓存情况的反馈可以通过AP询问的方式主动完成(即AP发送BSRP帧向终端请求),也可以进行非主动的反馈,本文就针对于非主动反馈缓存信息BSR(Buffer Status Reports)做一个介绍。

非主动的BSR反馈

在802.11ax中,UL-OFDMA一共有三次帧交换过程,一共包含了3个触发帧

  • Trigger #1:BSRP帧,用于请求终端的缓存情况
  • Trigger #2:MU-RTS帧,用于兼容保护传统的802.11终端,以及分配RU资源
  • Trigger #3:Basic-Trigger帧,用于触发节点进行并行的上行传输

在此叙述中,我们重点描述的是,AP采用显式的请求终端们的缓存情况(即BSRP,BSR过程)。在实际情况下,UL-OFDMA不一定具备完整的这个三个触发帧。比如,若网络中不存在传统的802.11终端,则不需要MU-RTS帧,或者为了减少开销,AP不用显式的发送BSRP帧,而是将其和其他的控制帧,数据帧或者管理帧结合进行发送。

终端是可以在未经BSRP请求的时候,直接反馈非主动的BSR帧给AP,即unsolicited buffer status report。终端可以在任意一个帧中利用以下字段发送这种非主动的BSR:

QoS控制字段(QoS Control field):802.11 ax终端可以在其发送的QoS数据帧或者QoS Null帧(也就是只有Header,payload部分为空)中,利用Queue Size字段(每一个QoS类型有一个单独该字段),来反馈缓存的状态信息。另外,终端还可以用聚合帧的形式,反馈多个QoS类别,其不同的缓存情况。不同的QoS类别利用TID进行区分(Traffic identifier,TID)。Queue Size字段用来指示具体的缓存信息。

BSR控制字段(BSR Control subfield):如果是在一个802.11ax的网络中,AP支持BSR控制字段的话,那么终端还可以在发送的任意帧中添加BSR控制字段内,进行BSR信息的反馈。如上图所示,802.11ax会标识不同的QoS接入类别(Access Category,AC)通过ACI High字段,并且反馈具体的Buffer信息通过Queue Size High字段(图上粉色标识为反馈单个接入类型的BSR情况)。终端会决定哪个QoS队列相对于其他队列具备更高的优先级。这一种相对QoS设置的方法并没有在协议中严格规定,从而为不同类型的终端分配优先级提供灵活性。

一个802.11ax终端还可以报告多个QoS类别的缓存情况。这要通过上图中的ACI Bitmap,Delta TID和Queue Size All字段来反馈(图中蓝色标识为反馈多个接入类型的BSR情况)。ACI Bitmap和Delta TID标识多个QoS的接入类型,QoS Size All字段标识其对应的缓存情况。另外还有一个字段为Scaling Factor(SF),这个字段代表缩放因子,用以表示缓存的单位大小。即QoS Size High或者QoS Size All需要配合SF字段才表示真实的缓存情况。SF一共有两位,分别表示了4种缩放情况,如上图所示。这种缩放的表示方法也是为了不同终端其反馈对应流量时候,具有比较高的灵活性。

另外一点需要注意的是,在802.11协议中,协议支持同时在QoS控制字段(QoS Control field)和BSR控制字段(BSR Control subfield)中,同时反馈BSR信息,当然这也协议中是一种可选的选项,而且同时包含BSR信息时,其两个字段所包含的信息需要一致才行。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433288.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Visual Studio Code.app/vscode学习

vscode快速上手使用。 目录: 前言快捷键篇布局篇插件篇vscode问题(调试step into无法跳入) 建议阅读时间:7min x.1 前言 vscode是一款免费的轻量级编辑器,搭配vim可以实现带debug能力的vim自由。 vim自由&#xf…

OpenAI-ChatGPT最新官方接口《错误代码大全》全网最详细中英文实用指南和教程,助你零基础快速轻松掌握全新技术(九)(附源码)

Error codes 错误码 前言Introduction 导言API errors API 错误401 - Invalid Authentication 401 -验证无效401 - Incorrect API key provided 401 -提供的API密钥不正确401 - You must be a member of an organization to use the API 401 -您必须是组织的成员才能使用API429…

Apollo配置中心2.0版本详解

目的 部署一个单节点的Apollo配置中心,且包含dev和pro环境的配置。 需要部署的服务 Portal Service, Admin Service, Config Service(包含Meta service 和 Eureka) 架构图 部署图 部署过程: 数据库脚本: portaldb: https://github.com/apolloconfig/apollo/blob/mast…

HTML+CSS+JS 学习笔记(三)———Javascript(上)

🌱博客主页:大寄一场. 🌱系列专栏:前端 🌱往期回顾:HTMLCSSJS 学习笔记(一)———HTML(上) HTMLCSSJS 学习笔记(一)———HTML(中) HTMLCSSJS 学习笔记&#…

2023年14届蓝桥杯省赛“日期统计”题解

问题描述 小蓝现在有一个长度为 100 的数组,数组中的每个元素的值都在 0 到 9 的范围之内。数组中的元素从左至右如下所示: 5 6 8 6 9 1 6 1 2 4 9 1 9 8 2 3 6 4 7 7 5 9 5 0 3 8 7 5 8 1 5 8 6 1 8 3 0 3 7 9 2 7 0 5 8 8 5 7 0 9 9 1 9 4 4 6 8 6 3 …

cubase elements12中文免费版 详细安装流程

cubase9免费版下载是由Steinberg公司开发的一款音乐制作软件,具有音频编辑处理、多轨录音缩混、视频配乐及环绕声处理等功能,对作曲家和混合工程师来说十分好用,可以大大提高编辑效率,需要的朋友赶快下载吧! 软件地址&…

【Shell-HDFS】使用Shell脚本判断HDFS文件、目录是否存在

【Shell-HDFS】使用Shell脚本判断HDFS文件、目录是否存在 1)文档编写目的2)测试原理3)Shell脚本测试3.1.测试路径是否存在3.2.测试目录是否存在3.3.测试文件是否存在3.4.测试路径大小是否大于03.5.测试路径大小是否等于0 4)总结 1…

调节磁盘和CPU的矛盾-InnoDB的Buffer

一、缓存的重要性 所以 InnoDB 存储引擎在处理客户端的请求时,当需要访问某个页的数据时,就会把完整的页的数据全部加载到内存中,也就是说即使我们只需要访问一个页的一条记录,那也需要先把整个页的数据加载到内存中。将整个页加…

十大排序总结

十大排序 稳定性 有一个数组,3,2,3,4,1 我们把第一个3标记为黑色 第二个3标记为红色 如果排序之后,黑色的3仍在红色3前边,我们就认为这个排序是稳定的 如果红色3在黑色3前面,我们就认为这个排序是不稳定的 插入排序 直接插入排序 想象斗地主时咋摸牌的,保证有序 import…

【Linux系统】Linux文件系统与日志分析

文件系统与日志分析 一、inode与block1.1inode和block概述1.2inode包含文件的元信息1.3Linux系统文件的三个主要时间属性1.4用户通过文件名打开文件的过程1.5inode的大小1.6模拟磁盘ionde用完 二、日志文件2.1日志的功能2.2日志文件的分类2.2.1内核及系统日志2.2.2用户日志2.2.…

深入理解Linux文件系统和日志分析

目录 一、inode于block 1)inode于block概述 2)inode的内容 inode包含文件的元信息 用stat命令可以查看某个文件的inode信息 Linux系统文件三个主要的时间属性 目录文件的结构 用户通过文件名打开文件时,系统内部的过程 查看inode号码…

5.39 综合案例2.0 - STM32蓝牙遥控小车4(体感控制)

综合案例2.0 - 蓝牙遥控小车4- 体感控制成品展示案例说明器件说明小车连线小车源码遥控手柄遥控器连线遥控器代码1.摇杆PS2模块说明2.六轴MPU-6050说明成品展示 案例说明 用STM32单片机做了一辆蓝牙控制的麦轮小车,分享一下小车的原理和制作过程。 控制部分分为手机…

POSTGRESQL LINUX 与 PG有关的内存参释义

开头还是介绍一下群,如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请联系 liuaustin3 ,在新加的朋友会分到2群(共…

阿里阿里,搞不定政企

如果我们问一位关注科技产业,或者关注云计算、AI技术的朋友,4月11日的阿里云北京峰会上讲了什么。他应该马上会说,发布了通义千问啊。 这话确实没错。但仔细观察这场会,却会发现一个问题:嘉宾好像不太对。 AI与大模型活…

代码随想录训练营day48|198、打家劫舍;213、打家劫舍II;337、打家劫舍III

198、打家劫舍 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统,如果两间相邻的房屋在同一晚上被小偷闯入,系统会自动报警。 给定一个代表每个…

HelloWorld案例详解

HelloWorld案例的编写和执行 Java程序开发运行流程 开发Java程序,需要三个步骤: ●编写代码 ●编译代码 ●运行代码 HelloWorld案例的编写 新建文本文档文件,修改名称为HelloWorld.java用记事本打开HelloWorld.java文件,输写…

如何理解样本统计量?

本期介绍样本统计量是怎么算的,并用Python来模拟随机抽样。用一个在鱼塘捞鱼的简单例子来理解样本均值的概念。 如何理解重复试验? 指能够在完全相同条件下进行多次的试验; 比如我们抛10枚硬币,用来计算正面出现的概率&#xff…

(6) 聚类算法KMeans(案例:矢量量化的降维)

文章目录 理论知识1 sklearn.cluster.KMeans1.1 参数n_clusters1.1.1 小试牛刀1.1.2 模型评估指标轮廓系数Calinski-Harabaz Index 1.1.3 案例:基于轮廓系数来选择n_clusters 1.2 参数init & random_state & n_init:初始质心怎么放好?1.3 重要参…

二:伙伴系统

内核空间内存分配 目录 内核空间内存分配 伙伴系统 首先从内核空间开始,讲解内存管理模式。 主要分为三种方式: 这篇文章我们集中注意于伙伴系统 伙伴系统 解决了外部碎片问题,针对大块内存分配设计 Linux中的内存管理的“页”大小为4…

java中使用Redis实现分布式锁

前言 目前很多大型的互联网公司后端都采用了分布式架构来支撑前端应用,其中服务拆分就是分布式的一种体现,既然服务拆分了,那么多个服务协调工作就会出现一些资源竞争的情况。比如多个服务对同一个表中的数据进行处理。容易出现类似多线程的…