水声通信无线自组织网络延迟传输调度算法
2019-09-26刘景景李春国刘传洋
刘景景,李春国,宋 康,刘传洋
(1.池州学院机电工程学院,安徽 池州 247000;2.东南大学电子科学与工程学院,江苏 南京 210096;3.青岛大学电子信息学院,山东 青岛 266071)
水声通信无线自组织网络广泛应用于石油和化学品泄漏监测、潜艇检测和监视、探测和观察具有广域覆盖的海洋,移动节点用于监听水下活动,并使用声学多跳路由向其他移动节点传输数据[1-2]。水声通信无线自组织网络面临着长传播延迟、传输功率消耗较高、传播节点移动性的挑战。虽然声学通信技术有所进步,水中声学信号的传输速度为1 500m/s,比无线电信号传输速度为3×108m/s慢5个数量级,由于传播延迟比较长,导致带宽严重受限[3];与地面无线电相比,水下声学调制解调器消耗大量能量,声学调制解调器发射功率将近是接收功率的100倍;另外由于复杂的水下环境,水下无线信道的不可靠性进一步加剧了数据通信。长传播延迟对网络协议的设计有很大的影响,应用于地面分组无线自组织网络的多路访问控制(Multiple Access Control,MAC)协议不能直接用于水下传感器网络,在1 500m范围内,声信号的传播时间为1s,对于256字节数据包,数据速率为50kbps,数据包分组传输的时间只需要0.04s,声信号的传播延迟远远大于分组传输时间[4]。
在多跳无线网络中,有效利用有限的网络资源,载波侦听多路访问(Carrier Sense Multiple Access,CSMA)为数据流竞争提供了合理的性能和公平性,CSMA可以支持节点移动,由于移动水下网络中声信号传播延迟过长,导致了系统吞吐量严重下降,由于传播延迟,载波传感器无法检测到数据传输,导致CSMA中的载波侦听无法阻止数据包冲突,从而降低了CSMA协议的性能[5]。
科研工作者们注意力集中在利用声学信道的时间或空间重用以提高吞吐量。例如,时隙FAMA(S-FAMA)使用时隙来通过将分组传输对齐到时隙(如在时隙Aloha中)来降低冲突的可能性,而传播延迟容忍冲突避免协议(PCAP)允许节点发送多个传输时隙预留请求(即请求发送RTS)[6]。在Underwater FLASHR(UW-FLASHR)中,时隙被划分为预留和数据传输周期,以实现有效的信道预留并最小化由控制分组交换引起的数据分组丢失[7]9。为了获得更好的信道利用率,大多数协议试图通过重复试错法,使用强力学习来构建时分多址(TDMA)调度,或者解决计算难度最大的调度问题,如STMAC和STUMP[8-10]。基于TDMA的调度方法能提高传统的CSMA类随机信道访问协议,但是需要仔细安排传输,当多个数据包同时从不同的发送者到达时,接收器尝试解码数据包时会发生冲突,如果每个节点具有相邻节点的传播延迟信息及其传输调度,则每个节点可以预测其即将到来的分组传输是否与另一个传输冲突。
本文在CSMA协议的基础上提出了一种传输调度算法,通过时间和空间重用原则,采用增加并发传输的机会来补偿长传播延迟,提高网络吞吐量,降低节点暴露冲突的可能性。
2 延迟传输调度算法(DTSA)
载波侦听多路访问(Carrier Sense Multiple Access,CSMA)采用控制包交换机制(RTS-CTS- DATA-ACK)竞争信道使用权。带有冲突检测的载波监听多路访问CSMA/CD是一种分布式争用型介质访问控制协议,应用于数据链路层[11]。CSMA/CD的基本原理是:所有节点都共享网络传输信道,节点在发送数据之前,首先检测信道是否空闲,如果信道空闲则发送,否则就等待;在发送出信息后,再对冲突进行检测,当发现冲突时,则取消发送。
2.1 时间重用
水声通信无线自组织网络在长传播等待时间内利用时间重用原则允许多个节点在同一竞争域内传输,通过节点非冲突传输到不同的目的地,解决暴露终端问题。图1给出了时间重用示意图。节点x1在不同的时间内与节点x2和节点x3进行通信,节点x1先向节点x2发送数据包Data1,稍后再向节点x3发送数据包Data2;节点x2接收完数据包Data1后向节点x1发送确认信号Ack1,节点x3接收完数据包Data2后向节点x1发送确认信号Ack2。上述情况使数据(Data)和确认(Ack)能够在没有碰撞的情况下传输和接收。
为了利用时间重用,文献[7]2-8提出了一种变型的时分多址(Time Division Multiple Access,TDMA)协议,有效地提高信道利用率。TDMA把时间分割成周期性的帧,每一个帧再分割成若干个时隙向基站发送信号,在满足定时和同步的条件下,基站分别在各时隙中接收各移动终端信号。
图1 时间重用示意图
2.2 空间重用
水声通信无线自组织网络通过空间重用允许节点并发传输提高信道利用率。如图2所示,节点A与节点B进行通信,节点C与节点D进行通信,节点A在其碰撞域中获得通道的独占访问权,节点A和节点C之间存在节点暴露问题,为了避免节点暴露问题,引入节点空间重用。节点A发送Rts给节点B,节点B接收Rts和数据,同时节点C发送Rts给节点D,节点D接收Rts和数据;节点B接收完数据发送Ack给节点A,节点D接收完数据发送Ack给节点C。节点A和节点C可以同时通信,从而使传输介质能够在空间上重用。
图2 空间重用示意图
2.3 延迟传输调度算法
水声通信无线自组织网络传播延迟相对较长,节点通信在Rts/Cts握手后,相邻节点之间的数据传输会与Rts控制帧发生碰撞。Rts等待时间大于传输帧达到最大传输范围的传播延迟和Cts等待时间大于Rts的传输时间加上两倍的最大传播延迟时间可以实现节点无碰撞传输。结合图2,两个节点A和C相互暴露,节点A首先传输一个Rts给节点B,节点B在等待适当的时间(即总分组传输时间+最大传播延迟)后用Cts回答。在节点B等待Cts传输时,节点C也接收到节点A发出的Rts并有数据要发送。
表1给出了传输调度算法伪码描述,结合图2、图3阐述延迟传输调度算法(DTSA)。以下两个条件成立,节点C可以向节点D传输:(1)节点传输Rts和数据传输不得干扰邻节点的接收,即节点C的Rts传输不应干扰节点A对Cts和Ack接收;(2)节点即将接收的Cts和Ack不得被邻节点数据传输干扰,即节点C的Cts和Ack接收不应被节点A的Data传输干扰。
图3 延迟传输调度算法流程图
对于条件(1),节点C检查发送的Rts是否会干扰节点A接收节点B发送的Cts。在t=0,节点B发送的Cts在到达节点A的时间TCts(B)
TCts(B)=TRts(A)+VCtl+τCts(B)+VB→A
(1)
式中:TRts(A)表示节点A发送Rts的传输时间;VCtl为任意两节点控制包的最大传播延迟时间;τCts(B)表示Cts帧处理时间;VB→A表示节点B发送Cts的传输时间。
节点B向节点A发送Cts信号持续时间VCts(B)
(2)
式中:lCts表示Cts的数据长度,λData表示数据包的传输速率。
类似地,B发送Ack的到达节点A时间TAck(B)
TAck(B)=TCts(B)+VData+τData(A)+τAck(B)+VB→A
(3)
式中:VData为任意两节点数据包最大传播延迟时间;τData表示Data数据帧处理时间;τAck(B)表示Ack帧处理时间。
节点B向节点A发送Ack持续时间VAck(B)
(4)
式中:lAck表示Ack的数据长度,λData表示数据包的传输速率。
节点C向节点A发送Rts时间不在公式(2)、(4)的区间内即可避免干扰。
至于对于条件(2),节点C接收节点D发送的Cts和Ack时间是否与节点A向节点B发送Data持续时间存在干扰。节点D发送的Cts在到达节点C的时间TCts(D)
TCts(D)=TRts(C)+VCtl+τCts(D)+VD→C
(5)
式中:TRts(D)表示节点D发送的Rts的传输时间;VCtl为任意两节点控制包的最大传播延迟时间;τCts(D)表示Cts帧处理时间;VD→C表示节点D发送的Cts的传输时间。
节点D向节点C发送Cts信号持续时间VCts(D)
(6)
式中:lCts表示Cts的数据长度,λData表示数据包的传输速率。
类似地,D发送的Ack的到达节点C时间TAck(D)
TAck(D)=TCts(D)+VData+τData(C)+τAck(D)+VD→C
(7)
式中:VData为任意两节点数据包最大传播延迟时间;τData表示Data数据帧处理时间;τAck(D)表示Ack帧处理时间。
节点D向节点C发送Ack持续时间VAck(D)
(8)
式中:lAck表示Ack的数据长度,λData表示数据包的传输速率。
节点C接收节点A发送的Data时间TData(A)
TData(A)=TRts(A)+2VCtl+τCts(B)+τData(A)+VA→C
(9)
节点A向节点C发送Data信号持续时间VData(A)
(10)
当(6)和(8)的时间范围不在(10)的范围中时,节点C进行Rts无干扰传输。
表1 传输调度算法伪码描述
3 实验仿真
将本文提出的DTSA性能与两种CSMA性能进行比较,即Slotted FAMA(S-FAMA)[12]、带有Ack的CS-ALOHA[13]。S-FAMA基于Rts/Cts握手的同步水下MAC协议,对信道进行时隙独占访问,确保在时隙开始之前发送的任何帧在时隙持续时间结束之前到达目的地。具有Ack的CS-ALOHA适用于水下环境的ALOHA,每个节点在信道空闲时发送而不执行Rts/Cts握手过程。为了评估提出算法的性能,将吞吐量作为单位负载量的函数来衡量,吞吐量为仿真时间内控制帧的数量,单位负载量为仿真时间内数据帧的数量。
在仿真参数为传输范围1 500m,数据长度分别为512bt、1 024bt下,图4、图5给出了三种算法在线性拓扑下吞吐量对比曲线。通过两图对比可以得出吞吐量随着数据长度的增加而增大。由于S-FAMA只有一对节点进行Rts/Cts握手传输,吞吐量相对来说比较小。CS-ALOHA利用空间重用进一步提高吞吐量,但是CS-ALOHA不能避免节点碰撞;DTSA可以避免节点碰撞,从而吞吐量更高。
图4 线性拓扑负载数据长度为512bt下吞吐量对比图
图5 线性拓扑负载数据长度为1 024bt下吞吐量对比图
图6、图7给出了三种算法在节点为星型拓扑、传输范围为1 500m、不同数据长度下吞吐量对比曲线,由于星型拓扑采用外围4个节点向中心节点进行传输,相对于图4、图5线性吞吐量要小一些。图6为负载数据长度为512bt下吞吐量曲线图,图7为负载数据长度为1 024bt下吞吐量曲线图,通过两图对比可以得出在星型拓扑结构下吞吐量随着数据长度的增加同样增大。图7中CS-ALOHA性能不稳定,吞吐量很小是因为随着数据长度增大,超过CS-ALOHA处理上限,使得碰撞率增大,吞吐量降低;DTSA能较好避免节点碰撞,吞吐量也进一步提高。
图6 星型拓扑负载数据长度为512bt下吞吐量对比图
图7 星型拓扑负载数据长度为1 024bt下吞吐量对比图
4 结语
本文在CSMA协议的基础上,提出了一种用于水声通信无线自组织网络的延迟传输调度算法(DTSA),利用时间和空间重用原则,检测相邻节点传播延迟及其预期信息进行传输调度,增加并发传输的机会来补偿长传播延迟,降低节点暴露冲突的可能性。通过仿真分析,DTSA性能明显优于S-FAMA和CS-ALOHA,提出的DTSA算法可以显著提高整体吞吐量,有效地处理由物理位置和传播延迟引起的空间不公平性。