(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023134502
(43)【公開日】2023-09-27
(54)【発明の名称】NGSO衛星ネットワーク用の時空間ソフトウェア定義ネットワーキング
(51)【国際特許分類】
H04L 45/42 20220101AFI20230920BHJP
【FI】
H04L45/42
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023102805
(22)【出願日】2023-06-22
(62)【分割の表示】P 2021155644の分割
【原出願日】2018-04-25
(31)【優先権主張番号】15/497,738
(32)【優先日】2017-04-26
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/954,922
(32)【優先日】2018-04-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/511,377
(32)【優先日】2017-05-26
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】523048206
【氏名又は名称】アーリリア テクノロジーズ,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【弁理士】
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【弁理士】
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】バリット,ブライアン
(57)【要約】 (修正有)
【課題】ネットワークコントローラを含むシステムを提供する。
【解決手段】ネットワークコントローラは、情報をネットワークのノードから受信する。ノードは、別のノードに対して運動している1つのノードを含む。ネットワークコントローラはまた、ネットワーク内の利用可能なノード及び可能なリンクを表わすテーブルを情報に基づいて生成し、ネットワークのトポロジーをテーブルに基づいて決定し、追加的に、クライアントデータ情報をクライアントデバイスから受信し、トポロジーに関するフローを、クライアントデータ情報に基づいて決定する。各フローは、ネットワークを通るルーチィング経路に関する1つ以上の要件を含む。ネットワークコントローラはさらに、トポロジーに関するネットワーク構成をフローに基づいて生成し、命令をネットワークのノードに送信して、ネットワーク構成を実現してクライアントデータを送信する。
【選択図】
図9
【特許請求の範囲】
【請求項1】
ネットワークコントローラを備えるシステムであって、
前記ネットワークコントローラが、
情報をネットワークの複数のノードから受信することであって、前記複数のノードが第2のノードに対して運動している第1のノードを含む、受信することと、
前記ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを、前記受信した情報に基づいて生成することと、
所定の時点に関する前記ネットワークのトポロジーを前記生成したテーブルに基づいて決定することと、
クライアントデータ情報を1つ以上のクライアントデバイスから受信することと、
前記決定したトポロジーに関する複数のフローを、前記クライアントデータ情報に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記決定したトポロジーに関するネットワーク構成を、前記決定した複数のフローに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、前記生成したネットワーク構成を実現してクライアントデータを前記所定の時点で送信することと、を行うように構成されている、システム。
【請求項2】
前記複数のノードをさらに備える、請求項1に記載のシステム。
【請求項3】
前記複数のノードは、1つ以上の地上局と、1つ以上の高高度プラットフォームと、を含む、請求項1に記載のシステム。
【請求項4】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項1に記載のシステム。
【請求項5】
前記テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて、所定のノードまたはリンクが利用可能であると予測される将来時刻を含む、スケジューリングされた時刻または時刻フレームを含む、請求項1に記載のシステム。
【請求項6】
前記クライアントデータ情報は、過去のクライアントデータトレンドを含み、前記ネットワークコントローラは、前記クライアントデータ情報を前記過去のクライアントデータトレンドに基づいて予測することにより、前記決定したトポロジーに関する前記複数のフローを決定するように構成されている、請求項1に記載のシステム。
【請求項7】
前記ネットワーク構成は、1つ以上のルーティング経路を含み、各ルーティング経路は、前記複数のフローのうち1つのフローの前記1つ以上の要件を満たす、請求項1に記載のシステム。
【請求項8】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードに、1つ以上のトランシーバを前記1つ以上のルーティング経路に基づいて操作させる、請求項7に記載のシステム。
【請求項9】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードのうち少なくとも1つのノードに、ルーティングテーブルを前記1つ以上のルーティング経路に従って更新させる、請求項7に記載のシステム。
【請求項10】
前記ネットワークコントローラは、一連のネットワーク構成、および前記一連のネットワーク構成に関するスケジュールを生成するようにさらに構成されている、請求項1に記載のシステム。
【請求項11】
前記ネットワークコントローラは、
前記ネットワーク内のノードペア間の第2の複数のフローを、第2の時点に関する前記ネットワークの第2のトポロジーに基づいて決定することであって、前記ノードペアの前記ノードの各ノードが前記ネットワークの外側の前記1つ以上のクライアントデバイスと通信することができる、決定することと、
メッセージを前記1つ以上のクライアントデバイスの第1のクライアントデバイスに送信することであって、前記メッセージが、前記第2の複数のフロー、および第2のクライアントデータ情報に対する要求を含む、送信することと、
前記第2のクライアントデータ情報を含む応答を前記第1のクライアントデバイスから受信することと、
第2のネットワーク構成を、前記第2の複数のフロー、および前記第2のクライアントデータ情報に基づいて生成することと、を行うようにさらに構成されている、請求項1に記載のシステム。
【請求項12】
前記ネットワークコントローラは、クライアントデータを送信する時刻が所定の時点であることを、前記クライアントデータ情報および前記ネットワークの前記決定したトポロジーを使用して前記所定の時点で判断するようにさらに構成されている、請求項1に記載のシステム。
【請求項13】
方法であって、
ネットワークのネットワークコントローラにより、情報を前記ネットワークの複数のノードから受信することであって、前記複数のノードが、第2のノードに対して運動している第1のノードを含む、受信することと、
前記ネットワークコントローラにより、前記ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを前記受信した情報に基づいて生成することと、
前記ネットワークコントローラにより、所定の時点に関する前記ネットワークのトポロジーを前記生成したテーブルに基づいて決定することと、
前記ネットワークコントローラにより、クライアントデータ情報を1つ以上のクライアントデバイスから受信することと、
前記ネットワークコントローラにより、前記決定したトポロジーに関する複数のフローを前記クライアントデータ情報に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記ネットワークコントローラにより、前記決定したトポロジーに関するネットワーク構成を、前記決定した複数のフローに基づいて生成することと、
前記ネットワークコントローラにより、命令を前記ネットワークの前記複数のノードに送信して、前記生成したネットワーク構成を実現してクライアントデータを前記所定の時点で送信することと、を含む、方法。
【請求項14】
前記テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて、所定のノードまたはリンクが利用可能であると予測される将来時刻を含むスケジューリングされた時刻または時刻フレームを含む、請求項13に記載の方法。
【請求項15】
前記クライアントデータ情報は、過去のクライアントデータトレンドを含み、前記方法は、前記ネットワークコントローラにより、前記クライアントデータ情報を前記過去のクライアントデータトレンドに基づいて予測することにより、前記決定したトポロジーに関する前記複数のフローを決定することをさらに含む、請求項13に記載の方法。
【請求項16】
前記ネットワーク構成は、1つ以上のルーティング経路を含み、各ルーティング経路は、前記複数のフローのうち1つのフローの前記1つ以上の要件を満たす、請求項13に記載の方法。
【請求項17】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードに、1つ以上のトランシーバを前記1つ以上のルーティング経路に基づいて操作させる、請求項16に記載の方法。
【請求項18】
前記ネットワークの前記複数のノードに送信される前記命令により、前記複数のノードのうち少なくとも1つのノードに、ルーティングテーブルを前記1つ以上のルーティング経路に従って更新させる、請求項16に記載の方法。
【請求項19】
前記ネットワークコントローラは、一連のネットワーク構成、および前記一連のネットワーク構成に関するスケジュールを生成するようにさらに構成されている、請求項16に記載の方法。
【請求項20】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項13に記載の方法。
【請求項21】
ネットワークコントローラを備えるシステムであって、
前記ネットワークコントローラが、
情報をネットワークの複数のノードから受信することであって、前記複数のノードが第2のノードに対して運動している第1のノードを含む、受信することと、
ノード、各ノードにおいて利用可能なストレージ、および前記ネットワーク内の可能なリンクを表わすテーブルを、所定の期間にわたって前記受信した情報に基づいて生成することと、
前記ネットワークの一連のトポロジーを前記所定の期間にわたって前記生成したテーブルに基づいて決定することと、
クライアントデータ情報を1つ以上のクライアントデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記決定した一連のトポロジーに関する複数のフローを、少なくとも前記データ量および各ノードで前記利用可能なストレージに基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記決定した一連のトポロジーに関するネットワーク構成のスケジュールを、前記決定した複数のフローに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、ネットワーク構成の前記スケジュールを実現してクライアントデータを前記所定の期間にわたって送信することと、を行うように構成されている、システム。
【請求項22】
前記複数のノードをさらに備える、請求項21に記載のシステム。
【請求項23】
前記複数のノードは、1つ以上の地上局と、1つ以上の高高度プラットフォームと、を含む、請求項21に記載のシステム。
【請求項24】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項21に記載のシステム。
【請求項25】
ネットワーク構成の前記スケジュールは、第1のネットワーク構成と、前記第1のネットワーク構成に従うようにスケジューリングされる第2のネットワーク構成と、第1の部分を第1のノードと第2のノードとの間に有し、かつ第2の部分を前記第2のノードと第3のノードとの間に有する第1のルーティング経路と、を含み、前記第1のルーティング経路の前記第1の部分が、前記第1のネットワーク構成の構成部分であり、前記第1のルーティング経路の前記第2の部分が、前記第2のネットワーク構成の構成部分である、請求項21に記載のシステム。
【請求項26】
前記第2のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第1のルーティング経路の前記第2の部分は前記第2のノードにあり、前記第2のノードは、前記クライアントデータを前記ルーティング経路の前記第2の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項25に記載のシステム。
【請求項27】
前記第2のネットワーク構成は、前記第2のノードと前記ルーティング経路の前記第2の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項26に記載のシステム。
【請求項28】
前記第2のノードは、前記ルーティング経路の前記第2の部分の前記隣接ホップに対して運動している、請求項27に記載のシステム。
【請求項29】
前記ネットワークコントローラは、
前記一連のトポロジーの各トポロジーの前記第1のノードと前記第3のノードとの間に経路がないと判断することと、
前記一連のトポロジーの各トポロジーの前記第1のノードと前記第3のノードとの間に経路がないとの判断に応答して、ネットワーク構成の前記スケジュールを生成することと、を行うようにさらに構成されている、請求項25に記載のシステム。
【請求項30】
前記ネットワークコントローラは、前記決定した一連のトポロジーに関する複数のフローを、各ノードにおける少なくとも前記データ量および前記利用可能なストレージに基づいて、
前記データ量を格納するために十分な利用可能なストレージを有する所定のノードを特定することにより、かつ
前記所定のノードを使用して前記クライアントデータを所定の期間にわたって前記少なくとも1つのフローに格納する前記所定のノードを含む少なくとも1つのフローを決定することにより、決定するように構成されている、請求項21に記載のシステム。
【請求項31】
方法であって、
ネットワークのネットワークコントローラにより、情報を前記ネットワークの複数のノードから受信することであって、前記複数のノードが、第2のノードに対して運動している第1のノードを含む、受信することと、
前記ネットワークコントローラにより、前記ネットワーク内のノード、各ノードのストレージ容量、および可能なリンクを表わすテーブルを所定の期間にわたって前記受信した情報に基づいて生成することと、
前記ネットワークコントローラにより、前記ネットワークの一連のトポロジーを前記所定の期間にわたって、前記生成したテーブルに基づいて決定することと、
前記ネットワークコントローラにより、クライアントデータ情報を1つ以上のクライアントデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記ネットワークコントローラにより、前記決定した一連のトポロジーに関する複数のフローを各ノードの少なくとも前記データ量および前記ストレージ容量に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記ネットワークコントローラにより、前記決定した一連のトポロジーに関するネットワーク構成のスケジュールを、前記決定した複数のフローに基づいて生成することと、
前記ネットワークコントローラにより、命令を前記ネットワークの前記複数のノードに送信して、ネットワーク構成の前記スケジュールを実現してクライアントデータを前記所定の期間にわたって送信することと、を含む、方法。
【請求項32】
ネットワーク構成の前記スケジュールは、第1のネットワーク構成と、前記第1のネットワーク構成に従うようにスケジューリングされる第2のネットワーク構成と、第1の部分を第1のノードと第2のノードとの間に有し、かつ第2の部分を前記第2のノードと第3のノードとの間に有する第1のルーティング経路と、を含み、前記第1のルーティング経路の前記第1の部分が、前記第1のネットワーク構成の構成部分であり、前記ルーティング経路の前記第2の部分が、前記第2のネットワーク構成の構成部分である、請求項31に記載の方法。
【請求項33】
前記第2のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第1のルーティング経路の前記第2の部分は前記第2のノードにあり、前記第2のノードは、前記クライアントデータを前記ルーティング経路の前記第2の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項32に記載の方法。
【請求項34】
前記第2のネットワーク構成は、前記第2のノードと前記ルーティング経路の前記第2の部分の隣接ホップとの間に新規に確立されるリンクを含む、請求項33に記載の方法。
【請求項35】
前記第2のノードは、前記ルーティング経路の前記第2の部分の前記隣接ホップに対して運動している、請求項34に記載の方法。
【請求項36】
前記ネットワークコントローラにより、前記一連のトポロジーの各トポロジーの前記第1のノードと前記第3のノードとの間に経路がないと判断することと、
前記ネットワークコントローラにより、前記一連のトポロジーの各トポロジーの前記第1のノードと前記第3のノードとの間に経路がないとの判断に応答して、ネットワーク構成の前記スケジュールを生成することと、をさらに含む、請求項32に記載の方法。
【請求項37】
前記決定した一連のトポロジーに関する複数のフローを、各ノードにおける少なくとも前記データ量および前記利用可能なストレージに基づいて決定することは、
前記データ量を格納するために十分な利用可能なストレージを有する所定のノードを特定することと、
前記所定のノードを使用して前記クライアントデータを所定の期間にわたって前記少なくとも1つのフローに格納する前記所定のノードを含む少なくとも1つのフローを決定することと、を含む、請求項31に記載の方法。
【請求項38】
プログラムのコンピュータ可読命令の格納先である非一時的な有形のコンピュータ可読記憶媒体であって、前記命令は、ネットワークのネットワークコントローラにより実行されると、前記ネットワークコントローラに方法を実行させ、前記方法は、
情報を前記ネットワークの複数のノードから受信することであって、前記複数のノードが、第2のノードに対して運動している第1のノードを含む、受信することと、
前記ネットワーク内のノード、各ノードのストレージ容量、および可能なリンクを表わすテーブルを所定の期間にわたって前記受信した情報に基づいて生成することと、
前記ネットワークの一連のトポロジーを、前記所定の期間にわたって前記生成したテーブルに基づいて決定することと、
クライアントデータ情報を1つ以上のクライアントデバイスから受信することであって、前記クライアントデータ情報がデータ量を含む、受信することと、
前記決定した一連のトポロジーに関する複数のフローを、少なくとも各ノードの前記データ量および前記ストレージ容量に基づいて決定することであって、前記複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記決定した一連のトポロジーに関するネットワーク構成のスケジュールを、前記決定した複数のフローに基づいて生成することと、
命令を前記ネットワークの前記複数のノードに送信して、ネットワーク構成の前記スケジュールを実現してクライアントデータを前記所定の期間にわたって送信することと、を含む、媒体。
【請求項39】
ネットワーク構成の前記スケジュールは、第1のネットワーク構成と、前記第1のネットワーク構成に従うようにスケジューリングされる第2のネットワーク構成と、第1の部分を第1のノードと第の2ノードとの間に有し、かつ第2の部分を前記第2のノードと第3のノードとの間に有する第1のルーティング経路と、を含み、前記第1のルーティング経路の前記第1の部分が、前記第1のネットワーク構成の構成部分であり、前記ルーティング経路の前記第2の部分が、前記第2のネットワーク構成の構成部分である、請求項38に記載の媒体。
【請求項40】
前記第2のノードは、前記データ量を格納するために十分な利用可能なストレージを有し、前記第1のルーティング経路の前記第2の部分は前記第2のノードにあり、前記第2のノードは、前記クライアントデータを前記第1のルーティング経路の前記第2の部分を介して送信する前に前記クライアントデータを格納するように構成されている、請求項39に記載の媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2017年4月26日に出願された米国特許出願第15/497,738号の継続出願、および「Temporospatial Software-Defined Networking For NGSO Satellite Networks」と題する2017年5月26日に出願された米国仮特許出願第62/511,377号の出願日の利益を主張する2018年4月17日に出願された米国特許出願第15/954,922号の継続出願であり、これらの継続出願の開示内容が参照により本明細書に全て組み込まれる。
【背景技術】
【0002】
情報は、航空宇宙ネットワークおよび他のモバイルネットワークのような指向性ポイントツーポイントネットワークを介して送信することができる。このようなネットワークでは、リンクをノードペア間に、各ノードペアのトランシーバを互いに向けることにより形成することができる。幾つかの実現形態では、ノードは、地球に対して運動している非静止衛星軌道(NGSO)衛星または他の高高度プラットフォーム(HAP)を含むことができる。
【発明の概要】
【0003】
本開示の態様はシステムを提供する。システムは、情報をネットワークの複数のノードから受信するように構成されたネットワークコントローラを含む。複数のノードは、第2のノードに対して運動している第1のノードを含む。ネットワークコントローラはまた、ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを、受信した情報に基づいて生成し、所定の時点に関する前記ネットワークのトポロジーを前記生成したテーブルに基づいて決定し、クライアントデータ情報を1つ以上のクライアントデバイスから受信し、決定したトポロジーに関する複数のフローを、クライアントデータ情報に基づいて決定するように構成されている。複数のフローの各フローは、ネットワークを通るルーティング経路に関する1つ以上の要件を含む。ネットワークコントローラは、決定したトポロジーに関するネットワーク構成を、決定した複数のフローに基づいて生成し、命令をネットワークの複数のノードに送信して、生成したネットワーク構成を実現して、クライアントデータを所定の時点で送信するようにさらに構成されている。
【0004】
1つの例示的な実現形態では、システムはまた、複数のノードを含む。別の実施形態では、複数のノードは、1つ以上の地上局と、1つ以上の高高度プラットフォームと、を含む。複数のノードは、追加的にまたは代替的に、自由空間光通信を実行するように構成されている。さらなる実施形態では、テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて所定のノードまたはリンクが利用可能であると予測される将来時刻を含むスケジューリングされた時刻または時刻フレームを含む。
【0005】
追加的にまたは代替的に、クライアントデータ情報は、過去のクライアントデータトレンドを含み、ネットワークコントローラは、クライアントデータ情報を過去のクライアントデータトレンドに基づいて予測することにより、決定したトポロジーに関する複数のフローを決定するように構成されている。別の実現形態では、ネットワーク構成は、1つ以上のルーティング経路を含む。各ルーティング経路は、複数のフローのうち1つのフローの1つ以上の要件を満たす。この例では、ネットワークの複数のノードに送信される命令により、複数のノードに、1つ以上のトランシーバを1つ以上のルーティング経路に基づいて操作させる、また、この例では、代替的に、ネットワークの複数のノードに送信される命令により、複数のノードのうち少なくとも1つのノードに、ルーティングテーブルを1つ以上のルーティング経路に従って更新させる。
【0006】
代替的に、ネットワークコントローラはまた、一連のネットワーク構成、および一連のネットワーク構成に関するスケジュールを生成するように構成されている。他の実施形態では、ネットワークコントローラはまた、任意に、ネットワーク内のノードペア間の第2の複数のフローを、第2の時点に関するネットワークの第2のトポロジーに基づいて決定し、ノードペアのノードの各ノードは、ネットワークの外側の1つ以上のクライアントデバイスと通信することができ、メッセージを1つ以上のクライアントデバイスの第1のクライアントデバイスに送信することができ、メッセージは、第2の複数のフロー、および第2のクライアントデータ情報に対する要求を含み、第2のクライアントデータ情報を含む応答を第1のクライアントデバイスから受信し、第2のネットワーク構成を、第2の複数のフロー、かつ第2のクライアントデータ情報に基づいて生成するように構成されている。さらなる実施形態では、ネットワークコントローラはまた、クライアントデータを送信する時刻が所定の時点であることを、クライアントデータ情報およびネットワークの決定したトポロジーを使用して所定の時点で判断するように構成されている。
【0007】
本開示の態様は方法を提供する。方法は、ネットワークのネットワークコントローラにより、情報をネットワークの複数のノードから受信することを含む。複数のノードは、第2のノードに対して運動している第1のノードを含む。方法はまた、ネットワークコントローラにより、ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを、受信した情報に基づいて生成することと、ネットワークコントローラにより、所定の時点に関するネットワークのトポロジーを、生成したテーブルに基づいて決定することと、ネットワークコントローラにより、クライアントデータ情報を1つ以上のクライアントデバイスから受信することと、ネットワークコントローラにより、決定したトポロジーに関する複数のフローをクライアントデータ情報に基づいて決定することと、を含む。複数のフローの各フローは、ネットワークを通るルーティング経路に関する1つ以上の要件を含む。さらに、方法は、ネットワークコントローラにより、決定したトポロジーに関するネットワーク構成を、決定した複数のフローに基づいて生成することと、ネットワークコントローラにより、命令をネットワークの複数のノードに送信して、生成したネットワーク構成を実現してクライアントデータを所定の時点で送信することと、を含む。
【0008】
1つの例示的な実施形態では、テーブルは、予測されるロケーションまたは予測されるリンクメトリックに基づいて、所定のノードまたはリンクが利用可能であると予測される将来時刻を含むスケジューリングされた時刻または時刻フレームを含む。別の実施形態では、クライアントデータ情報は、過去のクライアントデータトレンドを含み、方法はまた、ネットワークコントローラにより、クライアントデータ情報を過去のクライアントデータトレンドに基づいて予測することにより、決定したトポロジーに関する複数のフローを決定することを含む。
【0009】
追加的にまたは代替的に、ネットワーク構成は、1つ以上のルーティング経路を含む。各ルーティング経路は、この例では、複数のフローのうち1つのフローの1つ以上の要件を満たす。また、この例では、任意に、ネットワークの複数のノードに送信される命令により、複数のノードに、1つ以上のトランシーバを1つ以上のルーティング経路に基づいて操作させる。代替的にまたは追加的に、ネットワークの複数のノードに送信される命令により、複数のノードのうち少なくとも1つのノードに、ルーティングテーブルを1つ以上のルーティング経路に従って更新させる。加えて、ネットワークコントローラはまた、任意に、一連のネットワーク構成、および一連のネットワーク構成に関するスケジュールを生成するように構成されている。さらなる実施形態では、複数のノードは、自由空間光通信を実行するように構成されている。
【図面の簡単な説明】
【0010】
【
図1】本開示の態様による例示的な指向性ポイントツーポイントネットワーク100の挿絵図である。
【
図2】本開示の態様による
図1に示すネットワーク100の一部200の機能図である。
【
図3】本開示の態様によるネットワークコントローラ300の機能図である。
【
図4A】本開示の態様による例示的なテーブル400Aである。
【
図4B】本開示の態様による別の例示的なテーブル400Bを示している。
【
図4C】本開示の態様による別の例示的なテーブル400Bを示している。
【
図6】本開示の態様による
図1に示すネットワーク100のトポロジー600の機能図である。
【
図7】本開示の態様による
図1に示すネットワーク100の別のトポロジー700の機能図である。
【
図8】本開示の態様による
図6に示すトポロジー600内で実現することができるルーティング経路800の機能図である。
【
図10】本開示の態様による
図1に示すネットワーク100のトポロジー1000の機能図である。
【
図11】本開示の態様による
図1に示すネットワーク100の別のトポロジー1100の機能図である。
【
図12A】本開示の態様による
図10に示すトポロジー1000内で実現することができるルーティング経路の第1の構成部分1200Aの機能図である。
【
図12B】本開示の態様による
図11に示すトポロジー1100内で実現することができるルーティング経路の第2の構成部分800Bの機能図である。
【発明を実施するための形態】
【0011】
概要
このテクノロジーは、航空宇宙通信ネットワークにおいて使用されるように構成された時空間ソフトウェア定義ネットワーキング(TS-SDN)オペレーティングシステムに関する。特に、TS-SDNオペレーティングシステムは、非静止衛星軌道(NGSO)衛星または他の高高度プラットフォーム(HAP)をノードとして含む航空宇宙通信ネットワークにおいて使用され得る。TS-SDNオペレーティングシステムは、ネットワーク層およびスイッチング機能を制御、監視、および再構成するサービスおよびアプリケーションをスケジューリングおよび実現することができる。
【0012】
動作中、TS-SDNコントローラは、例えば自由空間光通信(FSOC)用に構成されたNGSO衛星のような利用可能なノード、および航空宇宙ネットワークを介して利用可能なルートまたはフローのリストを定期的に更新することができる。リストは、利用可能なノードおよび利用可能なフローのスケジュールを含むことができる。ノードおよびフローの利用可能性は、移動しているノードの軌道の予測に少なくとも基づいている可能性がある。所定の領域から全ての他の利用可能な領域への航空宇宙ネットワークを介した利用可能なフローは、所定の領域内のソフトウェア定義ネットワーク(SDN)対応ルータにより広告され得る。TS-SDNコントローラは、FSOC端末のタスキングを自動的にスケジューリングすることができ、当該スケジュールをFSOC端末に送信して、航空宇宙ネットワークに対する変更をスケジュールに従って同期させることができる。
【0013】
例示的なシステム
図1は、例示的な指向性ポイントツーポイントネットワーク100のブロック図である。ネットワーク100は、様々な地上デバイスおよび空中デバイスに搭載されるノードからなる指向性ポイントツーポイントコンピュータネットワークであり、ノードのうち幾つかのノードは、ネットワーク100内の他のノードに対する位置を経時的に変えることができる。例えば、ネットワーク100は、2つの地上データセンター105aおよび105b(データセンター105と総称される)の各データセンターに関連するノード、2つの地上局107aおよび107b(地上局107と総称される)の各地上局に関連するノード、および4つの空中高高度プラットフォーム(HAP)110a~110d(HAP110と総称される)の各空中高高度プラットフォームに関連するノードを含む。図示のように、HAP110aは飛行船であり、HAP110bは飛行機であり、HAP110cは気球であり、HAP110dは衛星である。幾つかの実施形態では、ネットワーク100内のノードは、FSOCを実行するように装備されて、ネットワーク100をFSOCネットワークとすることができる。追加的にまたは代替的に、ネットワーク100内のノードは、自由空間を伝搬することができる無線周波数信号または他の通信信号を介して通信するように装備され得る。ノードペア間に図示される矢印は、ノードの間の可能な通信リンク120、122、130~137を表わしている。
図1に示すネットワーク100は例示に過ぎず、幾つかの実現形態では、ネットワーク100は追加ノードまたは異なるノードを含むことができる。例えば、幾つかの実現形態では、ネットワーク100は、気球、飛行船、飛行機、無人航空機(UAV)、衛星、または任意の他の形態の高高度プラットフォームとすることができる追加HAPを含むことができる。
【0014】
幾つかの実現形態では、ネットワーク100は、携帯電話、ラップトップコンピュータ、デスクトップコンピュータ、ウェアラブルデバイス、またはタブレットコンピュータのようなクライアントデバイス用のアクセスネットワークとして機能することができる。ネットワーク100は、インターネットのような、より大規模なネットワークに接続することもでき、クライアントデバイスから、より大規模なコンピュータネットワーク上に格納される、またはより大規模なコンピュータネットワークを介して供給されるリソースへのアクセスが可能となるように構成することができる。幾つかの実現形態では、HAP110は、eNodeB基地局のようなセルラーネットワークもしくは他のモバイルネットワーク、またはWiMAXもしくはUMTSアクセスポイントのような他の無線アクセスポイントに関連する無線トランシーバを含むことができる。一体となって、HAP110は、無線アクセスネットワークの全て、または一部を形成することができる。HAP110は、データセンター105に、例えばバックボーンネットワークリンクまたはサードパーティにより運用される中継ネットワークを介して接続することができる。データセンター105は、ネットワーク100の構成要素を監視または制御するリモートユーザおよびシステムによりアクセスされるアプリケーションをホストするサーバを含むことができる。HAP110は、無線アクセスをユーザに対して可能とし、ユーザ要求をデータセンター105にルーティングすることができ、応答をユーザにバックボーンネットワークリンクを介して返すことができる。
【0015】
図2に示すように、地上局107およびHAP110のような各ノードは、リンク130~137のような1つ以上のリンクを所定のHAP110と別ノードとの間にネットワーク内で作成するように構成された1つ以上のトランシーバを含むことができる。HAP110aを参照すると、ネットワーク100の地上局107およびHAP110のようなノードの各ノードは、1つ以上のプロセッサ210、メモリ212、および1つ以上のトランシーバ220を含むことができる。明瞭性および簡潔性を期して、地上局107aおよびHAP110a、110dのみが
図2に図示されている。しかしながら、ネットワーク内の他の地上局およびHAPは、地上局107またはHAPS110a、110dと同じまたは同様の構成を有することができる。
【0016】
1つ以上のプロセッサ210は、市販のCPUのような任意の従来のプロセッサとすることができる。代替的に、1つ以上のプロセッサは、特定用途向け集積回路(ASIC)のような専用デバイスとするか、またはフィールドプログラマブルゲートアレイ(FPGA)のような他のハードウェアベースのプロセッサとすることができる。
図2は、1つ以上のプロセッサ210およびメモリ212を同じブロック内にあるものとして機能的に示しているが、1つ以上のプロセッサ210およびメモリ212は、実際には、同じ物理的ハウジング内に格納されてもよく、または格納されていなくてもよいプロセッサおよびメモリを備えることができることを理解できるであろう。したがって、プロセッサまたはコンピュータに対する言及は、並列に動作してもよく、または動作しなくてもよいプロセッサまたはコンピュータもしくはメモリの集合体に対する言及を含むと理解されるであろう。
【0017】
メモリ212は、1つ以上のプロセッサ210によりアクセス可能な情報を格納し、情報は、1つ以上のプロセッサ210により実行され得るデータ214および命令216を含む。メモリは、プロセッサによりアクセス可能な情報を格納することができる任意のタイプとすることができ、ハードドライブ、メモリカード、ROM、RAM、DVD、または他の光ディスクのようなコンピュータ可読媒体、および他の書き込み可能メモリおよびリードオンリメモリを含むことができる。システムおよび方法は、前出の異なる組み合わせを含むことができ、これにより、データ214および命令216の異なる部分が異なるタイプの媒体に格納される。HAP110aのメモリ212のような各ノードのメモリでは、各ノードで受信される信号をどのようにしてルーティングまたは送信すべきかを示すルーティングテーブルを格納することができる。例えば、メモリ212に格納されているルーティングテーブルは、地上局107aから受信される信号をHAP110dにルーティングすべきであることを示すことができる。
【0018】
データ214は、1つ以上のプロセッサ210により命令216に従って取り出すことができる、格納することができる、または修正することができる。例えば、システムおよび方法は、特定のデータ構造により決して限定されることはないが、データ214は、コンピュータレジスタ、リレーショナルデータベースに、複数の異なるフィールドおよびレコード、XML文書またはフラットファイルを有するテーブルとして格納することができる。データ214はまた、これらには限定されないが、バイナリ値またはユニコードのような任意のコンピュータ可読形式でフォーマット化されるようにしてもよい。単なる例として、画像データは、圧縮される、または圧縮されない形式、ロスレス(例えば、BMP)またはロッシー(例えば、JPEG)、およびビットマップまたはベクターベース(例えば、SVG)の形式に従って格納されるピクセルグリッドから構成されたビットマップとして格納することができるのみならず、グラフィックスを描画するコンピュータ命令として格納することができる。データ214は、数字、説明文、専用コード、同じメモリまたは異なるメモリの他の領域(他のネットワークロケーションを含む)に格納されているデータへの参照、または関連データを計算する関数により使用される情報への参照のような関連情報を特定するために十分な任意の情報を含むことができる。
【0019】
命令216は、1つ以上のプロセッサ210により直接実行される(マシンコードのような)または間接的に実行される(スクリプトのような)任意の命令セットとすることができる。例えば、命令216は、コンピュータ可読媒体上のコンピュータコードとして格納することができる。この点に関して、「instructions(命令)」および「programs(プログラム)」という用語は、本明細書では同じ意味に使用することができる。命令216は、1つ以上のプロセッサ210により直接処理されるオブジェクトコード形式で格納することができる、または要求に応じて解釈されるか、または前もってコンパイルされる独立ソースコードモジュールのスクリプトまたは集合を含む任意の他のコンピュータ言語で格納することができる。命令216の関数、方法、およびルーチンは、以下により詳細に説明される。
【0020】
1つ以上のトランシーバ220は、所望の方向に向けるように制御または操作することができるアクチュエータに取り付けることができる。HAP110aに関連するノード、およびHAP110dに関連するノードのような2つのノードの間のリンクを形成するために、それぞれのノードのトランシーバを制御して互いの方向に向けるようにして、データをノードの間で送受信することができるようにする。幾つかの実現形態では、各トランシーバにより送信される信号の電力は、それぞれのノードの1つ以上のプロセッサにより制御して、ネットワーク100内のリンク130~137の形成を容易にすることもできる(例えば、
図1参照)。例えば、比較的大きな距離だけ離れたノードは、より高い電力で動作して、2つのノードを分離する距離を経て発生する信号対雑音比の低下を補償するように構成することができる。互いにより近くなるような間隔のノードを制御して、比較的低い電力で動作して電力を節約することができる。
【0021】
幾つかの実現形態では、ネットワーク100は、
図3に図示されるネットワークコントローラ300のようなSDNコントローラにより制御されるSDNとすることができる。ネットワークコントローラ300は、ネットワークノードのうち1つのネットワークノードに配置するか、または例えば、データセンター105のうちの1つのデータセンター内にあるような別のプラットフォームに配置することができる。ネットワーク100のノードは、1つ以上のトランシーバ220のような操作可能なトランシーバを使用して互いに通信するように構成することができる。HAP110が互いに対して、およびデータセンター105および地上局107に対して経時的に移動すると、
図1のブロック図に示されるリンクの幾つかのリンクは、実現不可能になる可能性がある。例えば、地上局107aとHAP110aとの間のリンク130は、HAP110aの経路によりHAP110aが、HAP110aが地上局107aの範囲外にある位置に至るようになる、または地球がHAP110aと地上局107aとの間に位置付けられる位置に至るようになる場合に実現できない可能性がある。したがって、HAP110の継続的な移動により、ネットワーク100のトポロジーは、接続性を維持し、決定されたネットワークフローを満たすために、定期的(すなわち、周期的)または不定期的な再構成を必要とする可能性がある。
【0022】
図3は、ネットワークコントローラ300のブロック
図300である。ネットワークコントローラ300は、制御メッセージをネットワーク100に送信してネットワーク100のトポロジーを構成し、ルーティング情報をネットワーク100のノード107、110に渡し、ネットワーク100のトポロジーの変更をスケジューリングしてクライアントデータを送信するように構成することができる。
図3に示すように、ネットワークコントローラ300は、1つ以上のプロセッサ310、メモリ320、および通信システム340を含むことができる。1つ以上のプロセッサ310は、上に説明した1つ以上のプロセッサ210と同様とすることができる。
【0023】
メモリ320は、1つ以上のプロセッサ310によりアクセス可能な情報を格納することができ、プロセッサ310により実行することができるデータ322および命令324を含む。メモリ320、データ322、および命令324は、上に説明したメモリ212、データ214、および命令216と同様に構成することができる。データ322は、
図4A、
図4B、および
図4Cのテーブル400Aおよび400Bのような、所定の時刻または時刻フレームにおけるネットワーク100内の利用可能なノードおよび可能なリンクの全てを表わすテーブルを含むことができる。テーブルは、ネットワーク100内のあらゆるノードおよびリンクに関する列と、時刻または時刻フレームに関する行と、を有することができる。幾つかの場合では、列および行が逆になる可能性がある。テーブルは、各ノードおよび各リンクに関して、ノードまたはリンクが利用可能なスケジューリングされた時刻または時刻フレームを格納することもできる。代替的に、グラフまたは他の形式の情報体系を使用することができる。命令324は、トポロジーおよびルーティングマネージャモジュール326、トポロジー決定モジュール328、フロー決定モジュール330、ソルバーモジュール332、飛行制御モジュール334、およびスケジューリングモジュール336を含むことができる。
【0024】
図3に戻ると、通信システム340は、ネットワーク100のノード107、110と通信するだけでなく、1つ以上のクライアントデバイス350と通信するように構成することができる。幾つかの実施形態では、通信システム340は、ノード107、110の各ノードのCDPIエージェントと通信するように構成されたデータプレーン間インターフェース(CDPI)ドライバに対するコントロールを含む。加えて、ネットワークコントローラ300の通信システム340は、1つ以上のSDNアプリケーションに関連する各クライアントデバイス350のNBIドライバと通信するように構成された1つ以上のノースバウンドインターフェース(NBI)エージェントを含むことができる。通信システム340は、任意にまたは代替的に、信号を無線周波数、光周波数、光ファイバ、ケーブル、または他の通信手段を介して、ネットワーク100内のノード107、110および1つ以上のクライアントデバイス350に対して送信および受信するように構成することができる。
【0025】
各クライアントデバイス350は、1つ以上のプロセッサ210および310、メモリ212および320、データ214および322、命令216および324に関して上に説明したものと同様の1つ以上のプロセッサ360、メモリ370、データ372、および命令374を有するパーソナルコンピューティングデバイスまたはサーバとすることができる。パーソナルコンピューティングデバイスは、中央処理装置(CPU)、データおよび命令を格納するメモリ(例えば、RAMおよび内蔵ハードドライブ)、電子ディスプレイ(例えば、スクリーン、小型LCDタッチスクリーン、プロジェクタ、テレビ、または情報を表示するように動作可能な任意の他の電気デバイスを有するモニタ)、ユーザ入力(例えば、マウス、キーボード、タッチスクリーン、またはマイクロホン)、カメラ、スピーカ、ネットワークインターフェースデバイス、およびこれらの要素を互いに接続するために使用される構成要素の全てのような、パーソナルコンピュータに接続して通常使用される構成要素の全てを有するパーソナルコンピュータを含むことができる。パーソナルコンピューティングデバイスは、PDA、携帯電話などのようなモバイルデバイスを含むこともできる。実際、クライアントデバイス350は、命令を処理することができ、データを人間に対して、および汎用コンピュータ、ローカルストレージ機能を持たないネットワークコンピュータ、およびテレビ用のセットトップボックスを含む他のコンピュータに対して送信することができる任意のデバイスを含むことができる。幾つかの実施形態では、クライアントデバイスは、1つ以上のSDNアプリケーションに関連付けることができ、1つ以上のNBIドライバを有することができる。
【0026】
図3の命令324のモジュールを参照すると、トポロジーおよびルーティングマネージャモジュール326は、1つ以上のプロセッサ310に、ネットワークコントローラ300とネットワーク100との間をインターフェース接続させることができる。トポロジーおよびルーティングマネージャモジュール326を使用して、1つ以上のプロセッサ310は、情報をネットワーク100内のノードの各ノードから受信することができる。例えば、幾つかの実現形態では、トポロジーおよびルーティングマネージャモジュール326は、1つ以上のプロセッサ310に、各ノードの現在のロケーション、各ノードについて予測される経路、各ノードに関連する現在のリンク、および各ノードにより格納されるルーティング情報に対応する情報をネットワーク100内の各ノード107、110から受信させることができる。各ノードから受信される情報は、気象状況、乱気流、放射線、またはノードの間のFSOCに影響を与える可能性のある他の状況に関する他のレポートを含むこともできる。また、各ノードは、1つ以上のプロセッサ310に、ノードの間の予期せぬ障害物、ノードにおける乱気流、または1つ以上のトランシーバの障害により発生する可能性のある、いかなるリンク障害にも対応する情報を送信することができる。
【0027】
トポロジーおよびルーティングマネージャモジュール326はまた、1つ以上のプロセッサ310に、予測されるリンクメトリックおよび状況を受信させることができる。例えば、予測されるリンクメトリックは、ノード107、110から受信される情報に基づいて現在または将来形成される可能性のある仮想リンクに関するネットワーク性能メトリックの予測値を含むことができる。ネットワーク性能メトリックは、帯域幅容量、遅延時間、またはリンク寿命期間を含むことができ、ネットワーク100内のノード107、110の予測される相対運動または軌道に基づかせることができる。リンク寿命期間は、リンクがネットワーク100内で実現可能になっている期間を表わすことができる。ノード位置、予測されるノードロケーション、または予測されるリンクにおける天気予報は、1つ以上のプロセッサ310により、ノード107、110から、または任意に、リモートシステムから受信することもできる。
【0028】
トポロジーおよびルーティングマネージャモジュール326を使用して、1つ以上のプロセッサ310は、ネットワーク100から受信される情報をメモリ320に格納することができる。例えば、
図4A、
図4B、および
図4Cに図示されるテーブル400Aおよび400Bは、ネットワーク100内の利用可能なノードおよび可能なリンクの全てを表わし、テーブル内の特定のノードまたはリンクに関連する情報で更新することができる、または注釈を付けることができる。テーブル400Aまたは400Bの注釈は、ネットワーク100内の各ノードの利用可能性、各ノードの現在のロケーションおよび将来のロケーション、現在および将来予測される気象状況を示すだけでなく、ネットワーク内のノードの各ノードにおける利用可能なストレージの現在量、およびノードの各ノードにおける利用可能なストレージの将来(推定)量を示すことができる。加えて、テーブルの注釈は、特定のリンクの現在および将来の利用可能性を示すだけでなく、このようなリンクに関する現在および将来予測される帯域幅を示すことができる。リンク障害および予測される状況を注記することもでき、テーブル400Aまたは400Bに格納することもできる。
【0029】
トポロジー決定モジュール328は、1つ以上のプロセッサ310に、ネットワーク100の現在または将来のトポロジーを決定させることができる。ネットワーク100の現在のトポロジーの決定は、1つ以上のプロセッサにより、トポロジーおよびルーティングマネージャモジュール326を使用して受信および格納される情報に基づいて行うことができる。例えば、トポロジー決定モジュール328は、1つ以上のプロセッサ310に、各ノード107、110の現在のロケーション、各ノードペア間に形成されるリンク130~137、およびネットワーク100内に起こり得る全てのリンク障害に関する情報を収集させることができる。1つ以上のプロセッサ310は、この情報を、トポロジーおよびルーティングマネージャモジュール326を使用して受信することができる、またはこの情報をメモリ320から取り出すことができる。
【0030】
追加情報は、トポロジー決定モジュール328を使用する1つ以上のプロセッサ310が使用して、ネットワーク100の現在のトポロジーを決定することもできる。1つ以上のプロセッサ310がトポロジーおよびルーティングマネージャモジュール326を使用して受信する予測リンクメトリックを使用して、帯域幅、サービス品質、および現在のトポロジーで利用可能なリンクの他の特性を決定することもできる。幾つかの実現形態では、トポロジー決定モジュール328を使用して、1つ以上のプロセッサ310は、特定の時刻における、または現在時刻または現在時刻近傍の特定の時刻フレームにおけるHAP110のような空中ネットワークノードの飛行経路に対応する情報を、飛行制御モジュール334を使用して受信することもでき、現在のトポロジーの決定は、受信した飛行情報にも基づいて行うことができる。
【0031】
ネットワーク100の将来のトポロジーを決定するために、1つ以上のプロセッサ310は、将来時刻に関するロケーション情報、予測リンク状況、飛行情報、および/または天気予報を、トポロジー決定モジュール328を使用して収集することができる。1つ以上のプロセッサ310は、テーブル400Aまたは400Bまたはメモリ320内の他の場所に格納されている、将来時刻における利用可能なノードおよびリンク、ロケーション情報、予測リンク状況、飛行情報、ならびに/または天気予報に関する情報にアクセスすることができる。将来時刻に関する情報は、1つ以上のプロセッサ310により使用されて、ノードが何処にあると予測されるかを、ならびにノードおよびリンクの利用可能性が将来時刻でどの程度であるかを判断することができる。
【0032】
トポロジー決定モジュール328は、1つ以上のプロセッサ310に、現在または将来のトポロジーまたは他のトポロジー情報をメモリ320に、例えばネットワーク100内の利用可能なノードおよび可能なリンク、ならびに各ノードまたはリンクに関連するスケジューリングされた時刻または時刻フレームの全てを表わすテーブル400Aまたは400Bを更新することにより格納させることができる。
【0033】
フロー決定モジュール330は、1つ以上のプロセッサ310に、ネットワーク100内で所定の時刻または時刻フレームにおいて決定されるフローの全てを決定させることができる。所定のフローは、ネットワーク100を通るルーティング経路に関する1つ以上の要件とすることができる。例えば、各フローは、開始局、終了ステーション、時刻フレーム、最小帯域幅、または伝送に関する他の要件を含むことができる。1つ以上のプロセッサ310はフローを、トポロジー決定モジュール328を使用して決定されるトポロジー情報および/または1つ以上のクライアントデバイス350のクライアントデータの特性に関する情報に基づいて決定することができる。クライアントデータ情報は、以下に説明されるスケジューリングモジュール336を使用する1つ以上のプロセッサ310により、1つ以上のクライアントデバイス350またはリモートシステムから受信することができる。クライアントデータ情報は、クライアントデータの送信元および宛先、送信されるクライアントデータの量、および/またはクライアントデータの送信タイミングを含むことができる。
【0034】
フローの最小帯域幅は、利用可能なシステムリソースおよびリンク機能が与えられる場合に、1つ以上のプロセッサ310により事前に設定するか、または事前に決定することができる、または代替的にクライアントデータに含まれる要件に基づいて決定することができる。より大きな帯域幅は、より大量のデータを転送するフローに対応して設定することができる。1つ以上のプロセッサ310は、フローを開始局と宛先局との間に、所定量のクライアントデータを要求される時刻に送信することができるネットワークを介して決定することができる。幾つかの実施形態では、1つ以上のプロセッサ310は、決定した各フローに関するサービスクラスまたはサービス品質のような、決定したフローに関連する他の情報を決定することもできる。他の情報は、クライアントデバイスから受信される要件に基づかせることができる。
【0035】
幾つかの実現形態では、フロー決定モジュール330は、1つ以上のプロセッサ310に、クライアントデータを1つ以上のクライアントデバイス350から収集させて、ネットワーク100内の各ノードペア間に必要な合計帯域量を決定させることができる。収集したクライアントデータは、例えばメモリ320に格納することができる。さらに、クライアントデータは、詳細レベルで収集することができる。例えば、各ノードペアに関するネットワークデータは、サービスクラス、サービス品質、または任意の他の関連するネットワークトラフィック識別子ごとに収集することができる。フローは、関連する任意のネットワークトラフィック識別子にさらに基づいて決定することができる。
【0036】
他の場合では、過去のクライアントデータトレンドを使用して、将来時点でのクライアントデータ量、送信元、および宛先を予測することができる。フロー決定モジュール330は、1つ以上のプロセッサ310に、クライアントデバイスに直接接続可能な全てのノードの間の複数の利用可能なフローを将来時点で決定させることができる。地上局107のような直接接続可能なノードは、ネットワーク100を使用することなく、クライアントデバイスと通信することができる。各ノードペア間で予測されるクライアントデータ量を使用して、各ノードペア間の帯域幅要件を決定することができる。
【0037】
代替的に、クライアントデータ情報がない場合、1つ以上のプロセッサ310は、クライアントデバイスに現在時刻または将来時刻で直接接続可能な全てのノードの間の複数の利用可能なフローを決定することができる。複数の利用可能なフローの決定は、現在または将来のトポロジーに基づかせることができる。加えて、決定は、最小限のシステム要件に基づかせることができる。
【0038】
フロー決定モジュール330は、1つ以上のプロセッサ310に、決定したフローをメモリ320に格納させることができる。幾つかの例では、1つ以上のプロセッサ310は、テーブルにフローで注釈を付けることができる。
【0039】
ソルバーモジュール332は、1つ以上のプロセッサ310に、ネットワーク構成を、メモリに格納されているテーブルに基づいて生成させることができる。ネットワーク構成は、決定した全てのネットワークフローを満たすことができる実現可能なネットワークトポロジーを表わすことができ、実現可能なネットワークトポロジーに使用されることになるノードおよびリンクのリスト、ならびにノードおよびリンクが使用されることになる場合のスケジュールを含むことができる。ネットワーク構成のスケジュールは、決定した全てのネットワークフローを満たすことができる実現可能な一連のネットワークトポロジーを表わすことができる。実現可能な一連のネットワークトポロジーは、ノードおよびリンクのリストを含むことができ、ノードおよびリンクが、ネットワーク構成のスケジュール内の各ネットワーク構成に使用されることになる場合のスケジュールを含むことができる。幾つかの例では、実現可能な一連のネットワークトポロジーは、トポロジーになっている間にデータを利用可能なストレージを有するノードに格納することができるネットワークトポロジーと、ノードが別のノードとの新規接続またはリンクを形成し、データを新規に確立されたリンクを介して送信する隣のネットワークトポロジーと、を含む。
【0040】
ネットワーク構成(複数可)は、1つ以上のプロセッサ310により、テーブル内の所定の時点に関するトポロジー、およびトポロジーのネットワーク性能メトリックに基づいて所定の時点で生成することができる。例えば、リンク帯域幅、リンク遅延時間、フロー帯域幅、フロー優先度、リンクスイッチング時間(すなわち、新規トポロジーをネットワーク100内で実現するために必要な時間)、リンク期間および/またはトポロジー期間のような様々なネットワーク性能メトリックは、トポロジーの重み付き制約として特定の時点でモデル化することができる。幾つかの実施形態では、1つ以上のネットワーク性能メトリックは、メモリに格納されているテーブルに含めなくてもよいが、別のモジュール、別のノード、またはリモートシステムから受信してもよい。
【0041】
1つ以上のプロセッサ310は、ネットワーク構成により表わされるトポロジー上の決定したフローのルーティング経路について計算することもできる。所定のルーティング経路は、決定したフロー要件を満たす所定のフローを実現する一方向とすることができ、ネットワーク内の特定のノードおよびリンク、または一連のノードの間のホップのリストを含むことができる。幾つかの例では、所定のルーティング経路は、ネットワークを介して送信されるデータの量に関して決定したフロー要件を満たす利用可能なストレージを有するノードを含むことができる。所定のルーティング経路を辿るデータは、次のホップに移動する前に、ノードに所定の期間にわたって格納することができる。
【0042】
加えて、ネットワークの以前の状態および以前のネットワークトポロジーに対応する情報を使用して、ネットワーク構成、またはネットワーク構成のスケジュールを決定することもできる。例えば、1つ以上のプロセッサ310は、ネットワーク構成を、ネットワークがネットワーク構成を実現するために必要な以前のネットワークトポロジーからの変更の数、およびネットワークが複数の変更を行うために必要な時間量に少なくとも部分的に基づいて生成することができる。代替的に、1つ以上のプロセッサ310は、ネットワーク構成のスケジュールを、ネットワーク構成のスケジュールにおけるネットワーク構成のネットワークトポロジーの間の変更の数、およびテーブル400Aまたは400Bのようなルーティングテーブルの情報を利用する変更の間の時間量に少なくとも部分的に基づいて生成することができる。例えば、変更は、トランシーバを操作して新規方向に向けるようにすること、またはノードのメモリに格納されているルーティングテーブルを変更することを含むことができる。トランシーバの操作には、ノードのメモリに格納されているルーティングテーブルを変更する以上の時間がかかる可能性がある。生成したネットワーク構成(複数可)は、変更の数が閾値数を下回る必要がある、および/または時間量が、閾値時間量を下回る必要がある。
【0043】
ネットワーク構成のスケジュール内の後続のネットワーク構成の幾つかのペアの場合、より早い時期のネットワーク構成と、より遅い時期のネットワーク構成との違いは、単一ノードにおけるルーティング変更のようなトランシーバの方向の変更を伴わない場合がある単一の変更とすることができる。
【0044】
1つ以上のプロセッサ310がネットワーク構成およびルーティング経路を、ソルバーモジュール332を使用して生成した後、1つ以上のプロセッサ310は、ネットワーク100のノードをトポロジーおよびルーティングマネージャモジュール326に従って制御して、生成したネットワーク構成(複数可)により表わされるトポロジーを、実行命令をノードに送信してノードに、生成したネットワーク構成(複数可)に含まれるリンクを形成させることにより(例えば、これらのノードのそれぞれのトランシーバを操作することにより、これらのノードのそれぞれの送信電力レベルを調整することにより、これらのノードの送信周波数帯および受信周波数帯を設定することなどにより)実現することができ、各ノードのメモリに格納されているルーティングテーブルを、決定したフローについて計算したルーティング経路に従って更新することができる。幾つかの転送テーブルは、変更のスケジュールで、ネットワーク構成のスケジュールに基づいて更新することができ、次のホップの前にデータをノードに格納するように指示することもできる。幾つかの実施形態では、上にある程度説明したように、一連のネットワーク構成は、ソルバーモジュール332を使用して生成することができる。一連のネットワーク構成のスケジュールは、1つ以上のプロセッサにより、ソルバーモジュール332を使用して決定することもでき、当該スケジュールは、ネットワーク100のノードに、トポロジーおよびルーティングマネージャモジュール326を使用することにより送信することができる。一連のネットワーク構成の後続のネットワーク構成の幾つかのペアの場合、より早い時期のネットワーク構成と、より遅い時期のネットワーク構成の違いは、単一ノードにおけるルーティング変更のような、トランシーバの方向の変更を伴わない場合がある単一の変更とすることができる。各ノードのルーティングテーブルは、変更のスケジュールで、一連のネットワーク構成のスケジュールに基づいて更新することもできる。
【0045】
飛行制御モジュール334は、1つ以上のプロセッサ310に、HAP110のような空中ノードに対する飛行命令を空中ノードの飛行経路に関して生成させることができる。例えば、1つ以上のプロセッサ310は、ネットワーク構成を、決定したネットワークフローの全てを満たすことができるネットワークトポロジーを表すソルバーモジュール332を使用して決定することができない可能性がある。1つ以上のプロセッサは、ソルバーモジュール332を使用するこの障害の理由が、ネットワーク100内の空中ネットワークノードのうち1つ以上の空中ネットワークノードが、遥かに遠い距離を他のネットワークノードから移動してリンクを形成することができないからであると判断することができる。それに応答して、飛行制御モジュール334を使用して、1つ以上のプロセッサ310は、ネットワーク100の空中ノードに対する飛行命令を生成および送信して、空中ノードに、これらの空中ノードの飛行経路を変更させて、追加リンクを形成することができるようにする。例えば、飛行命令は空中ノードを、互いに接近させることができる、または空中ノードに、障害物を回避させることができる。ノードが、1つ以上のプロセッサにより飛行制御モジュール334を使用して生成される飛行命令に従って再配置された後、更新後のテーブルは、トポロジーおよびルーティングマネージャモジュール326、またはトポロジー決定モジュール328を使用して、ネットワークノードの新規ロケーションに基づいて作成することができる。次に、更新後のテーブルは、1つ以上のプロセッサ310により、ソルバーモジュール332を使用して処理されてネットワーク構成を決定することができる。
【0046】
スケジューリングモジュール336は、ネットワークコントローラ300の1つ以上のプロセッサ310に、1つ以上のクライアントデバイス350とインターフェース接続させることができる。スケジューリングモジュール336を使用して、1つ以上のプロセッサ310は、クライアントデバイス350からネットワーク100を介して送信される、例えばクライアントデータの送信元および宛先のようなクライアントデータ情報を受信することができる。クライアントデバイス350から受信される他の情報は、送信されるクライアントデータの量および送信タイミングのような、クライアント要求に関連するデータを含むことができる。情報は、メモリ320に格納することができる、および/またはフロー決定モジュール330に従って使用して、ネットワーク100を介して決定されるフローを決定することができる。
【0047】
決定したフローがフロー決定モジュール330を使用して決定され、ネットワーク構成またはネットワーク構成のスケジュールが上に説明したソルバーモジュール332を使用して生成された後、1つ以上のプロセッサは、クライアントデータを、ネットワーク100を介して送信するルーティング命令を、テーブルおよび生成したネットワーク構成またはスケジュールに基づいて生成することができる。これらのルーティング命令は、クライアントデータの送信元ロケーション、クライアントデータの宛先ロケーション、およびクライアントデータの送信タイミングを含むことができる。幾つかの実施形態では、ルーティング命令は、前のノードからのデータを一時的に格納して次のノードに送信するというノードに対するストレージ命令を含むことができる。ルーティング命令は、クライアントデータを送信するクライアントデバイス350と直接接続可能なネットワークのノードに格納することができるスケジュールを含むことができる。次に、1つ以上のプロセッサ310は、ルーティング命令をクライアントデバイス350と直接接続可能なノードに送信して、ノードに、クライアントデータの送信を、決定したフローを経てスケジュールに従って受信させて開始させることができる。
【0048】
フローがクライアントデータ情報なしで決定される幾つかの実施形態では、スケジューリングモジュール336は、1つ以上のプロセッサ310に、ネットワークを介したフローの利用可能性を、フロー決定モジュール330を使用して決定される決定フロー、およびソルバーモジュール330を使用して生成されるネットワーク構成(複数可)に基づいて示すことに関するメッセージを1つ以上のクライアントデバイス350の1つのクライアントデバイスに送信させることができる。メッセージは、フローが利用可能になっている時刻もしくは時刻フレーム、および/または各フローに関連するデータの送信の価格を含むこともできる。スケジュールモジュール336を使用して、1つ以上のプロセッサ310は、クライアントデータを送信する決定したフローのうち1つの決定したフローを使用する要求を含む応答を1つ以上のクライアントデバイス350のうち1つのクライアントデバイスから受信することができる。次に、1つ以上のプロセッサ310は、ルーティング命令を1つ以上のノードに送信して、決定したフローを経たクライアントデータの送信を開始させることができる。
【0049】
例示的な方法
図5では、ネットワークコントローラ300の1つ以上のプロセッサ310により実行することができる、上に説明した態様のうち幾つかの態様によるフロー
図500が示されている。
図5は、ブロックを特定の順序で示しているが、順序は変えてもよく、複数の操作を同時に実行してもよい。また、操作を追加または省略してもよい。
【0050】
ブロック502では、ネットワークコントローラ300の1つ以上のプロセッサ310は、情報をネットワーク100内のノードの各ノードからトポロジーおよびルーティングマネージャモジュール326を使用して受信することができる。情報は、現在時刻もしくは将来時刻におけるノード、気象、またはリンクの現在の状況もしくは予測される状況に関連する可能性がある。例示的なシナリオでは、ロケーションAは、現在時刻におけるHAP110aの現在のロケーションとして受信することができ、現在時刻におけるHAP110cの現在のロケーションとして受信することができる。HAP110aおよび110cからの気象状況レポートは、現在の気象状況が、ロケーションAおよびCにおいて晴天であることを示すことができる。HAP110aは、HAP110cがリンク133に対する要求に応答していないという通知を1つ以上のプロセッサ310に送信することもできる。加えて、HAP110aは、ロケーションAからロケーションBに、現在時刻から1時間のうちに移動すると予測され得る。現在時刻から1時間のうちのロケーションBの天気予報は、雷雨を含むことができる。
【0051】
ブロック504では、
図4Aに示すテーブル400Aのような、ネットワーク100内の利用可能なノードおよび可能なリンクを表わすテーブルは、ネットワークのノードから受信される情報に基づいて、トポロジーおよびルーティングマネージャモジュール326を使用して生成または更新することができる。上記のように、テーブルはメモリ320に格納することができる。例示的なシナリオでは、HAP110aの場合、テーブルを生成または更新して、HAP110aが、気象が現在晴天であるロケーションAで利用可能であり、HAP110aが、気象が当該時点で雷雨を含むことになるロケーションBに1時間のうちに位置すると予測されることを示すことができる。HAP110cの場合、テーブルを生成または更新して、HAP110cが現在ロケーションCに位置していることを示すことができる。リンク133がHAP110aと110cとの間にある場合、テーブルを生成または更新して、リンク133に障害が発生していることを示すことができる。
【0052】
ブロック506では、1つ以上のプロセッサ310は、ネットワークの現在および/または将来のトポロジーをテーブルに基づいて、トポロジー決定モジュール328を使用して決定することができる。例示的なシナリオの場合、現在のトポロジーを決定するために、1つ以上のプロセッサ310は、メモリ320内のテーブルにアクセスし、各ノードおよびリンクに関連するテーブルおよびスケジューリングされた時刻から、どのノードおよびリンクが現在時刻で利用可能であるかを判断することができる。HAP110aおよび110cに関する受信した情報に従って、
図6に示すように、現在のトポロジー600を決定することができる。現在のトポロジーは、ノード107、110を含むように決定することができる。具体的には、HAP110aは、ロケーションAの現在のトポロジーに含めることができ、HAP110cは、ロケーションCの現在のトポロジーに含めることができる。なぜならこれらのHAPが、現在時刻に関するテーブル内のそれぞれのHAPに関連するロケーションにあるためである。現在のトポロジー600の矢印で示されているように、リンク130~132および134~137は現在のトポロジーに含まれ、現在時刻に関する障害として示されるHAP110aと110cの間のリンク133は、含まれない(矢印のない一点鎖線として
図6に示される)。別の例では、HAP110cがロケーションCにある当該HAP110cのロケーションを1つ以上のプロセッサ310に報告しなかったが、飛行経路または軌道を、飛行制御モジュール334を使用して以前に報告していた場合、1つ以上のプロセッサ310は、HAP110cがロケーションCにあることを、飛行経路または軌道に基づいて判断することができ、HAP100cを現在のトポロジーに含めることができる。現在のトポロー内の各可能なリンク130~132および134~137に、受信した情報に基づいて決定される帯域幅のようなリンクメトリックでラベル付けすることもできる。現在のトポロジー600の図では、実線は、リンク130、131、134、137が、3Mbps以上のような高帯域幅に対応できることを示し、破線は、リンク132、135、136が3Mbps未満のような低帯域幅に対応できることを示している。
【0053】
さらに、例示的なシナリオでは、現在時刻後1時間の将来時刻の場合、
図7に示すように、将来のトポロジー700を決定することができる。1つ以上のプロセッサ310は、将来時刻のHAP110aのロケーションがロケーションBになることを、テーブル内の将来時刻に関するロケーション情報に基づいて判断することができる。加えて、上に説明したように、テーブルは、天気予報が雷雨をロケーションBに含むという通知を含んでいるので、将来のトポロジーは、HAP110aをロケーションBに含めるように決定することができるが、当該HAP110aは、少なくともFSOCには利用できないことを示すことができる。
図7に示すように、HAP110aの一点鎖線の輪郭は、HAP110aが将来時刻の将来のトポロジーにおいて利用できないことを示し、また一点鎖線のリンク130~133を示して、HAP100aとのこれらのリンクもまた、利用できないことを示している。
【0054】
図5に戻と、ブロック508では、ネットワーク100を介して送信されるクライアントデータに関連する情報は、1つ以上のプロセッサ310により、スケジューリングモジュール336を使用して受信することができる。クライアントデータ情報は、ネットワークコントローラ300と通信するクライアントデバイスから受信することができる。クライアントデータ情報は、クライアントデータのデータ量、送信元ロケーション、および宛先ロケーション、および要求される送信時刻を含むことができる。例えば、例示的なシナリオでは、受信した情報は、クライアントデータの量が10Gbであり、クライアントデータの送信元ロケーションが地上局107aであり、宛先ロケーションが地上局107bであり、要求される送信時刻が現在時刻であることを示すことができる。幾つかの場合では、情報はまた、帯域幅、サービスクラス、サービス品質などのような送信要件を含む。幾つかの実施形態では、クライアントデータに関連する情報は、ネットワークコントローラ300の1つ以上のプロセッサ310により、またはリモートシステムにより予測され得る。
【0055】
ブロック510では、1つ以上のプロセッサ310は、現在時刻または将来時刻の1つ以上のフローを、現在または将来のトポロジーおよびクライアントデータ情報を使用して、フロー決定モジュール330を使用して決定することができる。現在時刻の送信を要求するクライアントデータの場合、1つ以上のフローは、現在時刻に対応して決定することができる。現在のトポロジーは、メモリ320に格納されているテーブルから取り出すことができる。例示的なシナリオにおける1つ以上のプロセッサ310は、送信元ロケーションが地上局107aと接続可能であり、宛先ロケーションが地上局107bに接続可能であり、両方の地上局107aおよび107bが現在のトポロジーに従って利用可能であるので、クライアントデータのフローが地上局107aと地上局107bとの間にあり得ると判断することができる。加えて、帯域幅は、10Gbのクライアントデータに関する最小限の3Gbpsであると判断することができる。これとは異なり、5Gbの他のクライアントデータの場合、最小帯域幅要件は1Gbpsとすることができる。代替的に、最小帯域幅要件はクライアントデバイスにより設定することができる。10Gbのクライアントデータのフローの時刻フレームは、5秒であると決定して、クライアントデータが確実に、3Gbpsの最小レートの送信時間を有することができるようにする。
【0056】
幾つかの実現形態では、1つ以上のプロセッサ310は、クライアントデータを1つ以上のクライアントデバイスから収集してネットワークを介して送信することができる。例えば、前述の10Gbのクライアントデータは、別の10Gbのクライアントデータと一緒に同じ、または異なるクライアントデバイスから収集して、これもまた、地上局107aから地上局107bに送信することができる。20Gbのクライアントデータの合計量に基づいて、1つ以上のプロセッサ310は、地上局107aと107bとの間のフローが4Gbpsの最小帯域幅を必要としている可能性があると判断することができる。
【0057】
ブロック512では、1つ以上のプロセッサ310は、現在時刻または将来時刻のネットワーク構成を、決定したフローおよび現在または将来のトポロジーに基づいて、ソルバーモジュール332を使用して生成することができる。ネットワーク構成は、1つ以上のルーティング経路および時刻フレームを含んで実現することができる。例えば、例示的なシナリオの場合、現在のネットワーク構成は、現在時刻に対応して、地上局107aと107bの間のフロー、および現在のトポロジーに基づいて決定することができる。現在のネットワーク構成は、
図8に示すルーティング経路800を含むことができる。ルーティング経路800(ブロック矢印で示される)は、地上局107aからHAP110a、110d、110cを通って地上局107bに、リンク130、131、134、および137を使用して至ることができる。現在のトポロジーはリンク133を含まないので、ルーティング経路は、HAP110aと110cとの間のこのリンク133を含まない。加えて、ルーティング経路は、HAP110aと110bとの間のリンク132、またはHAP110dと110bとの間のリンク135を含まなくてもよい。なぜならこれらのリンクはフローの要件を満たさない。この場合、HAP110aと110bとの間のリンク132、およびHAP110dと110bとの間のリンク135は、現在のトポロジー内のリンク132および135のリンクメトリックに従って、少なくとも3Gbpsの帯域幅をサポートすることはできないものとして示されている。1つ以上のプロセッサ310は、現在のネットワーク構成を実現する時刻フレームが、少なくとも現在時刻から現在時刻後5秒が経過する時刻であることを、地上局107aと107bとの間のフローについて決定された時刻フレームに基づいてさらに決定することができる。
【0058】
図5にさらに示すように、ブロック514では、1つ以上のプロセッサ310は、実行命令をネットワーク100のノード107、110に送信して、生成したネットワーク構成の実現およびクライアントデータの送信を、トポロジーおよびルーティングマネージャモジュール326および/またはソルバーモジュール332を使用して行わせることができる。例示的なシナリオでは、現在のネットワーク構成の場合、ノード107、110に対する実行命令は、ルーティング経路800を実現する命令を含むことができる。したがって、実行命令は、地上局107aのトランシーバをHAP110aの方に向けてリンク130を形成する地上局107aに対する命令、HAP110aのトランシーバを地上局107aの方に向けてリンク130を形成し、HAP110dの方に向けてリンク131を形成するHAP110aに対する命令、HAP110dのトランシーバをHAP110aの方に向けてリンク131を形成し、HAP110cの方に向けてリンク134を形成するHAP110dに対する命令、HAP110cのトランシーバをHAP110dの方に向けてリンク134を形成し、地上局107bの方に向けてリンク137を形成するHAP110cに対する命令、および地上局107bのトランシーバをHAP110cの方に向けてリンク137を形成する地上局107bに対する命令を含むことができる。幾つかの場合では、リンクのうち1つ以上のリンクが既に形成されている可能性があり、この場合、トランシーバの方向に対する変更は必要ではない。加えて、開始局である地上局107aに対する実行命令は、ルーティング経路800を介して送信されるクライアントデータの受信および送信のためのルーティング命令を含むことができる。ルーティング命令は、クライアントデータの送信元ロケーション、クライアントデータの宛先ロケーション、送信タイミング、および/または送信レートを含むことができる。ルーティング命令が地上局107aで受信されると、地上局107aに、クライアントデータを現在時刻で現在のネットワーク構成を介してルーティング経路800に沿って送信させることができる。
【0059】
将来時点に対応して生成されるネットワーク構成の場合、実行命令は、スケジューリングされた変更をネットワーク100に格納することを含み、例えばトランシーバを操作して新規ルーティング経路を各ノードで実現することを含むことができ、実現は、クライアントデータを将来時刻で送信する前に行うことができる。したがって、実行命令は、ルーティングテーブルを各ノードにおいて、新規ルーティング経路および時刻または時刻フレームで更新して、新規ルーティング経路を将来のネットワーク構成に従って実現することを含むことができる。時刻または時刻フレームになると、ネットワーク100のノード107、110に、将来のネットワーク構成を実行命令に従って自動的に実現させることができる。
【0060】
代替的に、ネットワークコントローラ300の1つ以上のプロセッサ310は、クライアントデータ情報を1つ以上のクライアントデバイス350に対して、ネットワーク100内の複数の利用可能なフローに基づいてスケジューリングモジュール336を使用して要求することができる。そのようにするために、1つ以上のプロセッサ310は、フロー決定モジュール330を使用して、地上局107a、107bのようなクライアントデバイスと直接接続可能なノードの間の複数の利用可能なフローを、現在または将来のトポロジーに基づいて決定することができる。代替的に、複数の利用可能なフローは、クライアントデータ情報を受信することなく決定することができ、各フローに関する性能メトリックを含むことができる。クライアントデバイスと直接接続可能なノードの間の複数の可能なフローを決定した後、1つ以上のプロセッサ310は、スケジューリングモジュール336を使用してメッセージを、1つ以上のクライアントデバイス350の第1のクライアントデバイスに通信システム340を介して送信することができる。メッセージは、第1のクライアントデバイスに直接接続可能なノードと他のクライアントデバイスに直接接続可能な全ての他のノードとの間の複数の利用可能なフローに由来する利用可能なフローのリストを含むことができる。加えて、メッセージは、ネットワーク100を介して送信されるクライアントデータ情報に対する要求を含むことができる。上に説明したように、クライアントデータ情報を含む応答を第1のクライアントデバイスから受信することができ、次に、このクライアントデータ情報を、1つ以上のプロセッサ310が使用してネットワーク構成を、ソルバーモジュール332を使用して生成および実現することができる。
【0061】
別の代替実施形態では、ブロック508で受信されるクライアントデータ情報は、要求される送信時刻を含まなくてもよい、または要求される送信時刻は、要求される時刻におけるネットワークのトポロジーに基づいて実現可能ではなくてもよい。次に、ネットワークコントローラ300の1つ以上のプロセッサ310は、クライアントデータの送信に関してスケジューリングされた時刻を、スケジューリングモジュール336を使用して決定することができる。スケジューリングされた時刻は、所定の時刻または時刻フレームにおけるネットワーク100内の利用可能なノードおよび可能なリンクの全てを表わすテーブルに基づいて決定することができる。例えば、クライアントデータ情報は、5Gbのクライアントデータを、現在時刻後1時間の将来時刻に送信するという要求を含むことができる。クライアントデータ情報内の送信元ロケーションおよび宛先ロケーションに基づいて、開始局は地上局107aであると決定することができ、宛先局は地上局107bであると決定することができる。しかしながら、
図7に示す将来のトポロジー700に基づいて、HAP110aは将来時刻で利用できないので、リンク130もまた、将来時刻で利用できない。メモリ320に格納されているテーブルを使用して、1つ以上のプロセッサ310は次に、リンク130が利用可能になるか、または地上局107aとHAP110b~110dのような別のHAPとの間のリンクが利用可能になる最も早期の時点である第2の将来時刻を特定することができる。次に、5Gbのクライアントデータの送信は、第2の将来時刻になるとスケジューリングすることができる。第2の将来時刻に関する将来の第2のネットワーク構成は、ルーティング経路を地上局107aと107bとの間に含めるように生成することができる。代替的に、将来の第2のネットワーク構成は、将来の第2のネットワーク構成がルーティング経路なしで生成された場合に、ルーティング経路を地上局107aと107bとの間に含めるように更新することができる。
【0062】
図9では、ネットワークコントローラ300の1つ以上のプロセッサ310により実行することができるフロー
図900が、上に説明した態様のうち幾つかの態様に従って示されている。
図9は、ブロックを特定の順序で示しているが、順序は変えてもよく、複数の操作を同時に実行してもよい。また、操作は、追加または省略してもよい。
【0063】
ブロック902では、ネットワークコントローラ300の1つ以上のプロセッサ310は、情報をネットワーク100内のノードの各ノードから、トポロジーおよびルーティングマネージャモジュール326を使用して受信することができる。情報は、現在時刻もしくは将来時刻におけるノード、気象、またはリンクの現在の状況もしくは予測される状況に関連する可能性がある。例示的なシナリオでは、ロケーションAは、現在時刻におけるHAP110aの現在のロケーションとして受信することができ、ロケーションCは、現在時刻におけるHAP110cの現在のロケーションとして受信することができ、ロケーションDは、HAP110dの現在のロケーションとして受信することができる。HAP110aおよび110cからの気象状況レポートは、現在の気象状況が、ロケーションAおよびCで晴天であることを示すことができる。HAP110dは、10Gbの利用可能なストレージが、現在時刻でHAP110dにあるという通知を送信することもできる。HAP110aおよび110dはそれぞれ、HAP110cがリンク133に対する要求に応答していないという通知を1つ以上のプロセッサ310に送信することができる。加えて、HAP110aは、ロケーションAからロケーションBに、現在時刻から1時間のうちに移動すると予測することができ、HAP110dは、ロケーションDからロケーションEに、現在時刻から1時間のうちに移動すると予測することができる。現在時刻から1時間のうちのロケーションBの天気予報は、雷雨を含むことができる。
【0064】
ブロック904では、
図4Bおよび
図4Cに示すテーブル400Bのような、ネットワーク100内の利用可能なノードおよび可能なリンクを表わすテーブルは、ネットワークのノードから受信される情報に基づいて、トポロジーおよびルーティングマネージャモジュール326を使用して生成または更新することができる。上記のように、テーブルはメモリ320に格納することができる。例示的なシナリオでは、HAP110aの場合、テーブルを生成または更新して、HAP110aが、気象が現在晴天であるロケーションAで利用可能であり、HAP110aが、気象が当該時点で雷雨を含むことになるロケーションBに1時間のうちに位置すると予測されることを示すことができる。HAP110cの場合、テーブル400Bを生成または更新して、HAP110cが現在ロケーションCに位置していることを示すことができる。HAP110dの場合、テーブル400Bを生成または更新して、HAP110dが現在ロケーションDに位置していて10Gbの利用可能なストレージを有していることを示すことができ、HAP110dが1時間のうちにロケーションEに位置するようになると予測することができる。HAP110aと110cとの間のリンク133の場合、テーブルを生成または更新して、リンク133に障害があることを示すことができる。HAP110bと110cとの間のリンク134の場合、テーブルを生成または更新して、リンク134に障害があることを示すことができる。
【0065】
ブロック906では、1つ以上のプロセッサ310は、ネットワークの現在および/または将来のトポロジーを、テーブルに基づいてトポロジー決定モジュール328を使用して決定することができる。例示的なシナリオの場合、現在のトポロジーを決定するために、1つ以上のプロセッサ310は、メモリ320内のテーブルにアクセスすることができ、テーブル、および各ノードおよびリンクに関連するスケジューリングされた時刻から、どのノードおよびリンクが、現在時刻で利用可能になっているかを決定することができる。HAP110a~110dに関して受信した情報に従って、現在のトポロジー1000を
図10に示すように決定することができる。現在のトポロジーは、ノード107、110を含むように決定することができる。具体的には、HAP110aは、ロケーションAの現在のトポロジーに含めることができ、HAP110cは、ロケーションCの現在のトポロジーに含めることができ、HAP110dは、ロケーションDの現在のトポロジーに含めることができる。なぜならこれらのHAPは、現在時刻に関するテーブル内のそれぞれのHAPに関連するロケーションにあるためである。現在のトポロジー1000内の矢印で示されているように、リンク130~132および135~137は、現在のトポロジーに含まれ、現在時刻に対応して障害が発生しているとして示されるHAP110aと110cとの間のリンク133、およびHAP110dと110cとの間のリンク134は含まれない(
図10に矢印のない一点鎖線として示されている)。別の例では、HAP110cが、ロケーションCにある当該HAP110cのロケーションを1つ以上のプロセッサ310に報告しなかったが、以前に、飛行経路または軌道を、飛行制御モジュール334を使用して報告していた場合、1つ以上のプロセッサ310は、HAP110cが現在、ロケーションCにあることを、飛行経路または軌道に基づいて判断することができ、HAP100cを現在のトポロジーに含めることができる。現在のトポロジー内の各可能なリンク130~132および135~137には、受信した情報に基づいて決定される帯域幅のようなリンクメトリックでラベル付けすることができる。現在のトポロジー1000の図では、実線は、リンク130、131、134、137が3Mbps以上のような、より高い帯域幅に対応できることを示し、破線は、リンク132、135、136が3Mbps未満のような、より低い帯域幅に対応できることを示している。
【0066】
さらに、例示的なシナリオでは、
図11に示すように、現在時刻後1時間の将来時刻の場合、将来のトポロジー1100を決定することができる。1つ以上のプロセッサ310は、ロケーションBにあることになる将来時刻におけるHAP110aのロケーション、およびロケーションDにあることになる将来時刻におけるHAP110dのロケーションは、テーブル内の将来時刻に関するロケーション情報に基づいて決定することができる。加えて、上に説明したように、テーブルは、天気予報が雷雨をロケーションBに含んでいるという通知を含んでいるので、将来のトポロジーは、HAP110aをロケーションBに含むと決定することができるが、HAP110aは少なくともFSOCには利用できないことを示すことができる。
図11に示すように、HAP110aの一点鎖線の輪郭は、HAP110aが将来時刻の将来のトポロジーにおいては利用できないことを示し、また、リンク130~133を一点鎖線で示して、HAP100aとのこれらのリンクも利用できないことを示している。
図11にさらに示されるように、HAP110dと110cとの間のリンク134は、将来時刻で、HAP110dがロケーションDにあることに少なくとも部分的に基づいて確立することができる。
【0067】
図9に戻ると、ブロック908では、ネットワーク100を介して送信されるクライアントデータに関連する情報は、1つ以上のプロセッサ310により、スケジューリングモジュール336を使用して受信することができる。クライアントデータ情報は、ネットワークコントローラ300と通信するクライアントデバイスから受信することができる。クライアントデータ情報は、データ量、クライアントデータの送信元ロケーション、および宛先ロケーション、および要求される送信時刻を含むことができる。例えば、例示的なシナリオでは、受信した情報は、クライアントデータ量が10Gbであり、クライアントデータの送信元ロケーションが地上局107aであり、宛先ロケーションが地上局107bであり、要求される送信時刻が現在時刻であることを示すことができる。幾つかの場合では、情報はまた、帯域幅、サービスクラス、サービス品質などのような送信要件を含む。幾つかの実施形態では、クライアントデータに関連する情報は、ネットワークコントローラ300の1つ以上のプロセッサ310により、またはリモートシステムにより予測することができる。
【0068】
ブロック910では、1つ以上のプロセッサ310は、現在時刻または将来時刻に関する1つ以上のフローを、現在または将来のトポロジーおよびクライアントデータ情報を使用して、フロー決定モジュール330を使用して決定することができる。送信を現在時刻で要求するクライアントデータの場合、1つ以上のフローを現在時刻に対応して決定することができる。現在のトポロジーは、メモリ320に格納されているテーブルから取り出すことができる。例示的なシナリオにおける1つ以上のプロセッサ310は、送信元ロケーションが地上局107aと接続可能であり、宛先ロケーションが地上局107bに接続可能であり、地上局107aおよび107bの両方が現在のトポロジーに従って利用可能であるので、クライアントデータのフローが、地上局107aと地上局107bとの間にあると判断することができる。加えて、帯域幅は、10Gbのクライアントデータに関する最小限の3Gbpsであると決定することができる。これとは異なり、5Gbの他のクライアントデータの場合、最小帯域幅要件は1Gbpsとすることができる。代替的に、最小帯域幅要件は、クライアントデバイスにより設定されるようにしてもよい。10Gbのクライアントデータのフローの時刻フレームは、5秒であると決定されて、クライアントデータが確実に、3Gbpsの最小レートの送信時間を有することができるようにする。
【0069】
幾つかの実現形態では、1つ以上のプロセッサ310は、クライアントデータを1つ以上のクライアントデバイスから収集してネットワークを介して送信することができる。例えば、前述の10Gbのクライアントデータは、別の10Gbのクライアントデータと一緒に同じ、または異なるクライアントデバイスから収集されて、地上局107aから地上局107bに送信されるようにしてもよい。20Gbのクライアントデータの合計量に基づいて、1つ以上のプロセッサ310は、地上局107aと107bとの間のフローが4Gbpsの最小帯域幅を必要とする可能性があると判断することができる。
【0070】
ブロック912では、1つ以上のプロセッサ310は、現在時刻に関する現在のネットワーク構成、および将来時刻に関する将来のネットワーク構成を含むネットワーク構成のスケジュールを、決定したフローおよび現在および将来のトポロジーに基づいて、ソルバーモジュール332を使用して生成することができる。ネットワーク構成のスケジュールは、現在のネットワーク構成および将来のネットワーク構成にまたがるルーティング経路を含むように決定することができる。このタイプのルーティング経路は、ノードペア間の経路が単一のトポロジー内に存在しない場合に決定することができる。例えば、
図10に示すように、3Gbpsを超える速度を必要とするデータの地上局107aと107bとの間の直接ルーティング経路は、トポロジー1000が与えられる場合、現在時刻では不可能である。リンク133および134は利用できず、リンク132、135、および136は、3Gbpsを超える速度をサポートすることができない。また、
図11では、3Gbpsを超える速度を必要とするデータの地上局107aと107bとの間の直接ルーティング経路は、トポロジー1100が与えられる場合、現在時刻では不可能である。リンク130~133はFSOCには利用できない。
【0071】
この例示的なシナリオでは、1つ以上のプロセッサ310は、ネットワーク構成のスケジュールのルーティング経路を、データが現在のネットワーク構成を使用してノードに送信されて格納され、データが将来のネットワーク構成を使用してノードから送信される当該ノードを含むように決定することができる。例えば、現在のネットワーク構成および将来のネットワーク構成は、地上局107aと107bとの間のフロー、現在のトポロジー1000、将来のトポロジー1100、およびノード110dで利用可能なストレージに基づいて決定することができる。現在のネットワーク構成は、
図12Aに示すルーティング経路の第1の部分または第1の構成部分1200Aを含むことができ、将来のネットワーク構成は、
図12Bに示すルーティング経路の第2の構成部分1200Bを含むことができる。ルーティング経路の第1の構成部分1200A(ブロック矢印で示される)は、リンク130および131を使用する、地上局107aからHAP110aを通ってHAP110dに至る2つのルーティング部分を含むことができる。ルーティング経路の第1の構成部分1200Aは、利用可能な十分なストレージ10GbがあるHAP110dで終了して、クライアントデバイスから受信される所定量のクライアントデータ、10Gbのクライアントデータを格納する。将来時刻では、HAP110dはロケーションDに到達し、リンク134を再確立することができ、宛先地上局107bへのデータ転送を完了させることができる。ルーティング経路の第2の構成部分1200B(ブロック矢印で示される)は、リンク134および137を使用して、HAP110dからHAP110cを通って地上局107bに至ることができる。
【0072】
図9にさらに示されるように、ブロック914では、1つ以上のプロセッサ310は、実行命令をネットワーク100のノード107、110に送信して、生成したネットワーク構成を実現してクライアントデータを、トポロジーおよびルーティングマネージャモジュール326および/またはソルバーモジュール332を使用して送信することができる。例示的なシナリオでは、現在のネットワーク構成の場合、ノード107、110に対する実行命令は、第1の構成部分1200Aのルーティング経路部分を実現する命令を含むことができる。したがって、実行命令は、地上局107aのトランシーバをHAP110aの方に向けてリンク130を形成する地上局107aに対する命令、HAP110aのトランシーバを地上局107aの方に向けてリンク130を形成し、HAP110dの方に向けてリンク131を形成するHAP110aに対する命令、およびHAP110dのトランシーバをHAP110aの方に向けてリンク131を形成するHAP110dに対する命令を含むことができる。幾つかの実施形態では、実行命令は、ネットワークを将来のネットワーク構成に備えて整えることもできる。この場合、実行命令は、トランシーバをHAP110cが将来時刻で位置することになる場所の方に向けるHAP110dに対する命令、HAP110cのトランシーバをHAP110dが将来時刻で位置することになる場所、および地上局107bの方に向けてリンク137を形成するHAP110cに対する命令、および地上局107bのトランシーバをHAP110cの方に向けてリンク137を形成する地上局107bに対する命令を含むことができる。幾つかの場合では、リンクのうち1つ以上のリンクが既に形成されている可能性があり、この場合、トランシーバの方向に対する変更は必要がない。加えて、地上局107a、開始局に対する実行命令は、クライアントデータを受信および送信してルーティング経路1200A~1200Bを介して送信するルーティング命令を含むことができる。ルーティング命令は、クライアントデータの送信元ロケーション、クライアントデータの宛先ロケーション、送信タイミング、および/または送信レートを含むことができる。ルーティング命令が地上局107aで受信されると、地上局107aに、クライアントデータを現在時刻で、現在のネットワーク構成を介してルーティング経路1200A~1200Bに沿って送信させることができる。
【0073】
将来時点に対応して生成されるネットワーク構成の場合、実行命令は、スケジューリングされた変更をネットワーク100に格納すること、例えばトランシーバを操作して、クライアントデータを将来時刻で送信する前に生じる可能性がある新規ルーティング経路を各ノードで実現することを含むことができる。したがって、実行命令は、各ノードの転送テーブルを、新規ルーティング経路および時刻または時刻フレームで更新して新規ルーティング経路を将来のネットワーク構成に従って実現することを含むことができる。時刻または時刻フレームになると、ネットワーク100のノード107、110に、将来のネットワーク構成を実行命令に従って自動的に実現させることができる。
【0074】
代替的に、ネットワークコントローラ300の1つ以上のプロセッサ310は、クライアントデータ情報を1つ以上のクライアントデバイス350に対して、ネットワーク100内の複数の利用可能なフローに基づいてスケジューリングモジュール336を使用して要求するようにしてもよい。そのようにするために、1つ以上のプロセッサ310は、フロー決定モジュール330を使用して、地上局107a、107bのようなクライアントデバイスと直接接続可能なノードの間の複数の利用可能なフローを現在または将来のトポロジーに基づいて決定することができる。代替的に、複数の利用可能なフローは、クライアントデータ情報を受信することなく決定してもよく、性能メトリックを各フローに対応して含んでいてもよい。クライアントデバイスと直接接続可能なノードの間の複数の可能なフローを決定した後、1つ以上のプロセッサ310は、スケジューリングモジュール336を使用してメッセージを、1つ以上のクライアントデバイス350の第1のクライアントデバイスに通信システム340を介して送信することができる。メッセージは、第1のクライアントデバイスに直接接続可能なノードと他のクライアントデバイスに直接接続可能な他の全てのノードとの間の複数の利用可能なフローに由来する利用可能なフローのリストを含むことができる。加えて、メッセージは、ネットワーク100を介して送信するクライアントデータ情報に対する要求を含むことができる。クライアントデータ情報を含む応答は、第1のクライアントデバイスから受信することができ、当該応答を、1つ以上のプロセッサ310が使用してネットワーク構成を、上に説明したソルバーモジュール332を使用して生成および実現することができる。
【0075】
別の代替実施形態では、ブロック908で受信されるクライアントデータ情報は、要求される送信時刻を含まなくてもよい、または要求される送信時刻は、要求される時刻におけるネットワークのトポロジーに基づいて実現可能ではなくてもよい。次に、ネットワークコントローラ300の1つ以上のプロセッサ310は、クライアントデータに関してスケジューリングされた送信時刻を、スケジューリングモジュール336を使用して決定することができる。スケジューリングされた時刻は、所定の時刻または時刻フレームにおけるネットワーク100内の利用可能なノードおよび可能なリンクの全てを表わすテーブルに基づいて決定することができる。例えば、クライアントデータ情報は、現在時刻後1時間の将来時刻における5Gbのクライアントデータを送信する要求を含むことができる。クライアントデータ情報内の送信元ロケーションおよび宛先ロケーションに基づいて、開始局は地上局107aであると決定することができ、宛先局は地上局107bであると決定することができる。しかしながら、
図11に示す将来のトポロジー1100に基づいて、HAP110aは将来時刻に利用できないので、リンク130も将来時刻に利用できない。メモリ320に格納されているテーブルを使用して、1つ以上のプロセッサ310は次に、リンク130が利用可能になる、または最も早い時間、または地上局107aとHAP110b~110dのような別のHAPとの間のリンクが利用可能になる最も早期の時刻である第2の将来時刻を特定することができる。次に、5Gbのクライアントデータの送信は、第2の将来時刻になるようにスケジューリングすることができる。第2の将来時刻に関する第2の将来のネットワーク構成は、地上局107aと107bとの間のルーティング経路を含むように生成することができる。代替的に、第2の将来のネットワーク構成がルーティング経路なしで生成された場合、第2の将来のネットワーク構成は、地上局107aと107bとの間のルーティング経路を含むように更新することができる。
【0076】
上に説明した特徴は、ユーザがデータを世界の異なる構成地域に送信する高信頼度の方法を実現することができる。説明した特徴を使用して作成される通信ネットワークは、ユーザに、フェードおよび機能停止に対してより堅牢なネットワークカバレッジを提供することができる。このため、通信ネットワークのエンドユーザは、通信ネットワークが、より信頼性の高いデータ伝送を実現することができるので、ネットワークを使用する可能性が高くなる。加えて、ノードのモビリティにより、エンドユーザは世界中のデータセンターおよび他の関心地点へのアクセス性を高めることができる。
【0077】
特に明記しない限り、前述の代替例は、相互に排他的ではないが、独自の利点を達成するために様々な組み合わせで実現することができる。上に説明した特徴のこれらの他の変形および組み合わせは、特許請求の範囲により定義される主題から逸脱することなく利用することができるので、実施形態の前述の説明は、特許請求の範囲により定義される主題の限定としてではなく、例示として捉えられるべきである。加えて、本明細書において説明される例の提供、ならびに「such as(のような)」、「including(含む)」などのような語句で表現される条項は、特許請求の範囲の主題を特定の例に限定するものとして解釈されるべきではない。そうではなく、例は、多くの可能な実施形態のうちの1つのみを例示することを意図されている。さらに、異なる図面の同じ参照番号は、同じ、または同様の要素を特定することができる。
【手続補正書】
【提出日】2023-07-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ネットワークの複数のノードと通信するネットワークコントローラを備えるシステムであって、前記複数のノードが第2のノードに対して運動している第1のノードを含み、
前記ネットワークコントローラは1つ以上のプロセッサを含み、前記1つ以上のプロセッサは、
前記ネットワーク内のノードペア間の第1の複数のフローを、将来時刻に関する前記ネットワークの予測される将来のトポロジーに基づいて決定することであって、前記ノードペアの前記ノードの各ノードが前記ネットワークの外側の1つ以上のクライアントデバイスと通信することができる、決定することと、
前記1つ以上のクライアントデバイスの第1のクライアントデバイスにメッセージを送信することであって、前記メッセージが、前記第1の複数のフロー、およびクライアントデータ情報に対する要求を含む、送信することと、
前記クライアントデータ情報を含む、前記メッセージに対する応答を前記第1のクライアントデバイスから受信することと、
前記第1の複数のフローおよび前記クライアントデータ情報に基づいて第1のネットワーク構成を、生成することと、
前記第1のノードの少なくとも軌道に基づいて前記ネットワークに関する複数のネットワーク構成のスケジュールを生成することであって、前記複数のネットワーク構成の前記スケジュールの各ネットワーク構成は、前記複数のノードのうちの少なくとも1つのノードに関するポインティング命令またはフォワーディング命令を含み、前記複数のネットワーク構成の前記スケジュールは、第1の時点に関する前記第1のネットワーク構成と、第2の時点に関する第2のネットワーク構成とを含み、前記第1のネットワーク構成および前記第2のネットワーク構成は、異なるポインティング命令またはフォワーディング命令を有する、生成することと、
前記スケジュールの生成後、第3の時点に関する第3のネットワーク構成を有するネットワーク構成のスケジュールを更新することと、
前記スケジュール内の少なくとも1つのネットワーク構成を所定の時点で実施するために、前記ネットワークの前記複数のノードのうちの前記少なくとも1つのノードに実行命令を送信することであって、前記実行命令は前記複数のノードのうちの前記少なくとも1つのノードにおけるルーティングテーブルに対する1つ以上の更新を含む、送信することと、を行うように構成されている、システム。
【請求項2】
前記複数のノードをさらに備える、請求項1に記載のシステム。
【請求項3】
前記複数のノードは、1つ以上の地上局と、1つ以上の空中プラットフォームと、を含む、請求項1に記載のシステム。
【請求項4】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項1に記載のシステム。
【請求項5】
前記ネットワークコントローラの前記1つ以上のプロセッサは、
前記ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを前記複数のノードから受信した情報に基づいて生成することと、
現在時刻に関する前記ネットワークの現在のトポロジーを前記生成したテーブルに基づいて決定することと、
将来時刻に関する前記ネットワークの予測される将来のトポロジーを前記生成したテーブルに基づいて決定することと、
前記現在のトポロジーおよび前記予測される将来のトポロジーに関する第2の複数のフローを前記クライアントデータ情報に基づいて決定することであって、前記第2の複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記現在のトポロジーに関する前記第1のネットワーク構成を、前記第2の複数のフローに基づいて生成することと、
前記予測される将来のトポロジーに関する前記第2のネットワーク構成を前記第2の複数のフローに基づいて生成することと、によって前記複数のネットワーク構成の前記スケジュールを生成するように構成される、請求項1に記載のシステム。
【請求項6】
前記テーブルは、所定のノードの予測されるロケーションまたは所定のリンクの予測されるリンクメトリックに基づいて、前記所定のノードまたはリンクが利用可能であると予測される前記将来時刻を含む、スケジューリングされた時刻または時刻フレームを含む、請求項5に記載のシステム。
【請求項7】
前記クライアントデータ情報は、過去のクライアントデータトレンドを含み、前記ネットワークコントローラの前記1つ以上のプロセッサは、前記クライアントデータ情報を前記過去のクライアントデータトレンドに基づいて予測することにより、前記現在のトポロジーおよび前記予測される将来のトポロジーに関する前記第2の複数のフローを決定するように構成されている、請求項5に記載のシステム。
【請求項8】
前記第1のネットワーク構成および前記第2のネットワーク構成は、1つ以上のルーティング経路を含み、各ルーティング経路は、前記第2の複数のフローのうち1つのフローの前記1つ以上の要件を満たす、請求項5に記載のシステム。
【請求項9】
前記実行命令は、前記複数のノードに、1つ以上のトランシーバを前記1つ以上のルーティング経路に基づいて操作させる命令を含む、請求項8に記載のシステム。
【請求項10】
前記実行命令は、前記1つ以上のルーティング経路に従った前記ルーティングテーブルに対する更新を含む、請求項8に記載のシステム。
【請求項11】
前記ネットワークコントローラの前記1つ以上のプロセッサは、データを送信する時刻が前記将来時刻であることを、前記クライアントデータ情報および前記将来時刻における前記ネットワークの前記予測される将来のトポロジーを使用して判断するようにさらに構成されている、請求項5に記載のシステム。
【請求項12】
第2のノードに対して運動している第1のノードを含む複数のノードを含むネットワークを制御するための方法であって、
前記ネットワークの前記複数のノードと通信するネットワークコントローラにより、前記ネットワーク内のノードペア間の第1の複数のフローを、将来時刻に関する前記ネットワークの予測される将来のトポロジーに基づいて決定することであって、前記ノードペアの前記ノードの各ノードが前記ネットワークの外側の1つ以上のクライアントデバイスと通信することができる、決定することと、
前記ネットワークコントローラにより、前記1つ以上のクライアントデバイスの第1のクライアントデバイスにメッセージを送信することであって、前記メッセージが、前記第1の複数のフロー、およびクライアントデータ情報に対する要求を含む、送信することと、
前記ネットワークコントローラにより、前記クライアントデータ情報を含む、前記メッセージに対する応答を前記第1のクライアントデバイスから受信することと、
前記ネットワークコントローラにより、前記第1の複数のフローおよび前記クライアントデータ情報に基づいて第1のネットワーク構成を、生成することと、
前記ネットワークコントローラにより、前記第1のノードの少なくとも軌道に基づいて前記ネットワークに関する複数のネットワーク構成のスケジュールを生成することであって、前記複数のネットワーク構成の前記スケジュールの各ネットワーク構成は、前記複数のノードのうちの少なくとも1つのノードに関するポインティング命令またはフォワーディング命令を含み、前記複数のネットワーク構成の前記スケジュールは、第1の時点に関する前記第1のネットワーク構成と、第2の時点に関する第2のネットワーク構成とを含み、前記第1のネットワーク構成および前記第2のネットワーク構成は、異なるポインティング命令またはフォワーディング命令を有する、生成することと、
前記スケジュールの生成後、前記ネットワークコントローラにより、第3の時点に関する第3のネットワーク構成を有するネットワーク構成のスケジュールを更新することと、
前記ネットワークコントローラにより、前記スケジュール内の少なくとも1つのネットワーク構成を所定の時点で実施するために、前記ネットワークの前記複数のノードのうちの前記少なくとも1つのノードに実行命令を送信することであって、前記実行命令は前記複数のノードのうちの前記少なくとも1つのノードにおけるルーティングテーブルに対する1つ以上の更新を含む、送信することと、を含む、方法。
【請求項13】
前記複数のネットワーク構成の前記スケジュールを生成することは、
前記ネットワークコントローラにより、前記ネットワーク内の利用可能なノードおよび可能なリンクを表わすテーブルを前記複数のノードから受信した情報に基づいて生成することと、
前記ネットワークコントローラにより、現在時刻に関する前記ネットワークの現在のトポロジーを前記生成したテーブルに基づいて決定することと、
前記ネットワークコントローラにより、将来時刻に関する前記ネットワークの予測される将来のトポロジーを前記生成したテーブルに基づいて決定することと、
前記ネットワークコントローラにより、前記現在のトポロジーおよび前記予測される将来のトポロジーに関する第2の複数のフローを前記クライアントデータ情報に基づいて決定することであって、前記第2の複数のフローの各フローが、前記ネットワークを通るルーティング経路に関する1つ以上の要件を含む、決定することと、
前記ネットワークコントローラにより、前記現在のトポロジーに関する前記第1のネットワーク構成を、前記第2の複数のフローに基づいて生成することと、
前記ネットワークコントローラにより、前記予測される将来のトポロジーに関する前記第2のネットワーク構成を前記第2の複数のフローに基づいて生成することと、を含む、請求項12に記載の方法。
【請求項14】
前記テーブルは、所定のノードの予測されるロケーションまたは所定のリンクの予測されるリンクメトリックに基づいて、前記所定のノードまたはリンクが利用可能であると予測される前記将来時刻を含むスケジューリングされた時刻または時刻フレームを含む、請求項13に記載の方法。
【請求項15】
前記クライアントデータ情報は、過去のクライアントデータトレンドを含み、前記方法は、前記ネットワークコントローラにより、前記クライアントデータ情報を前記過去のクライアントデータトレンドに基づいて予測することにより、前記現在のトポロジーおよび前記予測される将来のトポロジーに関する前記第2の複数のフローを決定することをさらに含む、請求項13に記載の方法。
【請求項16】
前記第1のネットワーク構成および前記第2のネットワーク構成は、1つ以上のルーティング経路を含み、各ルーティング経路は、前記第2の複数のフローのうち1つのフローの前記1つ以上の要件を満たす、請求項13に記載の方法。
【請求項17】
前記実行命令は、前記複数のノードのうちの前記少なくとも1つのノードに、1つ以上のトランシーバを前記1つ以上のルーティング経路に基づいて操作させる命令を含む、請求項16に記載の方法。
【請求項18】
前記実行命令は、前記1つ以上のルーティング経路に従った前記ルーティングテーブルに対する更新を含む、請求項16に記載の方法。
【請求項19】
前記複数のノードは、自由空間光通信を実行するように構成されている、請求項12に記載の方法。
【外国語明細書】