一种卫星动态拓扑路由方法与流程
1.本发明涉及网络路由技术领域,尤其涉及一种卫星动态拓扑路由方法。
背景技术:
2.卫星动态拓扑路由解决的问题是针对卫星不稳定的动态拓扑,寻到各个时刻内拓扑的最短时延路径。在地面发送端,根据数据包的源卫星与目标卫星计算出对应的路由路径。其中,控制器的输入参数主要有:a.卫星拓扑的结构在进行路由计算前,需要知道卫星拓扑的结构,包括:卫星轨道数量、每条轨道中卫星的数量。
3.卫星拓扑内各链路间的传播时延路由计算得到的是时延最短路径,因此需要有卫星拓扑内各链路间传播时延。卫星拓扑内的传播时延分为轨道内时延和轨道间时延两种。传播时延与卫星之间的距离有关,因此与卫星的分布拓扑直接相关。
4.各个模块的传输时延如:地面发送端将给定大小的数据发出所需的传输时延;卫星模块将数据发出所需的传输时延等。
5.卫星拓扑改变的时间间隔长度由于卫星在不断运动,卫星和地面之间的对应关系也在发生改变,基于虚拟拓扑建立的逻辑卫星拓扑也在不断发生着改变。根据卫星运动的周期及拓扑的结构,确定卫星拓扑改变的时间间隔长度。
6.目前的卫星路由算法有dv-dvtr、fsa、ddra等算法。其中,dv-dvtr首次利用虚拟拓扑的思想,将动态的卫星拓扑按照时隙划分成若干个静态拓扑,并在静态拓扑内计算路由;而fsa算法则将动态拓扑视作若干个静态状态,并利用有限状态机和状态转移来计算路由信息。虽然这两种算法都将动态卫星拓扑转化为静态拓扑,简化了路由计算,但是它们都没有考虑一种情况,即当数据包已经被发出且未到达路由终点,而是滞留在某个中间节点,这时拓扑发生改变。ddra算法对于上述情况发生的解决方案是,为滞留在中间节点的数据包重新基于新的拓扑计算路由。但是这样需要调用卫星本地的计算资源,且当滞留数据包数量达到一定水平时,需要重新计算路由并重新配置路径,使得卫星的路由配置变化更加频繁,且复杂化了整个网络的路由情况。
技术实现要素:
7.有鉴于此,本发明提出了一种卫星动态拓扑路由方法,该方法将动态的卫星拓扑在每个时隙内切分成静态的虚拟拓扑,并基于固定的虚拟拓扑进行路由,使得卫星路由过程更加简单。
8.为了实现上述目的,本发明采用的技术方案为:
一种卫星动态拓扑路由方法,包括以下步骤:(1)根据卫星星座部署及卫星覆盖地球区域的情况,将每一时隙各地球区域所对应的卫星视作逻辑卫星,由此建立虚拟拓扑,在每一时隙内,认为虚拟拓扑是固定的;(2)对于某一时隙的虚拟拓扑,使用dijkstra方法计算出虚拟拓扑中每个源节点到各目标节点的单播最短路径;(3)对于某一时隙的虚拟拓扑,基于pim协议计算出虚拟拓扑中各源节点到目标节点组的组播树;(4)在路由过程中,对于单播包,使用dijkstra方法计算路由路径;对于广播包,基于各个接收方与源节点的单播最短路径,以及pim协议生成广播树;对于组播包,将广播树进行剪枝从而得到组播树。
9.进一步地,在带有各ip地址的数据包发送之前,由发送方计算该数据包相应的全部路由信息,并将其存储在一个控制包中;发送方发出控制包后,控制包途经的物理卫星将控制包中携带的与该物理卫星有关的路由信息保存在本地并将其与控制包的ip匹配;之后,当物理卫星收到仅含ip地址,而不含其他路由信息的数据包时,只查看此前保存的该ip地址的路由信息,从而完成对该数据包的路由。
10.进一步地,步骤(4)中,若出现路由尚未完成,但数据包当前所在物理卫星所对应的逻辑卫星发生了改变,则将数据包发回至该物理卫星原来所对应的逻辑卫星,然后按原有的路由信息路由至终点;组播包的分裂复制也在原先所对应的逻辑卫星处进行。
11.本发明的有益效果在于:1、本发明采用了一种用于卫星动态拓扑的路由方法,结合了虚拟节点和虚拟拓扑的概念,同时使用经典的dijkstra算法及ip路由中常见的pim协议,保证了路由算法的可靠性。同时,考虑了因为虚拟节点和实际卫星之间映射关系改变带来的路由问题。在卫星路由任务里使用pim协议的好处是,pim协议只专注于组成员和组播源状态相关的信息,而选取路径的信息直接从单播路由表获取。因此不需要维护庞大的路由信息,从而降低了路由的复杂性。且pim协议中扩散只考虑“相邻”的节点,由于卫星网络中卫星的邻居固定,甚至省去了寻邻居的步骤,这使得pim协议在卫星网络中更加易于实施。
12.2、针对数据包路由过程中发生的卫星拓扑变化,本发明采用了一种将数据包发回至所在物理卫星原先所对应的逻辑卫星的机制。若该包为单播包,则发回原先对应逻辑卫星处继续寻径。组播包的分裂复制也在原先所对应的逻辑卫星处进行。与现有技术相比,本发明不需要调用卫星本地的计算资源,不需要重新计算路由并重新配置路径,从而简化了整个网络的路由情况。
附图说明
13.图1 为本发明实施例中卫星动态拓扑路由方法的处理流程图。
14.图2 为地面端和卫星端设定示意图。
具体实施方式
15.为了使本公开的原理、技术流程方案以及优化效果更加清楚,下面结合具体实施例对本发明做进一步的详细描述。
16.如图1所示,一种卫星动态拓扑路由方法,其包括以下步骤:(1)根据卫星星座部署及卫星覆盖地球区域情况,建立虚拟拓扑,将各区域所对应的卫星视作逻辑卫星。
17.(2)完成步骤(1)的虚拟拓扑建立后,对于某一时隙的卫星拓扑所对应的参数情况(例如时延等),使用dijkstra算法计算出每个源节点到目标节点的单播最短路径。
18.(3)完成步骤(3)中源节点到各目标节点的单播最短路径计算之后,基于pim协议计算出该源节点到目标节点组的组播树。
19.(4)在路由过程中,对于单播包,使用dijkstra方法计算路由路径;对于广播包,基于各个接收方与源节点的单播最短路径,以及pim协议生成广播树;对于组播包,将广播树进行剪枝从而得到组播树。
20.该方法将地球的每片区域及为其服务的卫星视作一个虚拟节点,称之为逻辑卫星。而对于实际的卫星,称之为物理卫星。虽然卫星无时无刻都在高速运转,但对于某一时隙内,卫星的位置及卫星与地面区域之间的相对位置都是固定的,因此对于某一时隙内,可以认为卫星拓扑是固定的,称之为虚拟拓扑,基于固定的虚拟拓扑进行路由,使得卫星路由问题更加简单。
21.该方法没有基于卫星的动态拓扑,而是基于逻辑卫星构成的拓扑,设计了单播、组播、广播混合需求场景下的路由机制。对于单播包,使用dijkstra算法为其计算路由路径。对于广播包,基于各个接收方与源节点的单播最短路径,以及pim协议生成广播树。对于组播包,将广播树进行剪枝即可得组播树。
22.在带有各ip地址的数据包发送之前,发送方会计算好该包相应的全部路由信息,并将其存储在一个控制包中。发送方发出控制包后,控制包途径的卫星会将控制包中携带的与该卫星有关的路由信息保存在本地并将其与控制包的ip匹配。之后,卫星收到仅含ip地址,而不含其他路由信息的数据包时,只需查看此前保存的该ip地址的路由信息,即可完成对该数据包的路由。
23.步骤(4)中,由于物理卫星和逻辑卫星之间的映射关系会发生改变,有可能出现以下场景:数据包已被发出,但尚未被接受,在路径的某个中间节点时,物理卫星和逻辑卫星的映射关系发生了改变。此时,本方法设定,将该数据包默认发回其原先所在的逻辑卫星。由于该逻辑卫星一定是该数据包目前所对应的逻辑卫星的相邻节点或者同一轨道两侧的节点,因此,发回原先逻辑卫星的寻径,实现起来也比较简单。具体来说,若该包为单播包,则发回原先对应逻辑卫星处继续寻径。若该包为组播包且在原先的逻辑卫星处分裂复制,则依然在原先所对应的逻辑卫星处复制分裂。这样做的合理性在于,虽然物理卫星拓扑是动态的,但是逻辑卫星拓扑却是静态的,且传播时延与卫星之间的距离有关,也即与逻辑卫星对应。因此,当物理卫星拓扑发生改变时,这时已发出的数据包依然可以按照基于原有逻辑拓扑所计算得到的最短路径。这样做的优点在于,只需简单地将数据包发回至所在物理卫星原先所对应的逻辑卫星即可,且不需要重新计算该包的路由路径。
24.以下为一个更具体的实施例:对于omnet++上搭建的40
×
10(10条轨道,每条轨道40颗卫星)的卫星星,仿真设定如下:如图2所示,地面端基于当前时隙虚拟拓扑为组播包计算组播树,将信息存在控制
包中并发送给相应卫星端;在发送完携带路由路径信息的控制包后,卫星将发送仅含ip信息的数据包。卫星端在收到仅含ip信息的数据包时,将根据已经获取到的对应控制包中所存储的路由信息完成数据包的路由。设置有三种不同ip的包,分别对应于组播、单播、广播,一开始,发送模块会基于本方法计算三种ip所对应的路由信息,然后分别发送三个携带这三种ip路由信息的数据包(称为控制包)至相关卫星,这三个控制包携带了三种ip的路由配置信息,卫星按照ip分别保存这些路由信息并维护。发完三个这样的控制包后,发送模块会发送普通数据包,普通数据包中只携带ip信息,卫星接收到普通数据包后,查看其ip,然后出之前保存的该ip对应的路由信息,并遵照之将路由该包。
25.其中,仿真参数设置如下:轨道内星间链路时延为1.84ms,卫星和地面间链路时延为2.15ms,而由于不同纬度的卫星间,轨道间链路距离不相同,所以时延不相等,其中与赤道重合的轨道链路时延为3.62ms,物理卫星和逻辑卫星映射关系的转变时间间隔1.22min。
26.仿真得到各个接收模块统计的数据包的各项技术指标,如接收包的数量、接收包的平均时延等。不同节点因为其所处位置不同,收到数据包的平均时延也会有所不同。由仿真结果可知,靠近拓扑边缘的节点,往往需要更多的跳数才可到达,因此时延也会相对较高。总体来看时延为20-200ms不等,但是各节点收到数据包的总体时延均低于200ms,本实施例所设定的场景是全球各地的节点通信,所以这个时延是可接受的。
27.由于对于不同类型(单播、组播、广播)的包,仿真中设置的发送频率是相同的,因此发送的各类包数量是相等的。例如设置单播源为184,组播源为214,广播源为36。组播组为100-200,单播终点为199。本仿真中,三个源节点各自发了48个单播、组播、广播包。因此,若无丢包发生,0-99,201-400号节点应收到48个包,100-200号(199号除外)节点应收到96个包,199号节点应收到144个包。
28.相较于路由过程中物理卫星和逻辑卫星对应关系不变的数据包,关系改变的数据包发回原来逻辑卫星带来的时延代价是可以接受的。大部分数据包会被带至原来逻辑卫星相邻的逻辑卫星,因而带来的时延代价仅为传输时延及发回至原有逻辑卫星的传播时延。而对于从一端带至另一端的数据包,这个时延会较大,好在这类数据包出现的概率很低。
29.上面所描述的实施例仅是本发明的具体实施例,而不是全部实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的其他实施例,都属于本发明保护的范围。
技术特征:
1.一种卫星动态拓扑路由方法,其特征在于,包括以下步骤:(1)根据卫星星座部署及卫星覆盖地球区域的情况,将每一时隙各地球区域所对应的卫星视作逻辑卫星,由此建立虚拟拓扑,在每一时隙内,认为虚拟拓扑是固定的;(2)对于某一时隙的虚拟拓扑,使用dijkstra方法计算出虚拟拓扑中每个源节点到各目标节点的单播最短路径;(3)对于某一时隙的虚拟拓扑,基于pim协议计算出虚拟拓扑中各源节点到目标节点组的组播树;(4)在路由过程中,对于单播包,使用dijkstra方法计算路由路径;对于广播包,基于各个接收方与源节点的单播最短路径,以及pim协议生成广播树;对于组播包,将广播树进行剪枝从而得到组播树。2.根据权利要求1所述的一种卫星动态拓扑路由方法,其特征在于,在带有各ip地址的数据包发送之前,由发送方计算该数据包相应的全部路由信息,并将其存储在一个控制包中;发送方发出控制包后,控制包途经的物理卫星将控制包中携带的与该物理卫星有关的路由信息保存在本地并将其与控制包的ip匹配;之后,当物理卫星收到仅含ip地址,而不含其他路由信息的数据包时,只查看此前保存的该ip地址的路由信息,从而完成对该数据包的路由。3.根据权利要求1所述的一种卫星动态拓扑路由方法,其特征在于,步骤(4)中,若出现路由尚未完成,但数据包当前所在物理卫星所对应的逻辑卫星发生了改变,则将数据包发回至该物理卫星原来所对应的逻辑卫星,然后按原有的路由信息路由至终点;组播包的分裂复制也在原先所对应的逻辑卫星处进行。
技术总结
本发明公开了一种卫星动态拓扑路由方法,属于网络路由技术领域。本发明基于虚拟节点和虚拟拓扑技术,在每个时隙将卫星拓扑视作虚拟拓扑;在每个时隙的虚拟拓扑下,首先利用dijkstra算法计算出每个源节点到目标节点的单播最短路径,再利用PIM协议计算出源节点至目标节点组的组播树;在数据包路由过程中,对于单播包,使用dijkstra方法计算路由路径;对于广播包,基于各个接收方与源节点的单播最短路径,以及PIM协议生成广播树;对于组播包,将广播树进行剪枝从而得到组播树。本发明将动态的卫星拓扑在每个时隙内切分成静态的虚拟拓扑,并基于固定的虚拟拓扑进行路由,使得卫星路由过程更加简单。路由过程更加简单。路由过程更加简单。