基于源路由的卫星路由负载均衡算法的制作方法

文档序号:21636674发布日期:2020-07-29 02:47阅读:397来源:国知局
基于源路由的卫星路由负载均衡算法的制作方法

本发明涉及通信技术领域,特别涉及低轨卫星通信网络技术领域中的一种基于源路由的卫星路由负载均衡方法。



背景技术:

随着卫星网络的不断发展,卫星网络在全球通信、导航定位、天气预测、环境与灾害监测、资源探测和军事应用等方面得到广泛的应用。其中,低轨(lowearthorbit,leo)卫星网络具有传输距离远、通信容量大、通信线路稳定、抗毁能力强、轨道高度低等诸多优点。因此,leo卫星网络目前成为卫星网络的研究热点。

卫星网络路由技术作为卫星网络通信协议的核心,承担着星间链路数据传输的重任,决定着卫星网络的整体性能。因此,卫星网络路由技术的研究有着重要意义。leo卫星具有移动速度块和拓扑周期性变化等特点,同时,由于卫星的存储能力、数据处理能力等有限,传统的网络路由协议无法直接应用于卫星网络。并且在实际应用中,还存在全球区域用户分布不均匀,北半球产生流量较大,南半球以及南北极需求较少,网络负载不均衡等相关问题。因此,业界亟需一种适合于leo卫星网络的负载均衡路由方法,以解决当前技术下卫星网络负载不均衡的难题,提升卫星网络的通信性能。



技术实现要素:

有鉴于此,本发明的目的在于提供一种基于源路由的卫星路由负载均衡算法,以解决卫星网络现存的问题。

为达到上述目的,本发明提供如下技术方案:

一种基于源路由的卫星路由负载均衡方法,其特征在于,包括以下步骤:源节点卫星获取网络拓扑信息,其中,所述网络拓扑信息中包括各星间链路的带宽占用率;在获取的网络拓扑信息中限定从源节点卫星到目的节点卫星的最小路径搜索范围,并根据所述星间链路带宽占用率在所述限定的最小路径搜索范围内拓扑剪枝;采用dijkstra算法在所述拓扑剪枝后的路径搜索范围内寻找最短路径;根据所述寻找到的最短路径,编码一方向序列,并将其封装在数据包头部中进行发送。

优选地,所述拓扑剪枝包括将星间链路带宽占用率超过预定义阈值的链路的权值置为0。

优选地,若所述采用dijkstra算法寻找最短路径失败,则扩大所述限定的路径搜索范围,在扩大后的路径搜索范围内再次拓扑剪枝并再次采用dijkstra算法寻找最短路径;若在所述扩大后的路径搜索范围内寻找最短路径失败,则解除路径搜索范围限定,在全网范围内拓扑剪枝并采用dijkstra算法寻找最短路径。

优选地,采用dijkstra算法寻找最短路径包括为拓扑剪枝后的每段链路进行权重赋值,具体为:

ω1+ω2+ω3=1

其中,weight表示任一段链路的权值,表示该段链路传输时延因子,表示该段链路传播时延因子,表示该段链路存活时间因子,mg表示极地修正因子,mp表示功率修正因子,表示人口修正因子,ω1、ω2、ω3分别是传输时延因子、传播时延因子和节点存活时间因子的优化系数。

优选地,所述功率修正因子表示为:

其中,

表示卫星当前坐标位置(i,j)对应地面区域的相对时间,为卫星当前坐标位置(i,j)对应的地面区域的日出时间,为卫星当前坐标位置(i,j)对应的地面区域的日落时间,gmt表示格林威治时间,dnow表示当前日期序列,logij表示卫星当前坐标位置(i,j)对应的地球经度,latij表示卫星当前坐标位置(i,j)对应的地球纬度,βp表示设定的修正因子。

优选地,所述极地修正因子mg表示为:

其中,latij表示卫星当前坐标位置(i,j)对应的地球纬度,βg表示设定的修正因子。

优选地,所述是经归一化处理后的因子,具体为:

其中,qt表示该段链路实际传输时延,表示全网链路的传输时延的最大值,表示全网链路的传输时延的最小值;

其中,pt表示链路实际传播时延,表示全网链路传播时延的最大值,表示全网链路传播时延的最小值,一般为0,r表示地球半径,h表示卫星轨道高度,n表示卫星轨道平面数,c为光速,为相邻轨道卫星之间的相位差;

