IEEE 802.11帧聚合机制在NS-2平台上的仿真与实现
2018-05-17王磊
王磊
(安康学院电子与信息工程学院,陕西安康725099)
为了提升多址接入(Medium Access Control,MAC)协议的效率,IEEE802.11n工作组基于IEEE 802.11 DCF机制提出了帧聚合思想[1],即仅通过完成一次的信道接入过程来传输多个子帧,并采用块确认(Block ACK,BA)的方式来对多个数据子帧进行传输确认,从而可大幅度减少控制分组和帧间间隔开销,进一步提高信道利用率和网络吞吐量[2]。在无线网络协议的研究中,为了评估无线网络的性能,研究者通常需要采用网络仿真工具来搭建网络仿真平台[3-4]。本文主要介绍了基于NS-2网络仿真平台对IEEE 802.11帧聚合机制的实现,并对帧聚合机制的性能进行了仿真验证与评估。
1 IEEE802.11帧聚合机制概述
为了解决无线通信过程的隐藏站点问题,IEEE 802.11 DCF提出了基于CSMA/CA冲突避免机制的RTS/CTS握手过程[5-6],如图1(a)所示。可以看出,传统的IEEE 802.11 DCF机制中完成一次正常的数据传输,其信道侦听(侦听时长为DIFS)、退避过程、短帧间间隔(SIFS)以及控制分组传输(包括RTS和CTS)均带来了大量的信道资源浪费[7]。由于这些时间开销是无法避免的,所以只能尽量减少开销出现的次数,也就是说,在一定开销的前提下尽可能提升所传输的数据量。
图1 IEEE 802.11DCF和帧聚合机制中分别采用RTS/CTS机制的传输流程
为了减小信令开销并提高系统的吞吐率,IEEE 802.11n[8-9]中提出了基于 A-MPDU(Aggregated MAC Protocol Data Unit)的帧聚合机制,基通过将多个上层数据帧封装后的MPDU聚合在一个MAC帧中进行发送[10]。如图1(b)所示,当接收端在收到包含n个MP⁃DU的A-MPDU聚合帧后,从而对每个MPDU进行解码并最终对整个MAC聚合帧返回一个BA信息,其中BA携带了接收端对每个MPDU传输正确与否的确认。周围的STA则根据接收到RTS或CTS帧来设置网络分配矢量(Network Allocation Vector,NAV)信息并在NAV时间内保持静默,NAV指示了信道将被占用直至BA帧传输结束,分别如公式(1)和(2)所示。
STA1收到CTS帧之后,等待SIFS之后发送DATA帧。最后,STA2会回复BA帧以确认n个DATA聚合帧的接收。通过建立二维Markov链模型,可得到采用帧聚合机制的网络吞吐量为:
其中,n为接收到聚合数据帧的个数,σ表示一个时隙的长度,Ptr和Ps分别表示为一个时隙内至少有一个节点发送的概率和成功发送的概率,Ts表示一次成功的数据传输过程所占用信道的时间,Tc表示一次失败的传输所占用信道的时间,E[P]表示每个数据分组载荷的平均大小。
2 帧聚合机制在NS-2上的实现
NS-2又称为Network Simulator-2,是一种基于离散时间仿真的开源仿真工具,可以很好地模拟实际网络中所发生的动作并进行性能统计[11]。NS-2中的各个层次是通过接口函数来相互调用,这样可以相互独立进行开发,从而可以提高开发效率[12]。
本文采用的是NS-2.35版本的网络仿真平台,并基于Ubuntu v.12的虚拟机来实现的。本文的主要工作涉及到采用帧聚合机制的MAC层设计,其数据包在节点各层的传递过程如图2所示[13]。
图2 数据包在各层间的传递过程
2.1 帧聚合机制的消息结构修改
在实际仿真中,各层协议都有自己独特的消息结构。而NS-2提供了一种非常便捷的定义消息的方式,只需在“mac-802_11Ext.h”文件中定义各个帧所需要的各个字段,进而通过执行make命令就会将其与源程序文件进行关联。其中,为了实现对AMPDU聚合帧的确认,需要对传统的ACK帧中的进行扩展,添加对每个DATA分组的接收正确与否的信息。Block-ACK的帧格式定义如下:
当接收端接收完数据包后,根据Block-ACK的帧格式产生BA帧,同时将接收到MPDU的成功与否的信息写入BA帧中的‘ba_information’域中。RTS和CTS帧的帧结构与IEEE 802.11DCF类似,就不在此进行赘述了。
2.2 帧聚合机制中聚合帧个数的计算
当发送端收到接收端回复的CTS之后,根据当前的物理层速率、TXOP长度以及数据子帧的负载时长来计算聚合个数:
其中,tTXOP表示TXOP的时长,tBA和tSIFS分别表示BA帧和SIFS时长,tE[P]表示数据子帧的平均传输时长。进而,当接收端接收到聚合的数据包之后,通过对数据包进行解析,得到聚合包中的聚合个数n,并依次取出各子包分别进行接收。
2.3 帧聚合中节点模型的修改
在原始的NS-2节点模型中,数据分组只能从队列单向地向MAC层进行发送,MAC层是无法直接对上层队列进行操作的,从而也就无法实现帧聚合机制。为了克服该问题,本文通过采用跨层设计的方法在MAC层创建用于访问队列的指针*Myifq,如图3所示。这样可以赋予MAC层操作队列的权限,进而通过该指针来操作上层队列类的成员函数,比如resume()出列等函数,实现MAC层根据需求来向队列请求n个数据分组。
图3 对NS-2节点模型中队列控制的修改
2.4 帧聚合操作的实现
仿真平台中帧聚合机制的实现过程如图4所示。为了实现帧聚合机制,发送端首先会发送RTS帧来请求与接收方进行通信。而接收方接收到RTS会,首先通过MAC层进行信道质量(Channel State Informatica,CSI)评估,并将CSI携带在CTS中进行发送。当发送端收到RTS后,通过解析CTS进而获得本次传输进行帧聚合的个数。进而,发送端根据公式(4)来计算可以进行帧聚合的个数n。比如,当n=4时,如图4所示,发送端从MAC队列中需要再取出3个数据分组,连同生成RTS的那个数据分组一起进行聚合,从而产生包括n个聚合分组的聚合帧进行发送。当接收方收到该聚合帧后,通过块确认(BA)帧进行回复确认。
3 仿真结果与性能分析
3.1 仿真设置
在本仿真中,考虑单跳网络场景,即所有节点均能感知到彼此的数据传输。假设所有信道均为理想信道,即不考虑物理信道中的差错和误码。在本网络场景中,50对收发节点随机分布在100 m*100 m的矩形区域内,所有节点承载的业务类型为恒定比特率业务(Constant Bit Rate,CBR),数据分组大小为512字节。控制分组传输速率为2 Mbps,用于传输RTS、CTS以及ACK分组,数据分组的传输速率则为11 Mbps,用于传输DATA分组。TXOP长度设置为1.0 ms,MAC队列长度为50,即MAC队列中最大能存储50个数据分组。在随机竞争过程中所使用的最小竞争窗为CWmin=15,最大竞争窗为CWmax=1023。其余参数设置可依照IEEE 802.11b标准[14]。本文考察的性能指标包括网络吞吐量和平均分组时延,其中分组时延主要包括MAC队列时延、竞争时延以及DATA分组的传输时延[15]。
3.2 仿真结果
为了验证本仿真的准确性,将仿真结果与公式(4)进行了对比,给出了在IEEE 802.11 DCF协议上加入帧聚合机制的饱和吞吐量随着网络中节点个数增加的变化情况,如图5所示。可以看出,网络的吞吐量与分析吻合很好,并且随着节点个数的逐渐增大,帧聚合机制的饱和吞吐量呈现出了逐渐下降的趋势,这主要是由于使用了CSMA/CA机制,导致节点间的冲突随着节点个数的增加而增大,从而降低了吞吐量性能[16]。
图6比较了帧聚合机制与IEEE 802.11 DCF之间的吞吐量随着节点业务量的增加的变化情况,此时网络中存在50对收发节点。
图5 帧聚合机制吞吐量仿真结果与分析结果对比
图6 吞吐量随节点业务量增加的变化
可以看出,随着节点业务量的持续增加,IEEE 802.11 DCF与帧聚合机制的吞吐量性均呈现出逐渐上升的趋势,进而随着节点业务量的增加保持平稳,此时网络达到了饱和状态。可以看出,采用了帧聚合机制之后,IEEE 802.11 DCF的饱和吞吐量性能提升了约90%。
图7给出了帧聚合机制与IEEE 802.11 DCF之间的平均分组时延随着节点业务量的增加的变化情况,网络中存在50对收发节点。可以看出,当节点业务量较小时,即业务量不超过10包/秒时,两种机制的平均分组时延均较小,因为此时带来的排队时延和竞争时延很小。而随着节点业务量的持续增加,由于节点间的冲突加剧,使得两者的平均时延均呈现出逐渐急剧上升的趋势,进而达到饱和状态。可以看出,IEEE 802.11 DCF的平均分组时延比帧聚合机制高出了约65%。
图7 分组时延随节点业务量增加的变化
4 结论
本文详细介绍了基于IEEE 802.11DCF协议的帧聚合机制在NS-2平台的实现,并且与分析模型进行了对比,验证了NS-2仿真平台的准确性,进而对帧聚合机制的性能进行了评估。本文实现的NS-2仿真与一些传统的网络仿真器相比,具有源代码开放、功能模块实现简单清晰、扩展性较好等优势,这对于无线网络MAC协议的研究具有较强的实际应用价值。
参考文献:
[1]IEEE 802.11n TGn Sync.TGn Sync proposal techni⁃cal specification[S].[S.l.]:IEEE,2005:30-40.
[2]Saif A,Othman M.SRA-MSDU:Enhanced A-MS⁃DU frame aggregation with selective retransmission in 802.11 n wireless networks[J].Journal of Net⁃work and Computer Applications,2013,36(4):1219-1229.
[3]Bhaskar D,Mallick B.Performance evaluation of mac protocol for IEEE 802.11,802.11Ext.WLAN and IEEE 802.15.4 WPAN Using NS-2[J].Inter⁃national Journal of Computer Applications,2015,119(16):25-30.
[4]张雅琼.基于NS2模拟软件的TCP协议实验设计[J].电子设计工程,2013,21(9):27-29.
[5]Abbas A M H,Ali J,Rahman M A,et al.Compar⁃ative Investigation on CSMA/CA-Based MAC Pro⁃tocols for Scalable Networks[C]//International Con⁃ference on ICCCE.IEEE,2016:428-433.
[6]Kim M,Choi C H.Hidden-node detection in ieee 802.11n wireless lans[J].IEEE Transactions on Vehicular Technology,2013,62(6):2724-2734.
[7]Dai L,Sun X.A unified analysis of IEEE 802.11 DCF networks:stability,throughput,and delay[J].IEEE Transactions on Mobile Computing,2013,12(8):1558-1572.
[8]Perahia E,Stacey R.Next generation wireless LANs:802.11 n and 802.11 ac[M].Cambridge uni⁃versity press,2013.
[9]Tramarin F,Vitturi S,Luvisotto M,et al.On the use of IEEE 802.11n for industrial communications[J].IEEE Transactions on Industrial Informatics,2016,12(5):1877-1886.
[10]LiuJ,YaoM,QiuZ.EnhancedBlockACKmethodfor A-MPDU transmission in IEEE 802.11 n/ac/ad WLANs[J].ElectronicsLetters,2015,52(2):159-161.
[11]柯志亨,程荣祥,邓德隽.NS-2仿真实验:多媒体和无线网络通信[M].北京:电子工业出版社,2009.
[12]王强,焦俊,孔文,等.基于NS2的固定和移动节点的无线传感网络的仿真[J].合肥学院学报:自然科学版,2015,25(2):24-28.
[13]Nagalakshmi S,Poonia R.Packet flow analysis using NS2 simulation[J].International Journal of Applied Research in Science and Engineering.2016,124(11):68-72.
[14]IEEE 802.11,Part 11:Wireless LAN medium access control(MAC)and physical layer(PHY)specifications[S].IEEE 802.11 Std.Mar.2012.
[15]Bozkurt A.Optimal delay analysis for real-time traffics over IEEE 802.11 wireless LANs[J].EURA⁃SIP Journal on Wireless Communications and Net⁃working,2016,2016(1):52-65.
[16]Bellalta B.Throughput analysis in high density WLANs[J].IEEE Communications Letters,2017,21(3):592-595.