原文地址:http://blog.chinaunix.net/uid/29207097.html
SCPS_RI_1_1_144源码下载地址:http://download.csdn.net/detail/joanna_yan/8675949
SCPS是应用于卫星通信网络中的通信协议。前段时间做项目发现国内关于SCPS卫星网络领域的文章相当的少。因此本系列文章将讲述SCPS协议,特别是SCPS-TP协议及基于SCPS-TP设备的架构,设计,测试环境的搭建,开源SCPS_SI代码的原理,编译,配置等。
– support for packet-oriented applications.
第二章 SCPS-TP协议简介
SCPS-TP是SCPS的传输层协议,在设计SCPS之处,就考虑到了与现有网络的融合,SCPS-TP就是基于TCP协议扩展而来。相对于地面网络,卫星网络具有更大的delay,误码率等特性,使得TCP传输协议在卫星网络的效率不是很高,SCPS-TP在TCP的基础上修改,使之更适合卫星网络的传输特性:
1,窗口扩大;
2,RTT测量技术;
3,SNACK;
4,头部压缩;
5,拥塞控制算法Vegas;
6,减少握手次数。
SCPS-TP在TCP的option字段扩展而来,在客户端发起TCP连接时,在option字段携带SCPS Capabilities,格式如下:
option type=scps Capabilities
optien length = 4
BETS Sn1 Sn2 Com NL Ts
connectionID
如图在TCP的option字段包含TCP SCPS字段。
第三章 SCPS_RI_1_1_144编译
SCPS_RI_1_1_144源码可以从https://www.openchannelsoftware.com/orders/index.php?group_id=350获取。本文采用TAP的方式实现TP应用程序从内核获取报文,因此编译基于TAP的方式。
编译步骤:
1,首先进入源码包的bin目录,./configure
2,进入source目录,./configure --gateway=yes --tap=yes --low_idle=yes --low_cpu=yes --debug=yes
3,进入主目录,make clean&make
4,在bin目录即可看到生成的gateway可执行程序。
第四章 SCPS-TP Gateway之配置
SCPS-TP为传输层协议,基于该协议实现的典型的设备是卫星网络中的应用TCP加速器Gateway。Gateway一端连接地面网络,一端连接卫星网络。通过Gateway实现TCP的加速。
SCPS开源实现中有TAP和TUN两种常用的模式,TAP工作于链路层,实现及操作简单。
本文介绍采用TAP方式的SCPS-TP Gateway的配置方法。
1,典型组网
Client------------Router------------Gateway-----------XXXX-----------Gateway------------Router----------server
XXXX:为卫星网络;
Gateway配置(TAP),eth1为地面侧,eth0为网关:
# GW Resource File - comments are allowed, starting with '#'.
# Comments can be anywhere EXCEPT between parameter values.
# interface A info
AIF_NAME eth1
AIF_RATE 1000000000
AIF_BUF 32768
AIF_CC 2
AIF_TCPONLY 1
AIF_DIVPORT 53001
AIF_TAP_NAME tap0
# interface B info
BIF_NAME eth0
BIF_BUF 327675
#BIF_BUF 69120
BIF_RATE 512000
BIF_CC 1
BIF_MINRTO 600000
BIF_TP_COMPRESS 1
BIF_DIVPORT 53002
BIF_TAP_NAME tap1
# IPFW info
C_DIVPORT 53000
C_TAP_REMOTE_ACCESS 1
注:很多人基于TAP组网配置时,网络设备的IP配置会错误,注意TAP方式时,Gateway是一个桥接设备。
第五章 SCPS-TP 测试环境之模拟
SCPS-TP主要运用于卫星网络中,但在实际中,我们很难有卫星网络的测试条件。在这种情况下,可以采用网络模拟工具,模拟卫星网络的特征,如低带宽、高延时、误码率高等特特点。
WANem是一款开源的网络模拟工具,提供了友好的Web配置界面,但是软件版本,所以在精确度上不能达到很高的指标。
我们可以用一台双网卡的主机模拟卫星网络,主机装有Vmware虚拟机。在虚拟机中安装WANem,通过桥接物理机的两个物理网卡,与SCPS-TP gateway连接,组成测试网络。
第六章 SCPS-TP 卫星链路传输速率估算
假设有一个卫星网络,delay=500ms,w=16 MTU=1500bytes,在tcp中块确认传输效率较高,那么在理想环境中(传输链路质量很好)的传输速率:
(16*1500*8)/500ms=384kpbs (忽略协议损耗)
那么此值就是我们进行卫星传输的一个参考值,SCPS-TP设备发送速率应该大于该值。
以上只是一个简单的计算模型,可能算的并不是很严谨,只是进行分析的一个模型