其中,为链路存活时间,表示该段链路关联节点的存活时间归一化值,tnl表示节点存活时间,表示全网的节点最大存活时间,latpolar表示北极极地纬度,ω表示卫星角速度,φ表示卫星轨道倾角;

以及,

其中,mm表示区域互联网使用量统计数据,表示全球区域互联网使用量统计数据中的最大值,为全球区域互联网使用量统计数据中的最小值;

优选地,编码一方向序列包括以任一节点下一跳发送数据相对于上一跳接收数据的相对发送方向进行编码。

本公开中的方法利用限定搜索范围的方法,结合拓扑剪枝和dijkstra算法寻找最短路径,并以方向编码序列指示节点进行数据转发,圆满地解决了当前卫星网络路由负载不均衡的技术问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

为了使本发明的目的、技术方案和有益效果更加清楚,本发明提供如下附图进行说明:

图1为本发明使用的极轨道卫星网络拓扑结构图;

图2为本发明基于源路由的卫星路由负载均衡方法流程图;

图3为本发明中搜索范围限定示例;

图4为本发明中拓扑剪枝示例;

图5为本发明中搜索范围扩大示例;

图6为本发明中人口修正因子分布图;

图7a为本发明中卫星端口示意图;

图7b为本发明中方向序列编码原理示意图;

图8为本发明中数据转发示意图。

具体实施方式

下面结合说明书附图对本发明进行进一步的说明。

本发明是借助极轨道卫星(polarorbitsatellite,pos)星座进行路由转发所做的示例描述,其中,pos星座采用若干高度相同,倾角一致的轨道面,每个轨道平面的卫星数目相同,卫星等间隔分布,且南北极具有交汇,导致高纬度地区卫星较密集,低纬度地区卫星较稀疏。leo网络的每颗卫星一般有四条链路,两条轨道间链路和两条轨道内链路,当卫星进入极地区域后,由于多种原因,轨道间链路会断开,在卫星远离极地区域后,轨道间链路重新建立。并且在卫星的第一个轨道平面和最后一个轨道平面的相邻轨道上会出现卫星运动方向相反的情况,这两个轨道之间被夹的部分被称为反向缝,此时由于卫星天线相对运动太快,很难维持长时间的轨道间链路,所以在本发明中,不考虑跨缝连接。综上,本发明将leo卫星网络拓扑近似抽象为二维网格拓扑,拓扑如图1所示。在图1中,根据地球经纬度模式示出了leo网络的拓扑图,拓扑图的顶部表示北极区,底部表示南极区。垂直线代表经度轨道面i,水平线代表纬度轨道面j,垂直线与水平线的交叉点为卫星所在的坐标(i,j)。对于任一确定的经度轨道面i,在二维水平正向上,依次为i+1,i+2,…的轨道面,而水平负向上,依次为i-1,i-2,…的轨道面。在同一经度轨道面i内,不同卫星之间的链路被称为轨道内链路,而在不同经度轨道面如第i轨道面和第i+1轨道面内,不同卫星之间的链路被称为轨道间链路。

当卫星网络拓扑发生改变时,例如卫星进入极地区域,由于极地地区的空间会逐渐缩小,有限空间内能够同时容纳的卫星数目急剧减少,会导致轨道间的卫星链路断开。而在卫星逐渐远离极地区域时,由于相邻经度轨道面的卫星又重新出现,星间链路又会重建;以及当卫星网络某节点的拥塞程度超过某个阈值时,或者链路的权重发生改变时,整个网络拓扑都会动态变化,因此,任何一个链路发生改变的卫星节点,都需要采用泛洪的方式进行拓扑更新,从而为后续的网络均衡算法提供基础。

根据本发明的优选实施例,描述一种基于源路由的卫星路由负载均衡方法,参考图2。

当坐标为(i,j)的卫星节点轨道间链路断开与重建、链路权重发生改变或者节点发生拥塞时,该节点向周围节点泛洪本节点的相关信息。泛洪的信息可以包括当前节点的任一链路带宽使用信息、邻接节点信息、排队时延和当前节点的经纬度(lonij,latij)等内容或部分内容。使得每个节点获得网络全局拓扑,包括邻接节点以及每颗卫星的全部或部分相关信息。

