首页> 中国专利> 一种延迟可容忍网络的星上路由器仿真方法

一种延迟可容忍网络的星上路由器仿真方法

摘要

本发明提出一种延迟可容忍网络的星上路由器仿真方法,包括:1.结合CCSDS和DTNRG构建星上路由器模型,在OPNET中进行可行性和有效性验证;2.基于OPNET的SITL接口实现虚拟数据流和真实数据流的转换,验证网关处理能力;3.用STK得到网络拓扑中星际和星地链路相关数据,并导入仿真软件模拟星际网络;4.对网络损伤仪进行延迟、误码率等相关设置,模拟空间链路。因此,本发明具有如下优点:整合现有空间通信协议体系提出了星上路由器模型,为我国DTN协议体系的系统级实现乃至空间信息网络的关键技术研究做了一些准备工作;软硬件结合较真实的模拟了卫星网络的环境,有助于验证星上路由器对空间环境的适用性。

著录项

  • 公开/公告号CN103825761A

    专利类型发明专利

  • 公开/公告日2014-05-28

    原文格式PDF

  • 申请/专利权人 武汉大学;

    申请/专利号CN201410066341.9

  • 申请日2014-02-26

  • 分类号H04L12/24(20060101);H04L12/46(20060101);H04L12/775(20130101);

  • 代理机构武汉科皓知识产权代理事务所(特殊普通合伙);

  • 代理人鲁力

  • 地址 430072 湖北省武汉市武昌区珞珈山武汉大学

  • 入库时间 2024-02-20 00:11:30

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-27

    授权

    授权

  • 2014-06-25

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20140226

    实质审查的生效

  • 2014-05-28

    公开

    公开

说明书

 

技术领域

本发明属于卫星网络技术和计算机技术两大领域,具体涉及一种延迟可容忍网络的星上路由器仿真方法。

背景技术

当前我国航天事业进入飞速发展期,我国发射航天飞行器的数量和种类较以往有很大程度的增加,航天技术及空间应用的迅速发展对空间网络的研究提出了迫切需求。地面互联网的巨大成功使人们自然而然地想到将地面互联网的工作模式搬移到空间网络中,地面互联网IP协议体系的优势是技术成熟度高、能大大缩减航天成本、易于升级。2001年,美国哥达德航天中心开展了名为OMNI的研究项目[1],主要研究利用地面商用IP协议实现空间通信方案。空间IP协议体系虽然可以基本满足地面与近地轨道航天器间的信息传输,但TCP协议是基于端到端重传的协议,需要假定传输延迟很小,与深空通信不符。此外,按照分级方式实现的地面路由协议不适用于深空通信的操作环境。

空间数据系统咨询委员会(CCSDS)于1982年成立,目前已发布了用于空间链路从物理层到应用层的一系列建议。CCSDS针对空间环境特点,对地面标准TCP/IP协议进行相应改进,开发了一套涵盖网络层到应用层的空间通信协议规范(SCPS)[2],较为全面地解决了空间信息传输问题。针对深空通信的特点,CCSDS协议也提出了相应的解决方法,如CCSDS文件传输协议CFDP[3]。然而,SCPS针对通信资源非常珍贵的深空通信环境,并未提出具体路由算法;可靠传输依然是采用先建立连接后传送数据的模式;选择重传机制仍然是基于端到端的重传。CFDP协议仅限定于文件传输应用,解决方法不够彻底,缺乏更完善的应用服务,从星际互联的角度考虑的体系结构不够完整。

