基于卫星DTN网络拥塞控制最优到达率路由方法与流程

文档序号:14655514发布日期:2018-06-12 03:12阅读:290来源:国知局

本发明涉及一种基于卫星DTN网络拥塞控制最优到达率路由方法,在深空探测的卫星DTN网络环境下,采取全局路由策略,卫星根据周期性变化的链路时间表选择能在数据包生命周期内传递到终点并且尽早到达的路径。同时,通过各卫星的历史队列变化率来预测链路下一次连通时队列是否发生拥塞,并且利用丢包率在卫星缓存溢出时选择到达率最低的数据包进行丢弃。



背景技术:

由于链路条件的恶劣,星际网络被划分为受限网络,因此很难利用静态图作为拓扑模型。所以提出了延迟容忍网络(DTN)这一定义,DTN网络是提供跨越间歇、中断、动态网络的可靠消息传递的网络协议,在受限网络条件下应用时具备良好的自然属性。在这样的网络中,由于深空探测卫星之间的通断频繁及连接条件恶劣,所以卫星在携带信息的同时要等待连通机会,将数据传递给下一跳卫星,选择更为合适的下一跳卫星便成了提高信息传递质量的关键。同时,深空探测卫星网络的节点数目稀少、链路数量有限将会导致部分路径拥塞;并且长时间的等待与数据的到来可能会造成卫星缓存溢出的现象。所以,拥塞控制和减少丢包也是卫星DTN网络保证数据传输质量与到达率的关键。



技术实现要素:

本发明的目的是缓解卫星DTN网络通信质量差导致的拥塞以及丢包问题。

基于卫星DTN网络拥塞控制最优到达率路由方法,借鉴了EADOR路由方法提出的MTG模型,采用数学集合的方式去记录卫星链路拓扑的连通情况,可以有效地解决静态拓扑不能精确记录链路连通时间以及大量信息冗余的问题。用GN=(V,E)表示卫星周期变化的拓扑图,表示一个卫星的边集合,vi表示某条链路的源节点,vj表示某条链路的终节点,k表示某条链路在一个周期内第k次连通,tsk则表示某条链路第k次连通的开始时间,Δtk表示某条链路第k次连通时的持续时长。

EADOR还提出了全局路由方法,不同于以往卫星DTN网络的局部路由,全局路由对Dijkstra方法进行了改进,对一个周期内的所有链路进行遍历,每次都选择最早到达该节点的链路,直到链路的末端节点为我们传输的终点。全局路由解决了局部路由可能出现的路由震荡以及未能选择最早到达的路径而浪费时间甚至超过数据包的生命周期。EADOR方法虽能选择最早到达的最佳路径,但未考虑因所有数据包都选最佳路径所造成的拥塞问题。所以,本发明提出的拥塞控制最优到达率路由方法是基于MTG模型以及全局路由的拥塞控制路由方法,保证全网最优到达率的基础上,让数据包尽早传递到终点。

本发明的拥塞控制是基于历史链路队列变化率,来预测下一次传递时链路时候是否会发生拥塞。

Qrate(i,tj)=αQrate(i,tj-1)+(1-α)qrate(i,tj) (2)

(tETO(1)-tnow)·Qrate(1)>(qcap-qsize(1)) (3)

公式(1)是计算tj时刻的卫星队列数目与tj-1时刻的卫星队列数目,来求得此时的队列变化率qrate。再结合之前的历史队列变化率Qrate以及历史变化率比重α求得tj时刻的Qrate。最后公式(3),用当前的队列数目qsize和队列容量qcap以及链路连通时间tETO、目前时间tnow与Qrate来判断连通时是否会发生拥塞。当所选路径链路会发生拥塞,则删除此路径,判断次优路径是否会发生拥塞。我们可选的次优路径数定义为k,且k=3。

当所选路径不发生拥塞或备选的k条路径都发生拥塞,则我们按照所选路径进行数据包传递。卫星接收到数据包后,先检测缓存区是否填满,若已填满,则按照公式(4)、(5)的丢包率公式来计算缓存区的数据包的到达率,选择最低的进行丢弃。

公式(4)中,λi是第i个报文所选路径的平均连通比例,其中,h代表跳数,表示此数据包所选路径的总共连通时长,T表示总周期时长,β是常系数。公式(5)中,Pi表示第i个报文的到达率,其中,R表示报文的剩余生存时间,Tdi表示报文预计的传输时长。总之,当报文剩余时间越多,所选路径连通时间占总周期比例越大,即连通机会越多,则报文的到达率就越大。当卫星缓存要溢出时,选择到达率最低的数据包进行丢弃,从而保证全网数据的到达率。

附图说明

图1是本发明方法的具体流程图。

具体实施方式

下面通过附图,对本发明进行详细阐述。

结合图1说明本发明方案的具体流程,该方法包括:

步骤101:深空行星地面站向卫星发送数据包后执行步骤102;

步骤102:根据MTG模型的卫星链路连通时间表以及EADOR路由方法计算满足数据包生命周期并且能够最早到达终点的路径后执行步骤103;

步骤103:对选出的路径利用收集到的各卫星队列变化率进行拥塞检测后执行步骤104;

步骤104:根据所选路径中的卫星的历史队列变化率来预测是否会发生拥塞,若预测结果为会发生拥塞则执行步骤105,否则执行步骤107;

步骤105:判断拥塞链路的次数是否达到可选链路数目k,若否则执行步骤106,若是则执行步骤107;

步骤106:删掉本次所选路径后执行步骤102;

步骤107:传递数据包到下一跳卫星后执行步骤108;

步骤108:判断数据包到达的卫星是否缓存是否已满,若是则执行步骤109,若否则执行步骤110;

步骤109:丢弃缓存中到达率最低的数据包后执行步骤110;

步骤110:把传递的数据包放到缓存区,以上是一次完整的数据包传输过程。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1