王立军 姚 琨 曹 宝
【摘要】WiMAX系统在媒质接入控制层引入ARQ机制,提高了系统的可靠性。文章首先分析ARQ机制的基本原理,然后针对如何在WiMAX系统中实现ARQ机制进行详细描述,为相关工程技术人员提供方案设计的参考。
【关键词】WiMAXARQMAC
1 引言
WiMAX系统媒质接入控制(MAC)层协议是面向连接的。MAC层对无线资源的使用进行调度并根据业务不同提供QoS保证,通过采用链路自适应技术和自动请求重传(ARQ)技术提供较高的频谱效率。WiMAX系统在链路层引入ARQ机制,减少到达网络层的信息差错,大大提高了系统的业务吞吐量[1]。
2 ARQ介绍
ARQ机制是对发送端发来的数据包,若接收端正确接收,则返回一个确认消息ACK;否则返回否认消息NACK。若返回NACK消息,发送端重发相应的数据包。ARQ机制降低了带宽的利用率,但能够提高接收的可靠性。根据重传方式,ARQ机制可分为3类[1]:
(1)停止等待ARQ协议
发送端每发送一个数据包,就停下来等待接收端反馈。若收到NACK,则重传上次发送的数据包;若收到ACK,则开始发送新的数据包。该协议对发送端和接收端的缓存能力要求低,但是信道利用率极低,造成了资源的极大浪费。
(2)连续ARQ协议
连续ARQ协议采取在发送方发完一帧后,不等待ACK的到来,直接传送下一帧。帧的顺序号用多个比特表示,以使发送方连续发送的若干帧都能分配不同的顺序号。连续ARQ协议提高了信道利用率,但出现差错时,即使仅1帧出错,也要重传N帧,从这个意义上说又降低了信道利用率。
(3)选择性重传ARQ协议
选择性重传ARQ协议可以接收乱序帧。在发送端和接收端各维护一个缓存表,若收到接收端返回的ACK,发送端删除对应的数据包;否则,发送端重传对应的数据包,同时继续按当前顺序发送新的数据包。选择性重传ARQ协议具有最高的信道利用率。
3 WiMAX中的ARQ机制
WiMAX系统采用选择性重传ARQ机制,ARQ的实施基于每个连接,在连接建立的时候协商好ARQ操作。
对于支持ARQ的连接,可选择支持分段拆分。允许分段时,发送端将把MAC SDU根据ARQ_BLOCK_SIZE参数拆分成多个部分分开传输。不采用分段时,对每个连接的操作与采用连接时类似,此时不管协商的块的大小,每个用于传输的段都应该是包括整个SDU的所有的数据块。ARQ反馈消息可作为单独的MAC管理消息发送,也可在已有连接上捎带发送。
3.1 ARQ参数
ARQ参数都要在连接建立时通过动态服务流建立或修改消息来确定,主要参数如下:
(1)BSN:ARQ块的序列号,11 bits;
(2)ARQ_BSN_MODULUS:允许的BSN值的个数,取值2048;
(3)ARQ_WINDOW_SIZE:任何时间内,没有收到确认的ARQ块的最大数目;
(4)ARQ_BLOCK_LIFETIME:ARQ块的最大生存时间;
(5)ARQ_RETRY_TIMEOUT:发送端等待重发的最小时间;
(6)ARQ_BLOCK_SIZE:将SDU分成一组ARQ块的大小;
(7)ARQ_TX_WINDOW_START:所有BSN在ARQ_TX_WINDOW_START-1之前的ARQ块都收到确认了;
(8)ARQ_TX_NEXT_BSN:下一个将要发送块的BSN;
(9)ARQ_RX_WINDOW_START:所有BSN在ARQ_RX_WINDOW_START-1之前的ARQ块均被正确接收了;
(10)ARQ_RX_HIGHEST_BSN:接收到的块的最高BSN值加1。
3.2 ARQ块的使用
一个MAC SDU按ARQ_BLOCK_SIZE的大小被分成多个块,SDU长度不是ARQ_BLOCK_SIZE整数倍时,余下的部分单独构成一个块。一旦一个SDU分成了一组块,这组拆分在所有块被接收端成功接收之前或者被发送端丢弃之前都有效。用于发送或重传的块都被封装在一个MAC PDU里,发送端决定曾在一个PDU里发送的块是否仍在一个PDU里重传。
3.3 ARQ反馈模式
WiMAX系统中,定义了选择性ACK、累积性ACK、选择性和累积性结合的ACK、带有块序列的累积性ACK[2]。接收端利用不同的反馈类型,采用不同方式告知发送端ARQ块的接收情况,提高了系统的灵活性。详细的ACK描述如图1所示。本文设计采用选择性和累积性结合的ACK进行反馈,不仅节省信道资源,同时发送端能够快速查找到哪些数据包出错。
图1 ARQ四种反馈模式
3.4 WiMAX中ARQ的设计
在WiMAX系统中,实现ARQ操作的过程是:所有属于待传输队列的数据,发送之后不立即删除,添加到已发送队列等待确认;发送窗口根据空中链路的传输时延设定,收发两端的缓冲区大小根据发送窗口大小进行设定;对收到ACK的已发数据,从已发送队列删除;对收到NACK或超时的数据,从已发送队列删除并添加到重传队列,等待重传;重传队列优先级高于待传输队列,传输时优先传输重传队列数据,以避免传输时延过长。
4 WiMAX系统中ARQ实现
本文设计思想是将WiMAX系统中ARQ功能的实现分成状态机同步管理、发送状态机和接收状态机三部分。
4.1 状态机同步管理
该部分完成ARQ状态机的同步管理功能。包含两个定时器,分别是发送状态机同步定时器和接收状态机同步定时器。每次发射机变量ARQ_TX_WINDOW_START和接收机变量ARQ_RX_WINDOW_START更新时,定时器重置为0。当定时器超出ARQ_SYNC_LOSS_TIMEOUT时,发射状态机或接收状态机将发起ARQ Reset管理消息,重新建立同步。ARQ Reset管理消息的格式如表1所示:
4.2 发送状态机
发送状态机完成对ARQ块的发送,包括:对已发送ARQ块进行管理;将已发送的ARQ块放入已发送队列;将需要重发的ARQ块放入重发队列中并从已发送队列中删除;对超时或者是收到ACK的ARQ块,将其从已发送队列中删除;对接收到的ACK进行分析,判断其BSN值是否有效。该部分通过与汇聚子层模块通信,接收MAC SDU进行传输。
4.3 接收状态机
接收状态机实现对接收ARQ块BSN值的分析,判断是否是需要接收的ARQ,如果是,则产生ACK发送给发送端,并将该ARQ块储存准备交给高层处理;否则丢弃该块,返回发送端NACK消息。接收状态机的详细实现流程如图2所示。
4.4 ACK的数据结构
本文采用选择性和累积性结合ACK作为反馈消息。ACK的数据结构定义如下:
typedef struct
{
UINT16CID;
UINT16ACK_Type:2;
UINT16BSN:11;
UINT16Number_of_ACK_Maps:2;
UINT16Last:1;
} ACK_Feedback;
其中CID指明该ACK消息针对哪一条连接;ACK_Type指明该ACK消息是何种反馈模式,本文取值为0x2;BSN值表明该ARQ块和它之前的所有数据块均已正确接收;Number_of_ACK_Maps指明选择性ACK Map的个数,最大值为4;Last表明该ACK是否是最后一个反馈信息元,0表示否,1表示是。
选择性ACK Map数据结构定义如下:
typedef struct
{
UINT16 feedback_bit1:1;
UINT16 feedback_bit2:1;
···
UINT16 feedback_bit15:1;
UINT16 feedback_bit16:1;
} SELECT_ACK;
其中,每一比特位与BSN相对应,取1代表对应的BSN块正确接收,取0代表接收错误;并且第一个比特位始终取值为1,与该ACK反馈信息元中的BSN块相对应。
5 结束语
本文基于对IEEE 802.16e协议ARQ机制的深入研究,提出ARQ独立维护收发队列以及采用选择性和累积性结合ACK反馈的思想,从简化系统设计和提高系统信道利用率两方面进行了改善。
参考文献
[1]IEEE Standard 802.16.2004. IEEE Standard for Local and Metropolitan Area Networks. Part 16: Air Interface for Fixed Broadband Wireless Access Systems[S].
[2]IEEE Standard 802.16e. 2005. Amendment to IEEE Standard for Local and Metropolitan Area Networks. Part 16: Air Interface for Fixed Broadband Wireless Access Systems Physical and Medium Access Control Layers for Combined Fixed and Mobile Operation in Licensed Bands[S].★
【作者简介】
王立军:硕士研究生,就读于西南交通大学,主要研究方向为:移动通信,B3G/4G系统的先进空口技术。
姚琨:硕士研究生,就读于西南交通大学,主要研究方向是移动通信。
曹宝:工程师,现工作于中国电子科技集团公司第三十研究所,主要从事通信产品的硬件开发及设计工作。