网状卫星网络中的快速重路由方法及装置与流程

文档序号:23711059发布日期:2021-01-23 20:04阅读:108来源:国知局
网状卫星网络中的快速重路由方法及装置与流程

[0001]
本发明涉及卫星网络技术领域,特别涉及一种网状卫星网络中的快速重路由方法及装置。


背景技术:

[0002]
卫星网络是天地一体化网络的重要组成部分。卫星网络中的空间链路可能发生链路故障,导致网络通信中断。传统的路由方法在发生链路故障时需要通告新的网络拓扑结构,并基于新拓扑重新计算整个网络的路由,然后将路由表发送到各卫星节点。由于空间链路延迟大,卫星节点资源有限,上述重路由的过程需要较长的时间,在这段时间内网络通信仍然不能恢复。
[0003]
因此亟需针对卫星网络设计快速重路由方法。


技术实现要素:

[0004]
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
[0005]
为此,本发明的一个目的在于提出一种网状卫星网络中的快速重路由方法,可以在发生链路故障或轨道间链路转交时通过快速重路由快速高效的找到新的转发路径,有效避免通信的中断。
[0006]
本发明的另一个目的在于提出一种网状卫星网络中的快速重路由装置。
[0007]
为达到上述目的,本发明一方面实施例提出了一种网状卫星网络中的快速重路由方法,包括以下步骤:获取当前卫星节点(x,y)和目的地卫星节点(a,b)间的相对位置关系;根据所述相对位置关系确定所述目的地卫星节点的所在区域;根据所述所在区域采取相应的路由计算策略。
[0008]
本发明实施例的网状卫星网络中的快速重路由方法,在网状卫星网络中能抵抗任意单一轨道内链路故障和多条轨道间链路故障,并能适应轨道间链路转交,从而可以在发生链路故障和轨道间链路转交时通过快速重路由快速高效的找到新的转发路径,有效避免通信的中断。
[0009]
另外,根据本发明上述实施例的网状卫星网络中的快速重路由方法还可以具有以下附加的技术特征:
[0010]
进一步地,在本发明的一个实施例中,还包括:获取每个卫星节点所处位置的二元组表示,并得到对应的最多四个邻居节点。
[0011]
进一步地,在本发明的一个实施例中,所述相对位置关系包括:
[0012]
第一位置关系:x>a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,其中,%表示取模运算,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0013]
第二位置关系:x<a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0014]
第三位置关系:x>a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0015]
第四位置关系:x<a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0016]
第五位置关系:x=a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0017]
第六位置关系:x=a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0018]
第七位置关系:x>a且y=b;
[0019]
第八位置关系:x<a且y=b。
[0020]
进一步地,在本发明的一个实施例中,所述根据所述所在区域采取相应的路由计算策略,包括:
[0021]
步骤s1,如果所述当前卫星节点为所述目的地卫星节点,则接收转发的数据包;
[0022]
步骤s2,如果所述目的地卫星节点属于第一位置关系,且所述节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y),则下一跳节点为(x-1,y);否则,执行步骤s21;
[0023]
步骤s21,如果所述节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);否则,执行步骤s22;
[0024]
步骤s22,如果所述节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);否则丢弃所述数据包;
[0025]
步骤s3,如果所述目的地卫星节点属于第二位置关系,则所有(x-1,y)均替换为(x+1,y),并执行所述目的地卫星节点属于第一位置关系的步骤s2;
[0026]
步骤s4,如果所述目的地卫星节点属于第三位置关系,则所述所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),并执行所述目的地卫星节点属于第一位置关系的步骤s2;
[0027]
步骤s5,如果所述目的地卫星节点属于第四位置关系,则将所有(x-1,y)均替换为(x+1,y),并执行所述目的地卫星节点属于第三位置关系的步骤s4;
[0028]
步骤s6,如果所述目的地卫星节点属于第五位置关系,则如果节点(x,y)去往节点(x,y

1)的链路可用,且所述数据包不是来自节点(x,y

1),则下一跳节点为(x,y

1);否则,执行步骤s61或步骤s62,如果步骤s61和步骤s62均不成立,则执行步骤s63;
[0029]
步骤s61,如果节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y)或者节点(x,y)去往节点(x+1,y)的链路不可用,则下一跳节点为(x-1,y);,
[0030]
步骤s62,如果节点(x,y)去往节点(x+1,y)的链路可用,且数据包不是来自节点(x+1,y)或者节点(x,y)去往节点(x-1,y)的链路不可用,则下一跳节点为(x+1,y);
[0031]
步骤s63,如果节点(x,y)去往节点(x,y

1)的链路可用,则下一跳节点为(x,y

1);否则丢弃该数据包;
[0032]
步骤s7,如果所述目的地卫星节点属于第六位置关系,则将所述所有(x,y

1)均
替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),并执行所述目的地卫星节点属于第五位置关系的步骤s6;
[0033]
步骤s8,如果所述目的地卫星节点属于第七位置关系,则如果所述节点(x,y)去往节点(x-1,y)的链路可用,则下一跳节点为(x-1,y);否则,执行步骤s81或步骤s82,如果步骤s81和步骤s82均不成立,则执行步骤s83;
[0034]
步骤s81,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0035]
步骤s82,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0036]
步骤s83,否则丢弃该数据包;
[0037]
步骤s9,如果所述目的地卫星节点属于第八位置关系,则将所述所有(x-1,y)均替换为(x+1,y),并执行所述目的地卫星节点属于第七位置关系的步骤s8。
[0038]
为达到上述目的,本发明另一方面实施例提出了一种网状卫星网络中的快速重路由装置,包括:获取模块,用于获取当前卫星节点(x,y)和目的地卫星节点(a,b)间的相对位置关系;确定模块,用于根据所述相对位置关系确定所述目的地卫星节点的所在区域;处理模块,用于根据所述所在区域采取相应的路由计算策略。
[0039]
本发明实施例的网状卫星网络中的快速重路由装置,在网状卫星网络中能抵抗任意单一轨道内链路故障和多条轨道间链路故障,并能适应轨道间链路转交,从而可以在发生链路故障和轨道间链路转交时通过快速重路由快速高效的找到新的转发路径,有效避免通信的中断。
[0040]
另外,根据本发明上述实施例的网状卫星网络中的快速重路由装置还可以具有以下附加的技术特征:
[0041]
进一步地,在本发明的一个实施例中,所述获取模块进一步用于获取每个卫星节点所处位置的二元组表示,并得到对应的最多四个邻居节点。
[0042]
进一步地,在本发明的一个实施例中,所述相对位置关系包括:
[0043]
第一位置关系:x>a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,其中,%表示取模运算,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0044]
第二位置关系:x<a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0045]
第三位置关系:x>a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0046]
第四位置关系:x<a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0047]
第五位置关系:x=a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0048]
第六位置关系:x=a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0049]
第七位置关系:x>a且y=b;
[0050]
第八位置关系:x<a且y=b。
[0051]
进一步地,在本发明的一个实施例中,所述处理模块进一步用于:
[0052]
步骤s1,如果所述当前卫星节点为所述目的地卫星节点,则接收转发的数据包;
[0053]
步骤s2,如果所述目的地卫星节点属于第一位置关系,且所述节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y),则下一跳节点为(x-1,y);否则,执行步骤s21;
[0054]
步骤s21,如果所述节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);否则,执行步骤s22;
[0055]
步骤s22,如果所述节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);否则丢弃所述数据包;
[0056]
步骤s3,如果所述目的地卫星节点属于第二位置关系,则所有(x-1,y)均替换为(x+1,y),并执行所述目的地卫星节点属于第一位置关系的步骤s2;
[0057]
步骤s4,如果所述目的地卫星节点属于第三位置关系,则所述所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),并执行所述目的地卫星节点属于第一位置关系的步骤s2;
[0058]
步骤s5,如果所述目的地卫星节点属于第四位置关系,则将所有(x-1,y)均替换为(x+1,y),并执行所述目的地卫星节点属于第三位置关系的步骤s4;
[0059]
步骤s6,如果所述目的地卫星节点属于第五位置关系,则如果节点(x,y)去往节点(x,y

1)的链路可用,且所述数据包不是来自节点(x,y

1),则下一跳节点为(x,y

1);否则,执行步骤s61或步骤s62,如果步骤s61和步骤s62均不成立,则执行步骤s63;
[0060]
步骤s61,如果节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y)或者节点(x,y)去往节点(x+1,y)的链路不可用,则下一跳节点为(x-1,y);,
[0061]
步骤s62,如果节点(x,y)去往节点(x+1,y)的链路可用,且数据包不是来自节点(x+1,y)或者节点(x,y)去往节点(x-1,y)的链路不可用,则下一跳节点为(x+1,y);
[0062]
步骤s63,如果节点(x,y)去往节点(x,y

1)的链路可用,则下一跳节点为(x,y

1);否则丢弃该数据包;
[0063]
步骤s7,如果所述目的地卫星节点属于第六位置关系,则将所述所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),并执行所述目的地卫星节点属于第五位置关系的步骤s6;
[0064]
步骤s8,如果所述目的地卫星节点属于第七位置关系,则如果所述节点(x,y)去往节点(x-1,y)的链路可用,则下一跳节点为(x-1,y);否则,执行步骤s81或步骤s82,如果步骤s81和步骤s82均不成立,则执行步骤s83;
[0065]
步骤s81,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0066]
步骤s82,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0067]
步骤s83,否则丢弃该数据包;
[0068]
步骤s9,如果所述目的地卫星节点属于第八位置关系,则将所述所有(x-1,y)均替换为(x+1,y),并执行所述目的地卫星节点属于第七位置关系的步骤s8。
[0069]
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
[0070]
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
[0071]
图1为网状卫星网络拓扑结构示例图,其中,实际中轨道数量和轨道中的卫星数量可以与图1中有所不同;
[0072]
图2为根据本发明实施例的网状卫星网络中的快速重路由方法的流程图;
[0073]
图3为根据本发明实施例的网状卫星网络中卫星节点(x,y)的邻居节点示意图;
[0074]
图4为根据本发明实施例的网状卫星网络中目的节点所在区域划分示意图;
[0075]
图5为根据本发明实施例的网状卫星网络快速重路由过程示例图;
[0076]
图6为根据本发明实施例的网状卫星网络中的快速重路由装置的结构示意图。
具体实施方式
[0077]
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
[0078]
本申请是基于发明人对以下问题的认识和发现做出的:
[0079]
网状卫星网络是中低轨卫星组网常用的拓扑结构,例如walker星座就是典型的网状卫星网络。如图1所示,一个网状卫星网络包含多条轨道,每条轨道中有多颗卫星通过轨道内链路连成环状。相邻轨道之间的彼此邻近的卫星如果运动方向相同,可以建立轨道间链路,从而使卫星网络形成网状结构。通常情况下,第0条轨道与最后一条轨道的卫星运动方向不同,不建立轨道间链路,形成接缝(seam)。由于卫星高速运动和物理条件的限制,卫星在运动到一定区域的时候会关闭轨道间链路,这种现象称为轨道间链路转交。轨道间链路转交导致了动态变化的卫星网络拓扑,同样可能导致通信的中断,因此也需要快速重路由方案来快速高效的找到新的转发路径。
[0080]
下面参照附图描述根据本发明实施例提出的网状卫星网络中的快速重路由方法及装置,首先将参照附图描述根据本发明实施例提出的网状卫星网络中的快速重路由方法。
[0081]
图2是本发明一个实施例的网状卫星网络中的快速重路由方法的流程图。
[0082]
如图2所示,该网状卫星网络中的快速重路由方法包括以下步骤:
[0083]
在步骤s101中,获取当前卫星节点(x,y)和目的地卫星节点(a,b)间的相对位置关系。
[0084]
在本发明的一个实施例中,还包括:获取每个卫星节点所处位置的二元组表示,并得到对应的最多四个邻居节点。
[0085]
可以理解的是,用二元组(x,y)表示一个卫星节点所处的位置,其中x表示轨道编
号,y表示卫星编号。y
max
表示同一个轨道中的卫星数量。由网状卫星网络的结构可知,节点(x,y)最多有四个邻居节点,如图3所示,分别为:
[0086]
a.通过轨道内链路连接的节点(x,y

1),其中,y

