面向GEO/LEO双层卫星网络的抗毁路由方法与流程

文档序号:12067990阅读:353来源:国知局
面向GEO/LEO双层卫星网络的抗毁路由方法与流程

本发明属于卫星通信技术领域,涉及一种应用于双层卫星网络的抗毁路由方法,具体为GEO/LEO双层卫星网络架构。



背景技术:

随着航天技术的迅速发展和应用,卫星已经成为获取、融合、分发、处理空间信息或资源的主要手段和途径。卫星网络不受地理环境限制,能够为全球范围的地面用户提供远距离通信与宽带接入,是未来信息基础设施的重要组成部分。同时为全面提升我国的航天科技发展水平,缩短与发达国家的差距,我国863航天航空领域在“十三五”规划中,将卫星网络的研究作为一个重要的研究方向。

由于卫星网络的重要作用,其能否维持高可靠的运行就显得尤为关键,并且对于卫星网络系统而言,外太空的卫星节点比地面节点更加重要。但因为卫星网络具有高动态拓扑、处理设施有限、存储空间有限等特性,这些限制使得现有地面网络的一些理论方法无法在卫星网络中得到应用,并使得设计高效的路由算法具有很大的困难。因此需要专门针对卫星网络进行研究。卫星网络抗毁性问题研究是针对当卫星因为故障而导致卫星网络中链路失效时的灾难恢复能力的问题。同时因为卫星运行的实际环境过于恶劣,目前卫星运行过程中,故障发生率较高。那么既然短期内无法克服卫星故障,我们就可以采取一定的措施,将卫星故障所带来的不良影响降到最低。为此,研究如何及时恢复卫星网络的正常运行并最大限度地降低因故障导致的链路时延增加,对于卫星系统的可靠运行,提高卫星系统工作效率,具有重要意义。



技术实现要素:

本发明的目的是提供一种面向GEO(Geosychronons Earth Orbit,同步地球轨道)/LEO(Low Earth Orbit,低轨卫星)双层卫星网络的抗毁路由方法,其利用GEO和LEO各自的优势,可以有效提高卫星网络的抗毁性,并通过建立链路状态评价模型以及只向需要更新其路由表的LEO发送路由表的增量更新信息等方法,大大提高本抗毁路由策略的实用性。

为达到上述目的,本发明的技术方案为面向GEO/LEO双层卫星网络的抗毁路由方法,包含以下步骤:

步骤1:在地球表面将LEO卫星划分出若干个区域,在每个区域的中心放置一颗虚拟节点;每颗LEO卫星按照距离最近原则选取作为自身所属的虚拟节点,并上报给GEO进行注册;

步骤2:当此LEO移动到该虚拟节点区域与下一个虚拟节点区域的重合区域时,则此LEO就与下一个虚拟节点的LEO建立连接,去比较双方相对于下一个虚拟节点中心位置的距离,若此LEO的距离更小,则从下一个虚拟节点的原LEO处继承下一个虚拟节点的虚拟节点信息,从而完成LEO与虚拟节点的切换;若此LEO的距离更大,则放弃该次切换,在等待t时间后再次寻找下一个虚拟节点并发起新的切换。若下一个虚拟节点的LEO出现故障或损毁,即无法联系到下一个虚拟节点的LEO时,则此LEO立即向其所属的GEO索取下一个虚拟节点的路由表等虚拟节点信息,并同时通报下一个虚拟节点的原LEO损毁,从而促发抗毁性重路由;

步骤3:虚拟节点注册完成后,进入正常工作循环;

步骤4:每颗卫星在每次收发数据包时都更新传输时延Td和发送队列排队数C;

步骤5:根据链路状态评价公式计算出每条链路的状态:

Costij=w1*Tdij+w2*Ci;其中,Costij为从卫星i到卫星j的链路状态;Tdij为此时刻从卫星i到卫星j的归一化传输时延;Ci为卫星i此时刻的归一化发送队列排队数目;w1和w2则分别为数据包归一化传输时延Tdij、归一化卫星发送队列排队数Ci的系数,并对这些系数也做归一化处理,并规定:w1+w2=1;

步骤6:一旦链路状态Cost大于上一次向GEO上报的Cost值并且当前的Cost值达到3个上升阈值θ1、θ2、θ3中的某一个时,就立即触发该卫星向其所属GEO上报该条链路状态的变化信息;同理,当链路状态Cost小于上一次向GEO上报的Cost值并且当前的Cost值达到3个下降阈值中的某一个时,也立即触发该卫星向其所属GEO上报该条链路状态的变化信息;

步骤7:GEO接收到链路状态信息之后,立即向其他GEO同步此链路状态的更新信息,以此来维持各自全局链路状态表的统一;

步骤8:所有GEO根据更新后的全局链路状态表,利用Floyd算法重新计算整个卫星网络的全局路由表,该算法同时维护着两份二维表,一份是全局链路状态FCost表,另一份是记录最短路径的路径path表,初始状态下FCost表中所存储的每一个FCostij代表从卫星i到卫星j的链路状态大小,即初始状态下的FCostij其数值等于链路状态评价模型的Costij;path表中的pathij代表从卫星i到卫星j需要经过的路径,具体计算时,首先将FCost表中所有不存在真实链路的位置设置为断路状态,即FCost值无穷大;然后依次选取全局链路状态FCost表中的每一个卫星节点k,去中转任意的卫星节点i:若不进行中转的FCostij大于进行中转的FCostik+FCostkj,则将原有的FCostij更新为(FCostik+FCostkj)的值,并同时将k添加进pathij所存储的数组中,使得原先从卫星节点i到卫星节点j的路径,变为先从卫星节点i到卫星节点k,再从卫星节点k到卫星节点j,在所有卫星节点都当过中转节点对路径进行优化之后,此时的path表中所存储的数组pathij就是从卫星节点i到卫星节点j的最优路径,并且此最优路径pathij所对应的路径上FCost总和就是此时FCost表中经过优化更新之后的FCostij

步骤9:各GEO将全局路由表分解成其所辖簇内各LEO的路由子表,并分别向需要更新其路由表的LEO发送增量路由表更新信息;

步骤10:LEO接收到增量更新路由表信息之后,立即更新自身路由表,并使用新路由表进行数据包的转发;

步骤11:完成循环,转到步骤3。

进一步,步骤1中是将地球表面按照铱星系统中每颗LEO的初始位置划分成66个区域。

步骤2中的虚拟节点信息包含路由表和编号。

本发明还进一步提出一种上述面向GEO/LEO双层卫星网络的抗毁路由方法中采用的GEO/LEO双层卫星网络架构,其中,GEO层设置了4颗GEO卫星,GEO层覆盖全体LEO,LEO层的路由计算任务由GEO层完成。

进一步,GEO层的4颗GEO卫星均匀分布在赤道上空,具体坐标为:纬度都是0°,经度分别为30°、120°、210°、300°,海拔都为35786km。

本发明的有益效果在于:

1,卫星网络中的抗毁性路由算法普遍都是采取重路由的方式完成,但这些算法一般都存在评价属性单一、信令负载大等缺点。所以本发明重新设计了卫星链路评价模型,加入了链路时延、发送队列排队数等参数,使评价更准确;此外,本发明还将虚拟节点与区域划分相结合,使得对GEO层屏蔽了LEO卫星的频繁切换,降低了重路由的被激发次数;并且本发明还采取分层分簇的思想,每个虚拟节点上的LEO只将其链路状态更新信息上报至其所属的GEO,再由此GEO进行GEO层内同步全局链路状态信息,同时将新算出的路由表以局部增量更新的方式下发给其所辖LEO中需要更新路由表的那部分LEO卫星,这种分层分簇上报、局部增量更新的方式可以极大的降低信令通信的代价提高卫星网络的灾难恢复速度以及通信效率。

附图说明

图1是体系结构示意图。

图2是LEO程序流程图。

图3是GEO程序流程图。

具体实施方式

现结合附图对本发明做进一步详细的说明。首先,GEO/LEO双层卫星网络架构是利用GEO卫星覆盖面积大的优势,采取带冗余的GEO层覆盖全体LEO的架构,为整体LEO提供统一的路由计算。如图1所示,具体的双层卫星网络架构为:

LEO层参考Iridium铱星系统,共66颗LEO卫星,分6个轨道,每个轨道11颗LEO卫星;

GEO层设置了4颗GEO卫星均匀分布在赤道上空,具体坐标为:纬度都是0°,经度分别为30°、120°、210°、300°,海拔都为35786km。由于3颗GEO即可覆盖全球,故设置4颗GEO即可有一颗的冗余量,即便有一颗GEO发生故障,整个GEO层也可继续完成任务。

因为GEO层覆盖全体LEO,故将LEO层的路由计算任务交由GEO层完成,再辅以链路状态评价模型和三级链路状态的异常上报机制,即可使GEO层完成对LEO层的重路由任务,进而达到GEO/LEO双层卫星网络的抗毁性目的。

1.虚拟节点与区域划分相结合

传统的、不使用虚拟节点的路由算法,由于LEO卫星飞行速度快,相对于地面终端切换频繁,为了维持终端间的通信,则必然导致频繁的重路由。所以为了降低重路由频率,必须要对地面终端和GEO层屏蔽LEO层的频繁切换,故采取虚拟结点与区域划分相结合的方式:

将全体LEO按照GEO的覆盖范围划分为4个区域,每颗LEO选取对其具有最大可视角的GEO来充当其簇首GEO;同时,将地球表面划分为个数与LEO个数相等的66个虚拟节点,每个虚拟节点都有一个独特的编号,并且每个虚拟节点和LEO都是按照最近距离优先的方式一对一匹配的;在每颗LEO因高速运动而与虚拟节点发生切换时,则从其新虚拟节点所对应的原LEO处继承包括编号、路由表等信息;这样对于GEO和地面终端而言,与其相联络的LEO都是编号、位置不变的虚拟节点,此举可以屏蔽由于LEO相对于地面终端的高速移动而带来的频繁切换,进一步屏蔽为了维持终端间的通信而导致GEO层对整个卫星网络的频繁重路由;并且由于GEO层计算的是位置和编号都不变的虚拟节点的路由表,就可以使得路由表计算得更加平滑与稳定,使数据包在卫星网络中的转发更加流畅快捷,降低时延,提高卫星网络的抗毁性。

2.链路状态评价模型

在传统的卫星路由算法中,所使用的链路代价都是单一的链路传输时延,并没有对于造成最后总时延的各种因素做深入的分析,造成传统卫星路由算法结果与实际偏差大的情况。

所以在本发明的GEO/LEO双层卫星网络的路由策略中,综合考虑了数据包在卫星链路上的传输时延、每颗卫星中的发送队列排队数等可能对数据包传递造成影响的各种参数,进而给出链路状态的评价函数为:

Costij=w1*Tdij+w2*Ci

其中,Costij为在t时刻从卫星i到卫星j的链路状态;

Tdij为此时刻从卫星i到卫星j的归一化传输时延;

Ci为卫星i此时刻的归一化发送队列排队数目;

w1和w2则分别为数据包归一化传输时延、归一化卫星发送队列排队数的各自的系数,而且我们对这些系数也做归一化处理,并规定:w1+w2=1;