1998 年NASA 喷气推进实验室(JPL) 的一些工程师和网络先驱之一——Vint Cerf 开始了关于星际网络(Interplanetary Network, IPN) 的研究,其基本想法是让地球和距离很远的太空船之间的数据通信能够简化到像发生在地球上的两个节点之间一样。相关人员后来发展成立了Internet 协会特别兴趣小组,也就是IPNSIG[4]。但是,IPNSIG 遇到了一个问题就是现在还没有这样一个星际网络可以进行试验,而建立星际网络又十分昂贵,所以一部分人开始研究如何将IPN的概念体现在陆地应用中,特别是传感器网络,它与假设的IPN 网络具有很多共性,同时传感器网络的试验很容易进行(有试验的物质基础)。由于这个原因,IRTF 研究组( Internet research task f roce) 成立了新的工作组寻找更通用的延迟可容忍网络,这个工作组称为DTNRG(DTN research group)[5],是现在DTN 体系结构和协议研究的主要公开组织,并向IETF提交了包括DTN体系结构[6]在内的多项草案和标准。为解决深空环境下的可靠传输问题,JPL于2002年12月提交了一份支持DTN网络的协议草案Lieklider传输协议[7]替代IP协议和TCP协议。2004 年初,美国国防部下的DARPA (Defence Advanced Research Project s Agency) 提出Disruption Tolerant Networking,也简称为DTN[8]。所以,有时用DTN不仅表示延迟可容忍网络,还表示延迟中断可容忍网络。

近年来,还产生CCSDS协议体系与空间IP协议体系相结合的思想,就是在数据链路层仍然可以使用CCSDS建议,如分包遥测、分包遥控、AOS、Proximity等,网络层应用IP及其扩展技术,传输层和应用层选用商业标准协议或CCSDS协议。这种解决方案具有较为灵活的协议配置能力,但没有从根本上消除空间IP协议体系和当前CCSDS协议体系在深空通信中的固有缺陷,协议堆栈的可适应感知能力较弱,仍面临许多挑战。

IP、CCSDS、DTN三种协议体系并非单纯的技术演进,而是互依并存的。地面互联网TCP/IP的成熟技术和空间IP的应用验证为CCSDS建议的改进提供了明确的方向,CCSDS与IP相结合的协议体系成为发挥TCP/IP的巨大优势并能满足空间通信要求的基本解决途径。DTN协议体系结构可以通过整合前两者分层协议和自身协议以解决空间环境异构异质条件下的可靠传输问题。但DTN协议与前两者相比具有明显的区别:一是DTN不假定存在发送端与接收端的端到端路径,包裹采用存储转发的方法进行传递;二是DTN 引入了所谓的“包裹层(Bundle Layer)”作为连接不同受限网络的覆盖层,采用此覆盖的节点依靠发送称为“包裹”的异步消息进行通信。包裹层提供和互联网关相似的功能,但它集中于虚消息转发而不是分组交换。

目前,卫星上通信设备一般只实现了转发的功能而没有路由的功能,卫星转发器分为透明式转发器和再生式转发器。透明式转发器具有信号放大、下变频等功能;再生式转发器具有射频波束交换、解调- 再调制、基带交换、多址方式变换等功能,以减少传输差错率, 提高效率, 消除干扰, 降低传输时延, 改善交换性能。最早将路由器搬上卫星的是OMNI[1],直接对现有商用通信协议进行取舍、组合,使之适应航天任务的操作环境和通信需求,通过利用现成的软、硬件资源来降低航天任务的成本、提高互操作性,仅需在射频设备后增加一个信道纠错编/译码的模块即可与商用路由器相接,直接将承载了用户数据的IP包在网络上传输。2002年,美国情报部门、国防部、NASA共同启动了转型通信研究(TCS),18个月后,该联合研究小组制定了转型通信体系结构(TCA)基线1.0[9],其中最著名的莫过于TSAT计划,预计采用全激光交叉链路和TSAT路由器构建空间骨干网,虽然该项目被取消,但TCA的总体架构基本上没变[10-11]。2007年美国国防部将“太空互联网路由器”(IRIS)计划列入联合能力技术演示验证财政预算,IRIS JCTD通过一颗地球同步通信卫星上携带的一个路由器来进一步开放这种新型网络中心能力的作战概念、战术、技术和方法,实验结果可以更好的指出这种下一代卫星通信网络能力[12-15]。IRIS最大的优点是简化卫星间通信,降低音频传输的延迟。传统的卫星传输方式下,即使旗舰和驱逐舰之间本来只相距几英里,但是它们之间的通讯需要在不同的卫星和地面网络之间传递数次才能到达目的地。IRIS计划可以在太空中的卫星之间发送IP数据包,工作原理类似地面上的互联网,这就减少数据传送的延迟,节省卫星通信宽带,提供更高的网络灵活性。由于该技术能提高军用卫星通讯效率并降低成本,装备较差、规模较小的部队就能第一次在真正意义上使用中心网络的各种功能。IRIS承诺对流量更好的适应性、降低每个字节的成本以及为装备差的部队提供更高的流量。 