1的含义如下:如果y>0则y

1=y-1,如果y=0则y

1=y
max

[0087]
b.通过轨道内链路连接的节点(x,y

1),其中,y

1的含义如下:如果y<y
max
则y

1=y+1,如果y=y
max
则y

1=0;
[0088]
c.通过轨道间链路连接的节点(x-1,y);
[0089]
d.通过轨道间链路连接的节点(x+1,y)。
[0090]
在步骤s102中,根据相对位置关系确定目的地卫星节点的所在区域。
[0091]
具体而言,目的节点所处区域划分具体包括:
[0092]
假设当前节点为(x,y),目的地节点为(a,b),根据节点(x,y)和节点(a,b)的相对位置关系分为以下8种情况。如图4所示,其中,
①-⑧
表示第一至第八位置关系。
[0093]

x>a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
(其中%表示取模运算,下同),即从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0094]

x<a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,即从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0095]

x>a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,即从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0096]

x<a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,即从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0097]

x=a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,即从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0098]

x=a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,即从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0099]

x>a且y=b;
[0100]

x<a且y=b。
[0101]
当前节点在转发一个数据包之前,首先计算目的节点所处的区域,然后依据计算结果采用相应的路由计算方法,即步骤s103。
[0102]
在步骤s103中,根据所在区域采取相应的路由计算策略。
[0103]
可以理解的是,计算路由需要用到目的节点所处的区域(即上面的



),以及与当前节点相连的各条链路是否可用,以及需要转发的数据包来自哪个邻居节点。具体如下:
[0104]
如果当前节点就是目的节点:接收数据包,路由过程结束。
[0105]
如果目的节点属于

