本发明涉及网络传输,尤其涉及基于rtt-lda的水声传感器网络传输层拥塞控制方法。
背景技术:
1、水声传感器网络(uwsns)在海洋探测开发以及国防安全等领域发挥重要作用,诸如水下军事应用通常需要提供可靠的数据传输,其中基于水声传感器网络的传输层研究应用更显的尤为重要。水下无线传感器网络的传输层拥塞控制是一个重要但困难的问题,因为水下信道具有高传输时延、多径、非常高的衰减和多普勒失真等特点,导致高误码率。可靠的数据传输对监视和战术决策至关重要,因此提高基于传输层的拥塞控制的性能对水下军事网络具有至关重要的意义。
2、在地面网络中存在多个包丢失时,需要降低传输速率以减少网络中的包数。大多数情况下,这是由网络拥塞引起的。而在uwsns中,除了拥塞导致的丢包之外,还存在信道退化导致的丢包。如果要确保吞吐量效率,就必须避免使用针对丢包减少注入到网络中的数据包这种传统的拥塞控制方法。无线信道质量差是uwsns中丢包、传感器失效和网络拥塞的主要原因。无法区分由于拥塞和信道错误导致的丢包以及由于水下介质的大传播延迟导致的吞吐量降低。因此,吞吐量严重下降并且浪费了大量能量。
3、寻找解决上述这些问题的方法,特别是在海洋环境中保证良好的网络通信。其中rtt估计和丢包区分是两个重要的问题。报文rtt的变化被用来在网络的早期阶段检测拥塞的开始。报文的rtt一般受报文在中间节点(路由器)的缓冲时间(排队延迟)、路由的变化和临时链路故障引起的延迟等因素的影响。这些延迟是随机的,很难估计。其次,有线网络拥塞通常会导致丢包,而在水声网络中,丢包可能是由于链路质量差、误码率(ber)高等原因。因此,需要有一个好的丢包区分算法来区分丢包的原因。
4、考虑到uwsn特性,例如长且可变的传播延迟或高误码率,通过提出高性能的丢包区分机制、构建自适应丢包区分模型提高抗误码性能。lda(loss diffierentiationalgorithm)是当前有效区分拥塞丢包和非拥塞丢包算法。现有lda算法可被分为两类:1)基于跨层的丢包区分算法。2)基于端到端的丢包区分算法。基于跨层的丢包区分算法需要在不同的协议层之间进行交互和协作,实现起来比较复杂,需要对网络协议栈有深入的了解,且需要对网络协议栈进行修改,因此可扩展性较差,难以应用于大规模网络;且依赖底层协议提供的信息进行丢包区分。基于端到端的丢包区分算法通常无法区分拥塞丢包和随机丢包,极易导致误判和不必要的拥塞控制操作,且需要在发送端和接收端之间进行大量的信息交互,会增加网络的负担,导致网络拥塞和性能下降。
5、稳定rtt的估计获取,lda算法均涉及到rtt参数,而水声链路中存在rtt不稳定的问题。网络吞吐量受排队或缓冲时间、无线链路故障和路由变化等因素的影响较大。拥堵引起的延迟大多呈线性增长,而不是突然增长。但是由于重路由、临时链路故障以及多路径路由等原因造成的延迟,导致rtt的突然增加或减少。
6、为了解决上述问题,本发明提出基于rtt-lda的水声传感器网络传输层拥塞控制方法。
技术实现思路
1、本发明的目的在于提出基于rtt-lda的水声传感器网络传输层拥塞控制方法以解决背景技术中所提出的问题:
2、现有技术无法区分由于拥塞和信道错误导致的丢包以及由于水下介质的大传播延迟导致的吞吐量降低。传统基于跨层的丢包区分算法实现复杂、可扩展性差、依赖底层协议;基于端到端的丢包区分算法准确性较低、无法区分拥塞丢包和随机丢包、增加网络负担;且水声链路中rtt不稳定。
3、为了实现上述目的,本发明采用了如下技术方案:
4、基于rtt-lda的水声传感器网络传输层拥塞控制方法,包括如下步骤:
5、s1:水声传感器网络的传输层tcp协议开始后进入慢启动阶段,慢启动初始启动时设置拥塞窗口值cwnd和慢启动阈值ssthresh;
6、s2:采用队列拥塞模型,源端发送窗口逐渐增大至填满瓶颈链路最大带宽,随着流量的增大,队列缓存逐渐增加至最大,继续增大发送窗口,buff冲爆产生数据包溢出丢失,即发生网络拥塞问题;
7、s3:针对s2中的网络拥塞队列模型,采用积压报文分组计算积压报文数;
8、s4:设定两个阈值α和β对基于所述积压报文分组计算的积压报文数的情况进行判断,加入针对阈值α和β的动态调整算法,以此进行发送端的窗口调整,还引入实时吞吐量的变化值δt对参数α和β进行调整。
9、优选地,s1中所述拥塞窗口在每个rtt内呈指数增加;当达到慢启动阈值ssthresh时,慢启动算法就转换为线性增长阶段,并控制每个rtt内拥塞窗口只增加1个分段量。
10、优选地,所述s3中采用积压报文分组计算积压报文数具体如下:
11、积压数据包的吞吐量ub是估计吞吐量ue与实际吞吐量ua之间的差值,即:
12、ub=ue-ua
13、
14、其中,ertt是rtt的一步前估计,使用arima(2,1,1)时间序列预测模型估计rtt获得;
15、
16、其中,cwnd为拥塞窗口值;artt为上次rtt中确认的数据包的平均rtt;
17、估计由积压数据包引起的延迟db:
18、db=ertt-basertt
19、其中,basertt为基本往返时延;
20、得到:
21、
22、得到:
23、
24、其中,n为积压报文数。
25、优选地,s4中所述实时吞吐量的变化值δt的计算具体如下:
26、计算网络实时吞吐量t:
27、
28、其中,srtt为当前往返时延rtt的平滑值;tn为当前最新确认的端源实时吞吐量;srttn和srttn-1分别表示对第n个和第n-1个往返时延参数值的平滑处理;sdata表示此范围内的确认收到的发送数据量;
29、其中,基于平滑方法处理往返时延,对时延及平滑时延进行初始化赋值:
30、rtt=t,srtt=t
31、经过第n次测量,基于测量值与历史值的计算,对第n次测量参数值进行平滑处理:
32、srttn=(1-k)*srttn-1+k*rtt
33、其中,rtt表示最新采集获得的rtt值;k为平滑权重;
34、基于当前最新确认的端源实时吞吐量tn计算变化值δt:
35、δt=tn-tn-1
36、其中,δt为整个网络实时吞吐量的变化值;n代表当前第n次测量。
37、优选地,所述s4具体如下:
38、s4.1:根据发送报文的时间戳和接收ack的时间戳获取当前rtt,再利用arima(2,1,1)时间序列预测模型估计ertt;
39、s4.2:如果当前rtt小于现有的basertt,则更新basertt为当前rtt;
40、s4.3:计算包含当前最新一轮rtt的n轮rtt的平均值artt:
41、
42、其中,sum为求和函数;
43、再计算积压报文数n和δt值;
44、s4.4:检测是否发生异常反馈,并根据异常反馈情况转入s4.4.1或s4.4.2;
45、s4.4.1:如果检测到发生异常反馈为3个重复ack的情况,首先立即快重传尚未收到的报文段;然后进入如下判断:
46、a:若n>β,此时网络发生严重拥塞,则立即令cwnd=ssthresh+3*mss,同时维持发送窗口线性增长;
47、b:若n≤β且δt<0,此时网络情况变差,导致吞吐量减小,且阈值高于当前网络对应数值,则将两个阈值α和β都减1,且α和β最小值分别为1和3;
48、c:若α≤n≤β且δt≥0,此时网络状态较好,缓冲挤压数据包较少,不产生拥塞丢包,此时将两个阈值α和β都加1;
49、d:若n<α且δt≥0,当前网络为无拥塞状态,则维持当前拥塞窗口发送状态不变;
50、s4.4.2:如果检测到发生当前报文rtt大于rto超时的情况,则进入如下判断:
51、a:若n>β,此时网络发生了拥塞丢包,则立即令cwnd=1,同时发送拥塞窗口重新进入慢启动阶段指数增长;
52、b:若n≤β且δt<0,此时网络情况变差,吞吐量减小,判断网络发生了非拥塞丢包,阈值高于当前网络对应数值,则将两个阈值α和β都减1,且α和β最小值分别为1和3;
53、c:若α≤n≤β且δt≥0,此时网络状态较好,缓冲挤压数据包较少,判断当前为非拥塞丢包,此时将两个阈值α和β都加1;
54、d:若n<α且δt≥0,判断当前网络为无拥塞状态,则维持当前拥塞窗口发送状态不变。
55、与现有技术相比,本发明提供了基于rtt-lda的水声传感器网络传输层拥塞控制方法,具备以下有益效果:
56、本发明采用基于源端的tcp协议基础上的丢包区分算法,监测源端的拥塞窗口和rtt等信息来区分拥塞丢包和随机丢包,从而更精确地进行拥塞控制,简化丢包区分过程,提升扩展性和判断准确性。还采取时间预测序列arima模型对rtt进行较为准确地估计,能够有效减少水声链路的延迟中断不稳定带来的rtt估计负面影响。
1.基于rtt-lda的水声传感器网络传输层拥塞控制方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于rtt-lda的水声传感器网络传输层拥塞控制方法,其特征在于,s1中所述拥塞窗口在每个rtt内呈指数增加;当达到慢启动阈值ssthresh时,慢启动算法就转换为线性增长阶段,并控制每个rtt内拥塞窗口只增加1个分段量。
3.根据权利要求2所述的基于rtt-lda的水声传感器网络传输层拥塞控制方法,其特征在于,所述s3中采用积压报文分组计算积压报文数具体如下:
4.根据权利要求3所述的基于rtt-lda的水声传感器网络传输层拥塞控制方法,其特征在于,s4中所述实时吞吐量的变化值δt的计算具体如下:
5.根据权利要求4所述的基于rtt-lda的水声传感器网络传输层拥塞控制方法,其特征在于,所述s4具体如下:
