doi:10.3969/j.issn.1001-893x.2013.03.021用于卫星通信系统的空间通信协议网关设计张 涛1,,牛明涛2,冯振明3(1.总参信息化部驻航天科技集团军事代表室,北京100015;2.北京大学信息科学技术学院卫星通信研究中心,北京100871;3.清华大学电子学系卫星导航技术实验室,北京100083)摘 要:针对卫星通信系统中传输控制协议(TCP)传输性能不理想的问题,设计并实现了一种基于空间通信协议的网关。
在网关设计中,优化了Vegas拥塞控制算法的参数,并通过空间通信协议连接表实现了对多连接的支持。
卫星通信模拟系统中的测试结果表明,当卫星链路具有高误码率和大传输延时(大于1000ms)情况下,该网关的性能与直接使用TCP相比,平均吞吐量提高比达10∶1,且多连接情况下各连接之间竞争带宽的公平性表现较为满意。
关键词:卫星通信;空间通信协议;参数优化;多连接中图分类号:TN927;TN915 文献标志码:A 文章编号:1001-893X(2013)03-0335-06 Design of SCPS Gateway in Satellite Communications SystemZHANG Tao1,NIU Ming-tao2,FENG Zhen-ming3(Military Delegate Office in CASTC,IT Department,PLA Headquarters of the General Staff,Beijing100015,China;2.Satellite Communications Research Centre,School of Electronics Engineering and Computer Science,Pekin g University,Beijing100871,China;3.Satellite Navigation Laboratory,Department of Electronics,Tsinghua University,Beijing10080,China)A bstract:Due to the unsatisfactory transmission performance of TCP in satellite communications systems,a SpaceCommunication Pr otocol Specification(SCPS)based gatewa y is designed and realized.In the design,the param-eters ar e optimized in Vegas algorithm,and also the support of multi-connection is realized by using SCPS con-nection form.Test in a simulated satellite communications system shows when the channel is set to be a high bit error rate and lar ge transmission delay(>1000ms),the designed SCPS based gateway′s throughput increases by10times compar ed with TCP gatewa y,and the fairness among various connections is satisfactory in multi-con-nection mode.Key words:satellite com munications;SCPS;parameter optimization;multi-connection mode1 引 言传输控制协议(Transmission Control Protocol, TCP)作为互联网中的核心协议,在地面互联网中得到了广泛的应用。
但由于卫星通信环境误码率高、传输延时长、前返向链路带宽不对称等特点,TCP协议直接应用到卫星通信中性能并不理想[1]。
20世纪末,空间数据系统咨询委员会针对空间通信的特点,提出了一套空间通信协议(Space Com munication Pr otocol Specification,SCPS)[2]。
SCPS传输层(SCPS-TP)应用的主要实现方式为传输层的双网关方式[3],以此来互联地面通信网和卫星通信网。
用户现有的基于TCP协议的应用程序不需要改变,同时可以在卫星链路中获得更好的传输性能。
我国对SCPS协议的研究起步较晚,目前的研究工作多集中于协议分析和基于NS或OPNET平台的·335·第53卷第3期2013年3月电讯技术Telecommunication EngineeringVol.53 No.3Mar.2013通讯作者:junzhongtaozai@ Corresponding author:junz hongtaozai@收稿日期:2012-08-01;修回日期:2012-11-14 Received date:2012-08-01;Revised date:2012-11-14仿真分析[4-5],而实际的SCPS网关产品较少。
文献[6]中实现了一种面向深空的SCPS网关。
这些SCPS网关和直接使用TCP相比,在小传输延时(小于250ms)情况下的性能增强值大致为8∶1到10∶1的范围[7],且对多连接的支持并不完善。
针对大传输延时的情况,我们尝试对SCPS网关Vegas算法的参数配置进行优化来进一步提高网关性能,并通过对连接表的设计来完善多连接情况下的网关性能。
通过高仿真的卫星通信链路平台进行测试,本SCPS网关的性能与直接使用TCP相比,在大传输延时情况下(大于1000ms)性能增强值达到10∶1,且多连接情况下各连接之间竞争带宽的公平性较好。
2 Vegas拥塞控制算法的优化拥塞控制算法是SCPS协议的核心技术之一。
与标准TCP中使用的Van Jacobson拥塞控制算法不同,SCPS采用更适应卫星通信环境的Vegas拥塞控制算法。
相对于Van Jacobson算法,Vegas算法采用了一种更有效的带宽估计策略,根据由往返延时(Round Trip Time,RTT)计算得出的期望吞吐量与实际吞吐量之间的差值来估计当前网络瓶颈处的可用带宽[8]。
Vegas算法的机制对网络拥塞有一定预测能力,能够主动进行调整,但Vegas算法以RTT为主要参数来控制发送窗口变化的方法也存在一定的问题。
在卫星通信系统中网络拓扑结构易发生变化,这同样会导致RTT变化,而Vegas算法本身并不能区分RTT的增大是由网络拥塞造成的还是由路径变化造成的。
我们在Vegas算法中对参数优化采用了近年来研究较多的非线性记忆(Nonlinear Auto-Regressive Moving Average,NAR MA)模型[9],此模型可以准确并快速地对含有非线性特性和记忆效应的信号变换进行计算,并且可以加入自适应机制来更新当前最小往返延时(BaseRTT),从而制定拥塞窗口的调整策略。
此外,在优化方案中引入概率执行方式,即对模型的预测结果,在执行时乘以概率因子p,以应对网络变化的随机性,p可根据网络状况自行调节,取值范围在0.8~1.0。
优化后的Vegas算法通过NAR-MA模型计算出下一个RTT的期望值ExpectRTT。
图1显示了拥塞控制策略的流程。
图1 Vegas算法参数优化流程图Fig.1The flowchart of the parameter opti mizationin Vegas algorithm3 SCPS-TP连接表的设计SCPS-TP连接表用于支持多连接。
SCPS-TP是面向连接的协议,每个连接可以打开很长时间。
为了控制这些连接,使用一个结构体(tp-socket)来保持每一个连接的相关信息,包括连接状态、收发缓冲区指针、收发包序列号、RTT时间等。
由于任何时候都可能有多个连接,因此以表的形式来保存tp-socket的数组。
在网关接收到数据包后,会在连接表中查找相应的tp-socket,若未找到,则创建新的tp-socket,然后进行协议转换等操作并设置tp-sock-et,最后将tp-socket更新到SCPS-TP连接表中。
图2描述了连接表的设计逻辑。
图2 SCPS-TP连接表更新流程图Fig.2Update flowchart of SCPS-TP connection table4 SCPS网关的设计结构在分析SCPS协议的基础上,将SCPS网关划分为9个模块和一个SCPS-TP连接表,如图3所示。
·336·电讯技术 2013年图3 SCPS网关软件模块划分图Fig.3Soft ware modules of designed SCPS gateway主要模块的设计与实现方法如下。
(1)网关调度主模块整个SCPS网关软件的控制核心,负责网关数据处理的总体调度,利用其他模块实现协议转换、连接状态控制、流量控制等功能。
其调度基本原理是:首先进行SCPS初始化工作,然后启动主服务线程tp,此线程是一个循环等待处理线程,当接收到网络包时,tp线程会进行相应处理,并维护连接状态。
(2)SCPS-TP处理模块用于提供端到端之间的面向连接的数据传输。
需要实现SCPS-TP Socket的一般发送、连接、读写等命令的接口函数。
(3)SCPS-NP处理模块用于收发网络数据包和包路由控制。
(4)SCPS-SP处理模块用于提供端到端之间的安全保护服务。
(5)ACK处理模块用来处理确认信息,其中核心的处理包括Vegas 拥塞控制算法和SNACK机制两部分。
Vegas算法中最佳往返传输延时值(rttbest)的更新方法:通过接收端对上个窗口发送数据的ACK,发送端可以获得上个RTT的一组样本,取其中最小者作为新的rttbest 的值。
SCPS-TP的选择性否定确认机制(SNAC K)要求收发双方均支持SNACK选项。
在连接建立的前两个包(即SYN包和SYN-ACK包)中发送方和接收方分别表明是否支持SNACK选项。
在具体实现过程中,考虑到卫星通信环境特点,数据包错序的情况有一定概率发生,为了给未按顺序到达的数据包留更多时间到达,采用了SNACK延迟发送的机制。
5 SC PS网关的测试为了验证使用SCPS网关对卫星通信环境中TCP性能的改善效果,在高仿真卫星链路模拟系统中进行了性能测试。