面向LEO卫星网络的分布式节点自适应路由算法技术领域
本发明属于卫星网络路由技术领域,具体涉及一种根据星间链路状态、网络节点
的负载情况,面向LEO卫星网络的分布式节点自适应路由算法,每个卫星节点独立负责转发
队列中的数据报文,通过在数据报中增加和传递额外的网络状态信息,实现单独节点对于
不同路由方向上网络状态的感知与预测,进而指导数据报出向链路的选择,实现网络负载
均衡、性能优化的自适应多路径路由算法。
背景技术
以Intelsat-1实用商业通信卫星为开端,在经历了近半个世纪的发展后,通信卫
星已经成为目前在轨数量第一的太空航天器,各类通信卫星作为空间通信基础设施,广泛
应用于军事、经济与社会发展的方方面面。单个卫星受到轨道的约束和载荷能力的限制,在
通信范围、探测能力、运行时间、系统稳定性上,都无法突破时空束缚进行全球、全方位、全
时服务。随着航天技术的成熟与应用需求的发展,各类太空卫星分布在不同的轨道面上,以
星座的形式相互配合,进行功能协作和数据共享,形成全新的全球通信模式。在现代信息技
术、网络通信技术、控制技术的支撑下,不同轨道、种类、功能的卫星通过建立星间/星地数
据链路和网络连接,实现数据传递中继、信息互联互通,形成一个可以满足“全球、全向、全
时”需求的智能化综合网络,即天地一体化信息网络。在这样一个网络中,每颗卫星可以被
抽象为独立的具有数据收发和中继能力的网络节点,相邻节点间建立通信链路,数据以数
据报或消息的形式从发送节点沿着一定的路径向前传送,直至到达目标接收节点,即卫星
网络路由。卫星网络路由技术的研究,对于促进空间信息技术的发展,优化空间信息资源的
利用,具有重要的意义。
在传统的TCP/IP网络体系中,路由是网络层的主要功能之一,而路由算法就是在
网络中确定数据传递路径的决策机制。基于TCP/IP的地面互联网采用层级式的路由协议,
通过选择不同的内部网关协议(例如RIP、OSPF)和外部网关协议(例如BGP)实现网络区域中
所有节点的数据传输协作。然而,卫星网络拓扑的动态性和非对称性导致传统的TCP/IP协
议无法在卫星网络上应用并取得令人满意的性能。另一方面,卫星网络的动态拓扑和无线
通信链路特性,使得已经得到充分研究的无线移动自组织网络MANET(Mobile Ad-hoc
Network)成为合适的卫星网络路由借鉴,众多研究者以OLSR、AODV等Mesh路由协议为参考,
针对卫星网络的特点,提出了各种多路径、动态、负载均衡的路由算法。然而与Mesh中移动
节点的全向无线通信能力不同的是,卫星间的数据链路不只决定于通信范围,更依赖于节
点间的相互运动和角度。星间链路是基于定向波束的固定的点对点的无线链路。剧烈变化
的星间通信延迟,也是那些依赖于额外路由发现、维护、数据验证的Mesh路由协议在星上运
行所面临的难以克服的困难。
卫星路由策略目前并没有一个具有普遍适应性的标准化协议体系或技术框架。现
有的各类解决方案适应性不强,未充分考虑网络应用场景和流量分布不平衡的问题,对于
卫星系统的运算性能、存储能力、发射接收能力要求苛刻,对于卫星节点可靠性、网络抗毁
性进行了过于过度简化忽略或乐观的场景假设。路由问题是以卫星为骨干节点的空间信息
网络中的基本问题,对提高网络数据传输性能、服务质量、系统可靠性具有重要的意义。
发明内容
本发明的目的在于提供一种设计合理、网络性能指数优且能够显著提高网络负载
均衡程度的面向LEO卫星网络的分布式节点自适应路由算法。
实现本发明目的的技术方案为:一种面向LEO卫星网络的分布式节点自适应路由
算法,包括以下步骤:
步骤1:构造一个类铱星星座的网格状LEO卫星通信系统;
步骤2:根据沿经纬线方向的星间链路设计,利用卫星星座的网状拓扑结构,每个
卫星节点独立负责转发队列中的数据报文;
步骤3:通过在数据报中增加和传递额外的网络状态信息,实现卫星节点对于不同
路由方向上网络状态的感知与预测,进而指导数据报出向链路的选择。
所述步骤1构造一个类铱星星座的网格状LEO卫星通信系统的方法为:
(1)将轨道高度设定为680公里,轨道倾角为86°,每颗卫星上有四条星间链路并与
相邻四颗卫星相连接,相邻四颗卫星包含两条同轨星间链路和两条轨间星间链路。
(2)同轨卫星之间的相对位置和角度基本保持不变,星间链路是可以稳定建立并
长久保持的;不同轨道平面上的卫星由于在轨运动,相对角度、速度、距离都在时刻变化,因
此星间链路需要特别的检测和维护过程,尤其是极轨道卫星运行到高纬度地区时,轨间星
间链路会临时中断;当相邻两个轨道的卫星运行方向相反时,会形成轨间缝隙(seam),建立
并维护跨缝链路的系统开销极其昂贵,而跨缝链路对于网络性能影响较小,因此本发明中
不考虑跨缝链路。
在构建类铱星星座的网格状LEO卫星通信系统过程中,满足以下说明条件:
(1)卫星节点有能力与相邻的同轨或异轨节点间建立可靠的数字链路,或者能够
感知已经存在的链路的通断状态;每个卫星节点具有基本的数据处理、队列缓存能力;每个
卫星节点知道星座中自己所处轨道内的节点个数、轨道面数量、运行参数。
(2)每条星间链路的数据传输能力必须是双向的,虽然其传输速率可以是非对称
的。也就是说,两个卫星节点间的链路一旦建立起来后,数据可以从任何一个节点发送到对
应节点上。星间链路的连通持续时间必须远远大于数据在该链路的传输延迟时间。
(3)卫星节点和星间链路可以失效。一个失效的星间链路将无法实现两端卫星节
点间的数据传输,一个失效的卫星节点将同时失效所有包含该节点的星间链路。
(4)数据在卫星网络中以报文(datagram)的形式进行传递。每个数据报具有固定
的大小和结构,其内容由数据的发送者和接收者通过协议的方式进行规定。网络中的转发
节点可以对数据报文进行重新打包,通过在报文封包头中添加和解析额外的信息
(datagram piggyback info),进行路由辅助信息的更新与传递。数据报中具有明确的目标
节点及其所处轨道面信息。数据报的传输是类似于UDP datagram的无连接、非可靠的传输
过程,数据的完整性、及时性、投递确认、流量控制依赖于收发双方应用层的实现。
所述步骤2每个卫星节点独立负责转发队列中的数据报文的方法为:
(1)如果数据报的目标节点为当前节点,则结束转发并接受该数据报。
(2)如果数据报的目的轨道面为当前轨道面,则转发的下一跳为轨道内相邻节点。
(3)如果数据报的目标轨道面不同于当前轨道面,则转发的下一跳可以是轨道内
或轨道间的相邻节点。
所述步骤3的具体处理方法为:
每个卫星节点Si对于相邻卫星的每一条可能的星间链路进行数据报流量统计,维
护两个统计量分别记录从该链路流入和流出的累计数据报个数,其中j∈{left,
right,up,down}。统计量在相应链路收发新的数据报时线性增加如下:
这里N为数据报的个数,c作为增长系数的非负常量,与数据报的类型、大小、上层
协议有关。由于L是随时间而累计增加的,每个单位时间内需要对过往流量进行指数衰减
(aging),衰减速率aging_ratio为一个小于1的正数,正相关于卫星网络的规模以及端到端
的传输延迟。
每个数据报P可以携带一些额外的路由辅助信息(piggyback),该信息由数据报生
成卫星节点进行插入,转发节点负责读取和更新,接收节点负责读取和删除。其中一项信息
为该数据报在当前轨道面上经过的所有卫星节点的累计负载,或者是当前轨道面
中数据报流量的预期负载。假设卫星Si为当前负责处理数据报P的节点,它选择了链路j作
为P的转发出口链路,计算为
这里的为节点i上的流量负载,计算为
hopaging为流量沿着轨道内传输,随着跳数的增加的衰减速度。在一个没有环路的
卫星轨道内路由路径中,如果每个轨道内的卫星个数为M,则应该选择合适的衰减速率以使
得
如果卫星节点Si的链路j所连接的另一端节点为卫星Sk,则在Sk收到数据报P后,修
改Sk对应的链路流入统计为
这里可以将理解为数据报P在离开Si到达下一跳卫星节点时所经过的所
有同轨卫星节点上的流量积累,也就是下一跳卫星节点在P的进入方向上对于自己所处轨
道面上网络流量的预期。如果下一跳节点与当前卫星Si处于不同的轨道平面上,则
表示对于在P进入前所在轨道的流量负载预期。
最终的效果为,当数据报P到达当前卫星节点Si后,该节点需要对数据报的转发方
向进行决策,并选择相应的星间链路端口,将P转发出去。并且遵循步骤2中描述的转发规
则,如果当前卫星节点对于数据报P的转发有一个以上的星间链路选择时,通过比较不同链
路间的Lin+Lout值作为当前负载状态,选择方向上负载较小的链路进行转发。
本发明与现有技术相比,其显著优点为:
(1)路由系统的分布式:路由决策的制定在网络的各个卫星节点中分布完成,无需
路由信息甚至摒弃了路由算法的中心性,路由系统中的节点功能扁平化、分布式并行化,避
免了节点间主动的路由发现、协同、维护工作,真正实现整个系统及其节点的“功能独立、路
由分布、数据连通”。
(2)卫星节点的自治性:每颗卫星对当前承载的数据报传输任务负责,独立计算路
由路径,动态适应网络状态变化,实现卫星节点的路由功能封闭性、自治性。
(3)路由策略的自适应性:根据应用场景、不同服务需求甚至不同卫星节点的服务
侧重点的差异,通过感知网络状态和选择不同的网络性能度量指标,实现设计的路由策略
的动态适应能力和全局性能收敛。
(4)网络结构的可伸缩性:提出的卫星网络系统模型,可以在卫星节点加入网络、
断开连接、功能恶化的时候,仍然可以引导整个网络路由功能的收敛和动态稳定,提高系统
的网络抗毁性、路由鲁棒性、服务可靠性。
附图说明
图1是卫星星座网络拓扑结构示意图。
图2是卫星节点上数据报转发的决策过程。
图3是卫星网络中的星间链路示例。
图4是星间数据流的路由路径长度。
图5是数据流量负载在网络节点中的分布情况。
实施方法
以下结合附图对本发明做进一步详述:
一种面向LEO卫星网络的分布式节点自适应路由算法,包括以下步骤:
步骤1:构造一个类铱星星座的网格状LEO卫星通信系统。
轨道高度设定为680公里,轨道倾角为86°。同一轨道内相邻卫星之间可以构成轨
内链路,相邻轨道间的卫星构成轨间链路。将整个卫星网络的拓扑结构二维展开后,每颗卫
星与其它同一和相邻轨道平面上的卫星,通过跨界通道建立快速分组交换网和通信链路。
单一卫星节点可以建立四条星间链路ISL(Inter-Satellite Link),例如在图1中所示,S22
分别建立了与上下同轨卫星S21,S23的星间链路(up_link,down_link),以及与左右跨轨卫
星S12,S32的星间链路(left_link,right_link)。同轨卫星之间的相对位置和角度基本保持
不变,星间链路是可以稳定建立并长久保持的,也就是说同轨星间链路在整个卫星运行周
期内是一直有效的。不同轨道平面上的卫星由于在轨运动,相对角度、速度、距离都在时刻
变化,因此星间链路需要特别的检测和维护过程,尤其是极轨道卫星运行到高纬度地区,轨
间星间链路会临时中断,这个纬度阈值在此处设为67.7°。当相邻两个轨道的卫星运行方向
相反时,会形成轨间缝隙(seam),例如在轨道1与轨道4之间。建立并维护跨缝链路的系统开
销极其昂贵,并且会使得图1中的二维拓扑复杂化为三维结构,而跨缝链路对于网络性能影
响较小,因此本发明中不考虑跨缝链路。
同一轨道上两相邻卫星之间的相对距离是固定的,即同轨星间链路的长度是固定
的,而轨间星间链路的长度是和卫星所在位置相关,纬度越高轨间星间链路越短。
每一个卫星节点对其建立的每一条星间链路记录其运行状态,例如链路的流量统
计(inbound/outbound traffic)、传输延迟、建立时间及稳定性等。选择不同的节点及链路
性能,在路由策略和网络流量均衡过程中,可以达到不同的性能改进和QoS优化目标。本发
明中选择网络流量作为性能度量指标,路由策略围绕着数据报流量感知和节点间负载均衡
进行改善。每一个卫星节点Si针对其每一条链路j维护链路状态指标记录该链路的
出向和入向的流量统计。
通讯中继卫星的主要功能是为终端设备提供接入和数据转发的功能,这里的终端
设备作为网络流量的发送源头和接收终点,可以是其它航天器、网关、地面固定或移动设
备。每一个网络数据流(traffic flow)Fi都通过卫星网络中的一个接入节点进入网
络,通过一系列中继转发操作后,从流出节点离开卫星网络。本发明将卫星网络与网络
流量终端分离出来,每一个网络数据流都是由接入卫星节点产生,在卫星网络中传递后由
流出节点接收并消耗。即和分别为网络中的不同卫星节点。
卫星节点有能力与相邻的同轨或异轨节点间建立可靠的数字链路,或者能够感知
已经存在的链路的通断状态;每个卫星节点具有基本的数据处理、队列缓存能力;每个卫星
节点知道星座中自己所处轨道内的节点个数、轨道面数量、运行参数。
每条星间链路的数据传输能力必须是双向的,虽然其传输速率可以是非对称的。
也就是说,两个卫星节点间的链路一旦建立起来后,数据可以从任何一个节点发送到对应
节点上。星间链路的连通持续时间必须远远大于数据在该链路的传输延迟时间。
卫星节点和星间链路可以失效。一个失效的星间链路将无法实现两端卫星节点间
的数据传输,一个失效的卫星节点将同时失效所有包含该节点的星间链路。
数据在卫星网络中以报文(datagram)的形式进行传递。每个数据报具有固定的大
小和结构,其内容由数据的发送者和接收者通过协议的方式进行规定。网络中的转发节点
可以对数据报文进行重新打包,通过在报文封包头中添加和解析额外的信息(datagram
piggyback info),进行路由辅助信息的更新与传递。数据报中具有明确的目标节点及其所
处轨道面信息。数据报的传输是类似于UDP datagram的无连接、非可靠的传输过程,数据的
完整性、及时性、投递确认、流量控制依赖于收发双方应用层的实现。
步骤2:根据沿经纬线方向的星间链路设计,利用卫星星座的网状拓扑结构,每个
卫星节点独立负责转发队列中的数据报文;
当数据报P到达当前卫星节点Si后,该节点需要对数据报的转发方向进行决策,并
选择相应的星间链路端口,将P转发出去。图2描述了路由决策的整个过程,遵循的规则具体
如下:
(1)如果数据报的目标节点为当前节点,则结束转发并接受该数据报。
(2)如果数据报的目的轨道面为当前轨道面,则转发的下一跳为轨道内相邻节点。
(3)如果数据报的目标轨道面不同于当前轨道面,则转发的下一跳可以是轨道内
或轨道间的相邻节点。
如果当前卫星节点对于数据报P的转发有一个以上的星间链路选择时,通过比较
不同链路间的Lin+Lout值作为当前负载状态,选择方向上负载较小的链路进行转发。
步骤3:通过在数据报中增加和传递额外的网络状态信息,实现卫星节点对于不同
路由方向上网络状态的感知与预测,进而指导数据报出向链路的选择。
每个卫星节点Si对于相邻卫星的每一条可能的星间链路进行数据报流量统计,维
护两个统计量分别记录从该链路流入和流出的累计数据报个数,其中j∈{left,
right,up,down}。统计量在相应链路收发新的数据报时线性增加如下:
这里N为数据报的个数,c作为增长系数的非负常量,与数据报的类型、大小、上层
协议有关。由于L是随时间而累计增加的,每个单位时间内需要对过往流量进行指数衰减
(aging),衰减速率aging_ratio为一个小于1的正数,正相关于卫星网络的规模以及端到端
的传输延迟。
每个数据报P可以携带一些额外的路由辅助信息(piggyback),该信息由数据报生
成卫星节点进行插入,转发节点负责读取和更新,接收节点负责读取和删除。其中一项信息
为该数据报在当前轨道面上经过的所有卫星节点的累计负载,或者是当前轨道面
中数据报流量的预期负载。假设卫星Si为当前负责处理数据报P的节点,它选择了链路j作
为P的转发出口链路,计算为
这里的为节点i上的流量负载,计算为
hopaging为流量沿着轨道内传输,随着跳数的增加的衰减速度。在一个没有环路的
卫星轨道内路由路径中,如果每个轨道内的卫星个数为M,则应该选择合适的衰减速率以使
得
如果卫星节点Si的链路j所连接的另一端节点为卫星Sk,则在Sk收到数据报P后,修
改Sk对应的链路流入统计为
这里可以将理解为数据报P在离开Si到达下一跳卫星节点时所经过的所
有同轨卫星节点上的流量积累,也就是下一跳卫星节点在P的进入方向上对于自己所处轨
道面上网络流量的预期。如果下一跳节点与当前卫星Si处于不同的轨道平面上,则
表示对于在P进入前所在轨道的流量负载预期。
由于卫星星座的特殊设计,卫星网络中同轨卫星以及不同轨道面之间的相邻卫星
的星间链路,都可以构成众多的路由回路。图3中展示了一个120/10/1星座中的所有可能的
逻辑链路,不但轨道内的卫星组成环路,所有卫星不同轨道间也具有闭环路径。因此在设计
卫星网络中路由算法,转发数据报的过程中需要特别注意防止数据报进入环状回路,避免
数据报在网络中往复转发。
避免数据报在网络中无限循环和收发的典型方法是设置存活时间(Time To
Live,TTL)。本文中也借鉴这一方法,在每个数据报的附加信息中设置TTLoverall和TTLplane两
个非负整数作为存活时间。其中TTLoverall是数据报在卫星网络中能够经历的总的节点跳
数,也就是从发送节点到接收节点之间能够经历的最多的中继节点个数,可以根据网络规
模、节点资源、应用服务类型来设置。TTLplane是在当前卫星轨道内的最大转发次数,为避免
环路一般应设置不超过单轨道内卫星节点的最大数目。每个卫星节点在进行转发操作的同
时,需要将数据报内的这两个值分别减1。当数据报转发到不同轨道时,TTLplane值应该被重
置为初始值。当一个卫星节点对数据报进行转发决策时,如果既能够选择轨内链路又能够
进行轨间转发,则选择转发给轨内相邻卫星节点的概率与TTLplane的值成正比,当TTLplane为
零时,除非没有可用的跨轨卫星链路,否则必须选择进行轨道间的转发操作。当TTLoverall为
零时,相应数据报将被就地丢弃,不再继续进一步的路由转发。
除了避免卫星网络中数据报的环路转发以外,还需要防止数据报在相邻若干卫星
节点中进行震荡转发。例如在图1中,假设卫星节点S22决定将一个数据报P通过down链路转
发到下一跳S23上,而S23又通过计算网络负载决定将其通过up链路转发到S22上,这就形成了
数据报在路由转发中继过程中的链路震荡。虽然经过若干次震荡后,随着S22与S23星间链路
状态的改变,通过考虑链路负载重新计算,可能决定该数据报文会脱离这两个节点向下一
跳不同的卫星转发,但这种震荡转发会造成不必要的数据报的转发延迟、网络资源浪费和
TTL消耗。为了避免这种情况,在每个数据报中增加了一个额外的参数用来
标明该数据报在当前轨道面内的转发方向。该参数取值为1(或-1)时,数据报在当前轨道面
内只能通过轨内卫星节点的down(或up)链路进行轨道内转发。当取值为0时,说明方向未
定。当前卫星节点如果要对这个数据报P进行轨内转发,可以自由决定转发方向,并在P中加
以设定。当数据报P被创建或进行跨轨转发时,的值被重置为0。对于轨间数据报转发
的方向,同时规定数据报只能向着距离目标节点更近的轨道转发。
为了对本发明效果进行说明,下面采用计算机仿真的方式对面向LEO卫星网络的
分布式节点自适应路由算法进行建模,并通过赋值实现了对真实场景的模拟。具体过程分
以下三个步骤进行:
(1)实验参数设置
采用STK软件设计了一个Walker Star星座,共有6个圆形轨道面,总计54颗卫星,
卫星轨道高度为680公里,倾角84°,基本可以实现近似全球覆盖。对于路由过程中的数据报
存活时间,分别设置TTLplane和TTLoverall为8和32。节点流量衰减速率aging_ratio为0.98,流
量跳数衰减速率hopaging设置为0.5。
(2)网络流量场景设计
为了展示本文中提出的自适应星间路由算法的有效性和稳定性,在仿真的卫星网
络中通过配置不同的网络流量flow来模拟卫星网络中数据的传输情况。整个仿真过程持续
100秒钟,共随机生成了1000个网络数据流。每个数据流的发送节点和接收节点在所有54个
卫星中随机选择,使得流量分布符合lognormal分布,即少量的卫星节点收发了大量的数据
报,而绝大多数卫星节点只是作为中继节点参与数据报转发。流量速率定义为流量源节点
每秒发送的数据报个数,符合均值为100的正态分布。每个数据流的发送持续时间为10-20
秒。
(3)实验结果及分析
实验过程中度量两个性能指标。首先度量每个数据报从源节点到目的节点经过的
转发路径长度,以卫星节点的跳数计算。路由跳数可以反映数据报路由过程中的路由开销,
较小的跳数意味着较少的传输延迟,可能减少数据报传输过程中端到端的时间延迟(实际
上端到端延迟取决于节点发送延迟、链路传输延迟、路由排队延迟、路由器处理延迟等)。本
文提出的基于单个节点状态感知的自适应路由算法,由于需要针对网络中流量负载进行动
态平衡,有可能对同一数据流的不同数据报采用不同的路由路径,因此可能增加最终的路
由跳数。采用这个度量指标,可以体现提出的路由算法在数据报转发过程中的系统开销,即
额外需要经过的网络节点(跳数)。其次度量数据报流量在网络中的分布情况,以同一时间
不同卫星节点上队列缓存和处理转发的数据报个数的差异度来度量,具体的计算方法为数
据报个数的方差。在计算过程中,只考虑在过去1秒钟内具有入向流量(inbound traffic)
的节点。
作为比较,同时仿真了基于最短路径(最少节点跳数)的路由算法。图4和图5分别
从两个度量指标,比较了不同路由策略的性能差异。最少跳数路由自始至终平均需要经过7
个路由中继节点,而经过优化的状态感知自适应路由在开始阶段具有类似的跳数需求,经
过运行一段时间,网络中的流量不断聚集,网络状态为更多中继节点所感知后,中继节点倾
向于选择更加空闲的相邻节点和轨道方向进行数据报转发,因此数据流的路由平均跳数略
有增加,后期基本维持在平均9-10跳之间,比原来仅仅增加了2-3跳。需要注意的是,在真实
LEO卫星网络中,相邻节点星间链路的传输延迟大概在几十毫秒范围,而由于卫星节点并不
优异的计算和处理能力,数据报在星上的队列延迟和处理延迟,往往可达数百毫秒,繁忙时
更甚。因此路由跳数增加并不一定意味着端到端延迟的增长,选择合适的更加空闲的中继
节点,反而可能降低端到端延迟。
图5中给出了改进前后数据流量在网络中的分布差异情况。基于最少跳数的路由
策略,例如Dijkstra's Shortest Path(DSP),在网络流量的源端和目的端分布不均匀的情
况下,更容易造成一些卫星节点和链路,尤其是跨轨道星间链路成为拥塞的热点[8]。卫星节
点间无法达到相对的流量负载均衡,负载方差在0-120范围内变化剧烈。采用了本文提出的
网络状态感知的自适应路由策略后,流量得以均衡分布在不同网络节点和路由路径上,节
点间的负载差异缩小到0-50之间并相对平稳的变化,负载差异程度降低了50%以上。