本发明涉及卫星网络技术领域,特别是涉及一种基于低轨道卫星链路拓扑状态数据的更新方法及装置。
背景技术:
卫星网络在全球通信、导航定位、气象预测、环境与灾难监测、资源探测和军事应用等领域发挥着越来越重要的作用,卫星网络路由协议作为卫星网络通信协议的核心,承担着星间数据传输的重任,决定着星座网络的整体性能。
卫星网络中每颗卫星作为一个路由器,整个卫星网络的空间段作为一个自治系统,现有技术中低轨卫星的卫星网络采用ospf(openshortestpathfirst,开放最短路径优先)路由协议,低轨卫星的轨道高度在700~1500km之间,相对于地面终端而言,低轨卫星处于高速的运动中(运动速度约为7km/s),每颗卫星的可视时间很短,卫星之间的链路状态也处在快速的变化中。
采用ospf路由协议,需要每个卫星维护拓扑状态数据,其中,拓扑状态数据包括所有卫星的链路状态数据,通常情况下,每个卫星的链路状态数据包含该卫星与其周围的几颗卫星之间导通的链路的信息,以及与其他卫星之间断开的链路的信息。当某一个卫星收到要转发的数据信息后,根据拓扑状态数据为该数据信息计算路由路径,并按照计算出的路由路径转发该数据信息。
具体地,每个卫星维护拓扑状态数据的具体过程为:令某一个卫星为目标卫星,该目标卫星向整个卫星网络中的所有其他卫星发送hello包,其他的卫星根据接收到的hello包反馈给目标卫星lack包,目标卫星接收到某个卫星反馈的lack包,则表明目标卫星与该卫星之间的链路导通,其他的链路则默认为断开。目标卫星将所有链路的通断情况存储到拓扑状态数据中,实现对拓扑状态数据的维护。
当目标卫星对拓扑状态数据进行维护后,会将其泛洪到近邻卫星使近邻卫星泛洪至所有其他的卫星,完成全网泛洪的时间为卫星网络的收敛时间。
值得注意的是,在现有的ospf路由协议中,不管目标卫星与其周围的卫星之间的链路状态是导通还是断开,目标卫星都会向其周围的卫星泛洪拓扑状态数据,这就导致了整个卫星网络的收敛时间过长,进而增加了整个卫星网络的延时。
技术实现要素:
本发明实施例的目的在于提供一种基于低轨道卫星链路拓扑状态数据的更新方法及装置,以减小卫星网络的收敛时间,降低整个卫星网络的延时。
为达到上述目的,本发明实施例提供了一种基于低轨道卫星链路拓扑状态数据的更新方法,应用于低轨道卫星网络中的目标卫星,所述方法包括:
根据所述卫星网络中所有卫星的运行轨道信息以及所述目标卫星的位置信息,计算卫星网络中所有卫星的位置信息;
根据所有卫星的位置信息,确定所述目标卫星的近邻卫星,并生成第一本地拓扑状态数据;其中,所述第一本地拓扑状态数据包括所有卫星的链路状态数据,所述目标卫星的链路状态数据包括:所述目标卫星与其近邻卫星之间的链路状态为导通,所述目标卫星与其非近邻卫星之间的链路状态为断开;
分别向各个近邻卫星发送探测数据包,根据是否接收到各个近邻卫星发送的反馈数据包,确定每个近邻卫星与所述目标卫星之间链路的通断状态;所述反馈数据包由各个近邻卫星根据接收到的所述探测数据包生成并发送给所述目标卫星;
如果各个近邻卫星与所述目标卫星之间链路均导通,则不向近邻卫星泛洪第一本地拓扑状态数据;返回分别向各个近邻卫星发送探测数据包的步骤;
如果存在至少一个近邻卫星与所述目标卫星之间链路为断开,则更新所述第一本地拓扑状态数据,并将更新后的第一本地拓扑状态数据泛洪给与所述目标卫星之间链路导通的近邻卫星,使其全网泛洪;返回分别向各个近邻卫星发送探测数据包的步骤。
优选地,所述运行轨道信息包括轨道数量、每个轨道上的卫星数量、轨道高度、相邻轨道卫星错位角、卫星速度和轨道与经线的偏角,所述根据所述卫星网络中所有卫星的运行轨道信息以及所述目标卫星的位置信息,计算卫星网络中所有卫星的位置信息的步骤,包括:
根据所述目标卫星的位置信息、每个轨道上的卫星数量、轨道高度和卫星速度计算与所述目标卫星处于同轨道的卫星的位置信息;
根据所述目标卫星的位置信息、轨道数量、相邻轨道卫星错位角和轨道与经线的偏角计算与所述目标卫星处于异轨道的卫星的位置信息。
优选地,所述根据所有卫星的位置信息,确定所述目标卫星的近邻卫星的步骤,包括:
根据所有卫星的位置信息,查找第一卫星、第二卫星、第三卫星和第四卫星;其中,所述目标卫星位于目标轨道上,所述第一卫星和第二卫星均位于所述目标轨道上,且分别与所述目标卫星近邻;所述第三卫星位于所述目标轨道相邻的第一轨道上,且与所述目标卫星近邻,所述第四卫星位于所述目标轨道相邻的第二轨道上,且与所述目标卫星近邻;
将所述第一卫星和第二卫星确定为所述目标卫星的近邻卫星;
计算所述第三卫星或所述第四卫星所在纬度;
判断所述纬度是否大于纬度门限值;
如果否,将所述第三卫星或所述第四卫星确定为所述目标卫星的近邻卫星;
如果是,将所述第三卫星或所述第四卫星确定为所述目标卫星的非近邻卫星。
优选地,所述根据是否接收到各个近邻卫星发送的反馈数据包,确定每个近邻卫星与所述目标卫星之间链路的通断状态的步骤,包括:
将向目标近邻卫星发送探测数据包的时刻记录为第一时刻;所述目标近邻卫星为所有近邻卫星中任一个;
判断在所述第一时刻到第二时刻之间是否接收到所述目标近邻卫星发送的反馈数据包;所述第二时刻与所述第一时刻的时间差为时间阈值;
如果是,则确定所述目标近邻卫星与所述目标卫星之间链路处于导通状态;
如果否,则确定所述目标近邻卫星与所述目标卫星之间链路处于断开状态。
优选地,所述方法还包括:
接收待转发的数据信息,并获取所述数据信息中包含的预到达卫星的信息;
根据更新后的第一本地拓扑状态数据确定所述目标卫星距离所述预到达卫星的最短路径;所述最短路径中第一个卫星为所述目标卫星,最后一个卫星为所述预到达卫星;
根据所述最短路径生成路由表;
根据所述路由表生成转发表,并根据所述转发表将所述数据信息发送到所述卫星端口,利用所述卫星端口发射所述数据信息。
本发明实施例还提供了一种基于低轨道卫星链路拓扑状态数据的更新装置,应用于低轨道卫星网络中的目标卫星,所述装置包括:
计算模块,用于根据所述卫星网络中所有卫星的运行轨道信息以及所述目标卫星的位置信息,计算卫星网络中所有卫星的位置信息;
第一确定模块,用于根据所有卫星的位置信息,确定所述目标卫星的近邻卫星,并生成第一本地拓扑状态数据;其中,所述第一本地拓扑状态数据包括所有卫星的链路状态数据,所述目标卫星的链路状态数据包括:所述目标卫星与其近邻卫星之间的链路状态为导通,所述目标卫星与其非近邻卫星之间的链路状态为断开;
第二确定模块,用于分别向各个近邻卫星发送探测数据包,根据是否接收到各个近邻卫星发送的反馈数据包,确定每个近邻卫星与所述目标卫星之间链路的通断状态;所述反馈数据包由各个近邻卫星根据接收到的所述探测数据包生成并发送给所述目标卫星;
第一泛洪模块,用于如果各个近邻卫星与所述目标卫星之间链路均导通,则不向近邻卫星泛洪第一本地拓扑状态数据;并触发所述第二确定模块;
第二泛洪模块,用于如果存在至少一个近邻卫星与所述目标卫星之间链路为断开,则更新所述第一本地拓扑状态数据,并将更新后的第一本地拓扑状态数据泛洪给与所述目标卫星之间链路导通的近邻卫星,使其全网泛洪;并触发所述第二确定模块。
优选地,所述运行轨道信息包括轨道数量、每个轨道上的卫星数量、轨道高度、相邻轨道卫星错位角、卫星速度和轨道与经线的偏角,所述计算模块,包括:
第一计算单元,用于根据所述目标卫星的位置信息、每个轨道上的卫星数量、轨道高度和卫星速度计算与所述目标卫星处于同轨道的卫星的位置信息;
第二计算单元,用于根据所述目标卫星的位置信息、轨道数量、相邻轨道卫星错位角和轨道与经线的偏角计算与所述目标卫星处于异轨道的卫星的位置信息。
优选地,所述第一确定模块,包括:
查找单元,用于根据所有卫星的位置信息,查找第一卫星、第二卫星、第三卫星和第四卫星;其中,所述目标卫星位于目标轨道上,所述第一卫星和第二卫星均位于所述目标轨道上,且分别与所述目标卫星近邻;所述第三卫星位于所述目标轨道相邻的第一轨道上,且与所述目标卫星近邻,所述第四卫星位于所述目标轨道相邻的第二轨道上,且与所述目标卫星近邻;
第一近邻卫星确定单元,用于将所述第一卫星和第二卫星确定为所述目标卫星的近邻卫星;
纬度计算单元,用于计算所述第三卫星或所述第四卫星所在纬度;
纬度判断单元,用于判断所述纬度是否大于纬度门限值;
第二近邻卫星确定单元,用于如果所述纬度判断单元的判断结果为否,将所述第三卫星或所述第四卫星确定为所述目标卫星的近邻卫星;
非近邻卫星确定单元,用于如果所述纬度判断单元的判断结果为是,将所述第三卫星或所述第四卫星确定为所述目标卫星的非近邻卫星。
优选地,所述第二确定模块,包括:
记录单元,用于将向目标近邻卫星发送探测数据包的时刻记录为第一时刻;所述目标近邻卫星为所有近邻卫星中任一个;
判断单元,用于判断在所述第一时刻到第二时刻之间是否接收到所述目标近邻卫星发送的反馈数据包;所述第二时刻与所述第一时刻的时间差为时间阈值;
第一确定单元,用于如果所述判断单元的判断结果为是,则确定所述目标近邻卫星与所述目标卫星之间链路处于导通状态;
第二确定单元,用于如果所述判断单元的判断结果为否,则确定所述目标近邻卫星与所述目标卫星之间链路处于断开状态。
优选地,所述装置还包括:
接收模块,用于接收待转发的数据信息,并获取所述数据信息中包含的预到达卫星的信息;
第三确定模块,用于根据更新后的第一本地拓扑状态数据确定所述目标卫星距离所述预到达卫星的最短路径;所述最短路径中第一个卫星为所述目标卫星,最后一个卫星为所述预到达卫星;
生成模块,用于根据所述最短路径生成路由表;
发送模块,用于根据所述路由表生成转发表,并根据所述转发表将所述数据信息发送到所述卫星端口,利用所述卫星端口发射所述数据信息。
本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新方法及装置,目标卫星通过计算各卫星的位置信息,确定目标卫星的近邻卫星,并生成第一本地拓扑状态数据,其中,第一本地拓扑状态数据中将各个卫星与其近邻卫星之间的链路确定为导通,与非近邻卫星间的链路确定为断开;之后,目标卫星通过发送和接收数据包的方式确定每个近邻卫星与目标卫星之间链路的通断状态,如果链路全部导通,则说明第一本地拓扑状态数据中目标卫星周围的链路状态是准确的,目标卫星无需向各近邻卫星泛洪第一本地拓扑状态数据;如果某一个或多个链路断开,则说明第一本地拓扑状态数据中目标卫星周围的链路状态不准确,则目标卫星需要对其进行更新,并将更新后的第一本地拓扑状态数据全网泛洪。
与现有技术中,不管目标卫星周围的链路是否正常都需要向近邻卫星泛洪拓扑状态数据的方法相比,本发明实施例只有在目标卫星周围链路处于断开的时候才向近邻卫星泛洪拓扑状态数据,从整体而言,该方法可以减小卫星网络的收敛时间,从而降低了整个卫星网络的延时。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新方法的流程图;
图2为本发明实施例中目标卫星的近邻卫星确定过程的流程图;
图3为本发明实施例中链路的通断状态确定过程的流程图;
图4为应用本发明实施例获得的卫星链路拓扑状态数据进行数据信息转发的流程图;
图5为本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新装置的结构示意图;
图6为图5中第一确定模块的结构示意图;
图7为图5中第二确定模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为达到上述目的,本发明实施例提供了一种基于低轨道卫星链路拓扑状态数据的更新方法。
图1为本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新方法的流程图,该方法应用于低轨道卫星网络中的目标卫星,目标卫星为卫星网络中任意一颗卫星,所述方法包括:
s110,根据所述卫星网络中所有卫星的运行轨道信息以及所述目标卫星的位置信息,计算卫星网络中所有卫星的位置信息。
具体地,运行轨道信息包括轨道数量m、每个轨道上的卫星数量n、轨道高度h、相邻轨道卫星错位角
为了计算卫星网络中所有卫星的位置信息,可以分别计算与目标卫星处于同轨道的卫星的位置信息,以及与目标卫星处于异轨道的卫星的位置信息,因此,步骤s110可包括:
a1、根据所述目标卫星的位置信息、每个轨道上的卫星数量、轨道高度和卫星速度计算与所述目标卫星处于同轨道的卫星的位置信息。
具体地,目标卫星的位置信息可根据现有的定位方法计算得到。
当卫星运行轨道与经线重合时,卫星运动的规律有如下特点:
对于处于同轨道的卫星,它们所在的经度坐标相同,且都以相同的速度绕着地球匀速的旋转,有如下计算公式
其中,t为围绕地球旋转一圈的周期,re为地球半径。
同时,由于每个轨道上的卫星是均匀分布的,则相邻两个卫星之间的纬度夹角为
根据上述信息可计算得到与目标卫星处于同轨道的其他卫星的位置信息。
a2、根据所述目标卫星的位置信息、轨道数量、相邻轨道卫星错位角和轨道与经线的偏角计算与所述目标卫星处于异轨道的卫星的位置信息
具体地,当卫星运行轨道与经线重合时,卫星运动的规律有如下特点:
对于异轨道的卫星,由于m条轨道均匀分布,所以相邻轨道上的卫星所在经线的经度差为
同时,由于异轨道的轨道高度h相同,各卫星的卫星速度v相同,则异轨道上的运动周期t相同。
再者,相邻轨道卫星错位角为相邻轨道上的卫星错开一定的纬度形成的夹角
根据上述信息可计算得到与目标卫星处于异轨道的其他卫星的位置信息。
值得注意的是,在实际情况下,卫星轨道并非和经线是完全重合的,而是存在一定的偏角γ,在考虑该偏角的情况下,需要对卫星所在的经度进行修正。在本实施例中,提供了一种修正方法:
将卫星在有偏角的轨道面上所成的角定义为
采用的公式:
①经度修正(与纬度和偏角有关):
θj修正=sin-1(tanγ*tanθw),
代码表示:calculatelon=asin(tan(gamma*pi/180)*tan(lat*pi/180))*180/pi
判断条件:卫星的运动方向
取值范围:-90度~90度
②将(θj修正,θw)映射到
代码表示:
phi=acos(cos(coordinates.lat*pi/180.0)*cos(coordinates.lon.calculatelon*pi/180.0))*180/pi
判断条件:θj修正与θw的正负性
取值范围:0~360
③卫星
代码表示:phi=(phi+deltephi*180/pi)%360
④将
代码表示:
coordinates.lat=asin(sin(phi*pi/180.0)*cos(gamma*pi/180.0))*180/pi;
coordinates.lon.calculatelon=atan(tan(phi*pi/180.0)*sin(gamma*pi/180.0))*180/pi;
coordinates.lon.reallon=oldreallon+oldcalculatelon-coordinates.lon.calculatelon;
s120,根据所有卫星的位置信息,确定所述目标卫星的近邻卫星,并生成第一本地拓扑状态数据;其中,所述第一本地拓扑状态数据包括所有卫星的链路状态数据,所述目标卫星的链路状态数据包括:所述目标卫星与其近邻卫星之间的链路状态为导通,所述目标卫星与其非近邻卫星之间的链路状态为断开。
具体地,目标卫星根据计算得到的所有卫星的位置信息,将目标卫星周围的几颗卫星确定为其近邻卫星,其他的卫星确定为目标卫星的非近邻卫星,然后将近邻卫星与目标卫星之间的链路状态确定为导通,非近邻卫星与目标卫星之间的链路状态确定为断开,并将这些链路状态信息进行存储,生成第一本地拓扑状态数据。
值得注意的是,第一本地拓扑状态数据中包含所有卫星的链路状态数据。举例而言,若卫星网络中共有48颗卫星,则目标卫星中存储有48颗卫星的链路状态数据。
为了便于理解目标卫星的近邻卫星的确定过程,下面对该过程进行详细介绍。
图2为本发明实施例中目标卫星的近邻卫星确定过程的流程图,该过程包括:
s210,根据所有卫星的位置信息,查找第一卫星、第二卫星、第三卫星和第四卫星。
具体地,假设目标卫星所在的轨道为目标轨道,第一卫星和第二卫星均位于目标轨道上,且分别与目标卫星近邻,即目标卫星位于第一卫星和第二卫星之间。
第三卫星位于目标轨道相邻的第一轨道上,且与目标卫星近邻,第四卫星位于目标轨道相邻的第二轨道上,且与目标卫星近邻。举例而言,可选取目标轨道的左侧轨道为第一轨道,目标轨道的右侧轨道为第二轨道,则第三卫星位于左侧轨道上,且为该轨道上距离目标卫星最近的卫星;第二卫星位于右侧轨道上,且为该轨道上距离目标卫星最近的卫星。
本实施例中,可通过查找卫星的经度和纬度查找第一卫星、第二卫星、第三卫星和第四卫星,也可以通过计算卫星之间的距离得到第一卫星、第二卫星、第三卫星和第四卫星。
s220,将所述第一卫星和第二卫星确定为所述目标卫星的近邻卫星。
具体地,由于第一卫星、第二卫星和目标卫星均向同一个方向以相同的速度做圆周运动,因此三者之间的相对位置是不变的,且第一卫星和目标卫星、第二位星与目标卫星之间的链路始终是导通的,因此,可直接将二者确定为目标卫星的近邻卫星。
s230,计算所述第三卫星或所述第四卫星所在纬度。
s240,判断所述纬度是否大于纬度门限值;如果否,执行步骤s250,如果是,执行步骤s260。
s250,将所述第三卫星或所述第四卫星确定为所述目标卫星的近邻卫星;
s260,将所述第三卫星或所述第四卫星确定为所述目标卫星的非近邻卫星。
具体地,对于第三卫星和第四卫星而言,也可以直接将二者确定为近邻卫星,即将目标卫星与第三卫星和第四卫星之间的链路状态均确定为导通。
但实际情况中,第三卫星与目标卫星、第四卫星与目标卫星之间的相对位置是时刻发生变化的,在某一时刻第三卫星或第四卫星可能会处于较高的纬度,此时由于目标卫星上的卫星端口的发射角度受到限制,无法与其进行正常的通信,此时该卫星为目标卫星之间的链路是断开的。因此,在确定第三卫星或第四卫星是否为目标卫星的近邻卫星时,可计算该卫星所在的纬度,判断该纬度是否大于纬度门限值。
本实施例中,纬度门限值为预先设定的较高的纬度值(如70度)。当卫星所在纬度不大于纬度门限值时,说明该卫星与目标卫星可以正常通信,则将其确定为目标卫星的近邻卫星;当卫星所在纬度大于纬度门限值时,说明该卫星与目标卫星之间不能正常通信,则将其确定为目标卫星的非近邻卫星。
s130,分别向各个近邻卫星发送探测数据包,根据是否接收到各个近邻卫星发送的反馈数据包,确定每个近邻卫星与所述目标卫星之间链路的通断状态;所述反馈数据包由各个近邻卫星根据接收到的所述探测数据包生成并发送给所述目标卫星。
具体地,在确定目标卫星的近邻卫星时,将目标卫星与各近邻卫星之间的链路确定为导通,但现实情况下,所有的近邻卫星与目标卫星之间的链路并非都是导通的,因此需要进一步验证。本实施例中,可采用“hello协议”验证目标卫星与近邻卫星之间的链路状态。
具体地,目标卫星可实时向近邻卫星发送探测数据包(如“hello包”),当目标近邻卫星接收到的探测数据包后,生成反馈数据包(如“lack包”),并将其反馈给目标卫星,目标卫星根据是否接收到反馈数据包,确定与该近邻卫星之间的链路为导通或断开。
s140,如果各个近邻卫星与所述目标卫星之间链路均导通,则不向近邻卫星泛洪第一本地拓扑状态数据;返回分别向各个近邻卫星发送探测数据包的步骤s130。
具体地,如果目标卫星判断与其各近邻卫星之间的链路都导通,说明根据前述的方法预先得到的第一本地拓扑状态数据中目标卫星的链路状态是正确的,由于卫星网络中其他的卫星存储的拓扑状态数据与第一本地拓扑状态数据是相同的,也就是说所有的卫星都认为目标卫星与其各近邻卫星间的链路是导通的,此时无需向近邻卫星泛洪第一本地拓扑状态数据,然后继续周期性向各近邻卫星发送探测数据包,验证目标卫星与其各近邻卫星间的链路状态是否导通。
s150,如果存在至少一个近邻卫星与所述目标卫星之间链路为断开,则更新所述第一本地拓扑状态数据,并将更新后的第一本地拓扑状态数据泛洪给与所述目标卫星之间链路导通的近邻卫星,使其全网泛洪;返回分别向各个近邻卫星发送探测数据包的步骤s130。
具体地,如果目标卫星判断与某一个或几个近邻卫星之间的链路是断开的,说明根据前述的方法预先得到的第一本地拓扑状态数据中这一条或几条链路的链路状态存储的是错误的,此时目标卫星根据计算得到的链路的链路状态更新第一本地拓扑状态数据,并将更新后的第一本地拓扑状态数据泛洪给与目标卫星之间链路导通的其他近邻卫星,其他近邻卫星接收到更新后的第一本地拓扑状态数据,会对自身携带的第二本地拓扑状态数据进行更新,然后将更新后的第二本地拓扑状态数据泛洪到该近邻卫星的近邻卫星,依此方式实现全网泛洪。值得注意的是,目标卫星的近邻卫星也在周期性验证其周围近邻卫星与其间链路的通断,并更新自身携带的第二本地拓扑状态数据。
本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新方法,目标卫星通过计算各卫星的位置信息,确定目标卫星的近邻卫星,并生成第一本地拓扑状态数据,其中,第一本地拓扑状态数据中将各个卫星与其近邻卫星之间的链路确定为导通,与非近邻卫星间的链路确定为断开;之后,目标卫星通过发送和接收数据包的方式确定每个近邻卫星与目标卫星之间链路的通断状态,如果链路全部导通,则说明第一本地拓扑状态数据中目标卫星周围的链路状态是准确的,目标卫星无需向各近邻卫星泛洪第一本地拓扑状态数据;如果某一个或多个链路断开,则说明第一本地拓扑状态数据中目标卫星周围的链路状态不准确,则目标卫星需要对其进行更新,并将更新后的第一本地拓扑状态数据发给链路导通的近邻卫星。该近邻卫星也和目标卫星一样,先生成自身的第二本地拓扑状态数据,在接收到第一本地拓扑状态数据后,对第二本地拓扑状态数据进行更新,并将更新后的第二本地拓扑状态数据发给该卫星的近邻卫星,依次类推,直至完成整个系统的更新。现有技术的方法由于不管目标卫星周围的链路是否正常都需要向近邻卫星泛洪拓扑状态数据,而本发明实施例中,只有在目标卫星周围存在断开的链路的时候才向近邻卫星泛洪拓扑状态数据,从整体而言,该方法可以减小卫星网络的收敛时间,从而降低了整个卫星网络的延时;同时,本发明实施例还有效的减少了需要泛洪的探测数据包的数量,节省了通信资源。
为了便于理解链路的通断状态的确定过程,下面对该过程进行详细介绍。
图3为本发明实施例中链路的通断状态确定过程的流程图,该过程包括:
s310,将向目标近邻卫星发送探测数据包的时刻记录为第一时刻;所述目标近邻卫星为所有近邻卫星中任一个。
s320,判断在所述第一时刻到第二时刻之间是否接收到所述目标近邻卫星发送的反馈数据包;所述第二时刻与所述第一时刻的时间差为时间阈值;如果是,执行s330;如果否,执行s340。
s330,确定所述目标近邻卫星与所述目标卫星之间链路处于导通状态;
s340,确定所述目标近邻卫星与所述目标卫星之间链路处于断开状态。
本实施例中,目标卫星上安装有多个卫星端口,可调节各卫星端口的角度,以分别对准每个近邻卫星,发送探测数据包。
具体地,目标近邻卫星为目标卫星的所有近邻卫星中的任意一个。时间阈值为预先设定的时间间隔,其可以为相邻两次探测数据包的发送时刻的时间间隔,也可以为多次探测数据包的发送时刻的时间间隔,该时间阈值可根据具体情况自由设定(如1分钟)。
举例而言,假设目标卫星向目标近邻卫星发送第一次探测数据包的时刻为12:00,记录该时刻为第一时刻;然后,目标卫星发送第二次探测数据包的时刻为12:01,记录该时刻为第二时刻。目标卫星判断在该时间段内是否接收到该目标近邻卫星发送的反馈数据包,如果接收到,则确定该目标近邻卫星与目标卫星之间链路处于导通状态;如果没有接收到,则确定目标近邻卫星与目标卫星之间链路处于断开状态。
本实施例中,通过周期性的向近邻卫星发送探测数据包,可快速地捕捉到目标卫星与近邻卫星之间链路的通断情况,当链路断开时,可及时更新第一本地拓扑状态数据库,从而保障了通信效果。
进一步地,目标卫星可根据更新后的第一本地拓扑状态数据,对待转发的数据信息进行转发,图4为应用本发明实施例获得的卫星链路拓扑状态数据进行数据信息转发的流程图,该过程包括:
s410,接收待转发的数据信息,并获取所述数据信息中包含的预到达卫星的信息。
s420,根据更新后的第一本地拓扑状态数据确定所述目标卫星距离所述预到达卫星的最短路径;所述最短路径中第一个卫星为所述目标卫星,最后一个卫星为所述预到达卫星。
具体地,数据信息中包含有该数据信息要转发到的预到达卫星(此为现有技术),目标卫星接收到待转发的数据信息后,获取该数据信息中包含的预到达卫星的信息,然后根据更新后的第一本地拓扑状态数据确定目标卫星距离预到达卫星间的最短路径。本实施例中,可以根据现有的dijkstra算法确定最短路径。
s430,根据所述最短路径生成路由表。
具体地,当目标卫星处于运行状态时,目标卫星上设置的卫星端口会朝向某一颗近邻卫星。因此,可根据目标卫星的运动方向,确定目标卫星上朝向最短路径中的第二个卫星(即目标卫星的下一跳卫星)的卫星端口,由于每个卫星端口都有固定的ip地址,目标卫星将朝向最短路径中第二个卫星的卫星端口的ip地址填写到路由表中,作为下一跳的ip地址。
s440,根据所述路由表生成转发表,并根据所述转发表将所述数据信息发送到所述卫星端口,利用所述卫星端口发射所述数据信息。
在本实施例中,目标卫星接收到待转发的数据信息,并获取该数据信息中包含的预到达卫星的信息,然后根据更新的第一本地拓扑状态数据确定目标卫星到预到达卫星间的最短路径,根据最短路径生成转发表,并根据转发表发送数据信息至卫星端口,利用卫星端口发送该数据信息。
在其他实施例中,目标卫星还可以预先存储到达卫星网络中所有其他预到达卫星的转发表,当接收到待转发信息数据时,直接查找相应的转发表,并将该待转发数据信息发送到相应的卫星端口,利用卫星端口发射待转发数据信息。
本发明实施例还提供了一种基于低轨道卫星链路拓扑状态数据的更新装置,图5为本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新装置的结构示意图,用于执行图1所示的方法,应用于低轨道卫星网络中的目标卫星,所述装置包括:
计算模块510,用于根据所述卫星网络中所有卫星的运行轨道信息以及所述目标卫星的位置信息,计算卫星网络中所有卫星的位置信息;
第一确定模块520,用于根据所有卫星的位置信息,确定所述目标卫星的近邻卫星,并生成第一本地拓扑状态数据;其中,所述第一本地拓扑状态数据包括所有卫星的链路状态数据,所述目标卫星的链路状态数据包括:所述目标卫星与其近邻卫星之间的链路状态为导通,所述目标卫星与其非近邻卫星之间的链路状态为断开;
第二确定模块530,用于分别向各个近邻卫星发送探测数据包,根据是否接收到各个近邻卫星发送的反馈数据包,确定每个近邻卫星与所述目标卫星之间链路的通断状态;所述反馈数据包由各个近邻卫星根据接收到的所述探测数据包生成并发送给所述目标卫星;
第一泛洪模块540,用于如果各个近邻卫星与所述目标卫星之间链路均导通,则不向近邻卫星泛洪第一本地拓扑状态数据;并触发所述第二确定模块530;
第二泛洪模块550,用于如果存在至少一个近邻卫星与所述目标卫星之间链路为断开,则更新所述第一本地拓扑状态数据,并将更新后的第一本地拓扑状态数据泛洪给与所述目标卫星之间链路导通的近邻卫星,使其全网泛洪;并触发所述第二确定模块530。
本发明实施例提供的基于低轨道卫星链路拓扑状态数据的更新装置,目标卫星通过计算各卫星的位置信息,确定目标卫星的近邻卫星,并生成第一本地拓扑状态数据,其中,第一本地拓扑状态数据中将各个卫星与其近邻卫星之间的链路确定为导通,与非近邻卫星间的链路确定为断开;之后,目标卫星通过发送和接收数据包的方式确定每个近邻卫星与目标卫星之间链路的通断状态,如果链路全部导通,则说明第一本地拓扑状态数据中目标卫星周围的链路状态是准确的,目标卫星无需向各近邻卫星泛洪第一本地拓扑状态数据;如果某一个或多个链路断开,则说明第一本地拓扑状态数据中目标卫星周围的链路状态不准确,则目标卫星需要对其进行更新,并将更新后的第一本地拓扑状态数据发给链路导通的近邻卫星。该近邻卫星也和目标卫星一样,先生成自身的第二本地拓扑状态数据,在接收到第一本地拓扑状态数据后,对第二本地拓扑状态数据进行更新,并将更新后的第二本地拓扑状态数据发给该卫星的近邻卫星,依次类推,直至完成整个系统的更新。现有技术的方法由于不管目标卫星周围的链路是否正常都需要向近邻卫星泛洪拓扑状态数据,而本发明实施例中,只有在目标卫星周围存在断开的链路的时候才向近邻卫星泛洪拓扑状态数据,从整体而言,该方法可以减小卫星网络的收敛时间,从而降低了整个卫星网络的延时;同时,本发明实施例还有效的减少了需要泛洪的探测数据包的数量,节省了通信资源。
优选地,所述运行轨道信息包括轨道数量、每个轨道上的卫星数量、轨道高度、相邻轨道卫星错位角、卫星速度和轨道与经线的偏角,所述计算模块510,包括:
第一计算单元,用于根据所述目标卫星的位置信息、每个轨道上的卫星数量、轨道高度和卫星速度计算与所述目标卫星处于同轨道的卫星的位置信息;
第二计算单元,用于根据所述目标卫星的位置信息、轨道数量、相邻轨道卫星错位角和轨道与经线的偏角计算与所述目标卫星处于异轨道的卫星的位置信息。
优选地,图6为图5中第一确定模块的结构示意图,所述第一确定模块520,用于执行图2所示的过程,其包括:
查找单元521,用于根据所有卫星的位置信息,查找第一卫星、第二卫星、第三卫星和第四卫星;其中,所述目标卫星位于目标轨道上,所述第一卫星和第二卫星均位于所述目标轨道上,且分别与所述目标卫星近邻;所述第三卫星位于所述目标轨道相邻的第一轨道上,且与所述目标卫星近邻,所述第四卫星位于所述目标轨道相邻的第二轨道上,且与所述目标卫星近邻;
第一近邻卫星确定单元522,用于将所述第一卫星和第二卫星确定为所述目标卫星的近邻卫星;
纬度计算单元523,用于计算所述第三卫星或所述第四卫星所在纬度;
纬度判断单元524,用于判断所述纬度是否大于纬度门限值;
第二近邻卫星确定单元525,用于如果所述纬度判断单元524的判断结果为否,将所述第三卫星或所述第四卫星确定为所述目标卫星的近邻卫星;
非近邻卫星确定单元526,用于如果所述纬度判断单元524的判断结果为是,将所述第三卫星或所述第四卫星确定为所述目标卫星的非近邻卫星。
优选地,图7为图5中第二确定模块的结构示意图,所述第二确定模块530,用于执行图3所示的过程,其包括:
记录单元531,用于将向目标近邻卫星发送探测数据包的时刻记录为第一时刻;所述目标近邻卫星为所有近邻卫星中任一个;
判断单元532,用于判断在所述第一时刻到第二时刻之间是否接收到所述目标近邻卫星发送的反馈数据包;所述第二时刻与所述第一时刻的时间差为时间阈值;
第一确定单元533,用于如果所述判断单元532的判断结果为是,则确定所述目标近邻卫星与所述目标卫星之间链路处于导通状态;
第二确定单元534,用于如果所述判断单元532的判断结果为否,则确定所述目标近邻卫星与所述目标卫星之间链路处于断开状态。
优选地,所述装置还包括:
接收模块,用于接收待转发的数据信息,并获取所述数据信息中包含的预到达卫星的信息;
第三确定模块,用于根据更新后的第一本地拓扑状态数据确定所述目标卫星距离所述预到达卫星的最短路径;所述最短路径中第一个卫星为所述目标卫星,最后一个卫星为所述预到达卫星;
生成模块,用于根据所述最短路径生成路由表;
发送模块,用于根据所述路由表生成转发表,并根据所述转发表将所述数据信息发送到所述卫星端口,利用所述卫星端口发射所述数据信息。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。