由此可见,星上路由器仍然处于研究阶段,并未成为星上的成熟载荷。面向延迟可容忍网络的星上路由器仿真的目标在于验证星上路由器对于空间环境的适用性,其难点不在于路由器本身,而在于卫星网络环境模拟的真实性。目前国内外卫星网络及其网络设备的仿真方法主要有:

(1)、基于软件的网络仿真。采用网络仿真软件对网络设备以及网络环境进行建模分析。常用的有OPNET和NS2软件。OPNET支持在网络各个层次的设备、链路和协议的精确建模,并能够准确分析复杂网络的性能和行为,能够比较真实地反映网络环境,工程和商业应用中较多。NS2的仿真则较为抽象,适合于协议算法的研究,一般在科学研究领域应用较为广泛。另外,专门针对延迟可容忍网络的还有ONE软件,ONE是开源软件,从网络仿真的角度看,ONE能仿真运动模型、DTN路由。从功能的角度看,ONE集成了大量的运动模型和路由算法的具体实现,并且易于扩展,但ONE很难精细地对设备进行仿真。

(2)、半物理仿真。采用软件(例如OPNET)对真实的路由器、交换机等网络设备进行模拟,网络环境采用软件、硬件配合搭建,即采用PC+仿真软件的形式对星上路由器进行仿真,采用其他的软硬件形式对网络环境(包括信源信宿)进行仿真。这种方法平台搭建较为复杂,需要仿真软件具有相应的转换接口,但是更能真实模拟空间网络。

(3)、星上路由器PC模拟。在PC平台下开发与运行和星上通信设备的协议栈结构相同的通信软件,在地面采用软硬件搭建网络仿真环境并且,对PC平台下的路由器进行测试。这种方法能够比较真实地模拟空间网络,但仿真周期很长,已接近于地面的验证测试系统,设备研发平台虽然在PC上,但整个通信软件在移植过程中总体框架并不变化。

发明内容

本发明的上述技术问题主要是通过下述技术方案得以解决的:

一种延迟可容忍网络的星上路由器仿真方法,其特征在于,包括:

星上路由器建模和仿真的步骤:建立星上路由器模型;结合CCSDS和DTNRG定义的网络层次结构,构建适合星上路由器的协议模型,并采用软件仿真的形式对模型的可行性和有效性进行验证;所述星上路由器建模和软件仿真是基于OPNET进行,包括节点域建模、进程域建模、以及外部系统域建模;

仿真数据和真实数据的转换的步骤:将软件仿真环境下通过验证的虚拟的数据流,转换为真实的数据流,从而验证网关对真实流的处理能力,由于网关仍然采用软件形式实现,因此具体实施过程中包括仿真数据到真实数据的转换接口和真实数据到仿真数据的转换接口;该步骤是基于OPNET SITL接口进行的,包括时间的同步、数据包的截获以及数据包的转换的子步骤;

卫星拓扑的模拟步骤:根据各卫星的轨道参数生成星座组网运行数据,得到星际和星地链路通断时间、链路传输时延等数据,并分析得到网络拓扑结构变化数据;在仿真软件中输入这些数据,构建星际网络拓扑模型,在此基础上对星际网络中的星地、星间通信协议进行仿真;该步骤是基于STK进行,通过在STK中定义卫星的参数确定不同的卫星,从而进行卫星网络拓扑的仿真;

空间链路的模拟步骤:模拟星地、星间链路,提供延迟、误码率这些参数的模拟接口,通过这些参数配置,观察不同链路对网络性能的影响;具体是:采用iTrinegy网络损伤仪对空间链路进行模拟;将模拟卫星路由器的电脑都与网络损伤仪采用以太网连接,在网络损伤仪的.xml配置文件中,设置不同的延时和误码率参数,用于模拟不同的空间链路参数和链路通断。

在上述的一种延迟可容忍网络的星上路由器仿真方法,所述步骤1中,三个建模方法具体实现过程如下:

建模一:节点域建模;

定义在传输层和应用层间加入附加的Bundle层,传输层自适应选择SCPS-TP或UDP协议,链路层则使用IP OVER CCSDS AOS架构

建模二:进程域建模;根据节点域模型,需要描述和实现的进程模型包括Bundle、SCPS-TP和IP OVER CCSDS AOS;

Bundle进程模型:Bundle初始传输、转发规程、接收规程、调度规程、

转发受限规程、转发失败规程、删除规程和本地交付规程、以及处理行为,所述处理行为包括同意保管、保管释放和保管失败;

SCPS-TP进程模型:类似于TCP协议的实现,SCPS-TP协议的实现建立了两个进程模型,一个为管理进程,一个为处理子进程,管理进程为与上下层的接口进程,子进程为SCPS-TP协议的实际处理进程;SCPS-TP管理状态进程负责接收从应用层和下层发来的所有命令,并根据命令进入不同状态;SCPS-TP 协议处理子进程负责 SCPS-TP 协议从建立连接到关闭连接的整个过程,在不同的时候收到数据段采取何种处理,用连接的状态来表示这些不同的事件,并使用状态转移图来说明 SCPS-TP 在各种状态下对各种数据段的处理方式;

IP OVER CCSDS AOS进程模型:IP OVER CCSDS AOS管理进程首先进入初始化状态进行状态变量赋值,然后进入idle状态开始处理各种事件;当进入idle状态后,进程开始等待事件;当事件为流中断时,进程首先读取入流端口;如果是来自上层IP进程,进程进入from_upper状态对IP数据进行AOS帧封装;如果是来自下层MAC进程,进程进入from_lower状态对AOS帧进行解封装并重组IP数据;当事件为自中断Polling_MPDU时,进程进入from_upper状态对当前进行封装操作的AOS帧的帧长进行判断,若不足指定的固定长度,则产生空闲数据插入MPDU包区中,以保证AOS帧为固定长度,然后调用IP OVER CCSDS AOS周期发送子进程对该AOS帧进行发送;

建模三:外部系统域建模;外部系统模块主要用于协同仿真;协同仿真是一种由多种仿真工具联合运行的仿真,由Modeler模型、协仿真代码以及外部代码组成;Modeler模型含有一个或多个外部系统定义,而外部代码可以是一个完整的仿真器或连接其它操作系统进程的通信机构,两者通过协仿真代码连接为一体;定义SITL部分的实现属于外部系统域的建模,首先是编写自定义的SITL函数,然后在SITL网关模块中选择包含有该SITL转换函数的外部文件;SITL部分需要实现的是对Bundle、SCPS-TP和IP OVER CCSDS AOS协议的支持。

在上述的一种延迟可容忍网络的星上路由器仿真方法,所述步骤1中,Bundle进程模型的具体建立方法如下:

进程开始时首先通过预初始化状态直到其它进程准备好,然后进行一些必要的初始化工作,主要是初始化静态路由表和其它状态变量并进行Bundle节点的注册;初始化完成后进入空闲状态,此状态主要是判断中断的类型;如果是流中断FROM_LOW,说明从下层进程接收到数据,根据传输层端口号确定是应用数据或是Bundle数据,若传输层端口号为550说明是Bundle数据,需要向保管结点发送保管成功信号,然后等待交付中断信号的达到;否则即为应用数据,此时首先需要打开相应的传输层连接,由之前设计的综合网关协议栈模型可知,这里主要是UDP或者SCPS-TP连接;连接建立之后进行Bundle封装,然后插入保管队列等待存储转发;

当Bundle源端点与目的端点相距较远且只有断续的连接,连接的持续时间不足以传输整个Bundle,此时只要基本块的Bundle处理标志字段没有指示该Bundle不能分段,就可以对Bundle进行分段处理,每个片段都被封装成一个新的Bundle进行传输;各片段都具有相同的源端点ID 和创建时间戳,指示它们来源于同一个Bundle;具体的分段形式包括主动分段和被动分段,此处采用主动分段的方法,即由Bundle进程主动将应用数据划分为许多更小的块,然后再将每个块封装成Bundle进行传输;此时,目的节点要从接收的Bundle中提取这些小块的应用数据并重组得到完整的应用数据;Bundle的重组是根据段偏移量和载荷长度的指示,把所有接收到的和当前段具有相同端点ID和创建时间戳的段载荷连结起来;如果组成的字节阵列的长度等于基本块中指示的应用数据单元总长度,那么用这个字节阵列重组的应用数据单元取代当前段的载荷,每段的载荷是重组后的应用数据单元的子集;

