基于SCPS-TP的TCP协议加速器的研究与实现
2017-08-16杜龙海吴雄君
杜龙海,吴雄君
(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081; 2.中国航天科技集团公司第八研究院第八○二研究所,上海 200090)
基于SCPS-TP的TCP协议加速器的研究与实现
杜龙海1,吴雄君2
(1.中国电子科技集团公司第五十四研究所,河北 石家庄 050081; 2.中国航天科技集团公司第八研究院第八○二研究所,上海 200090)
TCP协议是目前Internet中应用最为广泛的传输层协议,已经成为端到端可靠数据传输的事实标准。但是由于卫星链路的长传输时延、高误码率和链路带宽不对称等特性,使得卫星链路上TCP传输性能极大下降。针对卫星链路影响TCP性能的因素和SCPS-TP对卫星链路上TCP的改进,总结了卫星链路TCP加速器的几种实现方式,并给出一种基于SCPS-TP的TCP代理加速器的实现方案。测试结果表明,使用基于SCPS-TP的TCP代理能够明显提高TCP协议性能。
卫星链路;TCP加速;SCPS-TP;TCP代理
0 引言
卫星通信系统承载了大量的基于TCP的网络应用,TCP协议是针对地面有线网络设计的,卫星链路的长延时、高误码等特点导致TCP性能的严重下降。
文献[1]对卫星链路的特点及其对TCP性能的影响进行了分析,并采用TCP端到端协议改进方案与TCP代理确认算法相结合的方式对TCP性能进行了改进,但没有将SCPS-TP协议与TCP代理确认相结合。文献[2]针对长时延、高误码的特点设计了发送端ACK欺骗、限制接收端ACK及接收端发送NACK的机制提高TCP性能,但没有针对拥塞窗口进行改进,没有充分利用卫星链路大带宽、长时延的特点。文献[3]设计了增大初始窗口、拥塞窗口快速恢复等机制改善TCP的性能,但使用了探测数据包的方式来加速拥塞窗口恢复,增加了额外的开销。
基于SCPS-TP的TCP协议加速方式使用SCPS协议,采用分裂连接的实现方式,通过代理网关实现卫星链路下TCP协议的性能增强。这种加速方式不增加额外的协议开销,充分利用了卫星链路大带宽、长时延等特点。地面终端和卫星终端可使用标准协议栈,协议加速过程对终端透明,不影响终端上现有的基于标准TCP协议的应用[4]。
1 卫星链路影响TCP性能的因素
1.1 长时延影响
对于GEO卫星,单向传播时延大约为250~280 ms,MEO卫星为110~150 ms,LEO为20~25 ms。长时延对TCP的影响包括以下两方面:
① 通告的接收窗口限制传输速率,在标准TCP协议中,最大接收通告窗口是64 KB,卫星链路下若单向传播时延为20 ms时,RTT为40 ms,则整个信道的最大吞吐量率为(64×8)÷40×1 000÷1 024=12.5 Mbit/s。这表明,即使卫星信道的发送速率超过12.5 Mbit/s,实际的最大吞吐率也只能被限制在12.5 Mbit/s。
② 长时延的另一个影响是降低了拥塞窗口打开的速度。在连接建立之初的慢启动阶段,发送方是根据接收到的确认报文的数量来增加拥塞窗口大小的,因此链路时延越大,拥塞窗口达到最大值所用的时间就越长,从而降低了数据吞吐量。
1.2 高误码影响
卫星链路上的误码率远高于地面网络,加上卫星信道各种随机因素,使得信道出现突发错误,导致数据丢失。但由于传统TCP协议不区分数据丢失是由于传输错误还是由于网络拥塞造成的,丢包原因都被解释为网络拥塞。因此,在发送端发现丢包后就会降低拥塞窗口,启动慢启动机制,从而影响数据传输速率。
1.3 非对称链路影响
地面网络常用的信道一般是对称的,也就是连接的前向信道和反向信道的信道容量大致相等。而在卫星链路中则情况不同,在卫星链路中通常反向信道(从地面到卫星)带宽会比前向信道(从卫星到地面)带宽小许多,通常前向信道带宽与反向信道带宽比值大约为1 000∶1。前向和反向链路带宽不对称的情况下,发送端在前向链路发送大量数据分组时,接收端产生的ACK分组会使反向链路饱和,从而造成ACK分组大量丢失或有较大排队延时。因为基于TCP的数据传输是依赖于稳定的ACK应答的,ACK分组丢失或大延时,会造成发送方的数据减缓,慢启动的拥塞窗口始终保持为1,快速重传的有效性大大减少。因此,带宽的不对称性会导致TCP吞吐量的降低。
2 基于SCPS-TP的TCP加速原理
TCP协议加速是在标准TCP协议的基础上进行修改或扩展,使得修改后的协议适合于卫星链路传输。SCPS-TP是空间数据咨询委员会提出的传输层协议,根据卫星链路的特点对标准的TCP进行了改进。
针对长时延问题SCPS-TP规定增加窗口扩大选项[5],通过窗口扩大选项使得通告的接收窗口域从16 bit扩大到了32 bit[6],从而增加了数据的吞吐量。但大窗口机制增加了一个窗口内丢失多个报文的概率,因此需要增加SACK机制[7]或SNACK机制进行选择确认机制来应对丢失多个报文的问题。增加事务TCP处理,减少交互过程,提高TCP处理效率[8]。
针对高误码问题,修改拥塞窗口初始值,加快拥塞窗口打开速度[9]。增加快速重传和快速回复机制[10],加快报文重传速度和窗口的恢复速度。
针对前向和反向链路不对称问题,解决非对称链路问题的方法包括:采用头部压缩机制,减小ACK报文的长度,降低反向链路的带宽占用[11];采用延迟确认,并改进拥塞窗口扩大机制,减少ACK报文的数量;采用显示拥塞通知机制,对反向链路的ACK进行拥塞控制[12]。
3 基于SCPS-TP的TCP代理的实现方案
3.1 TCP代理实现方式
TCP协议加速的实现方式包括端到端协议加速、欺骗确认等方式。其中,端到端协议加速是根据卫星链路的特点,对地面终端和星载终端的TCP协议栈进行改造,网关之间运行适应卫星信道的链路层及物理层协议,从而达到提高协议传输效率的目的。欺骗确认方式下,地面终端和卫星终端运行标准TCP协议,网关之间运行根据卫星信道特点自定义的传输协议,网关接收并缓存源终端的数据包,并对源终端发送确认包,然后使用自定义传输协议将数据包送到目的端的网关,再由目的端网关将数据发送至目的终端[13]。欺骗确认方式是依靠网关发送一个欺骗ACK来代替从目的主机发送过来的实际ACK信息,从而消除ACK信息回传消耗的时间,提高了TCP性能[14]。
端到端的实现方式需要对现有终端的协议栈进行改造,这在现实条件下无法实施[15]。欺骗确认方式,由网关代替终端对数据包进行确认,破坏了TCP端到端的语义,有可能破坏数据的传输。
基于SCPS-TP的TCP协议加速方式不需要对现有终端进行改造,只要增加网关代理就能够实现TCP加速。使用网关将TCP连接分成3段,如图1所示,星载终端和星载网关之间、地面终端和地面网关之间使用标准TCP连接,星载网关和地面网关之间使用改进的TCP连接。星载终端和地面终端的协议栈不需修改,通过网关实现TCP加速。与欺骗确认方式不同的是,网关不针对终端发送的数据包进行确认,保持了TCP连接的语义。另外,SCPS已经被国际化标准组织采纳为国际标准[16],因此基于SCPS-TP实现TCP加速有利于不同厂家生产的设备间的互联互通[17]。
图1 基于SCPS-TP的网关代理方式的连接划分
基于SCPS-TP的TCP协议加速方式主要通过网关代理实现协议加速,网关代理的逻辑结构如图2所示。
图2 网关代理的逻辑结构
网关代理各模块的功能描述如下:
伪装服务器:运行在消息发送端的网关上,伪装消息接收终端与消息发送终端建立TCP连接并交互数据。
网关客户端:运行在消息发送端的网关上,是网关间通信的客户端,与消息接收端网关建立TCP连接并交互数据。
网关服务器端:运行在消息接收端的网关上,是网关间通信的服务器,与消息发送端网关建立TCP连接并交互数据。
伪装客户端:运行在消息接收端的网关上,伪装消息发送终端与实际消息接收终端建立TCP连接并交互数据。
数据转发模块:维护处于连接建立状态的TCP连接,在同一条连接的伪装服务器端和网关客户端之间或网关服务器和伪装客户端之间转发数据。
逻辑终端管理模块:负责创建和删除伪装服务器、网关客户端、网关服务器和伪装客户端。
消息捕获模块:捕获在消息发送终端和消息接收终端之间传递的控制消息和数据消息。
3.2 TCP代理处理流程
通过TCP代理进行TCP加速时,网关代理将TCP连接分成3段,网关代理和终端之间运行标准TCP连接,网关代理之间运行增强的TCP连接。TCP加速处理流程包括连接建立、数据传输和连接拆除等操作[18]。
3.2.1 连接建立处理流程
消息发送端发起TCP连接时,发送端网关代理截获握手报文,根据握手报文向接收端网关代理发起改进的TCP连接,网关代理之间建立增强TCP连接之后,再与终端建立标准TCP连接,连接建立流程如图3所示。
图3 连接建立处理流程
3.2.2 数据传输处理流程
基于SCPS-TP的网关代理进行数据传输时,网关代理截获终端发送的数据包,匹配数据包所在的连接,使用增强的TCP协议转发截获的数据包。数据传输流程如图4所示。
图4 数据传输处理流程
3.2.3 连接拆除处理流程
数据传输完毕后,发送终端发送FIN报文拆除连接,网关代理截获FIN报文,匹配要拆除的连接,向接收端网关代理发送FIN报文,收端网关代理向接收终端发送FIN报文拆除连接。连接拆除过程如图5所示。
图5 连接拆除处理流程
4 基于SCPS-TP的网关代理的TCP加速结果
使用卫星信道模拟器模拟LEO卫星链路,设置误码率为10-4[19],时延为20 ms[20],标准TCP端到端传输曲线如图6所示。
图6 端到端传输速率曲线
使用卫星信道模拟器模拟LEO卫星链路,设置误码率为10-4,时延为20 ms,使用基于SCPS-TP的网关代理进行TCP加速后的传输曲线如图7所示。
图7 使用基于SCPS-TP的网关代理的传输曲线
对比图3和图4可以看出,在模拟LEO卫星链路上运行标准TCP协议时,业务传输速率在10 kByte/s左右,使用基于SCPS-TP的网关代理对TCP加速后,业务传输速率在1.4 MByte/s左右,大大提高了业务传输速率。
5 结束语
本文分析了卫星链路长时延、高误码和链路非对称等固有的特点对TCP传输性能的影响以及TCP加速的原理,给出了一种基于SCPS-TP的TCP网关代理实现方案,测试表明使用网关代理对TCP加速后,业务传输速率得到明显改善。
基于SCPS-TP的TCP协议加速方式,通过扩大发送窗口机制,充分利用卫星链路大带宽的特点;采用SACK机制,处理发送窗口内多个报文丢失问题;采用拥塞窗口快速恢复、数据包快速重传等机制,适应卫星链路高误码的特点;采用头部压缩、延迟确认等机制应对链路非对称问题。基于SCPS-TP的TCP协议加速方式不增加额外的开销,充分利用卫星链路特点提高TCP性能。SCPS已经被国际化标准组织采纳为国际标准,基于SCPS-TP实现TCP加速利于系统间的互联互通,具有标准化、通用性好的优点,在卫星链路上采用基于SCPS-TP的协议加速具有重要意义[21]。
[1] 何成林.卫星网络中的TCP传输控制研究[D].武汉:华中科技大学,2007.
[2] 张亚生,彭华,谷聚娟.卫星TCP加速技术研究[J].无线电通信技术,2010,36(5):29-31.
[3] 崔弘珂.一种空间环境下的TCP传输技术研究[J].无线电通信技术,2011,37(4):21-24.
[4] 李牧,张勇丁,向东蕾,等.无线网络环境中传输控制协议的改进机制[J].计算机工程,2016(1):103-108.
[5] CCSDS 714,0-B-2,Space Communications Protocol Specification-Transport Protocol(SCPS-TP)[S],2006.
[6] JACOBSON V,BRADEN R,BORMAN D.TCP Extensions for High Performance[S],1992.
[7] MATHIS M,MAHDAVI J,FLOYD S,et al.TCP Selective Acknowledgment Options[S],IETF RFC2018,1996.
[8] BRADEN R.T/TCP-TCP Extensions for Transactions Functional Specification[S].IETF RFC1644,1994.
[9] ALLMAN M,FLOYD S,PARTRIDGE C.Increasing TCP’s Initial Window[S].IETF RFC2414,1998.
[10] ALLMAN M,PAXSON V,STEVENS W.TCP Congestion Control[S].IETF RFC2581,1999.
[11] JACOBSON V.Compressing TCP/IP Headers for Low-Speed Serial Links[S].IETF RFC1144,1990.
[12] RAMAKRISHNAN K,FLOYD S,BLACK D.The Addition of Explicit Congestion Notification(ECN) to IP[S].IETF RFC3168,2001.
[13] 周兆清,陈立军.TCP/IP协议在卫星链路上的应用研究[J].无线电工程,2010,36(1):47-50.
[14] 邱金蕙,孙玉伟,钱煜哲.基于XTP的卫星协议网关设计[J].无线电工程,2013,43(9):10-13.[15] 梁金山.卫星IP 通信网设计技术[J].无线电通信技术,2010,36(6):10-13.
[16] 何辞,孙晨华,陈祺云.基于TDMA卫星通信系统的TCP增强技术研究[J].无线电通信技术,2011,37(3):11-13.
[17] 刘雨杭.基于宽带卫星网络的TCP协议传输性能的研究[D].长春:吉林大学,2015.
[18] 张金磊.基于微小卫星编队的TCP协议研究[D].哈尔滨:哈尔滨工程大学,2013.
[19] 余腾,刘志敏.基于NS-3的卫星链路TCP仿真研究[J].计算机工程与应用,2015,51(22):90-94.
[20] 高静.卫星网络中TCP协议的研究及改进[D].西安:西安电子科技大学,2013.
[21] 郝志安.卫星链路TCP协议的跨层设计[J].计算机与网络,2011,37(12):43-46.
Study and Implementation of TCP Protocol Accelerator Based on SCPS-TP
DU Long-hai1,WU Xiong-jun2
(1.The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China; 2.The802thResearchInstituteofShanghaiAcademyofSpaceFlightTechnology,The8thAcademyofChinaAerospaceScienceandTechnologyCorporation,Shanghai200090,China)
The Internet TCP protocol is the most widely used data transfer protocol,and it has become the actual standard for data transmission,but the TCP performance is seriously affected by the long delay,high bit error rate and network asymmetry of satellite links.The factors affecting TCP performance due to satellite links and methods to improve TCP performance by SCPS-TP are analyzed.By analyzing a variety of different common implementations of TCP protocol accelerators that run on satellite links,an implementation scheme for TCP protocol accelerator based on SCPS-TP is proposed.The test result indicates that the performance of TCP protocol is improved by using the proposed technique.
satellite link;TCP acceleration;SCPS-TP;TCP proxy
10.3969/j.issn.1003-3106.2017.09.03
杜龙海,吴雄君.基于SCPS-TP的TCP协议加速器的研究与实现[J].无线电工程,2017,47(9):12-15,20.[DU Longhai,WU Xiongjun.Study and Implementation of TCP Protocol Accelerator Based on SCPS-TP[J].Radio Engineering,2017,47(9):12-15,20.]
TP919.3
A
1003-3106(2017)09-0012-04
2016-11-23
杜龙海 男,(1978—),高级工程师。主要研究方向:网络技术。
吴雄君 男,(1983—),博士,高级工程师。主要研究方向:约束控制、多智能体协同。