APP下载

支持QoS保障的Ad hoc网络多信道MAC协议

2010-07-25张香芝沈明玉

网络安全与数据管理 2010年15期
关键词:重传链表空闲

张香芝,沈明玉

(合肥工业大学 计算机与信息学院,安徽 合肥 230009)

无线自组织网络(Ad hoc)是一种具有无中心、自组织、快速展开和移动等特点的对等式网络,又被称作多跳网络(Multi-hop Network)或自组织网络(Self-organized Network)[1]。随着自组网业务的多样化以及逐渐向公用网络领域渗透,服务质量QoS(Quality of Service)保障问题越来越重要,介质接入控制(MAC)协议是自组网QoS体系中最基本的部分,主要用来管理和协调多个用户共享可用的频谱资源,QoS路由和信令都要依赖它。MAC需要解决两个问题[2]:如何将频谱划分为不同的信道,如何将信道资源分配给不同的用户。在Ad hoc网络MAC协议领域,多信道技术成为研究热点,很多的多信道MAC协议能较好地解决信道争用、隐藏终端、暴露终端[3-4],与单信道技术相比,其具有提高系统吞吐量、降低时延等优点[3-5],但是大部分不能为实时业务提供QoS保障。本文结合多信道DCA[5]协议信道预约的思想,给不同种类的业务划分优先级和帧间隔,保证优先级高的业务较早地预约数据信道,同时把高层数据按目的地址的不同建立发送链表,实现数据信道上连续的帧交换,改善了系统吞吐量和时延特性。

1 协议基本思想

把整个信道分为1个控制信道和n个数据信道,这些子信道互不重叠且带宽相等,每个节点配置两部半双工收发机,1个用于控制信道,1个可在n个数据信道间切换使用。通信双方通过在控制信道上交换RTS/CTS/RES帧来预约数据信道,然后在数据信道上交换DATA/ACK帧进行通信。每个节点(如A)保存信道使用列表CUL[]和空闲信道列表FCL。CUL[]表项有 3个元素:CUL[i].host是A的一个邻居地址,CUL[i].ch是被邻居CUL[i].host占用的数据信道,CUL[i].rel_time指 CUL[i].ch信道的释放时间。FCL表可由CUL[]计算得出。

建立发送链表,采用自动重传技术,双方可实现数据信道上连续的DATA/ACK帧交换过程,直到通信完成或者达到预定通信时间。下面说明协议中的几个重要规则。协议中用到的标识符含义如表1所示。

表1 协议中用到的标识符含义

1.1 发送链表

按目的地址的不同把高层数据加入到相应链表中,发送数据链表的结构形式如图1所示。

图1 发送链表结构图

Hld_Data_Elem是高层数据的表示结构,pkptr指向高层数据,qos是描述分组优先级的整数值,实时(语音、视频等)分组比数据分组优先级高,ar_time是高层数据的到达时间。NL[]是链表头结构,具有同一目的地址的分组均放在此链表中,Hld_List是链表头指针,dest是目的地址,T_qos是表示此链表中所有分组的平均优先级权值,由链表中所有分组的qos和ar_time值决定:

Q、T分别为 qos和ar_time的比例度量值,data_num是当前链表中分组个数,T_qos值由链表中所有分组qos和ar_time值确定且实时更新。

1.2 控制信道规程

在控制信道上交换RTS/CTS/RES帧预约数据信道,RTS/CTS/RES帧格式如图2所示。

图2 RTS/CTS/RES帧格式

RTS帧中的N域表示发送链表中的高层数据个数;Tdl(Total data length)域是N个高层数据的总长度,目的节点可以结合N、Tdl域计算数据信道上的总通信时间。Ndl(next data length)域是节点A当前发送链表中下一个要发送的数据长度,用于节点B设置超时定时器。

要在数据信道上实现连续的帧交换功能,则在控制帧交换过程中,网络分配矢量NAVcts必须有效地预测数据信道Dj上的通信时间,NAVcts值被设为发送链表中的数据正常交换完成所需要的时间,NAVcts的计算过程如下:

源节点的当前发送链表中有4条数据,在数据信道上正常交换时的传输序列如图3所示,由此可以推出:

其中,若帧交换过程中出现异常需要重传,则数据信道上的通信时间将会大于NAVcts值,这种异常情况的处理见下文。

图3 正常的数据信道帧交换图

1.3 数据信道规程

数据信道上交换DATA/ACK帧,DATA/ACK帧格式如图4所示。

图4 DATA/ACK帧格式

DATA帧中的Seq域用于对方节点辨别到来是否是重复帧,正常情况下此位按0、1交替变化,在重传时不发生变化,此位是必要的,因为节点超时定时器发生超时,可能是正确的应答帧在链路上丢失造成的,这样重传时设置Seq位不变,对方节点便知道是重复帧而丢弃它;Itrp域是强制中断位,正常情况下此位为 1,当为 0时,表示要求立即停止通信,之后双方交换ACK帧结束本次通信。

系统记录数据信道上的通信时间,当发生重传时,源节点在发送本条数据时,计算发送链表中下一条数据正常传输结束的时刻会不会超过NAVcts值表示的时刻,如果超过,则把 Itrp位置 0,强制结束通信,如图 5中所示,目的节点收到 DATA(Itrp(0))时,返回 ACK帧,之后结束通信。A中未传完的数据依然留在发送链表中。因此,Itrp位保证了发生错误重传时,数据信道上总的通信时间不大于NAVcts表示的时间,既充分利用了信道资源,又及时释放信道不至于造成冲突。

2 本文协议的描述过程

本文协议的描述过程如下,其分组交换时序图如图6所示。

(1)节点(如 A)发送链表不全为空时,选择 T_qos权值最大的链表作为当前发送链表,其目的地址为节点B,在RTS帧前,节点A做三项检查:

(a)保证目的节点B的数据信道收发机空闲。在CUL表中不能有:

(b)保证本节点的数据信道收发机空闲。在CUL表中不能有:

(c)保证本节点A有空闲的数据信道。至少一数据信道Dj满足:

再把满足条件的信道记入FCL表,设置好NAVrts、Fcl、N、Tdl、Ndl等域,向 B 发送 RTS 帧。

(2)收到RTS帧后,B检查是否有匹配的空闲数据信道,能否满足FCLA与FCLB有匹配项或者对DjEFCLA有:CUL[i].ch=Dj且 CUL[i].rel_time<=T_curr+T_cts存在。

(a)若满足,选择一个空闲数据信道(如 Dj),设置NAVcts等域,向 A返回NAVcts(Dj,NAVcts)帧。 然后把数据信道收发机切换到Dj,准备接收DATA帧。

(b)若不满足,返回 CTS(0,T_est)帧,其中 T_est是 B节点有空闲信道的最小估计时间。

(3)当非目的节点收到RTS帧时,控制信道上执行退避,以避免控制信道上发生冲突,退避时间为:

NAVrts=T_cts+T_res+2×T_sifs+2×T_prop

(4)收到 B的 CTS(Dj,NAVcts)后,节点 A 执行:

(a)向CUL表中增加一表项:

(b)把数据信道收发机切换到Dj上发送DATA帧,发送完设置超时定时器。

(c)发送广播帧 RES(Dj,NAVres),其中:

若收到的是CTS(T_est)帧,则A退避T_est时间重新发送RTS帧。

(5)非源节点C收到B返回的 CTS(Dj,NAVcts)帧时:

(a)向CUL表中增加一表项:

若收到的是CTS(T_est),不做任何处理。

(6)非目的节点收到来自A的广播帧RES(Dj,NAVres)时,向CUL表中增加一项:

(7)当收到A的DATA帧时,B返回ACK帧:

(a)检查 DATA帧的 Itrp位是否为 0,若是,则回复ACK帧后终止通信。

