前言

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 传统节电机制的不足

某些数据并不一定需要很低的时延,可以经过几个beacon周期后再接收也可以,但是的节电模式是多组数据多次唤醒STA并传输,TWT是多组数据单次唤醒STA并传输。此外,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可以请求在将来的任意时间唤醒。(TWT可以以一个或多个beacon周期为单位)

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% 以上的电量。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