第二十二节:通信之WLAN(802.11ax@TWT-I)

欢迎大家一起学习探讨通信之WLAN。本节探讨802.11ax(即WiFi6)协议规定的TWT功能。该功能主要通过“允许管理STA在BSS中的活动,通过调度STA在不同的时间运行,以达到最小化资源争用,并利用电源管理模式减少STA需要唤醒的时间。”达到设备省电的目的。TWT功能涉及“Individual TWT”和“Broadcast TWT”两种协商类型,本节重点探讨Individual TWT部分的原理及实现。

好。我们先来看看TWT来历背景。

TWT英文全称“Target Wake Time”,中文直译为“目标时间唤醒”。TWT出处于802.11ah协议标准。802.11ax中对其进行引用扩展,成为802.11ax的主要特性之一,使其该标准能更好的满足IOT使用场景需求。

注:【协议规范】

Target wake times (TWTs) allow STAs to manage activity in the BSSby scheduling STAs to operate at different times in order to minimizecontention and to reduce the required amount of time that a STA utilizing apower management mode needs to be awake。

探讨802.11ax TWT特性前,先了解几个相关的字母缩写和其他相关802.11ax的新特性。

关键字:

S1G:Sub 1 GHz(1Ghz以下频段)

NDP:NULL data Packet

TSF:Timing synchronization function(时间同步功能)

S-APSD:scheduled automatic power save deliver(计划自动节电传输)

U-APSD:Unscheduled automatic power save delivery(非计划自动节电传输)

TWT:Target Wake Time(目标时间唤醒)

SP:Service Period(服务周期)

RAW:restricted access window(限制访问窗口)

BU:bufferable unit(缓存单元)

WiFi6:WiFi联盟将802.11ax命名为WiFi6。

WiFi6机制主要包括三项:

  • 信令能力(Capability Signaling)

  • Trigger帧(Triggerframes)

  • 高效PPDU帧(HE PPDU frames)

HE capabilities元素包含主要四个子元素如下:

  • HE MAC能力信息

  • HE PHY 能力信息

  • 支持HE-MCS和NSS设置

  • PPE门限

Trigger帧是WiFi6的一个重要机制,该机制可实现AP协调设备通信。WiFi6主要测试五种类型的Trigger帧类型,如下表1-1。其中TWT配置中就有利用trigger进行触发调度。

表 1-1

Trigger类型

Trigger

作用

0

Basic

请求STAs同时传输HE TB PPDU帧

1

BFRP

请求STAs同时压缩波束成形反馈

2

MU-BAR

请求STAs同时反馈Ack/Block Acks

3

MU-RTS

请求STAs同时发送CTS帧

4

BSRP

查询STA的传输队列状态,允许AP有效地调度上行流量

好~!有以上对802.11ax特性的简单了解,接下来将进入本节探讨的主题,TWT诞生背景和TWT工作原理。

TWT诞生背景:

任何一个WiFi新特性定义引入,都存在产品现在或将来需要的原因。如第二十三节探讨802.11n定义引入的BA机制,被提高mac层数据传输所需要。

TWT引入被当前物联网发展所需要。传统的省电模式很难满足物联网中一些产品的需要。如家里冰箱,空调和浴缸等通过WiFi定期间隔上报采集的温度数据,间隔可能1小时,1天或1周上报一次。传统的省电模式会引起WiFi模块大量的唤醒耗电,不满足产品使用需求。关于传统省电模式后续介绍。

TWT根据中文名称直接理解,可以让设备在目标的时间点唤醒工作,避免WiFi模块无效唤醒造成的影响。

TWT工作原理:

TWT功能允许设备协商什么时候唤醒和唤醒频率,然后发送或接收数据。Wi-Fi 网络可以将设备分组到不同的 TWT 周期,从而减少唤醒后同时竞争无线介质的设备数量。

TWT带来WiFi产品的两大优势:

  • 减少用户间无线资源竞争,使网络更高效。

  • 允许WiFi6设备增加睡眠时间,达到更省电。

如下图 1.1 所示,TWT 调度唤醒休眠实例图。通过对网络内设备唤醒的协商管理,减少网内设备的无线资源竞争,使设备增加休眠时间。

 图 1.1

