NC-CSMA:应用在水声传感器网络的无冲突协议
2018-01-23刘广钟
陈 浩,刘广钟
(上海海事大学 信息工程学院,上海 201306)
0 引 言
地球表面大约70%被海水覆盖,而且现在大部分海洋仍然没有被开发。探索水下环境、开发海洋资源大大推动了水下传感器网络的发展。水声传感器网络的设想能够应用到海洋地理数据收集、海洋环境监测、海底探索、辅助导航和战术监视等方面,可以为水下的各个应用带来技术支持与帮助[1-4]。随着陆上资源的逐渐枯竭和海洋资源的有待开发,水下传感器网络已经成为各个国家研究的重点项目[5]。
水声通信是物理层技术的典型应用,几乎大部分的水下通信都采用声波方式。由于海水的衰减,无线电波不能够适应在水下传感网络。同时在海水环境中,由于光通信受到海水散射和吸收的影响,所以无线电和光通信仅用于短距离的水下通信。在大多数实际的水声传感器网络发展中,水声通信是唯一可行的技术[6]。水声信道具有长传播延迟、低比特率和容易出错等特点[7]。水声信号在水中的传播速度约为1 500 m/s,在水下传播延迟比地面无线电频率高五个数量级。可用带宽由传输范围和频率决定。当前水声环境复杂,限制了通信性能,由于路径损耗、多路径、多普勒效应的影响,水声信道很容易出错[8-9]。
适用于水声网络的MAC协议是一个不同于陆上无线网络的新领域。由于海洋环境的复杂性,以及陆上协议物理层的限制,陆上无线网络的MAC协议不能适应到水声网络。现在的水下传感器网络MAC协议主要分为两类:一类是竞争的MAC协议,节点采用竞争的方式去获得信道的使用,才能避免冲突,主要的协议有CSMA、S-MAC、ALOHA等;另一类是基于调度的MAC协议,通过控制数据的发送和接收方式,避免数据冲突,主要的协议有CDMA、FDMA、TDMA等。文献[3]提出了基于调度划分时隙的MAC协议-S-FAMA(Slotted Floor Acquisition Multiple Access),把时间划分为时隙,所有的报文进行传送的时间在每个时隙的开始,时隙的长度大小必须能够避免发生报文冲突。同时S-FAMA必须保证节点在发送数据分组之前,要先获得信道使用权,才能去实现数据分组无冲突传输。
虽然S-FAMA协议避免了数据分组的碰撞,但是由于水声信道具有长传播延迟特性,该握手机制将导致较低的系统吞吐量。文献[5]提出一种具有节能的水下传感器网络协议,通过提出CA-ACK自适应机制,根据信道环境情况,如果信道环境良好,自动选择No-ACK机制,否则选择Imm-ACK机制。主要是通过减少ACK确认帧的数量,减少了能量消耗,但是信道利用率不是很高。文献[10]提出了一种新的协议,通过考虑节点间的传播时延,动态决定网络的净产值,以避免不必要的长时延。然而,每个节点必须具有高效的计算资源。另外,这些协议假设每个节点能够准确地计算出自己和邻居节点之间的距离和传播时延,但这也是非常不现实的,因为节点的移动性非常强。
1 CSMA协议
CSMA协议的基本思想:每个节点在发送数据前,首先要监听信道是否空闲,如果信道空闲就立即发送数据。根据监听的策略不同,可以分为二种:非持续CSMA和持续CSMA。当非持续CSMA监听到信道忙时,就不再监听信道的状态,延迟一段时间再监听信道状态;而当持续CSMA监听到信道忙时,仍然继续监听信道状态,一直等到信道状态空闲开始发送数据。非持续CSMA会减少发送数据导致冲突的概率,但会使得数据在网络中的平均时延增加。非持续性CSMA在包传输前通过在发送方检测信道状态来避免冲突,仅当信道空闲时,节点才会发送数据包,当信道被占用时,节点便会随机回退一段时间,然后再次检测信道。当相对传播时延微不足道时,CSMA协议可以有效减少包冲突,因为当接收方接收到包时,在发送方检测的载波侦听可以很好地反应接收方的信道状态。然而,当水声网络的相对传播时延大幅增加时,载波侦听不再监听接收方的未来状态,因而便失去了避免冲突的效力,尽管它一直具有拥塞避免的功能[11]。
CSMA协议在节点数量增加比较多后,发生冲突的概率会增大。由于在水下环境,传输有一定的距离,数据在有限的速率传输,所以当一个节点发送数据时,另一个节点要经过一段传播时间才能够监听到载波。也就是说,当某个节点已经监听到信道空闲的状态,信道可能不是真正的空闲状态,如果这时节点发送数据一定会发生冲突。如图1所示,节点A与节点B相距1 km,若节点A在节点B发送数据帧之前发送数据,一定会发生冲突。如果节点的数量比较多时,当有多个节点监听到信道状态为空闲时,同时发送数据,冲突是没法避免的。
图1 传播延迟对载波监听的影响
2 NC-CSMA协议
当节点数量相对增加时,CSMA协议有更低的吞吐率,平均时延也会增加,因此结合双轮转调度机制和CSMA的特点,提出了一种高吞吐率和无包冲突的协议。该协议并不是全新的协议,而是一种应用到水下传感网络的无碰撞MAC协议,也就是基于载波侦听多路访问协议(CSMA协议)的改进,提出了No Conflict CSMA协议(NC-CSMA协议)。每个节点传输数据帧都按照一个固定的顺序。更具体的说,在最后一个节点传输数据帧后,每个节点有序地立即传输数据,而不是在等待最大传播延迟时间。要做到这样,每个节点要不断检测所有收到的数据帧。
2.1 网络部署
在网络部署时,网络中的一个节点被选作主网络协调器,一个节点被选为从网络协调器。在初始阶段,其他节点广播信号。主网络协调器和从网络协调器管理着传输数据的序列以及网络的维护,也能够测量出信号的强度和到达的时间,使网络中节点的位置可以通过计算得到。通过计算每个节点的位置,网络协调器得到传输数据节点的有序顺序表(关于有序顺序的建立公式见2.4节)。其中主网络协调器得到的是正序的有序节点信息,从网络协调器得到的是逆序的有序节点信息,分别广播一个包含正序和逆序的有序序列表的信息。每个节点获得有序序列表后,节点就根据协议以循环的方式传输数据,其中两种循环列表实现了双轮转调度,增加了信道空间利用率。
2.2 协议定义
基于CSMA协议的水下传感器网络,假设整个网络时间是同步的,并且主网络协调器节点有足够的能量。首先当两个节点同时竞争一个信道时,采用CSMA协议机制;逆序顺序的时间定义为在数据帧长度的接受时间之后,以上是避免数据帧冲突的基础。
当节点正序和逆序双传输顺序广播到每个节点,整个水下传感器网络按照正序循环和逆序循环的方式遵循这一顺序传送数据。各个节点先是按照正序循环方式进行数据传输,在一定的时间后,节点会按照逆序循环方式进行数据传输。当一个节点想要发送数据帧时,它必须等待正序循环或者逆序循环顺序序列之一轮转到它,才可以去传输数据帧。下一个节点接收到前一个节点传输的数据帧,触发发送机制,立即发送数据,而不是等待最大的传播时延或者保护时间。要做到这一点,每个节点都要不断地检测数据帧,并将其区分开来接收帧。当一个节点检测到来自前一节点传输载波的终止信息,它会在一个硬件的传输和接收的过渡时间后,立即开始传输数据帧。当完成传输,节点返回检测状态。由于采用双轮调机制,每个节点不是去检测信道的忙碌状态,而是接到上一个节点传输的数据帧后,开始传输数据帧,有效地避免CSMA协议传播延迟对载波监听的影响。如果上一个节点没有发送一个数据帧,缓冲区中没有数据帧,采用超时计数器,达到一定时间,节点仍然会在很短的时间内开始传输。协议的流程图如图2所示。
图2 NC-CSMA协议流程
NC-CSMA协议数据传输示例如图3所示。浅灰色的数据表示发送方,黑色的数据表示接收方,正序顺序为ABCDE节点,逆序顺序为EDCBA节点。首先,按照正序循环,节点A发送数据帧给节点C,但要经过节点B,同时逆序循环也在进行,节点E在一定的时间后(时间定义为在节点A按照正序顺序开始发送数据长度的发送时间与到达节点B数据的接收时间之间),按照逆序循环方式发送数据帧5给节点D;当正序循环轮训到节点B,它接收来自节点A的数据帧1传输后,发送数据帧2,接着节点C发送数据;在节点C采用栈数据结构,以后进先出的方式传输数据帧,也就是当节点C接收到节点B的数据帧后,又检测到逆序轮训节点D发送的数据帧,节点C等待接收节点D的数据,而不是去转发刚接收节点C的数据,此时轮训会有一个等待时延(时间定义为小于信道长度/传输速率);当C接收完数据后,会先传输节点D的数据帧,再传输节点B的数据帧。前一个节点没有数据帧发送,后一个节点采用超时计数器,如果达到一定时间,仍然会在很短的时间内开始传输,这是不同于等待检测信道忙碌状态的传统CSMA。通过图3的数据帧传输过程,可以认识到NC-CSMA协议具有无碰撞的特点,信道的空间利用率高。
图3 NC-CSMA协议数据传输示例
2.3 有序传输
在静态网络拓扑中,传输的顺序很容易构建。在一个动态的网络拓扑结构中,有序传输的顺序可以通过网络协调器动态创建。创建该有序传输的顺序,网络协调器可以监视每个信号节点,并检测网络中各节点的相对位置。在获取各节点的相对位置d(c,cj)后,其中,c代表主节点,cj代表静态拓扑中的其余节点,网络协调器通过最邻近算法,根据源节点到目的节点的距离,建立一个正序传输顺序列表a以及逆序传输顺序列表b。
旅行推销员问题(Travelling Salesman Problem,TSP)是为了找到有序节点之间的最小行程距离[12],采用最临近算法。在单跳网络中的节点数往往是小于平均12个。在解决好TSP问题后,网络协调器广播有序的序列,正序传输的循环顺序和逆序传输的循环顺序到达每个节点后,每个节点根据循环顺序依次进行数据传输,同时各个节点也不断检测是否有数据要接收,当一个节点接收到来自前一个节点的载波后,就会立即发送数据。
2.4 超时计数器
采用超时计数器,为了保证节点间按照正序序列或逆序序列进行正常传输,NC-CSMA协议是在收到上一个节点发送的正确数据帧后,才传输自己的数据帧。如果上一个节点没有发送数据帧,缓冲区中没有数据帧,循环顺序传输就要停止。一个简单的解决方案是发送一个长度很小的数据帧,去触发下一个传输。然而引起的另外一个问题就是资源浪费,特别是在水声通信网络,该问题是不能忽视的。
在NC-CSMA协议中,提出利用超时计数器方式来解决这个问题,在不浪费资源的情况下发送控制包。每一个节点都有一个空闲超时计数器去触发传输,每个数据帧记录每个数据帧的到达时间,然后根据该记录预测下一传输时间,因为两者之间的传输延迟的记录在同一节点相同。如果节点在预测的时间内,没有收到来自上一节点的数据帧,空闲超时计数器就开始计数,每个节点在空闲时的时间超过超时计数器预设值后仍然会发送数据帧。
2.5 网络结构维护
拓扑的控制是水下传感器网络最基本的问题。随着节点能量的耗尽,水下传感器网络的拓扑结构也会发生变化,并且动态变化的拓扑结构是水下传感器网络的特点,然而水下传感器网络的拓扑控制策略有着重要的意义。现在,网络协议分层中没有具体的层次对应拓扑控制机制,但大部分的拓扑算法是部署于介质访问控制层(MAC)和路由层(Routing)之间,它为路由层提供了足够的路由更新信息;反之,路由表的变化也反作用于拓扑控制机制,MAC层可以提供给拓扑控制算法邻居发现等消息。同理在水下传感器网络中,传感器节点的位置也在发生变化,在NC-CSMA协议中,网络协调器会自动检测各个节点的当前状态,并且重新得出双轮转机制的顺序;如果是网络协调器节点能量耗尽,那么整个网络会重新选择一个网络协调器节点。使用的机制是选择具有能量高的节点去做网络的协调器。
由于高移动网络拓扑结构的快速变化,网络协调节点为了保持高效率,必须更新网络拓扑结构的信息。网络协调器可以监控到每个节点的信号,不断获取关于网络拓扑结构的信息。当网络拓扑结构改变或节点失败,网络协调节点广播关于传输命令的信息,以适应拓扑变化,并改变双轮转顺序。该方法可以使NC-CSMA协议拓扑继续保持高效率。
3 仿真结果及分析
3.1 仿真环境
为了评估有序NC-CSMA协议的性能,仿真实验是在NS2上进行[13]。仿真实验在网络流量较大的情况下,对NC-CSMA协议与CSMA协议进行对比分析。模拟的实验环境是一个6 km×6 km,数据分组的长度为4 000 bit,比特率为1 000 bit/s。每个节点随机分布在模拟环境中,为了检测该协议的效率,在网络流量较大的条件下进行实验,总有一个数据帧在缓冲区内准备发送。每个节点的传输范围为10 km,换句话说,每个节点都能侦听到来自网络中其他节点的信号。在该仿真实验中,不考虑路由算法,主要是在单跳网络中,用简单的方式去评估不同MAC协议的性能,能够进行公平地评估,减少了协议之间的差异。
3.2 端到端时延
在模拟实验中,通过测量平均端到端延迟来证明NC-CSMA拥有更小的延迟。端到端的延迟被定义为持续时间,从发送端的缓冲区的数据帧发送,直到接收方成功地接收数据帧。结果如图4所示。
图4 NC-CSMA协议与CSMA协议的端到端时延比较
实验结果表明,CSMA有很好的端到端时延。时延分为处理时延、排队时延、传输时延、传播时延。排队时延是发送方等待发送的时延,在传统CSMA协议中,节点必须推迟很长的时延,等待整个数据传完,如果检测到信道忙碌,则采用退避算法。而在NC-CSMA中,节点只需要等待载波经过,实现了最低的排队时延,所以NC-CSMA具有最小的端到端时延。
3.3 网络吞吐量
网络的吞吐量对比如图5所示。NC-CSMA协议优于CSMA,减少了端到端延迟。实验结果表明,与CSMA协议相比,NC-CSMA协议的吞吐量随着节点密度的增加而增加。传统CSMA协议的吞吐量会随着节点密度的增加而降低,这是由于传统的CSMA协议在发送数据前要检测信道是否利用,如果其他节点在使用信道,则该节点一直检测信道,随着节点的增加,业务量的增加,吞吐量会下降。
图5 NC-CSMA协议与CSMA协议的吞吐量比较
4 结束语
传统CSMA协议虽然利用监听信道的方式来避免冲突,然而当水声网络的相对传播时延大幅度增加时,载波侦听不再监听接收方的未来状态,因而便失去了避免冲突的效力,尽管它一直具有拥塞避免功能[10,14]。针对水下传感器高时延的特点,提出了NC-CSMA协议。该协议对传统CSMA进行了改进,结合双轮转调度和传统CSMA的特点,每个节点传输数据帧都按照一个固定的顺序,无冲突地传输数据。仿真实验表明,NC-CSMA协议比传统CSMA协议具有更高的信道利用率和更小的端到端时延。
未来的工作应集中在一个整体的跨层,一种能够形成大规模多跳的网络。相对于大规模网络,文中选取的节点数量很少,且NC-CSMA不适用于多跳的路由。NC-CSMA不仅可以在水声网络进行研究,而且在长传播延迟的无线网络卫星通信也可以进行研究,将该协议应用于不同的领域也是未来的研究方向。
[1] ANSARI S,GONZALEZ J P,OTERO P,et al. Analysis of MAC strategies for underwater applications[J].Wireless Personal Communications,2015,85(2):359-376.
[2] CHEN Jiwei,GERLA M,LEE Y Z,et al.TCP with delayed ACK for wireless networks[J].Ad Hoc Networks,2011,6(7):1098-1116.
[3] LEE H,YINNIRELLO I,YU J,et al.A performance analysis of block ACK scheme for IEEE 802.11 networks[J].Computer Networks,2012,54(14):2468-2481.
[4] CHIRDCHOO N,SOH W S,CHUA K C.Aloha-based MAC protocols with collosion avoiddance for underwater acoustic networks[C]//Proceedings of 26th IEEE international conference on compute communications.Anchoeage:IEEE,2007:2271-2275.
[5] 张梦娜,刘广钟.SE-MAC:一种节能的水下传感器网络MAC协议[J].计算机技术与发展,2015,25(3):67-70.
[6] 邓 婕.浅海水声自组网MAC协议的设计与实现[D].厦门:厦门大学,2009.
[7] 李淑秋,李启虎,张春华.第六讲 水下声学传感器网络的发展和应用[J].物理,2006,35(11):945-952.
[8] 王毅凡,周 密,宋志慧.水下无线通信技术发展研究[J].通信技术,2014,47(6):589-594.
[9] 夏梦璐.浅水起伏环境中模型—数据结合水声信道均衡技术[D].杭州:浙江大学,2012.
[10] TOKLU S,ERDEM O A.BSC-MAC:energy efficiency in wireless sensor networks with base station control[J].Computer Networks,2014,59(3):91-100.
[11] 常大为,刘双梅,万晓榆.基于IEEE 802.15.4的CSMA/CA 性能分析与研究[J].电信工程技术与标准化,2006,19(1):28-33.
[12] 吴华锋,陈信强,毛奇凰,等.基于自然选择策略的蚁群算法求解TSP问题[J].通信学报,2013,34(4):165-170.
[13] 石为人,黄 河,鲜晓东,等.OMNET++与NS2在无线传感器网络仿真中的比较研究[J].计算机科学,2008,35(10):53-57.
[14] FARRELL A C,PENG Jun.Performance of IEEE 802.11 MAC in underwater wireless channel[J].Procedia Computer Science,2012,10:62-69.