一种低轨星座的抗毁路由实现方法与流程

文档序号:29856864发布日期:2022-04-30 09:37阅读:155来源:国知局
一种低轨星座的抗毁路由实现方法与流程

1.本发明属于卫星通信领域,尤其涉及一种低轨星座的抗毁路由实现方法。


背景技术:

2.低轨卫星星座中的卫星节点由于其运动速度快,拓扑变化剧烈导致地面路由协议无法适用星上的问题,一直以来都是卫星通信领域研究的热点。
3.典型的静态路由是采用基于虚拟拓扑的算法,即地面根据卫星星座周期运动的拓扑规律进行快照分割,使每个快照内节点之间的相对拓扑不变,从而可以生成一个轨道周期内所有快照的路由表,该方案星上不需要进行路由的计算处理,但遇到链路损毁(含节点损毁)时路由表就会失效,从而引发路由环路,导致星上路由传输的丢包数量快速升高,严重影响整个星间传输网络的正常运行。
4.针对链路损毁的问题,有方案提出集中式计算的方法,即将链路损毁信息传输到地面站,由地面站重新计算路由表,然后上注给所有卫星节点,这种方式能够解决路由环路和丢包率的问题,但要将损毁消息传递回地面,在地面计算完成后再重新发送给所有节点,这个过程的时延会很长,在此过程中,整个网络都无法工作。
5.还有一种方案是星上分布式动态处理,即采用典型的地面动态路由协议,比如ospf,将链路信息进行洪泛,链路数据库实时同步,但这种方式的控制消息交互数量过多,对链路网络资源的占用较大,链路状态数据库存储的数据量也太大,另外,完整的地面动态路由协议对软硬件资源的要求也很高,而星上处理的软硬件性能较低,因此很难满足。
6.性能要求因为地面设备相对稳定,所以地面典型的动态路由协议中链路探测的间隔时间一般都较长,以ospf为例,经典值一般为10s/30s/120s,均对整个系统的存储、传输和计算都要求很高,而星上处理的软硬件性能较低,因此很难满足。


技术实现要素:

7.本发明的目的在于,为了保证低轨星座通信网络在出现链路损毁时能够快速收敛,并同时兼顾星载设备的硬件性能和网络资源,本发明提出了一种低轨星座的星上抗毁路由的实现方法,该方法计算处理简单,对网络资源的占用小,能够实现链路损毁后的路由快速收敛,保障了通信卫星系统的可靠性和稳定性。
8.本发明目的通过下述技术方案来实现:
9.一种低轨星座的抗毁路由实现方法,所述抗毁路由实现方法包括步骤:s1:根据星座内各卫星节点之间的连接情况,建立邻接拓扑关系;
10.s2:各卫星节点按照等时间间隔向本节点的所有邻接节点发送连接测试消息,时间间隔为δt;
11.s3:各卫星节点按照δt的时间间隔判断是否接收到相邻节点发送的hello测试消息,并存入hello消息状态数组hellostatlist[n][k]中,其中n表示节点的邻接节点个数,k表示滑窗的个数,并根据hello消息状态数组hellostatlist判断相邻链路状态是否更新;
[0012]
s4:当某卫星节点探测到相邻链路状态更新时,则将链路更新信息发送给各相邻节点;
[0013]
s5:当某卫星节点接收到相邻节点发送的链路更新信息时,首先判断该信息是否已经接收过,如果未接收过,则将该信息转发到除来源外的其它相邻节点,并记录该信息,如果已经接收过,则将该信息丢弃;
[0014]
s6:探测到链路更新或者接收到链路更新信息的卫星节点,首先更新该节点对应的拓扑信息,并启动重路由计算,重路由计算方法采用dijkstra算法。
[0015]
根据一个优选的实施方式,步骤s3中,卫星节点按照δt的时间间隔去判断是否接收到相邻节点发送的hello消息,如果接收到,则在hello消息状态数组hellostatlist[n][k]对应的位置填入1,如果未接收到hello消息,则填充0,每隔δt的时间hellostatlist[n][k]移动一位;即是,在δt的时间内,如果接收到了hello消息,则对应的状态为1,反之为0,如果在δt的时间里面接收到多个hello消息,状态仅置为1,并不累加。
[0016]
根据一个优选的实施方式,步骤s3中,当hellostatlist[i][0]~hellostatlist[i][k-1]总共k个滑窗的值均为0时,判定当前节点与第i个邻接节点之间的链路已损毁;hellostatlist[i][0]~hellostatlist[i][k-1]总共k个滑窗的值并不都为0时,判定当前节点与第i个邻接节点之间的链路正常。
[0017]
根据一个优选的实施方式,步骤s2中,时间间隔δt为毫秒级。
[0018]
根据一个优选的实施方式,步骤s1中,邻接拓扑关系主要包含邻接卫星和邻接链路。
[0019]
根据一个优选的实施方式,星座中,卫星satid的邻接卫星小于等于四颗卫星,分别为:前fr_satid、后bk_satid、左le_satid、右ri_satid;其中,第一轨和最后一轨卫星的邻接只有三个卫星,分别为前fr_satid、后bk_satid、左le_satid/右ri_satid。
[0020]
根据一个优选的实施方式,若星座内总共有m个卫星节点,则卫星的相邻链路可以表示为前flk、后blk、左llk、右rlk,链路id的最大值为2m。
[0021]
前述本发明主方案及其各进一步选择方案可以自由组合以形成多个方案,均为本发明可采用并要求保护的方案。本领域技术人员在了解本发明方案后根据现有技术和公知常识可明了有多种组合,均为本发明所要保护的技术方案,在此不做穷举。
[0022]
本发明的有益效果:本发明轨星座的抗毁路由实现方法通过仿真系统的验证,能够实现节点故障的快速响应和链路状态的快速收敛,链路开销小,算法的准确性和实用性都较高。
附图说明
[0023]
图1是本发明低轨星座的抗毁路由实现方法的流程示意图;
[0024]
图2是本发明hello消息的发送和接收示意图;
[0025]
图3是本发明某具体实施案例的抗毁路由仿真结果示意图。
具体实施方式
[0026]
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实
施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。
[0027]
需要说明的是,为使本发明实施例的目的、技术方案和优点更加清楚,下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
[0028]
参考图1所示,本发明公开了一种低轨星座的抗毁路由实现方法。
[0029]
本发明方法针对链路损毁后路由收敛慢的问题,以毫秒级的间隔在邻接节点之间发送hello消息,实现链路状态的实时探测,在探测到链路损毁后,立即以洪泛的方式向全网扩散链路更新消息,其它节点接收到链路更新消息后更新拓扑,并启动重路由计算,从而大大缩短路由收敛时间。
[0030]
针对动态路由协议链路信息交互过多对网络资源占用大的问题,以地面典型的动态路由协议ospf为参考,充分利用星上运动以及节点之间拓扑连接规律,对复杂的协议内容进行适应性裁剪,只保留hello消息和链路更新消息,并重新设计消息格式,既保证了链路损毁信息快速探测、快速传递,同时又兼顾了链路传输开销和计算开销。
[0031]
具体地,所述抗毁路由实现方法包括步骤:
[0032]
步骤s1:根据星座内各卫星节点之间的连接情况,建立邻接拓扑关系。
[0033]
优选地,邻接拓扑关系主要包含的就是邻接卫星和邻接链路。每个卫星节点存储了星座内所有节点之间的邻接拓扑关系。
[0034]
星座中,任意卫星satid的邻接卫星小于等于四颗卫星,分别为:前fr_satid、后bk_satid、左le_satid、右ri_satid。其中,第一轨和最后一轨卫星的邻接只有三个卫星,分别为前fr_satid、后bk_satid、左le_satid/右ri_satid。
[0035]
若星座内总共有m个卫星节点,则卫星的相邻链路可以表示为前flk、后blk、左llk、右rlk,链路id的最大值为2m。假设一个id占用一个字节,即只需2m个字节就能够实现完整的动态链路状态存储,达到了节约存储空间的目的。
[0036]
步骤s2:各卫星节点按照等时间间隔向本节点的所有邻接节点发送连接测试消息,时间间隔为δt。具体地,时间间隔δt为毫秒级。
[0037]
步骤s3:各卫星节点按照δt的时间间隔判断是否接收到相邻节点发送的hello测试消息,并存入hello消息状态数组hellostatlist[n][k]中,其中n表示节点的邻接节点个数,k表示滑窗的个数,并根据hello消息状态数组hellostatlist判断相邻链路状态是否更新(损毁或者损毁恢复)。
[0038]
优选地,参考图2所示。首先,卫星节点按照等时间间隔向所有的邻接节点发送hello消息,时间间隔为δt(毫秒级),在发送的同时也接收邻接节点发送的hello消息。
[0039]
卫星节点按照δt的时间间隔去判断是否接收到相邻节点发送的hello消息,如果接收到,则在hello消息状态数组hellostatlist[n][k]对应的位置填入1,如果未接收到hello消息,则填充0,每隔δt的时间hellostatlist[n][k]移动一位.
[0040]
即是,在δt的时间内,如果接收到了hello消息,则对应的状态为1,反之为0,如果在δt的时间里面接收到多个hello消息,状态仅置为1,并不累加。
[0041]
当hellostatlist[i][0]~hellostatlist[i][k-1]总共k个滑窗的值均为0时,判
定当前节点与第i个邻接节点之间的链路已损毁;hellostatlist[i][0]~hellostatlist[i][k-1]总共k个滑窗的值并不都为0时,判定当前节点与第i个邻接节点之间的链路正常。
[0042]
在低轨卫星星座中,相邻卫星节点相距较远,只能通过激光或者微波方式实现无线通信,相邻节点之间的距离也会随着卫星的运动而发生变化,在等时间间隔发送的hello消息,相邻节点接收到hello消息的时间却不是等间隔的,如果采用定时发送定时接收的方式,可能会误判没有收到hello消息。另外卫星运行的太空环境中存在宇宙射线、太阳风暴等电磁干扰,导致节点之间的无线链路会出现“闪断”,这种情况也容易误判为链路损毁。
[0043]
因此,本发明方法通过仿真获取节点之间的相对位置随时间的变化关系,确定了节点之间的传输时延分布情况,据此确定了hello消息发送的方式,即以等间隔的方式发送,为了避免时延变化和“闪断”引起的损毁误判,在hello消息的接收过程中引入了滑窗机制,即统计当前时隙以及往前的连续几个时隙的hello消息接收情况,如果在滑窗范围内连续的几个时隙都没有收到hello消息,才判断为链路损毁,相反,只要有一个时隙收到hello消息,就判断为链路正常。这样,既能够快速、准确地探测到链路损毁情况,又能够避免误判。
[0044]
步骤s4:当某卫星节点探测到相邻链路状态更新时,则将链路更新信息(损毁或者损毁后恢复)发送给各相邻节点。
[0045]
s5:当某卫星节点接收到相邻节点发送的链路更新信息时,首先判断该信息是否已经接收过,如果未接收过,则将该信息转发到除来源外的其它相邻节点,并记录该信息,如果已经接收过,则将该信息丢弃。
[0046]
s6:探测到链路更新或者接收到链路更新信息的卫星节点,首先更新该节点对应的拓扑信息,并启动重路由计算,重路由计算方法采用dijkstra算法。
[0047]
优选地,在进行链路更新消息的传递时:
[0048]
首先,将星座内的所有链路进行编号,即链路id,每个卫星节点有前flk、后blk、左llk、右rlk最多4条链路,但第一轨和最后一轨的节点只有3条链路,编号规则如下:
[0049]
if((sat(i)《n):第一轨
[0050]
·
前向flk:flk=sat(i);
[0051]
·
后向blk:if(sat(i+1)=n),blk=sat(i+1)-n;elseblk=sat(i+1);
[0052]
·
左侧llk:llk=na;
[0053]
·
右侧rlk:rlk=sat(i)+m;
[0054]
else if(sat(i)》m-n):最后一轨
[0055]
·
前向flk:flk=sat(i);
[0056]
·
后向blk:if(sat(i+1)%n==0),blk=sat(i+1)-n;elseblk=sat(i+1);
[0057]
·
左侧llk:llk=sat(i)+m-n;
[0058]
·
右侧rlk:rlk=na;
[0059]
else:中间轨道
[0060]
·
前向flk:flk=sat(i);
[0061]
·
后向blk:if(sat(i+1)%n==0),blk=sat(i+1)-n;elseblk=sat(i+1);
[0062]
·
左侧llk:llk=sat(i)+m-n;
[0063]
·
右侧rlk:rlk=sat(i)+m
[0064]
其中,n为单轨卫星数量,m为整个星座内卫星总数量,na表示无效,sat(i)为卫星节点id。
[0065]
其次,将链路更新情况组成链路更新消息包,包含源节点id、目的节点id、链路id和更新类型,具体格式定义如下:
[0066]
表1链路更新消息描述
[0067][0068]
然后,探测到链路损毁的卫星节点将链路更新消息逐个以点对点方式发送给本节点的邻接节点,其中srcid为本节点id,dstid为邻接节点id,lkid为链路更新的链路id,uptype如果是损毁则为0,否则为1。
[0069]
最后,邻接节点接收到链路更新消息后,判断是否接收过相同内容的链路更新消息,
[0070]
如果未接收过,则将该链路更新消息中的部分字段修后逐个转发给当前节点的邻接节点(消息来源节点除外,避免重复发送),其中srcid修改为本节点id,dstid修改为当前节点对应的邻接节点id;如果该消息接收过,则不进行转发。
[0071]
在低轨道的低轨卫星星座拓扑中,每颗卫星节点最多有前、后、左、右四个相邻节点与之相连(在第一轨和最后一轨之间存在反相缝,只有三个相邻节点),且每个节点的相邻链路都是彼此独立的,也就存在损毁部分相邻链路而剩余的链路还正常工作的情况,因此链路损毁又分为链路级损毁和节点级损毁。当发生链路级损毁时,链路两端的两个节点都会探测到损毁情况,这两个节点也都可以将损毁消息传递出去;而发生节点级损毁时,损毁节点周围的前、后、左、右四个邻接节点都会探测到损毁情况,邻接节点可以将损毁消息传递出去,但损毁节点本身无法传递损毁消息。
[0072]
因此,损毁消息的传递就包含两个部分,一是损毁消息的格式,二是传递的方法。本发明方法根据星座拓扑关系将所有的链路进行了编号,因此损毁消息只需包含链路id,损毁类型(损毁或恢复)即可,损毁消息的精简设计,避免了消息传递占用传输带宽。传递的方法有点对点和洪泛两种,点对点传输因为出现了链路损毁,此时进行传输可能会出现路由环路,导致损毁消息无法实现全网传递,因此本文采用洪泛的方式进行,每个节点都只向邻接节点发送/转发链路损毁消息,无需查找路由表,避免了路由环路问题,保证了链路消息能够全网快速收敛。
[0073]
本发明轨星座的抗毁路由实现方法通过仿真系统的验证,能够实现节点故障的快速响应和链路状态的快速收敛,链路开销小,算法的准确性和实用性都较高。
[0074]
实施例1
[0075]
采用低轨星座的抗毁路由实现方法,通过卫星节点之间实时发送hello探测消息,
快速检测链路更新信息,将消息以洪泛的方式发送至星座网络中的所有节点,从而大大减少了链路损毁后的全网路由收敛时间,同时通过对hello消息和链路更新消息的精简化设计,减少了链路交互过程对网络资源的占用。
[0076]
假设整个星座由288颗星构成,12轨道,每轨道24星,轨道高度1000km,轨道倾角为89
°
,第1轨和第12轨之间存在反相逢。采用hello消息探测链路损毁的方法,每个卫星节点以10毫秒的间隔向邻接节点发送hello消息,单个hello消息只需1byte空间,单链路每秒只需占用100byte的带宽。在出现了链路损毁后,最迟10ms后邻接节点就能够探测到损毁状况,同时向其它节点洪泛链路损毁消息,链路损毁消息只在出现损毁时发送,且单个消息占用的带宽仅为7byte。
[0077]
过仿真软件进行仿真,结果如图3所示。每颗卫星每秒随机发包测试,平均时延在62ms左右,在仿真时间为25s时,模拟节点损毁,使用抗毁路由的方法,节点自动探测损毁并将损毁情况进行洪泛,同时启动重路由计算,在重路由计算过程中,星座内其它节点接收到链路损毁消息的最长时延为136ms,加上重路由计算的处理时延10ms以及探测间隔的10ms,整个链路损毁后的最大收敛时间为156ms,大大减少了链路损毁后的全网路由收敛时间,在收敛过程中,无可避免地发生了丢包,但在毫秒级的网络快速收敛后,不再发生丢包现象,而且整个网络的数据传输平均时延也无明显增长,证明了抗毁路由机制的有效性。
[0078]
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1