卫星在每一次切换虚拟节点和发送数据包时,都用此链路状态评价模型对其相关联的卫星链路进行一次评估,一旦评估出的链路状态Cost增大的过程中达到所设置的3个上升阈值θ1、θ2、θ3或在减小的过程中达到3个下降阈值时,该卫星则向其虚拟节点所属的GEO上报该链路状态的变化,其中,这6个阈值的大小关系为将上升阈值和下降阈值分开,可以有效地减少由于链路状态Cost在某一值附近来回震荡而导致向GEO的频繁上报。并且,在链路状态的上升或下降方向分别设置的3个阈值,前两个阈值是用于链路拥塞控制的阈值,最后一个阈值是当卫星出现故障或被损毁,链路状态达到拥塞的极端情况,即断路的状态,所以利用这3个阈值可以将链路的拥塞控制和卫星网络的抗毁性路由结合起来,从而使得卫星网络的日常工作状态和紧急执行抗毁路由之间过度得更加平滑,减少了丢包的风险,数据包转发的效率也更高。

GEO接收到此变化后立即向其他所有GEO通报该条链路状态的变化,使得整个GEO层保持各自全局链路状态表的同步;随后各个GEO开始根据链路状态的变化进行重路由,并以此向需要更新路由表的LEO下发新的路由表更新信息,以此节约带宽并使得LEO可以及时的更新路由表,不让局部的拥塞或故障扩大化。

3.Floyd路由算法

Floyd算法是一种利用动态规划的思想寻找给定加权图中多源点之间最短路径的算法,它同时维护着两份二维表,一份是全局链路状态FCost表,另一份是记录最短路径的路径path表,初始状态下FCost表中所存储的每一个FCostij代表从卫星i到卫星j的链路状态大小,即初始状态下的FCostij其数值等于链路状态评价模型的Costij;path表中的pathij代表从卫星i到卫星j需要经过的路径。具体计算时,首先将FCost表中所有不存在真实链路的位置设置为断路状态,即FCost值无穷大;然后依次选取全局链路状态FCost表中的每一个卫星节点k,去中转任意的卫星节点i:若不进行中转的FCostij大于进行中转的FCostik+FCostkj,则将原有的FCostij更新为(FCostik+FCostkj)的值,并同时将k添加进pathij所存储的数组中,使得原先从卫星节点i到卫星节点j的路径,变为先从卫星节点i到卫星节点k,再从卫星节点k到卫星节点j。

在所有卫星节点都当过中转节点对路径进行优化之后,此时的path表中所存储的数组pathij就是从卫星节点i到卫星节点j的最优路径,并且此最优路径pathij所对应的路径上FCost总和就是此时FCost表中经过优化更新之后的FCostij

4.LEO路由表的局部更新原则

传统的卫星路由表更新策略采取的是洪范式的更新方式,许多不需要更新其路由表的卫星也会接收到新的路由表,甚至会被要求转发。所以本发明在这里采取的是一种只向需要更新其路由表的LEO发送路由表的增量更新信息的更新方式,而不是向全体LEO发送完整的路由表。这种更新方式可以有效的减少路由算法给卫星网络所带来的信令代价,并使LEO更快捷地更新其路由表,提高了通信效率。

面向GEO/LEO双层卫星网络的抗毁路由策略采用GEO/LEO双层卫星网络来进行数据通信,由于LEO层的卫星轨道低,星地之间的传播时延小,链路传播损耗小,所以我们主要使用LEO作为主干网进行数据传输,而由GEO来计算此双层卫星网络的路由表,并配合LEO层在链路堵塞时辅助进行数据的分流转发工作。

本发明是在GEO/LEO双层卫星网络的基础上,设计了新的链路状态评价模型;并利用GEO/LEO双层卫星网络的架构优势和将虚拟节点与区域划分相结合所带来的低频切换的优势,让带冗余的GEO层计算整个卫星网络的路由表,并采取局部更新的方式降低信令代价,最终提高此卫星网络的抗毁能力。