:如果节点(x,y)去往节点(x-1,y)的链路可用(即没有发生链路故障也没有发生链路转交,下同),且数据包不是来自节点(x-1,y),则下一跳节点为(x-1,y)。
[0106]
否则,
[0107]
i.如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0108]
ii.否则,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0109]
iii.否则丢弃该数据包。
[0110]
如果目的节点属于

:处理方法为将

中的所有(x-1,y)均替换为(x+1,y),其他步骤与

完全相同。
[0111]
如果目的节点属于

:处理方法为将

中的所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),其他步骤与

完全相同。
[0112]
如果目的节点属于

:处理方法为将

中的所有(x-1,y)均替换为(x+1,y),其他步骤与

完全相同。
[0113]
如果目的节点属于

:如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1),则下一跳节点为(x,y

1)。
[0114]
否则,
[0115]
i.如果节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y)或者节点(x,y)去往节点(x+1,y)的链路不可用,则下一跳节点为(x-1,y);
[0116]
ii.否则,如果节点(x,y)去往节点(x+1,y)的链路可用,且数据包不是来自节点(x+1,y)或者节点(x,y)去往节点(x-1,y)的链路不可用,则下一跳节点为(x+1,y);
[0117]
iii.否则,如果节点(x,y)去往节点(x,y

1)的链路可用,则下一跳节点为(x,y

1);
[0118]
iv.否则丢弃该数据包。
[0119]
上述i和ii的顺序可以互换。
[0120]
如果目的节点属于