如果是自中断FROM_ROUTER,此时调用路由模块计算下一跳结点;

如果是自中断STATE_IND,此时对收到的Bundle数据包进行解封装和重组,然后交付给目的结点;

如果是自中断RETRANS,此时取出保管队列中的Bundle数据包并转发至下一跳结点。

在上述的一种延迟可容忍网络的星上路由器仿真方法,所述仿真数据和真实数据的转换的步骤中,时间的同步、数据包的截获以及数据包的转换的具体方法如下:

由于SITL模块添加了两个特殊的模型,网关节点和链路模型,需要将运行于真实协议栈中的数据包导入到虚拟的仿真环境,包括: 

步骤1:时间的同步;

将仿真时间与系统时间同步;

步骤2:数据包的截获;

采用WinPcap辅助抓包工具来捕获原始数据包,在此基础上根据数据报头分析协议的类型,进而实现包的过滤;

步骤3:数据包的转换;

当SITL模块接收到数据包时,不管是来自物理系统的真实包还是来自仿真系统的虚拟包,都首先尝试对包格式及其所属的协议进行判断,通过与转换函数的匹配,找到合适的转换函数,并调用其对数据包进行转换;

当仿真开始时,首先SITL调用初始化函数加载所有的转换/检测函数对;若有数据包到达,WinPcap抓包工具将其截获并发送到SITL网关节点,SITL调用转换入口函数来转换数据包,通常情况下首先调用基本包格式的转换函数;若该数据包嵌套有其它类型的数据包,那么转换函数会调用该数据域的转换函数来对下一层数据包进行转换,直到转换至所设定的最顶层协议。

在上述的一种延迟可容忍网络的星上路由器仿真方法,所述卫星拓扑的模拟步骤是通过在STK中定义卫星的参数确定不同的卫星,从而进行卫星网络拓扑的仿真,包括

设置一:卫星的基本属性设置;

设置卫星的基本属性:轨道、姿态、轨迹断点、质量、描述、图形、属性,、显示时间、约束时间;

设置二:定义卫星轨道设置;

利用设置轨道参数确定卫星轨道的大小、形状、轨道方位及卫星在轨道上的位置,主要包括:半长轴、远地点半径、远地点高度、回归周期、每日轨道圈数、偏心率、近地点半径、轨道倾角、升交点赤经、近地点幅角、真近点角、平近点角、偏近地点角、升交角距、过升交点时间、过近地点时间。

在上述的一种延迟可容忍网络的星上路由器仿真方法,还包括一个网络性能的测试的步骤,随机选择iperf测试模块或者VLC_media_player测试模块进行:

随机测试一:使用iperf测试模块进行网络性能测试,其步骤为:

步骤6.11,iperf软件配置:客户端配置:以2Mb/s速率向服务器端的5001端口发送1KByte大小的UDP包,持续时间200s,服务器配置以监听UDP的5001端口;

步骤6.12,OPNET仿真环境的配置:打开DTN路由器功能,设置分片大小设为1470字节,包的生存期设置为300s,两个路由器上设置监听UDP的5001端口,Bundle的汇聚层设置为UDPCL;

步骤6.13,依次启动设备上的iperf服务器,以及opnet软件,iperf客户端,保存实验结果; 

随机测试二:使用VLC_media_player软件进行实际业务测试,其步骤为:

步骤6.21,在通信双方上分别运行两个VLC_media_player进程(该软件不支持双向通信,即一个进程只能作为客户端或者服务器),分别作为双向通信的客户端和服务器,两个服务器的通信端口分别配置为10000和10001,开启OPNET环境下DTN网关的相应端口;

步骤6.22,配置网络损伤仪,分别设置延时为100ms、1s和10s;

