2. 浙江大学 电气工程学院, 浙江 杭州 310027
2. College of Electrical Engineering, Zhejiang University, Hangzhou 310027, China
近年来, 水下无线传感器网络(UWSNs)受到学者们的广泛关注[1-3].水声信道的高传播时延、低带宽等特性给水下无线传感器网络MAC协议的设计带来了巨大挑战[4-6].
随着水下无线传感器网络日益受到关注, 水下MAC协议的发展十分迅速.经过多年研究, 许多国内外科研机构和学者研究提出新的水下无线传感器网络MAC协议.开始, 基于随机接入的MAC协议ALOHA与Slotted ALOHA被应用于水下环境.之后, 为了获得更好的性能表现, 其他的一些基于随机接入的MAC协议相继被提出, 以适应水下环境, 例如UWAN-MAC协议与ALOHA-CA协议[7-8].为了给多跳网络提供有效的媒体接入控制机制, 一些学者提出基于握手的水下MAC协议.例如, FAMA协议通过使用拉长RTS/CTS的传输时延的方法, 使得原本不适用于水下环境的MACA协议可以工作于具有长传播时延特点的UWSNs中.Slotted FAMA协议[9]在维持控制报文传输时延段的基础上, 调节了时间段的长度, 使它能够帮助水下无线传感器节点避免信道冲突.Guo等[10]针对水下信道的长传播时延, 提出冲突避免的水下MACA协议(PCAP).除了建立RTS/CTS握手以外, 该协议允许发送节点在等待CTS返回的时间里执行其他操作, 提高了信道利用率.
信道预约是无线传感网络媒体接入控制技术的一个重要机制[11].对于水下无线传感器网络, 由于水声信道更容易产生数据冲突, 水下MAC协议的设计越来越关注信道的预约机制.如Peng等[12]提出并行预约水声MAC协议COPE-MAC.该协议利用水声信道长传播时延特性, 通过合理的时间调度, 使得多个节点可以在预约后, 按先后顺序传输数据, 有效地提高了信道利用率.Fan等[13]提出HRMAC协议将网络分簇, 通过簇内节点的提醒数据包完成信道预约, 并通过循环接龙方式传输数据, 提高了网络吞吐量.上述预约机制都需要额外的控制包来协助完成信道的预约工作, 如COPE-MAC中的邻居发现控制包和HRMAC的排序通知控制包, 增加了网络开销.本文在不额外增加控制包的前提下, 提出基于预约的水下MAC协议.通过RTS-CTS的预约、确认与排序机制, 实现了多个数据传输任务的预约, 并以数据队列的传输方式提高了信道利用率.
1 UWSNs中长时延与时空不确定问题陆地无线网络的传播时延是可以忽略的, 因此大多采用一次握手传输一次数据的方式进行通信.水下无线传感器网络以声波作为传输手段, 声波在水中的传播速度仅为1 500 m/s, 比电磁波在空气中的传播速度低5个数量级.与无线电波传感器网络相比, 水下无线传感器网络的传播时延更长.节点间的握手信号交换需要占用大量的信道时间, 若仍采用一次握手传输一次数据的通信方式, 则将大大地降低信道利用率.
此外, UWSNs存在时空不确定的问题.如图 1所示为时间与空间对数据冲突产生的影响.图 1(a)中, 尽管两个发送节点同时发送数据, 但由于距离的差异造成传播时延的差异, 使得两个数据到达节点B的时间不同, 冲突并没有发生.图 1(b)中, 虽然两个发送节点在不同的时间发送数据, 但数据同时到达节点B, 造成了数据冲突.这种时空不确定性使得水下无线传感器网络中数据传输的冲突避免更困难.
面对上述两个问题, 提出基于预约的数据队列水下无线传感器网络MAC协议(RMAC-DT).针对水声传播时延长效率低的问题, 利用数据队列以提高信道利用率, 并通过合理的预约与排序机制克服由于水声信道时空不确定而造成的数据冲突问题.
2 协议设计RMAC-DT是基于节点预约思想的MAC协议, 通过RTS/CTS握手信号对信道进行预约与确认, 并以数据队列的方式按序发送数据, 最后通过ACK验证数据是否发送成功.
如图 2所示为RMAC-DT的传输周期.每个传输周期包含预约周期(reservation period, RP), 确认周期(confirmation period, CP), 数据周期(data period, DP)和应答周期(acknoledgement period, AP).其中, RP、CP和AP的长度等于节点的最大传播时延TMAX加上单个控制包的发送时间, 以保证周期内的控制包有足够的时间到达目标节点.DP的长度不固定, 与数据队列的长度有关, 当最后一个发送出来的数据完成在信道中的传播后, 表示DP周期的结束.
在RP中, 有数据发送的节点广播一个数据传输请求RTS, 其中包含发送端ID、接收端ID、将要传输的数据长度.节点发送完RTS后进入侦听状态, 侦听其他节点的RTS信息.
接收节点在接收到RTS后, 若确认可以接收数据, 则在CP开始时发送CTS, 对预约进行确认.此外, 在RP与CP内, 所有发送节点利用RTS-CTS进行数据排序, 形成数据队列(具体方式在2.1节描述).
在预约与确认周期结束后, 在下一个时隙, 即DP周期, 所有的发送节点按已排序好的数据队列, 以接龙的方式发送数据(具体方式在2.2节描述).
在AP中, 各接收节点收到发送节点的DATA后, 返回ACK信息.若数据包没有被正确接收, 则发送节点在下一个传输周期继续预约发送数据, 直到成功.
2.1 RTS-CTS排序RMAC-DT利用RTS-CTS对预约的数据进行排序.如图 3所示为RTS-CTS排序机制的工作流程图.该排序机制包含两个阶段:RTS排序阶段和CTS检查阶段.
在RTS排序阶段, 当发送节点需要发送RTS时, 额外地在RTS控制包中增加一个排序数字:S-number.在RMAC-DT中, S-number通过随机产生.于是, 所有的RTS内都包含一个随机数字S-number.
如图 3所示, 在发送端, 当发送节点已经发送了RTS并在等待CTS的过程中, 如果接收到了其他的一个或者多个RTS, 无论这些RTS是发送给自己的还是发送给其他节点的, 都需要将自己发送出去的RTS中的S-number与这些RTS中的S-number进行排序, 以形成发送数据的有序队列.通过简单的S-number的大小比较完成排序, 若大小相同, 则随机排序.然后, 该发送节点根据数据队列的次序安排自己数据的传输.在接收端, 当接收节点接收到发送给自己的RTS以外, 又收到其他的一个或多个RTS时, 无论这些RTS是发送给自己的还是发送给其他节点的, 都需要所有RTS中的S-numbe进行排序, 以确定接收数据的有序队列.于是, 所有的发送节点与接收节点都得到了一个有序的数据队列.
由于水声信道隐藏终端问题(具体描述在2.4.1节)的存在, 接收到RTS包的节点不一定可以接收到对应的CTS包, 或者节点可能仅接收到了CTS包而之前没有接收到RTS包, 或者在相同的预约与确认周期内, 不同的节点可能接收到不同数量的RTS/CTS包.这些情况可能导致不同发送节点或接收节点形成的数据队列是不同的.若继续发送数据, 则会因为不同节点的数据队列的不匹配导致数据冲突传输失败.需要通过CTS检查机制剔除上述的不匹配情况.
CTS检查机制分为以下2个步骤.1) 当接收节点准备发送CTS时, 将自身排序好的数据队列信息放入CTS中.所有的发送节点在接收到这个CTS时, 将自身的数据队列与该CTS中的数据队列进行对比, 若相同, 则传输继续进行;若不同, 则取消该次数据传输任务.2) 在CP周期结束的时候, 所有的发送节点与接收节点检查自身收到的所有RTS与CTS.若两者完全匹配, 则传输继续进行;若两者存在差异, 则取消此次传输任务.这两个检查步骤可以将数据队列不匹配的情况全部剔除, 保证所有发送与接收节点的数据队列是完全相同的.
2.2 数据包的接龙发送在DP周期中, 成功预约到信道并被排序的发送节点将按序发送数据队列.该发送过程如下.排序第一的发送节点在DP的开始即发送DATA.除了第一个发送节点外, 其他发送节点则持续侦听信道.当排序第二的节点侦听到第一个发送节点的DATA结束后, 紧接着开始发送自己的DATA.同样地, 之后的节点在侦听到排序在自己前面的DATA结束后立刻开始发送DATA, 直到最后一个发送节点完成数据发送.由此所有的DATA形成一个接龙的方式在水声信道中进行传播.
DP的长度不固定, 与数据队列的长度有关, 当最后一个发送出来的数据完成在信道中的传播后, 表示DP周期结束.网络中的节点可以通过如下方式获知DP周期的结束.数据队列的最后一个发送节点在发送DATA的同时, 将发送时间tDATA, n与数据长度信息TDATA, n放入DATA中, 网络中的所有节点通过上述信息计算得到DP的结束时间为tDP-end=tDATA, n+TDATA, n+TMAX.在最后一个DATA发送完成后, 需要等待TMAX的时间, 以确保该DATA完成在整个信道的传播.
2.3 RMAC-DT协议工作实例为了更好地描述RMAC-DT, 通过图 4所示的一个例子来展示协议的工作过程.源节点S1、S2、S3需要分别向目标节点D1、D2、D3发送数据包.按照传统的MAC协议可知, 3对节点需要分别依次完成握手、数据传输与应答的过程, 并且需要一定的竞争机制以分配信道并规避冲突.这样的做法不仅信道利用率低, 而且容易造成数据冲突, 极大地限制了网络吞吐量.
不同于传统的MAC协议, RMAC-DT通过预约以数据队列的形式在一个传输周期内完成多个数据包的传输.如图 4所示, 在RP周期内, 发送节点S1、S2、S3分别发送RTS预约信道, 接收节点D1、D2、D3接收到RTS后在CP开始时发送CTS以确认预约.在预约与确认过程中, 节点通过RTS-CTS排序机制将DATA排序, 形成数据队列DATA1、DATA2、DATA3.在DP阶段, 发送节点S1首先发送DATA1, 当发送节点S2侦听到S1的DATA1发送完成后, 紧接着S1的DATA1发送DATA2, 当发送节点S3侦听到S2的DATA2发送完成后, 紧接着S2的DATA2发送DATA3, 由此DATA1、DATA2和DATA3形成一个接龙的方式在整个水声信道中进行了传播.当S3发送完DATA3之后TMAX时间, DP周期结束, D1、D2和D3分别发送ACK结束本轮传输周期.
2.4 分析与讨论 2.4.1 隐藏终端问题一般情况下, 隐藏终端问题是指发送节点不能侦测到可以对它的传输造成影响的其他节点而发送数据最终导致冲突发生的情况.本文重新定义隐藏终端问题为发送节点不能侦测到原本可以包含进数据队列的数据传输而导致不同节点的数据队列不匹配, 造成数据冲突的情况.
如图 5所示为隐藏终端问题造成数据冲突的情况.发送节点S1和S2通过RTS预约信道, 但都没有侦测到对方数据传输的请求.S1和S2都认为数据队列中仅包含自己需要发送的DATA, 并在DP周期开始时发送, 导致了冲突.有必要在RTS排序后加入CTS检查机制来避免上述情况的发生.
当隐藏终端问题发生时, 仅仅简单地取消数据传输不有利于网络吞吐量的提高.希望今后能够找到一个更加有效的方法来处理隐藏终端问题.
2.4.2 控制包冲突问题在RMAC-DT中, 允许在同一个时隙(RP、CP或AP)内有多个控制包(RTS、CTS或ACK)被传输, 因而可能会造成控制包的冲突.尽管相对于一个时隙的长度, 控制包的长度较小, 冲突的可能性不是很高, 但当网络负载增加, 同一个时隙内传输的控制包数量增大时, 这样的冲突的可能性会增大, 降低网络的效率.在负载较大的网络中, 可以设定数据队列的最大长度, 限制同一时隙内允许同时发送的控制包数量, 以缓解上述冲突的发生.另外, 可以利用扩频预处理的方法[13], 在网络初始阶段, 每一个节点对其余传感器节点分配一个正交的扩频伪随机码, 当节点准备发送控制包时, 先将接收节点分配给自己的扩频码进行相乘调制得到调制后的控制包.当接收节点接收到调制后的控制包时, 将控制包用对应的扩频码进行解调, 得到调制前的控制包数据, 以避免多个节点的控制包冲突.
3 仿真实验与分析为了更好地比较RMAC-DT的性能, 选用Aqua-Sim[14], 即带有水下传感器网络仿真包的NS2软件, 对协议进行仿真实验, 并与水下网络MAC协议slotted FAMA[9]和ST-Lohi[15]进行对比.
仿真采用的网络拓扑包含16个节点, 随机部署在3 000 m×3 000 m×250 m的空间内.节点的最大通信距离为2 000 m, 声波的传输速度固定为1 500 m/s.DATA包的长度为500 B, 控制包的长度为20 B.源节点以泊松分布的方式产生数据, 数据速率为1 kbit/s.仿真中, 选取吞吐量与平均延时作为评价RMAC-DT的考察对象.
3.1 吞吐量图 6给出3种协议的网络吞吐量Tp情况.图中,R为数据包生成速率.可以看出, 随着数据产生速率的增加, RMAC-DT协议的吞吐量逐渐增加, ST-Lohi和slotted FAMA协议的吞吐量在数据产生速率较小时逐渐增加, 在吞吐量达到最大值后, 随着数据产生速率的增加而逐渐减少.RMAC-DT协议的吞吐量始终大于ST-Lohi和slotted FAMA, 且随着数据产生速率的增加, 差距越来越大.这是因为在RMAC-DT协议中, 各节点在预约与应答上消耗的时间基本上是固定的, 当数据产生速率上升时, 有数据传输的节点增加, 数据队列加长, 数据传输的时间增加, 使得一次传输周期内预约与应答的开销降低, 带来吞吐量的增加.对于ST-Lohi和slotted FAMA协议, 当数据产生速率增加时, 参与竞争的节点数增加, 当每个时隙都正好有一个节点进行数据传输时, 网络吞吐量达到最大;随着数据产生速率的继续增加, 参与竞争的节点数继续增加, 导致竞争时间的增加, 带来开销的增加, 使得吞吐量下降.
图 7给出3种协议的平均延时比较结果.可以看出, RMAC-DT的平均延时随着数据产生速率的增加而增加, ST-Lohi和slotted FAMA的平均延时是固定的.其中ST-Lohi协议的平均时延是最小的, 因为在该协议中, 节点通过发送竞争信道控制包和侦听信道的方式来竞争信道, 不需要等待接收端返还可发送数据的控制包, 节约了信道竞争的时间.比较RMAC-DT与slotted FAMA可知, 当数据产生速率较小时, RMAC-DT的平均延时小于slotted FAMA;当数据产生速率增大到一定程度后, RMAC-DT的平均延时超过了slotted FAMA, 因为当参与传输的节点增加时, RMAC-DT协议中一次预约信道后, 要传输的数据队列加长, 使得各节点的数据需要等待较长的时间才能被传输, 增加了网路的平均延时.
针对水声网络高传播时延与时空不确定的特点, 提出基于预约的数据队列水下无线传感器网络MAC协议.采用预约的方式使得多对节点可以在一次预约中不冲突的进行数据传输;利用RCS-CTS排序机制, 对参与传输的多对节点进行公平排序, 并避免了终端隐藏问题;在数据传输阶段, 各发送端的数据无需等待很长的时间, 可以紧跟在前一个发送端的数据后面及时发送.这些方法降低了节点的平均预约时间, 减少了节点发送数据的等待时间, 有效提高了网络吞吐量.仿真实验表明, 当网络负载较高时, RMAC-DT能够较大程度地提高网络吞吐量.
[1] | AKYILDIZ I F, POMPILI D, MELODIA T. Underwater acoustic sensor networks: research challenges[J]. Ad Hoc Networks Journal, 2005, 3(3): 257–281. DOI:10.1016/j.adhoc.2005.01.004 |
[2] | CUI J, KONG J, GERLA M, et al. The challenges of building mobile underwater wireless networks for aquatic applications[J]. IEEE Network, 2006, 20(3): 12–18. DOI:10.1109/MNET.2006.1637927 |
[3] | CLIMENT S, SANCHEZ A, CAPELLA J, et al. Underwater acoustic wireless sensor networks: advances and future trends in physical, MAC and routing layers[J]. Sensors, 2014, 14(1): 795–833. DOI:10.3390/s140100795 |
[4] | CHEN K, MA M, CHENG E, et al. A survey on MAC protocols for underwater wireless sensor networks[J]. IEEE Communications Surveys And Tutorials, 2014, 16(3): 1433–1447. DOI:10.1109/SURV.2014.013014.00032 |
[5] | LIU J, WANG Z, PENG Z, et al. Suave: swarm underwater autonomous vehicle localization[C]//Proceedings of IEEE INFOCOM. Toronto: IEEE, 2014: 64-72. |
[6] | LUO Y, PU L, ZUBA M, et al. Challenges and opportunities of nderwater cognitive acoustic networks[J]. IEEE Transactions on Emerging Topics in Computing, 2014, 2(2): 198–211. DOI:10.1109/TETC.2014.2310457 |
[7] | PARK M, RODOPLU V. UWAN-MAC: an energy-efficient MAC protocol for underwater acoustic wireless sensor networks[J]. IEEE Journal of Oceanic Engineering, 2007, 32(3): 710–720. DOI:10.1109/JOE.2007.899277 |
[8] | CHIRDCHOO N, SOH W, CHUA K. Aloha-based MAC protocols with collision avoidance for underwater acoustic networks[C]//Proceedings of IEEE INFOCOM. Singapore: IEEE, 2007: 2271-2275. |
[9] | MOLINS M, STOJANOVIC M. Slotted FAMA: a MAC protocol for underwater acoustic networks[C]//Proceedings of MTS/IEEE Oceans. Singapore: IEEE, 2006: 1-7. |
[10] | GUO X, FRATER M, RYAN M. A propagation-delay-tolerant collision avoidance protocol for underwater acoustic sensor networks[C]// Proceedings of IEEE OCEANS. Singapore: IEEE, 2007: 1-6. |
[11] |
汪生泉, 孙大军, 张友文. 一种高效的水下传感器网络MAC协议[J].
传感器与微系统, 2015, 34(1): 76–79.
WANG Sheng-quan, SUN Da-jun, ZHANG You-wen. An efficient MAC protocol for underwater sensor networks[J]. Transducer and Microsystem Technologies, 2015, 34(1): 76–79. |
[12] | PENG Z, ZHU Y, ZHOU Z, et al. Cope-mac: a contention-based medium access control protocol with parallel reservation for underwater acoustic networks[C]//Proceedings IEEE OCEANS. Sydney: IEEE, 2010: 1-10. |
[13] | FAN G, CHEN H, XIE L, et al. A hybrid reservation-based MAC protocol for underwater acoustic networks[J]. Ad Hoc Networks, 2013, 11(3): 1178–1192. DOI:10.1016/j.adhoc.2013.01.002 |
[14] | XIE P, ZHOU Z, PENG Z, et al. Aqua-Sim: an NS-2 based simulator for underwater sensor networks[C]//Proceedings of OCEANS. Cabo Frio: IEEE, 2009: 1-7. |
[15] | SYED A, YE W, HEIDEMANN J. T-Lohi: a new class of MAC protocols for underwater acoustic sensor networks[C]//Proceedings of the 27th IEEE International Conference on Computer Communications. Phoenix: IEEE, 2008: 231-235. |