实现TDLS特性协议基本功能过程。
协议过程简介
TDLS是基于IEEE 802.11z标准。TDLS自动链接配置主要通过几个过程来完成。
TDLS Discovery过程
TDLS Discovery 过程由一部STA设备通过AP或GO(群组拥有者) 向另外一部STA设备发送一个TDLS Discovery请求帧开始。如果目标设备也兼容TDLS,它将直接向该发送设备回复TDLS Discovery 响应帧,并提供有关设备本身的能力信息。包括所有支持速率及信道。TDLS Discovery 过程除了提供目标STA确实支援TDLS的相关能力信息外,TDLS Discovery过程的帧交互亦可以用作AP与目标TDLS STA设备的相对信号强度的测量。发起的STA能够判断与目标STA间的直接连接是否有利于提供有效信息。通过对比分別由目标STA设备与AP设备收到的信号强度,发起的STA设备可以评估建立直接连接是否会比通过AP发送数据包更为有效。
TDLS Discovery过程不是必要选项。一个TDLS STA设备可以选择直接发起TDLS建立过程。
TDLS Setup和Teardown过程
TDLS Setup过程需要进行一系列的帧交换。发起设备首先发送一个TDLS传输请求,通过AP信道传输至目标设备。封装帧包括发送设备的性能信息。目标设备之后会回复TDLS
Setup 建立响应,同样通过AP信道传送其性能信息,另外附加一个状态代码,表示接受或者拒绝该建立请求。如果接受Setup请求,发送设备将会通过AP传送一个TDLS 确认帧(Confirm
Frame)。至此,两部设备之间开始进行直接通讯。发送方或接受方设备均可向另外一方直接发送TDLS拆解帧(Teardown
Frame),而如果未处于讯号范围內,该帧则可以通过AP信道传输。
TDLS Peer Power Save
TDLS Peer Power Save也可称为WMM U-APSD,其中,计划发送給处于休眠状态设备的数据包将会先行缓存,直至设备恢复正常状态。在TDLS 认证测试中,设备的TDLS
Peer U-APSD缓存功能是强制性要求,而休眠功能则为可选要求。
当缓存设备始終处于正常状态时,这一操作与WMM U-APSD操作十分相似。具体操作如下:
1. TDLS对等缓存设备为休眠设备缓存数据包。
2. 缓存设备通过AP向休眠设备发送一个TDLS 对等流量指示帧。
3. AP将在 Beacon帧上为休眠设备发送一个流量指示图(TIM),提示休眠设备有数据过程处于缓存状态。
4. 休眠设备恢复工作读取 Beacon帧,注意到TIM並触发AP发送TDLS对等流量指示帧。
5. 当前恢复正常工作的设备随后直接向缓存设备发送一个TDLS对等流量响应帧,在两个设备之间建立一段服务期。
6. 缓存设备直接向接受设备发送缓存数据包。
7. 如果缓存设备显示沒有剩于缓存包,接收设备将会恢复休眠状态。
亦有可能两部TDLS设备都进入省电模式处于休眠状态。当出现这种情況,两个站点都会作为缓存设备运作,为他们的对等设备缓存数据流程。这一进程除第二步外同上文所述类似,在向AP发送TDLS 对等流量指示帧后,设备将处于工作状态直至其收到TDLS对等流量回应帧。然后,它会发送缓存数据流程,其后它可能会恢复休眠模式。
请注意,因为发布的缓存数据包通常由AP承载,处于TDLS连接中的设备仍能与同一网络內的其他设备进行通讯。
TDLS信道切换过程
TDLS 设备可以建立协议切换到另一个信道。例如,如果网络处于一个拥挤的2.4GHz 信道运作,而两部TDLS 设备在TDLS 建立发送或回应中指示两者全部以支援5GHz 信道处理,作为一个辅信道,切换到5GHz 信道将更加有利。如下图示。
图 1 TDLS连接从2.4G切换到5G信道
由主信道切换至辅信道之前,TDLS设备将告知AP它们处于“休眠模式”,因此AP将会缓存数据包。当通过off信道传输时, TDLS设备会定期返回base信道以便接收Beacon帧,查看TIM接收缓存数据包,同时与其他设备保持通讯。而使用off信道时,TDLS设备不可以处于休眠。
TDLS 信道切换的基本流程如下所示:
1. TDLS发起设备在AP处进入省电模式,向第二部TDLS设备发送TDLS信道切换请求。这一请求包括目标信道信息。
2. 第二部TDLS设备在AP处进入省电模式,发送一个TDLS信道切换回应。回传包括状态代码0 (接受)并确认目标信道为所需之辅信道。
3. 随后,两部设备由主信道切换至辅信道。在建立切换时限到期前,数据必須通过辅信道进行流通。如果时限到期前沒有数据流程通,设备将返回主信道。
4. 在使用辅信道时,任何一台设备均可主動向对等设备发送一个以主信道为目标的TDLS 信道切换请求。对等设备将返回ACK,然后两部设备返回主信道。
5. 两部设备将定期切换至主信道接收AP Beacon帧,同时同其他网络设备保持通讯。
可以在AP Beacon帧中设置“禁止TDLS信道切换”来实现禁止信道切换。
TDLS安全特性
在建立 TDLS连接时,其基本安全防护通常建立为WPA2 加密,除非网络启用了开放、非加密建立,当出现这种情況,直接连接通常亦建立为开放。建立帧交换包括安全密匙交换,比如直接连接的安全是独一无二的——与网络整体安全域不同。无需輸入用户密码。
TDLS 性能可以由系统管理员关闭。比如,在企业环境中,系统管理员可能希望禁用直接连接,因此AP Beacon帧中可以建立“禁止TDLS”。
首先是发现过程。一个STA设备通过其连接的网络发送发现请求到另一个STA设备。如果目标设备也是TDLS兼容设备,它随后会向发起者直接发送一个回复,提供关于其支持率以及信道等信息。这两个STA设备间的通信还可以测量接入点以及TDLS的相对信号强度,并判断直接链接是否有价值。
TDLS技术允许两个STA设备接入无线网络后,相互之间自动创建一个链接。从而实现两个设备间数据的直接传输。
TDLS应用场景
TDLS连接使两台STA设备直接跳过AP,从而不受AP的约束,采用它们支持的最快速率标准(802.11b
/ g / n 等)进行数据传输。同一个BSS中的STA相互间数据的传输跳过AP直接传输。这个直接传输可以是在原来信道进行,也可以切换到新的信道上进行(如图1所示,base
channel在2.4G频段,而off channel在5G频段),因此能够避免了由网络拥塞而引起的数据传输延迟。这对于一些实时性要求比较高的业务,对于保证用户的业务体验具有重要的意义。
TDLS用作与同一个AP关联的两个STA间进行Wi-Fi Display业务传输的连接模式,
源码分析:
5.2 管理帧
5.2.1 TDLS Action帧细节
若干Action帧结构被定义支持TDLS,Action值关联 每个被定义在下表的帧结构。
表 2 TDLS Action帧
Action field value Meaning
0 TDLS Setup Request
1 TDLS Setup Response
2 TDLS Setup Confirm
3 TDLS Teardown
4 TDLS Peer Traffic Indication
5 TDLS Channel Switch Request
6 TDLS Channel Switch Response
7 TDLS Peer PSM Request
8 TDLS Peer PSM Response
9 TDLS Peer Traffic Response
10 TDLS Discovery Request
11-255 Reserved
1) RSN information element
a) 3.2.2.2.1 Cipher suites
OUI Suite type Meaning
00-0F-AC 7 Group addressed traffic not allowed
b) 3.2.2.2.2 AKM suites
OUI Suite type Authentication type Key management type
00-0F-AC 7 TDLS TPK Handshake
2) 状态码( Status Code field)
Status code Meaning
2 TDLS wakeup schedule rejected but alternative schedule provided
3 TDLS wakeup schedule rejected
5 Security disabled
6 Unacceptable lifetime
7 Not in same BSS
72 Invalid contents of RSNIE
3) 原因码( Reason Code field)
Reason code Meaning
25 TDLS direct-link teardown due to TDLS peer STA unreachable via the TDLS direct link
26 TDLS direct-link teardown for unspecified reason
5.2.2 TDLS Discovery Request帧格式
TDLS Discovery Request 帧结构主要包括信息在下表:
表 3 TDLS Discovery Request帧格式
Order Information Notes
1 Category Category建立成表示TDLS的值12
2 Action Action建立为10,表示TDLS Discovery Request
3 Dialog Token
4 Link Identifier Link Identifier element
The TDLS Discovery Request帧被封装在一个数据帧中,并且被传送到a TDLS peer STA或通过AP传送到广播地址 , 去请求在相同BSS中具有TDLS的设备给出TDLS Discovery Response frame响应。
5.2.3 TDLS Discovery Response帧格式
TDLS Discovery Response帧结构主要包括信息在下表:
表 4 TDLS Discovery Response帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为14,表示TDLS Discovery Response
3 Capability STA的能力
4 Supported rates STA支持的rates
5 Extended supported rates STA支持额外的rates
6 Supported Channels 支持的信道元素被包括,如果TDLS信道切换被建立为1
7 RSNIE 强健安全网络(RSN)IE可能被包括,如果安全被必须在直接连接上。
8 FTIE FTIE可能被包括,如果安全被必须在直接连接上。
9 Timeout Interval Timeout Interval可能被包括,如果安全被必须在直接连接上。
10 Link Identifier Link Identifier element被规定在Table 3-2
The TDLS Discovery Response 帧被直接传送(IE不涉及AP)至发送相应TDLS Discovery Request帧信息的 TDLS STA设备。
5.2.4 TDLS Setup Request帧格式
TDLS Setup Request 帧结构主要包括信息在下表:
表 5 TDLS Setup Request帧格式
Order Information Notes
1 Category Category表示TDLS的值12
2 Action Action建立为0,表示TDLS Setup Request
3 Capability STA的能力
4 Supported rates STA支持的rates
5 Extended supported rates STA支持额外的rates
6 Supported Channels 支持的信道元素被包括,如果TDLS信道切换被建立为1
7 RSNIE 强健安全网络(RSN)IE可能被包括,如果安全被必须在直接连接上。RSNIE
8 QoS Capability The QoS Capability element存在,如果dot11Qos选择生效是ture
9 FTIE FTIE可能被包括,如果安全被必须在直接连接上。
10 Timeout Interval Timeout Interval可能被包括,如果安全被必须在直接连接上。
11 Supported Regulatory
Classes The Supported Regulatory Classes element被定义,如果TDLS信道切换功能被建立为1
12 20/40 BSS Coexistence The 20/40 BSS Coexistence element可能出现在这个帧中
13 Link Identifier Link Identifier element
The TDLS Setup Request 帧被封装在一个数据帧中,并且被传送到STA(recipient),通过AP去请求开始一个TDLS直接链接。
5.2.5 TDLS Setup Response帧格式
TDLS Setup Response帧结构主要包括信息在下表:
表 6 TDLS Setup Response帧格式
Order Information Notes
1 Category Category建立TDLS的值12
2 Action Action值建立为1,表示TDLS Setup Response
3 Status Code 状态码
4 Capability STA的能力
5 Supported rates STA支持的rates
6 Extended supported rates STA支持额外的rates
7 Supported Channels 支持的信道元素被包括,如果TDLS信道切换被建立为1
8 RSNIE 强健安全网络(RSN)IE可能被包括,如果安全被必须在直接连接上。
9 QoS Capability The QoS Capability element存在,如果dot11Qos选择生效是ture
10 FTIE FTIE可能被包括,如果安全被必须在直接连接上。
11 Timeout Interval IE TPL Key生命周期可选被包括,如果安全被必须在直接连接上。
12 Supported Regulatory
Classes The Supported Regulatory Classes element被定义,如果TDLS信道切换功能位组被建立为1,包括状态码为0(成功)。
13 20/40 BSS Coexistence The 20/40 BSS Coexistence element可能出现在这个帧中
14 Link Identifier Link Identifier element
The TDLS Setup Response帧被封装在一个数据帧中,并且被传送到STA(initiator),通过AP去响应收到一个开始TDLS直接链接请求。
5.2.6 TDLS Setup Confirm帧格式
TDLS Setup Confirm帧结构主要包括信息在下表:
表 7 TDLS Setup Confirm帧格式
Order Information Notes
1 Category Category建立TDLS的值12
2 Action Action值建立为2,表示TDLS Setup Confirm.
3 Status Code 状态码
4 RSNIE 强健安全网络(RSN)IE可能被包括,如果安全被必须在直接连接上。
5 EDCA Parameter Set The EDCA参数集建立被包括,当QoS被支持在直接连接上。
6 FTIE FTIE可能被包括,如果安全被必须在直接连接上。
7 Timeout Interval IE TPL Key生命周期可选被包括,如果安全被必须在直接连接上。
8 Link Identifier Link Identifier element
The TDLS Setup Confirm帧被封装在一个数据帧中,并且被传送到STA(responder),通过AP去答复一个标准TDLS响应帧。
5.2.7 TDLS Teardown帧格式
TDLS Teardown帧结构主要包括信息在下表:
表 8 TDLS Teardown帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为3,表示TDLS Teardown.
3 Reason Code The Reason Code的值
4 FTIE 可选被包括如果TPK握手是成功的为这个session
5 Link Identifier Link Identifier element
The TDLS Teardown frame被封装在一个数据帧中,并且被直接传送至the TDLS peer STA或者通过AP去拆卸TDLS直接链路。
5.2.8 TDLS Peer Traffic Indication帧格式
TDLS Peer Traffic Indication帧结构主要包括信息在下表:
表 9 TDLS Peer Traffic Indication帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为4,表示TDLS Peer Traffic Indication.
3 Dialog Token
4 Link Identifier Link Identifier element
5 PTI Control Peer Traffic Indication控制
6 PU Buffer Status 设备省电缓存状态
The TDLS Peer Traffic Indication frame被封装在一个数据帧中,并且通过AP被传送至the TDLS peer STA。
5.2.9 TDLS Channel Switch Request帧格式
TDLS Channel Switch Request帧结构主要包括信息在下表:
表 10 TDLS Channel Switch Request帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为5,表示TDLS Channel Switch Request.
3 Target Channel 1个八字节值指定目标信道的信道号
4 Regulatory Class 1个八字节值指定目标信道调整的Class。
5 Secondary Channel Offset 辅助信道补偿仅仅在被指示切换到40MHz直接链接时才被包括
6 Link Identifier Link Identifier element
7 Channel Switch Timing The Channel Switch Timing element
The TDLS Channel Switch Request frame被封装在一个数据帧中,并且被直接传送至 the TDLS peer STA ,TDLS直接链接请求切换到另一个信道上。
5.2.10 TDLS Channel Switch Response帧格式
TDLS Channel Switch Response帧结构主要包括信息在下表:
表 11 TDLS Channel Switch Response帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为6,表示TDLS Channel Switch Response.
3 Status Code 状态码
4 Regulatory Class 1个八字节值指定目标信道调整的Class
5 Link Identifier Link Identifier element
6 Channel Switch Timing The Channel Switch Timing element
The TDLS Channel Switch Response frame 被封装在一个数据帧中,并且被直接传送至the TDLS peer STA 用以表示对收到TDLS切换信道请求帧作出反应。
5.2.11 TDLS Peer PSM Request帧格式
TDLS Peer PSM Request帧结构主要包括信息在下表:
表 12 TDLS Peer PSM Request帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为7,表示TDLS Peer PSM Request.
3 Dialog Token
4 Link Identifier Link Identifier element
5 Wakeup Schedule Wakeup Schedule
The TDLS Peer PSM Request frame被封装在一个数据帧中,并且被直接或通过AP传送至the TDLS peer
STA, 然后在TDLS直接链接中开始或改变周期的唤醒时间表。
5.2.12 TDLS Peer PSM Response帧格式
TDLS Peer PSM Response帧结构主要包括信息在下表:
表 13 TDLS Peer PSM Response帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为8,表示TDLS Peer PSM Response.
3 Dialog Token
4 Status Code 状态码
5 Link Identifier Link Identifier element
6 Wakeup Schedule Wakeup Schedule
The TDLS Peer PSM Response frame 被封装在一个数据帧中,并且被直接传送至the TDLS peer STA, 表示对收到TDLS Peer PSM 请求帧作出反应。
5.2.13 TDLS Peer Traffic Response帧格式
TDLS Peer Traffic Response帧结构主要包括信息在下表:
表 14 TDLS Peer Traffic Response帧格式
Order Information Notes
1 Category Category建立表示TDLS的值12
2 Action Action建立为9,表示TDLS Peer PSM Traffic Response.
3 Dialog Token The Dialog Token field被建立为与TDLS Peer Traffic Indication
Frame相一致的非零值。
4 Link Identifier Link Identifier element
The Peer Traffic Response frame被封装在一个数据帧中,并且被直接传送至 the TDLS peer STA