APP下载

MANET中动态自适应DCF的仿真研究

2016-03-17黄镜清

计算机应用与软件 2016年2期
关键词:吞吐量时延竞争

蒋 华 黄镜清 王 鑫

(桂林电子科技大学计算机科学与工程学院 广西 桂林 541004)



MANET中动态自适应DCF的仿真研究

蒋华黄镜清王鑫

(桂林电子科技大学计算机科学与工程学院广西 桂林 541004)

摘要MANET由于节点的易接入性和移动性,容易导致数据发送冲突严重,或者因链路断开而误认为是冲突,影响网络TCP协议的性能。为此设计一种动态估计无线网络中的活动节点数来调整MAC层的初始竞争窗口的大小,并根据活动节点数及节点的活动特性调整竞争窗口尺寸的DCF机制。通过使用NS2进行仿真,实验结果验证了该改进的DCF机制的有效性,并表明相对于标准DCF机制,在可接受的端到端延迟下,吞吐量得到10%到15%的提升。

关键词MANETDCF动态估计活动节点数竞争窗口吞吐量时延

ON SIMULATING DYNAMICALLY SELF-ADAPTIVE DCF IN MANET

Jiang huaHuang JingqingWang Xin

(School of Computer Science and Engineering,Guilin University of Electronic Technology,Guilin 541004,Guangxi,China)

AbstractIn MANET, it’s easy to lead to severe collision in data transmission, for the nodes are easily accessed and are mobile. Or, it may be misunderstood as the conflict caused by the breakdown of link. These situations affect the performance of TCP protocol. In light of this problem, we designed a distributed coordination function (DCF) mechanism, it adjusts the size of initial contention window on MAC layer by dynamically estimating the active nodes in wireless network, and adjusts contention window size based on the number of active nodes and the active feature of nodes. Simulation is conducted by using NS2, and the experimental results verify the effectiveness of the improved DCF mechanism, moreover, it is indicated that in contrast to standard DCF mechanism, the throughput gains an increase of 10% to 15% under the acceptable end-to-end delay.

KeywordsMANETDCFDynamic estimationActive nodesContention windowThroughputDelay

0引言

MANET网络是由一系列相互通信的无线移动节点组成的,不需要已有的网络设施、访问点或者网络中心控制的互联互通网络[1]。节点可以很容易地接入到网络中,且任意移动,因此网络的拓扑结构会快速且不可预见的变化。另外,因为传输范围的限制,一些节点相互之间不能够直接通信,所以采取多跳路由的方式通信[2]。节点移动和无线多跳的特性,很大程度上影响了MANET的网络性能。MANETE网络的很多应用仍然使用可靠传输协议,很多学者都提出了各种适合于MANET的改进TCP类协议,而TCP协议的拥塞控制机制依赖于数据链路层的可靠传输。目前MANET的数据链路层使用基于IEEE 802.11的标准MAC协议中的DCF等机制。然而IEEE 802.11 MAC协议最先是应用于无线局域网的,这相对于MANET的节点频繁移动和多跳的性能而言,并不能保证网络性能维持在较好的程度。所以需要考虑MAC和TCP协议之间的影响[3,4],综合考虑在MANET网络特性下的MAC协议与TCP协议综合性能(特别是吞吐量和端到端时延),设计一种较好的DCF改进机制。

本文在深入理解IEEE 802.11的DCF机制的基础上,设计和实现了一种适于MANET网络多跳和节点移动特性的能改善网络TCP性能的DCF机制。

1相关工作

