IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アーリリア テクノロジーズ,インコーポレイテッドの特許一覧

特表2023-544478メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング
<>
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図1
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図2
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図3
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図4
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図5
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図6
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図7
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図8
  • 特表-メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-10-24
(54)【発明の名称】メッシュネットワークにおけるハイブリッドソフトウェア定義ネットワーキング及びモバイルアドホックネットワーキングルーティング
(51)【国際特許分類】
   H04L 45/02 20220101AFI20231017BHJP
   H04W 24/04 20090101ALI20231017BHJP
   H04W 40/02 20090101ALI20231017BHJP
【FI】
H04L45/02
H04W24/04
H04W40/02
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023511623
(86)(22)【出願日】2021-12-03
(85)【翻訳文提出日】2023-04-05
(86)【国際出願番号】 US2021061749
(87)【国際公開番号】W WO2022146618
(87)【国際公開日】2022-07-07
(31)【優先権主張番号】17/138,019
(32)【優先日】2020-12-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】523048206
【氏名又は名称】アーリリア テクノロジーズ,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】バリット,ブライアン
(72)【発明者】
【氏名】クーリッジ,イアン
(72)【発明者】
【氏名】マンドル,デイビッド
【テーマコード(参考)】
5K030
5K067
【Fターム(参考)】
5K030GA12
5K030HC09
5K030JL01
5K030JL02
5K030JT09
5K030LB07
5K030LB08
5K030LE10
5K030MD07
5K067AA26
5K067DD11
5K067EE02
5K067EE07
5K067EE16
(57)【要約】
ネットワークコントローラ300は、ネットワーク100に、ネットワークの一次ネットワーク構成700と、一次ネットワーク構成のバックアップとしての二次ネットワーク構成800とを実装させるように構成されている。ネットワークコントローラは、ネットワークの複数のノード107、110からの情報と、ネットワーク上で伝送されるクライアントデータに関連する情報とを受信するように構成され得る。ノード情報に基づいて、ネットワークコントローラは、ネットワーク内の利用可能なノード及び可能なリンクを決定し、次いで、ネットワークのトポロジ500を決定するように構成されている。一次ネットワーク構成は、トポロジに基づいて決定される。次いで、ネットワークコントローラは、一次ネットワーク構成を実装し、かつ一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えるための命令を、ネットワークの複数のノードに送信し、二次ネットワーク構成は、決定されたトポロジにおいてモバイルアドホックネットワーキングを実装する。
【特許請求の範囲】
【請求項1】
システムであって、
1つ以上のプロセッサを含むネットワークコントローラを備え、前記1つ以上のプロセッサが、
ネットワークの複数のノードからノード情報を受信することであって、前記複数のノードが、第2のノードに対して動いている第1のノードを含むことと、
受信された前記ノード情報に基づいて、前記ネットワーク内の利用可能なノード及び可能なリンクを決定することと、
前記利用可能なノード及び可能なリンクに基づいて、前記ネットワークのトポロジを
決定することと、
1つ以上のクライアントデバイスから、前記ネットワーク上で伝送されるクライアントデータに関連するクライアントデータ情報を
受信することと、
決定された前記トポロジのための一次ネットワーク構成を決定することであって、前記一次ネットワーク構成が、前記クライアントデータのための1つ以上の第1のルーティング経路を含むことと、
前記ネットワークの前記複数のノードに前記一次ネットワーク構成を実装させ、かつ前記一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えさせるための実装命令を、前記複数のノードに送信することであって、前記二次ネットワーク構成が、決定された前記トポロジを通る前記クライアントデータのための1つ以上の第2のルーティング経路を含み、決定された前記トポロジが、モバイルアドホックネットワーキングを実装することと、を行うように構成されている、システム。
【請求項2】
前記実装命令が更に、前記ネットワークの各ノードに、決定された前記トポロジにおけるモバイルアドホックネットワーキングを使用して、前記二次ネットワーク構成内の次のホップを決定させる、請求項1に記載のシステム。
【請求項3】
前記1つ以上のプロセッサが、前記1つ以上の第1のルーティング経路に基づいて、前記ネットワークの各ノードのための第1の転送ルールを決定するように更に構成され、
前記実装命令が、前記第1の転送ルールを含む、請求項1に記載のシステム。
【請求項4】
前記第1の転送ルールが、前記一次ネットワーク構成内でリンクを形成することに関する命令を含む、請求項3に記載のシステム。
【請求項5】
前記ネットワークの各ノードに対する前記実装命令が、前記第1の転送ルールが実装できないときに前記第2のネットワーク構成のための第2の転送ルールに切り替えることを含む、請求項3に記載のシステム。
【請求項6】
前記第2の転送ルールが、プロアクティブルーティングのためのものである、請求項5に記載のシステム。
【請求項7】
前記第2の転送ルールが、リアクティブルーティングのためのものである、請求項5に記載のシステム。
【請求項8】
前記第2の転送ルールが、ハイブリッドルーティングのためのものである、請求項5に記載のシステム。
【請求項9】
前記実装命令が、前記第2の転送ルールへの切り替えの前に、次のホップへのリンク障害を検出することを更に含む、請求項5に記載のシステム。
【請求項10】
コンピュータ実装方法であって、前記方法が、
1つ以上のプロセッサによって、ネットワークの複数のノードからノード情報を受信することであって、前記複数のノードが、第2のノードに対して動いている第1のノードを含むことと、
前記1つ以上のプロセッサによって、受信された前記情報に基づいて、前記ネットワーク内の利用可能なノード及び可能なリンクを決定することと、
前記1つ以上のプロセッサによって、前記利用可能なノード及び可能なリンクに基づいて、前記ネットワークのトポロジを決定することと、
前記1つ以上のプロセッサによって、1つ以上のクライアントデバイスから、前記ネットワーク上で伝送されるクライアントデータに関連するクライアントデータ情報を受信することと、
前記1つ以上のプロセッサによって、決定された前記トポロジのための一次ネットワーク構成を決定することであって、前記一次ネットワーク構成が、前記クライアントデータのための1つ以上の第1のルーティング経路を含むことと、
前記1つ以上のプロセッサによって、前記ネットワークの前記複数のノードに前記一次ネットワーク構成を実装させ、かつ前記一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えさせるための実装命令を、前記複数のノードに送信することであって、前記二次ネットワーク構成が、決定された前記トポロジを通る前記クライアントデータのための1つ以上の第2のルーティング経路を含み、決定された前記トポロジが、モバイルアドホックネットワーキングを実装することと、を含む、方法。
【請求項11】
前記実装命令が更に、前記ネットワークの各ノードに、決定された前記トポロジにおけるモバイルアドホックネットワーキングを使用して、前記二次ネットワーク構成内の次のホップを決定させる、請求項10に記載の方法。
【請求項12】
前記一次ネットワーク構成を前記決定することが、前記1つ以上の第1のルーティング経路に基づいて、前記ネットワークの各ノードのための第1の転送ルールを決定することを更に含み、
前記実装命令が、前記第1の転送ルールを含む、請求項10に記載の方法。
【請求項13】
前記第1の転送ルールが、前記一次ネットワーク構成内でリンクを形成することに関する命令を含む、請求項12に記載の方法。
【請求項14】
前記ネットワークの各ノードに対する前記実装命令が、前記第1の転送ルールが実装できないときに前記第2のネットワーク構成のための第2の転送ルールに切り替えることを含む、請求項12に記載の方法。
【請求項15】
前記第2の転送ルールが、プロアクティブルーティングのためのものである、請求項14に記載の方法。
【請求項16】
前記第2の転送ルールが、リアクティブルーティングのためのものである、請求項14に記載の方法。
【請求項17】
前記第2の転送ルールが、ハイブリッドルーティングのためのものである、請求項14に記載の方法。
【請求項18】
前記実装命令が、前記第2の転送ルールへの切り替えの前から次のホップへのリンク障害を検出することを更に含む、請求項14に記載の方法。
【請求項19】
プログラムのコンピュータ可読命令が格納された非一時的有形コンピュータ可読記憶媒体であって、前記命令が、1つ以上のプロセッサによって実行されたときに、前記1つ以上のプロセッサに、
ネットワークの複数のノードからノード情報を受信することであって、前記複数のノードが、第2のノードに対して動いている第1のノードを含むことと、
受信された前記情報に基づいて、前記ネットワーク内の利用可能なノード及び可能なリンクを決定することと、
前記利用可能なノード及び可能なリンクに基づいているので、前記ネットワークのトポロジを
決定することと、
1つ以上のクライアントデバイスから、前記ネットワーク上で伝送されるクライアントデータに関連するクライアントデータ情報を
受信することと、
決定された前記トポロジのための一次ネットワーク構成を決定することであって、前記一次ネットワーク構成が、前記クライアントデータのための1つ以上の第1のルーティング経路を含むことと、
前記ネットワークの前記複数のノードに前記一次ネットワーク構成を実装させ、かつ前記一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えさせるための実装命令を、前記複数のノードに送信することであって、前記二次ネットワーク構成が、決定された前記トポロジを通る前記クライアントデータのための1つ以上の第2のルーティング経路を含み、決定された前記トポロジが、モバイルアドホックネットワーキングを実装することと、を含む方法を実施させる、記憶媒体。
【請求項20】
前記一次ネットワーク構成を前記決定することが、前記1つ以上の第1のルーティング経路に基づいて、前記ネットワークの各ノードのための第1の転送ルールを決定することを更に含み、
前記実装命令が、前記第1の転送ルールを含み、かつ前記ネットワークの各ノードに、決定された前記トポロジにおけるモバイルアドホックネットワーキングを使用して、前記二次ネットワーク構成内の次のホップを決定させる、請求項19に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年12月30日に出願された米国特許出願第17/138,019号の利益を主張し、その開示全体は参照により本明細書に組み込まれる。
【背景技術】
【0002】
情報は、航空宇宙及び他のモバイルネットワークなどの指向性ポイントツーポイントネットワークを介して伝送することができる。このようなネットワークでは、各ノード対の送受信機を互いに向けることによって、ノード対間にリンクを形成することができる。いくつかの実装形態では、ノードは、地球に対して動いている非静止衛星軌道(non-geostationary satellite orbit、NGSO)衛星又は他の高高度プラットフォーム(high-altitude platform、HAP)を含み得る。
【概要】
【0003】
本開示の態様は、ネットワークの一次ネットワーク構成及び二次ネットワーク構成を計画するためのシステム及び方法を提供し、二次ネットワーク構成は、一次ネットワーク構成のバックアップとして機能する。
【0004】
本開示のいくつかの態様は、1つ以上のプロセッサを含むネットワークコントローラを有するシステムを提供する。1つ以上のプロセッサは、ネットワークの複数のノードからノード情報を受信することであって、複数のノードが、第2のノードに対して動いている第1のノードを含むことと、受信されたノード情報に基づいて、ネットワーク内の利用可能なノード及び可能なリンクを決定することと、利用可能なノード及び可能なリンクに基づいて、ネットワークのトポロジを決定することと、1つ以上のクライアントデバイスから、ネットワーク上で伝送されるクライアントデータに関連するクライアントデータ情報を受信することと、決定されたトポロジの一次ネットワーク構成を決定することであって、一次ネットワーク構成が、クライアントデータのための1つ以上の第1のルーティング経路を含むことと、複数のノードに一次ネットワーク構成を実装させ、かつ一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えさせるための実装命令を、ネットワークの複数のノードに送信することであって、二次ネットワーク構成が、決定されたトポロジを通るクライアントデータのための1つ以上の第2のルーティング経路を含み、決定されたトポロジが、モバイルアドホックネットワーキングを実装することと、を行うように構成されている。
【0005】
一例では、実装命令は更に、ネットワークの各ノードに、決定されたトポロジにおけるモバイルアドホックネットワーキングを使用して、二次ネットワーク構成内の次のホップを決定させる。別の例では、1つ以上のプロセッサは、1つ以上の第1のルーティング経路に基づいて、ネットワークの各ノードのための第1の転送ルールを決定するように更に構成され、実装命令は、第1の転送ルールを含む。この例では、第1の転送ルールは、任意選択で、一次ネットワーク構成内でリンクを形成することに関する命令を含む。
【0006】
また任意選択で、この例では、ネットワークの各ノードに対する実装命令は、第1の転送ルールが実装できないときに第2のネットワーク構成のための第2の転送ルールに切り替えることを含む。一例では、第2の転送ルールは、プロアクティブルーティングのためのものである。別の例では、第2の転送ルールは、リアクティブルーティングのためのものである。更なる例では、第2の転送ルールは、ハイブリッドルーティングのためのものである。更に別の例では、実装命令は、第2の転送ルールへの切り替えの前に、次のホップへのリンク障害を検出することを更に含む。
【0007】
本開示の他の態様は、コンピュータ実装方法を提供し、方法は、1つ以上のプロセッサによって、ネットワークの複数のノードからノード情報を受信することであって、複数のノードが、第2のノードに対して動いている第1のノードを含むことと、1つ以上のプロセッサによって、受信された情報に基づいて、ネットワーク内の利用可能なノード及び可能なリンクを決定することと、1つ以上のプロセッサによって、利用可能なノード及び可能なリンクに基づいて、ネットワークのトポロジを決定することと、1つ以上のプロセッサによって、1つ以上のクライアントデバイスから、ネットワーク上で伝送されるクライアントデータに関連するクライアントデータ情報を受信することと、1つ以上のプロセッサによって、決定されたトポロジの一次ネットワーク構成を決定することであって、一次ネットワーク構成が、クライアントデータのための1つ以上の第1のルーティング経路を含むことと、1つ以上のプロセッサによって、複数のノードに一次ネットワーク構成を実装させ、かつ一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えさせるための実装命令を、ネットワークの複数のノードに送信することであって、二次ネットワーク構成が、決定されたトポロジを通るクライアントデータのための1つ以上の第2のルーティング経路を含み、決定されたトポロジが、モバイルアドホックネットワーキングを実装することと、を含む。
【0008】
一例では、実装命令は更に、ネットワークの各ノードに、決定されたトポロジにおけるモバイルアドホックネットワーキングを使用して、二次ネットワーク構成内の次のホップを決定させる。別の例では、一次ネットワーク構成を決定することは、1つ以上の第1のルーティング経路に基づいて、ネットワークの各ノードのための第1の転送ルールを決定することを更に含み、実装命令は、第1の転送ルールを含む。この例では、第1の転送ルールは、一次ネットワーク構成内でリンクを形成することに関する命令を含む。
【0009】
また任意選択で、この例では、ネットワークの各ノードに対する実装命令は、第1の転送ルールが実装できないときに第2のネットワーク構成のための第2の転送ルールに切り替えることを含む。一例では、第2の転送ルールは、プロアクティブルーティングのためのものである。別の例では、第2の転送ルールは、リアクティブルーティングのためのものである。更なる例では、第2の転送ルールは、ハイブリッドルーティングのためのものである。更に別の例では、実装命令が、第2の転送ルールへの切り替えの前から次のホップへのリンク障害を検出することを更に含む。
【0010】
本開示の更なる態様は、プログラムのコンピュータ可読命令が格納される非一時的有形コンピュータ可読記憶媒体を提供する。命令は、1つ以上のプロセッサによって実行されたときに、1つ以上のプロセッサに方法を実施させる。方法は、ネットワークの複数のノードからノード情報を受信することであって、複数のノードが、第2のノードに対して動いている第1のノードを含むことと、受信された情報に基づいて、ネットワーク内の利用可能なノード及び可能なリンクを決定することと、利用可能なノード及び可能なリンクに基づいているので、ネットワークのトポロジを決定することと、1つ以上のクライアントデバイスから、ネットワーク上で伝送されるクライアントデータに関連するクライアントデータ情報を受信することと、決定されたトポロジの一次ネットワーク構成を決定することであって、一次ネットワーク構成が、クライアントデータのための1つ以上の第1のルーティング経路を含むことと、ネットワークの複数のノードに一次ネットワーク構成を実装させ、かつ一次ネットワーク構成の障害が発生した場合に二次ネットワーク構成に切り替えさせるための実装命令を、複数のノードに送信することであって、二次ネットワーク構成が、決定されたトポロジを通るクライアントデータのための1つ以上の第2のルーティング経路を含み、決定されたトポロジが、モバイルアドホックネットワーキングを実装することと、を含む。
【0011】
一例では、一次ネットワーク構成を決定することはまた、1つ以上の第1のルーティング経路に基づいて、ネットワークの各ノードのための第1の転送ルールを決定することも含み、実装命令は、第1の転送ルールを含み、かつネットワークの各ノードに、決定されたトポロジにおけるモバイルアドホックネットワーキングを使用して、二次ネットワーク構成内の次のホップを決定させる。
【図面の簡単な説明】
【0012】
図1】本開示の態様による例示的な指向性ポイントツーポイントネットワーク100の絵図である。
図2】本開示の態様による、図1に示されるネットワーク100の一部分の機能図200である。
図3】本開示の態様によるネットワークコントローラ300の機能図である。
図4】本開示の態様による方法のフロー図400である。
図5】本開示の態様による、図1に示されるネットワーク100のトポロジ500の機能図である。
図6】本開示の態様による、図1に示されるネットワーク100のトポロジ500の別の機能図である。
図7】本開示の態様による、ネットワーク100の一次ネットワーク構成700の機能図である。
図8】本開示の態様による、ネットワーク100の二次ネットワーク構成800の機能図である。
図9】本開示の態様による方法のフロー図900である。
【発明を実施するための形態】
【0013】
概要
本技術は、一次構成及び二次構成を含む、時空間的通信ネットワークのネットワーク構成を計画及び実装することに関する。一次構成は、ネットワーク内のノードの場所及び軌道に基づくソフトウェア定義構成であり得る。第2の構成は、分散ルーティングプロトコルであり得る。所与のノードでローカル障害が発生したとき、ネットワーク内のレイテンシを低減するために、ローカル障害によって影響を受けるデータをルーティングするように二次構成の転送ルールが実装され得る。
【0014】
ネットワークコントローラは、ネットワークのトポロジに基づいてネットワークの一次構成及び二次構成を生成するように構成することができる。一次構成及び二次構成は、所与の時点でネットワークにおいて実装されるように生成することができる。一次構成は、ソフトウェア定義ネットワーキングを使用して生成された全体構成であり得る。二次構成は、モバイルアドホックネットワーク(mobile ad-hoc network、MANET)ルーティングプロトコルなどの分散ルーティングプロトコルを使用して生成され得る。
【0015】
ネットワークコントローラは、ネットワークの1つ以上のノードに、一次構成及び二次構成に関する転送ルールを送信することができる。各ノードについて、ネットワークコントローラは、一次構成を実装するための1つ以上の第1の転送ルールと、二次構成を実装するための1つ以上の第2の転送ルールとを送信することができる。
【0016】
転送ルールを受信する第1のノードは、一次構成のための1つ以上の第1の転送ルール、及び二次構成のための1つ以上の第2の転送ルールを格納することができる。所与の時点において、第1のノードは、第2のノードに信号を向けることを含む1つ以上の第1の転送ルールを実装することができる。第1のノードは、第2のノードにおけるローカル障害を検出することができる。第2のノードにおけるローカル障害が検出された後、第1のノードは、第3のノードに信号を向けることを含む、1つ以上の第2の転送ルールのうちの少なくとも1つを実装することができる。
【0017】
ネットワークコントローラは、第2のノードのローカル障害を調整するために、更新された一次構成を生成することができる。更新された一次構成は、第1の一次構成と同一又は同様の方法でソフトウェア定義ネットワーキングを使用して生成された、全体構成であり得る。生成されると、実装されるネットワークのノードに、更新された一次構成のための更新された転送ルールが送信され得る。更新された一次構成は、ネットワークのノードによって実装されている1つ以上の第1の転送ルール及び1つ以上の第2の転送ルールのいずれかを置換することができる。
【0018】
この技術により、より信頼性の高いソフトウェア定義ネットワークが可能となる。通信は、ソフトウェア定義ネットワークのグローバルな最適性を維持しながら、ローカル障害などの事象中により低いレイテンシ及びより少ないパケット損失で伝送され得る。例えば、一次ネットワークのローカル障害の後に一次ネットワークの制御プレーンが二次ネットワークに引き継がれると、一次ネットワークの回復時間はより短くなり得る。結果として、クライアントデータは、他のネットワークよりも高速に、又はよりスケジュールどおりに送受信され得る。ネットワークは、全体としてより大量のデータの伝送をサポートすることが可能であり得る。
【0019】
システムの例
図1は、例示的な指向性ポイントツーポイントネットワーク100の絵図である。ネットワーク100は、陸地ベース及び空中ベースの様々なデバイスに搭載されたノードからなる指向性ポイントツーポイントコンピュータネットワークであり、ノードのうちのいくつかは、ネットワーク100内の他のノードに対して経時的に位置を変化させ得る。例えば、ネットワーク100は、2つの陸地ベースのデータセンタ105a及び105b(概してデータセンタ105と呼ばれる)の各々と関連付けられたノードと、3つの地上局107a、107b、及び107c(概して地上局107と呼ばれる)の各々と関連付けられたノードと、6つの空中高高度プラットフォーム(HAP)110a~110f(概してHAP110と呼ばれる)の各々と関連付けられたノードとを含む。示されるように、HAP110aは飛行船であり、HAP110bは飛行機であり、HAP110cは気球であり、HAP110d~110fは衛星である。いくつかの実装形態では、クライアントデバイスは、ネットワーク100のノードであってもよく、又はネットワーク100のHAPに直接若しくは間接的に接続されていてもよい。例えば、クライアントデバイスは、HAP110dとの通信リンクを形成してもよく、又はデータセンタ105aと同様に、地上局107aとの通信リンクを形成してもよい。
【0020】
いくつかの実施形態では、ネットワーク100内のノードは自由空間光通信(free-space optical communication、FSOC)を実施するように装備され、これによりネットワーク100をFSOCネットワークにすることができる。追加的又は代替的に、ネットワーク100内のノードは、無線周波数信号を介して、又は自由空間を通って移動することができる他の通信信号を介して通信するように装備されていてもよい。一対のノード間に示される矢印は、ノード間の可能な通信リンク120、122、130~137、140~145を表す。リンク120は、データセンタ105aと地上局107aとの間にあり得、リンク122は、データセンタ105bと地上局107bとの間にあり得る。HAP110aは、リンク130、131、及び132を介して、それぞれ地上局107a、HAP110b、及びHAP110cにリンクされ得る。HAP110bは、リンク133、135、136、及び137を介して、それぞれHAP110c、地上局107b、HAP110d、及びHAP110eにリンクされ得る。HAP110cは、リンク134を介して地上局107bにリンクされ得る。HAP110dは、リンク140、141、142、及び142を介して、それぞれ地上局107a、地上局107b、HAP110e、及びHAP110fにリンクされ得る。HAP110fは、リンク144及び145を介して、それぞれHAP110e及び地上局107cにリンクされ得る。
【0021】
図1に示されるネットワーク100は例示的なものにすぎず、いくつかの実装形態では、ネットワーク100は追加の又は異なるノードを含んでもよい。例えば、いくつかの実装形態では、ネットワーク100は追加のHAPを含んでもよく、これらは気球、飛行船、飛行機、無人航空機(unmanned aerial vehicle、UAV)、衛星、又は任意の他の形態の高高度プラットフォームであってよい。
【0022】
いくつかの実装形態では、ネットワーク100は、携帯電話、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルデバイス、又はタブレットコンピュータなどのクライアントデバイスのためのアクセスネットワークとして機能し得る。また、ネットワーク100は、インターネットなどのより大きなネットワークに接続されてもよく、より大きなコンピュータネットワークに格納されたリソース、又はより大きなコンピュータネットワークを介して提供されるリソースへのアクセスをクライアントデバイスに提供するように構成されてもよい。いくつかの実装形態では、HAP110は、eNodeB基地局又はWiMAX若しくはUMTSアクセスポイントなどの他の無線アクセスポイントなどの、携帯電話ネットワーク若しくは他のモバイルネットワークと関連付けられた無線送受信機を含むことができる。一緒に、HAP110は、無線アクセスネットワークの全て又は一部を形成することができる。HAP110は、例えば、バックボーンネットワークリンク、又はサードパーティによって運用される輸送網を介してデータセンタ105に接続することができる。データセンタ105は、リモートユーザによって、並びにネットワーク100の構成要素を監視又は制御するシステムによってアクセスされるアプリケーションをホストするサーバを含むことができる。HAP110は、ユーザに無線アクセスを提供することができ、バックボーンネットワークリンクを介して、ユーザ要求をデータセンタ105に転送し、かつ応答をユーザに返すことができる。
【0023】
図2に示されるように、地上局107及びHAP110などの各ノードは、所与のHAP110とネットワーク内の別のノードとの間に、リンク120、122、130~137、140~145などの1つ以上のリンクを作成するように構成された1つ以上の送受信機を含み得る。HAP110aについて言及すると、ネットワーク100の地上局107及びHAP110などのノードの各々は、1つ以上のプロセッサ210、メモリ212、及び1つ以上の送受信機220を含み得る。明瞭かつ簡単にするために、地上局107a、及びHAP110a、110bのみが図2に示されている。しかしながら、ネットワーク内の他の地上局及びHAPは、地上局107b、又はHAP110a、110bと同一又は同様の構成を有し得る。
【0024】
1つ以上のプロセッサ210は、市販のCPUなどの任意の従来のプロセッサであり得る。代替的に、1つ以上のプロセッサは、特定用途向け集積回路(application specific integrated circuit、ASIC)などの専用デバイス、又はフィールドプログラマブルゲートアレイ(field programmable gate array、FPGA)などの他のハードウェアベースのプロセッサであってもよい。図2は、1つ以上のプロセッサ210及びメモリ212を同じブロック内にあるものとして機能的に例示しているが、実際には、1つ以上のプロセッサ210及びメモリ212が、同じ物理的筐体内に格納されてもされなくてもよい複数のプロセッサ及び複数のメモリを備え得ることが理解されよう。したがって、プロセッサ又はコンピュータへの言及は、並列に動作してもしなくてもよいプロセッサ又はコンピュータ又はメモリの集合への言及を含むと理解されよう。
【0025】
メモリ212は、1つ以上のプロセッサ210によってアクセス可能な情報を格納し、この情報には、データ214と、1つ以上のプロセッサ210によって実行され得る命令216とが含まれる。メモリは、プロセッサによってアクセス可能な情報を格納することができる任意のタイプのものであり得、ハードドライブ、メモリカード、ROM、RAM、DVD、又は他の光ディスク、並びに他の書込み可能メモリ及び読み取り専用メモリなどの、コンピュータ可読命令を含む非一時的有形コンピュータ可読媒体を含む。システム及び方法は、前述の異なる組み合わせを含み得、これにより、データ214及び命令216の異なる部分が異なるタイプの媒体に格納される。HAP110aのメモリ212などの各ノードのメモリには、各ノードで受信された信号がどのように転送又は伝送されるべきかを示すデータベース又はテーブルなどの、転送情報ベース又は転送データ構造が格納され得る。換言すれば、各ノードのメモリは、対応するノードのための1つ以上の転送ルールを格納することができる。例えば、メモリ212に格納された転送テーブルは、地上局107aから受信した信号がHAP110dに転送されるべきであるという転送ルールを含むことができる。
【0026】
データ214は、命令216に従って、1つ以上のプロセッサ210によって検索、格納、又は修正され得る。例えば、システム及び方法はいずれの特定のデータ構造によっても制限されないが、データ214は、複数の異なるフィールド及びレコード、XML文書又はフラットファイルを有するテーブルとして、リレーショナルデータベースのコンピュータレジスタに格納され得る。データ214は、バイナリ値又はユニコードなどであるがこれらに限定されない任意のコンピュータ可読フォーマットでフォーマットされてもよい。更なる単なる例として、画像データがビットマップとして格納され得、ビットマップは、圧縮又は非圧縮、無損失(例えば、BMP)又は損失(例えば、JPEG)、及びビットマップ又はベクトルベース(例えば、SVG)、並びにグラフィックスを描画するためのコンピュータ命令であるフォーマットに従って格納されるピクセルのグリッドからなる。データ214は、番号、記述テキスト、専用コード、同じメモリ又は異なるメモリの他の領域(他のネットワーク場所を含む)に格納されたデータへの参照、又は関連データを計算するために関数によって使用される情報などの、関連情報を識別するのに十分な任意の情報を含んでもよい。
【0027】
命令216は、1つ以上のプロセッサ210によって直接実行される命令(機械コードなど)又は間接的に実行される命令(スクリプトなど)の任意のセットであり得る。例えば、命令216は、コンピュータ可読媒体にコンピュータコードとして格納され得る。この点に関して、用語「命令」及び「プログラム」は、本明細書では交換可能に使用され得る。命令216は、1つ以上のプロセッサ210による直接処理のためにオブジェクトコード形式で格納されてもよいし、オンデマンドで解釈されるか若しくは事前にコンパイルされるスクリプト又は独立したソースコードモジュールの集合を含む他のコンピュータ言語で格納されてもよい。命令216の関数、方法、及びルーチンについては、以下でより詳しく説明する。
【0028】
1つ以上の送受信機220は、所望の方向を指すように制御又は操向することができるアクチュエータに搭載されてもよい。HAP110aと関連付けられたノード及びHAP110dと関連付けられたノードなどの2つのノード間にリンクを形成するために、それぞれのノードの送受信機は、ノード間でデータを送受信することができるように互いの方向を指すように制御され得る。いくつかの実装形態では、ネットワーク100内のリンク120、122、130~137、140~145(例えば、図1を参照のこと)の形成を容易にするために、各送受信機によって伝送される信号の電力もまた、それぞれのノードの1つ以上のプロセッサによって制御され得る。例えば、比較的長い距離で分離されたノードは、この2つのノードを分離する距離にわたって生じる信号対雑音比の低減を補償するために、より高い電力で動作するように構成することができる。互いにより近い間隔で置かれたノードは、電力を節約するために、比較的より低い電力で動作するように制御され得る。
【0029】
いくつかの実装形態では、ネットワーク100は、図3に描写されるネットワークコントローラ300などのSDNコントローラによって制御されるソフトウェア定義ネットワーク(software-defined network、SDN)とすることができる。ネットワークコントローラ300は、ネットワークノードのうちの1つ、又は例えば、データセンタ105のうちの1つなどの別個のプラットフォームに位置し得る。ネットワーク100のノードは、1つ以上の送受信機220などの操向可能な送受信機を使用して互いに通信するように構成されていてよい。HAP110が互いに対して、かつデータセンタ105、地上局107、及び他の地上場所に対して経時的に移動すると、図1のブロック図に示されるリンクのうちのいくつかは実現不可能になる可能性がある。例えば、地上局107aとHAP110aとの間のリンク130は、HAP110aの経路によってHAP110aが、地上局107aの範囲外にある位置に移動させられるとき、又はHAP110aと地上局107aとの間に地面が配置される位置に移動させるときに、実現可能ではない場合がある。他の例では、HAP110とデータセンタ105と地上局107と他の地上場所との間の気象事象もまた、特定のリンクを実現不可能にする可能性がある。したがって、HAP110の連続的な動きに起因して、ネットワーク100のトポロジは、接続性を維持し、決定されたネットワークフローを満たすために、規則的な(すなわち、周期的な)又は不規則な再構成を必要とし得る。ネットワークコントローラ300は、ビッグデータ主導型ネットワーキングの要望を処理できるようにするために、以下で更に記載する決定されたネットワークフローを効率的に満たすための構成を決定するように構成されていてもよい。
【0030】
図3は、ネットワークコントローラ300の機能図である。ネットワークコントローラ300は、ネットワーク100のトポロジを構成するため、ルーティング情報をネットワーク100のノード107、110に渡すため、及びクライアントデータを伝送するようにネットワーク100のトポロジの変更をスケジュールするために、ネットワーク100に制御メッセージを送信するように構成されていてもよい。図3に示されるように、ネットワークコントローラ300は、1つ以上のプロセッサ310、メモリ、320、及び通信システム340を含み得る。1つ以上のプロセッサ310は、上述した1つ以上のプロセッサ210と同様であってもよい。
【0031】
メモリ320は、1つ以上のプロセッサ310によってアクセス可能な情報を格納し得、情報は、データ322とプロセッサ310によって実行され得る命令324とを含む。メモリ320、データ322、及び命令324は、上述したメモリ212、データ214、及び命令216と同様に構成されてもよい。データ322は、ネットワーク100内の、所与の時間又は時間枠において利用可能な全てのノード及び可能なリンクを表すテーブルなどのデータベース、テーブル、又は他の記憶構造を含み得る。テーブルは、ネットワーク100内の全てのノード及びリンクに対する列、及び時間又は時間枠に対する行を有し得る。場合によっては、列及び行を逆にしてもよい。テーブルはまた、各ノード及び各リンクについて、ノード又はリンクが利用可能であるスケジュールされた時間又は時間枠を格納することができる。代替的に、グラフ又は他の形態の情報編成が使用されてもよい。命令324は、トポロジ及びルーティングマネージャモジュール326、トポロジ決定モジュール328、フロー決定モジュール330、ソルバーモジュール332、飛行制御モジュール334、及びスケジューリングモジュール336を含み得る。
【0032】
図3に戻ると、通信システム340は、ネットワーク100のノード107、110、並びに1つ以上のクライアントデバイス350と通信するように構成することができる。いくつかの実施形態では、通信システム340は、ノード107、110の各々において制御-データプレーンインターフェース(Control to Data-Plane Interface、CDPI)エージェントと通信するように構成されたCDPIドライバを含む。加えて、ネットワークコントローラ300の通信システム340は、1つ以上のSDNアプリケーションと関連付けられた各クライアントデバイス350においてノースバウンドインタフェース(northbound interface、NBI)ドライバと通信するように構成された、1つ以上のNBIエージェントを含んでもよい。通信システム340は、任意選択で又は代替的に、無線周波数、光周波数、光ファイバ、ケーブル、又は他の通信手段を介して、ネットワーク100内のノード107、110との間、及び1つ以上のクライアントデバイス350との間で信号を送受信するように構成されてもよい。
【0033】
各クライアントデバイス350は、1つ以上のプロセッサ210及び310、メモリ212及び320、データ214及び322、並びに命令216及び324に関して上述したものと同様の1つ以上のプロセッサ360、メモリ370、データ372、及び命令374を有するパーソナルコンピューティングデバイス又はサーバであってもよい。パーソナルコンピューティングデバイスは、中央処理装置(central processing unit、CPU)、データ及び命令を格納するメモリ(例えば、RAM及び内部ハードドライブ)、電子表示装置(例えば、画面を有するモニタ、小型LCDタッチスクリーン、プロジェクタ、テレビ、又は情報を表示するように動作可能な任意の他の電気デバイス)、ユーザ入力(例えば、マウス、キーボード、タッチスクリーン又はマイクロフォン)、カメラ、スピーカ、ネットワークインターフェースデバイス、及びこれらの要素を互いに接続するために使用される全ての構成要素など、パーソナルコンピュータに関連して通常使用される全ての構成要素を有するパーソナルコンピュータを含むことができる。また、パーソナルコンピューティングデバイスは、PDA、携帯電話などのモバイルデバイスも含み得る。実際には、クライアントデバイス350は、命令を処理し、人間との間でデータを送受信することができる任意のデバイス、並びに汎用コンピュータ、ローカルストレージ能力を欠いたネットワークコンピュータ、及びテレビ用のセットトップボックスを含む他のコンピュータを含み得る。いくつかの実施形態では、クライアントデバイスは、1つ以上のSDNアプリケーションと関連付けられてもよく、1つ以上のNBIドライバを有してもよい。
【0034】
図3の命令324のモジュールに目を向けると、トポロジ及びルーティングマネージャモジュール326は、1つ以上のプロセッサ310に、ネットワークコントローラ300とネットワーク100との間をインターフェース接続させてもよい。トポロジ及びルーティングマネージャモジュール326を使用して、1つ以上のプロセッサ310は、ネットワーク100内のノードの各々から情報を受信することができる。例えば、いくつかの実装形態では、トポロジ及びルーティングマネージャモジュール326は、1つ以上のプロセッサ310に、ネットワーク100内の各ノード107、110から、各ノードの現在の場所、各ノードの予測される経路、各ノードと関連付けられた現在のリンク、各ノードによって格納されたルーティング情報、及び現在のストレージ容量、例えば各ノードにおいて利用可能な空きビット数がある場合はそのビット数、に対応する情報を受信させることができる。各ノードから受信される情報はまた、天候状態、乱気流、放射線、又はノード間のFSOCに影響を及ぼし得る他の条件に関する他の報告も含み得る。また、各ノードは、1つ以上のプロセッサ310に、ノード間の予期せぬ障害物、ノードにおける乱気流、又は1つ以上の送受信機の障害に起因して発生し得る任意の障害リンクに対応する情報を送信することもできる。
【0035】
トポロジ及びルーティングマネージャモジュール326はまた、1つ以上のプロセッサ310に、予測されるリンクメトリック及び条件を受信させてもよい。例えば、予測されるリンクメトリックは、ノード107、110から受信される情報に基づいて現在又は将来形成され得る仮想リンクについてのネットワーク性能メトリックの予測値を含んでもよい。ネットワーク性能メトリックは、帯域幅容量、レイテンシ、又はリンク寿命持続時間を含み得、ネットワーク100内のノード107、110の予測される相対運動又は軌道に基づくことができる。リンク寿命持続時間は、リンクがネットワーク100において実現可能である時間期間を表すことができる。ノード場所、予測されるノード場所又は予測されるリンクにおける天気予報もまた、ノード107、110又は任意選択でリモートシステムから、1つ以上のプロセッサ310によって受信され得る。
【0036】
トポロジ及びルーティングマネージャモジュール326を使用して、1つ以上のプロセッサ310は、ネットワーク100から受信された情報をメモリ320に格納してもよい。例えば、ネットワーク100内の利用可能な全てのノード及び可能なリンクを表すテーブルは、テーブル内の特定のノード又はリンクに関連する情報で更新又は注釈付けすることができる。テーブルの注釈は、ネットワーク100内の各ノードの利用可能性、各ノードの現在及び将来の場所、現在及び将来の予想される天候状態、並びにネットワーク内のノードの各々における、現在の利用可能なストレージ量及び将来の(推定される)利用可能なストレージ量を示すことができる。更に、テーブルの注釈は、特定のリンクの現在及び将来の利用可能性、並びにそのようなリンクの現在及び将来の予想される帯域幅を示すことができる。障害リンク及び予見される状態もまた、留意されテーブルに格納することができる。
【0037】
トポロジ決定モジュール328は、1つ以上のプロセッサ310に、ネットワーク100の現在又は将来のトポロジを決定させることができる。ネットワーク100の現在のトポロジの決定は、トポロジ及びルーティングマネージャモジュール326を使用して、1つ以上のプロセッサによって受信され格納された情報に基づいて行われてもよい。例えば、トポロジ決定モジュール328は、1つ以上のプロセッサ310に、各ノード107、110の現在の場所、ノードの各対の間に形成されたリンク130~137、140~145、及びネットワーク100内に存在し得る任意の障害リンクに関する情報を集約させてもよい。1つ以上のプロセッサ310は、この情報を、トポロジ及びルーティングマネージャモジュール326の使用を通じて受信することもできるし、メモリ320から取り出すこともできる。
【0038】
また、ネットワーク100の現在のトポロジを決定するために、トポロジ決定モジュール328を使用して、1つ以上のプロセッサ310によって追加の情報が使用されてもよい。トポロジ及びルーティングマネージャモジュール326を使用して1つ以上のプロセッサ310によって受信された予測されるリンクメトリックはまた、現在のトポロジにおいて利用可能なリンクの帯域幅、サービス品質、及び他の特性を決定するために使用されてもよい。いくつかの実装形態では、トポロジ決定モジュール328を使用して、1つ以上のプロセッサ310はまた、特定の時間に、又は現在時刻の若しくは現在時刻付近の特定の時間枠にわたって、HAP110などの空中ネットワークノードの飛行経路に対応する飛行制御モジュール334を使用することによって情報を受信することもでき、現在のトポロジの決定は、受信された飛行情報にも基づいて行うことができる。
【0039】
ネットワーク100の将来のトポロジを決定するために、1つ以上のプロセッサ310は、トポロジ決定モジュール328を使用して、将来の時間に関連する場所情報、予測されるリンク状態、フライト情報、利用可能なストレージ、及び/又は天気予報を集約することができる。1つ以上のプロセッサ310は、メモリ320内のテーブル又は他の場所に格納された、将来の時間において利用可能なノード及びリンク、場所情報、予測されるリンク状態、飛行情報、及び/又は天気予報に関する情報にアクセスすることができる。将来の時間についての情報は、将来の時間において、ノードがどこにあると予測されるか、並びにノード及びリンクの利用可能性、及び各ノードにおける記憶能力が何であると予測されるかを決定するために、1つ以上のプロセッサ310によって使用され得る。
【0040】
トポロジ決定モジュール328は、1つ以上のプロセッサ310に、ネットワーク100内の全ての利用可能なノード及び可能なリンク、並びに各ノード若しくはリンクと関連付けられたスケジュールされた時間若しくは時間枠を表すテーブルを生成及び又は更新することなどによって、現在若しくは将来のトポロジ又は他のトポロジ情報をメモリ320に格納させてもよい。
【0041】
フロー決定モジュール330は、1つ以上のプロセッサ310に、所与の時間又は時間枠においてネットワーク100内で決定されるフローの全てを決定させてもよい。所与のフローは、ネットワーク100を通るルーティング経路に対する1つ以上の要件であり得る。例えば、各フローは、開始局、終了局、時間枠、最小帯域幅、又は伝送のための他の要件を含み得る。1つ以上のプロセッサ310は、トポロジ決定モジュール328を使用して決定されたトポロジ情報、及び/又は1つ以上のクライアントデバイス350のクライアントデータの特性に関する情報に基づいてフローを決定することができる。クライアントデータ情報は、1つ以上のプロセッサ310によって、以下で記載するスケジューリングモジュール336を使用して、1つ以上のクライアントデバイス350又は遠隔システムから受信され得る。クライアントデータ情報は、クライアントデータの発信元及び宛先、伝送されるクライアントデータの量、及び/又はクライアントデータの伝送のタイミングを含み得る。データの量は、追加的又は代替的に、ある時間期間にわたって地理的領域内の1つ以上の特定の地上局から伝送される又はそこへ伝送されるデータの、推定される平均量であり得る。
【0042】
フローの最小帯域幅は、利用可能なシステムリソース及びリンク能力を考慮して1つ以上のプロセッサ310によって事前設定又は事前決定され得るか、又は代替として、クライアントデータに含まれる要件に基づいて決定され得る。より大量のデータを輸送するフローのために、より大きな帯域幅が設定されてもよい。1つ以上のプロセッサ310は、要求された時間にクライアントデータの量を伝送することができる、ネットワークを介した開始局と宛先局との間のフローを決定することができる。いくつかの実施形態では、1つ以上のプロセッサ310は、決定されたフローごとのサービスクラス又はサービス品質など、決定されたフローに関連する他の情報を決定してもよい。他の情報は、クライアントデバイスから受信された要件に基づくことができる。
【0043】
いくつかの実装形態では、フロー決定モジュール330は、ネットワーク100内の各ノード対間で必要とされる帯域幅の総量を決定するために、1つ以上のプロセッサ310に、1つ以上のクライアントデバイス350からのクライアントデータを集約させてもよい。集約されたクライアントデータは、例えば、メモリ320に格納され得る。更に、クライアントデータは、より詳細なレベルで集約されてもよい。例えば、ノードの各対についてのネットワークデータは、サービスクラス、サービス品質、又は任意の他の関連するネットワークトラフィック識別子によって集約され得る。フローは、関連する任意のネットワークトラフィック識別子に更に基づいて決定され得る。
【0044】
他の場合には、将来の時点におけるクライアントデータ量、発信元、及び宛先を予測するために、過去のクライアントデータトレンドを使用してもよい。フロー決定モジュール330は、1つ以上のプロセッサ310に、この将来の時点においてクライアントデバイスに直接接続可能な全てのノード間の、複数の利用可能なフローを決定させることができる。地上局107などの直接接続可能なノードは、ネットワーク100を使用せずにクライアントデバイスと通信することが可能であり得る。各ノード対間の予測されるクライアントデータ量は、各ノード対間の帯域幅要件を決定するために使用され得る。
【0045】
代替的に、クライアントデータ情報がない場合、1つ以上のプロセッサ310は、現在又は将来の時間においてクライアントデバイスに直接接続可能な全てのノード間の、複数の利用可能なフローを決定することができる。複数の利用可能なフローの決定は、現在又は将来のトポロジに基づくことができる。更に、この決定は、最小システム要件に基づくことができる。
【0046】
フロー決定モジュール330は、1つ以上のプロセッサ310に、決定されたフローをメモリ320に格納させる。いくつかの例では、1つ以上のプロセッサ310は、フローによりテーブルに注釈付けしてもよい。
【0047】
ソルバーモジュール332は、1つ以上のプロセッサ310に、メモリに格納されたテーブルに表されたトポロジに基づくなど、ネットワークのトポロジに基づいて、ネットワーク構成又はネットワーク構成のスケジュールを生成させることができる。第1のソルバーモジュールを使用して生成されたネットワーク構成は、他の可能な構成よりも優先して実装される主要な構成であり得る。ネットワーク構成は、決定された全てのネットワークフローを満たすことができる実現可能なネットワークトポロジを表すことができ、かつ実現可能なネットワークトポロジにおいて使用されるであろうノード及びリンクのリストと、ノード及びリンクがいつ使用されるであろうかのスケジュールとを含むことができる。ネットワーク構成のスケジュールは、決定された全てのネットワークフローを満たすことができる実現可能な一連のネットワークトポロジを表すことができる。実現可能な一連のネットワークトポロジは、ノード及びリンクのリストと、ネットワーク構成のスケジュール内の各ネットワーク構成についてノード及びリンクがいつ使用されるであろうかのスケジュールとを含むことができる。いくつかの例では、実現可能な一連のネットワークトポロジは、使用可能なストレージを有するノードにデータが格納され得るネットワークトポロジと、ノードが別のノードとの新たな接続又はリンクを形成し、新たに確立されたリンクを介してデータを伝送する次のネットワークトポロジとを含む。
【0048】
ネットワーク構成は、1つ以上のプロセッサ310によって、テーブル内の所与の時点についてのトポロジ及び所与の時点におけるトポロジのネットワーク性能メトリックに基づいて生成され得る。所与の時点におけるトポロジのための加重制約として、例えば、リンク帯域幅、リンクレイテンシ、フロー帯域幅、フロー優先度、リンク切り替え時間(すなわち、ネットワーク100内で新たなトポロジを実装するために必要な時間)、リンク持続時間、及び/又はトポロジ持続時間などの様々なネットワーク性能メトリックがモデル化されてもよい。いくつかの実施形態では、1つ以上のネットワーク性能メトリックは、メモリに格納されたテーブルに含まれなくてもよく、別のモジュール、別のノード、又は遠隔システムから受信されてもよい。
【0049】
1つ以上のプロセッサ310は、ネットワーク構成によって表されるトポロジ上の決定されたフローのためのルーティング経路を計算することもできる。所与のルーティング経路は、決定されたフロー要件を満たす所与のフローを実装するための1つの方法であり得、ネットワーク内の特定のノード及びリンク、又は一連のノード間のホップのリストを含み得る。いくつかの例では、所与のルーティング経路は、ネットワーク上で伝送されるデータの量に関する決定されたフロー要件を満たす利用可能なストレージを有するノードを含み得る。所与のルーティング経路をたどるデータは、次のホップに移動する前の時間期間にわたってノードに格納され得る。
【0050】
更に、ネットワーク構成又はネットワーク構成のスケジュールを決定するために、ネットワークの以前の状態及び以前のネットワークトポロジに対応する情報もまた使用され得る。例えば、1つ以上のプロセッサ310は、ネットワークがネットワーク構成を実装するために必要とされる以前のネットワークトポロジからの変更の数と、ネットワークがその数の変更を行うために必要とされる時間量とに少なくとも部分的に基づいて、ネットワーク構成を生成し得る。1つ以上のプロセッサ310は、代替的に、ネットワーク構成のスケジュールにおけるネットワーク構成のネットワークトポロジ間の変更の数と、ルーティングテーブルの情報を利用する変更間の時間量とに少なくとも部分的に基づいて、ネットワーク構成のスケジュールを生成してもよい。変更には、例えば、新しい方向を指すように送受信機を操向すること、又はノードのメモリに格納された転送テーブル内の転送ルールを変更することが含まれ得る。送受信機を操向することは、ノードのメモリに格納された転送テーブルを変更することよりも多くの時間を要する場合がある。生成されたネットワーク構成は、変更の数が閾値数未満であること、及び/又は時間量が閾値時間量未満であることを必要としてもよい。
【0051】
ネットワーク構成のスケジュールにおける後続のネットワーク構成のいくつかの対の場合、より前のネットワーク構成とより後のネットワーク構成との間の差は、単一のノードにおけるルーティング変更など、送受信機の方向の変更を伴わない可能性がある単一の変更である可能性がある。
【0052】
1つ以上のプロセッサ310がソルバーモジュール332を使用してネットワーク構成及びルーティング経路を生成した後、1つ以上のプロセッサ310は、生成された一次構成に含まれるリンクをノードに形成させるための実装命令を該ノードに送信することによって(例えば、該ノードのそれぞれの送受信機を操向すること、該ノードのそれぞれの伝送電力レベルを調整すること、及び該ノードの送受信周波数帯域を設定することなどにより)生成された一次構成によって表されるトポロジを実装するために、かつ一次構成及び二次構成について計算されたルーティング経路に従って、各ノードのメモリに格納されている転送テーブル内の転送ルールを更新するために、トポロジ及びルーティングマネージャモジュール326に従ってネットワーク100のノードを制御することができる。例えば、各ノードについて、ネットワークコントローラは、一次構成を実装するための1つ以上の第1の転送ルールを送信してもよい。いくつかの転送テーブルは、ネットワーク構成のスケジュールに基づく変更のスケジュールによって更新されることができ、また、次のホップの前にノードにおいてデータを格納するための命令を含むこともできる。
【0053】
加えて、ネットワークコントローラは、一次ネットワーク構成に障害があるときに、二次ネットワーク構成に切り替えるための命令を送信することもできる。この実装形態では、1つ以上の第1の転送ルールは、各ノードにおいて任意の他の転送ルールの前に実装されるように、第1の転送ルールを格納させる優先度の指示とともに送信され得る。他の転送ルールは、二次ネットワーク構成のための1つ以上の第2の転送ルールを含み得る。二次構成は、状況によって一次構成がネットワーク内の1つ以上の場所で使用できないときのためのバックアップとして使用される、ネットワークのノード間の1つ以上のルーティング経路を含み得る。特に、二次構成は、モバイルアドホックルーティングプロトコルなどの分散ルーティングプロトコルを実装し得る。例えば、二次構成は、一次構成のために生成されたトポロジ内のものなどの利用可能なノード及びリンクを介して、ネットワーク内の所与のノードと1つ以上の他のノードとの間の、1つ以上のルーティング経路を含んでもよい。
【0054】
飛行制御モジュール334は、1つ以上のプロセッサ310に、空中ノードの飛行経路に関する、HAP110などの空中ノードに対する飛行命令を生成させることができる。例えば、1つ以上のプロセッサ310は、ソルバーモジュール332を使用して、決定されたネットワークフローの全てを満たすことが可能なネットワークトポロジを表すネットワーク構成を決定することができない場合がある。1つ以上のプロセッサは、ソルバーモジュール332を使用したこの失敗の理由が、ネットワーク100内の空中ネットワークノードのうちの1つ以上が、他のネットワークノードから遠くに移動しすぎてリンクを形成できないことであると決定することができる。それに応じて、1つ以上のプロセッサ310は、経路制御モジュール334を使用して、ネットワーク100の空中ノードにそれらの飛行経路を変更させ、それにより追加のリンクが形成され得るようにするための、飛行命令を生成及び送信することができる。例えば、飛行命令は、空中ノードを互いにより接近させるか、又は障害物を回避させることができる。飛行制御モジュール334を使用して、1つ以上のプロセッサによって生成された飛行命令に従ってノードが再配置された後、ネットワークノードの新たな場所に基づいて、トポロジ及びルーティングマネージャモジュール326、又はトポロジ決定モジュール328を使用して、更新されたテーブルを作成することができる。次いで、更新されたテーブルは、ネットワーク構成を決定するために、1つ以上のプロセッサ310によってソルバーモジュール332を使用して処理され得る。
【0055】
スケジューリングモジュール336は、ネットワークコントローラ300の1つ以上のプロセッサ310を、1つ以上のクライアントデバイス350とインターフェース接続させることができる。スケジューリングモジュール336を使用して、1つ以上のプロセッサ310は、ネットワーク100上で伝送されるクライアントデータの発信元及び宛先などのクライアントデータ情報を、クライアントデバイス350から受信することができる。クライアントデバイス350から受信された他の情報には、伝送されるクライアントデータの量及び伝送のタイミングなど、クライアント要望に関連するデータが含まれてもよい。情報は、ネットワーク100を通る決定されたフローを決定するために、メモリ320に格納され得、かつ/又はフロー決定モジュール330に従って使用され得る。いくつかの実装形態では、ネットワークコントローラ300の1つ以上のプロセッサ310は、スケジューリングモジュール336を使用して、所与の地上局又は所与の地理的場所で利用可能な帯域幅に基づいて、1つ以上のクライアントデバイス350にクライアントデータ情報を要求することができる。
【0056】
上述したように、フロー決定モジュール330を使用して、決定されたフローが決定され、ソルバーモジュール332を使用して、ネットワーク構成が生成された後、1つ以上のプロセッサ310は、テーブル及び生成されたネットワーク構成に基づいて、ネットワーク100上でクライアントデータを伝送するためのルーティング命令を生成することができる。これらのルーティング命令は、クライアントデータの発信元場所、クライアントデータの宛先場所、及びクライアントデータの伝送のタイミングを含むことができる。いくつかの実施形態では、ルーティング命令は、前のノードからの、次のノードに伝送されるデータを一時的に格納するための、ノードへの格納命令を含んでもよい。ルーティング命令は、スケジュールを含み得、スケジュールは、クライアントデータを送信するクライアントデバイス350と直接接続可能であるネットワークのノードに格納され得る。次いで、1つ以上のプロセッサ310は、クライアントデバイス350と直接接続可能なノードにルーティング命令を送信して、該ノードに、スケジュールに従って決定されたフローを介してクライアントデータを受信させ、クライアントデータの送信を開始させることができる。
【0057】
クライアントデータ情報なしでフローが決定されるいくつかの実施形態では、スケジューリングモジュール336は、1つ以上のプロセッサ310に、1つ以上のクライアントデバイス350のうちのあるクライアントデバイスにメッセージを送信させることができる。このメッセージは、フロー決定モジュール330を使用して決定された、決定されたフローと、ソルバーモジュール332を使用して生成された、ネットワーク構成とに基づいて、ネットワークを通るフローの利用可能性を示すことに関するものである。メッセージはまた、フローが利用可能である時間若しくは時間枠、及び/又は各フローと関連付けられたデータの伝送のための価格を含み得る。スケジュールモジュール336を使用して、1つ以上のプロセッサ310は、クライアントデータを伝送するために決定されたフローのうちの1つを使用する要求を含む応答を、1つ以上のクライアントデバイス350のうちの1つから受信することができる。次いで、1つ以上のプロセッサ310は、決定されたフローを介してクライアントデータの伝送を開始するためのルーティング命令を、1つ以上のノードに送信することができる。
【0058】
方法の例
次に、上述し図に示したシステムに加えて、様々な動作について記載する。1つ以上のプロセッサ310は、一次ネットワーク構成が以下で記載するような障害を経験する場合、二次ネットワーク構成を実装するための命令とともに、ネットワークにおいて実装されるべき一次ネットワーク構成を生成し得る。図4に、上述した態様のうちのいくつかによるフロー図400を示し、これはネットワークコントローラ300の1つ以上のプロセッサ310によって実施され得る。追加的又は代替的に、ノードの1つ以上のプロセッサが、動作のうちの1つ以上を実施してもよい。図4は特定の順序でブロックを示しているが、順序は変更されてもよく、複数の動作が同時に実施されてもよい。また、動作が追加又は省略されてもよい。
【0059】
ブロック402において、ネットワークコントローラ300の1つ以上のプロセッサ310は、トポロジ及びルーティングマネージャモジュール326を使用して、ネットワーク100内のノードの各々から情報を受信し得る。情報は、現在の時間若しくは将来の時間におけるノード、天候、又はリンクの、現在の状態若しくは予測される状態に関連し得る。例示的なシナリオでは、現在の時間におけるHAP110aの現在の場所として場所Aが受信され得る。現在の時間におけるHAP110bの現在の場所として場所Bが受信され得る。現在の時間におけるHAP110cの現在の場所として場所Cが受信され得、現在の時間におけるHAP110dの現在場所として場所Dが受信され得る。現在の時間におけるHAP110eの現在の場所として場所Eが受信され得、現在の時間におけるHAP110fの現在場所として場所Fが受信され得る。HAP110a、110c、110d、110e、及び110fからの天候状態報告は、場所A、C、D、E、及びFにおいて現在の天候状態が晴れであることを示し得、HAP110bからの天候状態報告は、現在の天候状態に、場所B付近でHAP110eの方向に雷雨が含まれることを示し得る。HAP110aはまた、HAP110cがリンク131を求める要求に応答しなかったことの表示を1つ以上のプロセッサ310に送信してもよい。更に、HAP110aは、現在の時間から1時間で場所Aから場所Gに移動すると予測されてもよく、HAP110dは、現在の時間から1時間で場所Dから場所Hに移動すると予測されてもよい。現在の時間から1時間の間の天気予報には、場所Hと地上局107aの場所との間の雷雨が含まれ得る。ネットワーク100内又はネットワーク100の各サブネットワーク内のリンクについて、帯域幅、レイテンシ、又はリンク寿命持続時間に関連する情報が、1つ以上のプロセッサ310によって受信され得る。例えば、ネットワーク100内のリンクについての情報は、どれだけの帯域幅が利用可能であるかを含むことができる。
【0060】
ブロック404において、ネットワークのノードから受信された情報に基づいて、トポロジ及びルーティングマネージャモジュール326を使用して、ネットワーク100内の利用可能なノード及び可能なリンクが決定され得る。いくつかの実装形態では、決定された利用可能なノード、可能なリンク、及び対応するデータは、メモリ320のテーブルなどに格納され得る。例示的なシナリオでは、受信された情報に基づいて、HAP110aは、現在天候が晴れている場所Aで利用可能であると決定され、HAP110aは、1時間以内に場所Gにいると予測される。HAP110bの場合、HAP110eに向かう一方向の雷雨があることを除いて、場所Bで天候が概ね晴れている場合、場所Bにおいて、利用可能であると判定される。HAP110c、110e、及び110fの場合、天候も現在晴れているそれぞれの場所C、E、及びFにおいて利用可能であると決定される。HAP110dの場合、現在の場所Dに位置していると判定され、1時間以内に場所Hにあると予測され、天候には、場所Hと地上局107aの場所との間のその時点における雷雨が含まれる。
【0061】
加えて、リンク130、132~136、及び140~145は、現時点で利用可能であると決定され(図5では実線矢印で示される)、一方、リンク131及び137は利用可能ではない(一点鎖線で示される)。リンク131については、HAP110aからの要求に対してHAP110cが無応答を示したことに基づいて、リンク131が現時点で障害を有すると決定されてもよい。リンク137については、HAP110bとHAP110eとの間の雷雨により、リンク137が現時点で利用不可能であると判定されてもよい。リンク140については、HAP110dと地上局107aとの間の雷雨により、将来の時間においてリンク140が利用可能ではないと決定されてもよい。利用可能なノード及び可能なリンクはまた、予測される将来のノードの場所、又は各ノードにおける予測される状態、例えば天気予報に基づいて、現時点以外の異なる時点について決定されてもよい。
【0062】
ブロック406において、1つ以上のプロセッサ310は、トポロジ決定モジュール328を使用して、利用可能なノード及び可能なリンクに基づいて、所与の時点又は所与の時間枠におけるネットワークのトポロジを決定し得る。いくつかの実装形態では、1つ以上のプロセッサ310は、利用可能なノード及び可能なリンクを示すメモリ320内のテーブル又は他のデータ構造にアクセスし得る。例示的なシナリオでは、1つ以上のプロセッサ310は、現在のトポロジを決定するために、テーブル並びに各ノード及びリンクと関連付けられたスケジュールされた時間から、どのノード及びリンクが現時点で利用可能であるかを決定することができる。HAP110a~110fに関する受信された情報に従って、図5に示されるように、現在のトポロジ500を決定することができる。現在のトポロジは、ノード107、110を含むように決定され得る。具体的には、HAP110aは場所A、HAP110bは場所B、HAP110cは場所C、HAP110dは場所D、HAP110eは場所E、及びHAP110fは場所Fにおいて、現在のトポロジに含まれ得る。これは、それらがブロック404において決定された現時点のそれぞれのHAPと関連付けられた場所であるからである。現在のトポロジ500内の矢印で示されるように、リンク130、132~137、及び140~145は現在のトポロジに含まれるが、ブロック404によって現時点について障害があると示されるリンク131及び137は、含まれない(図5では矢印のない一点鎖線として示される)。別の例では、HAP110cが、場所Cにおけるそれ自体の場所を1つ以上のプロセッサ310に報告しなかったが、飛行制御モジュール334を使用して飛行経路又は軌道をあらかじめ報告した場合、1つ以上のプロセッサ310は、その飛行経路又は軌道に基づいて現在HAP110cが場所Cにあることを決定し、HAP110cを現在のトポロジに含めることができる。いくつかの実装形態では、現在のトポロジ内の可能な各リンク130、132~136、及び140~145はまた、受信された情報に基づいて決定される、帯域幅などのリンクメトリックでラベル付けされてもよい。
【0063】
ブロック408において、1つ以上のプロセッサ310によって、スケジューリングモジュール336を使用して、ネットワーク100上で伝送されるクライアントデータに関係する情報が受信され得る。クライアントデータ情報は、ネットワークコントローラ300と通信している所与の地上局に近接した、又は地理的領域内の1つ以上のクライアントデバイスから受信され得る。クライアントデータ情報は、クライアントデータのデータの量、発信元場所、及び宛先場所、並びに要求される送信時間を含み得る。例えば、例示的なシナリオでは、受信された情報は、第1のクライアントデータについて、クライアントデータの量が10Gbであり、第1のクライアントデータについての発信元場所が地上局107bであり、宛先場所が地上局107aであり、要求される送信時間が現在の時間であることを示し得る。データの量は、追加的又は代替的に、所与の地理的領域内の1つの所与の地上局又は複数のクライアントデバイス若しくは複数の地上局から伝送される又はそこへ伝送されるデータの、推定される平均量であり得る。場合によっては、情報は、帯域幅、サービスクラス、サービス品質などの伝送要件も含む。いくつかの実施形態では、クライアントデータに関連する情報は、ネットワークコントローラ300の1つ以上のプロセッサ310によって、又はリモートシステムによって予測されてもよい。
【0064】
ブロック410において、1つ以上のプロセッサ310によって、ソルバーモジュール332を使用して、決定されたトポロジ500の一次ネットワーク構成700が決定され得る。一次ネットワーク構成700は、ブロック408において受信された情報などの受信されたクライアントデータ情報に従ってクライアントデータのためのトポロジを通るフローを決定することによって、かつクライアントデータのためのルーティング経路としてトポロジを通る1つ以上のフローを選択することによって、決定され得る。例えば、一次ネットワーク構成700は、現時点で利用可能なノード及びリンクの全てを含み、注目すべきことに、リンク131、137及びノード110eは省略している。図6に薄い色の矢印で示されるように、第1のクライアントデータのためのトポロジ500内の第1のルーティング経路は、地上局107bと地上局107aとの間のルーティング経路部分を含み得る。第1のルーティング経路部分は、地上局107bからリンク135を介してHAP110bまでであり、第2のルーティング経路部分は、HAP110bからリンク132を介してHAP110aまでであり、第3のルーティング経路部分は、HAP110aからリンク130を介して地上局107aまでである。
【0065】
地上局107bから地上局107aに伝送される他のクライアントデータは、第1のクライアントデータと同じルーティング経路に沿って伝送されてもよく、又は帯域幅制約などの制約により、地上局107bから地上局107aへの第2のルーティング経路に沿って少なくとも部分的に伝送されるように決定されてもよい。図6にハッシュ線で塗りつぶされた(hash-filled)矢印で示されるように、第2のルーティング経路は、地上局107bからHAP110cまでのリンク134を通る第1のルーティング経路部分、HAP110cからHAP110bまでのリンク133を通る第2のルーティング経路部分、HAP110bからHAP110aまでのリンク132を通る第3のルーティング経路部分、及びHAP110aから地上局107aまでのリンク130を通る第4のルーティング経路部分を含み得る。
【0066】
図6に灰色の矢印で示されるように、追加のクライアントデータのための第3のルーティング経路は、地上局107aからHAP110dまでのリンク140を通る第1のルーティング経路部分、HAP110dからHAP110fまでのリンク143を通る第2のルーティング経路部分、及びHAP110fから地上局107cまでのリンク145を通る第3のルーティング経路部分を含み得る。
【0067】
ネットワーク上で伝送されるクライアントデータの現時点でのルーティング経路に基づいて、1つ以上のプロセッサ310は、図7に示すように、一次ネットワーク構成700がリンク130、132~136、140、143、及び145を含むように決定することができる。他のリンクは、現時点で形成される必要はない。一次ネットワーク構成700を決定することはまた、一次ネットワーク構成に含まれるルーティング経路に基づいて各ノードのための第1の転送ルールを決定することを含み得る。第1の転送ルールは、経路に沿ったノードごとに決定されてもよいし、クライアントデータごとに決定されてもよい。特定のクライアントデータについて決定されると、第1の転送ルールは、発信元ノードに送信され得、特定のクライアントデータを搬送するパケット内にカプセル化され得る。また、第1の転送ルールは、方向を指すこと、又はビーム構成など、一次ネットワーク構成内のリンクを形成することに関する命令を含むこともできる。
【0068】
ブロック412において、ネットワーク100のための二次ネットワーク構成800が、ネットワークで利用可能な各ノードにおいて決定され得る。特に、二次ネットワーク構成は、モバイルアドホックネットワークルーティングプロトコルなどの分散ルーティングプロトコルを使用して、所与のノードにおける1つ以上のプロセッサによって決定され得る。例えば、所与のノードからの1つ以上の次のホップは、一次ネットワーク構成700からのノード及びリンクに基づいて決定され得る。所与のノードにおける1つ以上のプロセッサは、所与のノードからネットワークコントローラ300、1つ以上の宛先ノード、及び/又はより高いレベルの中間ノードへの二次ルーティング経路を決定してもよい。二次ネットワーク構成における二次ルーティング経路は、一次ネットワーク構成におけるルーティング経路と異なっていてもよい。二次ネットワーク構成内に存在し得る可能な二次ルーティング経路は、一次ネットワーク構成内にあるルーティング経路より多くても少なくてもよい。所与のノードにおける1つ以上のプロセッサは、ネットワーク内の利用可能なノード及びリンクに基づいて、二次ネットワーク構成を定期的又は継続的に決定している可能性がある。追加的又は代替的に、所与のノードにおける1つ以上のプロセッサは、ネットワークコントローラから利用可能なノード又はリンクを受信した後に、一次ネットワーク構成内のノード及びリンクに基づくなどして、二次ネットワーク構成を決定することができる。
【0069】
次いで、所与のノードの1つ以上のプロセッサは、二次ルーティング経路に基づいて、所与のノードからの第2の転送ルールを決定することができる。第2の転送ルールは、プロアクティブ(テーブル主導型)ルーティング、リアクティブ(オンデマンド)ルーティング、ハイブリッド(プロアクティブ及びリアクティブ)ルーティング、又は階層的ルーティングのためのものであってもよい。いくつかの実装形態では、所与のノードの第2の転送ルールは、クライアントデータのための所与のノードと宛先ノードとの間の二次ルーティング経路のための次のホップ命令を含む。他の実装形態では、所与のノードのための第2の転送ルールは、所望の宛先ノードへのルーティング経路内の全てのノードではなく、所望の宛先ノードと関連付けられた次のノードへの次のホップ命令を含む。更に他の実装形態では、第2の転送ルールは、一次構成のノード及びリンクのテーブルと、ルーティングプロトコルとを含み得る。次いで、所与のノードの1つ以上のプロセッサは、任意選択で、任意のリンク障害又はトポロジ内の他の変化を反映するようにテーブルが更新された後に、テーブル及びルーティングプロトコルに基づいて取るべきルーティング経路を決定することができる。
【0070】
図8に示される例では、二次ネットワーク構成800は、(ハッシュ線で塗りつぶされた)第1の二次ルーティング経路及び(灰色の)第2の二次ルーティングパスのための、第2の転送ルールを含んでもよい。二次ネットワーク構成に他の二次ルーティング経路が含まれてもよいが、明確にするために示されていない。第1の二次ルーティング経路は、第1のクライアントデータのためのバックアップ経路として決定され得る。第1の二次ルーティング経路は、地上局107bからHAP110cまでリンク134を通り、HAP110bまでリンク133を通り、HAP110aまでリンク132を通り、地上局107aまでリンク130を通る経路である。この二次ルーティング経路は、地上局107bとHAP110bとの間のリンク135が、リンク135における障害の場合に使用することができるHAP110cに接続するリンク134及び133に置き換わるという点で、一次ネットワーク構成におけるルーティング経路とは異なる。第2の二次ルーティング経路は、地上局107aと107cとの間の一次ネットワーク構成内のルーティング経路に沿って伝送される追加のクライアントデータのための、バックアップ経路として決定され得る。特に、第2の二次ルーティング経路は、地上局107aからHAP110aまでリンク130を通り、HAP110bまでリンク132を通り、HAP110dまでリンク136を通り、HAP110fまでリンク143を通り、地上局107cまでリンク145を通る経路である。この二次ルーティング経路は、地上局107aとHAP110dとの間のリンク140が、リンク140における障害の場合に使用することができるHAP110a及び110dに接続するリンク130、132及び136に置き換わるという点で、一次ネットワーク構成におけるルーティング経路とは異なる。
【0071】
図4に更に示されるように、ブロック414において、ネットワークコントローラ300の1つ以上のプロセッサ310は、ネットワーク100のノード107、110に一次ネットワーク構成を実装させるため、かつ所与の時点又は所与の時間枠中にバックアップのために二次ネットワーク構成に切り替えさせるための実装命令を、該ネットワークの該ノードに送信し得る。例示的なシナリオでは、一次ネットワーク構成について、ノード107、110への実装命令は、リンクを形成し、少なくとも図6に示されるルーティング経路部分を実装するための命令を含んでもよい。したがって、実装命令は、リンク130及び132を形成するために、地上局107aの1つ以上の送受信機をそれぞれHAP110a及び110dの方に向けるための地上局107aへの命令、リンク135及び134を形成するために、地上局107bの1つ以上の送受信機をそれぞれHAP110b及び110cの方に向けるための地上局107bへの命令、リンク145を形成するために、地上局107cの1つ以上の送受信機をHAP110fの方に向けるための地上局107cへの命令、リンク130及び132を形成するために、HAP110aの送受信機をそれぞれ地上局107a及びHAP110bの方に向けるためのHAP110aへの命令、リンク135、132、133、及び136を形成するために、HAP110bの送受信機をそれぞれ地上局107b、HAP110a、HAP110b、及びHAP110dの方に向けるためのHAP110bへの命令、リンク134及び133を形成するために、HAP110cの送受信機をそれぞれ地上局107b及びHAP110bの方に向けるためのHAP110cへの命令、リンク140、136、及び143を形成するために、HAP110dの送受信機をそれぞれ地上局107a、HAP110b、及びHAP110fの方に向けるためのHAP110dへの命令、及びリンク143及び145を形成するために、HAP110fの送受信機をそれぞれHAP110d及び地上局107cの方に向けるためのHAP110fへの命令を含むことができる。
【0072】
場合によっては、一次ネットワーク構成内の1つ以上のリンクがすでに形成されている可能性があり、その場合、送受信機の方向を変更する必要はない。加えて、開始局である地上局107a又は107bへの実装命令は、所与のネットワーク構成を通してルーティング経路上で伝送されるクライアントデータの受信及び送信のための、第1の転送ルールを含み得る。第1の転送ルールは、クライアントデータの発信元場所、クライアントデータの宛先場所、伝送のタイミング、及び/又は伝送の速度を含み得る。例えば、第1のクライアントデータのための第1の転送ルールが地上局107bにおいて受信されると、地上局107bは、一次ネットワーク構成を通じて現在時刻で第1のクライアントデータを送信するようにさせられ得る。
【0073】
将来の時間、将来の時間枠、又は他の時点のために生成された一次ネットワーク構成の場合、実装命令は、ネットワーク100内のスケジュールされた変更を格納することを含み得、このスケジュールされた変更とは、例えば、各ノードにおいて将来の時点でクライアントデータを伝送する前に発生し得る、新たなルーティング経路を実装するように送受信機を操向することなどである。したがって、実装命令は、各ノードにおける転送テーブル内の転送ルールを、将来のネットワーク構成に従って新しいルーティング経路を実装するための新しいルーティング経路及び時間若しくは時間枠で更新することを含むことができる。時間又は時間枠に達したとき、実装命令に従って、ネットワーク100のノード107、110に将来のネットワーク構成を自動的に実装させてもよい。
【0074】
実装命令はまた、一次ネットワーク構成と同じ時間又は時間枠において一次ネットワーク構成に障害があるとき、二次ネットワーク構成を実装するようにネットワークを準備するための命令を含んでもよい。この場合、実装命令は、一次ネットワーク構成の第1の転送ルールに対するバックアップとして、図8に示されるような二次ルーティング経路を実装するための第2の転送ルールを格納することを含んでもよい。例えば、実装命令は、リンク134を介して第1のクライアントデータをHAP110cにルーティングするための地上局107aへの次のホップ命令と、リンク133を介して第1のクライアントデータをHAP110bにルーティングするためのHAP110cへの次のホップ命令と、リンク130を介して追加のクライアントデータをHAP110aにルーティングするための地上局107bへの次のホップ命令と、追加のクライアントデータをHAP110bにルーティングするためのHAP110aへの次のホップ命令と、追加のクライアントデータをHAP110dにルーティングするためのHAP110bへの次のホップ命令とを含んでもよい。
【0075】
実装命令はまた、ある状況下で、第1の転送ルールの実装から第2の転送ルールの実装に切り替えるための命令を含んでもよい。例えば、切り替えるための命令は、第1のノードと第2のノードとの間にリンク障害があるとき、伝送されたクライアントデータが第1のノードから第2のノードにおいて受信されないとき、又は伝送されたクライアントデータが予想される時間内に宛先ノードにおいて受信されないときなど、第1の転送ルールが完了できないときを検出することを含むことができる。命令は次いで、失敗した第1の転送ルールをバイパスするために、第1のノードから又はネットワーク内の別のノードから第2の転送ルールを実装することを含み得る。いくつかの例では、命令は、第2の転送ルールを実装する前に、一次ネットワーク構成及び失敗した第1の転送ルールに基づいて、第2の転送ルールが実装できるかどうか、又はどの第2の転送ルールが実装されるかを決定することを含み得る。
【0076】
図9に、上述した態様のうちのいくつかによるフロー図900を示し、これは、HAP110aの1つ以上のプロセッサ210など、ネットワークの所与のノードの1つ以上のプロセッサによって実施され得る。追加的又は代替的に、ネットワークコントローラ300の1つ以上のプロセッサ310が、動作のうちの1つ以上を実施してもよい。図9は特定の順序でブロックを示しているが、順序は変更されてもよく、複数の動作が同時に実施されてもよい。また、動作が追加又は省略されてもよい。
【0077】
ブロック902において、実装命令を受信する地上局107aの1つ以上のプロセッサなどの第1のノードの1つ以上のプロセッサは、二次ネットワーク構成のための第2の転送ルールのうちの1つ以上に関連して、一次ネットワーク構成のための第1の転送ルールのうちの1つ以上を格納し得る。第1の転送ルール及び第2の転送ルールは、図4のフロー図400に関して上述されたように決定することができる。いくつかの実装形態では、1つ以上の第2の転送ルールは、第1の転送ルールを受信した後に、第1のノードの1つ以上のプロセッサによって決定又は更新され得る。実装命令に基づいて、1つ以上の第1の転送ルールは、1つ以上の第2の転送ルールよりも高い優先度で格納され得る。1つ以上の第1の転送ルールのより高い優先度により、第1の転送ルールのうちの1つがもはや実装され得ない場合を除いて、1つ以上の第1の転送ルールを所与の時点で実装させることができる。例えば、地上局107aにおいて、追加のクライアントデータのための第1の転送ルールは、地上局107cの宛先に向かうリンク140を介したHAP110dへの次のホップであってもよく、追加のクライアントデータのための第2の転送ルールは、地上局107cの宛先に向かうリンク130を介したHAP110aへの次のホップであってもよい。
【0078】
ブロック904において、第1のノードの1つ以上のプロセッサは、所与の時点において第2のノードに信号を向けることを含む1つ以上の第1の転送ルールを実装し得る。1つ以上の第1の転送ルールを実装することは、第2のノードとのリンクを確立することを含み得る。例えば、1つ以上の第1の転送ルールのうちの第1の転送ルールを実装するために、第1のノードは、ルーティング経路に従って、アンテナをネットワーク内の次のホップである第2のノードと物理的又は電子的に位置合わせすることができる。第1のノードはまた、ネットワーク内の第2のノードとのリンクのための1つ以上の信号特性を調整することもできる。地上局107aの場合、地上局107aの1つ以上のプロセッサは、第1の転送ルールに従ってHAP110dとのリンク140を形成するために、少なくとも1つの送受信機に場所Dの方を向くようにさせることができる。同様に、HAP110dは、地上局107aから信号を受信するように配置されるように、少なくとも1つの送受信機を地上局107aに向けることができる。地上局107aの少なくとも1つの送受信機は、リンクのための特定の周波数帯域又は他の信号特性を用いて構成され得る。追加のクライアントデータは、リンク140上で地上局107aからHAP110dに送信され得る。
【0079】
ブロック906において、第1のノードは、第2のノードにおけるローカル障害を検出することができる。第2のノードにおけるローカル障害は、第2のノードとの通信が確立できないときに検出され得る。代替的に、ローカル障害は、第2のノードがオフラインであるか又はそうでなければ到達不可能であることを示す通信が、ネットワークコントローラ又は第3のネットワークから第1のノードにおいて受信されたときに検出され得る。例えば、地上局107aの1つ以上のプロセッサは、リンク140が確立できないとき、又は地上局107aとHAP110dとの間に暴風雨が配置されていることを示す気象通信が受信され、HAP110dがある時間期間の間、到達不能になったときに、HAP110dがローカル障害を経験したと判定してもよい。
【0080】
ブロック908において、第2のノードにおけるローカル障害が検出された後、第1のノードは、第3のノードに信号を向けることを含む、1つ以上の第2の転送ルールのうちの少なくとも1つを実施することができる。1つ以上の第2の転送ルールは、第1のノードのメモリに格納されてもよいし、又はローカル障害が検出された後に決定されてもよい。いくつかの実装形態では、少なくとも1つの第2の転送ルールは、データの宛先に基づいて、又は第1のノードと宛先との間の利用可能な中間ノードに基づいて、1つ以上の第2の転送ルールから選択され得る。少なくとも1つの第2の転送ルールを実装することは、第3のノードとのリンクを確立することを含み得る。代替的に、第3のノードとのリンクは、一次構成から既に存在してもよく、少なくとも1つの第2の転送ルールを実装することは、第2のノードに向けられた第1のポートから第3のノードに向けられた第2のポートに信号を向け直すことを含んでもよい。例えば、地上局107aの1つ以上のプロセッサは、リンク130上で追加のクライアントデータをHAP110aに伝送するように切り替えることができる。リンク130は、第1のクライアントデータをルーティングするために既に形成されているので、HAP110aは、地上局107aからの通信を受信するように既に配置されている。
【0081】
いくつかの例では、ブロック910に示すように、第1のノードは、第2のノードのローカル障害の通知をネットワークコントローラに送信し得る。他の例では、ネットワークコントローラは、ネットワークコントローラと通信する他のノード又は他のセンサを使用して、第2のノードのローカル障害を検出することができる。
【0082】
ネットワークコントローラは、第2のノードのローカル障害を調整するために、更新された一次構成を生成することができる。更新された一次構成は、第1の一次構成と同一又は同様の方法でソフトウェア定義ネットワーキングを使用して生成された、全体構成であり得る。生成されると、実装されるネットワークのノードに、更新された一次構成のための更新された転送ルールが送信され得る。更新された一次構成は、ネットワークのノードによって実装されている1つ以上の第1の転送ルール及び1つ以上の第2の転送ルールのいずれかを置換することができる。
【0083】
いくつかの代替実装形態では、ネットワークコントローラは、1つ以上の第2の転送ルールを含む一次ネットワーク構成をバックアップし、1つ以上の第1の転送ルールが伝送されるのと同一又は同様の方法で、1つ以上の第2の転送ルールをそれぞれのノードに送信するために、二次ネットワーク構成を決定することができる。
【0084】
この技術により、より信頼性の高いソフトウェア定義ネットワークが可能となる。通信は、ソフトウェア定義ネットワークのグローバルな最適性を維持しながら、ローカル障害などの事象中により低いレイテンシ及びより少ないパケット損失で伝送され得る。例えば、一次ネットワークのローカル障害の後に一次ネットワークの制御プレーンが二次ネットワークに引き継がれると、一次ネットワークの回復時間はより短くなり得る。結果として、クライアントデータは、他のネットワークよりも高速に、又はよりスケジュールどおりに送受信され得る。ネットワークは、全体としてより大量のデータの伝送をサポートすることが可能であり得る。
【0085】
特に明記しない限り、前述の代替例は相互に排他的ではなく、独自の利点を達成するために様々な組み合わせで実施することができる。上記の特徴のこれら及び他の変形及び組み合わせは、特許請求の範囲によって定義される主題から逸脱することなく利用でき、実施形態の前述の説明は、特許請求の範囲によって定義される主題の限定としてではなく、例示として解釈されるべきである。更に、本明細書に記載の例の提供、並びに「など」、「含む」などの表現は、特許請求の範囲の主題を特定の例に限定するものとして解釈されるべきではなく、むしろ、これらの例は、多くの可能な実施形態のうちの1つのみを説明することを意図している。更に、異なる図面の同じ参照符号は、同一又は同様の要素を識別することができる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
【国際調査報告】