在网状网络中的混合式软件定义网络和移动自组织网络路由的制作方法

未命名 08-17 阅读:63 评论:0

在网状网络中的混合式软件定义网络和移动自组织网络路由
1.相关申请的交叉引用
2.本技术要求2020年12月30日提交的美国申请第17/138,019号的优先权和权益,其全部内容通过引用并入本文。


背景技术:

3.信息可以通过诸如航空航天和其他移动网络等的定向点对点网络来传输。在这样的网络中,可以通过将每个节点对的收发器朝向彼此对准来在节点对之间形成链路。在一些实现方式中,节点可以包括非对地静止卫星轨道(ngso)卫星或其他相对于地球运动的高空平台(hap)。


技术实现要素:

4.本公开的各个方面提供了用于对用于网络的第一级网络配置和第二级网络配置进行规划的系统和方法,其中,第二级网络配置用作第一级网络配置的备份。
5.本公开的一些方面提供了一种系统,该系统具有网络控制器,所述网络控制器包括一个或更多个处理器。一个或更多个处理器被配置成:从网络的多个节点接收节点信息,所述多个节点包括第一节点,该第一节点相对于第二节点处于运动中;基于所接收到的节点信息,来对网络中的可用节点和可能的链路进行确定;基于可用节点和可能的链路,来对网络的拓扑结构进行确定;从一个或更多个客户端设备接收客户端数据信息,该客户端数据信息与待通过网络传输的客户端数据相关;对用于所确定的拓扑结构的第一级网络配置进行确定,其中,第一级网络配置包括用于客户端数据的一个或更多个第一路由路径;以及将实现指令发送到网络的多个节点,以使得多个节点实现第一级网络配置,并且在第一级网络配置发生故障时切换到第二级网络配置,其中,第二级网络配置包括用于客户端数据通过所确定的拓扑结构的一个或更多个第二路由路径,该所确定的拓扑结构实现移动自组织网络。
6.在一个示例中,实现指令还使网络的每个节点能够使用所确定的拓扑结构中的移动自组织网络来对第二级网络配置中的下一跳进行确定。在另一示例中,一个或更多个处理器还被配置成:基于一个或更多个第一路由路径,来对用于网络的每个节点的第一转发规则进行确定;以及实现指令包括第一转发规则。在该示例中,第一转发规则可选地包括关于在第一级网络配置中形成链路的指令。
7.同样可选地,在该示例中,用于网络的每个节点的实现指令包括:当第一转发规则不能被实现时,切换到用于第二网络配置的第二转发规则。在一个示例中,第二转发规则用于先应式路由。在另一示例中,第二转发规则用于反应式路由。在又一示例中,第二转发规则用于混合式路由。在再一示例中,实现指令还包括:在切换到第二转发规则之前,对下一跳的链路故障进行检测。
8.本公开的其他方面提供了一种计算机实现的方法,该计算机实现的方法包括:由一个或更多个处理器从网络的多个节点接收节点信息,所述多个节点包括第一节点,该第
一节点相对于第二节点处于运动中;由一个或更多个处理器基于所接收到的信息,来对网络中的可用节点和可能的链路进行确定;由一个或更多个处理器基于可用节点和可能的链路,来对所述网络的拓扑结构进行确定;由一个或更多个处理器从一个或更多个客户端设备接收客户端数据信息,该客户端数据信息与待通过网络传输的客户端数据相关;由一个或更多个处理器对用于所确定的拓扑结构的第一级网络配置进行确定,其中,第一级网络配置包括用于客户端数据的一个或更多个第一路由路径;以及由一个或更多个处理器将实现指令发送到网络的多个节点,以使得多个节点实现第一级网络配置,并且在第一级网络配置发生故障时切换到第二级网络配置,其中,第二级网络配置包括用于客户端数据通过所确定的拓扑结构的一个或更多个第二路由路径,所确定的拓扑结构实现移动自组织网络。
9.在一个示例中,实现指令还使网络的每个节点能够使用所确定的拓扑结构中的移动自组织网络来对第二级网络配置中的下一跳进行确定。在另一示例中,对第一级网络配置进行确定还包括:基于一个或更多个第一路由路径,来对用于网络的每个节点的第一转发规则进行确定;以及实现指令包括第一转发规则。在该示例中,第一转发规则包括关于在第一级网络配置中形成链路的指令。
10.同样可选地,在该示例中,用于网络的每个节点的实现指令包括:当第一转发规则不能被实现时,切换到用于第二网络配置的第二转发规则。在一个示例中,第二转发规则用于先应式路由。在另一示例中,第二转发规则用于反应式路由。在又一示例中,第二转发规则用于混合式路由。在再一示例中,实现指令还包括:在切换到第二转发规则之前,对到下一跳的链路故障进行检测。
11.本公开的其他方面提供了一种非暂态的、有形的计算机可读存储介质,在该计算机可读存储介质上存储有计算机可读程序指令。所述计算机可读程序指令在由一个或更多个处理器执行时,使一个或更多个处理器执行以下方法。所述方法包括:从网络的多个节点接收节点信息,所述多个节点包括第一节点,该第一节点相对于第二节点处于运动中;基于所接收到的信息,来对网络中的可用节点和可能的链路进行确定;基于可用节点和可能的链路,来对网络的拓扑结构进行确定;从一个或更多个客户端设备接收客户端数据信息,该客户端数据信息与待通过网络传输的客户端数据相关;对用于所确定的拓扑结构的第一级网络配置进行确定,其中,第一级网络配置包括用于客户端数据的一个或更多个第一路由路径;以及将实现指令发送到网络的多个节点,以使得多个节点实现第一级网络配置,并且在第一级网络配置发生故障时切换到第二级网络配置,其中,第二级网络配置包括用于所述客户端数据通过所确定的拓扑结构的一个或更多个第二路由路径,所确定的拓扑结构实现移动自组织网络。
12.在一个示例中,对第一级网络配置进行确定还包括:基于一个或更多个第一路由路径,来对用于网络的每个节点的第一转发规则进行确定,并且实现指令包括第一转发规则并且使网络的每个节点使用所确定的拓扑结构中的移动自组织网络来对第二级网络配置中的下一跳进行确定。
附图说明
13.图1是根据本公开的各个方面的示例性定向点对点网络100的立体简图。
14.图2是根据本公开的各个方面的图1中所示的网络100的一部分200的功能图。
15.图3是根据本公开的各个方面的网络控制器300的功能图。
16.图4是根据本公开的各个方面的方法的流程图400。
17.图5是根据本公开的各个方面的图1中所示的网络100的拓扑结构500的功能图。
18.图6是根据本公开的各个方面的图1中所示的网络100的拓扑结构500的另一功能图。
19.图7是根据本公开的各个方面的网络100的第一级网络配置700的功能图。
20.图8是根据本公开的各个方面的网络100的第二级网络配置800的功能图。
21.图9是根据本公开的各个方面的方法的流程图900。
具体实施方式
22.概述
23.该技术涉及对用于时空通信网络的网络配置进行规划并且实现用于时空通信网络的网络配置,该网络配置包括第一级配置和第二级配置。第一级配置可以是基于网络中节点的位置和轨迹的软件定义配置。第二配置可以是分布式路由协议。当在给定的节点处发生本地故障时,可以实现第二级配置的转发规则,以对受本地故障影响的数据进行路由,从而减少网络中的延迟。
24.网络控制器可以被配置成基于网络的拓扑结构来生成用于网络的第一级配置和第二级配置。可以生成第一级配置和第二级配置以在给定的时间点在网络中实现。第一级配置可以是使用软件定义网络生成的整体配置。第二级配置可以使用诸如移动自组织网络(manet)路由协议等的分布式路由协议来生成。
25.网络控制器可以向网络的一个或更多个节点发送用于第一级配置的转发规则和用于第二级配置的转发规则。对于每个节点,网络控制器可以发送用于实现第一级配置的一个或更多个第一转发规则以及用于实现第二级配置的一个或更多个第二转发规则。
26.接收转发规则的第一节点可以对用于第一级配置的一个或更多个第一转发规则以及用于第二级配置的一个或更多个第二转发规则进行存储。在给定的时间点,第一节点可以实现一个或更多个第一转发规则,该第一转发规则包括将信号导向第二节点。第一节点可以对第二节点处的本地故障进行检测。在检测到第二节点处的本地故障之后,第一节点可以实现一个或更多个第二转发规则中的至少一个第二转发规则,该至少一个第二转发规则包括将信号导向第三节点。
27.网络控制器可以生成经更新的第一级配置以针对第二节点的本地故障进行调节。经更新的第一级配置可以是以与第一第一级配置相同或相似的方式使用软件定义网络生成的总体配置。一旦生成,用于经更新的第一级配置的经更新的转发规则可以被发送到网络的节点以进行实现。经更新的第一级配置可以替换以下中的任何一者:由网络的节点实现的一个或更多个第一转发规则以及一个或更多个第二转发规则。
28.该技术使得能够实现更可靠的软件定义网络。在诸如本地故障等的事件期间,通信可以以更少的延迟和更少的数据包丢失来传输,同时保持软件定义网络的全局最优性。例如,当在第一级网络的本地故障之后,第一级网络的控制平面被转移到第二级网络时,第一级网络可以具有较短的修复时间。因此,与在其他网络中相比,客户端数据可以被更快或
更准时发送和接收。网络能够支持总体上更大量数据的传输。
29.示例性系统
30.图1是示例性定向点对点网络100的立体简图。网络100是定向点对点计算机网络,该定向点对点计算机网络包括安装在各种基于陆地和空中的设备上的节点,其中一些节点可以随时间改变相对于网络100中的其他节点的位置。例如,网络100包括与两个基于陆地数据中心105a和105b(通称为数据中心105)中的每一个相关联的节点、与三个地面站107a、107b和107c(通称为地面站107)中的每一个相关联的节点、以及与六个空中高空平台(hap)110a至110f(通称为hap 110)中的每一个相关联的节点。如图所示,hap 110a是飞艇,hap 110b是飞机,hap 110c是气球,以及hap 110d至110f是卫星。在一些实施方式中,客户端设备可以是网络100的节点或者可以直接地或间接地连接到网络100的hap。例如,客户端设备可以与hap 110d形成通信链路,或类似于数据中心105a,可以与地面站107a形成通信链路。
31.在一些实施方式中,网络100中的节点可以被配备成用于执行自由空间光通信(fsoc),使得网络100成为fsoc网络。附加地或可替代性地,网络100中的节点可以被配备成用于经由射频信号或能够在自由空间中传播的其他通信信号进行通信。在节点对之间示出的箭头表示节点之间可能的通信链路120、122、130至137、140至145。链路120可以在数据中心105a与地面站107a之间,并且链路122可以在数据中心105b与地面站107b之间。hap 110a可以分别经由链路130、131和132链接到地面站107a、hap 110b和hap 110c。hap 110b可以分别经由链路133、135、136和137链接到hap 110c、地面站107b、hap 110d和hap 110e。hap 110c可以经由链路134链接到地面站107b。hap 110d可以分别经由链路140、141、142和142链接到地面站107a、地面站107b、hap 110e和hap 110f。hap 110f可以分别经由链路144和145链接到hap 110e和地面站107c。
32.如图1所示的网络100仅是说明性的,并且在一些实现方式中,网络100可以包括附加的节点或不同的节点。例如,在一些实现方式中,网络100可以包括附加的hap,其可以是气球、飞艇、飞机、无人驾驶飞行器(uav)、卫星或任何其他形式的高空平台。
33.在一些实现方式中,网络100可以用作用于诸如蜂窝电话、膝上型计算机、台式计算机、可穿戴设备或平板计算机等的客户端设备的接入网络。网络100还可以连接到诸如因特网等的更大的网络,并且可以被配置成:向客户端设备提供对存储在更大的计算机网络上的资源或通过更大的计算机网络提供的资源的访问。在一些实现方式中,hap 110可以包括与蜂窝或其他移动网络相关联的无线收发器,诸如enodeb基站、或者诸如wimax或umts接入点等的其他无线接入点。共同地,hap 110可以形成无线接入网络的全部或一部分。hap 110可以连接到数据中心105,例如,经由通过第三方操作的主干网络链路或传输网络连接到数据中心105。数据中心105可以包括托管由远程用户访问的应用程序的服务器以及对网络100的部件进行监视或控制的系统。hap 110可以向用户提供无线访问,并且可以将用户请求转发到数据中心105并且经由主干网络链路向用户返回响应。
34.如图2所示,每个节点(诸如地面站107和hap 110)可以包括一个或更多个收发器,所述一个或更多个收发器被配置成:在网络中的给定的hap 110与另一节点之间创建一个或更多个链路,诸如链路120、122、130至137、140至145。参考hap 110a,诸如网络100的地面站107和hap 110的节点中的每个节点可以包括一个或更多个处理器210、存储器212、以及一个或更多个收发器220。为了清楚和简单起见,仅地面站107a和hap 110a、110b在图2中被
示出。然而,网络中的其他地面站和hap可以具有与地面站107b或hap 110a、110b相同或相似的配置。
35.一个或更多个处理器210可以是任何传统处理器,诸如可商购的cpu。可替代性地,一个或更多个处理器可以是诸如专用集成电路(asic)等的专用设备或诸如现场可编程门阵列(fpga)等的其他基于硬件的处理器。尽管图2在功能上将一个或更多个处理器210和存储器212图示为在同一个块内,但是应当理解的是,一个或更多个处理器210和存储器212实际上可以包括多个处理器和存储器,这些处理器和存储器可能存储在同一物理壳体内或可能不存储在同一物理壳体内。相应地,对处理器或计算机的提及将被理解为包括对可能并行操作或可能不并行操作的处理器或计算机或存储器的集合的提及。
36.存储器212存储有可由一个或更多个处理器210访问的信息,该信息包括数据214和指令216,指令216可以由一个或更多个处理器210执行。存储器可以是能够存储可由处理器210访问的信息的任何类型,包括非暂态有形计算机可读介质,该非暂态有形计算机可读介质包含计算机可读指令,该非暂态有形计算机可读介质为诸如硬盘驱动器、存储器卡、rom、ram、dvd或其他光学磁盘,以及其他可写且只读存储器。该系统和方法可以包括前述的不同组合,由此数据214和指令216的不同部分被存储在不同类型的介质上。在每个节点的存储器(诸如hap 110a的存储器212)中,可以存储有转发信息库或转发数据结构(诸如数据库或表),其指示应当如何转发或传输在每个节点处接收到的信号。换句话说,每个节点的存储器可以存储有用于对应节点的一个或更多个转发规则。例如,存储在存储器212中的转发表可以包括转发规则,在该转发规则中,从地面站107a接收到的信号应该被转发到hap 110d。
37.数据214可以根据指令216而由一个或更多个处理器210检索、存储或修改。例如,尽管系统和方法不受任何特定数据结构的限制,但是数据214可以作为具有多个不同字段和记录的表、xml文档或平面文件被存储在计算机寄存器中、被存储在关系数据库中。数据214也可以被格式化为任何计算机可读格式,例如但不限于二进制值或unicode。仅进一步举例,图像数据可以被存储为包含像素网格的位图以及用于绘制图形的计算机指令,这些像素网格根据压缩或未压缩、无损(例如,bmp)或有损(例如,jpeg)、以及位图或基于矢量(例如,svg)的格式而被存储。数据214可以包括足以对相关信息进行识别的任何信息,诸如数字、描述性文本、专有代码、对存储在同一存储器或不同存储器的其他区域(包括其他网络位置)中的数据的引用、或被函数用来计算相关数据的信息。
38.指令216可以是由一个或更多个处理器210直接地(诸如机器代码)或间接地(诸如脚本)执行的任何指令集。例如,指令216可以作为计算机代码被存储在计算机可读介质上。就此而言,术语“指令”和“程序”可以在本文中互换使用。指令216可以以用于由一个或更多个处理器210直接处理的目标代码格式被存储,或者以任何其他计算机语言(包括按需解释或预先编译的脚本或独立源代码模块的集合)被存储。下面更详细地解释指令216的功能、方法和例程。
39.一个或更多个收发器220可以安装到致动器,该致动器可以被控制或操纵以指向期望的方向。为了在两个节点(诸如与hap 110a相关联的节点和与hap 110d相关联的节点)之间形成链路,可以将相应的节点的收发器控制成指向彼此的方向,使得数据可以在节点之间被发送和接收。在一些实现方式中,也可以由相应的节点的一个或更多个处理器对由
每个收发器传输的信号的功率进行控制以有助于网络100中的链路120、122、130至137、140至145的形成(例如,参见图1)。例如,分开相对较大距离的节点可以被配置成以较高的功率操作,以补偿在分开两个节点的距离上出现的信噪比的降低。彼此间隔较近的节点可以被控制成以相对较低的功率操作,以便节省功率。
40.在一些实现方式中,网络100可以是由软件定义网络(sdn)控制器(诸如图3中描绘的网络控制器300)控制的sdn。网络控制器300可以位于网络节点之一处或位于单独的平台处,诸如,例如在数据中心105中的一个数据中心中。网络100的节点可以被配置成使用可操纵的收发器(诸如一个或更多个收发器220)彼此通信。由于hap 110随着时间相对于彼此以及相对于数据中心105、地面站107和其他地面位置移动,图1的框图中所示的链路中的一些链路可能变得不可行。例如,当hap 110a的路径使hap 110a处于地面站107a范围之外的位置时,或者当hap 110a的路径使hap 110a处于位于它与地面站107a之间的地球所在的位置时,地面站107a与hap 110a之间的链路130可能是不可行的。在其他示例中,hap 110与数据中心105、地面站107和其他地面位置之间的天气事件也可能使某些链路不可行。因此,由于hap 110的连续移动,网络100的拓扑结构可能需要定期(即,周期性)或不定期重新配置以保持连接性并且满足确定的网络流。网络控制器300可以被配置成对配置进行确定以有效地满足如下进一步描述的确定的网络流,以便能够处理大数据驱动的网络的需求。
41.图3是网络控制器300的功能图。网络控制器300可以被配置成:向网络100发送控制消息,以对网络100的拓扑结构进行配置;将路由信息传递到网络100的节点107、110;以及调度对网络100拓扑结构的变化,以传输客户端数据。如图3所示,网络控制器300可以包括一个或更多个处理器310、存储器320、以及通信系统340。一个或更多个处理器310可以类似于上述的一个或更多个处理器210。
42.存储器320可以存储可由一个或更多个处理器310访问的信息,该信息包括数据322和指令324,指令324可以由处理器310执行。存储器320、数据322和指令324可以类似于上述的存储器212、数据214和指令216来进行配置。数据322可以包括数据库、表、或其他存储结构,该其他存储结构表示在给定时间或时间帧内网络100中的所有可用节点和可能的链路(诸如表)。该表可以具有针对网络100中的每个节点和链路的列以及针对时间或时间帧的行。在某些情况下,列和行可以被颠倒。该表还可以针对每个节点和每个链路存储该节点或该链路可用的调度时间或时间帧。可替代性地,可以使用图表或其他形式的信息组织。指令324可以包括拓扑结构和路由管理器模块326、拓扑结构确定模块328、流确定模块330、求解器模块332、飞行控制模块334、和调度模块336。
43.返回到图3,通信系统340可以被配置成与网络100的节点107、110以及一个或更多个客户端设备350进行通信。在一些实施方式中,通信系统340包括控制数据平面接口(cdpi)驱动器,该cdpi驱动器被配置成与节点107、110中的每一个节点处的cdpi代理进行通信。此外,网络控制器300的通信系统340可以包括一个或更多个北向接口(nbi)代理,该nbi代理被配置成在与一个或更多个sdn应用相关联的每个客户端设备350处与nbi驱动器进行通信。通信系统340可以可选地或可替代性地被配置成经由射频、光学频率、光学纤维、电缆或其他通信装置向网络100中的节点107、110以及一个或更多个客户端设备350传输信号并且从网络100中的节点107、110以及一个或更多个客户端设备350接收信号。
44.每个客户端设备350可以是个人计算设备或服务器,其具有一个或更多个处理器
360、存储器370、数据372和指令374,一个或更多个处理器360、存储器370、数据372和指令374类似于上面关于一个或更多个处理器210和310、存储器212和320、数据214和322以及指令216和324所描述的那些。个人计算设备可以包括个人计算机,其具有通常与个人计算机结合使用的所有部件,诸如中央处理单元(cpu)、存储数据和指令的存储器(例如,ram和内部硬盘驱动器)、电子显示器(例如,具有屏幕的监视器、小型lcd触摸屏、投影仪、电视、或任何其他可操作以显示信息的电子设备)、用户输入装置(例如,鼠标、键盘、触摸屏或麦克风)、相机、扬声器、网络接口设备,以及用于将这些元件彼此连接的所有部件。个人计算设备还可以包括诸如pda、蜂窝电话等的移动设备。实际上,客户端设备350可以包括能够处理指令并向人类和其他计算机传输数据以及从人类和其他计算机传输数据的任何设备,包括通用计算机、缺乏本地存储能力的网络计算机、以及用于电视的机顶盒。在一些实施方式中,客户端设备可以与一个或更多个sdn应用相关联并且可以具有一个或更多个nbi驱动器。
45.转向图3的指令324的模块,拓扑结构和路由管理器模块326可以使一个或更多个处理器310在网络控制器300与网络100之间交互。使用拓扑结构和路由管理器模块326,一个或更多个处理器310可以从网络100内的每个节点接收信息。例如,在一些实现方式中,拓扑结构和路由管理器模块326可以使一个或更多个处理器310从网络100中每个节点107、110接收信息,该信息对应于每个节点的当前位置、每个节点的预测路径、与每个节点相关联的当前链路、由每个节点存储的路由信息、以及在每个节点处的当前存储容量(例如,如果有的话,有多少空闲或可用的比特可以被利用)。从每个节点接收的信息还可以包括天气状况、湍流、辐射、或关于可能影响节点之间的fsoc的其他状况的其他报告。每个节点还可以向一个或更多个处理器310发送与任何故障链路相对应的信息,该故障链路可能是由于节点之间不可预见的障碍、在节点处的湍流、或者一个或更多个收发器的故障而发生的。
46.拓扑结构和路由管理器模块326还可以使一个或更多个处理器310接收预测的链路度量和状况。例如,预测的链路度量可以包括用于假设链路的网络性能度量的预测值,该假设链路可以基于从节点107、110接收的信息而当前形成或将来形成。网络性能度量可以包括带宽容量、延迟、或链路寿命持续时间,并且可以是基于网络100中的节点107、110的预测相对运动或轨迹的。链路寿命持续时间可以表示链路在网络100中是可行的时间段。在节点位置、预测节点位置或预测链路中的天气预报也可以由一个或更多个处理器310从节点107、110或可选地从远程系统接收。
47.使用拓扑结构和路由管理器模块326,一个或更多个处理器310可以将从网络100接收的信息存储在存储器320中。例如,表示网络100中所有可用节点和可能链路的表可以用与表中的特定节点或链路相关的信息来更新或注释。表的注释可以指示网络100中每个节点的可用性、每个节点的当前位置和未来位置、当前天气状况和预期的未来天气状况、以及网络中的节点中的每个节点处的当前可用存储量和节点中的每个节点处的未来(估计的)可用存储量。此外,表的注释可以指示特定链路的当前可用性和未来可用性以及这类链路的当前带宽和未来预期的带宽。故障的链路和预测的状况也可以被记录并存储在表中。
48.拓扑结构确定模块328可以使一个或更多个处理器310能够对网络100的当前拓扑结构或未来拓扑结构进行确定。对网络100的当前拓扑结构的确定可以基于由一个或更多个处理器使用拓扑结构和路由管理器模块326接收并存储的信息来进行。例如,拓扑结构确
定模块328可以使一个或更多个处理器310能够将与每个节点107、110的当前位置、在每个节点对之间形成的链路130至137、140至145、以及网络100内可能存在的任何故障链路有关的信息聚合。一个或更多个处理器310可以通过使用拓扑结构和路由管理器模块326接收该信息,或者可以从存储器320检索该信息。
49.附加信息也可以被一个或更多个处理器310使用拓扑结构确定模块328用来对网络100的当前拓扑结构进行确定。被一个或更多个处理器310使用拓扑结构和路由管理器模块326接收的预测链路度量也可以被用于对带宽、服务的质量、以及当前拓扑结构中可用链路的其他特征进行确定。在一些实现方式中,使用拓扑结构确定模块328,一个或更多个处理器310还可以在特定时间或者在当前时间或接近当前时间的特定时间帧内,通过使用飞行控制模块334接收与诸如hap 110等的空中网络节点的飞行路径相对应的信息,并且还可以基于所接收到的飞行信息来进行对当前拓扑结构的确定。
50.为了对网络100的未来拓扑结构进行确定,一个或更多个处理器310可以使用拓扑结构确定模块328来将位置信息、预测链路状况、飞行信息、可用存储和/或与未来时间相关的天气预报聚合。一个或更多个处理器310可以访问存储在表中或存储器320中其他地方的、关于如下内容的信息:未来时间内的可用节点和链路、位置信息、预测链路状况、飞行信息和/或天气预报。针对未来时间的信息可以被一个或更多个处理器310使用以确定节点被预测到在哪里以及节点和链路的可用性以及每个节点处的存储能力被预测到在未来时间是什么。
51.拓扑结构确定模块328可以使一个或更多个处理器310将当前的或未来的拓扑结构或其他拓扑结构信息存储在存储器320中,诸如通过生成和/或更新表示网络100中所有可用节点和可能链路的表、以及与每个节点或链路相关联的调度时间或时间帧来存储在存储器320中。
52.流确定模块330可以使一个或更多个处理器310能够对在给定时间或时间帧内在网络100中确定的所有流进行确定。给定的流可以是对通过网络100的路由路径的一个或更多个要求。例如,每个流可以包括起点站、终点站、时间帧、最小带宽或其他传输要求。一个或更多个处理器310可以基于使用拓扑结构确定模块328确定的拓扑结构信息和/或关于一个或更多个客户端设备350的客户端数据的特性的信息,来对流进行确定。客户端数据信息可以由一个或更多个处理器310使用如下所述的调度模块336从一个或更多个客户端设备350或远程系统接收。客户端数据信息可以包括客户端数据的来源和目的地、待传输的客户端数据量、和/或客户端数据的传输定时。数据量可以附加地或可替代性地是在一时间段内待从地理区域中的一个或更多个特定地面站传输的或向地理区域中的一个或更多个特定地面站传输的所估计的平均数据量。
53.流的最小带宽可以由一个或更多个处理器310根据可用的系统资源和链路能力来预设或预先确定,或者可替代性地,可以基于包括在客户端数据中的要求来确定。对于输送大量数据的流可以设置更大的带宽。一个或更多个处理器310可以通过能够在请求的时间内传输客户端数据量的网络来对起始站与目的地站之间的流进行确定。在一些实施方式中,一个或更多个处理器310还可以对与确定的流有关的其他信息进行确定,诸如针对每个确定的流的服务类别或服务质量。其他信息可以是基于从客户端设备接收到的要求。
54.在一些实现方式中,流确定模块330可以使一个或更多个处理器310能够将来自一
个或更多个客户端设备350的客户端数据聚合,以对网络100中的每个节点对之间所需的带宽总量进行确定。例如,所聚合的客户端数据可以被存储在存储器320中。此外,客户端数据可以以粒度级别被聚合。例如,针对每个节点对的网络数据可以按服务类别、服务质量或任何其他相关网络流量鉴别器来聚合。流可以基于任何相关的网络流量鉴别器进一步确定。
55.在其他情况下,历史客户端数据趋势可以被用于预测在未来时间点的客户端数据量、来源、以及目的地。流确定模块330可以使一个或更多个处理器310能够对在未来时间点可直接连接到客户端设备的每个节点之间的多个可用流进行确定。可直接连接的节点,诸如地面站107,能够在不使用网络100的情况下与客户端设备进行通信。每个节点对之间的预测的客户端数据量可以被用于对每个节点对之间的带宽要求进行确定。
56.可替代性地,在没有客户端数据信息的情况下,一个或更多个处理器310可以对在当前时间或未来时间可直接连接到客户端设备的每个节点之间的多个可用流进行确定。对多个可用流的确定可以是基于当前的拓扑结构或未来的拓扑结构。此外,该确定可以是基于最低系统要求的。
57.流确定模块330可以使一个或更多个处理器310能够将所确定的流存储在存储器320中。在一些示例中,一个或更多个处理器310可以用流对表进行注释。
58.求解器模块332可以使一个或更多个处理器310能够基于网络的拓扑结构(诸如基于在被存储在存储器中的表中表示的拓扑结构)来生成网络配置或网络配置的调度。使用第一求解器模块生成的(一个或更多个)网络配置可能是要在其他可能的配置上实现的第一级配置。网络配置可以表示能够满足所有确定的网络流的可行网络拓扑结构,并且可以包括:将在可行网络拓扑结构中使用的节点和链路的列表;以及对节点和链路何时将被使用的调度。网络配置的调度可以表示能够满足所有确定的网络流的一系列可行的网络拓扑结构。一系列可行的网络拓扑结构可以包括:节点和链路的列表;以及对节点和链路何时将被用于网络配置的调度中的每个网络配置的调度。在一些示例中,一系列可行的网络拓扑结构包括:其中数据可以被存储在具有可用存储的节点处的网络拓扑结构;以及其中节点与另一节点形成新的连接或链路并经由新建立的链路传输数据的下一个网络拓扑结构。
59.(一个或更多个)网络配置可以由一个或更多个处理器310基于表中给定时间点的拓扑结构以及基于给定时间点的拓扑结构的网络性能度量来生成。各种网络性能度量,诸如,例如链路带宽、链路延迟、流带宽、流优先级、链路切换时间(即,在网络100中实现新拓扑结构所需的时间)、链路持续时间和/或拓扑结构持续时间,可以被建模为对给定时间点的拓扑结构的加权约束。在一些实施方式中,一个或更多个网络性能度量可以不被包括在被存储在存储器中的表中,但是可以从另一模块、另一节点或远程系统接收。
60.一个或更多个处理器310还可以对所确定的流在由网络配置表示的拓扑结构上的路由路径进行计算。给定的路由路径可以是用于实现满足所确定的流要求的给定流的一种方式,并且可以包括网络中的特定节点和链路,或者一系列节点之间的跳的列表。在一些示例中,给定的路由路径可以包括具有可用存储的节点,该节点满足关于要通过网络传输的数据量的所确定的流要求。遵循给定的路由路径的数据可以在行进到下一跳之前在节点处存储一段时间。
61.另外,与网络的先前状态和先前网络拓扑结构相对应的信息也可以被用于对网络配置或网络配置的调度进行确定。例如,一个或更多个处理器310可以至少部分地基于网络
实现网络配置所需的从先前网络拓扑结构的改变的数量以及网络进行改变的数量所需的时间量来生成网络配置。一个或多个处理器310可以替代性地至少部分地基于网络配置的调度中的网络配置的网络拓扑结构之间的改变的数量以及改变之间的时间量利用路由表的信息来生成网络配置的调度。例如,改变可以包括操纵收发器指向新的方向或改变存储在节点的存储器处的转发表中的转发规则。操纵收发器可能比改变存储在节点的存储器中的转发表花费更多的时间。所生成的网络配置可能需要改变的数量低于阈值数量和/或时间量低于阈值时间量。
62.对于网络配置的调度中的一些后续网络配置对,较早的网络配置与较晚的网络配置之间的差异可以是单个改变,该单个改变可以不涉及改变收发器的方向,诸如在单个节点处的路由改变。
63.在一个或更多个处理器310已经使用求解器模块332生成网络配置和路由路径之后,一个或更多个处理器310可以根据拓扑结构和路由管理器模块326控制网络100的节点,以通过向节点发送实现指令来实现由所生成的第一级配置表示的拓扑结构,以使节点形成包含在所生成的第一级配置中的链路(例如,通过操纵它们各自的收发器,调节它们各自的传输功率电平,设置它们的传输和接收频带等),并根据计算出的用于第一级配置和第二级配置的路由路径而对存储在每个节点处的存储器中的转发表中的转发规则进行更新。例如,对于每个节点,网络控制器可以发送一个或更多个第一转发规则来实现第一级配置。一些转发表可以基于网络配置的调度用改变的调度来进行更新,并且还可以包括用于在下一跳之前在节点处存储数据的指令。
64.此外,当第一级网络配置中出现故障时,网络控制器还可以发送指令以切换到第二级网络配置。在该实现方式中,一个或更多个第一转发规则可以与优先级的指示一起发送,该优先级指示使得第一转发规则以在每个节点处的任何其他转发规则之前就被实现的方式进行存储。其他转发规则可以包括用于第二级网络配置的一个或更多个第二转发规则。第二级配置可以包括网络的节点之间的一个或更多个路由路径,以被用作在环境不允许在网络中的一个或更多个位置处使用第一级配置时的备份。具体地,第二级配置可以实现诸如移动自组织路由协议等的分布式路由协议。例如,第二级配置可以包括在网络中的给定节点与一个或更多个其他节点之间经由可用节点和链路的一个或更多个路由路径,诸如所生成的用于第一级配置的拓扑结构中的路由路径。
65.飞行控制模块334可以使一个或更多个处理器310生成用于诸如hap 110的空中节点的、关于空中节点的飞行路径的飞行指令。例如,一个或更多个处理器310可能无法使用求解器模块332来对表示能够满足所有确定的网络流的网络拓扑结构的网络配置进行确定。一个或更多个处理器可以使用求解器模块332确定该故障的原因是网络100中的一个或更多个空中网络节点已经从其他网络节点行进太远而不能形成链路。作为响应,使用飞行控制模块334,一个或更多个处理器310可以为网络100的空中节点生成并传输飞行指令,这些飞行指令使空中节点能够改变它们的飞行路径,使得可以形成附加链路。例如,飞行指令可能导致空中节点彼此靠近而移动或避开障碍物。在节点已经根据由一个或更多个处理器使用飞行控制模块334生成的飞行指令而被重新定位之后,可以基于网络节点的新位置使用拓扑结构和路由管理器模块326或拓扑结构确定模块328来创建更新表。然后,可以由一个或更多个处理器310使用求解器模块332来对更新表进行处理以确定网络配置。
66.调度模块336可以使网络控制器300处的一个或更多个处理器310与一个或更多个客户端设备350交互。使用调度模块336,一个或更多个处理器310可以从客户端设备350接收要通过网络100传输的客户端数据信息,诸如客户端数据的来源和目的地。从客户端设备350接收的其他信息可以包括与客户端需求有关的数据,诸如要传输的客户端数据量和传输定时。该信息可以被存储在存储器320中和/或根据流确定模块330被使用,以对通过网络100的确定流进行确定。在一些实现方式中,网络控制器300的一个或更多个处理器310可以使用调度模块336基于在给定地面站或给定地理位置处的可用带宽来从一个或更多个客户端设备350请求客户端数据信息。
67.在使用流确定模块330对确定流进行确定并且如上所述使用求解器模块332生成网络配置之后,一个或更多个处理器310可以基于表和所生成的网络配置来生成用于通过网络100传输客户端数据的路由指令。这些路由指令可以包括客户端数据的来源位置、客户端数据的目的地位置、以及客户端数据的传输定时。在一些实施方式中,路由指令可以包括对节点的存储指令,以临时存储来自前一个节点的数据以传输到下一个节点。路由指令可以包括可以被存储在与发送客户端数据的客户端设备350直接连接的网络节点处的调度。一个或更多个处理器310然后可以将路由指令发送到可直接与客户端设备350连接的节点,以使得该节点根据调度通过所确定的流来接收和发起客户端数据的传输。
68.在没有客户端数据信息的情况下对流进行确定的一些实施方式中,调度模块336可以使一个或更多个处理器310向一个或更多个客户端设备350中的客户端设备发送消息,该消息是关于基于使用流确定模块330确定的确定流和使用求解器模块332生成的网络配置来指示通过网络的流量的可用性的。该消息还可以包括流是可用的时间或时间帧、以及/或者用于传输与每个流关联的数据的价值(price)。使用调度模块336,一个或更多个处理器310可以从一个或更多个客户端设备350之一接收响应,该响应包括使用所确定的流之一来传输客户端数据的请求。一个或更多个处理器310然后可以向一个或更多个节点发送路由指令以发起客户端数据通过确定流的传输。
69.示例性方法
70.除了上面描述的和图中所示的系统之外,现在将对各种操作进行描述。一个或更多个处理器310可以生成要在网络中实现的第一级网络配置以及实现第二级网络配置的指令,其中第一级网络配置会遇到如下所述的故障。在图4中,根据以上所述的各个方面中的一些方面示出流程图400,这些方面可以由网络控制器300的一个或更多个处理器310执行。附加地或可替代性地,节点的一个或更多个处理器可以执行一个或更多个操作。虽然图4以特定顺序示出框,但顺序可以变化并且可以同时执行多个操作。此外,可以添加或省略操作。
71.在框402,网络控制器300的一个或更多个处理器310可以使用拓扑结构和路由管理器模块326从网络100内的节点中的每个节点接收信息。信息可以与当前时间或未来时间的节点、天气或链路的当前状况或预测状况相关。在示例性场景中,可以接收位置a作为hap 110a在当前时间的当前位置;可以接收位置b作为hap 110b在当前时间的当前位置;可以接收位置c作为hap 110c在当前时间的当前位置;可以接收位置d作为hap 110d在当前时间的当前位置;可以接收位置e作为hap 110e在当前时间的当前位置;以及可以接收位置f作为hap 110f在当前时间的当前位置。来自hap 110a、110c、110d、110e和110f的天气状况报告
可以指示在位置a、c、d、e和f处当前的天气状况是晴朗的,以及来自hap 110b的天气状况报告可以指示当前的天气状况包括在hap 110e方向上的位置b附近的雷暴。hap 110a还可以向一个或更多个处理器310发送hap 110c对链路131的请求没有响应的指示。此外,可以预测hap 110a在从当前时间开始的一小时内从位置a行进到位置g,并且可以预测hap 110d在从当前时间开始的一小时内从位置d行进到位置h。从当前时间开始的一小时内的天气预报可以包括在位置h与地面站107a的位置之间的雷暴。对于网络100中的链路或网络100的每个子网,与带宽、延迟或链路寿命持续时间有关的信息可以被一个或更多个处理器310接收。例如,网络100中的链路的信息可以包括多少带宽是可用的。
72.在框404,可以使用拓扑结构和路由管理器模块326基于从网络的节点所接收到的信息,来对网络100中的可用节点和可能的链路进行确定。在一些实现方式中,可以将所确定的可用节点、可能的链路和对应的数据存储在存储器320中,诸如存储在表中。在示例性场景中,基于所接收到的信息,确定hap 110a在当前天气为晴朗的位置a是可用的,并且预测hap 110a在一小时内位于位置g。对于hap 110b,它被确定为在位置b是可用的,其中除了朝向hap 110e的一个方向为雷暴外,位置b的天气通常是晴朗的。对于hap 110c、110e和110f,确定在当前天气也是晴朗的相应位置c、e和f处是可用的。对于hap 110d,它被确定为当前位于位置d处,并且预测在一小时内位于位置h处,其中天气将包括在那时在位置h与地面站107a的位置之间的雷暴。
73.此外,链路130、132至136和140至145被确定为在当前时间可用(在图5中被示出为实线箭头),而链路131和137是不可用的(以点划线示出)。对于链路131,可以基于hap 110c对来自hap 110a的请求没有响应的指示来确定链路131在当前时间发生故障。对于链路137,可以确定由于hap 110b与hap 110e之间的雷暴,链路137在当前时间是不可用的。对于链路140,可以确定由于hap 110d与地面站107a之间的雷暴,链路140在未来时间是不可用的。还可以基于预测的节点的未来位置或预测的每个节点处的状况(诸如天气预报),来对对于不同于当前时间的不同时间点的可用节点和可能的链路进行确定。
74.在框406,一个或更多个处理器310可以使用拓扑结构确定模块328基于可用节点和可能的链路,来对在给定时间点或给定时间帧的网络拓扑结构进行确定。在一些实现方式中,一个或更多个处理器310可以访问表或其他数据结构,指示存储器320中的可用节点和可能的链路。对于示例性场景,为了对当前拓扑结构进行确定,一个或更多个处理器310可以从表和与每个节点和链路相关联的经调度的时间来确定哪些节点和链路在当前时间是可用的。根据接收到的关于hap 110a至110f的信息,可以确定如图5所示的当前拓扑结构500。可以确定当前拓扑结构包括节点107、110。具体地,在当前拓扑结构中可以在位置a包括hap 110a,在位置b包括hap 110b,在位置c包括hap 110c,在位置d包括hap 110d,在位置e包括hap 110e,以及在位置f包括hap l10f,因为对于当前时间这些位置是与如在框404中确定的相应hap相关联的位置。如当前拓扑结构500中的箭头所示,在当前拓扑结构中包括链路130、132至137和140至145,而根据框404被指示为在当前时间处于故障的链路131和137不包括在内(在图5中被示出为没有箭头的点划线)。在另一示例中,如果hap 110c没有向一个或更多个处理器310报告其在位置c的位置,但先前使用飞行控制模块334报告了飞行路径或轨迹,则一个或更多个处理器310可以基于飞行路径或轨迹而确定hap 110c当前处于位置c并且在当前拓扑结构中包括hap 110c。在一些实现方式中,当前拓扑结构中的每
个可能的链路130、132至136和140至145也可以被标记有基于所接收到的信息确定的链路度量(诸如带宽)。
75.在框408,可以由一个或更多个处理器310使用调度模块336接收与要通过网络100传输的客户端数据相关的信息。可以从在给定地面站附近或在与网络控制器300进行通信的地理区域中的一个或更多个客户端设备接收客户端数据信息。客户端数据信息可以包括客户端数据的数据量、来源位置和目的地位置、以及所请求的传输时间。例如,在示例性场景中,接收到的信息可以指示对于第一客户端数据,客户端数据量为10gb,第一客户端数据的来源位置为地面站107b,目的地位置为地面站107a,以及所请求的传输时间为当前时间。数据量可以附加地或可替代性地是要从给定地面站或给定地理区域中的客户端设备传输或者向给定地面站或给定地理区域中的客户端设备传输的所估计的平均数据量。在一些情况下,该信息还包括传输要求,诸如带宽、服务类别、服务质量等。在一些实施方式中,与客户端数据相关的信息可以由网络控制器300的一个或更多个处理器310预测或由远程系统预测。
76.在框410,可以由一个或更多个处理器310使用求解器模块332来对用于所确定的拓扑结构500的第一级网络配置700进行确定。第一级网络配置700可以通过以下来确定:根据所接收到的客户端数据信息(诸如在框408处接收到的信息)来对用于客户端数据的通过拓扑结构的流进行确定,并且选择一个或更多个用于客户端数据的通过拓扑结构的流作为路由路径。例如,第一级网络配置700包括在当前时间的所有可用节点和链路,注意省略了链路131、137和节点110e。如图6中的浅色箭头所示,拓扑结构500中用于第一客户端数据的第一路由路径可以包括地面站107b到地面站107a之间的路由路径部分。第一路由路径部分是从地面站107b通过链路135到hap 110b,第二路由路径部分是从hap 110b通过链路132到hap 110a,以及第三路由路径部分是从hap 110a通过链路130到地面站107a。
77.要从地面站107b传输到地面站107a的其他客户端数据可以沿与用于第一客户端数据的路由路径相同的路由路径进行传输,或者可以被确定为由于诸如带宽约束等的约束而至少部分地沿第二路由路径从地面站107b到地面站107a进行传输。如图6中的杂凑填充箭头(hash-filled arrow)所示,第二路由路径可以包括从地面站107b通过链路134到hap 110c的第一路由路径部分、从hap 110c通过链路133到hap 110b的第二路由路径部分、从hap 110b通过链路132到hap 110a的第三路由路径部分、以及从hap 110a通过链路130到地面站107a的第四路由路径部分。
78.如图6中的灰色箭头所示,用于附加客户端数据的第三路由路径可以包括从地面站107a通过链路140到hap 110d的第一路由路径部分、从hap 110d通过链路143到hap 110f的第二路由路径部分、以及从hap 110f通过链路145到地面站107c的第三路由路径部分。
79.基于用于在当前时间要通过网络传输的客户端数据的路由路径,一个或更多个处理器310可以确定第一级网络配置700包括链路130、132至136、140、143、和145,如图7所示。其他链路不需要在当前时间形成。确定第一级网络配置700还可以包括:基于被包括在第一级网络配置中的路由路径,来对用于每个节点的第一转发规则进行确定。可以对沿路径的每个节点确定第一转发规则,或者可以对每个客户端数据确定第一转发规则。当对于特定客户端数据确定时,第一转发规则可以被发送到来源节点并且被封装在承载特定客户端数据的数据包中。第一转发规则还可以包括关于在诸如指向方向或波束配置等的第一级网络
配置中形成链路的指令。
80.在框412,可以在网络处的每个可用节点处对网络100的第二级网络配置800进行确定。具体地,可以由给定节点处的一个或更多个处理器使用分布式路由协议(诸如移动自组织网络路由协议)来对第二级网络配置进行确定。例如,可以基于来自第一级网络配置700的节点和链路来对来自给定节点的一个或更多个下一跳进行确定。在给定节点处的一个或更多个处理器可以对从给定节点到网络控制器300的第二级路由路径、一个或更多个目的地节点、和/或中间更高级别节点进行确定。第二级网络配置中的第二级路由路径可能不同于第一级网络配置中的路由路径。与第一级网络配置中的路由路径相比,第二级网络配置中的可能的第二级路由路径可能更多或更少。在给定节点处的一个或更多个处理器可以基于网络中的可用节点和链路来对第二级网络配置有规律地或持续地进行确定。附加地或可替代性地,在给定节点处的一个或更多个处理器可以在从网络控制器接收到可用节点或链路之后对第二级网络配置进行确定,诸如基于第一级网络配置中的节点和链路来对第二级网络配置进行确定。
81.给定节点的一个或更多个处理器然后可以基于第二级路由路径来对来自给定节点的第二转发规则进行确定。第二转发规则可以用于先应式(表驱动)路由、反应式(按需)路由、混合式(先应式和反应式)路由、或分层式路由。在一些实现方式中,用于给定节点的第二转发规则包括在给定节点与目的地节点之间的用于客户端数据的第二级路由路径的下一跳指令。在其他实现方式中,用于给定节点的第二转发规则包括到与期望目的地节点相关联的下一个节点的下一跳指令,而不是到期望目的地节点的路由路径中的每个节点。在又一些实现方式中,第二转发规则可以包括第一级配置的节点和链路的表以及路由协议。给定节点的一个或更多个处理器然后可以基于表和路由协议,可选地在对表进行更新以反映任何链路故障或拓扑结构中的其他改变之后,来对要采用的路由路径进行确定。
82.在图8所示的示例中,第二级网络配置800可以包括用于第一第二级路由路径(杂凑填充的)和第二第二级路由路径(灰色的)的第二转发规则。在第二级网络配置中也可以包括其他第二级路由路径,但为了清楚起见未示出。第一第二级路由路径可以被确定为用于第一客户端数据的备份路径。第一第二级路由路径是从地面站107b通过链路134到hap 110c,通过链路133到hap 110b,通过链路132到hap 110a,以及通过链路130到地面站107a。该第二级路由路径与第一级网络配置中的路由路径的不同之处在于,地面站107b与hap 110b之间的链路135被连接到hap 110c的链路134和133取代,这可以在链路135中发生故障的情况下使用。第二第二级路由路径可以被确定为用于附加客户端数据的备用路径,该附加客户端数据将沿着地面站107a和107c之间的第一级网络配置中的路由路径进行传输。具体地,第二第二级路由路径是从地面站107a通过链路130到hap 110a,通过链路132到hap 110b,通过链路136到hap 110d,通过链路143到hap 1l0f,以及通过链路145到地面站107c。该第二级路由路径与第一级网络配置中的路由路径的不同之处在于,地面站107a与hap 110d之间的链路140被连接到hap 110a和110b的链路130、132和136取代,这可以在链路140中发生故障的情况下使用。
83.如图4中进一步所示,在框414,网络控制器300的一个或更多个处理器310可以向网络100的节点107、110发送实现指令,以使网络的节点在给定的时间点或在给定的时间帧期间实现第一级网络配置并且切换到用于备份的第二级网络配置。在示例性场景中,对于
第一级网络配置,对节点107、110的实现指令可以包括形成链路并且至少实现图6中所示的路由路径部分的指令。因此实现指令可以包括:对地面站107a的以将地面站107a的一个或更多个收发器指向hap 110a和110d来分别形成链路130和132的指令;对地面站107b的以将地面站107b的一个或更多个收发器指向hap 110b和110c来分别形成链路135和134的指令;对地面站107c的以将地面站107c的一个或更多个收发器指向hap 110f来形成链路145的指令;对hap 110a的以将hap 110a的收发器指向地面站107a和hap 110b来分别形成链路130和132的指令;对hap 110b的以将hap 110b的收发器指向地面站107b、hap 110a、hap 110b和hap 110d来分别形成链路135、132、133和136的指令;对hap 110c的以将hap 110c的收发器指向地面站107b和hap 110b来分别形成链路134和133的指令;对hap 110d的以将hap 110d的收发器指向地面站107a、hap 110b和hap 110f来分别形成链路140、136和143的指令;以及对hap 110f的以将hap 110f的收发器指向hap 110d和地面站107c来分别形成链路143和145的指令。
84.在一些情况下,第一级网络配置中的链路中的一个或更多个链路可能已经形成,在这种情况下不需要改变收发器的方向。此外,对地面站107a或107b(起始站)的实现指令可以包括第一转发规则,用于接收和传输要通过给定网络配置经由路由路径传输的客户端数据。第一转发规则可以包括客户端数据的来源位置、客户端数据的目的地位置、传输定时和/或传输速率。例如,当在地面站107b处接收到用于第一客户端数据的第一转发规则时,可以使地面站107b在当前时间通过第一级网络配置传输第一客户端数据。
85.对于针对未来时间、未来时间帧或其他时间点生成的第一级网络配置,实现指令可以包括在未来某个时间点传输客户端数据之前可能出现的每个节点处,将经调度的改变存储在网络100中,诸如操纵收发器以实现新的路由路径。因此,实现指令可以包括利用新的路由路径和用于根据未来网络配置实现新的路由路径的时间或时间帧来对每个节点处的转发表中的转发规则进行更新。当时间或时间帧到达时,可以使网络100的节点107、110根据实现指令而自动地实现未来的网络配置。
86.实现指令还可以包括用于准备网络以当第一级网络配置内出现故障时在与第一级网络配置相同的时间或时间帧实现第二级网络配置的指令。在这种情况下,实现指令可以包括将用于实现诸如图8中所示的第二级路由路径的第二转发规则存储为对第一级网络配置的第一转发规则的备份。例如,实现指令可以包括:对地面站107a的以经由链路134将第一客户端数据路由到hap 110c的下一跳指令、对hap 110c的以经由链路133将第一客户端数据路由到hap 110b的下一跳指令、对地面站107b的以经由链路130将附加客户端数据路由到hap 110a的下一跳指令、对hap 110a的以将附加客户端数据路由到hap 110b的下一跳指令、以及对hap 110b的以将附加客户端数据路由到hap 110d的下一跳指令。
87.实现指令还可以包括在某些情况下从实现第一转发规则切换到实现第二转发规则的指令。例如,切换指令可以包括对何时不能完成第一转发规则进行检测,诸如何时在第一节点与第二节点之间存在链路故障,何时在第二节点处未从第一节点接收到所传输的客户端数据,或者何时所传输的客户端数据在预期的时间量内未在目的地节点接收到。该指令然后可以包括实现来自第一节点或来自网络中的另一节点的第二转发规则以便绕过发生故障的第一转发规则。在一些示例中,指令可以包括:在实现第二转发规则之前,基于第一级网络配置和出故障的第一转发规则来对是否可以实现第二转发规则或者实现哪个第
二转发规则进行确定。
88.在图9中,根据以上所述的各个方面中的一些方面示出了流程图900,这些方面可以由网络的给定节点的一个或更多个处理器(诸如hap 110a的一个或更多个处理器210)执行。附加地或可替代性地,网络控制器300的一个或更多个处理器310可以执行一个或更多个操作。虽然图9以特定顺序示出框,但顺序可以变化并且可以同时执行多个操作。此外,可以添加或省略操作。
89.在框902,接收实现指令的第一节点的一个或更多个处理器,诸如地面站107a的一个或更多个处理器,可以对用于第一级网络配置的第一转发规则中的一个或更多个第一转发规则进行存储,所述一个或更多个第一转发规则与用于第二级网络配置的第二转发规则中的一个或更多个第二转发规则相关。可以如上文关于图4中的流程图400所述的内容来对第一转发规则和第二转发规则进行确定。在一些实现方式中,在接收到第一转发规则之后,可以由第一节点的一个或更多个处理器对一个或更多个第二转发规则进行确定或更新。基于实现指令,可以以比所述一个或更多个第二转发规则更高的优先级对一个或更多个第一转发规则进行存储。一个或更多个第一转发规则的更高优先级可以导致在给定时间点实现所述一个或更多个第一转发规则,除非所述第一转发规则中的一个都不能再被实现。例如,在地面站107a处,用于附加客户端数据的第一转发规则可以是朝向地面站107c的目的地的经由链路140到hap 110d的下一跳,并且用于附加客户端数据的第二转发规则可以是朝向地面站107c的目的地的经由链路130到hap 110a的下一跳。
90.在框904,在给定时间点,第一节点的一个或更多个处理器可以实现一个或更多个第一转发规则,所述一个或更多个第一转发规则包括将信号导向第二节点。实现一个或更多个第一转发规则可以包括建立与第二节点的链路。例如,为了实现一个或更多个第一转发规则中的第一转发规则,第一节点可以根据路由路径而将天线与作为网络中的下一跳的第二节点物理地或电子地对准。第一节点还可以对用于与网络中的第二节点的链路的一个或更多个信号特性进行调节。对于地面站107a,地面站107a的一个或更多个处理器可以使至少一个收发器指向位置d以根据第一转发规则而与hap 110d形成链路140。hap 110d同样可以将至少一个收发器指向地面站107a以被定位成从地面站107a接收信号。地面站107a的至少一个收发器可以被配置有用于链路的特定频带或其他信号特性。附加客户端数据可以在链路140上从地面站107a被传输到hap 110d。
91.在框906,第一节点可以对第二节点处的本地故障进行检测。当无法建立与第二节点的通信时,可以检测到第二节点处的本地故障。可替代性地,当在第一节点处从网络控制器或网络的第三节点接收到指示第二节点离线或以其他方式不可到达的通信时,可以检测到本地故障。例如,地面站107a的一个或更多个处理器可以确定:在无法建立链路140时或者在接收到指示风暴定位在地面站107a与hap 110d之间而使hap 110d在一段时间内无法达到的天气通信时,hap 110d经受了本地故障。
92.在框908处,在检测到第二节点处的本地故障之后,第一节点可以实现一个或更多个第二转发规则中的至少一个第二转发规则,该至少一个第二转发规则包括将信号导向第三节点。一个或更多个第二转发规则可以被存储在第一节点的存储器中,或可以在检测到本地故障后被确定。在一些实现方式中,可以基于数据的目的地或者基于第一节点与目的地之间的可用中间节点,从一个或更多个第二转发规则中选择至少一个第二转发规则。实
现所述至少一个第二转发规则可以包括建立与第三节点的链路。可替代性地,与第三节点的链路可能已经从第一级配置存在,并且实现所述至少一个第二转发规则可以包括将信号从指向第二节点的第一端口重定向到指向第三节点的第二端口。例如,地面站107a的一个或更多个处理器可以切换到在链路130上将附加客户端数据传输到hap 110a。因为用于路由第一客户端数据已经形成链路130,所以hap 110a已经被定位成接收来自地面站107a的通信。
93.在一些示例中,第一节点可以向网络控制器发送关于第二节点的本地故障的通知,如框910所示。在其他示例中,网络控制器可以使用与网络控制器通信的其他节点或其他传感器对第二节点的本地故障进行检测。
94.网络控制器可以生成经更新的第一级配置以针对第二节点的本地故障进行调节。经更新的第一级配置可以是以与第一第一级配置相同或相似的方式使用软件定义网络生成的总体配置。一旦生成,用于经更新的第一级配置的经更新的转发规则可以被发送到网络的节点以被实现。经更新的第一级配置可以替换以下中的任何一者:由网络的节点实现的一个或更多个第一转发规则以及一个或更多个第二转发规则。
95.在一些替代性的实现方式中,网络控制器可以对第二级网络配置进行确定以对包括一个或更多个第二转发规则的第一级网络配置进行备份,并且以与传输一个或更多个第一转发规则相同或相似的方式将一个或更多个第二转发规则传输到相应的节点。
96.该技术使得能够实现更可靠的软件定义网络。在诸如本地故障等的事件期间,通信可以以更少的延迟和更少的数据包丢失来传输,同时保持软件定义网络的全局最优性。例如,当在第一级网络的局部故障之后第一级网络的控制平面被转移到第二级网络时,第一级网络可以具有较短的修复时间。结果,与在其他网络中相比,客户端数据可以被更快或更准时发送和接收。网络可能能够支持总体上更大量数据的传输。
97.除非另有说明,否则前述替代性示例不是相互排斥的,而是可以以各种组合来实现以实现独特的优点。由于可以在不脱离权利要求所限定的主题的情况下利用以上讨论的特征的这些和其他变型和组合,因此实施方式的前述描述应当以说明的方式,而不是以限制权利要求书所定义的主题的方式进行。此外,提供本文描述的示例,以及表述为“诸如”、“包括”等的从句,不应被解释为将权利要求的主题限制为特定示例;相反,这些示例旨在仅说明许多可能的实施方式中的一个。此外,不同附图中的相同附图标记可以标识相同或相似的元件。

