BA机制
BA机制是在802.11n中出现的,中文叫做块确认机制,其通过将多个“acknowledgment”汇总到一个帧中来提高信道效率。
分类
- immediate BA 立即应答:适用于高带宽,低时延业务;
- delayed BA 延迟应答:适用于时延可容忍业务。
流程(安装、Data/Block Ack、拆除)
- BA机制通过ADDBA request和ADDBA response这两个帧交换来启动。启动之后,Qos数据可以从发端向接收端发送;
- BA这个block发送的时刻是TXOP(poll TXOP或者通过EDCA机制赢得TXOP),即在接收端获得资源后,发送这个Block Ack;
安装
- Tx STA(发起方)首先通过discovering来检查其延迟块确认和立即块确认功能位(Capability Information 域中的Delayed Block Ack和Immediate Block Ack能力比特)来检查预期的接收方STA是否能够参与BlockAck机制;
- 如果接收端STA具有BA机制能力,发端STA便发送一个ADDBA Request帧,此帧会指示这个Block Ack是为哪种TID流量安装的;
- 接收端STA有选择权,可以接受也可以不接受;注意:无论接收方STA是否“接受BA机制的建立”,接收端STA都要向发端STA回复ADDBA Response帧,“接受与否”这个消息是包含在ADDBA Response帧中的;如果接受,收、发端之间就建立了块应答机制(BA机制)。
- ADDBA request中的Block Ack Policy和Buffer Size域是发端给接收端的建议,接收方可采纳,也可不采纳。当接收端STA接受了BA机制的建立,就应该为BA分配缓存。
数据传输&应答
块确认机制建立之后,应该有以下操作:
- 发起端以SIFS间隔发送QoS数据帧块;
- 块内总的“帧数量”(块:帧聚合)不超过ADDBA response帧中的Buffer Size域的值;
- 每一个帧中的Qos control field内的Ack Policy subfield应设置为Block Ack。
需要注意的点:
- 由于此种“帧聚合”方式发送的帧的长度比较大,所以一般都会使用“RTS/CTS”保护机制;
- 发起端可以将帧块分散在几个TXOP中发送;
- 具有不同TID的帧序列可在同一TXOP中;
- 同一TXOP中可有不同TID的MSDU交织;
- 同一TXOP中可有不同RA的MSDU交织;
- 在多TXOP内传输的属于同一TID的帧可以合起来使用一个BlockAck帧作为应答。
立即应答BA:
- 如果使用立即应答策略,接收端应用Block Ack响应BlockAckReq帧;
- 如接收端发送Block Ack帧,发起端应更新记录并重传Block Ack帧中未应答的帧;
- 重传既可在单独块中,也可在另一块中。
延迟应答BA
- 如果使用延迟应答策略,接收端应用Ack响应BlockAckReq帧;(即,接收端先用Ack帧回复发端,告知其已经收到了BlockReq帧);
- 接收端应在随后获得的TXOP中发送Block Ack帧;一旦Block Ack帧中的内容准备好,接收端就应该在最早的TXOP中以最高优先级AC发送Block Ack帧。
BA拆除
主动方式
当发送方没有数据可发送,且最后的Block Ack交换已经完成,发送方应该通过向其接收方发送DELBA帧指示结束使用Block Ack机制。接收方不需回应管理响应帧。DELBA接收方释放所有为Block Ack传输分配的资源。
自动拆除
如果在Block Ack超时值的持续时间内,没有从对等方接收到BlockAck,BlockAckReq或QoS数据帧(根据Block Ack策略发送),则可能会自动拆除已建立的Block Ack机制。
The Block Ack Timeout Value field (2 byte) is used in the ADDBA Request and Response frames to indicate the timeout value for Block Ack.