当坐标为(i,j)的卫星节点作为源节点src想要传输数据至目的节点des时,通常会寻找一条到达目的节点的最短路径。在寻找最短路径的过程中,首先需要将搜索范围限定在包含目的节点des和源节点src的最小范围内,这样可以极大地减少算法复杂度。根据本发明的优选实施例,最小搜索范围可以限定在如图3所示的矩形范围内,图中src表示源节点,des表示目的节点。在该范围内,从src到des的路径有多条。针对每条路径的实际情况,源节点(i,j)根据收集到的整个网络的拓扑信息,计算每条路径的权重。权重值越低代表选择该条路径的概率越低,权重值越高,选择该路径的概率越高。影响权重的因素有多种,比如带宽占用率、拥塞率、邻节点卫星处理能力、邻节点卫星状态、功率因子、覆盖人口、时延、卫星位置等。

参考图4,示出了本发明所采用的拓扑剪枝原理。在从源节点src到目的节点des所限定的最小搜索范围内,共计有12颗卫星,17段链路。图上的每一段链路,均有相应的带宽占用率boccupy信息包含在拓扑信息中。对于拓扑剪枝,可以根据网络情况,预定义一带宽占用率阈值bmax,当boccupy≥bmax时,直接将该段链路的权值weight置为0,即

其中,weight为某条链路的权值,boccupy为链路带宽占用率,bmax为一个常数,通常取0.8。对于满足剪枝条件的链路,还可以直接将包含该段链路的路径从列表中删除或类似的处理,使得后续操作不在这些链路上使用。

经过前述拓扑剪枝处理过后的拓扑采用dijkstra算法寻找最短路径。若找到一最短路径,则源节点经由该最短路径发送数据至目的节点。若未找到最短路径,则需要将前述限定的最小搜索范围进行适当放大,比如将图3中第一次限定的搜索范围扩大至图5所示的经适当放大的搜索范围。放大的方法不唯一,此处仅作一参考,适当放大的次数也并不限定,但为提升网络效率,本发明采用一次适当放大的方法进行描述。

在扩大的搜索范围基础上,重新经过前述的拓扑剪枝处理,并再次采用dijkstra算法寻找最短路径。若找到一最短路径,则源节点经由该最短路径发送数据至目的节点。若未找到最短路径,则源节点将取消限定的搜索范围,直接在全网拓扑上进行剪枝处理,仍采用dijkstra算法寻找最短路径。若找到一最短路径,则源节点经由该最短路径发送数据至目的节点。若仍未找到最短路径,则说明从该源节点到目的节点的传输路径在当前不可用,数据发送失败。

在寻找最短路径时,可以对每条链路进行权值赋值,每条链路的权值要考虑功率修正因子mp、人口修正因子mm、传播时延因子pt、传输时延因子qt、极地修正因子mg以及链路存活时间因子tll等参数。其中,功率修正因子mp是针对太阳光辐射范围建模,主要考虑低轨道卫星的轨道高度,可以近似地将leo卫星星座平分为向阳面卫星与背阴面卫星,有:

其中,

是卫星当前坐标位置(i,j)对应区域的相对时间,gmt是格林威治时间,lonij表示卫星当前经度,在本发明中,经度和纬度采用角度制,东经、北纬为正,西经、南纬为负。为卫星(i,j)当前对应的地面区域的日出时间,23.5为地球北回归线对应的纬度值,dnow表示当前的日期序列,即今年的第几天,logij表示卫星经度,latij表示卫星纬度。为卫星(i,j)当前对应的地面区域的日落时间,各参数与前述公式参数意义相同。由此,卫星便可以通过其他卫星传来的经纬度结合当前时间计算出其他卫星当前是否受到太阳照射。

对于向阳面卫星,在工作时主要利用太阳能发电,不用进行功率修正,因此将功率修正因子置为1。而背阴面卫星不受太阳光的照射,依靠蓄电池发电,为降低卫星蓄电池的放电深度,延长卫星的寿命,设定功率修正因子βp(βp<1),降低背阴面卫星的负载,βp可以根据实际情况设置。