步骤1:在地球表面按照铱星系统中每颗LEO的初始位置划分出66个区域,在每个区域的中心放置一颗虚拟节点;每颗LEO卫星按照距离最近原则选取作为自身所属的虚拟节点,并上报给GEO进行注册;

步骤2:当此LEO移动到该虚拟节点区域与下一个虚拟节点区域的重合区域时,则此LEO就与下一个虚拟节点的LEO建立连接,去比较双方相对于下一个虚拟节点中心位置的距离,若此LEO的距离更小,则从下一个虚拟节点的原LEO处继承下一个虚拟节点的路由表和编号等虚拟节点信息,从而完成LEO与虚拟节点的切换;若此LEO的距离更大,则放弃该次切换,在等待t时间后再次寻找下一个虚拟节点并发起新的切换。若下一个虚拟节点的LEO出现故障或损毁,即无法联系到下一个虚拟节点的LEO时,则此LEO立即向其所属的GEO索取下一个虚拟节点的路由表等虚拟节点信息,并同时通报下一个虚拟节点的原LEO损毁,从而促发抗毁性重路由。与传统卫星路由中LEO一旦与地面节点发生切换就进行重路由的方案相比,本发明采用的虚拟节点方案由于虚拟节点位置不变,所以在本发明中LEO与地面节点切换与传统切换相比的优势是LEO进入了其他虚拟节点区域,因为获取了新虚拟节点的路由表,所以不需要进行重路由;

步骤3:虚拟节点注册完成后,进入正常工作循环;

步骤4:每颗卫星在每次收发数据包时都更新传输时延Td和发送队列排队数C;

步骤5:根据链路状态评价公式计算出每条链路的状态:

Costij=w1*Tdij+w2*Ci;其中,Costij为从卫星i到卫星j的链路状态;Tdij为此时刻从卫星i到卫星j的归一化传输时延;Ci为卫星i此时刻的归一化发送队列排队数目;w1和w2则分别为数据包归一化传输时延Tdij、归一化卫星发送队列排队数Ci的系数,而且我们对这些系数也做归一化处理,并规定:w1+w2=1;

步骤6:一旦链路状态Cost大于上一次向GEO上报的Cost值并且当前的Cost值达到3个上升阈值θ1、θ2、θ3中的某一个时,就立即触发该卫星向其所属GEO上报该条链路状态的变化信息;同理,当链路状态Cost小于上一次向GEO上报的Cost值并且当前的Cost值达到3个下降阈值中的某一个时,也立即触发该卫星向其所属GEO上报该条链路状态的变化信息,这种触发方式可以极大地减少链路状态变化的上报次数,同时可以避免由于链路状态在某个值附近来回震荡而导致的频繁上报;

步骤7:GEO接收到链路状态信息之后,立即向其他GEO同步此链路状态的更新信息,以此来维持各自全局链路状态表的统一;

步骤8:所有GEO根据更新后的全局链路状态表,利用Floyd算法重新计算整个卫星网络的全局路由表;

步骤9:各GEO将全局路由表分解成其所辖簇内各LEO的路由子表,并分别向需要更新其路由表的LEO发送增量路由表更新信息;

步骤10:LEO接收到增量更新路由表信息之后,立即更新自身路由表,并使用新路由表进行数据包的转发;

步骤11:完成循环,转到步骤3。

LEO和GEO各自独立的程序流程请分别参见图2、图3。

LEO卫星在开始时首先探测周围的邻近卫星,并与之建立双向链路;随后获取自身初始位置所代表的虚拟节点编号,并以最高可视角的原则选取其所属的GEO节点,同时建立层间双向链路并上报此虚拟节点编号和链路信息。

GEO收到此虚拟节点编号和链路信息之后,则立即存入自身所领导的卫星簇中,从而达到分层分簇管理,节约信令开支的目的。

随后,LEO卫星在每次收发数据包时都更新该条链路的时延Td以及该卫星的发送队列排队数C,以此来更新其链路状态Cost,一旦此链路状态Cost达到所设置的3个阈值θ1、θ2和θ3时,就立即将该条链路状态的变化信息上报给其所属GEO。