步骤6.23,测试使用VLC_media_player软件能否在通信双方高延迟的链路情况下进行双向通话;

步骤6.24,拔掉的以太网线,然后对着通信设备的麦克风进行录音;然后再插上以太网线,测试在接收设备上能否听到刚才录音的内容。

因此,本发明具有如下优点:整合了现有的空间通信协议体系从而设计出星上路由器,为我国在DTN协议体系的系统级实现乃至空间信息网络的关键技术研究方面做一些准备工作;软硬件结合较为真实的模拟了卫星网络的环境,有助于验证星上路由器对空间环境的适用性。

附图说明

附图1是本发明中实施例的综合网关的协议体系。

附图2是本发明中实施例的Bundle协议基本处理过程。

附图3是本发明中实施例的SCPS-TP协议的数据报文格式。

附图4是本发明中实施例的idle状态控制流。

附图5是本发明中 DTN路由器测试结果。

附图6是本发明的方法流程示意图。

具体实施方式

下面通过实施例,并结合附图,对本发明的技术方案作进一步具体的说明。

实施例:

以下结合附图和实施例详细说明本发明技术方案。

步骤一、 基于OPNET的星上路由器建模和仿真。

(1)节点域建模。

节点域的工作是定义节点的内部结构。在OPNET中采用如图1所示的协议体系结构。在传输层和应用层间加入附加的Bundle层,传输层自适应选择SCPS-TP或UDP协议,链路层则使用IP OVER CCSDS AOS架构。在空间通信时,一般无需考虑应用层网关这一复杂情况。

在节点模型中,相互连接组成节点模型的方块成为模块,每个模块包含一组输入和输出、状态内存以及根据输入和状态内存计算输出的函数。模块的输入和输出分为包流和统计两种,模块可以从它的输出包流中输出数据包或从输入包流上接收数据包,也可以从输出统计中输出数值或从输入统计中输入数值。

(2)进程域建模。

根据节点域模型,需要描述和实现的进程模型包括Bundle、SCPS-TP和IP OVER CCSDS AOS。

1、Bundle进程模型。

Bundle协议的基本处理流程如图2所示,主要包括Bundle初始传输、转发规程、接收规程、调度规程、转发受限规程、转发失败规程、删除规程和本地交付规程等。此外还有一些处理行为,例如同意保管、保管释放和保管失败等。各种规程具体的处理流程详见协议规范。

进程开始时首先通过预初始化状态直到其它进程准备好,然后进行一些必要的初始化工作,主要是初始化静态路由表和其它状态变量并进行Bundle节点的注册。初始化完成后进入空闲状态,此状态主要是判断中断的类型。如果是流中断FROM_LOW,说明从下层进程接收到数据,根据传输层端口号确定是应用数据或是Bundle数据。若传输层端口号为550说明是Bundle数据,需要向保管结点发送保管成功信号,然后等待交付中断信号的达到;否则即为应用数据,此时首先需要打开相应的传输层连接,由之前设计的综合网关协议栈模型可知,这里主要是UDP或者SCPS-TP连接。连接建立之后进行Bundle封装,然后插入保管队列等待存储转发。

当Bundle源端点与目的端点相距较远且只有断续的连接,连接的持续时间不足以传输整个Bundle,此时只要基本块的Bundle处理标志字段没有指示该Bundle不能分段,就可以对Bundle进行分段处理,每个片段都被封装成一个新的Bundle进行传输。各片段都具有相同的源端点ID 和创建时间戳,指示它们来源于同一个Bundle。具体的分段形式包括主动分段和被动分段,此处采用主动分段的方法,即由Bundle进程主动将应用数据划分为许多更小的块,然后再将每个块封装成Bundle进行传输。此时,目的节点要从接收的Bundle中提取这些小块的应用数据并重组得到完整的应用数据。Bundle的重组是根据段偏移量和载荷长度的指示,把所有接收到的和当前段具有相同端点ID和创建时间戳的段载荷连结起来。如果组成的字节阵列的长度等于基本块中指示的应用数据单元总长度,那么用这个字节阵列重组的应用数据单元取代当前段的载荷,每段的载荷是重组后的应用数据单元的子集。