:处理方法为将

中的所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),其他步骤与

完全相同。
[0121]
如果目的节点属于

:如果节点(x,y)去往节点(x-1,y)的链路可用,则下一跳节点为(x-1,y);
[0122]
否则,
[0123]
i.如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0124]
ii.如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0125]
iii.否则丢弃该数据包。
[0126]
上述i和ii的顺序可以互换。
[0127]
如果目的节点属于

:处理方法为将

中的所有(x-1,y)均替换为(x+1,y),其他步骤与

完全相同。
[0128]
下面将通过一个具体应用示例对网状卫星网络中的快速重路由方法进行进一步阐述,如图5所示,数据包的起始节点为(4,10),目的节点为(1,1)。数据包经过各个节点时快速重路由的过程如下:
[0129]
起始节点(4,10)产生数据包,计算出目的节点(1,1)属于

,此时去往节点(3,10)的链路可用,且数据包不是来自节点(3,10),所以下一跳节点为(3,10);
[0130]
节点(3,10)接收到来自节点(4,10)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,10)的链路不可用,去往节点(3,11)的链路可用且数据包不是来自节点(3,11),根据

.i可知下一跳节点为(3,11);
[0131]
节点(3,11)接收到来自节点(3,10)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,11)的链路不可用,去往节点(3,0)的链路可用且数据包不是来自节点(3,0),根据

.i可知下一跳节点为(3,0);
[0132]
节点(3,0)接收到来自节点(3,11)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,0)的链路不可用,去往节点(3,1)的链路可用且数据包不是来自节点(3,1),根据

.i可知下一跳节点为(3,1);
[0133]
节点(3,1)接收到来自节点(3,0)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,1)的链路不可用,去往节点(3,2)的链路可用且数据包不是来自节点(3,2),根据

.i可知下一跳节点为(3,2);
[0134]
节点(3,2)接收到来自节点(3,1)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,2)的链路不可用,去往节点(3,1)的链路可用但数据包来自节点(3,1),去往节点(3,3)的链路可用且数据包不是来自节点(3,3),根据