为了后续对TWT原理的理解,此处,简单了解下当前WLAN存在的省电机制。当前WLAN省电方式主要依赖AP周期发送的Beacon实现。传统的省电模式,即设备可以在Beacon或多个Beacon周期休眠达到省电的目的。

  • 监听 DTIM 唤醒并触发 AP 发送缓存数据。

  • 当 STA 有数据发送时唤醒。

实际上, STA 通常需要在一秒内多次唤醒。 而且dtim数协议上最大只能到255个beacon间隔。

非计划自动节电传输, 设备在每个 beacon 间休眠。

  • 每个 beacon 接收时唤醒。

  • 当 STA 有数据发送时唤醒。

通常 20ms 唤醒一次, 对于音频数据很有益处。

经过以上对当前WLAN省电模式的了解,在当前WLAN网络内,设备只能依赖AP发送的Beacon周期进行设计休眠功能。自身功耗与AP强相关。当前省电模式严重限制了IOT设备的发展需要。

TWT的出现,为WLAN网络内设备提供了一种更灵活的省电协商方法。主要有以下优点:

  • TWT 服务周期由 STA 和 AP 协商。

  • 服务周期由 STA 向 AP 请求周期间隔协商确定。

  • 一旦周期间隔确定 OK, STA 一直可以休眠至下一个服务周期。

  • STA 可以独立于 Beacon 周期进行休眠。

  • STA 休眠时间范围从毫秒, 秒,小时或天。

好!到此我们已经大概了解TWT的原理,即WLAN设备可以独立于Beacon周期,在WLAN网络内STA可与AP协商睡眠时间。

接下来探讨802.11ax协议TWT协商是如何规定的呢?

我们将TWT协议定义分为“TWT协商类型”,“TWT调度类型”,“TWT Flow类型”,“TWT能力字段”,“TWT帧类型”,和“Individual TWT协商过程”六部分进行探讨。

第一部分:TWT协商类型定义

  协议定义TWT协商类型有两种:

  • Individual TWT:每个独立设备拥有自己的唤醒时间。

  • Broadcast TWT:一组设备拥有相同的唤醒时间。

在Individual TWT类型中,设备通信双方协商的individual TWT,双方分别叫做“TWT requesting STA”和“TWT responing STA”。

在Broadcast TWT类型中,设备通信双方协商的 broadcast TWT, 双方分别叫做“ TWT scheduling AP” 和“TWT scheduledSTA” 。

第二部分:TWT调度类型定义

  协议定义TWT调度类型分为两种:

  • 隐式:STA 基于当前 TWT 值计算下一个 TWT 时间值。

  • 显式:TWT 请求 STA 唤醒并进行帧交换, 接收 AP 相应帧中得到下一个 TWT 信息。

注:【协议规范】
1.When explicit TWT is employed, a TWT requesting STA wakes and performsa frame exchange and receives the next TWT information in a response from the TWT responding STA.
2.When implicit TWT is used, the TWT requesting STA calculates the Next TWT byadding a fixed value to the current TWT value. STAs need not be made aware of the TWT valuesof other STAs.

第三部分:TWT Flow类型定义

  协议定义TWT Flow类型分为两种:

  • 宣告:AP在一个TWT SP时,需要等待 STA 上行帧后交付缓存数据。

  • 未宣告:AP在一个TWT SP时,不需要等待 STA 上行帧交付缓存数据。

注:【协议规范】

1.The TWT responding STA of an announced TWT agreement shall nottransmit a frame to the TWT requesting STA within a TWT SP until it has received a PS-Poll frame or APSDtrigger frame from the
TWT requesting STA.
2.FlowType field equal to 1 indicates an unannounced TWT. The TWT respondingSTA of an unannounced TWT agreement may transmit a frame to the TWT requesting STA withina TWT SP before it has received a frame from the TWT requesting STA.

第四部分:TWT能力字段

  TWT在Ext Cap字段定义了表明支持TWT的bit位。管理帧中, 携带扩展能力元素第 77 和 78 位分别表示支持 TWT requester 和 responder。该扩展元素 ID 127 存在于reassociation,associationrequest/response, probe request/response和beacon帧中。如下图1.2所示。

图 1.2

一般 STA 在 association request 和 probe rquest 帧中表明其支持TWT requester support 功 能 。AP 在 association response , probe response 和 beacon 帧中表明支持 TWT responder support 功能。