人口修正因子mm是对全球人口密度进行建模,将全世界人口的数据产生量根据卫星星座分布,统计每颗卫星节点所对应的地面区域流量产生情况,对每颗卫星所要处理的负载进行预测。如图6所示,本发明优选实施例对当前统计的每个区域的互联网使用数据进行求解后,再采用max-min方法对数据归一化,然后取倒数将结果映射到0.8到1的范围内,得到人口修正因子分布情况。如图6中所示,位于北半球人口稠密地区的人口修正因子相比南半球人口稀少地区的人口修正因子小,意味着通常情况下,位于南半球空域的卫星负载相对较低。

所述max-min归一化方法具体为,假设将全球划分为如图6所示的72个区域,统计得到任一区域的数据为mm,其中,表示全球72个区域中互联网使用量中最大的值,为全球互联网使用量中最小的值,此时为原始数据,然后将数据带入下述公式:

即将统计得到的数据进行归一化,并映射到0.8-1的范围内。由于在不同的地区互联网使用数据差异巨大,对于海洋上空的卫星得到的mm近似为0,这样显然是不合理的,故将归一化的数据映射到0.8到1的范围内去,减少人口修正因子导致的权值选择的巨大波动。

pt表示传播时延因子,对pt的归一化方法如下:

其中,

表示归一化过后的传播时延因子,表示最大的传输时延,近似为一颗卫星处于升交点处与相邻轨道面之间卫星的传播时延,表示全网链路传播时延的最小值,一般为0。r为地球半径,h为卫星轨道高度,n表示卫星轨道平面数,c为光速,为相邻轨道卫星之间的相位差。

qt表示传输时延,对qt的归一化如下:

为归一化后的传输时延因子,为当前节点收集到的所有链路的传输时延的最大值,为当前节点收集到的所有链路的传输时延的最小值。

极地修正因子,针对卫星网络进入高纬度地区,即-70°<latij<70°,轨道间链路会断开,因此提出极地修正因子mg:

其中,latij表示卫星的纬度,βg是一个小于1的常数,可以人为设置。并且为了减少重路由,当卫星从低纬度地区进入南北纬60°以外范围时便进行权重修正,以减少高纬度卫星的流量,降低链路中断风险。

链路存活时间因子表示该链路的归一化后的存活时间,当该段链路为轨道内链路的时候,由于卫星进入极地时,也不会断开,故将其置为1。当该段链路为轨道间链路时,便取该段链路关联节点存活时间的最小值。

其中表示该段链路关联的两个节点存活时间的归一化值。并且节点存活时间计算如下:

其中,latpolar表示北极极地纬度,latij表示卫星当前纬度,ω表示卫星角速度,φ表示卫星轨道倾角。

将节点存活时间归一化如下:

其中,为所有节点的最大存活时间,即刚好驶出极圈的卫星节点的节点存活时间,latpolar表示北极极地纬度,ω表示卫星角速度,φ表示卫星轨道倾角。

最终,未被剪枝的各链路权重值可以做类似如下的计算:

其中mp、mg、等参数即前述各因子,ω1,ω2,ω3分别为因子对应的权重,并且ω1+ω2+ω3=1。所有链路权值相加,权值和最大的路径即为所求最短路径。

在本发明中,传输时延依然是考虑的首要因素,故在权重分配时,传输时延的权值ω1应该是最大的。并且在选择最短路径时,应尽量选择传输时延低的节点,避免传输时延高的节点,故ω1关于传输时延改变的灵敏度应很高,设计以下函数来确定传输时延的权重:

其中,kq为传输时延灵敏度,为人为设置的一个常数,kq越大,ω1关于传输时延的变化越快,相反kq越小,ω1关于传输时延的变化越慢,从而当传输时延越低时,越大时,选中该节点的概率越高。并且,ω1的范围为0到0.8,当节点相对空闲时,趋近于1,此时ω1趋近于0.8,表示该节点的权重几乎都由传输时延决定。

由于传播时延相对于其因子来说对权重影响相对较小,故将传播时延的权值ω2设为较小的常数,一般取为0.1。

节点存活时间的权重为:

ω3=1-(ω1+ω2)

当节点的传输时延相对很大时,此时ω1趋近于0.8权重基本上由传输时延决定。当节点的传输时延相对很小时,ω1趋近于0,此时权重基本上由节点存活时间决定。

