• WIFI6 TWT机制介绍


    前言

    TWT(target wake time)最早在802.11ah中提出,在802.11ax(WIFI 6)中也进行了应用。TWT使设备可以决定唤醒并发送/接收数据的时间和频率,可以提升节电效果。

    在TWT中,终端和AP之间建立了一张时间表(该时间表是终端和AP协定的),时间表是由TWT时间周期所组成的。当终端和AP所协商的时间周期到达后,终端会醒来,并等待AP发送的触发帧,并进行一次数据交换。当本次传输完成后,返回睡眠状态。每一个终端和AP都会进行独立的协商,每一个终端都具有单独的TWT时间周期。AP也可以将终端们根据设定的TWT时间周期进行分组,一次和多个终端进行连接,从而提高节能效率。

    1. wifi传统节电模式介绍

    1.1 802.11设备工作模式

    802.11设备共有4种工作模式:休眠、接收空闲、接收和发送。其中休眠模式的能耗最低,接收空闲模式时,节点侦听信道但并不接收数据。实际过程中,为保证发送和接收没有冲突,节点需长时间处于空闲状态而消耗能量,所以引入休眠模式来代替接收空闲模式,达到节能目的。

    1.2 被动请求机制

    802.11提供被动请求机制,使STA可以控制AP给自己发送相应的下行帧。具体包含缓存和PS-Poll过程。缓存过程中,AP不直接给STA发送数据,而是以MSDU的形式缓存;PS-Poll机制中,若STA休眠结束,则对AP发送PS-Poll帧来请求数据,AP检查相应缓存并下发。

    1.3 信标

    1.3.1 信标帧结构

    1.3.2 TIM字段结构

    DCIM计数:表示距离下一个DTIM信标帧还有多少个信标

    部分虚拟位图用于指示AP是否缓存了STA的数据

    1.4 控制帧

    1.5 传统节电模式

    1.5.1 传统节电模式工作过程

    控制帧的功率管理字段控制STA在活跃和节能模式之间转换。

    STA处于睡眠时,若这段时间有发给STA的数据,那么这些数据将被AP缓存起来,等STA唤醒再传输。AP通过信标中的TIM(传输指示映射)字段来指示是否有缓存数据要给节能的STA。AP周期性在每个TBBT(target beacon trasmission time)广播信标帧,STA也周期性根据自己的侦听间隔唤醒,接收信标帧,若查看TIM后发现没有自己的缓存数据则继续睡眠,若有数据缓存在AP端则STA向AP发送PS-poll请求索取数据。如果AP有不止一个数据要给STA,则将控制帧的more data置1。

    1.5.2 传统节电机制的不足

    AP没有分别与每个STA协商唤醒的时间,在发送缓存的多播帧时,让所有的STA都一直保持唤醒,这样对不接收多播帧或只接收部分多播帧的STA来说,造成了不必要的电源消耗。

    如上图,在TWT模式下,User 1和User 2分别和AP协定了两个TWT时间周期,分别为TW1和TW2。终端User 1和User 2默认就工作在睡眠模式下(sleep mode),保持一个较低的功耗。当TWT时间周期到达时,AP会发送一个触发帧(Trigger)给终端,终端进而苏醒并和AP执行数据交换,当数据交换完成后,终端恢复睡眠模式。如果是传统PS模式,若本轮beacon帧中提示有User 1的信息,那么其不会在TW1时间内睡眠,会保持苏醒,直到数据交换完成。

    TWT和传统PSM模式的差别是,终端只在TWT时间开始的时候苏醒,而在PSM模式中,从该beacon周期开始,终端就会通过该beacon帧中的DTIM信息,观察AP是否由缓存了自己的数据帧,如果有的话,那么就保持苏醒,直到接收完成后,才恢复到睡眠模式。即beacon与设备休眠时间不再具有紧密联系,STA可以请求在将来的任意时间唤醒。

    1.6 TWT

    1.6.1 TWT IE

    TWT中,AP与STA之间发送带有TWT IE(information element)的管理帧来协商TWT服务周期。

    TWT Request为0表示是请求端发出的TWT,为1表示是响应端发出的TWT。

    TWT Command字段设置如下:

    0:Request TWT,表示请求端请求相应端给出TWT参数;

    1:Suggest TWT,表示请求端给出了建议的TWT参数,但是可以接受响应端的TWT参数;

    2:Demand TWT,表示请求端给出了命令的TWT参数,不接受响应端的TWT参数。

    Alternate TWT表示响应端给出与请求端不同的参数,但可以接受请求端的参数。

    Dictate TWT表示相应端给出与请求端不同的参数,不接受请求端的参数。

    Rejict TWT表示响应端拒绝TWT建立,TWT建立失败。

    TWT Flow Identifier表示协商的TWT编号,AP可以与同一个STA协商多个TWT服务期(最多3个)。

    1.6.2 trigger

     

    1.6.3 TWT建立过程

    STA是TWT发起端,AP是TWT响应端。

    STA利用IE的Command字段告知AP请求一个TWT参数或给出自己的建议或命令参数,AP根据实际情况(如TWT服务期的信道空闲情况,预计活动持续时间等)回复带有IE的管理帧与STA协商。

     

    1.6.4 TWT的三种工作模式

    TWT一共有三种工作模式,分别是: 1)Individual TWT, 2)Broadcast TWT, 3)Opportunistic PS。

    1)Individual TWT

    • 终端想要建立一个TWT连接,其会将自己的节能调度信息告知给AP
    • AP将会分配TWT周期,并将该周期反馈给终端
    • 终端一直保持睡眠状态,直到TWT时间到达。终端苏醒,并接收AP的触发帧,即TWT Trigger。当终端接收到该触发后,其会和AP进行数据帧交互。于此同时,AP会告知终端下一次的TWT时间(在显式TWT中),终端会在新的TWT时间定时苏醒并执行数据帧交换。
    • 在本轮交换中,会分成显式和隐式两种工作模式
      • 在本次数据帧交换中,AP会显式告诉终端,下一轮的TWT周期
      • 终端会在新的指定的TWT周期时苏醒,并再一次和AP进行数据帧交换
      • 在本次数据帧交换中,AP不会告诉终端,下一轮的TWT周期
      • 终端会自己计算出下一轮的TWT周期(通过在当前TWT周期上增加一个特定的时间)
      • 终端会在自己计算的TWT周期时苏醒,并再一次和AP进行数据帧交换
      • 显式工作模式
      • 隐式工作模式

    2)Broadcast TWT

    广播TWT机制是一种由AP负责管理的工作机制。在该机制下,没有协商过程,TWT时间周期是由AP宣告,通常AP会在每一个beacon帧中宣告本轮的TWT时间周期。在一些特殊的情况下,AP也会在其他的管理帧中宣告。

    在Broadcast TWT中,存在加入组和离开组的交互动作,终端需要向AP申请加组才可以执行Broadcast TWT,这个加组交互动作也是通过在终端和AP交换管理帧中,通过携带TWT elements完成的。当终端完成加组后,终端会按照最近接收到的TWT时间周期进行工作。终端在TWT时间周期到达后进行苏醒,AP会发送广播的触发帧,发现哪些已经加组的终端正在处于苏醒状态,并向这些终端发送数据帧,这里由于是广播通信,所以只有AP向节点发送。当AP发送完成后,终端恢复到睡眠状态,直到下一次广播TWT时间到达。

     

    3)Opportunistic PS

    机会节电模式没有AP和STA的协商过程。AP会在每一个Beacon内,公开宣告一个TWT时间。任意终端可以选择在这个公开TWT时间内进行苏醒,并和AP执行数据帧交换。这个交换可以是单个节点的,也可以是多个节点苏醒,采用OFDMA机制进行交换。

     

    1.6.5 TWT功能的优点

    TWT 功能充分体现了Wi-Fi 6 在多用户、多场景和多需求下的优势。TWT 配合OFDMA 技术,AP 可以设定编排议程并将TWT 值提供给多个用户,双方之间不需要存在个别的TWT 协议即可唤醒多个设备实现传输视频、语音和数据等不同业务的多设备并行连接,并可以根据不同业务调整流量比例和优先级,从而提升用户体验。TWT 可以为电池供电的IOT 设备节约25% 以上的电量。

  • 相关阅读:
    力扣第134题 加油站 c++ 暴力 + 贪心
    好心情受邀出席“地球克隆计划5”元宇宙大会,发表主题演讲
    Spring -IOC理念
    Hystrix断路器
    央企施工企业数字化转型的灵魂是什么
    安全狗入选2023年国产云原生安全技术代表厂商
    阿里云幻兽帕鲁Windows 服务器怎么下载存档?
    JSON注解和异常处理的使用
    实现异步转同步的几种方式
    PC微信3.9.7内测版,更新功能一览(附下载)
  • 原文地址:https://blog.csdn.net/shanbl_linux_android/article/details/125615836