GEO在收到链路状态变化信息后,立即将此条卫星链路状态变化信息同步给GEO层的其余GEO卫星,然后开始对整体卫星网络计算路由表,以达到路由计算的全局最优;随后,各GEO卫星将全局路由表分解成其所管辖簇内各LEO的路由子表,并将新路由子表的增量更新信息单独下发到对应的LEO卫星,完成局部增量式更新路由表的操作。

步骤1:在地球表面按照铱星系统中每颗LEO的初始位置划分出66个区域,在每个区域的中心放置一颗虚拟节点;每颗LEO卫星按照距离最近原则选取作为自身所属的虚拟节点,并上报给GEO进行注册;

步骤2:当此LEO移动到该虚拟节点区域与下一个虚拟节点区域的重合区域时,则此LEO就与下一个虚拟节点的LEO建立连接,去比较双方相对于下一个虚拟节点中心位置的距离,若此LEO的距离更小,则从下一个虚拟节点的原LEO处继承下一个虚拟节点的路由表和编号等虚拟节点信息,从而完成LEO与虚拟节点的切换;若此LEO的距离更大,则放弃该次切换,在等待t时间后再次寻找下一个虚拟节点并发起新的切换。若下一个虚拟节点的LEO出现故障或损毁,即无法联系到下一个虚拟节点的LEO时,则此LEO立即向其所属的GEO索取下一个虚拟节点的路由表等虚拟节点信息,并同时通报下一个虚拟节点的原LEO损毁,从而促发抗毁性重路由。与传统卫星路由中LEO一旦与地面节点发生切换就进行重路由的方案相比,本发明采用的虚拟节点方案由于虚拟节点位置不变,所以在本发明中LEO与地面节点切换与传统切换相比的优势是LEO进入了其他虚拟节点区域,因为获取了新虚拟节点的路由表,所以不需要进行重路由;

步骤3:虚拟节点注册完成后,进入正常工作循环;

步骤4:每颗卫星在每次收发数据包时都更新传输时延Td和发送队列排队数C;

步骤5:根据链路状态评价公式计算出每条链路的状态:

Costij=w1*Tdij+w2*Ci;其中,Costij为从卫星i到卫星j的链路状态;Tdij为此时刻从卫星i到卫星j的归一化传输时延;Ci为卫星i此时刻的归一化发送队列排队数目;w1和w2则分别为数据包归一化传输时延Tdij、归一化卫星发送队列排队数Ci的系数,而且我们对这些系数也做归一化处理,并规定:w1+w2=1;

步骤6:一旦链路状态Cost大于上一次向GEO上报的Cost值并且当前的Cost值达到3个上升阈值θ1、θ2、θ3中的某一个时,就立即触发该卫星向其所属GEO上报该条链路状态的变化信息;同理,当链路状态Cost小于上一次向GEO上报的Cost值并且当前的Cost值达到3个下降阈值中的某一个时,也立即触发该卫星向其所属GEO上报该条链路状态的变化信息,这种触发方式可以极大地减少链路状态变化的上报次数,同时可以避免由于链路状态在某个值附近来回震荡而导致的频繁上报;

步骤7:GEO接收到链路状态信息之后,立即向其他GEO同步此链路状态的更新信息,以此来维持各自全局链路状态表的统一;

步骤8:所有GEO根据更新后的全局链路状态表,利用Floyd算法重新计算整个卫星网络的全局路由表;

步骤9:各GEO将全局路由表分解成其所辖簇内各LEO的路由子表,并分别向需要更新其路由表的LEO发送增量路由表更新信息;

步骤10:LEO接收到增量更新路由表信息之后,立即更新自身路由表,并使用新路由表进行数据包的转发;

步骤11:完成循环,转到步骤3。

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