TWT在HE Cap TWT字段定义了支持TWT的bit位,在管理帧中协调 HE 功能元素字段, HE MAC 信息字段其第 2 和 3位分别表示支持 TWT requester 和 TWT responder 角色。协议定义如下图1.3所示。

图 1.3

实例抓包解析如下图1.4所示。

图 1.4

注:【协议规范】

An HE AP shall set the TWT Responder Support subfield of the ExtendedCapabilities element and HE Capabilities element to 1.

第 20 位表示是否支持 Broadcast TWT 能力, 即 STA 表明是否支持
TWT scheduled STA 角色, AP 表明是否支持 TWT scheduling AP 角色。如下图 1.8 所示。

图 1.5

注:【协议规范】

Broadcast TWT support:For anon-AP STA, indicates support for the role of TWT scheduled STA. For an AP indicates support for the role of TWT scheduling AP。

第 30 位表示是否支持灵活的 TWT 调度能力, 即表明是否支持
接收 TWT information frames 中灵活的 TWT 调度。如下图 1.6所示。

图 1.6

注:【协议规范】

Flexible TWT Schedule Support:Indicatessupport for the reception of TWT Information frames with flexible TWT schedules。

TWT在HE Operation 字段中,用第 3 位表示AP 要求关联的 STA设备与其协商加入 TWT 调度中。如下图 1.7 所示:

图 1.7

注:【协议规范】

The TWT Required subfield is set to 1 to indicate that the APrequires its associated non-AP HE STAs that have declared support for TWT by setting any one of TWT Requester Supportor TWT Responder Support or Broadcast TWT Support subfield in HE Capabilities element that ittransmits to 1 to operate in the role of either TWT requesting STA by following the rules in 26.8.2(Individual TWT agreements), or TWT scheduled STA by following the rules in 26.8.3 (Broadcast TWT operation)and set to 0 otherwise。

第五部分:TWT帧类型

TWT功能的协商实现基于Action帧,TWT定义了三种Action code,即对应三种TWT帧类型格式,分别为设置帧,解除帧和信息帧,

首先,我们来看TWT Setup frame,该帧被STA用作请求设置一个TWT SP,并被响应的STA用来指示请求设置TWT SP的状态。下图1.8为抓包解析的TWT Setup帧。

图 1.8

TWT setup frame 的请求字段设置为 1, 则 dialog token 字段值被传
输的 STA 设置并用作传输 request 和 response 的标识。如果请求字段被设置为 0, 则 dialog token 字段值从相应接收到的 TWTrequest frame拷贝过来。

协议定义 TWT element id 为 216, 长度为 1, control 字段占一个字节, 如下图 1.9所示。

图 1.9

control 字段每 bit 使用规定如下图1.10所示。

图 1.10

上图字段解析如下:

  • NDP Paging Indicatior:bit0=1 表示 NDP paging 字段存在。

  • Responder PM Mode:bit1=1 表示 responder STA可能在 TWT SP 外0进入 Doze state。

  • Negotiation Type: bit2,bt3 表示协商的类型 individual or broadcast。

  • TWT information frame disabled: bit4=1 表示 STA 不 接收 TWT
    information frame。

  • Wake Duration unit:bit5=1 表示以 TU 为单位, bit5=0 以 256us 为单位。

如下实例抓包字段如下图 1.11 所示。因 802.11ax draft 为定稿,抓
包工具解析字段与最新定义不一致。

图 1.11

TWT Paramter字段定义了Individual TWT参数形式和BroadcastTWT参数形式,本节主要看Individual TWT参数形式。

Individual TWT 参数字段如下图 1.12 所示,

图 1.12

实例获取到 TWT individual 参数状态,如下图1.13。

图 1.13

协议对 2 字节 Request type 定义如下图 1.14 所示:

图 1.14

每个bit字段详细解析如下:

  • TWT Request:bit0=1 表示为 TWTrequesting STA。

  • TWT Set Command:bit1,bit2,bit3 表示 7 种类型

  • Trigger:bit4=1 表示在 TWT SP 内至少有一个 Trigger frame 传
    送。

  • Implicit:bit5 表示 TWT 调度类型。

  • Flow Type:bit6=1 表示非宣称方式。

  • TWT Flow Identifier:bit7,bit8,bit9 表示 TWT flow 的识别符。

  • TWT Wake Interval Exponent:bit10-bit14 表示 TWT 唤醒间隔指
    数。

  • TWT Protection:bit15=1 表示请求 TWTresponding STA 在 SP 期
    间分配资源访问, 而限制其他设备资源访问竞争。

  • Target Wake Time:目标唤醒时间。 

  • Nominal Minimum TWT Wake Duration:正常最小唤醒工作时长。

  • TWT Wake Interval Mantissa:TWT 唤醒间隔底数。

  • TWT Channel:TWT 信道使用。

  • NDP Paging:NDP 设置选项

