(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024084126
(43)【公開日】2024-06-24
(54)【発明の名称】コンテキストアウェア・ネットワーク・ストレージ
(51)【国際特許分類】
H04L 67/568 20220101AFI20240617BHJP
【FI】
H04L67/568
【審査請求】未請求
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023198248
(22)【出願日】2023-11-22
(31)【優先権主張番号】18/064,799
(32)【優先日】2022-12-12
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】523043898
【氏名又は名称】ザ・ボーイング・カンパニー
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(74)【代理人】
【識別番号】100163522
【弁理士】
【氏名又は名称】黒田 晋平
(74)【代理人】
【識別番号】100154922
【弁理士】
【氏名又は名称】崔 允辰
(72)【発明者】
【氏名】スコット・チャールズ・サリヴァン
(57)【要約】
【課題】コンテキストアウェア・ネットワーク・ストレージを提供する。
【解決手段】起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送るための技法が提示される。本技法は、起点コンピューターからデマンド通信を受信することであって、デマンド通信が少なくとも1つのネットワークパラメータを指定する、前記受信することと、少なくとも1つのネットワークパラメータに準拠する、起点コンピューターから宛先コンピューターまでのネットワークを通る経路が利用可能でないと決定することと、少なくとも1つのネットワークパラメータに準拠する経路を介して起点コンピューターからネットワーク内のノードにデータを送ることであって、ノードが宛先コンピューターではない、前記送ることと、ノードにおけるデータを永続メモリに記憶することとを含む。
【選択図】
図7
【特許請求の範囲】
【請求項1】
起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送る方法であって、前記方法は、
前記起点コンピューターからデマンド通信を受信するステップであって、前記デマンド通信が少なくとも1つのネットワークパラメータを指定する、ステップと、
前記少なくとも1つのネットワークパラメータに準拠する、前記起点コンピューターから前記宛先コンピューターまでの前記ネットワークを通る経路が利用可能でないと決定するステップと、
前記少なくとも1つのネットワークパラメータに準拠する経路を介して前記起点コンピューターから前記ネットワーク内のノードにデータを送るステップであって、前記ノードが前記宛先コンピューターではない、ステップと、
前記ノードにおいて前記データを永続メモリに記憶するステップと
を含む、方法。
【請求項2】
前記データを送る前記ステップが、パケット交換を使用して少なくとも1つの中間ノードを通して、前記中間ノードにおいて永続メモリに前記データを記憶することなく、前記データを送るステップを含む、請求項1に記載の方法。
【請求項3】
前記少なくとも1つのネットワークパラメータに準拠する、前記起点コンピューターから前記宛先コンピューターまでの前記ネットワークを通る経路が利用可能でないと決定する前記ステップの後に、
前記ノードから第2のデマンド通信を受信するステップであって、前記第2のデマンド通信が前記少なくとも1つのネットワークパラメータを指定する、ステップと、
前記少なくとも1つのネットワークパラメータに準拠する、前記ノードから前記宛先コンピューターまでの経路が利用可能であると決定するステップと、
パケット交換を使用して前記ノードから前記宛先コンピューターに前記データを送るステップと
をさらに含む、請求項1に記載の方法。
【請求項4】
前記少なくとも1つのネットワークパラメータに準拠する、前記起点コンピューターから前記宛先コンピューターまでの前記ネットワークを通る経路が利用可能でないと決定する前記ステップの後に、
前記ノードから第2のデマンド通信を受信するステップであって、前記第2のデマンド通信が前記少なくとも1つのネットワークパラメータを指定する、ステップと、
前記少なくとも1つのネットワークパラメータに準拠する、前記ノードから次のノードまでの経路が利用可能であると決定するステップと、
パケット交換を使用して前記ノードから前記次のノードに前記データを送るステップと、
前記次のノードにおいて前記データを永続メモリに記憶するステップと
をさらに含む、請求項1に記載の方法。
【請求項5】
前記少なくとも1つのネットワークパラメータが、指定された帯域幅、指定されたネットワーク損失、指定された遅延、又は指定された優先度のうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項6】
前記デマンド通信が前記データのサイズを指定する、請求項1に記載の方法。
【請求項7】
前記ノードが宇宙を本拠とする、請求項1に記載の方法。
【請求項8】
前記データを送る前記ステップが、複数のプロトコル・データ・ユニットを送るステップを含み、
前記プロトコル・データ・ユニットの各々が、ヘッダと、暗号化されたペイロードとを含み、
記憶する前記ステップが、到着順に関連して前記プロトコル・データ・ユニットを記憶するステップを含む、請求項1に記載の方法。
【請求項9】
暗号化されたペイロードの解読を必要とすることなく、前記ノードから次のノード又は前記宛先コンピューターのうちの1つに前記プロトコル・データ・ユニットを送るステップ
をさらに含む、請求項8に記載の方法。
【請求項10】
記憶する前記ステップが、ブラック・セキュリティ・ドメインに記憶するステップを含み、
各暗号化されたペイロードが、暗号化されたフォーマットで記憶される、
請求項8に記載の方法。
【請求項11】
起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送るためのシステムであって、
トラフィック・エンジニアリング・マネージャにデマンド通信を送るように配置された起点コンピューターであって、前記デマンド通信が少なくとも1つのネットワークパラメータを指定する、起点コンピューターと、
前記起点コンピューターから前記デマンド通信を受信し、前記少なくとも1つのネットワークパラメータに準拠する、前記起点コンピューターから前記宛先コンピューターまでの前記ネットワークを通る経路が利用可能でないと決定するように配置されたトラフィック・エンジニアリング・マネージャと、
前記ネットワーク内のノードであって、前記ノードが、前記少なくとも1つのネットワークパラメータに準拠する経路を介して前記起点コンピューターから前記データを受信し、前記ノードにおいて前記データを永続メモリに記憶するように配置され、前記ノードが前記宛先コンピューターではない、ノードと
を備える、システム。
【請求項12】
中間ノードをさらに備え、前記起点コンピューターが、前記データが前記中間ノードにおいて永続メモリに記憶されることなく、パケット交換を使用して前記中間ノードを通して前記ノードに前記データを送る、請求項11に記載のシステム。
【請求項13】
前記ノードが、第2のトラフィック・エンジニアリング・マネージャに第2のデマンド通信を送るように配置され、前記第2のデマンド通信が前記少なくとも1つのネットワークパラメータを指定し、前記システムが、
前記ノードから前記第2のデマンド通信を受信し、前記少なくとも1つのネットワークパラメータに準拠する、前記ノードから前記宛先コンピューターまでの経路が利用可能であると決定するように配置された第2のトラフィック・エンジニアリング・マネージャをさらに備え、
前記ノードが前記宛先コンピューターに前記データを送る、請求項11に記載のシステム。
【請求項14】
前記ノードが、第2のトラフィック・エンジニアリング・マネージャに第2のデマンド通信を送るように配置され、前記第2のデマンド通信が前記少なくとも1つのネットワークパラメータを指定し、前記システムが、
前記ノードから前記第2のデマンド通信を受信し、前記少なくとも1つのネットワークパラメータに準拠する、前記ノードから次のノードまでの経路が利用可能であると決定するように配置された第2のトラフィック・エンジニアリング・マネージャと、
前記ノードから前記データを受信し、前記データを永続メモリに記憶するように配置された次のノードと
をさらに備える、請求項11に記載のシステム。
【請求項15】
前記少なくとも1つのネットワークパラメータが、指定された帯域幅、指定されたネットワーク損失、指定された遅延、又は指定された優先度のうちの少なくとも1つを含む、請求項11に記載のシステム。
【請求項16】
前記デマンド通信が前記データのサイズを指定する、請求項11に記載のシステム。
【請求項17】
前記ノードが宇宙を本拠とする、請求項11に記載のシステム。
【請求項18】
前記起点コンピューターが、複数のプロトコル・データ・ユニットにおいて前記データを送り、前記プロトコル・データ・ユニットの各々が、ヘッダと、暗号化されたペイロードとを含み、
前記ノードが、到着順に関連して前記プロトコル・データ・ユニットを記憶する、請求項11に記載のシステム。
【請求項19】
前記ノードが、暗号化されたペイロードの解読を必要とすることなく、次のノード又は前記宛先コンピューターのうちの1つに前記プロトコル・データ・ユニットを送るように構成されている、請求項18に記載のシステム。
【請求項20】
前記ノードが、前記プロトコル・データ・ユニットを、暗号化されたフォーマットでブラック・セキュリティ・ドメインに記憶するように構成されている、請求項18に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、一般に、コンピューターネットワーク通信に関する。
【背景技術】
【0002】
現代のコンピューターネットワークは、一般に、パケット交換通信を使用して動作する。パケット交換通信に従って、データは、ヘッダとデータペイロードとを含むようにフォーマットされたパケットなどのプロトコル・データ・ユニットに一緒にグループ化される。ヘッダ内の情報が、プロトコル・データ・ユニットをルーティングするために使用され得、ペイロードは、関心のデータを含み得る。パケット交換通信は、複数のスタックプロトコル層を、非限定的な例として、最も高いものから最も低いものに、すなわち、アプリケーション層(例えば、送られるべきデータ)、トランスポート層(例えば、TCPセグメント)、ネットワーク層(例えば、IPデータグラム)、リンクプロトコル層(例えば、フレーム)、及び物理層(例えば、通信チャネルを介して送られるバイナリデータ)のように利用し得る。一般に、所与の層のためのプロトコル・データ・ユニットのペイロードは、上位層プロトコル・データ・ユニットのヘッダ情報を含み得る。
【0003】
ネットワークを介して送られたデータは、ネットワーク内の1つ又は複数のコンピューターノードを通して発側コンピューターから宛先コンピューターに移動し得る。パケット交換通信では、ノードは、データを次のノード又は宛先コンピューターに送る前に、永続メモリ、例えばハードドライブにデータを記憶するのではなく、一時的に、揮発性メモリ、例えばRAMを通してデータを渡す。したがって、パケット交換通信は、一般に、極めて高速であり、例えば、本質的にリアルタイムであり、データはわずか数ミリ秒以内にノードを通って遷移する。
【0004】
いくつかのネットワークは、頻繁且つ長い中断を受ける。例は、未開発地域における地上波ネットワーク、セルラー電話ネットワークなどのモバイル通信ネットワーク、及び、地球と太陽系内の他の惑星上の又は他の惑星を周回する探測機との間などの、宇宙におけるエンドポイントを含む、通信のためのネットワークを含む。これらのネットワーク及び他のネットワークにおける中断は、様々な原因、例えば、携帯電話がサービスのない地域を通過すること、又は衛星が惑星の後側を通ることに起因して生じ得る。さらに、個々の中断は、数分から数時間、さらには数日に及ぶ比較的長い時間期間にわたって持続し得る。
【0005】
遅延耐性ネットワーキングは、ストア・アンド・フォワード・メッセージングを使用するネットワーキング技法であり、それにより、発側コンピューターから宛先コンピューターに送られたデータは、各中間ノードにおいて、ハードドライブなどの永続メモリに保持される。遅延耐性ネットワーキングの例は、ION及びIBRを含む。遅延耐性ネットワーキングは、頻繁且つ長い中断を受けるネットワークによって提示されるいくつかの課題を克服することができるが、各中間ノードにおいて永続メモリにデータを記憶するというその要件により、データを送るのが遅い。発側コンピューターから1つ又は複数の中間ノード、さらには宛先コンピューターへの各ホップは、データを永続メモリに記憶し、次いで、送るために永続メモリからデータを取り出す必要があり、これに各ノードにおいて数秒以上かかることがあるため、時間的な不利益、すなわち遅延を招く。したがって、遅延耐性ネットワーキングは、ネットワークが完全に機能的であり、切断又は他の中断がない時でも、容認できないほど遅くなり得る。
【0006】
遅延耐性ネットワーキングに関する別の問題は、暗号化と関係する。遅延耐性ネットワーキングは、ネットワーク内で既に使用されている任意のパケット交換プロトコル層の上に追加のプロトコル層を使用する。「バンドルプロトコル層」と呼ばれるそのような追加のプロトコル層は、追加のそれぞれのプロトコル・データ・ユニット・ヘッダ及びプロトコル・データ・ユニット・ペイロードを使用し、後者は下位層プロトコル・データ・ユニットからのヘッダを含む。一般に、ネットワークユーザは、指定された層の上のすべてのプロトコル・データ・ユニット・ペイロード・データを含む、ユーザのデータを暗号化することを望むことがある。(本明細書で使用される「ユーザ」という用語は、コンピューターを含み、人間を含まないことがあり、例えば、「ユーザ」は自律型コンピューターであり得る。)例えば、ユーザは、バンドル・ペイロード・データ及びバンドルヘッダを暗号化するが、トランスポートプロトコル(TCP)層及びネットワークプロトコル(IP)層などの下位層ヘッダを、暗号化されないままにすることを望み得る。しかしながら、いくつかのネットワークは、解読を許可しないセキュリティドメインを含む。暗号化されたバンドル・プロトコル・ヘッダでは、解読されない限り、そのような暗号化されたバンドルヘッダ内のルーティング情報はアクセス不可能であるため、解読を禁止するセキュリティドメイン内の遅延耐性ネットワーキングは可能でない。
【発明の概要】
【課題を解決するための手段】
【0007】
様々な実施形態によれば、起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送る方法が提示される。本方法は、起点コンピューターからデマンド通信を受信することであって、デマンド通信が少なくとも1つのネットワークパラメータを指定する、前記受信することと、少なくとも1つのネットワークパラメータに準拠する、起点コンピューターから宛先コンピューターまでのネットワークを通る経路が利用可能でないと決定することと、少なくとも1つのネットワークパラメータに準拠する経路を介して起点コンピューターからネットワーク内のノードにデータを送ることであって、ノードが宛先コンピューターではない、前記送ることと、ノードにおいてデータを永続メモリに記憶することとを含む。
【0008】
上記の実施形態の様々な任意の特徴には、以下が含まれる。データを送ることは、パケット交換を使用して少なくとも1つの中間ノードを通して、その中間ノードにおいて永続メモリにデータを記憶することなく、そのデータを送ることを含み得る。本方法は、少なくとも1つのネットワークパラメータに準拠する、起点コンピューターから宛先コンピューターまでのネットワークを通る経路が利用可能でないと決定した後に、ノードから第2のデマンド通信を受信することであって、第2のデマンド通信が少なくとも1つのネットワークパラメータを指定する、前記受信することと、少なくとも1つのネットワークパラメータに準拠する、ノードから宛先コンピューターまでの経路が利用可能であると決定することと、パケット交換を使用してノードから宛先コンピューターにデータを送ることとを含み得る。本方法は、少なくとも1つのネットワークパラメータに準拠する、起点コンピューターから宛先コンピューターまでのネットワークを通る経路が利用可能でないと決定した後に、ノードから第2のデマンド通信を受信することであって、第2のデマンド通信が少なくとも1つのネットワークパラメータを指定する、前記受信することと、少なくとも1つのネットワークパラメータに準拠する、ノードから次のノードまでの経路が利用可能であると決定することと、パケット交換を使用してノードから次のノードにデータを送ることと、次のノードにおいてデータを永続メモリに記憶することとをさらに含み得る。少なくとも1つのネットワークパラメータは、指定された帯域幅、指定されたネットワーク損失、指定された遅延、又は指定された優先度のうちの少なくとも1つを含み得る。デマンド通信はデータのサイズを指定し得る。ノードは宇宙を本拠とし得る。データを送ることは、複数のプロトコル・データ・ユニットを送ることを含み得、プロトコル・データ・ユニットの各々は、ヘッダと、暗号化されたペイロードとを含み、記憶することは、到着順に関連してプロトコル・データ・ユニットを記憶することを含み得る。本方法は、暗号化されたペイロードの解読を必要とすることなく、ノードから次のノード又は宛先コンピューターのうちの1つにプロトコル・データ・ユニットを送ることを含み得る。記憶することは、ブラック・セキュリティ・ドメインに記憶することを含み得、各暗号化されたペイロードは、暗号化されたフォーマットで記憶され得る。
【0009】
様々な実施形態によれば、起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送るためのシステムが提示される。本システムは、トラフィック・エンジニアリング・マネージャにデマンド通信を送るように配置された起点コンピューターであって、デマンド通信が少なくとも1つのネットワークパラメータを指定する、起点コンピューターと、起点コンピューターからデマンド通信を受信し、少なくとも1つのネットワークパラメータに準拠する、起点コンピューターから宛先コンピューターまでのネットワークを通る経路が利用可能でないと決定するように配置されたトラフィック・エンジニアリング・マネージャと、ネットワーク内のノードであって、ノードが、少なくとも1つのネットワークパラメータに準拠する経路を介して起点コンピューターからデータを受信し、ノードにおいてデータを永続メモリに記憶するように配置され、ノードが宛先コンピューターではない、ネットワーク内のノードとを含む。
【0010】
上記の実施形態の様々な任意の特徴には、以下が含まれる。本システムは、中間ノードを含み得、起点コンピューターは、データが中間ノードにおいて永続メモリに記憶されることなく、パケット交換を使用して中間ノードを通してノードにデータを送る。ノードは、第2のトラフィック・エンジニアリング・マネージャに第2のデマンド通信を送るように配置され得、第2のデマンド通信は少なくとも1つのネットワークパラメータを指定し、本システムは、ノードから第2のデマンド通信を受信し、少なくとも1つのネットワークパラメータに準拠する、ノードから宛先コンピューターまでの経路が利用可能であると決定するように配置された第2のトラフィック・エンジニアリング・マネージャをさらに含み得、ノードは宛先コンピューターにデータを送る。ノードは、第2のトラフィック・エンジニアリング・マネージャに第2のデマンド通信を送るように配置され得、第2のデマンド通信は少なくとも1つのネットワークパラメータを指定し、本システムは、ノードから第2のデマンド通信を受信し、少なくとも1つのネットワークパラメータに準拠する、ノードから次のノードまでの経路が利用可能であると決定するように配置された第2のトラフィック・エンジニアリング・マネージャと、ノードからデータを受信し、データを永続メモリに記憶するように配置された次のノードとを含み得る。少なくとも1つのネットワークパラメータは、指定された帯域幅、指定されたネットワーク損失、指定された遅延、又は指定された優先度のうちの少なくとも1つを含み得る。デマンド通信はデータのサイズを指定し得る。ノードは宇宙を本拠とし得る。起点コンピューターは、複数のプロトコル・データ・ユニットにおいてデータを送り得、プロトコル・データ・ユニットの各々は、ヘッダと、暗号化されたペイロードとを含み、ノードは、到着順に関連してプロトコル・データ・ユニットを記憶し得る。ノードは、暗号化されたペイロードの解読を必要とすることなく、次のノード又は宛先コンピューターのうちの1つにプロトコル・データ・ユニットを送るように構成され得る。ノードは、プロトコル・データ・ユニットを、暗号化されたフォーマットでブラック・セキュリティ・ドメインに記憶するように構成され得る。
【0011】
上記で説明された要素と本明細書内の要素との(複数の従属する組合せを含む)組合せが、本発明者らによって企図されており、別段に指示されている場合又は矛盾する場合を除いて行われ得る。
【0012】
例の様々な特徴は、添付の図に関連して考慮されると、例の以下の詳細な説明を参照してより良く理解されるので、より十分に理解され得る。
【図面の簡単な説明】
【0013】
【
図1】様々な実施形態による、実装に好適な地上及び宇宙を本拠としたネットワークシステムの概略図である。
【
図2】様々な実施形態による、宇宙を本拠としたノードの概略図である。
【
図3】様々な実施形態による、パケット記憶ユニット及びパケット通信チャネルの概略図である。
【
図4】様々な実施形態による、ネットワーク部上の通信ホップを示す図である。
【
図5】解読の制限があるセキュリティドメイン内で動作することができない遅延耐性ネットワーキングを示す概略図である。
【
図6】様々な実施形態による、解読の制限があるセキュリティドメイン内の通信を示すシステムの概略図である。
【
図7】様々な実施形態による、起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送る方法のためのフローチャートである。
【発明を実施するための形態】
【0014】
次に、添付図面に示されている例示的な実装形態を、詳細に参照する。便宜上、同じ又は同様の部分を指すために、図面全体を通して同じ参照番号が使用される。以下の説明では、その一部を形成する添付図面が参照され、添付図面では、本発明が実施され得る特定の典型的な例が、例示として示される。これらの例は、当業者が本発明を実施することを可能にするように十分詳細に説明され、他の例が利用され得、本発明の範囲から逸脱することなく変更が行われ得ることを理解されたい。したがって、以下の説明は単なる例示である。
【0015】
いくつかの実施形態は、必須のホップごとの不利益を招くことなく、頻繁且つ長い中断を受けるネットワークを介して起点コンピューターから宛先コンピューターにデータを送るという問題を解決する。
【0016】
いくつかの実施形態によれば、起点コンピューターから宛先コンピューターにデータを送るために、起点コンピューターは、送信サイズ、並びに、送信に必要なネットワークパラメータ、例えば、容量(帯域幅)及びサービス品質(例えば、遅延、損失、及び/又はジッタ)を指定するデマンド通信を、トラフィック・エンジニアリング・マネージャに送る。メッセージ優先度及び/又は満了時間も、任意に指定され得る。トラフィック・エンジニアリング・マネージャは、ネットワークパラメータに準拠する、起点コンピューターから宛先コンピューターまでのエンドツーエンド経路が現時点において存在するかどうかを決定する。エンドツーエンド経路が現時点において存在しない場合、トラフィック・エンジニアリング・マネージャは、デマンド通信に基づいて十分な記憶容量を有する中間記憶ノードを決定し、指定されたネットワークパラメータに準拠する経路をそのノードに供給する。起点コンピューターから中間記憶ノードへのすべてのパケットが、遅延耐性ネットワーキングシステムの場合のように永続メモリに完全に記憶され、介在ノードにおいてフォワーディングされることとは対照的に、パケット交換される。これは、ネットワークが記憶されたデータを指定された宛先コンピューターに移動させることを継続的に試みる間、ミッション関係アクティビティを実施し続けるために起点コンピューターのローカルストレージを解放する。
【0017】
いくつかの実施形態は、解読を禁止するセキュリティドメイン内で動作することができる。例えば、遅延耐性ネットワーキングのバンドルプロトコルなど、追加の最上層プロトコルを課すのではなく、いくつかの実施形態は、既存のプロトコル層を利用する。いくつかの実施形態は、場合によってはネットワーク内で暗号化され得る、任意のプロトコル層のデータを暗号化することを許可する。例えば、いくつかの実施形態は、場合によっては解読を禁止するセキュリティドメイン内で許可される、任意のプロトコル層の暗号化を可能にする。非限定的な例として、いくつかの実施形態は、トランスポートプロトコル層における、及びその上での暗号化を許可する。
【0018】
いくつかの実施形態は、ストレージがネットワーク内のどこに位置するか(すなわち、すべてのノード上にはない)に関する情報と、トラフィックをパケット交換を介して記憶ノードに直接フォワーディングすることとを利用する。
【0019】
これら及び他の特徴及び利点は、図を参照して詳細に示され、説明される。
【0020】
図1は、様々な実施形態による、実装に好適な地上及び宇宙を本拠としたネットワークシステム100の概略図である。ネットワークは、バックボーンノード102、104、例えば、BB1、BB2、BB3、BB4、地上1、地上2、地上3、並びにクライアントノード、例えば、ノード1、ノード2、ノード3、CL-1、CL-2、CL-3、CL-4を含む。バックボーンノード102は、宇宙を本拠とした、例えば、BB1、BB2、BB3、BB4であり、バックボーンノード104は、地上を本拠とした、例えば、地上1、地上2、地上3である。
【0021】
部分的に宇宙を本拠としたバックボーンノード102の存在により、ネットワーク上の通信は、頻繁且つ長い中断を受け得る。様々な実施形態は、そのような中断に適応するだけでなく、そのような中断がないか又は特定の通信経路に影響を与えないとき、迅速且つ効率的な通信を提供するために、ネットワーク内に実装され得る。
【0022】
様々な実施形態によれば、バックボーンノード102、104又はクライアントノード、すなわち、ノード1、ノード2、ノード3、CL-1、CL-2、CL-3、CL-4のいずれかなど、起点コンピューターが、バックボーンノード102、104又はクライアントノード、すなわち、ノード1、ノード2、ノード3、CL-1、CL-2、CL-3、CL-4の他のいずれかなど、宛先コンピューターへの通信を開始するとき、それは、デマンド通信を生成し、コントローラーにおけるトラフィック・エンジニアリング・マネージャに送る。(例示的なトラフィック・エンジニアリング・マネージャをホストする例示的なコントローラーが、
図2を参照して本明細書で示され、説明される。)デマンド通信は宛先コンピューターを指定する。デマンド通信は、例えばバイト単位で、意図された通信のサイズをも指定する。サイズを指定することは、トラフィック・エンジニアリング・マネージャが、宛先までの経路が利用できない場合、情報を記憶するのに好適な仲介ノードを見つけることを可能にする。デマンド通信は、通信の要件として0個以上のネットワークパラメータをも指定する。そのようなパラメータは、最小サービス品質(例えば、ネットワーク経路の損失)、最小容量(例えば、帯域幅)、及び/又はパケットが横断することができるリンクのタイプ(例えば、広帯域、狭帯域)を指示し得る。メッセージ優先度及び/又は満了時間も、任意に指定され得る。
【0023】
トラフィック・エンジニアリング・マネージャは、デマンドを受信した後に、指定されたネットワークパラメータを用いた起点コンピューターから宛先コンピューターまでの経路が現在利用可能であるかどうかを決定する。経路が現在利用可能である場合、トラフィック・エンジニアリング・マネージャは、経路情報を起点コンピューターに提供し、起点コンピューターは、指示された経路に沿って宛先コンピューターに通信を送る。この場合、通信は、完全に起点コンピューターから宛先コンピューターへのパケット交換通信として送られ得る。すなわち、通信は、0個以上の仲介ノード、例えば、バックボーンノード102、104又はクライアントノード、すなわち、ノード1、ノード2、ノード3、CL-1、CL-2、CL-3、CL-4のうちの任意の他のものを介して、任意のそのようなノードにおける通信を永続メモリに記憶することなく、送られ得る。むしろ、通信は、RAMなど、揮発性メモリを一時的に通過することのみによって、そのような仲介ノードを通過し得る。したがって、そのような通信は、特に遅延耐性ネットワーキング通信と比較して、極めて高速である。通信は、双方向通信を使用して、例えばTCP/IPを使用して、又は単方向通信、例えばUDPを使用して送られ得る。
【0024】
指定されたネットワークパラメータを用いた起点コンピューターから宛先コンピューターまでの経路が現在利用可能でない場合、トラフィック・エンジニアリング・マネージャは、指定されたネットワークパラメータを用いた仲介記憶ノードまでの経路が利用可能であるかどうかを決定する。そのような仲介記憶ノードは、例えば、バックボーンノード102、104、又はクライアントノード、すなわち、ノード1、ノード2、ノード3、CL-1、CL-2、CL-3、CL-4のうちの任意の他のものを含み得る。そのような経路が利用可能である場合、起点コンピューターは、永続メモリ内に記憶することなく、パケット交換を使用して経路に沿って仲介記憶ノードにデータを送る。データは、例えば、UDPなどの単方向通信を使用して送られ得る。
【0025】
仲介記憶ノードを決定する際に、トラフィック・エンジニアリング・マネージャは、仲介記憶ノードがどこに位置するかにかかわらず、起点コンピューターからどのくらいのデータがオフロードされ得るかを最大化するように動作し得る。したがって、いくつかの事例では、仲介記憶ノードは、起点コンピューターよりも宛先コンピューターからトポロジー的に離れていることがあり、例えば、仲介記憶ノードと宛先コンピューターとの間には、起点コンピューターと宛先コンピューターとの間よりも多くのノードがあり得る。トラフィック・エンジニアリング・マネージャは、経路を決定するための任意の技法を利用し得る。一般に、トラフィック・エンジニアリング・マネージャは、他のネットワーク要素と継続的に通信し、ネットワークトポロジー並びにすべてのネットワーク要素、それらの記憶容量、及びそれらの接続に関するリアルタイム情報を有し得る。
【0026】
通信が仲介記憶ノードに記憶されると、仲介記憶ノードは、新しいデマンド通信を独立して生成し、それを、(起点コンピューターからデマンド通信を受信したのと同じトラフィック・エンジニアリング・マネージャでないことがある)トラフィック・エンジニアリング・マネージャに送る。仲介記憶ノードによって送られるデマンド通信は、起点コンピューターからのデマンド通信と同じネットワークパラメータ及び通信サイズ情報を含み得る。
【0027】
トラフィック・エンジニアリング・マネージャが仲介記憶ノードからデマンド通信を受信した後に、プロセスは、仲介記憶ノードが起点コンピューターである場合と同じように繰り返す。すなわち、トラフィック・エンジニアリング・マネージャは、指定されたネットワークパラメータを用いた宛先コンピューターまでの経路が宛先コンピューターまで存在するかどうかを決定し、経路が存在しない場合、それは、別の仲介記憶ノードまでの経路を決定する。この場合でも、仲介記憶ノード間の経路は、永続メモリに通信を記憶することなくパケット交換される。
【0028】
データが、指定された宛先に到達する前に、どのくらいの間ネットワークに記憶され得るかを指示する満了時間を、デマンド通信が指定する場合、データがどの記憶ノードにあっても、満了タイマーが満了するとデータを削除することができることに留意されたい。
【0029】
データが永続的に記憶される各後続の仲介ノードは、発信元コンピューターに代わって新しいアドホックデマンド通信を生成し得るため、トラフィック・エンジニアリング・マネージャによって実行されるように経路を決定するためのプロセスは、エンドツーエンドでないことがある。むしろ、独立したルーティング決定が各仲介記憶ノードにおいて行われ得る。このプロセスは、仲介ノードが、他の記憶されたデータ(例えば、優先度、サイズ、宛先など)を考慮して、情報に基づいた決定を行うことを可能にする。
【0030】
より詳細には、新しいデマンド要求はローカル・トラフィック・エンジニアリング・マネージャに提出され得るが、すべてのトラフィック・エンジニアリング・マネージャが同期して動作し得る(例えば、分散配備における場合)か、又は、集中トラフィック・エンジニアリング・マネージャがあり得る。記憶されたデータについて新しいデマンド要求が生成されるとき、要求は同期され、トラフィック・エンジニアリング・マネージャは、最新のデマンドセット及びネットワークステータス(例えば、トポロジー、容量や、遅延、損失、及び/又はジッタなどのリンクステータスなど)を使用して稼働するようにトリガされる。
【0031】
図2は、様々な実施形態による、宇宙を本拠としたノード200の概略図である。宇宙を本拠としたノード200は、例えば、衛星、航空機、又は宇宙船において実装され得る。
【0032】
宇宙を本拠としたノード200は、本明細書では「レッド」及び「ブラック」と呼ばれる2つの異なるセキュリティドメインを収容する。レッド・セキュリティ・ドメインは、暗号化されたデータを解読し得、平文(すなわち、暗号化されていない)データをハンドリング(例えば、記憶、処理、及び/又は転送)し得る。ブラック・セキュリティ・ドメインは、暗号化されたデータ(例えば、いくつかのプロトコル層における暗号化されていないヘッダを除く)をハンドリング(例えば、記憶、処理、及び/又は転送)し得、データを解読することを妨げられ得る。したがって、
図2に示されているように、宇宙を本拠としたノード200は、暗号化されていない及び/又はセキュアでない通信及びデータを受信、処理、記憶、通信し、場合によってはハンドリングし得るレッド制御エンクレーブ210及びレッド・ユーザ・エンクレーブ220と、暗号化された及び/又はセキュアな通信及びデータを受信、処理、記憶、通信し、場合によってはハンドリングし得るブラックエンクレーブ240とを含む。宇宙を本拠としたノード200はまた、他のエンクレーブのためのデータを暗号化及び解読するセキュリティ・サービス・エンクレーブ230を含み、並びに、セキュリティドメイン間のプラットフォーム内制御プレーントラフィックを施行する、例えば、ブラックエンクレーブ240が解読されたデータを受信するのを防ぐなど、エンクレーブポリシーを施行する。
【0033】
宇宙を本拠としたノードは、例えば、レッド・ユーザ・エンクレーブ220からの要素を使用して、
図1を参照して本明細書で示され、説明されるように、クライアントノード機能、例えば、クライアントノード、すなわち、ノード1、ノード2、ノード3、CL-1、CL-2、CL-3、CL-4のいずれかの機能を提供し得る。宇宙を本拠としたノード200は、同じく又は代替として、例えば、レッド制御エンクレーブ210、セキュリティ・サービス・エンクレーブ230、及び/又はブラックエンクレーブ240からの要素を使用して、バックボーンノード、例えば、
図1を参照して本明細書で示され、説明されるようなバックボーンノード102、104のいずれかとして動作し得る。
【0034】
レッド・ユーザ・エンクレーブ220は、クライアント222と、データ記憶ユニット224と、イーサネットスイッチ226とを含む。レッド・ユーザ・エンクレーブ220内のクライアント222は、任意のタイプのコンピューター、例えばミッションコンピューターであり得、起点コンピューターの容量内で宛先コンピューターに送られ得るデータを生成し、又は場合によっては取得し、又は提供し得る。レッド・ユーザ・エンクレーブ220内のデータ記憶ユニット224は、ハードドライブなどの永続メモリを含み得る。一般に、データは、レッド記憶ユニット224から発生し、暗号化されたパケット/フレームとして、ブラックエンクレーブ240のデータ記憶ユニット242など、仲介ブラック記憶ノードに記憶され得る。レッド・ユーザ・エンクレーブ220内のイーサネットスイッチ226は、レッド・ユーザ・エンクレーブ220と、レッド制御エンクレーブ210、セキュリティ・サービス・エンクレーブ230及び/又はブラックエンクレーブ240のいずれかとの間の通信のために使用され得る。
【0035】
レッド制御エンクレーブ210は、コントローラー212と、プロセッサ214と、イーサネットスイッチ216とを含む。レッド制御エンクレーブ210内のコントローラー212は、例えば、
図1を参照して本明細書で説明されるように、トラフィック・エンジニアリング・マネージャをホストし得る。コントローラー212はまた、ブラックエンクレーブ240内のデータ記憶ユニット242を動作させるために、データ記憶ユニット制御ソフトウェアを実行し得る。レッド制御エンクレーブ210内のプロセッサ214は、レッド制御エンクレーブ210によって必要とされる任意の処理のために使用され得る。レッド制御エンクレーブ210内のイーサネットスイッチ216は、レッド制御エンクレーブ210と、レッド・ユーザ・エンクレーブ220、セキュリティ・サービス・エンクレーブ230及び/又はブラックエンクレーブ240のいずれかとの間の通信のために使用され得る。
【0036】
セキュリティ・サービス・エンクレーブ230は、レッド制御エンクレーブ210とレッド・ユーザ・エンクレーブ220とブラックエンクレーブ240との間の通信の暗号化及び解読を管理することを含む、宇宙を本拠としたノード200のためのセキュリティを管理する。セキュリティ・サービス・エンクレーブ230はまた、ブラックエンクレーブ240が平文データを取得すること又は暗号化されたデータ(いくつかの事例では、例えば、下位層プロトコルヘッダを除く)を解読することを禁止するなど、セキュリティ・ドメイン・ポリシーを施行する。より一般的には、セキュリティ・サービス・エンクレーブは、1つ又は複数のクロス・ドメイン・ガード又はクロス・ドメイン・ソリューションを採用し得る。セキュリティ・サービス・エンクレーブ230の要素が、現在説明される。
【0037】
レッド・ユーザ・エンクレーブ220とブラックエンクレーブ240との間の通信に関して、セキュリティ・サービス・エンクレーブ230は、レッド・ユーザ・エンクレーブ220とブラックエンクレーブ240との間のミッション関係通信を暗号化及び解読するためのミッション暗号234を含む。セキュリティ・サービス・エンクレーブ230は、レッド・ユーザ・エンクレーブ220との間の管理通信を暗号化、解読、及び管理するための制御及び管理暗号232をも含む。
【0038】
レッド制御エンクレーブ210とブラックエンクレーブ240との間の通信に関して、セキュリティ・サービス・エンクレーブ230は、レッド制御エンクレーブ210とブラックエンクレーブとの間の通信を暗号化、解読、及び管理するための制御及び管理暗号231を含む。セキュリティ・サービス・エンクレーブ230は、通信変調を制御及び管理するためのモデム制御及びステータスガード237をも含む。例えば、モデム制御及びステータスガード237は、ブラックエンクレーブ240内のモデム246を制御し得る。セキュリティ・サービス・エンクレーブ230は、仲介ノードとしての宇宙を本拠としたノードの動作に関係する、レッド制御エンクレーブ210とブラックエンクレーブ240との間の通信を仲介する、制御及びステータスガード235をも含む。例えば、宇宙を本拠としたノード200が起点コンピューター又は異なる仲介ノードから受信する通信は、制御及びステータスガード235を通してルーティングされ、制御及びステータスガード235によって暗号化又は解読され得る。セキュリティ・サービス・エンクレーブ230は、レッド制御エンクレーブ210とブラックエンクレーブ240との間のオンボード通信を仲介する、スイッチ制御及びステータスガード233をも含む。
【0039】
ブラックエンクレーブ240は、データ記憶ユニット242と、その関連するプロセッサと、スイッチ244と、モデム246とを含む。ブラック・ユーザ・エンクレーブ240内のデータ記憶ユニット242は、暗号化されたパケットを、宇宙を本拠としたノード200の仲介ノード機能の容量内で記憶する。暗号化されたパケットは、その一部が解読されることなく、パケットフォーマットで記憶され得る。記憶された暗号化されたパケットは、異なる仲介ノード、別個の物理的箇所における発信側コンピューター、又はレッド・ユーザ・エンクレーブ220内に存在するクライアント222のうちの1つなどの発信側コンピューターから発信していることがある。暗号化されたパケットは、宇宙を本拠としたノード200によるそれらの受信順に関連して記憶され得る。例えば、暗号化されたパケットは、それらの受信順を指示する列挙と共に記憶され得る。ブラック・ユーザ・エンクレーブ240内のスイッチ244は、ブラックエンクレーブ240と、セキュリティ・サービス・エンクレーブ230、レッド制御エンクレーブ210、レッド・ユーザ・エンクレーブ220、及び/又はモデム246を介した外部ノードとの間の通信を容易にする。ブラック・ユーザ・エンクレーブ240内のモデム246は、送信/受信用であるモデム、並びに、送信専用及び受信専用であるモデムを含む。
【0040】
図3は、様々な実施形態による、パケット記憶ユニット302及びパケット通信チャネル304の概略
図300である。一般に、パケット記憶ユニット302及びパケット通信チャネル304は、仲介記憶ノードなど、記憶ノードの一部であり得る。例えば、パケット記憶ユニット302は、
図2を参照して本明細書で示され、説明されるような、データ記憶ユニット242の一実装形態を含み得る。別の例として、通信チャネル304は、
図2を参照して本明細書で示され、説明されるような、スイッチ244及び/又はモデム246の一方又は両方の一実装形態を含み得る。パケット記憶ユニット302及びパケット通信チャネル304は、現在説明されるように、パケットを送り、受信し、記憶するように動作し得る。
【0041】
パケットを受信するために、トラフィック・エンジニアリング・マネージャ、例えば、
図2を参照して本明細書で示され、説明されるようにコントローラー212によってホストされるトラフィック・エンジニアリング・マネージャは、デマンドが承認されたとき、記憶ノードに通知し得る。例えば、トラフィック・エンジニアリング・マネージャは、デマンド通信における必要なネットワークパラメータが特定の経路について満たされていることを指示し得、また、その経路を介して送られ、通信チャネル304を介して受信されるべきであるパケットをどのように識別するかに関する指示を提供し得る。そのような指示は、例えば、パケットヘッダ内の情報及び/又はパケットを識別するメタデータを指定し得る。トラフィック・エンジニアリング・マネージャは、パッケージストレージ202に記憶するためにパケットに割り当てるための名前を記憶ノードに通知し得る。そのような名前は、デマンド通信の識別及び/又はデマンド通信を発行した要求側ユーザ(例えば、要求側コンピューター)の識別を指定し得る。
【0042】
パケットを送信するために、トラフィック・エンジニアリング・マネージャは、割り当てられた名前を使用してパケットを送信するように記憶ノードに命令し得、割り当てられた名前は、デマンド通信の識別及び/又はデマンド通信を発行した要求側ユーザ(例えば、要求側コンピューター)の識別を指定し得る。記憶ノードは、トラフィック・エンジニアリング・マネージャによって導かれるように、承認されたデマンドパラメータに従って通信チャネル304内で各送信ストリームをレート制御し得る。記憶ノードは、トラフィック・エンジニアリング・マネージャによって導かれるように、各フロー送信について宛先MACアドレスを修正し得る。
【0043】
図4は、様々な実施形態による、ネットワーク400部上の通信430ホップを示す。通信430ホップは、コンピューター402からコンピューター404へのものとして示されている。コンピューター402は、起点コンピューター又は仲介記憶ノードであり得、コンピューター404は、宛先コンピューター又は仲介記憶ノードであり得る。
【0044】
通信430を送るために、トラフィック・エンジニアリング・マネージャが、コンピューター402からコンピューター404までの通信経路を決定し得る。トラフィック・エンジニアリング・マネージャは、例えば、コンピューター404が仲介記憶ノードである場合、コンピューター402からのデマンド通信に基づいて、コンピューター404を十分な記憶容量を有するものとして識別していることがある。いくつかの実施形態によれば、コンピューター402からコンピューター404へのすべてのパケットが、ION又はIBR遅延耐性ネットワーキングの場合のように、すべてのノード内の永続メモリに完全に記憶され、再送されることとは対照的に、パケット交換される。したがって、様々な実施形態によれば、通信430は、ノード420内の永続メモリに記憶されない。むしろ、通信430は、ノード420における揮発性メモリを通過する。
【0045】
いくつかの実施形態によれば、トラフィック・エンジニアリング・マネージャは、ノードを見つけるために発見プロトコルを利用しないことに留意されたい。いくつかの実施形態は、すべてのバックボーンノード上で稼働し、例えば、rxロック、rxロック解除、報告された容量変更(例えば、mod/cod)、遅延などについて、各通信リンクのステータスを管理する、トポロジーマネージャを含む。トラフィック・エンジニアリング・マネージャと同様に、すべてのトポロジーマネージャが同期され得る。
【0046】
したがって、いくつかの実施形態は、現在の遅延耐性ネットワーキングシステム(例えば、ION及びIBR)のホップごとの記憶の不利益を排除する。
図4に示されているように、そのような遅延耐性ネットワーキングシステムは、通信430を、ノード420において永続メモリにバンドルとして記憶する。
【0047】
図5は、解読の制限があるセキュリティドメイン内で動作することができない遅延耐性ネットワーキング(例えば、IOR又はIBR)を示す概略
図500である。
図5に示されているシステムは、レッド・セキュリティ・ドメインとブラック・セキュリティ・ドメインとを含む。
図5のブラック・セキュリティ・ドメインは、データを解読することも、(暗号化されていないリンク層及び/又はネットワーク層プロトコルヘッダを受信及びハンドリングすることを除いて)解読されたデータを受信又はハンドリングすることもできない。
図5のレッド・セキュリティ・ドメインは、解読されたデータをハンドリングすることを許可される。
【0048】
図5に示されているように、起点コンピューターとしてのユーザ1 510は、宛先コンピューターにデータを送ることを意図しており、遅延耐性ネットワーキングシステムは、バックボーン1 520を通してデータをルーティングする経路を決定する。データは、データ記憶ユニット512から発信し得る。レッド・セキュリティ・ドメイン内の遅延耐性ネットワークプロセッサ514は、データを遅延耐性ネットワーキングバンドルにバンドルする。次いで、セキュリティ・サービス・エンクレーブ516は、トランスポート層の上のデータのすべてを暗号化し、したがって、遅延耐性ネットワーキング・バンドル・ヘッダを暗号化する。次いで、ユーザ1 510は、遅延耐性ネットワーキングバンドルをバックボーン1 520に送る。バックボーン1 520は、スイッチ522においてバンドルを受信する。
【0049】
スイッチ522は、バンドルをバックボーン1 520のレッド・セキュリティ・ドメイン又はブラック・セキュリティ・ドメインのいずれかにフォワーディングすることができる。レッド・セキュリティ・ドメインの場合、スイッチ522は、バンドルを解読のためにセキュリティ・サービス・エンクレーブ524にフォワーディングし、解読されたデータは、レッド・セキュリティ・ドメイン内の遅延耐性ネットワークプロセッサ526に渡される(解読されたデータは、再暗号化されない限り、ブラック・セキュリティ・ドメインに渡され得ない)。レッド・セキュリティ・ドメインにおいて、遅延耐性ネットワーキングプロセッサ526は、遅延耐性ネットワークシステムのバンドルプロトコルに従って、例えばバックボーン530にデータをどのようにルーティングするかを決定するために、解読されたバンドルヘッダを解析することができる。しかしながら、ブラック・セキュリティ・ドメインの場合、スイッチ522がバンドルをブラック・セキュリティ・ドメイン内の遅延耐性ネットワーキングプロセッサ528にフォワーディングする場合、バンドルヘッダは暗号化されたままでなければならない。遅延耐性ネットワークプロセッサ528は、遅延耐性ネットワーキングシステムのバンドル層プロトコルに従って、バンドルをどのようにルーティングするかを決定するために、暗号化されたバンドルヘッダを解析することができない。したがって、データ通信は進むことができない。
【0050】
したがって、
図5は、遅延耐性ネットワークシステムが完全にブラック・セキュリティ・ドメイン内で通信を実施することができないことを示す。特に、遅延耐性ネットワーキングシステムは、ブラック・セキュリティ・ドメイン内のバンドルヘッダを解読することができず、したがって、バンドルをルーティングすることができない。
【0051】
図6は、様々な実施形態による、解読の制限があるセキュリティドメイン内の通信を示すシステム600の概略図である。
図6のシステムは、レッド・セキュリティ・ドメインとブラック・セキュリティ・ドメインとを含む。
図6のブラック・セキュリティ・ドメインは、データを解読することも、(暗号化されていないリンク層及び/又はネットワーク層プロトコルヘッダを受信及びハンドリングすることを除いて)解読されたデータを受信又はハンドリングすることもできない。ノード間の通信チャネルは、ブラック・セキュリティ・ドメイン内にあり得る。
図6のレッド・セキュリティ・ドメインは、データを解読し、解読されたデータをハンドリングすることを許可される。
【0052】
図6に示されているように、起点コンピューター610、すなわち、ユーザ1は、宛先コンピューター640、すなわち、ユーザ2にデータを送ることを意図している。起点コンピューター610は、本明細書で開示されるように、デマンド通信をトラフィック・エンジニアリング・マネージャに送り、トラフィック・エンジニアリング・マネージャは、デマンド・ネットワーク・パラメータを満たす経路が現在利用可能でないと決定する。したがって、トラフィック・エンジニアリング・マネージャは、永続メモリに記憶するためにデータをバックボーン1 620にルーティングする。データは、データ記憶ユニット612から発信し得る。ユーザ1のレッド・セキュリティ・ドメイン内のプロセッサ614は、非限定的な例としてトランスポート層の上のデータのすべてを暗号化し、トランスポート層、ネットワーク層、及びリンク層のヘッダを暗号化されないままにするが、アプリケーション層データを暗号化するために、データ記憶ユニット612からデータを取り出し、それをセキュリティ・サービス・エンクレーブ616に渡す。次いで、ユーザ1は、データをバックボーン1 620に送る。パケットは、パケット交換を使用して、ユーザ1とバックボーン1 620との間の仲介ノードを、任意のそのような仲介ノード上の永続メモリにデータが記憶されることなく、通過し得る。特別な追加のプロトコル層は必要とされないか、又は使用されない。さらに、以下で説明されるように、バックボーン1 620は暗号化されたデータパケットをそのまま記憶するので、ユーザ1とバックボーン1 620との間の双方向通信は必要とされない。バックボーン1 620は、スイッチ622を介してデータを受信する。スイッチ622は、データをレッド・セキュリティ・ドメイン、ブラック・セキュリティ・ドメインに、又はバックボーン2 630に向けることができ、データはいずれの方法でも正しくルーティングされる。
【0053】
レッド・セキュリティ・ドメインに向けられる場合、データは、セキュリティ・サービス・エンクレーブ624を通過し、そこにおいて解読され、次いでレッド・セキュリティ・ドメイン内のプロセッサ626に移る。次いで、レッド・セキュリティ・ドメイン内のプロセッサ626は、レッド・セキュリティ・ドメイン内のデータ記憶ユニット627にデータを記憶する。次いで、レッド・セキュリティ・ドメイン内のプロセッサ626は、
図1~
図4を参照して本明細書で示され、説明されるように、トラフィック・エンジニアリング・マネージャと協働して、トランスポート層、ネットワーク層、及びリンク層のヘッダ内のデータを使用してパケットをルーティングする。
【0054】
データがブラック・セキュリティ・ドメイン内に残ることになる場合、スイッチ622は、それを、ブラック・セキュリティ・ドメイン内のプロセッサ628に渡す。ブラック・セキュリティ・ドメイン内のプロセッサ628は、パケットが受信された順序の指示に関連して、パケットをそのまま記憶する。例えば、パケットは、それらの受信順を指示する列挙と共に記憶され得る。パケットは、暗号化されたフォーマットで記憶される。いくつかの実施形態によれば、パケットの一部はブラック・セキュリティ・ドメインにおいて解読されない。しかしながら、この例によれば、トランスポート層、ネットワーク層、及びリンク層のヘッダは、暗号化されないままである。したがって、この例では、パケットをルーティングするために追加のプロトコル層が必要とされないか、又は使用されないので、ブラック・セキュリティ・ドメイン内のプロセッサ626は、
図1~
図4を参照して本明細書で示され、説明されるように、トラフィック・エンジニアリング・マネージャと協働して、パケットをルーティングするためにこれらのヘッダ内の情報を使用することができる。
【0055】
データがブラック・セキュリティ・ドメイン内に残るのか、バックボーン1 620内のレッド・セキュリティ・ドメインに渡されるのかにかかわらず、バックボーン1は、
図1~
図4を参照して本明細書で説明されるように、トラフィック・エンジニアリング・マネージャにデマンド通信を送り、トラフィック・エンジニアリング・マネージャは、宛先コンピューター640への直接の経路が利用可能でないと決定し、代わりに、永続メモリに記憶するためにデータをバックボーン2 630にルーティングし得る。パケットは、パケット交換を使用して、バックボーン1 620とバックボーン2 630との間の仲介ノードを、任意のそのような仲介ノード上の永続メモリにデータが記憶されることなく、通過し得る。パケットは、パケットがバックボーン1 620に到着したのと同じ順序で送出され得る。さらに、バックボーン1 620とバックボーン2 630との間の双方向通信は必要とされない。
【0056】
非限定的な例として、バックボーン2 630は、データをブラック・セキュリティ・ドメイン内に保持し、スイッチ632は、データをバックボーン2 630のブラック・セキュリティ・ドメイン内のプロセッサ638に渡す。バックボーン1 620の場合のように、バックボーン2 630のブラック・セキュリティ・ドメイン内のプロセッサ638は、データを、ブラック・セキュリティ・ドメイン内のデータ記憶ユニット639に、いかなる部分も解読することなく、パケットフォーマットで記憶する。この場合も、パケットは、受信順序の指示に関連して記憶され得る。
【0057】
バックボーン2 630のブラック・セキュリティ・ドメイン内のプロセッサ636は、
図1~
図4を参照して本明細書で示され、説明されるように、トラフィック・エンジニアリング・マネージャと協働して、宛先コンピューター640にパケットをルーティングするために、記憶されたパケットの暗号化されていないヘッダ内の情報を使用することができる。例えば、バックボーン2 630は、トラフィック・エンジニアリング・マネージャにデマンド通信を送り得、トラフィック・エンジニアリング・マネージャは、宛先コンピューター640への直接の、デマンドを承認する経路を見つけ得る。したがって、バックボーン2 630は、パケットを宛先コンピューター640に送る。パケットは、パケットがバックボーン2 630に到着したのと同じ順序で送出され得、これは、パケットがバックボーン1 620に到着したのと同じ順序であり得る。パケットは、パケット交換を使用して、バックボーン2 630と宛先コンピューター640との間の仲介ノードを、任意のそのような仲介ノード上の永続メモリにデータが記憶されることなく、通過し得る。
【0058】
宛先コンピューター640、すなわち、ユーザ2は、暗号化されたパケットを受信し、それらのパケットを、そのセキュリティ・サービス・エンクレーブ644に導き得、そこにおいて、パケットは解読され、例えば、アプリケーション層データを含む、ユーザ1によって暗号化されたトランスポート層の上のデータが解読される。セキュリティ・サービス・エンクレーブ644は、解読されたデータをレッド・セキュリティ・ドメイン内のプロセッサ646に渡し、プロセッサ646は、データを消費し、及び/又はユーザ2のデータ記憶ユニット647に記憶する。ユーザ2は、パケットがユーザ1によって直接送信されたかのように、パケットを受信し得る。例えば、パケットが任意のネットワークノードに記憶されたという指示が、パケット内にないことがある。
【0059】
図7は、様々な実施形態による、起点コンピューターから宛先コンピューターにコンピューターネットワークを介してデータを送る方法700のためのフローチャートである。方法700は、例えば、
図1及び
図6を参照して本明細書で示され、説明されるように、本明細書で開示されるシステムにおいて実装され得る。システムは、例えば、
図2及び
図3を参照して本明細書で示され、説明されるように、本明細書で開示されるノードを含み得る。
【0060】
ブロック702において、方法700は、例えば、
図1~
図4及び
図6を参照して本明細書で示され、説明されるように、トラフィック・エンジニアリング・マネージャにおいて、デマンド通信を受信する。デマンド通信は、起点コンピューターから宛先コンピューターに送られるべきであるデータのためのものであり得る。デマンド通信は、起点コンピューター又は仲介記憶ノードによって送られ得る。デマンド通信は、通信サイズ及び/又は1つ又は複数の必要なネットワークパラメータを指定し得る。
【0061】
ブロック704において、方法700は、デマンドを承認する、宛先コンピューターまでの経路が存在するかどうかを決定する。このプロセスは、
図1~
図4及び
図6を参照して本明細書で示され、説明されるように、トラフィック・エンジニアリング・マネージャによって実施され得る。経路が存在する場合、制御はブロック706に移り、データは、その経路に沿って宛先コンピューターに送られ、これは、永続メモリにデータを記憶しない仲介ノードを含み得る。データは、例えば、
図1~
図4及び
図6を参照して本明細書で示され、説明されるように送られ得る。データは、例えば、起点コンピューター又は仲介記憶ノードから送られ得る。データは、例えば、トランスポートプロトコル層など、特定のプロトコル層の上で暗号化され得る。データは、例えば、双方向通信を必要とすることなく送られ得る。方法700が、デマンドを承認する宛先コンピューターまでの経路が現在利用可能でないと決定した場合、制御はブロック708に移る。
【0062】
ブロック708において、方法700は、デマンドを承認する次のノード、例えば仲介記憶ノードまでの経路が存在するかどうかを決定する。このプロセスは、
図1~
図4及び
図6を参照して本明細書で示され、説明されるように、トラフィック・エンジニアリング・マネージャによって実施され得る。経路が存在しない場合、制御はブロック702に戻り、方法700の一部分は、データが宛先コンピューターに到達するまで繰り返す。方法700が、デマンドを承認する次のノードまでの経路が存在すると決定した場合、制御はブロック710に移る。
【0063】
ブロック710において、方法700は、データを次のノードに送る。データは、
図1~
図4及び
図6を参照して本明細書で示され、説明されるように送られ得る。データは、例えば、起点コンピューター又は仲介記憶ノードから送られ得る。データは、例えば、トランスポートプロトコル層など、特定のプロトコル層の上で暗号化され得る。データは、例えば、双方向通信を必要とすることなく送られ得る。
【0064】
ブロック712において、方法700は、データを次のノードに記憶する。データは、例えば、
図1~
図4及び
図6を参照して本明細書で示され、説明されるように記憶され得る。データは永続メモリに記憶され得、データは、到着順の指示に関連して、パケットフォーマットで、暗号化されて、記憶され得る。
【0065】
多くの代替実施形態及び変形形態が企図される。例えば、本明細書で使用される「パケット」という用語は、コンテキストに応じて、任意の層における任意のプロトコル・データ・ユニットを総称的に指し得る。コンテキストに応じて、パケットはネットワーク層パケットに限定されない。さらに、本明細書で言及されるプロトコル層は、非限定的な例である。一般に、実施形態は、ブラック・セキュリティ・ドメインが暗号化されていないルーティング情報を取得することができるように、例えば暗号化されたソースデータのカプセル化を許可する任意のプロトコルを、そのようなプロトコルが標準に基づくのかそうでないのかにかかわらず、利用し得る。さらに、本明細書で説明されるルーティング情報は、ヘッダに限定されない、プロトコル・データ・ユニットの任意の部分にあり得る。
【0066】
いくつかの例は、コンピュータープログラム又はプログラムのセットを使用して実施され得る。コンピュータープログラムは、アクティブと非アクティブ両方の様々な形態で存在することができる。例えば、コンピュータープログラムは、ソースコード、オブジェクトコード、実行可能コード、又は他のフォーマット、すなわち、ファームウェアプログラム、又はハードウェア記述言語(HDL)ファイルでのプログラム命令からなる、ソフトウェアプログラムとして存在することができる。上記のいずれも、圧縮形式又は非圧縮形式で、記憶装置及び信号を含む、一時的又は非一時的なコンピューター読み取り可能な媒体上で具現化され得る。例示的なコンピューター読み取り可能な記憶装置は、従来のコンピューターシステムRAM(ランダム・アクセス・メモリ)、ROM(読み取り専用メモリ)、EPROM(消去可能プログラマブルROM)、EEPROM(電気的消去可能プログラマブルROM)、及び磁気又は光ディスク又はテープを含む。
【0067】
本開示の態様は、本開示の実施形態による方法、装置(システム)、及びコンピュータープログラム製品のフローチャート図及び/又はブロック図を参照して本明細書で説明される。フローチャート図及び/又はブロック図の各ブロックと、フローチャート図及び/又はブロック図中のブロックの組合せとは、プロセッサによって実行されるコンピューター読み取り可能なプログラム命令を使用して実装され得ることが理解されよう。
【0068】
これらのコンピューター読み取り可能なプログラム命令は、コンピューター又は他のプログラマブルデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定される機能/動作を実装するための手段を作成するように機械を製造するために、汎用コンピューター、専用コンピューター、又は他のプログラマブルデータ処理装置のプロセッサに提供され得る。これらのコンピューター読み取り可能なプログラム命令はまた、命令が記憶されたコンピューター読み取り可能な記憶媒体が、フローチャート及び/又はブロック図の1つ又は複数のブロックで指定された機能/動作の態様を実装する命令を含む製造物品を備えるように、コンピューター、プログラマブルデータ処理装置、及び/又は他の装置を特定の方法で機能させることができるコンピューター読み取り可能な記憶媒体に記憶され得る。
【0069】
実施形態では、コンピューター読み取り可能なプログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、或いは、スモールトーク、C++などのオブジェクト指向プログラミング言語と、Cプログラミング言語又は同様のプログラミング言語などの手続き型プログラミング言語とを含む、1つ又は複数のプログラミング言語の任意の組合せで書かれたソースコード又はオブジェクトコードのいずれかであり得る。コンピューター読み取り可能なプログラム命令は、完全にユーザのコンピューター上で、部分的にユーザのコンピューター上で、独立したソフトウェアパッケージとして、部分的にユーザのコンピューター上且つ部分的にリモートコンピューター上で、又は完全にリモートコンピューター若しくはサーバ上で実行され得る。
【0070】
本明細書で使用される「A又はB」及び「A及び/又はB」という用語は、A、B、又は{A及びB}を包含することを意図している。さらに、「A、B、又はC」及び「A、B、及び/又はC」という用語は、単一の項目、項目のペア、又はすべての項目、すなわち、A、B、C、{A及びB}、{A及びC}、{B及びC}、及び{A及びB及びC}のすべてを包含することを意図している。本明細書で使用される「又は」という用語は、「及び/又は」を意味する。
【0071】
本明細書で使用される「X、Y、及びZのうちの少なくとも1つ」、「X、Y、又はZのうちの少なくとも1つ」、「X、Y、及びZのうちの少なくとも1つ又は複数」、「X、Y、又はZのうちの少なくとも1つ又は複数」、「X、Y、及び/又はZのうちの少なくとも1つ又は複数」、又は「X、Y、及び/又はZのうちの少なくとも1つ」などの言語は、単一の項目(例えば、Xのみ、又はYのみ、又はZのみ)と複数の項目(例えば、{X及びY}、{X及びZ}、{Y及びZ}、又は{X、Y、及びZ})の両方を含むことを意図している。「のうちの少なくとも1つ」という句及び同様の句は、可能な各項目が存在しなければならないという要件を伝えることを意図していないが、可能な各項目は存在し得る。
【0072】
本明細書で提示され、特許請求される技法は、参照され、本技術分野を明らかに改善する実用的な性質の有形物及び具体例に適用され、したがって、抽象的、無形、又は純粋に理論的ではない。さらに、本明細書の最後に添付された請求項が、「...[機能]を[実施]するための手段」又は「...[機能]を[実施]するためのステップ」として指定された1つ又は複数の要素を含む場合、そのような要素が米国特許法112条(f)の下で解釈されるべきであることが意図されている。しかしながら、任意の他の方法で指定された要素を含む任意の請求項については、そのような要素が米国特許法112条(f)の下で解釈されるべきではないことが意図されている。
【0073】
本発明はその例示的な例を参照して説明されたが、当業者は、真の精神及び範囲から逸脱することなく、説明された例の様々な修正を行うことができる。本明細書で使用される用語及び説明は、単に例示として記載され、限定を意味するものではない。特に、本方法は例によって説明されたが、本方法のステップは、示されている順序とは異なる順序で、又は同時に実施され得る。当業者であれば、以下の請求項及びそれらの均等物において定義される精神及び範囲内で、これら及び他の変形形態が可能であることを認識するであろう。
【符号の説明】
【0074】
100 地上及び宇宙を本拠としたネットワークシステム
102 バックボーンノード
104 バックボーンノード
200 宇宙を本拠としたノード
202 パッケージストレージ
210 レッド制御エンクレーブ
212 コントローラー
214 プロセッサ
216 イーサネットスイッチ
220 レッド・ユーザ・エンクレーブ
222 クライアント
224 データ記憶ユニット、レッド記憶ユニット
226 イーサネットスイッチ
230 セキュリティ・サービス・エンクレーブ
231 制御及び管理暗号
232 制御及び管理暗号
233 スイッチ制御及びステータスガード
234 ミッション暗号
235 制御及びステータスガード
237 モデム制御及びステータスガード
240 ブラックエンクレーブ、ブラック・ユーザ・エンクレーブ
242 データ記憶ユニット
244 スイッチ
246 モデム
300 概略図
302 パケット記憶ユニット
304 パケット通信チャネル、通信チャネル
400 ネットワーク
402 コンピューター
404 コンピューター
420 ノード
430 通信
500 概略図
510 ユーザ1
512 データ記憶ユニット
514 遅延耐性ネットワークプロセッサ
516 セキュリティ・サービス・エンクレーブ
520 バックボーン1
522 スイッチ
524 セキュリティ・サービス・エンクレーブ
526 遅延耐性ネットワークプロセッサ、遅延耐性ネットワーキングプロセッサ
528 遅延耐性ネットワークプロセッサ、遅延耐性ネットワーキングプロセッサ
530 バックボーン
600 システム
610 起点コンピューター
612 データ記憶ユニット
614 プロセッサ
616 セキュリティ・サービス・エンクレーブ
620 バックボーン1
622 スイッチ
624 セキュリティ・サービス・エンクレーブ
626 プロセッサ
627 データ記憶ユニット
628 プロセッサ
630 バックボーン2
632 スイッチ
636 プロセッサ
638 プロセッサ
639 データ記憶ユニット
640 宛先コンピューター
644 セキュリティ・サービス・エンクレーブ
646 プロセッサ
647 データ記憶ユニット
700 方法
【外国語明細書】