.ii可知下一跳节点为(3,3);
[0135]
节点(3,3)接收到来自节点(3,2)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,3)的链路不可用,去往节点(3,2)的链路可用但数据包来自节点(3,2),去往节点(3,4)的链路可用且数据包不是来自节点(3,4),根据

.ii可知下一跳节点为(3,4);
[0136]
节点(3,4)接收到来自节点(3,3)的数据包,计算出目的节点(1,1)属于

,此时去往节点(2,4)的链路可用且数据包不是来自节点(2,4),所以下一跳节点为(2,4);
[0137]
节点(2,4)接收到来自节点(3,4)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,4)的链路不可用,去往节点(2,3)的链路可用且数据包不是来自节点(2,3),根据

.i可知下一跳节点为(2,3);
[0138]
节点(2,3)接收到来自节点(2,4)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,3)的链路可用且数据包不是来自节点(1,3),所以下一跳节点为(1,3);
[0139]
节点(1,3)接收到来自节点(2,3)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,2)的链路可用且数据包不是来自节点(1,2),所以下一跳节点为(1,2);
[0140]
节点(1,2)接收到来自节点(1,3)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,1)的链路不可用,去往节点(0,2)的链路不可用,去往节点(2,2)的链路不可用,去往节点(1,3)的链路可用,所以下一跳节点为(1,3);
[0141]
节点(1,3)接收到来自节点(1,2)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,2)的链路可用但数据包来自节点(1,2),去往节点(0,3)的链路可用且数据包不是来自节点(0,3),所以下一跳节点为(0,3);
[0142]
节点(0,3)接收到来自节点(1,3)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,3)的链路可用但数据包来自节点(1,3),去往节点(0,2)的链路可用且数据包不是来自节点(0,2),所以下一跳节点为(0,2);
[0143]
节点(0,2)接收到来自节点(0,3)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,2)的链路不可用,去往节点(0,1)的链路可用且数据包不是来自节点(0,1),所以下一跳节点为(0,1);
[0144]
节点(0,1)接收到来自节点(0,2)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,1)的链路不可用,去往节点(0,2)的链路可用但数据包来自节点(0,2),去往节点(0,0)的链路可用且数据包不是来自节点(0,0),所以下一跳节点为(0,0);
[0145]
节点(0,0)接收到来自节点(0,1)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,0)的链路不可用,去往节点(0,1)的链路可用但数据包来自节点(0,1),去往节点(0,11)的链路可用且数据包不是来自节点(0,11),所以下一跳节点为(0,11);
[0146]
节点(0,11)接收到来自节点(0,0)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,11)的链路可用且数据包不是来自节点(1,11),所以下一跳节点为(1,11);
[0147]
节点(1,11)接收到来自节点(0,11)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,0)的链路可用且数据包不是来自节点(1,0),所以下一跳节点为(1,0);
[0148]
节点(1,0)接收到来自节点(1,11)的数据包,计算出目的节点(1,1)属于