(b)检查DATA帧的Seq位,确认是否为重发帧,再根据情况决定是否丢弃DATA帧。

(c)根据DATA帧的Ndl域值,在回复ACK帧后设置超时定时器,若Ndl值为0,表示源节点数据发送完毕,回复ACK后结束通信。若DATA帧错误或定时器超时回复ACK(Ack(0))以示重传。

(8)当收到节点B的ACK帧时,A回DATA帧:

(a)若ACK帧中Ack位为0,则重传上一条DATA帧,其中Seq位保持不变。

(b)计算下一条数据传输完成后立即结束本次通信时刻会不会超过NAVcts值表示的时刻,若超过,回复DATA帧中Itrp位置1,就此终止通信。

若ACK帧错误或者定时器超时,则重传上一条DATA帧。

本协议最大的优点在于建立发送链表,结合自动重传请求技术,实现连续的帧交换过程,减少了控制帧交换次数,既增加数据信道上的通信时间,又减少了控制信道上的冲突。

4 仿真结果分析

在相同的场景中,从吞吐量、分组平均时延两方面比较本文协议和DCA协议的性能。仿真条件:在3 km×3 km的范围内放置50个节点,最大通信距离为300 m,仿真时间为 400 s,分组长度1 024 B,发包率服从 Poisson分布,其中实时业务分组随机产生,数据分组帧间隔50 μs,实时分组帧间隔 20 μs。 仿真结果对比如图 7、图8所示。

DCA协议中,每条数据发送前需要进行一次信道预约,而本文协议实现了数据信道上的连续帧交换过程,一次信道预约可以完成多个分组交换,既大大避免了控制信道上的冲突,又提高了数据信道上的平均通信时间,系统的吞吐量和平均时延特性得到明显改善。同时,本文协议给实时业务规定较高的优先级和较小的帧间隔时间,可以保证先于普通数据分组接入信道,平均时延显著低于数据分组,因此可以从一定程度上为实时业务提供QoS保障。

本文提供了一种支持QoS保障的Ad hoc网络多信道MAC协议,给不同种类的业务划分不同的优先级和帧间隔,以保证高优先级业务较早地接入信道。同时把高层数据按其目的地址的不同建立发送链表。采用自动重传技术,实现了数据信道上连续的帧交换过程,大大减少了控制信道上的冲突,提高了数据信道上的平均通信时间,系统吞吐量和时延特性得到明显改善。

[1]郑少仁,王海涛,赵志峰,等.Ad hoc网络技术[M].北京:人民邮电出版社,2005.

[2]RAMANATHAN R,REDI J.A brief overvirew of Ad hoc network:challenges and directions[J].IEEE Communication Magazine, 2002,40(5):20-22.

[3]SO J,VAIDYA N.A multi-channel MAC for Ad hoc wireless networks[J].Dept.of Electrical and Computer Engineering,2003(1):254-257.

[4]JIN K T,CHO D H.Multi-code MAC for multi-hop wireless ad hoc network[C].Vehicular Technology Conference 2002 Proceedings, USA.2002,2:1100-1104.

[5]WU Shih-Lin, TSENG Yu-Chee, LIN Chih-Yu, et al.A new multi-channel MAC protocol with on-demand channel assignment for mobile Ad hoc networks[C].Dallas:in Proc.of the International Symposium on Parallel Architectures,Algorithms and Networks(I-SPAN),2000:232-237.

猜你喜欢

重传链表空闲
适应于WSN 的具有差错重传的轮询服务性能研究
“鸟”字谜
基于二进制链表的粗糙集属性约简
无线网络中基于网络编码与Hash查找的广播重传研究
跟麦咭学编程
西湾村采风
面向异构网络的多路径数据重传研究∗
基于链表多分支路径树的云存储数据完整性验证机制
彪悍的“宠”生,不需要解释
一种基于散列邻域搜索网络编码的机会中继重传方法