MANET面临的一大挑战是对于共享信道的MAC协议的设计。传统的IEEE 802.11 MAC协议基于无线局域网设计,现在MANET网络的背景下使用,需改进以适应MANET网络的特性。由于MANET网络没有访问点,DCF机制的应用受到青睐。该领域的研究主要集中在退避算法、DCF机制,跨层分析研究等方面。文献[5,6]利用了DCF机制来提高TCP的性能,但都是基于MAC层的反馈信息来直接对TCP的拥塞策略来进行改进,不是对MANET中DCF机制的改进,提供了跨层设计的思路。文献[7]提出一种设定阈值的方法来决定MANET网络在竞争信道使用的退避策略。拥塞严重时,使用指数增长竞争窗口,之后采取线性增大竞争窗口的策略,成功传输一次数据后,采用线性减小的方法,而不是直接使用最小竞争窗口值。文献对网络吞吐量、包传递速率和端到端时延等指标进行了分析。文献[8]提出根据动态估计无线网络中活动节点数调整MAC层的初始竞争窗口的方法。每个节点每隔一段时间统计与其通信的邻居节点作为活动节点,然后根据活动节点数调整初始竞争窗口到近似最优值。该DCF机制能较好估计活动节点数,降低信道竞争时间,提高信道的利用率和网络的吞吐率,但没有考虑节点移动特性对网络性能的影响。文献[9]研究了MAC和TCP协议之间的相互作用,认为节点数和节点移动特性影响TCP的性能。提出根据网络中的节点数和节点的移动速率和移动方向动态调整竞争窗口最大值,并说明调整竞争窗口尺寸能提高传输协议TCP性能指标。

本文设计出一种根据动态调整MAC层的初始竞争窗口大小和竞争窗口的最大限制值的方法。将该方法运用到DCF机制中的RTS/CTS,分析MANET网络的性能。实验结果验证了该改进的DCF机制有效性,并表明相对于标准DCF机制在吞吐量、端到端时延等TCP性能方面有所改善。

2解决方案

IEEE 802.11协议标准给出了无线网络的物理层和MAC层协议规范。本文针对MAC层协议的DCF机制的RTS/CTS访问方法进行改进。

2.1动态调整初始竞争窗口

MANET网络中,节点的冲突概率除了依赖于竞争窗口的大小,与网络中的活动节点数也相关。活动节点数即正在发送数据包的节点数。MAC协议中,每一个节点都可以与其邻居节点直接相互通信,并从发送的帧数据中获取到重要的链路信息(源/目地址、NAV值等)。本文采用动态估算网络中的活动节点的方法。让每个节点都保存有一张记录其处于活动状态的邻居节点及与邻居节点最后通信时间的列表。若在一定的时间间隔ATO(Active TimeOut)内节点没有收到邻居节点的数据,则判定该邻居节点不再是活动节点,将其从列表中删除。关键是确定ATO的值,ATO的值应该随活动节点数的变化而变化,因为一个活动节点越多,冲突的概率就越大,导致节点连续成功传输两个数据帧的时间间隔就越大。而当数据帧的大小不变时,对于相同数量的活动节点,介质访问延迟的大小是固定的,可以提前计算出该延迟的大小[10]:

(1)

其中,τ表示一个节点在某一时间的传输速率;σ表示一个空slot间隔。

Ts=DIFS+RTS+σ+SIFS+CTS+σ+SIFS

(2)

TC=DIFS+RTS+σ+SIFS+CTS

(3)

通过分析式(1)-式(3),并根据本文提供的网络环境中的各项参数(见第3节),如图1可以看出介质访问延迟与节点数目大致呈8倍线性关系。故可以给出ATO随活动节点数变化的简便公式[8]:

ATO = k×n(n≥1)

(4)

图1 介质访问延迟-节点数目

其中,n为网络中的活动节点数,k为常量。结合网络中的各项参数,我们分别取ATO为1到10倍的介质访问延迟,通过仿真结果分析,当ATO为5~6倍介质访问延迟时,吞吐量效果最好(本文取k=48,即ATO为6倍D)。

确定ATO时间间隔后,考虑根据估算到的活动节点数来调整初始竞争窗口的大小。标准DCF机制中初始竞争窗口大小是固定的,随着网络站点数量增加,冲突概率会大大增加,导致退避频繁,最终是网络在时延、吞吐量及公平性等性能上显著下降。并且考虑到活动节点的移动特性会对网络连接造成较大影响,而导致丢包,但在MAC层这种丢包的情况会被认为是数据冲突导致的,所以为了削弱节点移动性对退避窗口的影响,在本设计的DCF改进机制中,节点每监听到一个数据帧之后,更新并查询其ATO表,估算网络中的活动节点数且结合节点移特性调节机制,动态调整初始竞争窗口为:

