发明名称 一种面向空间环境DTN网络的数据转发方法
摘要 一种面向空间环境DTN网络的数据转发方法,针对空间飞行器网络具有DTN网络的特点,把空间飞行器网络看成是一种DTN网络;同时空间飞行器星座拓扑又具有周期性和可预见性,可以充分利用这些信息快速建立虚拟拓扑路由表;综合考虑上述两方面的特点,设计更为适合空间飞行器网络的数据转发策略;通常情况下网络节点根据地面站建立的虚拟拓扑路由表进行数据转发,网络在异常情况下采用基于最优树的Spray and Wait路由算法进行数据转发。本发明可有效提高数据传输的成功投递率、降低数据转发延时,避免网络回环产生,能够适应空间飞行器节点失效、网络规模不断增长带来的路由问题。
申请公布号 CN102883397B 申请公布日期 2015.07.08
申请号 CN201210329877.6 申请日期 2012.09.07
申请人 航天恒星科技有限公司 发明人 王占伟;邹光南
分类号 H04W40/02(2009.01)I;H04W84/18(2009.01)I 主分类号 H04W40/02(2009.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种面向空间环境DTN网络的数据转发方法,其特征在于步骤如下:(1)地面站周期性构建虚拟拓扑路由表,并分发给所述面向空间环境DTN网络中的空间飞行器节点;构建虚拟拓扑路由表的具体方法为:根据星座拓扑周期性,把星座周期T分为N个小的时间片,[t<sub>0</sub>,t<sub>1</sub>],[t<sub>1</sub>,t<sub>2</sub>],[t<sub>2</sub>,t<sub>3</sub>]...[t<sub>n‑1</sub>,t<sub>n</sub>],链路的建立和断开发生于时间点t<sub>0</sub>,t<sub>1</sub>,...t<sub>n</sub>,利用dijkstra算法进行最优路径计算;(2)如果空间飞行器节点有数据需要转发,则判断该空间飞行器节点的虚拟拓扑路由表是否过期,如果未过期,则进入步骤(3);如果过期,则进入步骤(4);(3)根据虚拟拓扑路由表查询接收节点;如果可以查询到接收节点并且接收节点处于空闲状态,则由发送节点的bundle层根据链路容量和延迟信息构造bundle块,之后进入步骤(6);如果查询不到接收节点或者接收节点处于忙碌状态,则根据虚拟拓扑路由表查找是否存在其他到达目的节点的下一跳连接,若存在则进入步骤(6);若不存在,则由发送节点启动bundle层的托管机制,将要转发的数据保存起来,等待可用的下一跳连接;查询不到接收节点时,则判定该接收节点故障,并通知地面站对空间飞行器进行故障诊断;(4)由所述空间飞行器节点启动基于最优树的Spray and Wait路由算法进行数据转发,之后进入步骤(5);所述进行数据转发即为进行bundle块的转发;基于最优树的Spray and Wait路由算法进行数据转发,具体步骤为:①当有报文在源节点产生时,该源节点根据当前网络规模确定报文拷贝数量N;②当它遇到节点2时,它授权节点2复制(N‑1)/2个报文拷贝进行分发,而自己保留另外的(N‑1)/2个,同样地,当节点2遇到节点3时,节点3将被授权制作(N‑2)/4个报文拷贝进行分发,而节点2保留另外的(N‑2)/4继续分发,依次类推,直到每个节点仅剩1个报文拷贝;③当节点只剩下一个bundle报文拷贝并且没有遇到目的节点,则等待;(5)判断接收节点是否为目的节点,如果是,则启动报文删除策略进行冗余报文删除,完成数据的转发;如果不是,则由发送节点启动bundle层的托管机制,等待可用的下一跳连接;所述启动报文删除策略进行冗余报文删除具体通过如下方式进行:由目的节点向其相邻节点发送一个消息,该消息中包含目的节点接收到的数据的标识号,接收到该消息的节点再继续向其相邻节点发送该消息,同时,所述接收到该消息的节点判断节点自身是否含有相同标识号的数据,如果含有相同标识号的数据,则删除该相同标识号的数据;(6)判断接收节点是否为目的节点,如果是,则进行数据转发;如果不是,则判断接收节点是否发生拥塞,如果发生拥塞,则进入步骤(7);如果未发生拥塞,则进行数据转发;(7)根据虚拟拓扑路由表查找是否存在其他到达目的节点的下一跳连接,若存在则返回步骤(3);若不存在,则由发生拥塞的接收节点启动节点缓冲管理策略进行缓冲管理之后继续进行数据转发;所述由接收节点启动节点缓冲管理策略进行缓冲管理具体通过如下步骤进行:(7.1)判断接收节点待接收的bundle块的优先级是否最低,如果是最低,则拒绝接受该bundle块,如果不是最低,则进入步骤(7.2);(7.2)判断接收节点自身所有bundle块的优先级是否相同,如果相同,则丢弃TTL值最小的bundle块,之后进入步骤(7.3);如果不相同,则丢弃所有bundle块中优先级最小的,之后进入步骤(7.3);(7.3)判断接收节点的可用存储空间是否足以存储待接收的bundle块,如果不够存储,则返回步骤(7.2);如果足够存储,则接收该bundle块。
地址 100086 北京市海淀区知春路82号院