注:
TWT 唤醒间隔=

TWT Wake Interval Mantissa * 2( TWTWake Interval Exponent).

TWT Teardown frame 由已协商成功的 STA 发送用来请求解除当前存在的 TWT协商。其 Actioncode 为 7, 如下图 1.15所示。

图 1.15

TWT teardown 字段抓包参数如下图 1.16 所示:

图 1.16

TWT information frame 由现有 TWT 协商的 STA 用来请求或同步协商 TWT的信息。下图1.17为 TWTInformation frame 的实例。Action code 为 11。

图 1.17

协议定义TWT inforametion 字段格式如下图1.18所示。

图 1.18

字段参数解释如下:

  • TWTFlow Identifier:建立的 TWT 标识符。

  • Responded requested:bit3=1表示需要接收者响应。

  • NextTWT Request:bit4=1表示 NextTWT 为非 0。

  • NextTWT Subfield size:指明 Next TWT 的长度, 如下表1-2所示。AllTWT:指明建立的所有 TWTs被重新调度。

  • NextTWT:指明 TWTFlow ID 的 TWT的下一个SP的TSF。

    表 1-2

好。前五部分探讨了协议对IndividualTWT帧格式等定义,接下来我们探讨最后一部分,Individual TWT的协商过程。本部分我们将看到TWT协商帧交换流程。

第六部分:Individual TWT协商过程

通过对前面调度类型和Flow类型的了解。IndividualTWT支持以下四种配置形式,如表1-3所示。

表 1-3

这里我们主要看下IndividualTWT 隐式@未宣告配置协商过程,其他配置协商只是参数不同,协商过程,TWT SP计算方法相同,如图1.19所示。

图 1.19

以上为TWT协商原理示意图,下面我们看下实际协商抓包流程分析,如图1.20所示。

图 1.20

通过上图TWT协商实例可知,TWT协商发起方为STA: aa:aa:aa:00:01:21;响应方为AP:Belkin_bd:84:d6。从AP回复接受的TWT Action参数可得以下信息。

  • 协商建立的TWT为隐式@非宣告。

  • 下一个TWT SP的开始TSF为503316480us。

  • TWT周期间隔为:10 * 2的20次方 = 10485760 us。

  • TWT唤醒工作时长:128 * 256 = 32768us。

好。有以上信息,我们如何从抓包确认STA和AP是否处在一个TWT SP内进行包交换呢?

下图1.21是上面协商参数运行的TWT。

图 1.21

通过上图AP发送Beacon的TSF与TWT协商参数可以计算本次ping包触发在一个TWT的SP阶段,具体计算如下计算方法。

(545280424 - 503316480)% 10485760  = 20904us。

到这里,我们通过对TWT划分的六部分进行探讨,已将802.11ax协议定义的TWT功能关键字段和协商过程做了简单探讨了解。做为一个使用于通信设备之间调度设备唤醒和休眠的功能,具体到设备产品端,该部分涉及的相关知识是相对很多。以上我们只是做简单学习探讨,方便大家在工作或生活中,接触到TWT功能时,能有基本的了解。如有需要,可以基于以上对照相关协议文档深研。

本节对802.11ax定义的TWT功能协议部分进行了探讨,并结合抓包对每个字段进行了简单解释说明。802.11ax协议定义了Individual TWT和Broadcast TWT两种类型,两种类型在协商参数和工作时有一定差异,本节对Individual TWT协商过程基于实际抓包进行了分析探讨。通过本节介绍希望大家能对最新的WiFi6协议定义的TWT内容有所了解,在后续工作或生活中使用TWT功能时有所帮助。第二十二节探讨就到此,后续期待共同继续探讨学习。

注:
       对以上所述专业知识有修正意见或建议,可随时留言反馈。如感兴趣更多通信知识,可关注“通信之WLAN”微信公众号。
       谢谢大家支持~!

  • 9
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 11
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值