如果是自中断FROM_ROUTER,此时调用路由模块计算下一跳结点。

如果是自中断STATE_IND,此时对收到的Bundle数据包进行解封装和重组,然后交付给目的结点。

如果是自中断RETRANS,此时取出保管队列中的Bundle数据包并转发至下一跳结点。

2、SCPS-TP进程模型。

类似于TCP协议的实现,SCPS-TP协议的实现建立了两个进程模型,一个为管理进程,一个为处理子进程,管理进程为与上下层的接口进程,子进程为SCPS-TP协议的实际处理进程。SCPS-TP 管理状态进程负责接收从应用层和下层发来的所有命令,并根据命令进入不同状态:

1)OPEN:打开一个 SCPS-TP 连接;

2)SEND:发送一个数据包给建立好的 SCPS-TP 连接;

3)RECEIVE:SCPS-TP 请求上层注入数据包;

4)CLOSE:发送完数据,结束 SCPS-TP 连接;

5)ABORT:非正常中断 SCPS-TP 连接;

6)SEG_REV:接收数据包;

7)STATUS:SCPS-TP 状态指示。

SCPS-TP 协议处理子进程负责 SCPS-TP 协议从建立连接到关闭连接的整个过程,在不同的时候收到数据段采取何种处理,可以用连接的状态来表示这些不同的事件,并使用状态转移图来说明 SCPS-TP 在各种状态下对各种数据段的处理方式:

1)LISTEN:监听非本地的 SCPS-TP 端口的连接请求;

2)SYN-SENT:在发送连接请求后等待相应连接请求;

3)SYN-RECEIVED:在收到和发送一个连接请求后等待对方对连接请求的确认;

4)ESTABLISHED:表示一个连接已经建立;

5)FIN-WAIT-1:等待远程 SCPS-TP 连接中断请求,或先前的连接中断请求的确认;

6)FIN-WAIT-2:从远程 SCPS-TP 等待连接中断请求;

7)CLOSE-WAIT:等待从本地用户发来的连接中断请求;

8)CLOSING:等待远程 SCPS-TP 对连接中断的确认;

9)LAST-ACK:等待原来的发向远程 SCPS-TP 的连接中断请求的确认;

10)TIME-WAIT:等待足够的时间以确保远程 SCPS-TP 接收到连接中断请求的确认;

11)CLOSED:表示当前没有任何连接状态。

SCPS-TP协议的数据报文格式如图3所示:

ields域为20字节标准的TCP报文包头;SACK-Permitted Option域与SACK Option域为SACK机制所用到的SACK允许选项域与SACK选项域;SCPS Capabilities Option域与SNACK Option域为SNACK机制相关的字段。

3、IP OVER CCSDS AOS进程模型

IP OVER CCSDS AOS管理进程首先进入初始化状态进行状态变量赋值,然后进入idle状态开始处理各种事件,如图4所示。当进入idle状态后,进程开始等待事件。当事件为流中断时,进程首先读取入流端口。如果是来自上层IP进程,进程进入from_upper状态对IP数据进行AOS帧封装;如果是来自下层MAC进程,进程进入from_lower状态对AOS帧进行解封装并重组IP数据。当事件为自中断Polling_MPDU时,进程进入from_upper状态对当前进行封装操作的AOS帧的帧长进行判断,若不足指定的固定长度,则产生空闲数据插入MPDU包区中,以保证AOS帧为固定长度,然后调用IP OVER CCSDS AOS周期发送子进程对该AOS帧进行发送。

(3)外部系统域建模。

外部系统模块主要用于协同仿真。协同仿真是一种由多种仿真工具联合运行的仿真,由Modeler模型、协仿真代码以及外部代码组成。Modeler模型含有一个或多个外部系统定义,而外部代码可以是一个完整的仿真器或连接其它操作系统进程的通信机构,两者通过协仿真代码连接为一体。本发明实施例中SITL部分的实现便属于外部系统域的建模,首先是编写自定义的SITL函数,然后在SITL网关模块中选择包含有该SITL转换函数的外部文件即可。SITL部分需要实现的是对Bundle、SCPS-TP和IP OVER CCSDS AOS协议的支持。