如此,可计算出从源节点到目的节点最小搜索范围内各节点间权重最大的各条链路组成的路径,即为所求最短路径。

在采用dijkstra算法找到最短路径节点过后,源节点将该最短路径节点序列加入路由表,随后将节点序列转化为由0、1组成的方向序列,并由源节点将该方向序列封装在数据包首部,告知每个节点其数据转发方向。方向序列的表示方法不唯一,在本发明中,可以采用以0表示下一跳的转发数据方向相对于上一跳的数据来源方向是“直走”,类似的,可以用10表示相对方向“左拐”,11表示相对方向“右拐”。这种表达方式比使用ip地址等类似寻址方法简单方便。

参考图7a,假定任一卫星节点具有二维抽象图中上、下、左、右四个相邻卫星,故假定卫星一般具有四个抽象端口,分别对应向四个相邻卫星收发的链路,在图中以数字1,2,3,4表示。如图7a中,假定根据最短路径规划,源节点考虑某一节点卫星需要从该卫星的端口4自上一跳卫星接收数据,并要通过端口1发送至下一跳,以数据流向的二维平面抽象图来看,下一跳数据的流向相对于上一跳数据的流向,在该卫星节点处进行了“左拐”,如图7b中的数据流701。源节点依次将最短路径中每个节点所需转发操作相对于该节点接收数据方向的相对方向编码告知该路径中的每一个节点,每个节点在读取属于自身的方向序列后,将该方向序列关于本节点的信息擦除,或者标记,或者出栈,使得下一跳节点仍然只需要读取一定位数的信息即可。比如,节点读取方向序列“011010”,若该节点是自源节点接收数据,则读取第一位数字“0”。0表示“直走”,则该节点需要将数据在相对于数据来的方向继续发送,并将读取的比特位擦除,或者出栈等操作,避免其他节点重复读取;若该节点是从其他中间节点接收数据,比如读取到“1”,则表示还需读取一位,获得第二个“1”。已知编码“11”表示相对接收数据的右拐,则该节点需要将数据从相对数据来的方向右边方向的端口发出。每个节点根据预定义好的编码与当前端口方向对应,即可完成数据转发。此处需要注意,对于源节点而言,由于没有上一跳数据来源,故无法对从源节点到下一跳卫星节点的方向进行相对编码。

在本发明中提供两种方案。其一,假定源节点的数据是接收自某一方向上的端口,以该方向作为后续编码的参考依据。比如,假定所有源节点(i,j)的原始数据均接收自二维抽象平面图中左边的节点(i-1,j),则参考图8中的源节点src,在src节点向下一跳发送数据时,参考该假定的数据方向为“直走”,于是该段链路的方向编码为0。其二,考虑到源节点已经计算得出最短路径信息,故源节点处是知晓其下一跳数据的相对位置的。为了方便后续作为相对方向编码的参考,默认将源节点到下一跳节点的数据传输方向序列置0。即是说,无论源节点从何端口向下一跳节点发送数据,在数据包首部的序列编码第一位都是0,因为源节点知道采用哪个端口发送,无需被告知相对方向。下面继续结合图8进行详细说明。

图8中,有源节点src和目的节点des,以及已经计算出的最短路径和路径中的各个节点。对于图8示中的源节点src而言,无论使用前述的方案一或者方案二,发送数据的第一跳恰好都是方向编码为0。但如果采用方案一,定义的数据来源不是(i-1,j),则第一跳的方向编码则可能会改变。结合图7a可知,若src的下一跳节点从端口4接收来自src的数据后,需要从端口1发送该数据至再下一跳节点,相对来自src的数据,需要做出“左拐”的处理,于是该段序列应当是表示相对上一跳数据“左拐”的10。依次类推,在再下一跳节点处,从端口3接收数据,需要从端口2发送数据,则相对上一跳数据而言,需要作出“右拐”的处理,于是序列编码是“右拐”的11。后续节点的链路序列均按照此方法一一编码,由源节点将其封装。每个节点依序读取各自的方向序列,在对应的端口或方向上发送数据,直到到达目的节点。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

以上所举实施例,对本发明的目的、技术方案和优点进行了进一步的详细说明,所应理解的是,以上所举实施例仅为本发明的优选实施方式而已,并不用以限制本发明,凡在本发明的精神和原则之内对本发明所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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