(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-07
(54)【発明の名称】ネットワークコンピューティング環境における最適パス計算オフロード
(51)【国際特許分類】
H04L 45/655 20220101AFI20240131BHJP
H04L 45/42 20220101ALI20240131BHJP
【FI】
H04L45/655
H04L45/42
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023546010
(86)(22)【出願日】2021-02-03
(85)【翻訳文提出日】2023-09-28
(86)【国際出願番号】 US2021016467
(87)【国際公開番号】W WO2022169446
(87)【国際公開日】2022-08-11
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】521076948
【氏名又は名称】アルカス インコーポレイテッド
(74)【代理人】
【識別番号】100067736
【氏名又は名称】小池 晃
(74)【代理人】
【識別番号】100192212
【氏名又は名称】河野 貴明
(74)【代理人】
【識別番号】100200001
【氏名又は名称】北原 明彦
(72)【発明者】
【氏名】パイ,ナリナッシュ
(72)【発明者】
【氏名】シュー,フェン
(72)【発明者】
【氏名】アリース,エッベン
(72)【発明者】
【氏名】アヤンガー,アルティ
(72)【発明者】
【氏名】パテル,ケユル
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA11
5K030HC01
5K030HD03
5K030KA05
5K030LB05
5K030LE03
(57)【要約】
ネットワークコンピューティング環境において最適パス計算をオフロードする為のシステム、方法、及びデバイスを提供する。方法は、最適パスコントローラにより、デバイスにより学習された複数のパスのリストをメモリ内に記憶することを含み、前記複数のパスのそれぞれは、前記デバイスから宛先デバイスへデータを送信する為のルートである。前記方法は、前記最適パスコントローラにより、前記デバイスからメッセージを受信することを含む。前記方法は、前記最適パスコントローラにより、最適パス計算処理を行い、前記最適パス計算処理が前記デバイスから前記最適パスコントローラにオフロードされるように前記メッセージに基づいて1以上の最適パスを識別することを含む。前記方法は、前記1以上の最適パスを前記デバイスに送信することを含む。
【選択図】
図2
【特許請求の範囲】
【請求項1】
最適パスコントローラにより、デバイスにより学習された複数のパスのリストをメモリ内に記憶し、前記複数のパスのそれぞれは、前記デバイスから宛先デバイスへデータを送信する為のルートであり、
前記最適パスコントローラにより、前記デバイスからメッセージを受信し、
前記最適パスコントローラにより、最適パス計算処理を行い、前記最適パス計算処理が前記デバイスから前記最適パスコントローラにオフロードされるように前記メッセージに基づいて1以上の最適パスを識別し、
前記1以上の最適パスを前記デバイスに送信する、
ことを含むことを特徴とする方法。
【請求項2】
前記デバイスがルータ又はスイッチであることを特徴とする請求項1に記載の方法。
【請求項3】
前記デバイスがボーダゲートウェイプロトコル(BGP)を実行することを特徴とする請求項1に記載の方法。
【請求項4】
さらに、前記最適パスコントローラにより計算された前記1以上の最適パスに基づいて、前記複数のパスのリスト内の任意のパスの次ホップを更新することを含むことを特徴とする請求項1に記載の方法。
【請求項5】
前記デバイスから前記メッセージを受信することが、前記デバイスから複数のメッセージを非同期的に受信することを含み、そして、
前記最適パス計算を実行することが、前記複数のメッセージに基づいてネットワーク層到達性情報(NLRI)の最新バージョン上で前記最適パス計算を実行することを含む、
ことを特徴とする請求項1に記載の方法。
【請求項6】
前記複数のメッセージのそれぞれが、単一のNLRIの為の前記デバイスから受信した全てのメッセージにわたって一意的な識別を有するバージョン番号フィールドを含むことを特徴とする請求項5に記載の方法。
【請求項7】
前記方法がさらに、
ポリシー変更に応答して前記最適パス計算を再度実行し、
前記最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、
前記結果メッセージを前記デバイスに返信する、
ことを含むことを特徴とする請求項1に記載の方法。
【請求項8】
前記方法がさらに、
前記最適パスコントローラにより、前記デバイスにより学習された前記複数のパスのリスト内のパスの次ホップ到達性更新を受信し、
前記次ホップ到達性更新を受信したことに応答して前記最適パス計算を再度実行し、
前記最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、
前記結果メッセージを前記デバイスに返信する、
ことを含むことを特徴とする請求項1に記載の方法。
【請求項9】
前記方法がさらに、
前記デバイスが再起動したことを判定し、
前記最適パスコントローラにより、前記デバイスにより学習された前記複数のパスのリストを維持し、
前記デバイスが再起動したと判定したことに応答して前記デバイスにより学習された前記複数のパスのリスト内の各パスを古いとマーキングし、
前記デバイスが新しいパスを再度学習したことに応答して前記デバイスから前記新しいパスを受信し、そして、
前記複数のパスのリストから前記新しいパスと一致する古いパスをパージする、
ことを含むことを特徴とする請求項1に記載の方法。
【請求項10】
前記最適パス計算が前記デバイス及び前記デバイスのネットワーク内の他のデバイス用にカスタマイズされることを特徴とする請求項1に記載の方法。
【請求項11】
システムが、
ネットワーク内のデバイスと、
前記デバイスと通信する最適パスコントローラと、
を含み、
前記デバイスは、前記デバイスから宛先デバイスに情報を送信するように構成され、
前記最適パスコントローラは、非一時的コンピュータ可読記憶媒体内に記憶された命令を実行するように構成可能なプロセッサを含み、
前記命令が、
前記デバイスにより学習された複数のパスのリストをメモリ内に記憶し、前記複数のパスのそれぞれが、前記デバイスから宛先デバイスにデータを送信する為のルートであり、
前記デバイスからメッセージを受信し、
最適パス計算処理を行い、前記最適パス計算処理が前記デバイスから前記最適パスコントローラにオフロードされるように前記メッセージに基づいて1以上の最適パスを識別し、そして、
前記デバイスに前記1以上の最適パスを送信する、
ことを含むことを特徴とするシステム。
【請求項12】
前記デバイスがルータ又はスイッチであり、そして、前記デバイスがボーダゲートウェイプロトコル(BGP)を実行することを特徴とする請求項11に記載のシステム。
【請求項13】
前記命令がさらに、前記最適パスコントローラにより計算された前記1以上の最適パスに基づいて、前記複数のパスのリスト内の任意のパスの次ホップを更新することを含むことを特徴とする請求項11に記載のシステム。
【請求項14】
前記命令は、
前記デバイスから前記メッセージを受信することが、前記デバイスから複数のメッセージを非同期的に受信することを含み、そして、
前記最適パス計算を実行することが、前記複数のメッセージの最新バージョン上で前記最適パス計算を実行することを含む、
ことを特徴とする請求項11に記載のシステム。
【請求項15】
前記命令がさらに、
ポリシー変更に応答して前記最適パス計算を再度実行し、
前記最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、
前記結果メッセージを前記デバイスに返信する、
ことを含むことを特徴とする請求項11に記載のシステム。
【請求項16】
1以上のプロセッサにより実行される命令を記憶する非一時的コンピュータ可読記憶媒体であって、
前記命令が、
前記デバイスにより学習された複数のパスのリストを記憶し、前記複数のパスのそれぞれは、前記デバイスから宛先デバイスに情報を送信する為のルートであり、
前記デバイスからメッセージを受信し、
最適パス計算処理を行い、前記最適パス計算処理が前記デバイスから最適パスコントローラにオフロードされるように前記メッセージに基づいて1以上の最適パスを識別し、そして、
前記1以上の最適パスを前記デバイスに送信する、
ことを含むことを特徴とする非一時的コンピュータ可読記憶媒体。
【請求項17】
前記命令がさらに、
ポリシー変更に応答して前記最適パス計算を再度実行し、
前記最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、
前記結果メッセージを前記デバイスに送信する、
ことを含むことを特徴とする請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項18】
前記命令がさらに、
前記最適パスコントローラにより、前記デバイスにより学習された前記複数のパスのリスト内のパスの次ホップ到達性更新を受信し、
前記次ホップ到達性更新を受信したことに応答して前記最適パス計算を再度実行し、
前記最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、
前記結果メッセージを前記デバイスに送信する、
ことを含むことを特徴とする請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項19】
前記命令がさらに、
前記デバイスが再起動したことを判定し、
前記最適パスコントローラにより、前記デバイスにより学習された前記複数のパスのリストを維持し、
前記デバイスが再起動したと判定したことに応答して前記デバイスにより学習された前記複数のパスのリスト内の各パスを古いとマーキングし、
前記デバイスが新しいパスを再度学習したことに応答して前記デバイスから前記新しいパスを受信し、
前記複数のパスのリストから前記新しいパスと一致する古いパスをパージする、
ことを含むことを特徴とする請求項16に記載の非一時的コンピュータ可読記憶媒体。
【請求項20】
前記最適パス計算が前記デバイス及び前記デバイスのネットワーク内の他のデバイス用にカスタマイズされることを特徴とする請求項16に記載の非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、コンピューティングネットワークに関し、特に、ネットワークデバイス間の通信の為の最適パス計算に関する。
【背景技術】
【0002】
ネットワークコンピューティングとは、複数のコンピュータ又はノードが連携し、ネットワークを介して相互に通信するための手段である。これには、ワイドエリアネットワーク(wide area network:WAN)とローカルエリアネットワーク(local area network:LAN)とがある。ワイドエリアネットワークとローカルエリアネットワークは、何れも、コンピュータ間の相互接続を可能にする。ローカルエリアネットワークは、通常、家庭、ビジネス、学校等、より小規模でローカライズされたネットワークに使用される。ワイドエリアネットワークは、都市等の広域をカバーし、異なる国のコンピュータを接続することもできる。通常、ローカルエリアネットワークは、ワイドエリアネットワークよりも高速で安全であるが、ワイドエリアネットワークを使用すると広範囲の接続が可能になる。通常、ローカルエリアネットワークは、展開されている組織内で所有、制御、及び管理され、一方、ワイドエリアネットワークでは、通常、公衆インターネット経由又は電気通信プロバイダによって確立されたプライベート接続を介して、構成要素である2以上のローカルエリアネットワークを接続する必要がある。
【0003】
ローカルエリアネットワークとワイドエリアネットワークによって、コンピュータを相互に接続し、データやその他の情報を転送できる。ローカルエリアネットワーク及びワイドエリアネットワークの何れにおいても、ある演算インスタンスから別の演算インスタンスにデータを渡すパスを決定する手段が必要である。これは、ルーティングとも呼ばれる。ルーティングとは、ネットワーク内で、複数のネットワーク間で、又は複数のネットワークに亘って、トラフィックのパスを選択するプロセスである。ルーティングプロセスは、通常、様々なネットワーク宛先へのルートの記録を保持するルーティングテーブルに基づいて、転送を指示する。ルーティングテーブルは、管理者が指定してもよく、ネットワークトラフィックを監視して学習してもよく、ルーティングプロトコルの支援を受けて構築してもよい。
【0004】
小規模ネットワークでは、手動で構成されたルーティングテーブルを使用して、あるコンピュータから別のコンピュータへの情報の転送方法を決定できる。ルーティングテーブルは、開始コンピュータと最終宛先コンピュータとの間の最も効率的又は最も望ましいパスを示す「最適パス」のリストを含むことができる。公衆インターネットに接続されたネットワークを含む大規模なネットワークは、複雑なトポロジに依存していることがあり、トポロジは急速に変化する可能性があるため、ルーティングテーブルを手動で構築することは不可能である。動的ルーティングは、ルーティングプロトコルによって伝送される情報に基づいてルーティングテーブルを自動的に構築することによって、この問題を解決しようとするものである。動的ルーティングにより、ネットワークは、略自律的に動作して、ネットワークの障害やブロックを回避できる。ネットワークデバイス間の最適パスを決定するための規則又は命令を提供する複数のルーティングプロトコルが存在する。動的ルーティングプロトコル及びアルゴリズムの例には、ルーティング情報プロトコル(Routing Information Protocol:RIP)、オープンショーテストパスファースト(Open Shortest Path First:OSPF)、中間システム-中間システム(Intermediate System - Intermediate System:IS-IS)、及びボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)等がある。
【0005】
幾つかの具体例では、パス選択は、複数のルートにルーティングメトリックを適用して、最適ルートを選択又は予測することを含む。殆どのルーティングアルゴリズムは、一度に1つのネットワークパスのみを使用する。マルチパスルーティング技術は、複数の代替パスの使用を可能にする。コンピュータネットワークでは、ルーティングアルゴリズムを使用して、2つの演算インスタンス間の最適パスを予測できる。ルーティングアルゴリズムは、帯域幅、ネットワーク遅延、ホップカウント、パスコスト、負荷、最大転送単位、信頼性、及び通信コスト等の複数の要因に基づくものであってもよい。ルーティングテーブルには、最適パスのリストが格納される。トポロジデータベースは、最適パスのリストを格納でき、更に追加情報を格納できる。
【0006】
一部のネットワークでは、最適パスの選択を担当するエンティティが単一のエンティティではないという事実のために、ルーティングが複雑になる。代わりに、複数のエンティティが最適パス又は単一パスのイベント部分の選択に関与する。インターネット上のコンピュータネットワーキングのコンテキストにおいて、インターネットは、インターネットサービスプロバイダ(Internet Service Provider:ISP)のような自律システム(autonomous system:AS)に分割される。各自律システムは、そのネットワークを含むルートを制御する。自律システムレベルのパスは、ボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)に基づいて選択される。各自律システムレベルのパスには、一連の自律システムが含まれており、この自律システムを経由して、ある演算インスタンスから別の演算インスタンスに情報パケットが送信される。各自律システムは、複数のパスを有することができ、この複数のパスから、隣接する自律システムによって提供される複数のパスを選択できる。
【発明の概要】
【発明が解決しようとする課題】
【0007】
ソフトウェア定義ネットワークの新時代において、ネットワーク内の動作を制御及びカスタマイズするより高い能力への需要が増加している。BGPは、最適パス、属性、及びアドバタイズメントの選択の制御にポリシーを使用することを容易にするように設計されている。しかしながら、最適パスアルゴリズム自体は、標準化されて本質的に固定されるので、BGP上に更なるカスタマイズ性を実装する需要が残っている。
【課題を解決するための手段】
【0008】
以上を考慮して、ここでは、1つの演算インスタンス及び他の演算インスタンス間の最も所望なパスを識別する為のカスタムアルゴリズムを自由に実装することができる外部エンティティに最適パスの決定をオフロードする為のシステム、方法、及びデバイスを開示する。
【0009】
本開示の非限定的及び非包括的な実施形態は、以下の図を参照して説明され、これらの図において、同一の参照符号は、特段の指定がない限り、全ての図を通して同一の部分を指す。以下の説明及び添付の図面を参照することにより、本開示の利点がより明瞭に理解される。
【図面の簡単な説明】
【0010】
【
図1】インターネット上で通信するネットワークデバイスのシステムの概略図である。
【
図2】個別のデバイスから最適パスコントローラに最適パス計算をオフロードするシステムの概略図である。
【
図3】ボーダゲートウェイプロトコル(BGP)を実行するデバイス内の状態マシンにより実行されるプロセスフローの概略図である。
【
図4】最適パス情報のストレージをデータストアにオフロードするシステムの概略図である。
【
図5】最適パス情報のストレージをデータストアにオフロードするシステムの概略図である。
【
図6】最適パス情報のストレージをデータストアにオフロードするシステムの概略図である。
【
図7】パス計算を最適パスコントローラにオフロードする方法のフローチャートのブロック図である。
【
図8】例示的演算デバイスのコンポーネントを図示する概略図である。
【発明を実施するための形態】
【0011】
ここでは、データ伝送の改良されたルーティングの為のシステム、方法、及びデバイスを開示する。ソフトウェア定義ネットワークの新時代において、コンピュータネットワーク内の動作を制御及びカスタマイズするより高い能力への需要が増加している。ここで、外部エンティティに最適パスの決定をオフロードする為のシステム、方法、及びデバイスを開示する。その後、外部エンティティは、インターネット上で1つの演算インスタンスから他の演算インスタンスへデータを転送する最も所望なパスを識別するカスタムアルゴリズムを自由に実装することができる。
【0012】
開示の実施形態は、インターネット上で第1のルータから宛先ルータへデータを送信する最適パスを識別する為に展開される。開示の実施形態は、ルーティングパスを決定する為のボーダゲートウェイプロトコル(BGP)標準化アルゴリズムに対する外部エンティティとして機能する最適パスコントローラ(best path controller:BPC)を含む。最適パスコントローラは、BGPを実行するホストと同じホスト上に共同設置することができる。代替的に、最適パスコントローラは、異なるホスト上に設置され、1以上のBGPインスタンスとして機能することもできる。
【0013】
BGPインスタンスは、ネットワーク内で情報をルーティングする為のソフトウェアデーモンである。BGPインスタンスは、スイッチ、ルータ、又はスイッチ又はルータをエミュレートする仮想環境(例えば、ホストデバイス上の仮想マシン)内で実行することができる。高水準で、BGPインスタンスは、プレフィックスについて学習した全てのパスを最適パスコントローラに送信する。最適パスコントローラは、これらのパスの中から最適パスのセットを応答する。最適パスコントローラは、任意のパスの次ホップ及び属性を変更することが許可されている。最適パスを受信すると、BGPインスタンスは、ローカルルーティング情報ベース(Routing Information Base:RIB)を更新し、最適パスをネイバ(neighbors)にアドバタイズ(advertise)する。
【0014】
実施形態において、方法は最適パスコントローラにより実行される。方法は、BGPインスタンスが実行されている個別のデバイス(ルータ及びスイッチ等)から最適パスコントローラに最適パス計算をオフロードすることを可能にする。方法は、最適パスコントローラにより、デバイスにより学習された複数のパスのリストを記憶することを含み、複数のパスは、デバイスから宛先デバイスへ情報を送信する為のルートである。方法は、最適パスコントローラにより、デバイスからメッセージを受信することを含む。実施形態において、メッセージは、ネットワーク層到達性情報(Network Layer Reachability Information:NLRI)メッセージである。方法は、最適パスコントローラにより、メッセージに基づいて1以上の最適パスを識別する最適パス計算を処理することを含む。方法は、最適パス計算処理をデバイスから最適パスコントローラにオフロードするように、デバイスに1以上の最適パスを送信することを含む。
【0015】
スイッチ(スイッチングハブ、ブリッジングハブ、又はMACブリッジとも呼ばれる。)は、ネットワークを作成する。殆どの内部ネットワークは、建物又はキャンパス内のコンピュータ、プリンタ、電話機、カメラ、照明、及びサーバを接続するためにスイッチを使用する。スイッチは、ネットワークデバイスが相互に効率的に通信できるようにするコントローラとして機能する。スイッチは、パケットスイッチングを使用してコンピュータネットワーク上のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。ネットワークスイッチは、ハードウェアアドレスを使用して、開放型システム間相互接続(Open Systems Interconnection:OSI)モデルのデータリンクレイヤ(レイヤ2)でデータを処理及び転送する為にハードウェアアドレスを使用するマルチポートネットワークブリッジである。一部のスイッチは、ルーティング機能を追加で組み込むことにより、ネットワークレイヤ(レイヤ3)でデータを処理することもできる。このようなスイッチは、一般にレイヤ3スイッチ又はマルチレイヤスイッチと呼ばれている。
【0016】
ルータは、ネットワークを接続する。スイッチ及びルータは、類似する機能を実行するが、ネットワーク上で実行する機能はそれぞれ異なる。ルータは、コンピュータネットワーク間でデータパケットを転送するネットワークデバイスである。ルータは、インターネット上でトラフィック誘導機能(traffic directing function)を実行する。ウェブページ、電子メール、又はその他の形式の情報等、インターネットを介して送信されるデータは、データパケットの形式で送信される。パケットは、通常、インターネットワーク(例えばインターネット)を構成するネットワークを介してあるルータから別のルータに転送されて、最終的に宛先ノードに到達する。ルータは、異なるネットワークからの複数のデータラインに接続されている。データパケットがラインの1つに到着すると、ルータは、パケット内のネットワークアドレス情報を読み取り、最終的な宛先を判定する。次に、ルータは、ルータのルーティングテーブル又はルーティングポリシの情報を使用して、行程上の次のネットワークにパケットを誘導する。BGPスピーカは、ボーダゲートウェイプロトコル(BGP)により有効にされたルータである。
【0017】
ルート制御は、インターネット接続性の向上、帯域幅コストの削減、及びネットワーク間の全体的な動作の削減を目的としたネットワーク管理の一種である。一部のルート制御サービスは、ハードウェアベース及びソフトウェアベースの一連の製品及びサービスを含み、これらは、連携して全体的なインターネットパフォーマンスを向上させ、利用可能なインターネット帯域幅を最小限のコストで微調整(finetune)する。ネットワーク又は自律システムが複数のプロバイダからインターネット帯域幅を調達するシナリオでは、ルート制御を成功させることができる。ルート制御は、データ伝送のための最適なルートの選択を援助できる。
【0018】
一部のネットワーク通信システムは、数千の処理ノードを有する大規模な企業レベルのネットワークである。数千もの処理ノードが複数のインターネットサービスプロバイダ(Internet Service Provider:ISP)からの帯域幅を共有し、大量のインターネットトラフィックを処理できる。このようなシステムは、非常に複雑になる可能性があり、許容できるインターネットパフォーマンスを得るために適切に構成する必要がある。システムが最適なデータ伝送のために適切に構成されていないと、インターネットアクセスの速度が低下し、システムの帯域幅消費及びトラフィックが増大する可能性がある。この問題に対し、一連のサービスを実装することによって、これらの懸念を排除又は軽減できる。この一連のサービスは、ルーティング制御とも呼ばれる。
【0019】
ルーティング制御メカニズムの一実施形態は、ハードウェアとソフトウェアとから構成される。ルーティング制御メカニズムは、インターネットサービスプロバイダ(ISP)との接続を介して全ての発信トラフィック(outgoing traffic)を監視する。ルーティング制御メカニズムは、データの効率的な伝送のための最適パスの選択を支援する。ルーティング制御メカニズムは、全てのISPの性能及び効率を計算し、適用可能な領域において最適に動作したISPのみを選択できる。ルート制御デバイスは、コスト、パフォーマンス、及び帯域幅に関する定義済みのパラメータに従って構成できる。
【0020】
データ伝送のための最適パスを決定するための公知のアルゴリズムは、ボーダゲートウェイプロトコル(Border Gateway Protocol:BGP)と呼ばれる。BGPは、インターネット上の自律システムのルーティング情報を提供するパスベクトル(path-vector)プロトコルである。BGPが正しく構成されていないと、利用可能性及び安全性に深刻な問題が発生する可能性がある。更に、攻撃者は、BGPルート情報を変更することにより、トラフィックの大規模なブロックをリダイレクトして、トラフィックが目的の宛先に到達する前に、トラフィックを特定のルータに到達させることができる。BGP最適パスアルゴリズムを実装することによって、トラフィック転送用のインターネットプロトコル(Internet Protocol:IP)ルーティングテーブルにインストールする最適パスを決定できる。BGPルータは、同じ宛先への複数のパスを受信するように構成できる。
【0021】
BGP最適パスアルゴリズムは、最初の有効なパスを現在の最適パスとして割り当てる。BGP最適パスアルゴリズムは、BGPが有効パスのリストの最後に到達するまで、リスト内の次のパスと最適パスを比較する。このリストは、最適パスを決定するために使用される規則を提供する。例えば、リストは、重みが最も高いパスの優先、ローカル優先度がないパスの優先、ネットワーク又はアグリゲーションBGPによってローカルに発生したパスの優先、最短パスの優先、最小のマルチエグジットディスクリミネータ(multi-exit discriminator)を有するパスの優先等の指示情報を含むことができる。BGP最適パス選択プロセスは、カスタマイズできる。
【0022】
BGPルーティングのコンテキストでは、各ルーティングドメインは、自律システム(autonomous system:AS)と呼ばれる。BGPは、2つのルーティングドメインを接続するためのインターネット経由のパスの選択を支援する。BGPは、通常、最短ASパスと呼ばれる、最小数の自律システムを通過するルートを選択する。一実施形態では、一旦BGPが有効にされると、ルータは、BGPネイバからインターネットルートのリストをプルし、ここで、BGPネイバは、ISPであってもよい。次に、BGPは、リストを精査して、最短ASパスを有するルートを発見する。これらのルートは、ルータのルーティングテーブルに入力してもよい。通常、ルータは、ASへの最短パスを選択する。BGPは、パス属性を使用して、トラフィックを特定のネットワークにどのようにルーティングするかを決定する。
【0023】
しかしながら、BGPには多数の既知の問題がある。いくつかのインスタンスにおいて、ルーティングテーブルの発展に関して重大な問題がある。例えば、単一/16ネットワークであったネットワークを分割するとユーザが決定した時に、ユーザは新しいルートをアドバタイズし始める可能性がある。このことが起こると、インターネット上の全てのルータは、それぞれの新しいルートを受信する。ユーザは、複数のルートを単一のアドバタイズメントに集合させる又は組み合わせることを強制されることがある。さらに、ユーザがインターネットをアドバタイズする懸念がある。大規模なISPの顧客が、全てをアドバタイズすることを選択し、ISPが複数のルートを受け入れた場合、全てのインターネットトラフィックが小規模な顧客のASに送信される。さらに、BGPは、信頼できないと思われるルートを抑制するメカニズムを有する。頻繁に変更される又は移り変わるルートは通常、信頼できないと識別される。ルートが頻繁に変更されると、ルートが消失して再現される度に更新処理をすることにより全てのインターネットルート上の負荷が増大する。
【0024】
追加的に、ソフトウェア定義ネットワークの時代において、オペレータは、ネットワークのビヘイビアを制御及びカスタマイズするより優れた能力を求めている。BGPルーティングプロトコルは、最適パス、属性、及びアドバタイズメントの選択を制御するポリシーの使用を容易にする為に設計された。しかしながら、最適パスアルゴリズム自体は、標準化され、本質的に固定される。上記の観点から、BGPが目的に適合するカスタムアルゴリズムを自由に実装することができる外部エンティティに最適パスの決定をオフロードするシステム、方法、デバイス、及び手段をここに開示する。ここでは最適パスコントローラ(BPC)と呼ばれる外部エンティティは、BGPが実行されているホストと同じホスト上に共同設置することができ、又は、異なるホスト上に設置することができ、1以上のBGPインスタンスとして機能する。
【0025】
実施形態において、BGPインスタンスは、スイッチ又はルータ上で実行されるBGPスピーカの形式であることができる。高水準で、BGPインスタンスは、プレフィックスについて学習した全てのパスを最適パスコントローラに送信する。最適パスコントローラは、これらのパスの中から最適パスのセットを返答する。最適パスコントローラは、任意のパスの次ホップ及び属性を変更することが許可されている。最適パスを受信した後、BGPインスタンスは、ローカルルーティング情報ベース(Routing Information Base:RIB)を更新し、最適パスを適用可能なネイバにアドバタイズする。
【0026】
本開示に基づく原理の理解を深めるために、以下では、図示の実施形態を参照し、特定の表現を用いてこれを説明する。但し、これは、本開示の範囲を限定することを意図するものではない。ここに例示する本開示の特徴の任意の変更及び更なる修正、並びにここに例示する本開示の原理の任意の追加的な適用は、当業者が本開示に基づいて容易に想到できるものであり、特許請求の範囲に含まれる。
【0027】
光不足の環境において映像を生成するための構造、システム、及び方法を開示及び説明する前に、本開示は、ここに開示される特定の構造、構成、プロセスステップ、及び材料に限定されず、そのような構造、構成、プロセスステップ、及び材料を変更してもよいことを明記する。また、本開示の範囲は、特許請求の範囲及びその均等物によってのみ制限されるものであるため、ここで使用される用語は、特定の実施形態を説明する目的でのみ使用され、限定を意図しないことは当然である。
【0028】
本開示の主題を記述し特許請求する際には、以下に記載する定義に従って、以下の用語を使用する。
【0029】
本明細書及び特許請求の範囲において使用する、単数形(冠詞「a」、「an」、及び「the」)は、文脈における特段の指定がない限り、複数の指示対象を含む。
【0030】
ここで使用する語句「備える」、「有する」、「含む」、「特徴とする」、及びこれらの文法的等価物は、記載されていない追加的な要素又は方法工程を除外しない非排他的又は制限のない用語である。
【0031】
ここで使用する語句「~から成る」及びその文法的等価物は、請求項に記載されていない任意の要素又は工程を除外する。
【0032】
ここで使用される語句「実質的に~から成る」及びその文法的等価物は、特許請求の範囲を、特定された材料又は工程、並びに特許請求された開示の基本的かつ新規な特性又は特徴に実質的に影響しない材料又は工程に限定する。
【0033】
以下の説明は、図面を参照し、
図1は、デバイスをインターネットに接続するためのシステム100の概略図である。システム100は、スイッチ106によって接続された複数のローカルエリアネットワーク110を含む。複数のローカルエリアネットワーク110のそれぞれは、ルータ112によって、公衆インターネットを介して互いに接続可能である。
図1に示す例示的なシステム100は、2つのローカルエリアネットワーク110を有する。但し、公衆インターネットを介して、より多くのローカルエリアネットワーク110を互いに接続してもよい。各ローカルエリアネットワーク110は、スイッチ106によって互いに接続された複数の演算デバイス108を含む。複数の演算デバイス108は、例えば、デスクトップコンピュータ、ラップトップ、プリンタ、サーバ等を含むことができる。ローカルエリアネットワーク110は、ルータ112によって、公衆インターネットを介して他のネットワークと通信できる。ルータ112は、複数のネットワークを互いに接続する。ルータ112は、インターネットサービスプロバイダ102に接続されている。インターネットサービスプロバイダ102は、1以上のネットワークサービスプロバイダ104に接続されている。ネットワークサービスプロバイダ104は、
図1に示すように、他のローカルネットワークサービスプロバイダ104と通信を行う。
【0034】
スイッチ106は、パケットスイッチング(packet switching)を使用してローカルエリアネットワーク110内のデバイスを接続し、これによりデータが受信され、処理され、宛先デバイスに転送される。スイッチ106は、例えば、プリンタを宛先として、コンピュータからデータを受信するように構成できる。スイッチ106は、データを受信し、データを処理し、データをプリンタに送信できる。スイッチ106は、レイヤ1スイッチ、レイヤ2スイッチ、レイヤ3スイッチ、レイヤ4スイッチ、レイヤ7スイッチ等であってもよい。レイヤ1ネットワークデバイスは、データを転送するが、デバイスを通過するトラフィックは管理しない。レイヤ1ネットワークデバイスの例は、イーサネットハブである。レイヤ2ネットワークデバイスは、ハードウェアアドレスを使用してデータリンクレイヤ(レイヤ2)でデータを処理及び転送するマルチポートデバイスである。レイヤ3スイッチは、通常ルータによって実行される機能の一部又は全てを実行できる。但し、一部のネットワークスイッチは、単一タイプの物理ネットワーク、通常は、イーサネットをサポートするように制限されており、一方、ルータは、異なるポート上の異なる種類の物理ネットワークをサポートする場合がある。
【0035】
ルータ112は、コンピュータネットワーク間でデータパケットを転送するネットワークデバイスである。
図1に示す例示的なシステム100において、ルータ112は、ローカルエリアネットワーク110間でデータパケットを転送する。但し、ルータ112は、必ずしもローカルエリアネットワーク110間のデータパケットの転送に適用される必要はなく、ワイドエリアネットワーク等の間のデータパケットの転送に使用してもよい。ルータ112は、インターネット上でトラフィック誘導機能(traffic direction function)を実行する。ルータ112は、銅ケーブル、光ファイバ、又は無線伝送等の異なるタイプの物理レイヤ接続のためのインタフェースを有してもよい。ルータ112は、異なるネットワークレイヤ伝送規格をサポートできる。各ネットワークインタフェースを使用することによって、データパケットをある伝送システムから別の伝送システムに転送できる。また、ルータ112は、それぞれが異なるネットワークプレフィックスを有する、サブネットと呼ばれるコンピュータデバイスの2以上の論理グループを接続するために使用してもよい。
図1に示すように、ルータ112は、企業内、企業とインターネットとの間、又はインターネットサービスプロバイダのネットワーク間の接続を提供できる。幾つかのルータ112は、様々なインターネットサービスプロバイダを相互接続するように構成してもよく、大規模な企業ネットワーク内で使用してもよい。より小さいルータ112は、一般に、ホームネットワーク及びオフィスネットワークのインターネットへの接続を提供する。
図1に示すルータ112は、エッジルータ、サブスクライバエッジルータ、プロバイダ間ボーダルータ、コアルータ、インターネットバックボーン、ポート転送、音声/データ/ファックス/ビデオ処理ルータ等のネットワーク伝送に適した任意のルータを表すことができる。
【0036】
インターネットサービスプロバイダ(ISP)102は、インターネットへのアクセス、利用、又は参加のためのサービスを提供する組織である。ISP102は、商用、コミュニティ所有、非営利、又は個人所有等の様々な形態で組織化できる。ISP102によって一般的に提供されるインターネットサービスは、インターネットアクセス、インターネット中継、ドメイン名登録、ウェブホスティング、ユースネットサービス、及びコロケーションを含む。
図1に示すISP102は、ホスティングISP、中継ISP、仮想ISP、無料ISP、無線ISP等の任意の適切なISPを表すことができる。
【0037】
ネットワークサービスプロバイダ(NSP)104は、インターネットサービスプロバイダへの直接のインターネットバックボーンアクセスを提供することによって、帯域幅又はネットワークアクセスを提供する組織である。ネットワークサービスプロバイダは、ネットワークアクセスポイント(network access point:NAP)へのアクセスを提供できる。ネットワークサービスプロバイダ104は、バックボーンプロバイダ又はインターネットプロバイダとも呼ばれる。ネットワークサービスプロバイダ104は、電気通信業者、データキャリア、無線通信プロバイダ、インターネットサービスプロバイダ、及び高速インターネットアクセスを提供するケーブルテレビ運営業者を含むことができる。また、ネットワークサービスプロバイダ104は、情報技術業者を含むこともできる。
【0038】
図1に示すシステム100は、単なる例示であり、ネットワークと演算デバイスとの間でデータを伝送するために多くの異なる構成及びシステムを構築できる。ネットワーク形成は、カスタマイズ可能性(customizability)が高いため、コンピュータ間又はネットワーク間でデータを伝送するための最適パスを決定する際にも、カスタマイズ可能性をより高めることが望まれている。以上の観点から、ここでは、特定の企業又はコンピュータの特定のグループ化に良好に適合する最適パスアルゴリズムを決定する際に、カスタマイズ可能性をより高めるために、最適パス計算を外部デバイスにオフロードするためのシステム、方法、及びデバイスを開示する。
【0039】
図2は、デバイス間の最適パスを決定する為のシステム200の概略図である。システム200は、情報を送信する為の複数のBGPインスタンスR1、R2、R3を含む。複数のBGPインスタンスR1、R2、R3のそれぞれは、スイッチ106又はルータ112であることができる。複数のBGPインスタンスR1、R2、R3のそれぞれは、トラフィックをルーティングする為のボーダゲートウェイプロトコル(BGP)を実行する。複数のBGPインスタンスR1、R2、R3のそれぞれは、最適パスコントローラ202と通信する。最適パスコントローラ202は、各BGPインスタンスから複数のBGPネットワーク層到達性情報(Network Layer Reachability Information:NLRI)を継続的に受信し、最適パス計算を実行し、複数のBGPインスタンスR1、R2、R3のそれぞれに最適パス計算結果と共にNLRIのメッセージを送信するように構成される。開示の実施形態において、最適パスコントローラ202は、スイッチ106又はルータ112のいずれにも適用することができる。このことは融通性を高め、それにより、最適パスコントローラ202の為の単一ソフトウェアパッケージが複数の型のハードウェアに適用可能になる。
【0040】
図3は、BGPインスタンス内の状態マシンにより実行されるプロセスフロー300の概略図である。プロセスフロー300は、ルート処理の為の多重待ち行列を含む。確立されたネイバから受信すると、BGPNLRIが作成され、まず最適パス計算の為の最適パス待ち行列に追加される。BGPNLRIは、更新生成及びアドバタイズメントの為の待ち行列に追加される前に、ルーティング情報ベース(RIB)待ち行列に移動される。
【0041】
プロセスフロー300において、NLRIを含むBGP更新メッセージを受信して処理したら(302)、最適パスコントローラ(BPC)が作動しているか判定する(304)。最適パスコントローラが作動中であったら、最適パスコントローラ324に向けて伝送される出力待ち行列(out-queue)306に向けて移動される。最適パスコントローラは、次ホップ(NH)トラッキング(326)の補助を必要としてもよい。次ホップトラッキングにおいて、BGPはRIBのサービスを利用してそれぞれの次ホップの為の到達性及びメトリックをトラッキングする。これらの属性が変化する度にRIBはBGPに通知する。BGPはトラッキング結果を使用して最適パスの新しいセットを再計算する。最適パス計算が完了すると、最適パスコントローラは、それぞれの最適パスを含むBGPNLRIを入力待ち行列(in-queue)328を介してBGPインスタンスに戻し、その後の処理の為にNLRIをRIB待ち行列316に最終的に移動する。
【0042】
304の判定が最適パスコントローラは作動していないことを示していた場合、その後、次ホップが既にトラッキングされたかどうか判定される(308)。次ホップが既知ではない場合、その後、BGPNLRIは、RIBによる次ホップトラッキング(310)の後にのみ、最適パス待ち行列312に移動される。308の判定が次ホップは既知であることを示していた場合、その後、BGPNLRIは、最適パス計算(314)の為に最適パス待ち行列312に直接移動される。結果として得られた最適パスはRIB待ち行列316に移動される。
【0043】
さらに、更新待ち行列320に転送される前に、RIB待ち行列316内のアイテムにRIBダウンロード318が実行される。最後に、更新生成322動作が実行される。
【0044】
最適パスコントローラと統合する為に、プロセスフロー300に新しい待ち行列を導入してもよい。最適パス出力待ち行列は、最適パス未決定とマーキングされたBGPNLRIを最適パスコントローラに向けて流出させる。最適パス計算結果は、最適パス入力待ち行列経由で、BGPインスタンスに戻され、NLRIは最適パス完了とマーキングされている。
【0045】
最適パスコントローラへの接続は、任意の信頼できるトランスポート(transport)上に確立することができる。例としては、gRPC(リモートプロシージャコール)(Remote Procedure Call)、HTTP(ハイパーテキスト転送プロトコル)(Hyper Text Transfer Protocol)、又はカスタムIPC(プロセス間通信)(Inter-Process Communication)を含む。ストリーム用のメッセージ形式は、プロトコルバッファ(Protocol Buffers(Protobuf))、スリフトプロトコル(Thrift Protocol) 等のバイナリ形式、又はJSON(JavaScript Object Notation)及びXML(eXtensible Markup Language)等のテキスト形式を使用して定義できる。実施形態において、BGPインスタンス及び最適パスコントローラの実装は、トランスポート及び形式について合意しなければならない。
【0046】
実施形態において、BGPインスタンスは、BGPネイバからNLRIを学習する。NLRIの為の最適パスをローカルで計算する代わりに、BGPインスタンスは、ここまで学習したNLRI及び全てのパス並びにその属性を含むメッセージを最適パスコントローラに送信する。このメッセージは、NLRIが初めて学習された時、又はそのNLRIの為のパスのセットが変更された時に送信することができる。最適パスコントローラは、最適パスとなる1以上のパスを識別し、最適パス計算結果をNLRIに返信することが期待される。なお、最適パスコントローラは、計算結果メッセージを使用して、任意のパスの次ホップ又は属性を更新することができる。BGPインスタンスは、最適パスコントローラからの返信を待つ間、最適パス待ち行列内にNLRIを保留する。最適パスコントローラから計算結果メッセージを受信すると、BGPインスタンスは、最適パス待ち行列からNLRIを外し(de-queue)、NLRIをRIB内に設置する必要がある場合はRIB設置待ち行列に、又はBGPネイバにアナウンスする為の更新生成待ち行列にNLRIを再び入れる(re-queue)。
【0047】
高処理能力(high throughput)を確保する為に、BGPインスタンスは、非同期的に最適パスコントローラにNLRIメッセージを送信することができる。BGPインスタンスは、同じNLRIの為の追加のメッセージを送信する前に、計算結果が戻ってくるのを待たなくてもよい。したがって、複数のメッセージが同じNLRIの為に送信中であることができる。各NLRIメッセージは、BGPインスタンスから受信した全てのメッセージにわたって一意的な識別を保証するバージョン番号フィールド(version number field)を含む。最適パスコントローラが同じBGPインスタンスから同じNLRIについての複数のメッセージを連続で受信するインスタンスにおいて、最適パスコントローラは、そのNLRIの為に受信した最新のメッセージの結果を返信することを選択できる。NLRIメッセージは、最新のメッセージを識別する為に使用できるバージョン番号を含む。BGPインスタンスは、最適パスコントローラがそのNLRIの最新バージョンの結果を返信することを期待する。そのようなメッセージを受信するまで、BGPインスタンスは、そのNLRIのアドバタイズメント及び他の処理を保留する。
【0048】
最適パスコントローラは、結果メッセージを一方的に送信することもできる。そのような実施形態において、最適パスコントローラは、BGPインスタンスにより送信されたNLRIメッセージに応答してではなく、結果メッセージを送信する。このことは、ポリシーの変更が最適パスを再計算してプロアクティブに送信することを必要とするインスタンスにおいて、有用である。この場合、最適パスコントローラは、結果メッセージ内にNLRIの最新バージョン番号を含んでいなければならない。
【0049】
最適パス計算メッセージに加えて、最適パスコントローラは、次ホップ到達性変更のコンシューマとして機能することもできる。最適パスに対応する次ホップの到達性パラメータが変更されると、最適パスコントローラは、新規の最適パスを再計算し、新規の最適パスをBGPインスタンスに送信することができる。次ホップトラッキングは、通常RIBにより提供される登録サービスであり、最適パスコントローラは、最適パスコントローラが関心を持った1以上の次ホップを登録することができる。
【0050】
実施形態において、最適パス機能は、分離した処理により実行される。そのような実施形態においては、失敗を処理し、最適パスコントローラ及びBGPインスタンスの両方を再起動することが重要である。これらのシナリオを処理する為に、実装は、ここに記載の自動再起動メカニズム(graceful restart mechanism)に再区分されることができる。BGPインスタンスが再起動されると、最適パスコントローラは、そのピアから事前に学習した状態を保持する。トランスポート切断又は明示的な信号を通してBGPインスタンスが再起動したこと検出すると、最適パスコントローラは、そのBGPインスタンスから学習した全ての情報を古いとマーキングする。BGPインスタンスが隣接BGPインスタンスからNLRIを再学習すると、BGPインスタンスは、最適パスコントローラにNLRIを再送信する。最適パスコントローラは、通常通り、結果メッセージを返信する。なお、最適パスコントローラは、新規に受信したルートを新しいとマーキングする。BGPインスタンスが明示的なRIBの終端(End-of-RIB)(EoR)マーカ又はタイマにより示された全てのNLRIを送信すると、最適パスコントローラは、まだ古いとマーキングされている全てのNLRIをパージする。
【0051】
上記の実施形態は、最適パスコントローラがクラッシュして再起動されるシナリオにも適用することができる。このシナリオにおいて、BGPインスタンスは、最適パスコントローラにより事前に計算された最適パスを維持する。最適パスコントローラが再起動すると、BGPインスタンスは、全ての最適パスを古いとマーキングし、NLRI及びそれらのパスを最適パスコントローラに再送信する。最適パス結果を受信すると、BGPインスタンスは、対応する入力を更新し、これらを新しいとマーキングする。BGPインスタンスが全てのNLRIの結果を受信すると、BGPインスタンスは、まだ古いとマーキングされている最適パスをパージする。
【0052】
図4は、ルート及び最適パス計算のストレージをデータストア402にオフロードするシステム400の概略図である。システムは、複数のBGPインスタンスR1、R2、R3、Rnと通信するデータストア402を含む。データストア402は、メタデータ406と通信するインデックスサーバ404を含む。メタデータ406は、共有ディスクストレージ412内のどこに特定のデータが配置されているかを示す。共有ディスクストレージ412は、複数のデータストレージデバイス412a、412b、412c、412nを含む。インデックスサーバ404は処理プラットフォーム408と通信し、処理プラットフォーム408は共有ディスクストレージ412にアクセスすることができる。インデックスサーバ404は、共有ディスクストレージ412内のどこに特定のデータが配置されているかを処理プラットフォーム408に示すように構成されている。インデックスサーバ404は、メタデータ406に基づいてこの決定を行う。データストア402は、処理プラットフォーム408と通信するホストサーバ410を含む。ホストサーバ410は、処理プラットフォーム408が、共有ディスクストレージ412内の情報を更新、追加、又は消去することにより、共有ディスクストレージ412に書き込みすることを可能にする。処理プラットフォーム408は、各々がプロセッサ及びキャッシュストレージを有する複数のホストを含むことができる。各ホストは、共有ディスクストレージ412内の情報を読み込み及び書き込みするように構成される。
【0053】
図5は、スイッチ又はルータのローカルなデータストア402に情報をオフロードする実施形態を示す図である。スイッチ又はルータはさらに、ハードウェア516及びソフトウェアスタック514を含む。ハードウェア516は、コンピュータ又はネットワーク間のデータパケットの伝送を可能にする物理的接続を提供する。ソフトウェアスタック514は、最適パスを決定し、最適パスに沿ってデータパケットをその宛先デバイスに転送する為に、プロセッサ又はハードウェア516により実行される命令を含む。
【0054】
図6は、クラウドネットワーク614上でアクセス可能なデータストア602に情報をオフロードする実施形態を示す図である。実施形態において、データストア602は、複数のBGPインスタンスR1、R2、R3、Rnによりアクセス可能なクラウドベースのデータベースである。
【0055】
図7は、最適パス計算を最適パスコントローラにオフロードする方法700のブロック図である。方法700は、ここに記載されているように、最適パスコントローラ202により実行される。最適パスコントローラ202は、宛先デバイスにデータを伝送する為に1以上のデバイスと通信することができる。1以上のデバイスは、ルータ112又はスイッチ106等のBGPインスタンスであることができる。最適パスコントローラ202は1以上のデバイス内にローカルに配置されるか、又は、最適パスコントローラ202は1以上のデバイスのそれぞれの外部に配置される。
【0056】
方法700が開始され、最適パスコントローラ202はデバイスにより学習された複数のNLRIのリストを記憶し(702)、NLRIは、デバイスから宛先デバイスへデータを送信する為のルートを含む。複数のNLRIのリストは、デバイスにより学習された全てのNLRI、デバイスにより使用された全ての古くないNLRI、デバイス及び他のデバイスに属するNLRI、デバイスにより学習された全てのNLRIより少ないNLRI等を含むことができる。方法700は続き、最適パスコントローラ202はデバイスから更新メッセージを受信する(704)。更新メッセージは、BGPルータ及び最適パスコントローラ202間で交換されたネットワーク層到達性情報(NLRI)メッセージを含むことができる。NLRIは長さ及びプレフィックスを含むことができる。方法700は続き、最適パスコントローラ202は最適パス計算処理を行い、最適パス計算処理がデバイスから最適パスコントローラにオフロードされるように更新メッセージに基づいて1以上の最適パスを識別する(706)。1以上の最適パスは、デバイスにより学習された複数のパスのリスト内に記憶された最適パスと異なる又は同じであることができる。方法700は続き、最適パスコントローラ202は1以上の最適パスをデバイスに送信する(708)。
【0057】
図8は、例示的な演算デバイス800のブロック図である。演算デバイス800を使用して、ここで説明するような様々な手順を実行できる。演算デバイス800は、ここに記載の様々な監視機能を実行でき、そして、ここに記載の機能又はアプリケーションプログラムのような1以上のアプリケーションプログラムを実行できる。演算デバイス800は、デスクトップコンピュータ、インダッシュコンピュータ、車両制御システム、ノートブックコンピュータ、サーバコンピュータ、ハンドヘルドコンピュータ、タブレットコンピュータ等の多種多様な演算デバイスの何れであってもよい。
【0058】
演算デバイス800は、1以上のプロセッサ802と、1以上のメモリデバイス804と、1以上のインタフェース806と、1以上の大容量ストレージデバイス808と、1以上の入出力デバイス810と、表示デバイス830とを含み、これらは、全てバス812に接続されている。プロセッサ802は、メモリデバイス804及び/又は大容量ストレージデバイス808に格納された命令を実行する1以上のプロセッサ又はコントローラを含む。また、プロセッサ802は、キャッシュメモリ等の種々のタイプのコンピュータ可読媒体を含むことができる。
【0059】
メモリデバイス804は、揮発性メモリ(例えば、ランダムアクセスメモリ(random access memory:RAM)814)及び/又は不揮発性メモリ(例えば、読出専用メモリ(read-only memory:ROM)816)等の種々のコンピュータ可読媒体を含む。また、メモリデバイス804は、フラッシュメモリ等の書換可能ROMを含むことができる。
【0060】
大容量ストレージデバイス808は、磁気テープ、磁気ディスク、光ディスク、ソリッドステートメモリ(フラッシュメモリ等)等の種々のコンピュータ可読媒体を含む。
図8に示すように、具体的な大容量ストレージデバイスは、ハードディスクドライブ824である。大容量ストレージデバイス808には、種々のコンピュータ可読媒体からの読出及び/又は種々のコンピュータ可読媒体への書込を可能にするために、種々のドライブを含めることもできる。大容量ストレージデバイス808は、リムーバブルメディア826及び/又は非リムーバブルメディアを含む。
【0061】
入出力(I/O)デバイス810は、データ及び/又は他の情報を演算デバイス800に入力し又は演算デバイス800から取り出すことを可能にする様々なデバイスを含む。I/Oデバイス810には、カーソル制御デバイス、キーボード、キーパッド、マイクロホン、モニタ又は他の表示デバイス、スピーカ、プリンタ、ネットワークインタフェースカード、モデム等が含まれる。
【0062】
表示デバイス830は、演算デバイス800の1人以上のユーザに情報を表示できる任意のタイプのデバイスを含む。表示デバイス830としては、例えば、モニタ、表示端末、映像投影デバイス等が挙げられる。
【0063】
インタフェース806は、演算デバイス800が他のシステム、デバイス、又はコンピューティング環境とインタラクションすることを可能にする様々なインタフェースを含む。インタフェース806は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、無線ネットワーク、及びインターネットへのインタフェースのような、任意の数の異なるネットワークインタフェース820を含むことができる。他のインタフェースは、ユーザインタフェース818及び周辺機器インタフェース822を含む。また、インタフェース806は、1以上のユーザインタフェース要素818を含むことができる。更に、インタフェース806は、プリンタ、ポインティングデバイス(マウス、トラックパッド、又は当業者に現在知られている任意の適切なユーザインタフェース、又は今後開発される任意の適切なユーザインタフェース)、キーボード等のためのインタフェース等、1以上の周辺インタフェースを含んでもよい。
【0064】
バス812は、プロセッサ802、メモリデバイス804、インタフェース806、大容量ストレージデバイス808、及びI/Oデバイス810が互いに、及びバス812に接続された他のデバイス又はコンポーネントと通信することを可能にする。バス812は、システムバス、PCIバス、IEEEバス、USBバス等の幾つかのタイプのバス構造のうちの1以上を表す。
【0065】
ここでは、説明のため、プログラム及び他の実行可能プログラム構成要素を個別のブロックとして示しているが、このようなプログラム及び構成要素は、演算デバイス800の異なる記憶構成要素内に様々な時点で存在してもよく、プロセッサ802によって実行される。これに代えて、ここに記載のシステム及び手順は、ハードウェアで実現してもよく、ハードウェア、ソフトウェア、及び/又はファームウェアの組み合わせで実現してもよい。例えば、ここに記載のシステム及び手順の1以上を実行するように1以上の特定用途向け集積回路(application specific integrated circuit:ASIC)をプログラムできる。
【0066】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【0067】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。
【実施例】
【0068】
以下の実施例は、更なる実施形態に関する。
【0069】
実施例1は、ネットワークコンピューティング環境内の最適パスコントローラに最適パス計算をオフロードする方法である。方法は、最適パスコントローラにより、デバイスにより学習された複数のパスのリストを記憶することを含み、複数のパスは、デバイスから宛先デバイスに情報を送信する為の複数のルートである。方法は、最適パスコントローラにより、デバイスからメッセージを受信することを含む。メッセージは、ネットワーク層到達性情報(NLRI)メッセージである。方法は、最適パスコントローラにより、最適パス計算処理を行い、最適パス計算処理がデバイスから最適パスコントローラにオフロードされるようにメッセージに基づいて1以上の最適パスを識別することを含む。方法は、1以上の最適パスをデバイスに送信することを含む。
【0070】
実施例2は、デバイスがルータ又はスイッチである、実施例1に記載の方法である。
【0071】
実施例3は、デバイスがボーダゲートウェイプロトコル(BGP)を実行する、実施例1又は2に記載の方法である。
【0072】
実施例4は、さらに、最適パスコントローラにより計算された1以上の最適パスに基づいて、複数のパスのリスト内の任意のパスの次ホップを更新することを含む、実施例1~3のいずれかに記載の方法である。
【0073】
実施例5は、デバイスからメッセージ(NLRIメッセージ)を受信することが、デバイスから複数のメッセージを非同期的に受信することを含み、最適パス計算を実行することが、複数のメッセージに基づいてネットワーク層到達性情報(NLRI)の最新バージョン上で最適パス計算を実行することを含む、実施例1~4のいずれかに記載の方法である。
【0074】
実施例6は、複数のメッセージのそれぞれが、単一のNLRIの為のデバイスから受信した全てのメッセージにわたって一意的な識別を有するバージョン番号フィールドを含む、実施例1~5のいずれかに記載の方法である。
【0075】
実施例7は、さらに、ポリシー変更に応答して最適パス計算を再度実行し、最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、結果メッセージをデバイスに返信する、ことを含む、実施例1~6のいずれかに記載の方法である。
【0076】
実施例8は、さらに、最適パスコントローラにより、デバイスにより学習された複数のパスのリスト内のパスの次ホップ到達性更新(next hop reachability update)を受信し、次ホップ到達性更新を受信したことに応答して最適パス計算を再度実行し、最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、結果メッセージをデバイスに返信する、ことを含む、実施例1~7のいずれかに記載の方法である。
【0077】
実施例9は、さらに、デバイスが再起動したことを判定し、最適パスコントローラにより、デバイスにより学習された複数のパスのリストを維持し、デバイスが再起動したと判定したことに応答してデバイスにより学習された複数のパスのリスト内の各パスを古いとマーキングし、デバイスが新しいパスを再度学習したことに応答してデバイスから新しいパスを受信し、そして、複数のパスのリストから新しいパスと一致する古いパスをパージする、ことを含む、実施例1~8のいずれかに記載の方法である。
【0078】
実施例10は、最適パス計算がデバイス及びデバイスのネットワーク内の他のデバイス用にカスタマイズされる、実施例1~9のいずれかに記載の方法である。
【0079】
実施例11は、システムである。システムは、ネットワーク内のデバイスを含み、デバイスは、デバイスから宛先デバイスに情報を送信するように構成される。システムは、デバイスと通信する最適パスコントローラを含み、最適パスコントローラは、非一時的コンピュータ可読記憶媒体内に記憶された命令を実行するように構成可能なプロセッサを含む。命令は、デバイスにより学習された複数のパスのリストをメモリ内に記憶すること及びデバイスからメッセージを受信することを含み、複数のパスのそれぞれが、デバイスから宛先デバイスにデータを送信する為のルートである。命令は、最適パス計算処理を行い、最適パス計算処理がデバイスから最適パスコントローラにオフロードされるようにメッセージに基づいて1以上の最適パスを識別することを含む。命令は、デバイスに1以上の最適パスを送信することを含む。
【0080】
実施例12は、デバイスがルータ又はスイッチであり、デバイスがボーダゲートウェイプロトコル(BGP)を実行する、実施例11に記載のシステムである。
【0081】
実施例13は、命令がさらに、最適パスコントローラにより計算された1以上の最適パスに基づいて、複数のパスのリスト内の任意のパスの次ホップを更新することを含む、実施例11又は12に記載のシステムである。
【0082】
実施例14は、命令は、デバイスからメッセージを受信することが、デバイスから複数のメッセージを非同期的に受信することを含み、最適パス計算を実行することが、複数のメッセージの最新バージョン上で最適パス計算を実行することを含む、実施例11~13のいずれかに記載のシステムである。
【0083】
実施例15は、命令がさらに、ポリシー変更に応答して最適パス計算を再度実行し、最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、結果メッセージをデバイスに返信する、ことを含む、実施例11~14のいずれかに記載のシステムである。
【0084】
実施例16は、1以上のプロセッサにより実行される命令を記憶する非一時的コンピュータ可読記憶媒体である。命令は、デバイスにより学習された複数のパスのリストを記憶することを含み、複数のパスは、デバイスから宛先デバイスに情報を送信する為の複数のルートである。命令は、デバイスからメッセージを受信することを含む。命令は、最適パス計算処理を行い、最適パス計算処理がデバイスから最適パスコントローラにオフロードされるようにメッセージに基づいて1以上の最適パスを識別し、1以上の最適パスをデバイスに送信することを含む。
【0085】
実施例17は、命令がさらに、ポリシー変更に応答して最適パス計算を再度実行し、最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、結果メッセージをデバイスに返信する、ことを含む、実施例16に記載の非一時的コンピュータ可読記憶媒体である。
【0086】
実施例18は、命令がさらに、最適パスコントローラにより、デバイスにより学習された複数のパスのリスト内のパスの次ホップ到達性更新を受信し、次ホップ到達性更新を受信したことに応答して最適パス計算を再度実行し、最適パス計算を再度実行したことに基づいた1以上の最適パスを含む結果メッセージを生成し、そして、結果メッセージをデバイスに返信する、ことを含む、実施例16又は17に記載の非一時的コンピュータ可読記憶媒体である。
【0087】
実施例19は、命令がさらに、デバイスが再起動したことを判定し、最適パスコントローラにより、デバイスにより学習された複数のパス(複数のNLRI)のリストを維持し、デバイスが再起動したと判定したことに応答してデバイスにより学習された複数のパスのリスト内の各パスを古いとマーキングし、デバイスが新しいパスを再度学習したことに応答してデバイスから新しいパスを受信し、複数のパスのリストから新しいパスと一致する古いパスをパージする、ことを含む、実施例16~18のいずれかに記載の非一時的コンピュータ可読記憶媒体である。
【0088】
実施例20は、最適パス計算がデバイス及びデバイスのネットワーク内の他のデバイス用にカスタマイズされる、実施例16~19のいずれかに記載の非一時的コンピュータ可読記憶媒体である。
【0089】
なお、上述の構成、実施例、及び実施形態の任意の特徴は、ここに開示する構成、実施例、及び実施形態の何れかから得られる特徴の組み合わせを含む単一の実施形態において組み合わせることができる。
【0090】
ここに開示する種々の特徴は、当技術分野における重要な利点及び進歩を提供する。以下の特許請求の範囲は、これらの特徴の幾つかの例示である。
【0091】
本開示の前述の詳細な説明では、開示を合理化する目的で、開示の様々な特徴を1つの実施形態にまとめている。この開示方法は、特許請求された開示が各請求項において明示的に記載されている特徴よりも多くの特徴を必要とするという意図を反映していると解釈されるべきではない。すなわち、本発明の態様の特徴は、先に開示した単一の実施形態の全ての特徴よりも少ない。
【0092】
上記の構成は、本開示の原理の適用の単なる例示である。当業者は、本開示の思想及び範囲から逸脱することなく、多くの変更及び代替の構成を想到でき、特許請求の範囲は、このような修正及び構成を網羅することを意図している。
【0093】
したがって、本開示を図面に示し、上に詳細に説明しているが、ここに記載されている原理及び概念から逸脱することなく、サイズ、材料、形状、形態、機能、動作、組み立て、及び使用のバリエーションを含むと共に、これらに限定されない多数の変更を想到できることは、当業者にとって明らかである。
【0094】
更に、ここに記載される機能は、適切な場合、ハードウェア、ソフトウェア、ファームウェア、デジタルコンポーネント、又はアナログコンポーネントのうちの1以上において実行できる。例えば、1以上の特定用途向け集積回路(application specific integrated circuit:ASIC)又はフィールドプログラマブルゲートアレイ(field programmable gate array:FPGA)をプログラムして、ここに記載のシステム及び手順の1以上を実行できる。説明及び特許請求の範囲を通して、特定のシステムコンポーネントを指すために、特定の用語を使用している。コンポーネントは、異なる名称で呼ぶことができることは、当業者にとって明らかである。本文書は、名称が異なるが機能が同じコンポーネントを区別することを意図していない。
【0095】
上記の記述は、例示及び説明を目的としている。本開示は、ここに説明する詳細な形式に排他的に限定されない。上記の教示を参照することにより、多くの変更及び変形が可能である。更に、前述の変形例の何れか又は全ては、任意に組み合わせることができ、本開示の更なる組み合わせ例を形成できる。
【0096】
更に、本開示の具体的な実施例を説明及び図示しているが、本開示は、そのように説明及び図示された部分の具体的な形態又は配置に限定されるものではない。本開示の範囲は、本願の特許請求の範囲によって定義され、あるいは、将来に提出される特許請求の範囲、本願に基づく別出願、及びこれらの均等物があれば、これらによって定義される。
【符号の説明】
【0097】
100 システム
108 演算デバイス
200 システム
300 プロセスフロー
400 システム
700 方法
800 演算デバイス
812 バス
【国際調査報告】