谢永锋,赵吉英,胡 俊
(中电科航空电子有限公司,四川 成都 611731)
近年来,随着卫星通信技术和Internet 网络技术的飞速发展,卫星网与IP 网的结合成为当今卫星通信领域最热门的话题之一。由于TCP 协议主要是针对低误码率、短时延地面网络设计的,采用应答确认、慢启动和重传等机制,能够较好地适应地面网络环境。然而,在中低速的卫星链路上进行数据业务的TCP 传输时,由于卫星信道具有误码率高、时延长以及收发信道非对称性等特点,导致TCP 协议运行效率的降低,特别是卫星信道长时延的特点对TCP 协议性能的影响最为明显,它将导致卫星信道利用率非常低,无法充分利用卫星信道的有效带宽。如何在兼容现有卫星通信系统的情况下充分发挥TCP/IP 协议在卫星通信网络中的优势,以期最大限度地发挥系统性能已经成为卫星通信系统中急需解决的问题。
Inmarsat 卫星系统是目前国际上应用最广的卫星通信系统,是全球业务发展最快、技术最先进、可靠性最高的卫星移动通信系统,全面提供海事、航空、陆地移动卫星通信和信息服务。Inmarsat 卫星通信系统目前已发展到第五代,海事卫星从第四代BGAN 系统开始基于IP 技术传输,海事卫星第四代宽带通信按3GPP 技术体制设计,实现了强大的IP 数据交换功能,海事卫星第四代卫星系统是IP 技术与卫星通信技术结合的典范。本文将重点研究TCP 通信加速技术以及TCP 通信加速技术在海事卫星系统的应用,并应用国产BGAN 终端进行了实验和验证。实验结果表明,使用TCP 加速算法,卫星通信效率大大提高。
目前主流的TCP 通信加速关键技术主要可以分为以下三类:底层解决方案、端到端解决方案和分割TCP 连接解决方案。
底层解决方案采用一种对传输层透明的方法,在底层链路中进行检测和纠错,不用触发TCP 协议中的丢失恢复机制,减少了相应数据的丢失。
现有差错控制技术主要分为前向纠错(Forward Error Correction,FEC) 技术和自动重传请求(Automatic Repeat-reQuest,ARQ)协议。在ARQ 中,采用接收方请求发送方重传出错的数据报文来恢复出错的报文,接收方通过CRC 校验判断数据报文是否出错。在FEC 中,通过连同数据发送冗余信息进行错误恢复,使数据接收端能够检测和纠正错误。对于TCP 机制,卫星信道固有的高误码率、长时延特性会降低ARQ 差错控制机制的性能:因出错被丢弃的数据再次传输增加了卫星信道带宽资源的消耗,发送端将数据被丢弃理解为网络拥塞导致传输速率降低,反向链路上的确认报文丢失会导致已成功接收到的报文超时重传。因此,具有高冗余度的FEC 方法能够减少数据重传次数,提高卫星信道资源利用率,在卫星通信系统中得到了广泛的使用。
现有端到端的解决方案,主要有以下几种方法:
(1)增大初始窗口。TCP 慢启动算法中初始窗口很小,使慢启动时间较长。一种缩短慢启动所需时间的有效方法是在慢启动时采用一个较大的拥塞窗口(cwnd)初始值,以便发送端在第一个往返时间内可以发送更多的报文段,触发更多的确认报文,使得拥塞窗口(cwnd)的增加更快,从而提高慢启动阶段的网络带宽利用率。
(2)字节计数。字节计数是一种TCP 确认计算方式。在标准TCP 确认计算方式中,发送端每接收到一个确认(ACK)报文,拥塞窗口(cwnd)就会以最大报文段长度为单位加1;在字节计数方式中,拥塞窗口(cwnd)的增加数量是由确认(ACK)报文所覆盖的此前未确认的字节数目决定的。通常情况下确认(ACK)报文所覆盖的未确认的字节数远大于确认(ACK)报文数,这就使得字节计数方式中拥塞窗口(cwnd)增加速度更快,慢启动所需时间相应减少。
(3)慢启动后的延时确认。延时确认方式中,接收端不会对每一个接收到的TCP 数据报文进行确认,而是在收到第二个完整的报文时才发送确认。在慢启动过程中TCP 发送端根据接收到的确认(ACK)数目来增加拥塞窗口(cwnd),延时确认将接收端发出的确认(ACK)数减少了一半,因此发送端拥塞窗口(cwnd)大小增加的速度也相应降低了。慢启动后的延时确认技术,就是在慢启动过程中不使用延时确认,慢启动后才使用延时确认,这样在TCP 连接需要通过增加拥塞窗口(cwnd)大小加速时提供了足够多的确认(ACK)减少了慢启动时间,而在慢启动后TCP 连接稳定时减少确认(ACK)数目以节约网络资源。
(4)选择确认。TCP 协议中的累积确认对接收到的报文是这样处理的:如果接收到的报文位于接收窗口的最左边,则予以确认,如果不位于接收窗口的最左边,则不予确认。卫星信道的误码率比地面信道高,发生多个报文丢失的概率更大,将使TCP 连接丢失基于确认的时钟,从而降低TCP 性能。选择确认是一种纠正发生多个报文丢失时的TCP 处理技术,接收端通过告诉发送端所有成功接收的数据序列号,可以使发送端只需重传那些确实丢失了的数据,从而提高TCP 传输的性能。
(5)显式拥塞通告(Explicit Congestion Notification,ECN)。在检测到网络拥塞时,显式拥塞通告机制把IP 包头中定义的1 bit ECN 设置为1 来通知终端节点网络出现拥塞。收到拥塞通告后,终端节点相应地减少其传输速率,因此可以避免TCP 连接出现严重的拥塞现象,减少大量不必要的报文丢失重传。
分割TCP 连接是在网关处对具有高度不同特性的链路或链路群进行分离,该方法增加了网络实现的复杂性,但却简化了用户终端和服务器使用的协议,目前主要有以下几种方法:
(1)TCP 欺骗(spoofing)。TCP 欺骗技术主要用来解决卫星链路的长时延特点引起的发送端TCP 慢启动时间较长的问题。TCP 欺骗的工作原理是在卫星网络中引入一个分割TCP 连接的网关,将长时延链路分离出来。在TCP 报文从源端发送出去后,目的端还没有收到数据和返回确认(ACK)报文之前,网关作为虚拟的目的端立即在本地网络产生一个欺骗确认(ACK)报文,并把欺骗确认(ACK)报文发送给源端,使得源端认为到目的端的传输时延很短,当真正的确认(ACK)被接收时在本地网络网关处予以拦截,防止报文重复确认。通过欺骗减少源端收到确认(ACK)报文所耗费的时间可以使得发送端滑动窗口快速增加,提高了TCP 发送端的数据传输速率,达到TCP 加速的目的。
(2)TCP 划分(splitting)。与TCP 欺骗不同,TCP 划分将TCP 连接分段,提供了一种既能充分适应卫星网络环境,又不需修改原有客户端和服务器协议的有效方法。TCP 划分的工作原理是在卫星网络网关入口处截取源端发送的TCP 报文,将数据转换成适合卫星传输的专用协议,然后在卫星链路的另一端,即卫星网络网关出口处将数据还原为TCP报文,用于与目的端通信。在整个转换过程中,网关将端到端的TCP 连接划分为两个独立的部分,卫星段可以在卫星链路上使用最适合于卫星通信的协议,而地面段则继续使用标准TCP 协议,以保证与Internet 的兼容性。TCP 划分这种连接分段方式既实现了对最终用户的完全透明,又能达到TCP/IP 加速的目的。
(3)TCP 连接加速。在标准TCP 中,客户端开始发送数据之前必须完成三次握手。TCP 连接加速在本地端立即响应连接请求,同时通过卫星信道发送连接请求,以加速三次握手过程。若实际TCP连接建立失败,则向本地主机发送TCP 重置请求释放TCP 连接。
(4)TCP 压缩。通过交换具有完整报头的多个TCP 报文了解其中不变的部分、变化的部分及其变化规律,可以压缩TCP 报文头大小,减少占用的卫星信道带宽资源。TCP 报文载荷部分也可以使用压缩算法减少长度,节省带宽占用。
(5)Web 缓存(caching)。Web 缓存方法借助卫星网络中的Web 高速缓存对TCP 连接进行分割,是一种能同时改善地面网络性能和卫星网络性能的技术。Web 缓存技术将用户经常访问的网页数据副本存储在本地服务器上,使得用户能够在本地就可以得到访问常用网页的快捷服务。如果用户需要访问的网页内容可以从本地Web 高速缓存中得到,那么卫星网络中与该Web 高速缓存本地连接的用户就不需要建立到外部服务器的TCP 连接,也就避免了卫星链路长时延所带来的问题,从而有效减少了连接延时和网络带宽资源的浪费,达到TCP/IP 加速的目的。
(6)DNS 缓存。DNS 将域名解析为IP 地址,DNS 缓存把DNS 解析结果在本地缓存下来,维护域名和IP 地址之间的映射关系。DNS 缓存和Web缓存配合使用,可以加快查找网页中的对象,无须每次查找都通过卫星信道传输,有效减少了卫星信道长时延传输的次数和时间,加快了TCP 连接和网页访问速度。
Inmarsat 于2005 年发布第四代BGAN 卫星通信网,目前该系统是全球应用最广的卫星系统,海事卫星宽带网络具备3G 移动通信业务特点,可提供高速数据服务。第四代海事卫星宽带网络的设计采用了3GPP UMTS 系统架构和接口协议栈,根据卫星链路长时延、非周期性干扰、卫星带宽资源有限等特点,在标准UMTS 空中接口协议的基础上开发了新的协议,并在其地面关口站引入了公共移动通信网络的3G 技术,采用3GPP 标准,可实现高达492 kbps 的数据带宽,支持3G 电路交换语音、数据和视频传输等功能。终端产品有三种形态,海上宽带业务Fleet Broadband(FBB)终端、陆地宽带业务Broadband Global Area Network(BGAN)终端、航空宽带业务Swift Broadband(SBB)终端。
Inmarsat 卫星通信系统应用TCP 通信加速技术提高基于Inmarsat 卫星网络的TCP 连接性能,综合应用以下几种方式以实现TCP 加速功能[1]。
(1)快速启动:适用于传输小数据量的情况,解决传统TCP 在传输小数据量时,速度非常慢的问题。
(2)增大发送窗口大小:在高带宽应用时,可提高TCP 性能;
(3)基于拥塞控制的时延:确保高传输速率和低延时;
(4)分割TCP 连接:应用TCP PEP 技术,综合应用TCP 欺骗(spoofing)技术和TCP 划分(splitting)技术。
在Inmarsat 第四代卫星系统中,应用TCP 通信加速技术将端到端TCP 连接分成两部分,用来提高BGAN 终端的TCP 性能,一个连接是高延时、无线/卫星分组数据链路,另外一个是地面链路。TCP 加速器分别控制每个链路,使用内嵌算法来优化使用的物理媒介的链路。由于链路类型和带宽不同,TCP 加速器能缓存中间报文并控制两个链路上的流。TCP 加速器通过透传方式实现端到端连接。
整个TCP 加速的应用示意图如图1 所示。
图1 基于Inmarsat 的通信加速应用
实际应用中,在Inmarsat 系统用户终端侧和地面关口站侧进行软件加载配置方式来实现TCP 通信加速功能。用户终端侧使用TCP Accelerator,地面关口站侧使用PEP(Performances Enhancing Proxies)技术实现通信加速的功能[2],在关口站的SGSN(Serving GPRS Support Node,GPRS 服务支持节点)和GGSN(Gateway GPRS Support Node,GPRS 网关支持节点)之间新加了一个节点叫作TCP PEP。该节点的主要作用是针对卫星链路往返时延大的特点,对TCP 协议做了优化,使终端能够最大限度地利用带宽,提高传输速率。终端TCP Accelerator 软件与核心网里的TCP PEP 硬件节点协同工作,实现了TCP 连接的分段、TCP 数据的压缩,最终达到通信网络加速。
为了对海事卫星系统的通信加速性能有更清晰的认识,对海事TCP 通信加速性能进行了测试,TCP 通信加速算法测试需要配置客户端和服务器端,按照图1 搭建测试环境。
客户端:配置Windows XP 操作系统的PC,TCP Accelerator 软件,天奥BGAN 设备;
服务器:北京地面关口站配置TCP PEP 硬件节点。
试验内容和方法:在PC 机上安装TCP 加速软件,连接天奥BGAN 设备,天奥BGAN 设备最大数据传输速率为384kbps,使用DOS 环境下的FTP 命令,PC端作为客户端向指定的FTP服务器上传文件,验 证1MB、3MB、5MB、7MB、10MB、15MB、25MB 不同大小文件在使用和不使用TCP 加速软件时的上传和下载速率。为了确保测试结果的准确性,每个测试文件均在TCP 加速软件有效和无效时分别测试多次,最后分别取平均值。试验统计数据结果如表1 所示。
表1 实验结果
图2 TCP 加速对比
从实验结果可以看出,在相同的实验环境下,在TCP 通信加速软件使能有效的情况下,文件上传和下载速度比不使用TCP 通信加速时得到了明显提高,使用TCP 加速技术可以有效提高卫星链路的通信效率。
近年来,IP 技术与卫星通信技术的结合越来越紧密,由于卫星信道具有误码率高、时延长以及上下行链路的非对称性等特点,导致卫星IP 网络通信效率的降低(特别是卫星信道长时延的特点对TCP 协议性能的影响最为明显)。针对这些特点,本文重点研究海事卫星第四代通信网络系统以及海事卫星系统采用的通信加速方案,并应用国产BGAN 终端进行了实验和验证。实验结果表明,卫星系统应用TCP 加速算法,通信效率大大提高,该研究结果为我国自主宽带卫星通信系统的发展和应用提供了参考。