Block Ack 基本原理

本文介绍了802.11n标准中的BlockAck技术的基本原理,包括其建立、传输和拆除的过程。通过采用连续传输多个帧并一次性确认的方式,BlockAck提高了MAC层的传输效率。

Block Ack 基本原理


     802.11n最主要的添加了Block Ack这个技术,但是在实际应用中对于BA还是知之甚少,转贴一个讲述BA基本原理的文章,但是我通过wireshark进行抓报并没有在BAR(Block Ack Requst)里面找到文中所说的相关信息,但是找到了一个CACE Technlologies 发布的一个用wireshark进行分析11n的文章,其内容请参见我的博客中另一篇有关文章。

      以下为转贴。

=============================================

摘要

介绍了BlockAck的建立、传输、拆除的过程。

引言

通过将一帧一确认的普通传输方式修改为连续传输多个帧然后一次确认多个帧的方式,来提高MAC层的传输效率。N个包的传输可节省N*DIFS的时间,在牺牲一定可靠性的基础上达到了提高传输带宽的能力。

BlockAck的建立

通过ADDBA Request/ADDBA Response可以建立BlockAck的过程。有以下几点需要注意:

ADDBA 帧以Action帧为载体,后者在DFS功能引入。

数据传输与确认

一般需要在发送之前使用CTS清理隐藏节点,来提高传输可靠性。连续的数据帧以SIFS为间隔连续发送,注意:接收端并不需要确认。

对于BlockAck的确认分即时确认与延时确认两种。对于即时确认一般由硬件完成,对硬件收到的包映射到确认位图中,然后进行响应。而延时响应可以由协议栈完成,可以完成进一步的数据检查。对于流行的路由器一般只实现即时确认这种方式。

下图可以形象地描述数据传输及确认的过程:



拆除

当上层完成数据包传输,或MLME层内的定时器超时时会对过程进行拆除。

ADDBA Request/Response帧格式

 

Full state block ack operation Under full state block ack, the recipient maintains an ack state scoreboard for each block ack session. The scoreboard records the ack state of up to 64 MSDUs. When fragmenta tion is used each MSDUmaybefragmentedinupto16 fragments, thus the scoreboard is an up to 64 entry by 16-bit array. A recipient implementation with limited memory may constrain the extent of the array by setting the BufferSize parameter in the ADDBA Response. The MSDU sequence number is a 12-bit value, thus the scoreboard represents a windowinthesequencenumberspaceof4096values.Thescoreboardwindowisdefined by a beginning sequence number WinStart, an ending sequence number WinEnd, and an extent WinSize. With the establishment of the block ack session the scoreboard is initialized with WinStart set to the starting sequence number provided in the ADDBA request. When a QoS Data frame arrives, if the sequence number falls within the space represented by the scoreboard then the recipient will index the scoreboard using the data frame’s sequence number (SN) and record its correct receipt. If the SN is outside the space represented by the scoreboard but within the range WinEnd to WinStart + 211 (half the sequence number space) then the recipient will shift the scoreboard to the right until it includes the new sequence number on the rightmost edge of its window. WhenaBARarrives, the scoreboard window is shifted to the right so that WinStart is equal to the SSN provided in the BAR frame and a BA response is returned with the contents of the scoreboard. Motivation for partial state block ack Withthe original block ack mechanisms, it is required that the scoreboard state persist for the duration of the block ack session. This burdens the recipient implementation with the need to maintain state for all active block ack sessions and, in practice, with the low latency required to produce a BA in response to a BAR, this means using expensive on chip memory. Withthe 802.11n amendment the rules are relaxed so that on-chip memory reserved for block ack state may be reused by different block ack sessions. The state memory effectively serves as a cache, storing the state of the most recently active block ack session. The newer rules are referred to as partial state block ack and are fully backward compatible with the original full state block ack rules. To understand the motivation for the change consider a typical implementation illustrated in Figure 9.16. Under immediate BA, when the recipient receives a BAR or an aggregate frame containing QoS Data frames with Normal Ack policy, the recipient must transmit a BAResponseframeSIFSafterreceiving the BARoraggregateQoSData frame. With decode latencies on the receive path and encode latencies on the transmit path, there is little time available to locate the appropriate state information and form the BAResponse. This largely necessitates on-chip storage of the block ack scoreboard that will be returned in the BA Response. The other major function in the block ack mechanism is the reassembly and reorder function, which reassembles complete MSDUs and forwards them in order to the higher Typical functional split for immediate block ack implementation in recipient station. layers. This function is not time critical and requires a large buffer for storing packets during the reorder and reassembly process and as such is typically implemented in the system hosting the network interface. Thenewpartial state rules do not affect the reorder and reassembly process, but reduce the resource requirements in the network interface for storing the block ack scoreboard. A reorder buffer is still required for each block ack session, but since this is typically stored in the host memory it is relatively cheap. Much less memory is required on-chip to store the block ack scoreboard since the same memory can be reused for multiple block ack sessions
08-19
PSMP burst The AP may perform a burst or series of PSMP exchanges as illustrated in Figure 10.8. After an initial data exchange in the first PSMP sequence, additional resource allocation can be made and retransmissions scheduled in subsequent PSMP exchanges. The PSMP frame in the first exchange has its MorePSMP bit set to 1 to indicate that another PSMP exchange will follow. The MorePSMP bit is set in the PSMP frame of each subsequent exchange as long as the burst continues. The burst is terminated with a PSMP frame that has the MorePSMP bit set to 0. Resource allocation A station uses the TSPEC mechanism defined for HCCA to reserve resources. The AP establishes a PSMP schedule based on the TSPECs received from one or more stations such that the QoS requirements of all stations are met. To accommodate variability in traffic loads and retransmission, a station may adjust the resource allocation long term by updating its TSPEC or, more dynamically, using the QueueSizeorTXOPDurationRequestfieldsintheQoSDataframe(seeSection12.1.5). If a station cannot transmit all its queued data within the allocated PSMP-UTT, the station will transmit as much data as possible and piggyback a resource request for an additional PSMP-UTT. If the AP receives a resource request it will attempt to satisfy that request in the next PSMP sequence。Block ack usage under PSMP PSMPdoesnotpermittheuseofACKfordataexchanges,thusdata transfer that requires acknowledgement must occur under an established block ack session. Data may be transferred without a block ack session, however, it can only do so using No Ack ack policy. PSMP requires that the block ack session be HT-immediate or HT-delayed. Under HT-immediate, use of the Multi-TID BAR and Multi-TID BA is required, while under HT-delayed the BAR and BA frames should have their BAR/BA ack policy set to No Ack
08-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值