【CCSDS】SCPS简介及安装(Linux下TAP方式)


原文地址: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代码的原理,编译,配置等。


第一章SCPS协议背景简介
    SCPS是空间通信标准协议(Space Communication Protocol Standards),广泛应用于卫星通信领域。目前,TCP广泛应用于有线网络中,提供可靠的通信服务。但是他不能很好的适用于无线网络环境,尤其在卫星网络方面。为了在卫星无线网络更好的通信,美国的NASA 和 US Air Force联合开发了应用于卫星的标准协议,即SCPS。
    SCPS系列协议包含:
     SCPS Network Protocol (SCPS-NP) 713.0-B-1 2045-43000 15891
     SCPS Security Protocol (SCPS-SP) 713.5-B-1 2045-43001 15892
     SCPS Transport Protocol (SCPS-TP) 714.0-B-1 2045-44000 15893
     SCPS File Protocol (SCPS-FP) 717.0-B-1 2045-47000 15894

    SCPS协议设计的目标:
– support for communication with full reliability, best-effort reliability, and minimal reliability;
– efficient operation in a wide range of delay, bandwidth, and error conditions;
– efficient operation in space-based processing environments;
– support for precedence (priority) based handling;
– support for connectionless multicasting;

– 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字段。
【CCSDS】SCPS简介及安装(Linux下TAP方式)_第1张图片

当协商成功之后,后面讲基于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连接,组成测试网络。
   【CCSDS】SCPS简介及安装(Linux下TAP方式)_第2张图片

  模拟测试环境如上图所示。

第六章 SCPS-TP 卫星链路传输速率估算
    
 

网络延迟与理想传输速率

假设有一个卫星网络,delay=500ms,w=16 MTU=1500bytes,在tcp中块确认传输效率较高,那么在理想环境中(传输链路质量很好)的传输速率:
(16*1500*8)/500ms=384kpbs (忽略协议损耗)

那么此值就是我们进行卫星传输的一个参考值,SCPS-TP设备发送速率应该大于该值。

以上只是一个简单的计算模型,可能算的并不是很严谨,只是进行分析的一个模型




你可能感兴趣的:(【CCSDS】SCPS简介及安装(Linux下TAP方式))