步骤二、基于OPNET SITL接口的仿真数据和真实数据的转换。

SITL模块添加了两个特殊的模型,网关节点和链路模型,在真实网络中,我们利用TCP/IP协议栈进行数据流的转发与通信,而在仿真网络中的协议栈是虚拟构造的,不同的数据结构使真实的设备和仿真网络无法直接进行通信。将运行于真实协议栈中的数据包导入到虚拟的仿真环境,需要解决3个方面的问题:时间的同步、包的截获以及数据包的转换。

(1)时间的同步.

一般情况下SITL仿真的时间同步是通过将仿真时间与系统时间同步推进来确保的,通过简单的设置就可以完成。

(2)数据包的截获。

采用WinPcap辅助抓包工具来捕获原始数据包,在此基础上根据数据报头分析协议的类型,进而实现包的过滤。

(3)数据包的转换.

当SITL模块接收到数据包时,不管是来自物理系统的真实包还是来自仿真系统的虚拟包,都首先尝试对包格式及其所属的协议进行判断,通过与转换函数的匹配,找到合适的转换函数,并调用其对数据包进行转换。

当仿真开始时,首先SITL调用初始化函数加载所有的转换/检测函数对。若有数据包到达,WinPcap抓包工具将其截获并发送到SITL网关节点,SITL调用转换入口函数来转换数据包,通常情况下首先调用基本包格式的转换函数。若该数据包嵌套有其它类型的数据包,那么转换函数会调用该数据域的转换函数来对下一层数据包进行转换,直到转换至所设定的最顶层协议。

步骤三、基于STK的卫星网络拓扑的模拟。

    通过在STK中定义卫星的参数确定不同的卫星,从而进行卫星网络拓扑的仿真。

(1)卫星的基本属性设置。

设置卫星的基本属性:轨道、姿态、轨迹断点、质量、描述、图形、属性,、显示时间、约束时间等。

(2)定义卫星轨道设置.

利用设置轨道参数确定卫星轨道的大小、形状、轨道方位及卫星在轨道上的位置,主要包括:半长轴、远地点半径、远地点高度、回归周期、每日轨道圈数、偏心率、近地点半径、轨道倾角、升交点赤经、近地点幅角。真近点角、平近点角、偏近地点角、升交角距、过升交点时间、过近地点时间。

步骤四、基于网络损伤仪的空间链路的模拟。

采用iTrinegy网络损伤仪对空间链路进行模拟。将模拟卫星路由器的电脑都与网络损伤仪采用以太网连接,在网络损伤仪的.xml配置文件中,设置不同的延时和误码率参数,用于模拟不同的空间链路参数和链路通断。   

步骤五、网络性能的测试。

本发明实施例中采用两种方法测试网络性能:采用

(1)使用iperf软件进行网络性能测试,其步骤为:

1、iperf软件配置。客户端配置:以2Mb/s速率向服务器端的5001端口发送1KByte大小的UDP包,持续时间200s。服务器配置以监听UDP的5001端口。

2、OPNET仿真环境的配置。打开DTN路由器功能,设置分片大小设为1470字节,包的生存期设置为300s,两个路由器上设置监听UDP的5001端口,Bundle的汇聚层设置为UDPCL。

3、依次启动设备上的iperf服务器,以及opnet软件,iperf客户端。保存实验结果。如图5为DTN路由器测试结果,结果显示虽然没有端到端的连接,数据仍可以通过保管转发,最终交付给服务器。

(2)使用VLC_media_player软件进行实际业务测试,其步骤为:

1、在通信双方上分别运行两个VLC_media_player进程(该软件不支持双向通信,即一个进程只能作为客户端或者服务器),分别作为双向通信的客户端和服务器。两个服务器的通信端口分别配置为10000和10001。开启OPNET环境下DTN网关的相应端口。

2、配置网络损伤仪,分别设置延时为100ms、1s和10s。

3、测试使用VLC_media_player软件能否在通信双方高延迟的链路情况下进行双向通话。

4、拔掉的以太网线,然后对着通信设备的麦克风进行录音。然后再插上以太网线,测试在接收设备上能否听到刚才录音的内容。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号