论文部分内容阅读
无线局域网(Wireless Local Area Network)以其上网方便、布线简单、成本低等特点,近年来得到迅速发展,但传输速度慢的缺点始终是阻碍WLAN进一步发展的“瓶颈”。实现更高的传输速率,取得更可靠的性能,需要全面采用下一代移动通信的关键技术,802.11n协议就在此背景下产生了。
本文以著名射频芯片公司Atheros公司的AR9600射频芯片和华为3com通信技术有限公司的ComwareV5操作系统为基础,对802.11n协议中的帧聚合机制中重要的A-MPDU机制进行了详细的论述,给出了该机制的原理和实现方法。
在发送方,上层交下来的每个报文都要分配相应的描述符,将报文封装成射频芯片认识的描述符的形式,填充必要信息和字段,封装报文,释放数据运输载体MBUF。查找目的Sta对应的Sib结构,判断接收终端的类型,如果是HT Sta,且对应的ADDBA机制已经建立,则填充上使用聚合发送机制的信息位,将该报文放入对应的缓存队列内,等待发送。如果目的Sta不是HT Sta或者对应的ADDBA没有建立,则将报文直接放入硬件发送对列,按照普通方式发送。
发送完的报文会继续存在于发送队列内,发送完成过程就是处理发送队列内的报文,为启动下次发送做准备。对于发送成功的报文,释放描述符等系统资源;对于发送失败的报文,进行重传。在使用A-MPDU机制时,需要触发发送程序,将缓存队列内的报文发送出去。在这个环节当中,涉及到触发时机、触发机制以及发送窗口的维护等问题。
发送方在发送A—MPDU报文时可以不按顺序发送,所以对收到的报文,重新对报文排序是A—MPDU机制所特有而重要的特点。接收模块首先将报文放入对应的缓存队列,根据报文序列号和BlockAck Req报文来判断当前收到的报文是否是第一个报文,如果是,上送该报文;如果不是第一个报文,会创建一个接收定时器,等待第一个报文的到来。在定时器期间如果收到等待的报文,则将缓存内所有的连续报文上送,删除定时器;如果定时器到时,则上送一个报文丢失信息给操作系统,然后将缓存内所有连续报文上送。