,此时去往节点(1,1)的链路可用且数据包不是来自节点(1,1),所以下一跳节点为(1,1);
[0149]
节点(1,1)接收到来自节点(1,0)的数据包,数据包到达目的节点,结束。
[0150]
根据本发明实施例提出的网状卫星网络中的快速重路由方法,在网状卫星网络中能抵抗任意单一轨道内链路故障和多条轨道间链路故障,并能适应轨道间链路转交,从而可以在发生链路故障和轨道间链路转交时通过快速重路由快速高效的找到新的转发路径,有效避免通信的中断。
[0151]
其次参照附图描述根据本发明实施例提出的网状卫星网络中的快速重路由装置。
[0152]
图6是本发明一个实施例的网状卫星网络中的快速重路由装置的结构示意图。
[0153]
如图6所示,该网状卫星网络中的快速重路由装置10包括:获取模块100、确定模块200和处理模块300。
[0154]
其中,获取模块100用于获取当前卫星节点(x,y)和目的地卫星节点(a,b)间的相对位置关系;确定模块200用于根据相对位置关系确定目的地卫星节点的所在区域;处理模块300用于根据所在区域采取相应的路由计算策略。本发明实施例的装置10可以在发生链路故障和轨道间链路转交时通过快速重路由快速高效的找到新的转发路径,有效避免通信的中断。
[0155]
进一步地,在本发明的一个实施例中,获取模块100进一步用于获取每个卫星节点所处位置的二元组表示,并得到对应的最多四个邻居节点。
[0156]
进一步地,在本发明的一个实施例中,相对位置关系包括:
[0157]
第一位置关系:x>a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,其中,%表示取模运算,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0158]
第二位置关系:x<a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,从y出发往卫星运动方向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0159]
第三位置关系:x>a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0160]
第四位置关系:x<a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0161]
第五位置关系:x=a且(b+y
max-y)%y
max
≤(y+y
max-b)%y
max
,从y出发往卫星运动方
向到达b的距离比从y出发往卫星运动相反方向到达b的距离相等或更短;
[0162]
第六位置关系:x=a且(b+y
max-y)%y
max
>(y+y
max-b)%y
max
,从y出发往卫星运动相反方向到达b的距离比从y出发往卫星运动方向到达b的距离更短;
[0163]
第七位置关系:x>a且y=b;
[0164]
第八位置关系:x<a且y=b。
[0165]
进一步地,在本发明的一个实施例中,处理模块300进一步用于:
[0166]
步骤s1,如果当前卫星节点为目的地卫星节点,则接收转发的数据包;
[0167]
步骤s2,如果目的地卫星节点属于第一位置关系,且节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y),则下一跳节点为(x-1,y);否则,执行步骤s21;
[0168]
步骤s21,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);否则,执行步骤s22;
[0169]
步骤s22,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);否则丢弃数据包;
[0170]
步骤s3,如果目的地卫星节点属于第二位置关系,则所有(x-1,y)均替换为(x+1,y),并执行目的地卫星节点属于第一位置关系的步骤s2;
[0171]
步骤s4,如果目的地卫星节点属于第三位置关系,则所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),并执行目的地卫星节点属于第一位置关系的步骤s2;
[0172]
步骤s5,如果目的地卫星节点属于第四位置关系,则将所有(x-1,y)均替换为(x+1,y),并执行目的地卫星节点属于第三位置关系的步骤s4;
[0173]
步骤s6,如果目的地卫星节点属于第五位置关系,则如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1),则下一跳节点为(x,y

1);否则,执行步骤s61或步骤s62,如果步骤s61和步骤s62均不成立,则执行步骤s63;
[0174]
步骤s61,如果节点(x,y)去往节点(x-1,y)的链路可用,且数据包不是来自节点(x-1,y)或者节点(x,y)去往节点(x+1,y)的链路不可用,则下一跳节点为(x-1,y);
[0175]
步骤s62,如果节点(x,y)去往节点(x+1,y)的链路可用,且数据包不是来自节点(x+1,y)或者节点(x,y)去往节点(x-1,y)的链路不可用,则下一跳节点为(x+1,y);
[0176]
步骤s63,如果节点(x,y)去往节点(x,y

1)的链路可用,则下一跳节点为(x,y

1);否则丢弃该数据包;
[0177]
步骤s7,如果目的地卫星节点属于第六位置关系,则将所有(x,y

1)均替换为(x,y

1),同时将所有(x,y

1)均替换为(x,y

1),并执行目的地卫星节点属于第五位置关系的步骤s6;
[0178]
步骤s8,如果目的地卫星节点属于第七位置关系,则如果节点(x,y)去往节点(x-1,y)的链路可用,则下一跳节点为(x-1,y);否则,执行步骤s81或步骤s82,如果步骤s81和步骤s82均不成立,则执行步骤s83;
[0179]
步骤s81,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点
(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0180]
步骤s82,如果节点(x,y)去往节点(x,y

1)的链路可用,且数据包不是来自节点(x,y

1)或者节点(x,y)去往节点(x,y

1)的链路不可用,则下一跳节点为(x,y

1);
[0181]
步骤s83,否则丢弃该数据包;
[0182]
步骤s9,如果目的地卫星节点属于第八位置关系,则将所有(x-1,y)均替换为(x+1,y),并执行目的地卫星节点属于第七位置关系的步骤s8。
[0183]
需要说明的是,前述对网状卫星网络中的快速重路由方法实施例的解释说明也适用于该实施例的网状卫星网络中的快速重路由装置,此处不再赘述。
[0184]
根据本发明实施例提出的网状卫星网络中的快速重路由装置,在网状卫星网络中能抵抗任意单一轨道内链路故障和多条轨道间链路故障,并能适应轨道间链路转交,从而可以在发生链路故障和轨道间链路转交时通过快速重路由快速高效的找到新的转发路径,有效避免通信的中断。
[0185]
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
[0186]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不是必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
[0187]
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1