改善卫星融合网络随机丢包和间歇性中断方法
2015-09-19陈琼冰
陈琼冰,白 勇,宗 亮
(海南大学 信息科学技术学院,海南 海口570228)
随着卫星组网技术的发展,卫星网络已经逐渐成为互联网不可缺少的一个部分。卫星融合网络通过卫星网关与其他无线网络连接用来支持新的服务。例如,海洋渔业船舶之间建立的移动自组织网络通过卫星网关与卫星网络连接。卫星网络在与地面网络连接,形成一个异构融合网络[1-2],它可以支持船舶与船舶之间以及船舶与陆地之间的通信。
传统的TCP 协议并不适合卫星网络的特点。目前,适用于卫星网络的传输层协议已成为世界各国的研究热点[3-6]。传输控制协议(TCP)为应用层提供可靠的数据流传输,TCP协议最初设计主要考虑地面有线网络。当TCP 协议应用在卫星网络时,卫星网络的特点使得TCP 协议传输性能面临新的挑战。首先,网络长时延的出现主要是由于卫星链路的长传播时延,当一个连接传输通过卫星网络时,发送一个数据包的往返时间一般会超过500 ms。其次,高的比特错误率导致网络出现随机丢包。如果没有对随机丢包信息进行区分,TCP 将每个随机丢包作为拥塞控制指示,并在TCP 发送端将减小其滑动窗口大小,以避免拥塞崩溃,从而大幅度地减少了TCP 整体吞吐量。第三,移动终端的移动性可能会造成网络间歇性中断,这是由于信号的堵塞、干扰以及卫星网关的挂起。这种间歇性中断导致数据包的丢失,TCP 仍然认为是网络拥塞的征兆并减少拥塞窗口来限制数据发送到网络中。此外,TCP 会对重传超时计算器(RTO)采用指数退避算法,当重传超时计算器到期就会增大一倍的时间。频繁的丢失导致非常小的滑动窗口以及很大的RTO,这意味着每次试探网络连接时有较少量的数据被发送到网络和较长的时间间隔。
为了处理卫星网络的上述负面特点,近年来,许多学者提出了用于改卫星网络TCP 性能的方案,所提出的解决方案大致可以分为以下3 类:端到端的改进方案、链路层改进方案以及TCP 分离连接改进方案。具体来说,为了解决长时延问题,可以在发送端增加拥塞窗口的初始值,使得网络更快地进入拥塞避免阶段。为了解决随机丢包和间歇性中断问题,例如采用M-TCP,Veno 以及Vegas,M-TCP 的半分离思想能够很好解决间歇性中断的问题。当移动终端移动中断时,发送方不会遭受拥塞控制的影响。TCP Vegas 通过估计瓶颈链路中缓存器的数据包,并选择最小的RTT 为基准来算出网络可以容纳的最佳吞吐量。TCP Veno 采用与类似Vegas 方式来估计网络中的积压报文,并且可区分随机丢包和拥塞丢包,对于拥塞丢包,TCP Veno 采用标准Reno 算法。对于随机丢包,增加一个保守分方式。
在现有提高TCP 性能的方法中,仍缺乏一种可以同时解决高比特错误率引起的随机丢包和移动终端间歇性中断的技术方案。本文提出了TCP M-Veno 方法来实现这个双重任务。该算法在发送端提出一种自适应与网络时延的方法来解决卫星网络的长时延。在网关结M-TCP(可以处理移动终端的频繁中断)和Veno(可以区分随机丢包和拥塞丢包)的优势来解决异构卫星网络移动终端间歇性中断。
1 相关工作
1.1 M-TCP 概述
M-TCP[7]是标准TCP 的一个改进版本,M-TCP 把连接区分为无线连接和有线连接。当出现连接中断时,M-TCP 生成的保持数据包迫使发送端进入保持状态。在保持状态,发送端不会执行重传超时,也不会以指数形式后退重传定时器,并且保持拥塞窗口的大小。因此,当连接恢复时,发送端能以一个较大的传输速率传输数据,从而提高TCP 传输性能。
图1 是一个简单的M-TCP 网络模型,TCP 连接在协议网关被分离,在协议网关中与服务器连接通信的被叫做SHTCP,接收来自服务器端的数据包,它通过这些数据包将MTCP 客户交付给移动终端(MH)。GW 与TCP 客户端连接,称为M-TCP,接收由移动端MH 发送的确认数据包。当移动终端短暂中断或数据包在MH 和SH 丢失时协议需要发送端不触发拥塞控制算法。在标准的TCP 版本中只有当一个新的ACK 中rwnd 的值为0 才能迫使发送端进入保持状态。MTCP 通过保存最新的ACK 数,每次确认ack-1 个数据包,当移动端数据包丢失或中断时,利用最后一个ACK 生成一个保持数据包发送给发送端,迫使发送端进入保持状态。
1.2 TCP Veno 概述
TCP Veno 通过使用与TCP Vegas[8]相类似的机制估计当前连接所处的状态,判断数据包的丢失是拥塞丢包还是随机丢包。如果当连接处于拥塞阶段,TCP Veno 认为是由于网络拥塞引起的丢包,而其他的阶段认为是随机丢包。
图1 M-TCP 网络结构
1.2.1 TCP Veno 状态区分原理
TCP Veno 主要根据源端期望发送速率和实际发送速率来区分丢包情况
其中,BaseRTT 为测量到的最小RTT。cwnd 为当前TCP的拥塞窗口。定义Diff 为二者之差,N 为报文积压数
TCP Veno 设置一个门限值β(β 一般取3),通过比较N和β 来区分连接所处的状态。当N≤β 时,则认为连接处于正常工作状态,此时如果发生丢包均认为是随机丢包,而不是由于拥塞所致,故采用改进的拥塞算法。如果N >β 时,连接处于拥塞阶段,Veno 认为丢包是由于网络发生了拥塞,相应地采用Reno 的窗口调整算法。
1.2.2 TCP Veno 的拥塞控制机制
TCP Veno 在拥塞避免阶段,TCP Veno 对原有的算法进行改进。考虑连接所处的状态,当连接处于拥塞阶段时,降低窗口的增加速度,使TCP Veno 能更长时间处于较大的窗口数目。因此,每收到2 个新的ACK 使拥塞窗口加1,提高了效率和吞吐量。在快速重传和快速恢复阶段,当判定出网络的丢包是随机丢包时,就设置拥塞窗口的阈值为ssthresh=cwnd×4/5 而不是原来的1/2;相反,当网络的状态处于拥塞时,就采用传统的拥塞控制机制来处理丢包。TCP Veno 在拥塞避免阶段区分了拥塞和非拥塞情况,并在快速重传时区分随机丢失和拥塞丢失的情况,前者能更长时间处于较大的窗口数目,增加了吞吐量;后者保证了在随机丢失时,在一个高的阈值开始拥塞避免,同样提高了吞吐量。
2 TCP M-Veno 算法
传统的TCP 拥塞控制应用于异构卫星网络时存在一些问题。卫星网络的长时延使得发送方cwnd 增长过于缓慢,从而导致TCP 的带宽利用率不高。高误码率导致高丢包率被TCP 发送端错误的判断为拥塞,从而进行不必要的拥塞控制导致TCP 数据吞吐量不高。移动终端的间歇性中断也会导致发送方重复的发送不必要的数据报,导致网络发生拥塞。为了解决卫星网络中的高的随机丢包率、长的传播时延以及同时存在终端间歇性中断的情况,本文提出了一种TCP MVeno,M-Veno 算法结合了M-TCP 和TCP Veno 的优势,当移动终端出现中断时利用M-TCP 机制防止发送端触发拥塞控制算法。为了进一步减少长时延和高BER 的影响,笔者对TCP Veno 进行改进使它适应于长时延的卫星网络。如图2所示,TCP M-Veno 在服务器采用TCP Veno+算法,在协议网关实现M-TCP 机制。
图2 TCP M-Veno 网络结构
2.1 TCP M-Veno 中发送端的改进
TCP M-Veno 发送端的改进是通过改进TCP Veno,使之成为TCP Veno+。在发送端通过增加一个自适应拥塞窗口增长机制,主要是引入一个增益因子ρ 使它能够适应于卫星链路的长传播时延。
2.1.1 增益因子ρ
在Veno 协议中,cwnd 以固定的速度增加。在慢启动阶段,窗口依据数据包的确认以固定增长速度成倍增长。当进入拥塞避免后,cwnd 以线性速度增加。在稳定低延时的有线网络以这种速度增加可以满足网络的需要。但是在卫星网络,由于往返时间长,这样增长的速度是比较慢的。所以要想快速地达到较高的发送速率,使得在长时延下的卫星网络能更快地达到比较高的发送速率。在TCP M-Veno 算法中引入一个增益变量ρ,用变量ρ 来反映网络的传输情况和拥塞窗口的变化,变量ρ 的值计算如下
其中,sampleRTT 为平滑往返时间;ρ 的变化范围为1 ~60。固定值60 是最大RTO 通过1 s 归一化的最小推荐值。ρ下限设置为1,以确保TCP 使用标准算法用于与极短RTT 的连接。相反地,设置ρ 上限为60,以确保ρ 的值不会太大。变量ρ 能减缓长传播时间的消极影响并迅速地增加拥塞窗口,窗口的增加取决于变量ρ。因此,每接收一个ACK,拥塞窗口的增加速度要比传统TCP 拥塞窗口的增加速度快。
2.1.2 自适应拥塞窗口增长机制
标准的TCP 协议拥塞窗口都是以固定速率增长,这种机制对于短时延的有线网络效果很好。随着往返时间RTT 的增加,完成慢开始进入拥塞避免所需要的时间越长。所以这种增长机制并不适用于长时延的卫星通信系统。因此,笔者的想法是当往返时间越大,cwnd 的增加速度越快,cwnd 的增加速度能够自适应网络传输时延。在默认的TCP 实现中,当延迟ACK 选项被启用时,拥塞窗口增长可能不是指数,因为该接收器可以延迟发送ACK 即用一个ACK 确认一个以上的报文段。这种延迟确认加剧长传播时延对GEO 卫星网络的影响。选择增益因子ρ 的断点为15,对应于250 ms 的平滑往返时间。当ρ >15 并且没有出现丢包时,拥塞窗口的增长是以MSS 的整数倍增加,这样能更好地利用网络的可用带宽。
2.1.3 慢启动和拥塞避免的改进
经过3 次握手完成后,基于当前的cwnd 和flightsize(在网络中未被确认的总报文数)将慢启动分为2 个阶段,分段算法描述如下:
如果ρ <15,在慢启动阶段cwnd 以1 倍的速度增加。当ρ≥15,发送方没有出现丢包,TCP 拥塞窗口是以/4 倍的速度增长。2 个突然的报文段启用延迟ACK 将导致传送4 个连续的报文段,这样可能导致微突发的传输情况。因此/4被选择以适应于卫星链路长时延而非线性增加。需要注意的是/4×MSS 值的范围在(1 ~2)×MSS。最大值只有2×MSS 将防止大线速突发在TCP 发送端探测网络时,并建议以适应延迟ACK 选项的连接开始启用。基于ρ(60)的最大值,为增量/4)×MSS 也保持适度的突发大小小于10 段与丢失段的概率很低。
如果cwnd <ssthresh,并且网络中未被确认的数大于rwnd/2,其拥塞窗口是以标准TCP 算法增长。当cwnd >ssthresh,并且TCP 在快速恢复或网络中未确认的数大于rwnd/2,TCP 拥塞窗口以线性增加。由于在拥塞避免阶段线性增加比较保守,当网络中未被确认的数小于rwnd/2 时,拥塞窗口是以/2)×MSS 递增。注意,如果/4)或/2)的值小于1,它被向上舍入为1。因此,在慢开始阶段,其cwnd 增加速度是在1 MSS 和/4)×MSS 之间变化,发送端平滑其传输速率,这样比TCP Veno 能更好地使用网络的可用带宽。自适应增加机制,TCP 发送端在慢开始阶段可以更快地获得更高的传输速率,特别是在RTT 很大的GEO 卫星链路的情况。
2.2 TCP M-Veno 中网关的改进
异构卫星网络中船舶之间的移动会导致TCP 间歇性中断。中断会引起发送方出现一系列的超时,从而重传所有认为已经丢失的数据包。并且会对发送方的重传超时器进行指数退避算法直到其到达64 s,严重影响了TCP 的数据吞吐量。为了解决这个问题,笔者在网关实现M-TCP 算法,该算法在网关处分离为2 个TCP 链接,图3 所示。发送方与网关之间使用Veno+算法,而在网关与移动终端使用M-TCP算法。
图3 TCP M-Veno 网关分离连接
网关实现的主要功能冻结TCP 发送方,让它不会触发拥塞控制算法。当移动终端恢复链接后,以保持状态的发送速度继续传输数据。当终端发生中断,发送方会收到网关的一个特殊确认包,确认包会把它的接收窗口设置为零,从而迫使发送方进入保持状态。在保持状态时,TCP发送方不会触发拥塞控制算法并且冻结所有定时器。为了实现M-TCP,需要在网关分别处理发送方与移动终端数据包。
基于北京市水土保持规划管理的需要,北京市划分了1 085条小流域,每条小流域都有其明确的边界范围。通过将治理措施与小流域及三道防线划分数据进行叠加,可以检查各项治理措施是否全部布设在小流域范围内,并及时发现了未按照“生态修复区、生态治理区、生态保护区”三道防线规划原则布设措施的现象。
2.2.1 处理来自发送方的数据
当网关收到发送方的报文段后,转发给移动终端,但并不会对此包进行确认直到收到终端的确认ACK。这样做以确保TCP 端到端语义。当移动终端发生中断,发送方会进入保持状态,具体算法如下描述:
1)用W 表示网关的缓存大小,其接收窗口为w。毫无疑问,w 肯定要小于或等于W。假设移动终端已经确认w'<w报文段,当没有中断的情况下,网关只会确认w'-1 个报文段。
2)当确认w'后移动终端发生中断。这时网关收不到移动终端的确认包,经过一段时间后(这个时间可以自己根据网络合理设置)网关如果还没有收到确认,这时就判断移动终端已经中断。这时网关就会对w'发送一个特殊ACK 给发送方,这个确认包把接收窗口设置为零,迫使发送方进入保持状态。在保持状态,发送方不会触发拥塞控制算法,也不会利用指数退避算法重设超时时间间隔RTO。
3)当移动终端重新恢复链接。它会发送一个恢复包给网关,收到恢复包后网关会发送一个确认给发送方。收到网关的确认后发送方会退出保持状态并继续发送数据。因此,在中断期间,发送方从来就没有发生超时和触发慢开始。
2.2.2 处理来自移动端的数据
网关实现M-TCP 机制目的是当终端中断时使TCP 发送方不会触发拥塞控制算法,并且能很快地从中断恢复链接。设计M-TCP 协议能够感知链路中断使用的与用户端基本上相同。在M-TCP 中检测移动终端的ACK,经过一段时间还没有收到ACK 流就会认为链路已经中断,网关中M-TCP 可以感知到并且会做出相应的措施,M-TCP 在网关所具有的功能如下描述:
1)当出现超时。M-TCP 不会重传丢失的报文段也不会减少拥塞窗口,而是进入保持状态,直到移动终端通知链路重新链接。
3 仿真及性能分析
3.1 OPNET 仿真场景
仿真中使用一个集成的海上异构网络,模拟现实场景如图4 所示。网络模型是由地面网络、卫星网络以及由船舶组成的移动自组织网络。移动用户可以通过卫星连接地面网络进行远程通信,船舶用户(客户端)连接到第一个接入点,然后连接到船载卫星网关,从地面服务器下载数据。地面网关与服务器之间的链路速率采用10 Mbit/s 链路。在所有仿真场景中,以太网链路是无差错的。卫星网络的下行链路数据速率为2 048 kbit/s。上行链路速率为256 kbit/s。上行链路与下行链路具有相同的传播时延,设置为250 ms。客户端每5 min 中断30 s,卫星链路的BER 是从10-9~10-5。在应用层使用FTP 应用程序。地面服务器发送一个50 Mbyte 大小的文件到移动客户端,在卫星网关实现M-TCP 机制,在发送方实现TCP Veno+算法,比较TCP M-Veno,M-TCP,TCP Veno 和TCP NewReno 的传输性能。
图4 网络仿真场景
3.2 仿真结果
3.2.1 业务传输时间比较
从图5 可以看出,完成下载响应时间随着BER 的逐渐增大,不同的TCP 版本完成下载响应时间逐渐增大,尤其是BER 从10-6变化到10-5的过程中,完成下载响应时间急剧增加。BER 从10-9变化到10-6的过程中,4 种不同的TCP 版本完成下载的响应时间维持在1.2×103到2.3×103这个区间,而且它们的区别不是很大。从10-6变化到10-5的过程中,从图示可以看到,完成下载响应的时间快速增加。在BER为10-5时,TCP NewReno 完成下载响应的时间最长,其次是M-TCP,TCP M-Veno 在4 种TCP 中性能最好(7.542×103s),比TCP Veno(8.936×103s)提高了大约18%。
3.2.2 TCP 平均吞吐量的比较
从图6 可以看出,卫星链路的吞吐量随着BER 的逐渐增大,不同的TCP 版本卫星链路的吞吐量逐渐减小,BER 从10-9变化到10-7时,4 种不同TCP 版本性能大体上近似,TCP M-Veno 与TCP Veno 性能相当,比其他2 种TCP 性能略好,BER 从10-7变化到10-5时,4 种TCP 版本的吞吐量急剧下降,TCP M-Veno 的吞吐量比其他3 种TCP 版本都好。TCP M-Veno 卫星下行链路的利用率从55%(BER 为10-9时)变化到15%(BER 为10-6时),M-TCP 卫星下行链路的利用率从48%(BER 为10-9时)变化到12%(BER 为10-6时)。
图5 下载时间比较
图6 平均吞吐量比较
4 小结
卫星融合网络可成为互联网应用的一个重要组成部分,需要针对该网络特点研究TCP 传输性能的提高方法。本文通过改进和结合传统的TCP Veno 和M-TCP 算法提出了TCP M-Veno 算法。TCP M-Veno 算法在发送端拥塞窗口的增加方面进行改进,能够自适应传播长时延,并通过估算网络中积压数据包的数量来区分随机丢包和拥塞丢包,从而减少了卫星网络高误码率的影响。另外,在卫星网关实现M-TCP 机制来解决移动终端间歇性中断。总的来说,TCP M-Veno 算法在保持TCP 语义的基础上可同时减少长传播时延、高误码率引起的随机丢包和移动终端的间歇性中断对卫星网络TCP性能的不利影响。
[1]BAI Y,DU W.VoIP services for ocean fishery vessels over integrated wireless and wireline networks[C]//Proc. 2013 IEEE 24th International Symposium on Personal Indoor and Mobile Radio Communications(PIMRC).[S.l.]:IEEE Press,2013:3461-3465.
[2]DU W,ZHENG X M,BAI Y,et al. Integrated wireless networking architecture for maritime communications[C]// Proc. 2010 11th ACIS International Conference on Software Engineering Artificial Intelligence Networking and Parallel/Distributed Computing(SNPD).[S.l.]:IEEE Press,2010:134-138.
[3]ALLMAN M,GLOVER D,SANCHEZ L. Enhancing TCP over satellite links using standard mechanisms[S].1999.
[4]ALLMAN M,DAWKINS S,GLOVER D,et al. Ongoing TCP research related to satellites[S].2000.
[5]PENG F,CARDONA A S,SHAFIEE K,et al. TCP Performance Evaluation over GEO and LEO Satellite Links between Performance Enhancement Proxies[C]//Proc.Vehicular Technology Conference(VTC Fall).[S.l.]:IEEE Press,2012:1-5.
[6]PIROVANO A,GARCIA F. A new survey on improving TCP performances over geostationary satellite link[J].Network&Communication Technologies,2013,2(1):1-18.
[7]BROWN K,SINGH S. M-TCP:TCP for mobile cellular networks[J].ACM SIGCOMM Computer Communication Review,1997,27(5):19-43.
[8]王云涛,方建安,张晓辉,等. 基于TCP Vegas 的网络拥塞控制改进算法[J].计算机应用研究,2009,26(12):4645-4647.