(5)

其中,σ为传播延迟。F(n,W,α)表示移动特性对初始竞争窗口的调节机制。该机制函数在下个部分作详细说明。

2.2动态调整竞争窗口尺寸

本文根据估算到的活动节点数和移动特性在原有退避算法的最大值的基础上来适当增大窗口选择范围。网络中的节点增加时,网络性能会降低。因为多个节点在一个较小的时间间隔内选择相同的时间长度可能性较大。所以CWmax与节点数目n存在一定的正比关系。当节点数到达一定数目时,对TCP性能的影响趋于稳定,故取log(n)来调整窗口尺寸[9]。

另外节点的移动易导致链路连接的中断,从而导致TCP包的丢失,TCP误判为拥塞导致丢包,降低网络性能。所以根据移动性来调整退避的窗口大小[9]。节点移动速度的度量:

(6)

节点移动方向的度量:

(7)

注意,当W=0时,G(W,α)=1。

其中,W表示移动节点的速度;α表示两个节点的连线与该节点的移动方向的角度。

通常丢包率增大会导致退避间隔增大,但如果是因为节点移动导致的丢包,则不应该让退避间隔增大,节点移动速度与移动方向这两个因素是移动导致丢包的标志,所以需取其倒数,降低其对退避时间间隔的影响。

综合考虑,以下给出CWmax的计算公式:

(8)

其中,CWmax0表示802.11 MAC协议设定的最大窗口值,一般为1024。

综上所述,本节设计的窗口动态改变机制如下(各参数如前所述):

(9)

该机制考虑了节点移动性对初始竞争窗口的影响,削弱因为链路中断而被误认为冲突的影响,并且进一步增大了竞争窗口的尺寸,使得站点选择同样的退避间隔的概率降低,从而信道冲突减小。节点每监听到一个数据帧之后,更新并查询其ATO表,估算网络中的活动节点数,并根据活动节点的移动特性来动态调节竞争窗口尺寸,更适应于MANET网络的易接入性和随机移动性。

3仿真过程与结果分析

在NS2中,IEEE802.11协议时由Mac802_11类模块实现的。该类模块定义了标准DCF机制的所有操作方法[11],本文对NS2-2.35版本中的Mac802_11类模块修改和扩展,以实现MANET中动态自适应DCF机制的仿真。

3.1仿真环境设置

为了验证该改进DCF机制的有效性及在性能上的提高,仿真场景为:环境中共有60个节点,随机分布在2200 m×600 m的范围内,以25 m/s速率移动,仿真时间为400秒,每隔20秒增加10个节点通信(偶数编号节点发送数据,奇数编号节点接收数据)。分析网络吞吐量随时间变化情况及受节点数和节点移动性的影响。另外进行不同个数节点场景下的仿真,分析节点个数对时延的影响。基本的仿真参数如表1所示。

表1 基本参数

3.2代码的修改与扩展

通过第2节的说明,对原Mac802_11模块进行一定的修改与扩展,以下给出主要代码。

首先需要创建一张ATO表(在mac-802_11.h文件中添加),结构如下:

struct ATO_table{

u_int32_t neighbor_addr;

double lastcom_time;

}

并在Mac802_11类中声明为private私有变量,在内存中建立副本:

private :

struct ATO_table *ato_list;

std::list ato_list1;

double atotime=0.0;//

创建一个更新ATO表的函数,用于在每监听到一个数据帧后,用来更新ATO列表中活跃节点及其最后通信时间:

void Mac802_11::update_ATO_table(u_int32_t nodaddr,double now)

{

std:list::iterator it;

for(it=ato_list1.begin();it!=ATO_list1.end();it++){

if((*it).neighbor_addr==nodaddr){

(*it).lastcom_time=now;

break;

}}

if(it==ATO_list1.end()){

ato_list=(struct ATO_table*)malloc(sizeof(struct ATO_table);

ato_list->neighbor_addr=nodaddr;

ato_list->lastcom_time=now;

free(ato_list);

}

创建一个计时器ATOTimer(在mac-timer.h文件中添加),并将其声明为Mac802_11类的友元类:

class ATOTimer:public Handlerr{

public:

ATOTimer(Mac802_11 *m) {

mac=m;}

virtual void start(double time) {

Scheduler::instance().schedule(this,&intr,time);}

virtual void handle(Event *e);

private:

Mac802_11 *mac;

Event intr;

}

在mac-timer.cc文件中添加:

void ATOTimer::handle(Event *)

{

mac->ATOHandler();

}

创建一个在ATOTimer计时器超时时,删除非活跃节点的函数:

void delete_ato_table(double rtime,double now)

{

std:list::iterator it;

for(it=ato_list1.begin();it!=ATO_list1.end();it++){

if(now-(*it).lastcom_time>rtime){

ato_list1.erase(it);

break;

}}

}

在Mac-802_11.cc文件中添加定时器到期时的行为,这里用于删除非活动节点:

void Mac-802_11::ATOHandler(){

Event intr;

Scheduler &s-Sheduler::instance();

double now=s.clock();

delete_ato_table(atotime,now);//

atotime=(double)(ato_list1.size()+1)*48.0/1000.0

//atotime去毫秒为单位

if((now+atotime)<400)

atotimer.start(atotime);

}

创建一个调整CWMin和CWMax的函数:

void adjust_cw(W,α )

{

int n=ato_list1.size();

cw_=CWMin(n,W,a);

//设置初始窗口

u_int32_t cwmax=CWMax(n,W,a);

phymib_.setCWMin(cw_);

phymib_.setCWMax(cwmax);

}

以下是两个调整竞争窗口的函数,会被调用:

u_int32_t CWMin(int n, double W, double a)

{

u_int32_t cw;

double tc;

//计算Tc

tc=phymib_.getDIFS()+txtime(phymib_.getRTSlen(),basicRate_)+phymib_.getSIFS()+txtime(phymib_.getCTSlen(),basicRate_)+DSSS_MaxPropagationDelay)

if(W=0)

cw=n*sqrt(tc)-log(n);

else{

if(-sqrt(2)/2<=a<=sqrt(2)/2)

cw=n*sqrt(tc)-log(n)/log(W);

else

cw=n*sqrt(tc)-log(n)/(log(W)*sqrt(W));

}

return cw;

}

u_int32_t CWMax(int n, double W, double a)

{

u_int32_t cw;

if(W=0)

cw=log(n);

else{

if(-sqrt(2)/2<=a<=sqrt(2)/2)

cw=log(n)/log(W);

else

cw=log(n)/(log(W)*sqrt(W));

}

return 1024+cw;

}

通过阅读源码,站点成功发送一个数据帧后,会收到目的站点的确认帧,所以可以在recvACK()函数中调用Adjust_cw( )函数来根据估算的活动节点数及动态特性来调整初始竞争窗口及其尺寸。另外,MAC802.11模块是通过recv_Data( )函数来接收来自上层或者下层的数据包并进行处理的。所以在该函数中调用update_ATO_table函数来完成更新ATO表。

3.3仿真结果及分析

本文通过NS2仿真实现,主要考虑网络的吞吐量和端到端平均时延。在相同的仿真环境中,将本文改进的DCF机制与标准的DCF机制比较。

图2 时延

图2说明了在不同数目规模的网络环境下网络平均时延变化。图中的数据是通过计算每种节点规模下400秒内的每个数据包的延时,然后取数据包的平均延时。从图中可以看出随着网络中节点数量的增加,标准DCF机制与改进的DCF机制平均时延都呈增大趋势,但改进的DCF机制的平均时延相对小于标准DCF机制,并且波动变化。

图3 吞吐量

图3是在60个节点规模下的网络平均吞吐量的仿真结果,表明了吞吐量随时间的变化。整体来看,在该网络环境下,整个网络的吞吐量有所提高,大约10%到15%。从图中可以看出在标准DCF机制下,参与通信的节点数和节点的移动对网络吞吐量的影响较大,在图中的0到200秒之间表现比较明显,因为在这段时间内,每隔20秒会增加固定数量的数据流(本文增加5条数据流),从而导致网络内的活动节点数变化,并且网络环境设置使得节点每2秒就会随机移动,从而导致链路连接和路由状态的变化。

图4 单个包的延时

图4用来说明网络获得好的吞吐量性能时,是否导致大的延迟代价。图中表示60个节点的网络环境中,发送包与其对应的延时。从图中可以看出使用改进的DCF机制,会有个别的包的延时比较大,但大多数的包的延时比使用标准DCF机制的延时要小。通过计算,使用改进DCF机制的平均包延时为0.211,使用标准的DCF机制平均包延时为0.201。虽然平均延时变大了,但只增大了0.5%,这对于增大吞吐量而言是很值得的,并且我们可以很明显地看到改进的DCF机制能够发送更多的包。

4结语

本文设计了一种动态估计无线网络中的活动节点数来调整MAC层的初始竞争窗口的大小,并根据活动节点数及节点的活动特性调整竞争窗口尺寸的DCF机制,更好适合MANET节点的易接入性和移动性的特征。文中基于NS2进行仿真,结果验证了该改进的DCF机制有效性,表明相对于标准DCF机制在保持端到端时延等TCP性能下提高吞吐量,并且能够动态适应网络环境。

参考文献

[1] Kumar J.802.11 DCF in Dynamic MANET On-demand Routing[J].International Journal of Informatics and Communication Technology (IJ-ICT),2013,2(2):85-92.

[2] Narsimha V B,Sujatha B,SampathKumar T.A Survey of Wireless Mobile Adhoc Networks (MANET)[J].International Journal of Science and Advanced Technology,2011,1(5):189-192.

[3] Jiang R,Gupta V,Ravishankar C V.Interactions between TCP and the IEEE 802.11 MAC Protocol[C]//DARPA Information Survivability Conference and Exposition,2003.Proceedings.IEEE,2003,1:273-282.

[4] Nahm K,Helmy A,Kuo C C J.On Interaction between MAC and Transport Layers for Media Streaming in 802.11 Ad hoc Networks[C]//Optics East.International Society for Optics and Photonics,2004:99-110.

[5] 张栋,高龙.基于跨层协同的MANET网络拥塞控制算法仿真研究[J].云南大学学报(自然科学版),2013,35(1):26-30.

[6] 王庆辉,潘学松,王光兴.基于带宽估计的ad hoc网络拥塞控制机制[J].通信学报,2006,27(4):42-48.

[7] Bani Yassein M,Mardini W,AbuTaye Z.Thresholds Determination for new Backoff Algorithm in MANETs[C]//ICWMC 2011,The Seventh International Conference on Wireless and Mobile Communications,2011:285-288.

[8] 刘岩,舒炎泰,张亮,等.无线网络中分布式协调功能的改进[J].计算机应用,2004,24(7):162-166.

[9] Hamrioui S,Lalam M.Improving Transport Protocol Performance in MANET by exploiting the Backoff Algorithm of MAC Protocol[J].International Journal of New Computer Architectures and their Applications (IJNCAA),2011,1(1):149-161.

[10] Wang G,Shu Y,Zhang L,et al.Delay Analysis of the IEEE 802.11 DCF[C]//Personal,Indoor and Mobile Radio Communications,2003.PIMRC 2003.14th IEEE Proceedings on.IEEE,2003,2:1737-1741.

[11] 宋军,金艳华,宋文.基于NS2的网络负载自适应DCF实现及性能分析[J].计算机科学,2009,36(3):112-115.

中图分类号TP393

文献标识码A

DOI:10.3969/j.issn.1000-386x.2016.02.023

收稿日期:2014-06-04。国家自然科学基金重点项目(61262074)。蒋华,教授,主研领域:数据库系统,信息安全。黄镜清,硕士生。王鑫,副教授。

猜你喜欢

吞吐量时延竞争
基于GCC-nearest时延估计的室内声源定位
基于改进二次相关算法的TDOA时延估计
感谢竞争
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
FRFT在水声信道时延频移联合估计中的应用
基于分段CEEMD降噪的时延估计研究
儿时不竞争,长大才胜出
竞争