技术特征:
1.一种系统,所述系统包括:网络控制器,所述网络控制器包括一个或更多个处理器,所述一个或更多个处理器被配置成:从网络的多个节点接收节点信息,所述多个节点包括第一节点,所述第一节点相对于第二节点处于运动中;基于所接收到的节点信息,来对所述网络中的可用节点和可能的链路进行确定;基于所述可用节点和可能的链路,来对所述网络的拓扑结构进行确定;从一个或更多个客户端设备接收客户端数据信息,所述客户端数据信息与待通过所述网络传输的客户端数据相关;对用于所确定的拓扑结构的第一级网络配置进行确定,其中,所述第一级网络配置包括用于所述客户端数据的一个或更多个第一路由路径;以及将实现指令发送到所述网络的所述多个节点,以使得所述多个节点实现所述第一级网络配置,并且在所述第一级网络配置发生故障时切换到第二级网络配置,其中,所述第二级网络配置包括用于所述客户端数据通过所确定的拓扑结构的一个或更多个第二路由路径,所确定的拓扑结构实现移动自组织网络。2.根据权利要求1所述的系统,其中,所述实现指令还使所述网络的每个节点能够使用所确定的拓扑结构中的移动自组织网络来对所述第二级网络配置中的下一跳进行确定。3.根据权利要求1所述的系统,其中,所述一个或更多个处理器还被配置成:基于所述一个或更多个第一路由路径,来对用于所述网络的每个节点的第一转发规则进行确定;以及其中,所述实现指令包括所述第一转发规则。4.根据权利要求3所述的系统,其中,所述第一转发规则包括关于在所述第一级网络配置中形成链路的指令。5.根据权利要求3所述的系统,其中,用于所述网络的每个节点的所述实现指令包括:当所述第一转发规则不能被实现时,切换到用于所述第二网络配置的第二转发规则。6.根据权利要求5所述的系统,其中,所述第二转发规则用于先应式路由。7.根据权利要求5所述的系统,其中,所述第二转发规则用于反应式路由。8.根据权利要求5所述的系统,其中,所述第二转发规则用于混合式路由。9.根据权利要求5所述的系统,其中,所述实现指令还包括:在切换到所述第二转发规则之前,对到下一跳的链路故障进行检测。10.一种计算机实现的方法,所述计算机实现的方法包括:由一个或更多个处理器从网络的多个节点接收节点信息,所述多个节点包括第一节点,所述第一节点相对于第二节点处于运动中;由所述一个或更多个处理器基于所接收到的信息,来对所述网络中的可用节点和可能的链路进行确定;由所述一个或更多个处理器基于所述可用节点和可能的链路,来对所述网络的拓扑结构进行确定;由所述一个或更多个处理器从一个或更多个客户端设备接收客户端数据信息,所述客户端数据信息与待通过所述网络传输的客户端数据相关;
由所述一个或更多个处理器对用于所确定的拓扑结构的第一级网络配置进行确定,其中,所述第一级网络配置包括用于所述客户端数据的一个或更多个第一路由路径;以及由所述一个或更多个处理器将实现指令发送到所述网络的所述多个节点,以使得所述多个节点实现所述第一级网络配置,并且在所述第一级网络配置发生故障时切换到第二级网络配置,其中,所述第二级网络配置包括用于所述客户端数据通过所确定的拓扑结构的一个或更多个第二路由路径,所确定的拓扑结构实现移动自组织网络。11.根据权利要求10所述的方法,其中,所述实现指令还使所述网络的每个节点能够使用所确定的拓扑结构中的移动自组织网络来对所述第二级网络配置中的下一跳进行确定。12.根据权利要求10所述的方法,其中,对所述第一级网络配置进行确定还包括:基于所述一个或更多个第一路由路径,来对用于所述网络的每个节点的第一转发规则进行确定;以及其中,所述实现指令包括所述第一转发规则。13.根据权利要求12所述的方法,其中,所述第一转发规则包括关于在所述第一级网络配置中形成链路的指令。14.根据权利要求12所述的方法,其中,用于所述网络的每个节点的所述实现指令包括:当所述第一转发规则不能被实现时,切换到用于所述第二网络配置的第二转发规则。15.根据权利要求14所述的方法,其中,所述第二转发规则用于先应式路由。16.根据权利要求14所述的方法,其中,所述第二转发规则用于反应式路由。17.根据权利要求14所述的方法,其中,所述第二转发规则用于混合式路由。18.根据权利要求14所述的方法,其中,所述实现指令还包括:在切换到所述第二转发规则之前,对到下一跳的链路故障进行检测。19.一种非暂态的、有形的计算机可读存储介质,在所述计算机可读存储介质上存储有计算机可读程序指令,所述计算机可读程序指令在由一个或更多个处理器执行时使所述一个或更多个处理器执行以下方法,所述方法包括:从网络的多个节点接收节点信息,所述多个节点包括第一节点,所述第一节点相对于第二节点处于运动中;基于所接收到的信息,来对所述网络中的可用节点和可能的链路进行确定;基于所述可用节点和可能的链路,来对所述网络的拓扑结构进行确定;从一个或更多个客户端设备接收客户端数据信息,所述客户端数据信息与待通过所述网络传输的客户端数据相关;对用于所确定的拓扑结构的第一级网络配置进行确定,其中,所述第一级网络配置包括用于所述客户端数据的一个或更多个第一路由路径;以及将实现指令发送到所述网络的所述多个节点,以使得所述多个节点实现所述第一级网络配置,并且在所述第一级网络配置发生故障时切换到第二级网络配置,其中,所述第二级网络配置包括用于所述客户端数据通过所确定的拓扑结构的一个或更多个第二路由路径,所确定的拓扑结构实现移动自组织网络。20.根据权利要求19所述的存储介质,其中,对所述第一级网络配置进行确定还包括:基于所述一个或更多个第一路由路径,来对用于所述网络的每个节点的第一转发规则进行
确定;以及其中,所述实现指令包括第一转发规则并且使所述网络的每个节点能够使用所确定的拓扑结构中的移动自组织网络来对所述第二级网络配置中的下一跳进行确定。

技术总结
网络控制器300被配置成:使网络100实现网络的第一级网络配置700和第二级网络配置800,第二级网络配置800作为第一级网络配置的备份。网络控制器可以被配置成:从网络的多个节点107、110接收信息,并且所述信息与待通过网络传输的客户端数据相关。基于节点信息,网络控制器被配置成:对网络中的可用节点和可能的链路进行确定,以及然后对网络的拓扑结构500进行确定。第一级网络配置是基于拓扑结构确定的。网络控制器然后将指令发送到网络的多个节点以实现第一级网络配置并且在第一级网络配置发生故障时切换到第二级网络配置,其中,第二级网络配置在所确定的拓扑结构中实现移动自组织网络。自组织网络。自组织网络。


技术研发人员:布赖恩
受保护的技术使用者:阿利里亚科技公司
技术研发日:2021.12.03
技术公布日:2023/8/16
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