(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-11-13
(54)【発明の名称】コンテナ化された環境におけるマルチキャスト通信のための方法、装置及びコンピュータ可読媒体
(51)【国際特許分類】
H04L 49/201 20220101AFI20241106BHJP
H04L 45/76 20220101ALI20241106BHJP
【FI】
H04L49/201
H04L45/76
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024525625
(86)(22)【出願日】2022-05-26
(85)【翻訳文提出日】2024-06-18
(86)【国際出願番号】 CA2022050834
(87)【国際公開番号】W WO2023070194
(87)【国際公開日】2023-05-04
(32)【優先日】2021-10-26
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】518174640
【氏名又は名称】ジェネテック インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】ブシャール,ジャン
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030HD03
5K030KA05
5K030LB05
5K030LD06
(57)【要約】
パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有するホストのプロセッサによって実行される方法であって、ホストはルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、コンテナはブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能である、方法。この方法は、コンテナがマルチキャストグループに参加する要求の指示を取得することを含む。この取得することに応答して、ホストがマルチキャストグループに参加する要求が外部インタフェースを介して送信される。ルーティングテーブルは、ブリッジを、外部インタフェースから取得され、マルチキャストグループ宛ての、将来のパケットの次のホップにするように変更され得る。ルーティングテーブルはまた、外部インタフェースを、ブリッジから取得され、その送信元アドレスがコンテナの内部アドレスであり、マルチキャストグループ宛てである、将来のパケットの次のホップにするように変更され得る。この方法は、このような将来のパケットの有効期限パラメータの増加を設定することも含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
ホストネットワーク要素のプロセッサによって実行される方法であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、前記方法は、
前記コンテナがマルチキャストグループアドレスを有するマルチキャストグループに参加する要求の指示を取得することと、
前記取得することに応答して、前記ホストネットワーク要素が前記マルチキャストグループアドレスを有する前記マルチキャストグループに参加する要求を、前記外部インタフェースを介して送信することと、
前記ブリッジを、前記外部インタフェースから取得され、前記マルチキャストグループアドレス宛ての、将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することと、
前記将来のパケットの有効期限パラメータの増加を設定することと、
を含む、前記方法。
【請求項2】
前記ブリッジが前記コンテナを他のホスト機能から分離する、請求項1に記載の方法。
【請求項3】
前記他のホスト機能が、前記ルーティングテーブルを使用して前記将来のパケットをルーティングするルーティング機能を含む、請求項2に記載の方法。
【請求項4】
前記ブリッジがコンテナエンジンによって実装され、前記コンテナエンジンは、前記他のホスト機能から分離されながら前記コンテナを他のコンテナに接続するブリッジネットワークをさらに実装する、請求項3に記載の方法。
【請求項5】
前記ホストネットワーク要素が、前記ホストネットワーク要素の外部からIPアドレスによってアドレス指定可能であり、前記ホストネットワーク要素が前記マルチキャストグループに参加するための前記要求は、前記ホストの前記IPアドレスを識別するマルチキャスト参加要求メッセージを含む、請求項1に記載の方法。
【請求項6】
前記マルチキャスト参加要求が、前記IPアドレスがIPv4アドレスである場合はIGMP要求であり、または前記IPアドレスがIPv6アドレスである場合はMLD要求である、請求項5に記載の方法。
【請求項7】
前記ホストネットワーク要素が前記外部インタフェースを介してルータに接続され、前記ルータは前記パケットベースのデータネットワーク上でアドレスによってアドレス指定可能であり、前記ホストネットワーク要素が前記マルチキャストグループに参加するための前記要求は、その宛先アドレスとして前記ルータの前記アドレスを有するパケットに埋め込まれている、請求項1に記載の方法。
【請求項8】
前記ホストネットワーク要素が前記パケットベースのデータネットワーク上で外部アドレスによってアドレス指定可能であり、前記パケットは前記ホストの前記外部アドレスを識別する、請求項7に記載の方法。
【請求項9】
前記ホストネットワーク要素がカーネルを実装し、前記コンテナが前記マルチキャストグループに参加するための前記要求の前記指示は前記カーネルからの通知メッセージを含む、請求項1に記載の方法。
【請求項10】
前記カーネルが、前記コンテナエンジンを介して前記コンテナが前記マルチキャストグループに参加するための前記要求を取得することをさらに含む、請求項9に記載の方法。
【請求項11】
前記コンテナが前記マルチキャストグループに参加するための前記要求は、前記所与のコンテナによって発行されたIGMP要求メッセージまたはMLD要求メッセージを含む、請求項10に記載の方法。
【請求項12】
前記有効期限パラメータの増加を設定することが、前記メモリに格納されたリストに前記マルチキャストグループアドレスを追加することを含む、請求項1に記載の方法。
【請求項13】
前記ホストネットワーク要素がルーティングプロセスを実装し、前記ルーティングプロセスは、前記リストを参照し、前記外部インタフェースから取得されたIPパケットの前記有効期限パラメータを、前記取得されたIPパケットの前記宛先アドレスが前記リスト上にある場合に、増加させることを含む、請求項12に記載の方法。
【請求項14】
前記増加させることがインクリメントすることを含む、請求項13に記載の方法。
【請求項15】
前記コンテナが前記ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能であり、前記外部インタフェースを、送信元アドレスが前記コンテナの前記内部アドレスである前記ブリッジから取得された、第2の将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することをさらに含む、請求項1に記載の方法。
【請求項16】
前記第2の将来のパケットに対しても有効期限パラメータの増加を設定することをさらに含む、請求項15に記載の方法。
【請求項17】
前記ホストネットワーク要素がルーティングプロセスを実装し、前記ルーティングプロセスは、前記リストを参照し、前記コンテナエンジンから取得されたIPパケットの前記有効期限パラメータを、前記取得されたIPパケットの宛先アドレスが前記リスト上にある場合に、増加させることを含む、請求項16に記載の方法。
【請求項18】
前記増加させることがインクリメントすることを含む、請求項17に記載の方法。
【請求項19】
前記ホストネットワーク要素が、外部アドレスによって前記ホストネットワーク要素以外のネットワーク要素によりアドレス指定可能であり、前記第2の将来のパケットの前記送信元アドレスを前記ホストネットワーク要素の前記外部アドレスであるように設定するアドレス変更を設定することをさらに含む、請求項16に記載の方法。
【請求項20】
パケットベースのデータネットワークで使用するためのホストネットワーク要素であって、
プロセッサと、
前記プロセッサに動作可能に結合されたメモリと、
前記プロセッサに動作可能に結合され、前記パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースと、
を含み、
前記メモリは、ルーティングテーブル及び非一時的なコンピュータ可読命令を格納し、
前記プロセッサは、コンテナ及びブリッジを実装するように構成され、さらに前記命令を実行するように構成され、それによって、方法であって、
前記コンテナがマルチキャストグループアドレスを有するマルチキャストグループに参加する要求の指示を取得することと、
前記取得することに応答して、前記ホストネットワーク要素が前記マルチキャストグループアドレスを有する前記マルチキャストグループに参加する要求を、前記外部インタフェースを介して送信することと、
前記ブリッジを、前記外部インタフェースから取得され、前記マルチキャストグループアドレス宛ての、将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することと、
前記将来のパケットの有効期限パラメータの増加を設定することと、
を含む、前記方法を遂行する、
前記ホストネットワーク要素。
【請求項21】
ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、前記プロセッサによる前記命令の実行によって、前記ホストネットワーク要素は、方法であって、
前記コンテナがマルチキャストグループアドレスを有するマルチキャストグループに参加する要求の指示を取得することと、
前記取得することに応答して、前記ホストネットワーク要素が前記マルチキャストグループアドレスを有する前記マルチキャストグループに参加する要求を、前記外部インタフェースを介して送信することと、
前記ブリッジを、前記外部インタフェースから取得され、前記マルチキャストグループアドレス宛ての、将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することと、
前記将来のパケットの有効期限パラメータの増加を設定することと、
を含む、前記方法を遂行する、前記非一時的なコンピュータ可読媒体。
【請求項22】
ホストネットワーク要素のプロセッサによって実行される方法であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記ホストネットワーク要素は、外部アドレスによって前記パケットベースのデータネットワーク上でアドレス指定可能であり、前記ホストネットワーク要素は、メモリにルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、前記コンテナは、前記ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能であり、前記方法は、
前記外部インタフェースを、前記ブリッジから取得され、その送信元アドレスが前記コンテナの前記内部アドレスであり、マルチキャストグループ宛てである、将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することと、
前記将来のパケットの有効期限パラメータの増加を設定することと、
前記将来のパケットの前記送信元アドレスを前記ホストネットワーク要素の前記外部アドレスに置き換えるアドレス変更を設定することと、
を含む、前記方法。
【請求項23】
前記ブリッジが前記コンテナを他のホスト機能から分離する、請求項22に記載の方法。
【請求項24】
前記他のホスト機能が、前記ルーティングテーブルを使用するルーティング機能を含む、請求項23に記載の方法。
【請求項25】
前記ブリッジネットワークが、前記他のホスト機能から分離されながら、前記コンテナを他のコンテナに接続する、請求項24に記載の方法。
【請求項26】
前記アドレス変更を前記設定することが、ルールデータベースを変更することを含む、請求項22に記載の方法。
【請求項27】
前記アドレス変更を前記設定することが、ルールデータベースにiptablesルールを作成することを含む、請求項22に記載の方法。
【請求項28】
前記マルチキャストグループがマルチキャストグループアドレスに関連付けられ、有効期限パラメータの増加を設定することは、前記有効期限パラメータが増加されるアドレスのリストに前記マルチキャストグループアドレスを追加することを含む、請求項22に記載の方法。
【請求項29】
前記ホストネットワーク要素がルーティング機能を実装し、前記ルーティング機能は、前記リストを参照して、前記ブリッジから取得されたパケットの前記有効期限パラメータを、前記パケットの宛先アドレスが前記リスト上にある場合に、増加させるように構成されている、請求項28に記載の方法。
【請求項30】
前記パケットがIPv4パケットであり、前記有効期限パラメータは存続時間であるか、または、前記パケットがIPv6パケットであり、前記有効期限パラメータはホップリミットである、請求項29に記載の方法。
【請求項31】
パケットベースのデータネットワークで使用するためのホストネットワーク要素であって、
プロセッサと、
前記プロセッサに動作可能に結合されたメモリと、
前記プロセッサに動作可能に結合され、前記パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースと、
を含み、
前記メモリは、それにより前記ホストネットワーク要素が前記パケットベースのデータネットワーク上でアドレス指定可能である外部アドレスを格納し、前記メモリは、ルーティングテーブル及び非一時的なコンピュータ可読命令をさらに格納し、
前記プロセッサは、コンテナ、ブリッジ、及びブリッジネットワークを実装するように構成され、前記コンテナは、前記ブリッジネットワーク上の内部アドレスによってアドレス指定可能であり、前記プロセッサはさらに、前記命令を実行するように構成され、それによって、方法であって、
前記外部インタフェースを、前記ブリッジから取得され、その送信元アドレスが前記コンテナの前記内部アドレスであり、マルチキャストグループ宛てである、将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することと、
前記将来のパケットの有効期限パラメータの増加を設定することと、
前記将来のパケットの前記送信元アドレスを前記ホストネットワーク要素の前記外部アドレスに置き換えるアドレス変更を設定することと、
を含む、前記方法を遂行する、
前記ホストネットワーク要素。
【請求項32】
ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記ホストネットワーク要素は、外部アドレスによって前記パケットベースのデータネットワーク上でアドレス指定可能であり、前記ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、前記コンテナは、前記ブリッジに関連付けられたブリッジネットワーク上で内部アドレスによってアドレス指定可能であり、前記プロセッサによる前記命令の実行によって、前記ホストネットワーク要素は、方法であって、
前記外部インタフェースを、前記ブリッジから取得され、その送信元アドレスが前記コンテナの前記内部アドレスであり、マルチキャストグループ宛てである、将来のパケットの次のホップにするように、前記ルーティングテーブルを変更することと、
前記将来のパケットの有効期限パラメータの増加を設定することと、
前記将来のパケットの前記送信元アドレスを前記ホストネットワーク要素の前記外部アドレスに置き換えるアドレス変更を設定することと、
を含む前記方法を遂行する、前記非一時的なコンピュータ可読媒体。
【請求項33】
ホストネットワーク要素のプロセッサによって実行される方法であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、前記ホストは、前記ブリッジに接続するための内部インタフェースを実装し、前記方法は、
マルチキャストグループアドレスである宛先アドレスを有するパケットを前記外部インタフェースから取得することと、
前記パケットの有効期限パラメータを増加させることと、
前記ルーティングテーブルを参照して、前記パケットの次のホップとして前記内部インタフェースを識別することと、
前記内部インタフェースを介して前記ブリッジに前記パケットを送信することと、
を含む、前記方法。
【請求項34】
前記マルチキャストグループアドレスがアドレスのリスト上にあるかどうかを決定することをさらに含み、前記パケットの前記有効期限パラメータを前記増加させることは、前記マルチキャストグループアドレスが前記リスト上にある場合にのみ実行される、請求項33に記載の方法。
【請求項35】
前記パケットの前記有効期限パラメータを増加させることは、前記パケットがIPv4パケットである場合に前記パケットの存続時間をインクリメントすること、または前記パケットがIPv6パケットである場合に前記パケットのホップリミットを増加させることを含む、請求項33に記載の方法。
【請求項36】
前記コンテナが、前記ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能であり、前記ブリッジは、前記コンテナの内部アドレスを使用して、前記ブリッジネットワークを介して前記コンテナに前記パケットを送信するように構成されている、請求項33に記載の方法。
【請求項37】
前記ブリッジが、前記マルチキャストグループアドレスによって識別されるマルチキャストグループに参加するための前記コンテナからの事前要求を受信するように構成されている、請求項33に記載の方法。
【請求項38】
前記コンテナが前記パケットを前記ブリッジからの受信時に処理するように構成されている、請求項36に記載の方法。
【請求項39】
前記パケットがビデオデータを含むペイロードを含み、前記コンテナは前記ビデオデータを処理するためのビデオ処理アプリケーションを実行する、請求項38に記載の方法。
【請求項40】
前記パケットがIPパケットであり、前記ルーティングテーブルはマルチキャストルーティングテーブルである、請求項33に記載の方法。
【請求項41】
前記コンテナが、前記ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能であり、(i)前記ブリッジを介して前記コンテナから、第2のパケットであって、その送信元アドレスとして前記コンテナの前記内部アドレスを有し、その宛先アドレスとして第2のマルチキャストグループアドレスを有する、前記パケットを取得することと、(ii)前記ルーティングテーブルを参照して、前記第2のパケットの前記宛先アドレスが前記第2のマルチキャストグループアドレスであることに少なくとも部分的に基づいて、前記外部インタフェースを前記第2のパケットの次のホップとして識別することと、をさらに含む、請求項33に記載の方法。
【請求項42】
前記内部アドレスがMACアドレスである、請求項41に記載の方法。
【請求項43】
前記第2のパケットの前記有効期限パラメータを増加させることをさらに含む、請求項41に記載の方法。
【請求項44】
前記第2のパケットの前記有効期限パラメータを前記増加させることが、前記ルーティングテーブルを前記参照して前記外部インタフェースを前記第2のパケットの次のホップとして識別する前に行われる、請求項43に記載の方法。
【請求項45】
前記ホストネットワーク要素が、外部アドレスによって前記ホストネットワーク要素以外のネットワーク要素によりアドレス指定可能であり、前記方法は前記第2のパケットの前記送信元アドレスを前記ホストネットワーク要素の前記外部アドレスであるように設定することをさらに含む、請求項43に記載の方法。
【請求項46】
前記外部インタフェースを介して前記第2のパケットを送信することをさらに含む、請求項45に記載の方法。
【請求項47】
前記ブリッジが前記コンテナを他のホスト機能から分離する、請求項33に記載の方法。
【請求項48】
前記他のホスト機能が、前記取得すること、参照すること、増加させること、及び送信することを実行するルーティングプロセスを含む、請求項47に記載の方法。
【請求項49】
前記ホストネットワーク要素が他のコンテナを実装し、前記ブリッジがコンテナエンジンによって実装され、前記コンテナエンジンは、前記他のホスト機能から分離されながら前記コンテナを前記他のコンテナに接続するブリッジネットワークをさらに実装する、請求項47に記載の方法。
【請求項50】
パケットベースのデータネットワークで使用するためのホストネットワーク要素であって、
プロセッサと、
前記プロセッサに動作可能に結合されたメモリと、
前記プロセッサに動作可能に結合され、前記パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースと、
を含み、
前記メモリは、ルーティングテーブル及び非一時的なコンピュータ可読命令を格納し、
前記プロセッサは、コンテナ、ブリッジ、及び前記ブリッジに接続するための内部インタフェースを実装するように構成され、前記プロセッサはさらに、前記命令を実行するように構成され、それによって、方法であって、
マルチキャストグループアドレスである宛先アドレスを有するパケットを前記外部インタフェースから取得することと、
前記パケットの有効期限パラメータを増加させることと、
前記ルーティングテーブルを参照して、前記パケットの次のホップとして前記内部インタフェースを識別することと、
前記内部インタフェースを介して前記ブリッジに前記パケットを送信することと、
を含む、前記方法を遂行する、
前記ホストネットワーク要素。
【請求項51】
ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、前記ホストは、前記ブリッジに接続するための内部インタフェースを実装し、前記プロセッサによる前記命令の実行によって、前記ホストネットワーク要素は、方法であって、
マルチキャストグループアドレスである宛先アドレスを有するパケットを前記外部インタフェースから取得することと、
前記パケットの有効期限パラメータを増加させることと、
前記ルーティングテーブルを参照して、前記パケットの次のホップとして前記内部インタフェースを識別することと、
前記内部インタフェースを介して前記ブリッジに前記パケットを送信することと、
を含む、前記方法を遂行する、前記非一時的なコンピュータ可読媒体。
【請求項52】
各パケットが送信元アドレスと宛先アドレスを有するパケットベース環境においてホストネットワーク要素のプロセッサによって実行される方法であって、前記ホストネットワーク要素がパケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記方法は、
コンテナ、ブリッジ、及びブリッジネットワークを実装することであって、前記コンテナは内部アドレスによって前記ブリッジネットワーク上でアドレス指定可能である、前記実装することと、
前記ブリッジによって前記コンテナから分離されたルーティングプロセスであって、
前記ブリッジから、パケットであって、その送信元アドレスとして前記ブリッジネットワーク上の前記コンテナの前記内部アドレスを有し、その宛先アドレスとしてマルチキャストグループアドレスを有する、前記パケットを取得することと、
前記パケットの有効期限パラメータを増加させることと、
前記ホストネットワーク要素の前記外部インタフェースを前記パケットの次のホップとして識別することと、
前記パケットの前記送信元アドレスを前記ホストネットワーク要素のアドレスに置き換えることと、
前記外部インタフェースを介して前記パケットを前記ホストネットワーク要素から外へ送信することと、
を含む、前記ルーティングプロセスを実装することと、
を含む、前記方法。
【請求項53】
前記ホストネットワーク要素が他のコンテナを実装し、前記ブリッジネットワークが前記ルーティングプロセスから分離されながら前記コンテナを前記他のコンテナに接続する、請求項52に記載の方法。
【請求項54】
前記識別することが、メモリに格納されたルーティングテーブルを参照することを含む、請求項52に記載の方法。
【請求項55】
前記パケットの前記有効期限パラメータを増加させることは、前記パケットがIPv4パケットである場合に前記パケットの存続時間をインクリメントすること、または前記パケットがIPv6パケットである場合に前記パケットのホップリミットを増加させることを含む、請求項52に記載の方法。
【請求項56】
ルールデータベースを参照して前記パケットの前記送信元アドレスが前記ホストネットワーク要素の前記アドレスに置き換えられるべきであると決定することをさらに含む、請求項52に記載の方法。
【請求項57】
前記ホストネットワーク要素が、前記パケットベースのデータネットワーク上で外部アドレスによってアドレス指定可能であり、前記ホストネットワーク要素の前記アドレスは前記外部アドレスである、請求項56に記載の方法。
【請求項58】
前記ルールデータベースを前記参照することが、前記ルールデータベースに格納されるiptablesルールを決定することを含む、請求項56に記載の方法。
【請求項59】
前記内部アドレスがMACアドレスである、請求項52に記載の方法。
【請求項60】
パケットベースのデータネットワークで使用するためのホストネットワーク要素であって、
プロセッサと、
前記プロセッサに動作可能に結合され、非一時的なコンピュータ可読命令を格納するメモリと、
前記プロセッサに動作可能に結合され、前記パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースと、
を含み、
前記プロセッサは、前記命令を実行するように構成されており、それによって、方法であって、
コンテナ、ブリッジ、及びブリッジネットワークを実装することであって、前記コンテナは内部アドレスによって前記ブリッジネットワーク上でアドレス指定可能である、前記実装することと、
前記ブリッジによって前記コンテナから分離されたルーティングプロセスであって、
前記ブリッジから、パケットであって、その送信元アドレスとして前記ブリッジネットワーク上の前記コンテナの前記内部アドレスを有し、その宛先アドレスとしてマルチキャストグループアドレスを有する、前記パケットを取得することと、
前記パケットの有効期限パラメータを増加させることと、
前記ホストネットワーク要素の前記外部インタフェースを前記パケットの次のホップとして識別することと、
前記パケットの前記送信元アドレスを前記ホストネットワーク要素のアドレスに置き換えることと、
前記外部インタフェースを介して前記パケットを前記ホストネットワーク要素から外へ送信することと、
を含む、前記ルーティングプロセスを実装することと、
を含む、前記方法を遂行するように構成されている、
前記ホストネットワーク要素。
【請求項61】
ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体であって、前記ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、前記プロセッサによる前記命令の実行によって、前記ホストネットワーク要素に、方法であって、
コンテナ、ブリッジ、及びブリッジネットワークを実装することであって、前記コンテナは内部アドレスによって前記ブリッジネットワーク上でアドレス指定可能である、前記実装することと、
前記ブリッジによって前記コンテナから分離されたルーティングプロセスであって、
前記ブリッジから、パケットであって、その送信元アドレスとして前記ブリッジネットワーク上の前記コンテナの前記内部アドレスを有し、その宛先アドレスとしてマルチキャストグループアドレスを有する、前記パケットを取得することと、
前記パケットの有効期限パラメータを増加させることと、
前記ホストネットワーク要素の前記外部インタフェースを前記パケットの次のホップとして識別することと、
前記パケットの前記送信元アドレスを前記ホストネットワーク要素のアドレスに置き換えることと、
前記外部インタフェースを介して前記パケットを前記ホストネットワーク要素から外へ送信することと、
を含む、前記ルーティングプロセスを実装することと、
を含む、前記方法を遂行させる、前記非一時的なコンピュータ可読媒体。
【請求項62】
パケットベースの環境においてホストネットワーク要素のプロセッサによって実行される方法であって、前記ホストネットワーク要素はコンテナ及びコンテナエンジンを実装し、前記コンテナは前記コンテナエンジンによって使用される内部アドレスによってアドレス指定可能であり、前記方法は、
送信元アドレス、宛先アドレス、及び有効期限パラメータを有するパケットを取得することと、
前記パケットの属性に基づいて前記パケットを変更し、前記変更されたパケットを前記ホストネットワーク要素の内部インタフェースまたは外部インタフェースに送信することと、
を含み、
前記パケットが前記内部インタフェースから取得され、前記パケットの前記送信元アドレスが前記コンテナの前記内部アドレスであり、前記パケットの前記宛先がマルチキャストグループアドレスである場合、前記変更することは、前記パケットの前記有効期限パラメータを増加させて前記パケットの前記送信元アドレスが前記ホストの前記アドレスとなるように設定することを含み、前記送信することは、前記変更されたパケットを前記ホストネットワーク要素の前記外部インタフェースに送信することを含む、
前記方法。
【請求項63】
パケットベースのデータネットワークで使用するためのホストネットワーク要素であって、
プロセッサと、
前記プロセッサに動作可能に結合され、非一時的なコンピュータ可読命令を格納するメモリと、
前記プロセッサに動作可能に結合され、前記パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースと、
を含み、
前記プロセッサは、内部インタフェースを備えたコンテナ及びコンテナエンジンを実装するように構成されており、前記コンテナは前記メモリに格納された内部アドレスによってアドレス指定可能であり、前記プロセッサは前記命令を実行してそれによって、方法であって、
送信元アドレス、宛先アドレス、及び有効期限パラメータを有するパケットを取得することと、
前記パケットの属性に基づいて前記パケットを変更し、前記変更されたパケットを前記ホストネットワーク要素の前記内部インタフェースまたは外部インタフェースに送信することと、
を含み、
前記パケットが前記内部インタフェースから取得され、前記パケットの前記送信元アドレスが前記コンテナの前記内部アドレスであり、前記パケットの前記宛先がマルチキャストグループアドレスである場合、前記変更することは、前記パケットの前記有効期限パラメータを増加させて前記パケットの前記送信元アドレスが前記ホストの前記アドレスとなるように設定することを含み、前記送信することは、前記変更されたパケットを前記ホストネットワーク要素の前記外部インタフェースに送信することを含む、
前記方法を遂行するようにさらに構成されている、
前記ホストネットワーク要素。
【請求項64】
パケットベースの環境におけるホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体であって、前記ホストネットワーク要素は、コンテナ及びコンテナエンジンを実装し、前記コンテナは、前記コンテナエンジンによって使用される内部アドレスによってアドレス指定可能であり、前記プロセッサによる前記命令の実行によって、前記ホストネットワーク要素に、方法であって、
送信元アドレス、宛先アドレス、及び有効期限パラメータを有するパケットを取得することと、
前記パケットの属性に基づいて前記パケットを変更し、前記変更されたパケットを前記ホストネットワーク要素の前記内部インタフェースまたは外部インタフェースに送信することと、
を含み、
前記パケットが前記内部インタフェースから取得され、前記パケットの前記送信元アドレスが前記コンテナの前記内部アドレスであり、前記パケットの前記宛先がマルチキャストグループアドレスである場合、前記変更することは、前記パケットの前記有効期限パラメータを増加させて前記パケットの前記送信元アドレスが前記ホストの前記アドレスとなるように設定することを含み、前記送信することは、前記変更されたパケットを前記ホストネットワーク要素の前記外部インタフェースに送信することを含む、
前記方法を遂行させる、前記非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本明細書は、概してデータネットワークに関し、特にコンテナ化された環境におけるマルチキャスト通信に関する。
【背景技術】
【0002】
ネットワーク内でマルチキャストトラフィックを送信することが望ましい場合がよくある。このようにして、トラフィックはマルチキャストグループの複数のメンバーに到達し、様々な方法で処理できるようになる。これは、カメラがマルチキャストグループのビデオトラフィックを発行し、ホストがマルチキャストグループに参加してビデオトラフィックにアクセスするビデオ処理アプリケーションで頻繁に発生する。
【0003】
効率性とセキュリティ上の理由から、コンテナ化された環境を実装することが望ましい場合もよくある。本質的には、コンテナによりアプリケーションを相互に分離し、外部との通信は共通のネットワークブリッジを介して行われるようになる。
【0004】
しかしながら、ネットワークブリッジが使用されている最中に、コンテナ上で実行されているアプリケーションからマルチキャストトラフィックが到達したり発信されたりすることが現在のところ問題となっている。これは、ネットワークブリッジによってコンテナがネットワークから隠され、マルチキャストグループを特定のアプリケーションに関連付ける便利な方法がないためである。
【発明の概要】
【0005】
第1の広範な態様によれば、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有するホストネットワーク要素のプロセッサによって実行される方法が提供され、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装する。この方法は、コンテナがマルチキャストグループアドレスを有するマルチキャストグループに参加する要求の指示を取得すること、この取得に応答して、ホストネットワーク要素がマルチキャストグループアドレスを有するマルチキャストグループに参加する要求を、外部インタフェースを介して送信すること、ブリッジを、外部インタフェースから取得され、マルチキャストグループアドレス宛ての、将来のパケットの次のホップにするように、ルーティングテーブルを変更すること、及びこのような将来のパケットの有効期限パラメータの増加を設定することを含む。
【0006】
別の広範な態様によれば、ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体が提供され、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、プロセッサによる命令の実行によって、ホストネットワーク要素は前述の方法を遂行する。
【0007】
別の広範な態様によれば、ホストネットワーク要素のプロセッサによって実行される方法が提供され、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、ホストネットワーク要素は、外部アドレスによってパケットベースのデータネットワーク上でアドレス指定可能であり、ホストネットワーク要素は、メモリにルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、コンテナは、ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能である。プロセッサによる命令の実行によって、ホストネットワーク要素は前述の方法を遂行する。
【0008】
別の広範な態様によれば、ホストネットワーク要素のプロセッサによって実行される方法が提供され、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、ホストネットワーク要素は、外部アドレスによってパケットベースのデータネットワーク上でアドレス指定可能であり、ホストネットワーク要素は、メモリにルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、コンテナは、ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能である。この方法は、外部インタフェースを、ブリッジから取得されその送信元アドレスがコンテナの内部アドレスであり、マルチキャストグループ宛てである、将来のパケットの次のホップにするように、ルーティングテーブルを変更することを含む。この方法は、このような将来のパケットの有効期限パラメータの増加を設定することも含む。この方法はさらに、このような将来のパケットの送信元アドレスをホストネットワーク要素の外部アドレスに置き換えるアドレス変更を設定することを含む。
【0009】
別の広範な態様によれば、パケットベースのデータネットワークで使用するためのホストネットワーク要素が提供され、ホストネットワーク要素は、プロセッサ、プロセッサに動作可能に結合されたメモリ、プロセッサに動作可能に結合され、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを含み、メモリは、パケットベースのデータネットワーク上でホストネットワーク要素をアドレス指定可能な外部アドレスを格納し、メモリは、ルーティングテーブル及び非一時的なコンピュータ可読命令をさらに格納し、プロセッサは、コンテナ、ブリッジ、及びブリッジネットワークを実装するように構成されており、コンテナはさらに、ブリッジネットワーク上で内部アドレスによってアドレス指定可能であり、プロセッサは、命令を実行してそれにより前述の方法を遂行するように構成されている。
【0010】
別の広範な態様によれば、ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体が提供され、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、ホストネットワーク要素は、外部アドレスによってパケットベースのデータネットワーク上でアドレス指定可能であり、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、コンテナは、ブリッジに関連付けられたブリッジネットワーク上で内部アドレスによってアドレス指定可能であり、プロセッサによる命令の実行によって、ホストネットワーク要素は前述の方法を遂行する。
【0011】
別の広範な態様によれば、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有するホストネットワーク要素のプロセッサによって実行される方法が提供され、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、ホストは、ブリッジに接続するための内部インタフェースを実装している。この方法は、マルチキャストグループアドレスである宛先アドレスを有するパケットを外部インタフェースから取得することを含む。この方法は、パケットの有効期限パラメータを増加させることも含む。この方法はさらに、ルーティングテーブルを参照して、内部インタフェースをパケットの次のホップとして識別することを含む。また、この方法は、内部インタフェースを介してパケットをブリッジに送信することを含む。
【0012】
別の広範な態様によれば、パケットベースのデータネットワークで使用するためのホストネットワーク要素が提供され、ホストネットワーク要素は、プロセッサ、プロセッサに動作可能に結合されたメモリ、プロセッサに動作可能に結合され、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを含み、メモリはルーティングテーブル及び非一時的なコンピュータ可読命令を格納し、プロセッサはコンテナ、ブリッジ、及びブリッジに接続するための内部インタフェースを実装するように構成されており、プロセッサは、命令を実行してそれにより前述の方法を遂行するようにさらに構成されている。
【0013】
別の広範な態様によれば、ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体が提供され、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、ホストは、ブリッジに接続するための内部インタフェースを実装し、プロセッサによる命令の実行によって、ホストネットワーク要素は前述の方法を遂行する。
【0014】
別の広範な態様によれば、各パケットが送信元アドレスと宛先アドレスを有し、ホストネットワーク要素がパケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有する、パケットベース環境においてホストネットワーク要素のプロセッサによって実行される方法が提供される。この方法は、コンテナ、ブリッジ、及びブリッジネットワークを実装することを含み、コンテナは内部アドレスによってブリッジネットワーク上でアドレス指定可能である。この方法は、ブリッジによってコンテナから分離されたルーティングプロセスを実装することも含む。ルーティングプロセス自体には、ブリッジから、パケットであって、その送信元アドレスとしてブリッジネットワーク上のコンテナの内部アドレスを有し、その宛先アドレスとしてマルチキャストグループアドレスを有するパケットを取得すること、パケットの有効期限パラメータを増加させること、ホストネットワーク要素の外部インタフェースをパケットの次のホップとして識別すること、パケットの送信元アドレスをホストネットワーク要素のアドレスに置き換えること、及び外部インタフェースを介してパケットをホストネットワーク要素から外へ送信することが含まれる。
【0015】
別の広範な態様によれば、パケットベースのデータネットワークで使用するためのホストネットワーク要素が提供され、ホストネットワーク要素は、プロセッサ、プロセッサに動作可能に結合された、非一時的なコンピュータ可読命令を格納するメモリ、プロセッサに動作可能に結合され、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを含み、プロセッサは、命令を実行してそれにより前述の方法を遂行するように構成されている。
【0016】
別の広範な態様によれば、ホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体が提供され、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、プロセッサによる命令の実行によって、ホストネットワーク要素は前述の方法を遂行する。
【0017】
さらに広範な態様によれば、パケットベースの環境においてホストネットワーク要素のプロセッサによって実行される方法が提供され、ホストネットワーク要素はコンテナ及びコンテナエンジンを実装し、コンテナはコンテナエンジンによって使用される内部アドレスによってアドレス指定可能である。この方法は、送信元アドレス、宛先アドレス、及び有効期限パラメータを有するパケットを取得することを含み、パケットの属性に基づいて、パケットが変更され、ホストネットワーク要素の内部インタフェースまたは外部インタフェースに送信される。パケットが内部インタフェースから取得され、パケットの送信元アドレスがコンテナの内部アドレスであり、パケットの宛先がマルチキャストグループアドレスである場合、(i)前述の変更により、パケットの有効期限パラメータが増加し、パケットの送信元アドレスがホストのアドレスに設定され、(ii)前述の送信により、変更されたパケットがホストネットワーク要素の外部インタフェースに送信されることに留意されたい。
【0018】
別の広範な態様によれば、パケットベースのデータネットワークで使用するためのホストネットワーク要素が提供され、ホストネットワーク要素は、プロセッサ、プロセッサに動作可能に結合された、非一時的なコンピュータ可読命令を格納するメモリ、プロセッサに動作可能に結合され、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを含み、プロセッサは、内部インタフェースを備えたコンテナ及びコンテナエンジンを実装するように構成され、コンテナはメモリに格納された内部アドレスによってアドレス指定可能であり、プロセッサは、命令を実行してそれにより前述の方法を遂行するようにさらに構成されている。
【0019】
別の広範な態様によれば、パケットベースの環境におけるホストネットワーク要素のプロセッサによって実行可能なコンピュータ可読命令を格納する非一時的なコンピュータ可読媒体が提供され、ホストネットワーク要素は、コンテナ及びコンテナエンジンを実装し、コンテナは、コンテナエンジンによって使用される内部アドレスによってアドレス指定可能であり、プロセッサによる命令の実行によって、ホストネットワーク要素は前述の方法を遂行する。
【0020】
上記の態様について、添付の図面を参照してさらに詳しく説明する。
【図面の簡単な説明】
【0021】
【
図1】非限定的な実施形態による、ホストを含む複数のネットワークデバイスを含むデータネットワークのブロック図である。
【
図2】ヘッダとペイロードを備えるIPパケットの例を示す。
【
図3】非限定的な実施形態による、ルーティングプロセス、ルーティング制御プロセス、ブリッジ、及び複数のコンテナを含む、ホストによって実装されるプロセス及びデータ構造のブロック図である。
【
図4】非限定的な実施形態による、コンテナのマルチキャストグループへの参加要求の通知に応答してルーティング制御プロセスによって実行される一連のアクションを示すフローチャートである。
【
図5】非限定的な実施形態による、外部インタフェースを介して取得されて特定のマルチキャストグループ宛てられたIPパケットを処理するために、ルーティングプロセスによって遂行されるアクションを示すフローチャートである。
【
図6】非限定的な実施形態による、ブリッジを介して取得されたコンテナ発行IPパケットを処理するために、ルーティングプロセスによって遂行されるアクションを示すフローチャートである。
【
図7】非限定的な実施形態による、コンピューティングデバイスの様々な要素を示すブロック図である。
【
図8】非限定的な実施形態による、ルーティングテーブルの一例を示す。
【
図9】様々な非限定的な実施形態による、ルーティング制御プロセスによって遂行されるアクションを示すフローチャートである。
【
図10】様々な非限定的な実施形態による、ルーティング制御プロセスによって遂行されるアクションを示すフローチャートである。
【
図11】様々な非限定的な実施形態による、ルーティングプロセスによって遂行されるアクションを示すフローチャートである。
【
図12】様々な非限定的な実施形態による、ルーティングプロセスによって遂行されるアクションを示すフローチャートである。
【
図13】様々な非限定的な実施形態による、ルーティングプロセスによって遂行されるアクションを示すフローチャートである。
【発明を実施するための形態】
【0022】
図面は非限定的なものとみなされる。
【0023】
図1を参照すると、複数のネットワークデバイス12がデータネットワーク10の一部として相互接続されたネットワークアーキテクチャが示されている。データネットワーク10は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、キャンパスエリアネットワーク(CAN)、パブリックインターネットなどであり得る。データネットワーク10は、ネットワークデバイス12の1つ以上を介して、少なくとも1つの他のネットワーク20に接続できる。
【0024】
ネットワークデバイス12には、様々なエンドノード14とホストネットワーク要素16(または単に「ホスト」)が含まれる。エンドノード14は、データトラフィックのソースまたはコンシューマであり得る。非限定的な一実施形態では、エンドノード14は、安全なリンクを介してビデオデータを送信するセキュリティカメラであり得る。別の非限定的な実施形態では、エンドノード14は、デジタル音楽、ゲームデータ、またはレンダリング命令をインターネット経由でストリーミングするウェブサーバとすることができる。追加のネットワーク要素(例えば、サーバ、スイッチ、エッジデバイス、ルータ、モバイルデバイスなど)もネットワークアーキテクチャの一部になり得る。例えば、ルータ18は、エンドノード14とホスト16の間に配置されてもよい。様々なネットワークデバイス12を相互接続するリンクは、有線または無線であってもよい。
【0025】
ホスト16は、エンドノード14によって送信される(そしてルータ18を介して到着する)データトラフィックの一部を処理するために使用され、また、他のネットワークデバイスにデータトラフィックを送信するためにも使用され得る(これもルータ18を介して)。非限定的な実装では、ハードウェアの観点から、
図7を参照すると、ホスト16にはプロセッサ702、メモリ704、及びネットワークインタフェース706が含まれ、これらはすべて内部バス708を介して相互接続され得る。メモリ704には、プロセッサ702によって読み取られて実行されるコンピュータ可読命令が格納され、これにより、プロセッサ702は、以下に説明するように、様々なプロセスを実施する。メモリ704には、また後述するように、このようなプロセスで使用するためのデータ構造(例えば、テーブル、データベースなど)も格納される。
【0026】
ネットワークデバイス12の一部(例えば、エンドノード14、ホスト16、ルータ18)には、静的または動的に指定され得るIP(インターネットプロトコル)アドレスがある。このようなIPアドレスは、IPパケットを介してデータトラフィックを通信するために使用され、IPパケットの例には、IPv4パケット(RFC790を参照。本書に参照として組み込まれている)やIPv6パケット(RFC2460及びRFC8200を参照。本書に参照として組み込まれている)などがある。
図2を参照すると、ヘッダ204とペイロード206を含むIPパケット202の例が示されている。ヘッダ204には、送信元アドレス208(パケットの送信元デバイスのIPアドレス)、宛先アドレス210(別のIPアドレス)、有効期限パラメータ(EXP)212、及びその他の情報214が含まれる。有効期限パラメータ212は、IPv4では存続時間(TTL)、IPv6ではホップリミットと呼ばれる。ペイロード206には、対象となるデータトラフィック(例えば、ビデオデータ、ストリーミングデジタル音楽、ゲームデータ、画像、レンダリング命令、ドキュメント、自動検出メッセージなど)が含まれる。
【0027】
有効期限パラメータ212は、データネットワーク10でパケットを再送信できる回数を制限するメカニズムを指す。有効期限パラメータ212は、IPパケット202のヘッダ204に添付または埋め込まれたカウンタとして実装される場合がある。IPパケット202に対して規定のイベントカウントが発生すると、データトラフィック(IPパケットのペイロード206に保持されている)は破棄されるか、再検証される。
【0028】
ここで
図3を参照すると、非限定的な実施形態に従って、ホストのプロセッサによって実装される様々なプロセス及びデータ構造の機能ブロック図が示されている。プロセスには、ルーティングプロセス302、ルーティング制御プロセス304、及びコンテナ化された環境が含まれる。
【0029】
コンテナ化された環境には、複数のコンテナ308とコンテナエンジン309が含まれる。様々なコンテナ308は、任意の数のアプリケーションを実行し、これには、IPパケットを消費及び/または生成するためのアプリケーションが含まれ得る。コンテナは、コードとその依存関係をパッケージ化するソフトウェアの単位であり、これにより、基盤となるコンピューティングプラットフォーム/ネイティブオペレーティングシステムに関係なく、アプリケーションが確実に実行される。特に、コンテナエンジン309は、所与のコンテナに必要な様々なファイルとメタデータを解凍し、それらをカーネル(以下で説明)に渡すように構成されている。コンテナエンジン309は、ブリッジネットワーク314と(ソフトウェア)ブリッジ316を実装できる。各コンテナ308には、ブリッジ316が認識しているブリッジネットワーク314上の内部アドレスがあり、これは、例えばMACアドレスとすることができる。ブリッジネットワーク314は、ブリッジ316を使用して、同じブリッジネットワークに接続されたコンテナ(つまり、コンテナ308)が通信できるようにし、ブリッジネットワーク314に接続されていないコンテナ(
図3にはそのようなコンテナは示されていない)から分離する。したがって、コンテナ308はルーティングプロセス302から分離され、コンテナエンジン309(特にブリッジ316)によってルーティングプロセス302に挿入されたルールに基づいて、ルーティングプロセス302から各コンテナ308に到達できるようになる。適切なコンテナエンジンの非限定的な例としては、Dockerがあり、Docker,Inc.,3790 El Camino Real #1052,Palo Alto,California,94306から入手可能である。コンテナエンジンの他の例としては、CRI-O、Railcar、RKT、Podman及びLXCなどがある。ただし、これらの例は限定的なものとして解釈されるべきではない。
【0030】
図示の非限定的な実施形態では、ルーティングプロセス302が接続される複数のインタフェースも提供される。この場合、外部インタフェース320はルーティングプロセス302をルータ18に接続し、内部インタフェース330はルーティングプロセス302をブリッジ316に接続する。外部インタフェース320と内部インタフェース330はそれぞれ、ルーティングプロセス302に認識されているそれぞれのIPアドレスに関連付けられている。その他の外部及び内部インタフェース340が提供される場合もある。ルーティングプロセス302(ホストのオペレーティングシステムの一部、つまり「カーネル」として実装される場合がある)は、内部及び外部インタフェース320、330、340を介して取得/受信されたIPパケットを処理するように構成される。具体的には、ルーチンプロセスは、取得/受信されたパケットを処理し、場合によってはそれを変更し、場合によってはそれを外部及び/または内部インタフェース320、330、340の1つ以上を介して出力するように構成できる。
【0031】
ルーティングプロセス302は、その機能を実行するためにメモリ内の様々なデータ構造にアクセスする。このようなデータ構造には、ルーティングテーブル350、リスト(「TTL増加リスト」と呼ばれる)360、及びルールデータベース370が含まれ得る。ここで、これらについて詳しく説明するが、「テーブル」、「リスト」、及び「データベース」は、データ構造の非限定的な例を参照する表現であり、もちろん、データを表す同等の方法が使用される場合があることを理解されたい。
【0032】
図8を参照すると、ルーティングテーブル350は、特定のインタフェース(「前のホップ」352)を介して取得され、特定の送信元IPアドレス354と宛先IPアドレス356を有するIPパケットがルーティングされるべきインタフェース(「次のホップ」358)のIDを提供するデータ構造である。前のホップ352と次のホップ358はそれぞれ、内部インタフェース(ブリッジ316につながる内部インタフェース330など)または外部インタフェース(ネットワークインタフェース706につながる外部インタフェース320など)であり得る。次のホップ358には、特定の条件下でIPパケットを送信する複数のインタフェース(内部及び/または外部)が含まれる場合もある。
【0033】
「ユニキャスト」ルーティングテーブル(1対1のトラフィックのルーティングに使用)と「マルチキャスト」ルーティングテーブル(1対多、つまりマルチキャストのトラフィックのルーティングに使用)を区別できる。マルチキャストトラフィックは、宛先IPアドレスが特定のネットワークデバイスのIPアドレスではなく、データトラフィックの関心のある受信者に知られている「マルチキャストグループ」を識別するIPパケットで構成されるデータトラフィックと見なすことができ、これは、ネットワーク内の様々なポイントに多数存在する場合がある。したがって、マルチキャストルーティングテーブルがユニキャストルーティングテーブルと異なる点の1つは、次のホップとして複数のインタフェースが指定される可能性があることである。
【0034】
上記を踏まえて、ルーティングプロセス302によって遂行される機能の1つは、ホスト外部から取得されたIPパケット(例えば、外部インタフェース320で受信/取得されたもの、いわゆる「インバウンド」IPパケット)またはコンテナ308の1つから取得されたIPパケット(例えば、ブリッジ316からの内部インタフェース330で受信/取得されたもの、いわゆる「コンテナ発行」IPパケット)を、適切なルーティングテーブル(ユニキャストまたはマルチキャスト)をチェックすることによって処理して、IPパケットを送信する必要がある次のホップ(例えば、外部インタフェースまたは内部インタフェース(複数可))を決定し、IPパケットを次のホップに送信することである。
【0035】
ルーティングプロセス302によって遂行される機能の別の1つには、IPパケットの有効期限パラメータ(例えば、存続時間(TTL)またはホップリミット)を変更することが含まれる。いくつかの実施形態では、後述するように、IPパケット202が、そのマルチキャストグループアドレスが「TTL増加リスト」360と呼ばれるマルチキャストグループアドレスのリストにあるマルチキャストパケットである場合、IPパケット202の有効期限パラメータ212が増加されるべきである。特定のマルチキャストグループアドレスをTTL増加リスト360に追加する(またはそこから削除する)ことは、ルーティング制御プロセス304によって遂行される。
【0036】
ここで、ルールデータベース370について説明する。このデータ構造には、ルーティングプロセス302が着信及び発信データトラフィックをルーティングするときに従わなければならないルールのセットが含まれている。ルールのセットには、IPパケットを内部または外部インタフェースに送信する前に、IPパケットの送信元IPアドレスまたは宛先IPアドレスを変更するためのルールを含めることができる。Linux環境では、ルールデータベース370によってコード化されたルールは、「iptablesルール」と呼ばれることがある。iptablesルールの一例としては、IPパケットを外部インタフェース320に送信する前に、IPパケットの送信元IPアドレスがホスト16のIPアドレスに設定されるべきであるというルールを挙げることができる。ルールデータベース370内の個々のルールの作成または削除は、ルーティング制御プロセス304によって遂行される。
【0037】
TTL増加リスト360にマルチキャストグループアドレスを追加(または削除)したり、ルールデータベース370にルールを作成または削除したりするなどの上記の機能を遂行することにより、ルーティング制御プロセス304(ルーティング「デーモン」とも呼ぶことができる)は、メモリ704に変更を加え、ルーティングプロセス302の結果を変更する。加えて、ルーティング制御プロセス304は、ルーティングプロセス302に、制御メッセージ390を(例えば、外部インタフェース320を介して)ルータ18に、及び(例えば、内部インタフェース330及びブリッジ316を介して)コンテナ308に送信するように指示するように構成できる。
【0038】
特定の非限定的な実施形態によれば、特定のコンテナ308Pは特定のマルチキャストグループに参加することを望む場合がある。つまり、特定のコンテナ308Pは、宛先IPアドレスとして特定のマルチキャストグループのアドレスを有するIPパケットの受信者になることを望む場合がある。特定のマルチキャストグループのアドレス(つまり、特定のマルチキャストグループアドレス)は、オンラインリソース、業界全体の製造元コード、またはユーザ入力を含む様々な方法で、ホスト16に通知される/分かるようになることがある。したがって、
図4を参照すると、特定のコンテナ308Pは、特定のマルチキャストグループアドレスを有するマルチキャストグループにコンテナが参加することを要求するマルチキャスト参加要求402を発行することができる。
【0039】
IPv4ベースのネットワークに適用可能な非限定的な実施形態では、マルチキャスト参加要求402を送信すると、特定のコンテナ308が、いわゆる「IGMP要求」を(ブリッジ316を介して)ルーティングプロセス302に送信することが必要になる場合がある。IGMP要求は、インターネットグループメンバーシッププロトコル(RFC1112、2236、3376、及び4604で説明されており、本書に参照として組み込まれている)に準拠したメッセージであり、要求者のIPアドレスと、要求者が参加することを望む(つまり、要求者が受信するマルチキャストパケットのマルチキャストグループアドレスを識別する)マルチキャストグループを指定する。
【0040】
同様の状況及び類似のメッセージ交換がIPv6ベースのネットワークにも適用可能であり、IGMPを実装する代わりに、様々なネットワークエンティティが、RFC2710、3590、及び3810で説明され、本明細書に参照として組み込まれているマルチキャストリスナー検出(MLD)プロトコルを実装できる、ということが理解されるはずである。
【0041】
ここで、マルチキャスト参加要求402(例えば、IGMP要求またはMLD要求)が特定のコンテナ308Pによって発行され、マルチキャスト参加要求が、特定のコンテナ308Pがリッスンしたい特定のマルチキャストグループアドレス(「MG」で示される)を示しているとする。これは、所与のエンドノードによって使用されることが(特定のコンテナ308Pによって)認識されているマルチキャストグループアドレスである可能性がある。
【0042】
特定のコンテナ308P(ブリッジ316を介して)からマルチキャスト参加要求402(IPv4ベースのネットワークの場合はIGMP要求、IPv6ベースのネットワークの場合はMLD要求であり得る)を受信すると、ルーティングプロセス302は、ルーティング制御プロセス304に通知404を発行する。通知404は、ソフトウェアのパラメータの変更として配信できる。これから説明する特定の実施形態によれば、ルーティング制御プロセス304は、このような通知に応答するように慎重に設計されている。
【0043】
コンテナが発行したマルチキャストグループへの参加要求に応答するルーティング制御プロセス
図4を引き続き参照すると、ルーティングプロセス302によりマルチキャスト参加要求402が通知されたことに応答してルーティング制御プロセス304によって実行される一連のアクションが示されている。これらのアクションは、説明されている順序で実行する必要はない。
【0044】
ブロック410では、ルーティング制御プロセス304は、特定のマルチキャストグループアドレスMGをTTL増加リスト360(つまり、ルーティングプロセス302が有効期限パラメータを増加させる必要があるマルチキャストグループアドレスのリスト)に追加する。
【0045】
ブロック420では、ルーティング制御プロセス304は、その宛先IPアドレス356として特定のマルチキャストグループアドレスMGを有する、ルータ18から受信/取得されたインバウンドIPパケット(つまり、前のホップ352は外部インタフェース320である)に対して、次のホップ358が内部インタフェース330(ブリッジ316につながる)に設定される状況を反映するエントリを追加するために、マルチキャストルーティングテーブル350を編集/変更する。また、ルーティング制御プロセス304は、その宛先IPアドレス356として特定のマルチキャストグループアドレスMGを有する、ブリッジ316から取得されたコンテナ発行IPパケット(つまり、前のホップ352は内部インタフェース330である)に対して、次のホップ358が外部インタフェース320(ルータ18につながる)に設定される状況を反映するために、マルチキャストルーティングテーブル350を編集する。
【0046】
ブロック430では、ルーティング制御プロセス304がルールデータベース370を編集/変更する。具体的には、ルーティング制御プロセス304は、「iptablesルール」を確立し、特定のコンテナの内部IPアドレスを送信元IPアドレスとして、そして特定のマルチキャストグループアドレスMGを宛先IPアドレスとして有する、将来のコンテナ発行IPパケットに対して、ルーティングプロセス302がパケットの送信元IPアドレスをホスト16のIPアドレスに置き換えるようにする(これを「マスカレード」と呼ぶことができる)。
【0047】
その後、ルーティング制御プロセス304は、ルーティングプロセス302にメッセージ406を送信し、ルーティングプロセス302に新しいマルチキャスト参加要求408を送信させる。この新しいマルチキャスト参加要求308はルータ18に送信され、ホスト16が特定のマルチキャストグループアドレスMGに関連付けられたマルチキャストグループに参加することを希望していることを示す。新しいマルチキャスト参加要求408は、IGMPプロトコル(IPv4の場合)またはMLDプロトコル(IPv6の場合)に準拠し、ホストから発信され、特定のマルチキャストグループアドレスMGを含むことができる。メッセージはソフトウェアのパラメータの変更として送信できる。
【0048】
データトラフィックを含むインバウンドIPパケットに応答するルーティングプロセス
次に、
図5を参照して、宛先IPアドレスが特定のマルチキャストグループアドレスMGである、その後に取得されたインバウンドIPパケット(つまり、外部インタフェース320から受信されたパケット)を処理するためにルーティングプロセス302によって遂行されるアクションについて説明する。これらのアクションは、説明されている順序で実行する必要はない。
【0049】
ブロック510では、ルーティングプロセスはTTL増加リスト360をチェックし、宛先IPアドレスがTTL増加リスト360にある場合はIPパケット502の有効期限パラメータを増加させる。この例では、特定のマルチキャストグループアドレスMGがTTLリスト360上にあると見なされるため(前述のとおり)、ルーティングプロセス302は、ヘッダ内のデータを変更することによって、IPパケット502の有効期限パラメータ(例えば、存続時間またはホップリミット)を増加させる(例えば、インクリメントする)。
【0050】
ブロック520では、ルーティングプロセス302はマルチキャストルーティングテーブル350を参照して次のホップを識別する。この場合、特定のマルチキャストグループアドレスMG(及びIPパケット502が外部インタフェース320から取得されたという事実)に基づいて、次のホップはブリッジ316につながる内部インタフェース330であると識別される。
【0051】
ブロック530では、ルーティングプロセス302はIPパケット502を次のホップ(この場合は内部インタフェース330を介して到達可能なブリッジ316である)に送信する。
【0052】
ブリッジ316は、特定のコンテナ308Bが特定のマルチキャストグループに参加することに関心を示したことを認識している。これは、前述のように、ブリッジ316が以前に特定のコンテナからマルチキャスト参加要求402を受信し、それをルーティングプロセス302に中継していたためである。したがって、ブリッジ316がルーティングプロセス302から前述のIPパケット502を取得すると(ブロック530の結果として)、ブリッジ316は、IPパケット502のヘッダの情報(特定のマルチキャストグループアドレスMGを含む可能性がある)から、IPパケット502が特定のコンテナ308Pに送信されるべきであると決定する。したがって、IPパケット502は、ブリッジネットワーク314上の内部アドレス(例えば、ブリッジ316に知られているそのMACアドレスまたはその他のレイヤ2アドレス)で特定のコンテナ308Pに配信され、特定のコンテナ308Pで受信されると、IPパケット502は関連するアプリケーションに従って処理される。
【0053】
データトラフィックを含むコンテナ発行IPパケットに応答するルーティングプロセス
また、特定のコンテナ308Pは、新しいマルチキャストグループアドレスNGによって識別される所与のマルチキャストグループに属するIPパケットを発行し得ることも想定される。(新しいマルチキャストグループアドレスNGは、すでにTTL増加リスト360にあると想定される。)このようなコンテナ発行IPパケットは、送信元IPアドレスとして特定のコンテナ308Pの内部IPアドレスを有し、宛先IPアドレスとして新しいマルチキャストグループアドレスNGを有する。
図6を参照すると、このようなコンテナ発行パケット602は、特定のコンテナ308Pに接続するブリッジ316に接続された内部インタフェース330を介してルーティングプロセス302によって受信/取得される。このような状況でルーティングプロセス302によって遂行されるアクションについて、引き続き
図6を参照しながら説明する。これらのアクションは、説明されている順序で実行する必要はない。
【0054】
ブロック610では、ルーティングプロセス302はTTL増加リスト360をチェックし、宛先IPアドレスがTTL増加リスト360にある場合は取得されたIPパケット602の有効期限パラメータを増加させる。この場合、取得されたパケット602は新しいマルチキャストグループアドレスNG宛てであるため(また、前述のように、新しいマルチキャストグループアドレスNGはすでにTTL増加リスト360にあるため)、取得されたIPパケット602の有効期限パラメータは適宜変更される(例えば、増加またはインクリメントされる)。
【0055】
ブロック620では、ルーティングプロセス302はマルチキャストルーティングテーブル350を参照して次のホップを識別する。この場合、取得されたIPパケット602の宛先IPアドレスが新しいマルチキャストグループアドレスNGであるという事実に基づいて(また、IPパケット602が内部インタフェース330を介して取得されたという事実に基づいて)、次のホップは外部インタフェース320であると識別され、すなわち、取得されたIPパケット602は、ルータ18に接続された外部インタフェース330を介して送信されるべきであると決定される。
【0056】
ただし、そうする前に、ブロック630で、ルーティングプロセス302は、取得したIPパケット602の送信元IPアドレスをホスト16の外部IPアドレスに置き換える(これを「マスカレード」と呼ぶことができる)。その結果、変更されたIPパケット604が生成される。
【0057】
ブロック640では、次にルーティングプロセスは変更されたIPパケット604を、外部インタフェース320を介してルータ18に送信する。
【0058】
変更されたIPパケット604はルータ18に到達し、ホスト16による介入がなかったかのように、ルータ18自身のマルチキャストルーティングテーブルに従ってルーティングされる。
【0059】
要約すると、
図9を参照して、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有するホストネットワーク要素のプロセッサによって実行される方法900が説明されており、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装する。
【0060】
方法900のステップ910では、コンテナがマルチキャストグループアドレスを有するマルチキャストグループに参加することを要求する指示が取得される。
【0061】
方法900のステップ920では、取得に応答して、ホストネットワーク要素がマルチキャストグループアドレスを有するマルチキャストグループに参加する要求が外部インタフェースを介して送信される。
【0062】
方法900のステップ930では、ブリッジを、外部インタフェースから取得され、マルチキャストグループアドレス宛ての、将来のパケットの次のホップにするように、ルーティングテーブルが変更される。
【0063】
方法900のステップ940では、このような将来のパケットに対して有効期限パラメータの増加が設定される。
【0064】
図10を参照すると、ホストネットワーク要素のプロセッサによって実行される方法1000が説明されており、ホストネットワーク要素は、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有し、ホストネットワーク要素は、外部アドレスによってパケットベースのデータネットワーク上でアドレス指定可能であり、ホストネットワーク要素は、メモリにルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、コンテナは、ブリッジに関連付けられたブリッジネットワーク上の内部アドレスによってアドレス指定可能である。
【0065】
方法1000のステップ1010では、外部インタフェースを、ブリッジから取得され、その送信元アドレスがコンテナの内部アドレスであり、マルチキャストグループ宛てである、将来のパケットの次のホップになるように、ルーティングテーブルが変更される。
【0066】
方法1000のステップ1020では、このような将来のパケットに対して有効期限パラメータの増加が設定される。
【0067】
方法1000のステップ1030では、アドレス変更が設定され、これにより、このような将来のパケットの送信元アドレスがホストネットワーク要素の外部アドレスに置き換えられる。
【0068】
図11を参照すると、パケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有するホストネットワーク要素のプロセッサによって実行される方法1100が説明されており、ホストネットワーク要素は、メモリ内にルーティングテーブルを格納し、ブリッジに接続されたコンテナを実装し、ホストは、ブリッジに接続するための内部インタフェースを実装している。
【0069】
方法1100のステップ1110では、マルチキャストグループアドレスである宛先アドレスを有するパケットが外部インタフェースから取得される。
【0070】
方法1100のステップ1120では、パケットの有効期限パラメータが増加する。
【0071】
方法1100のステップ1130では、ルーティングテーブルを参照して、パケットの次のホップとして内部インタフェースを識別する。
【0072】
方法1100のステップ1140では、パケットが内部インタフェースを介してブリッジに送信される。
【0073】
図12を参照すると、各パケットが送信元アドレスと宛先アドレスを有し、ホストネットワーク要素がパケットベースのデータネットワークの少なくとも1つの他のネットワーク要素に接続するための外部インタフェースを有する、パケットベース環境のホストネットワーク要素のプロセッサによって実行される方法1200が説明されている。
【0074】
方法1200のステップ1210では、コンテナ、ブリッジ、及びブリッジネットワークが実装され、コンテナはブリッジネットワーク上で内部アドレスによってアドレス指定可能である。
【0075】
方法1200のステップ1220では、ブリッジによってコンテナから分離されたルーティングプロセスが実装される。
【0076】
ルーティングプロセス自体には、次のようないくつかのステップが含まれる。
【0077】
ステップ1222では、これによりパケットがブリッジから取得され、パケットは、その送信元アドレスとしてブリッジネットワーク上のコンテナの内部アドレスを有し、その宛先アドレスとしてマルチキャストグループアドレスを有する。
【0078】
ステップ1224では、これによりパケットの有効期限パラメータが増加する。
【0079】
ステップ1226では、ホストネットワーク要素の外部インタフェースがパケットの次のホップとして識別される。
【0080】
ステップ1228では、これによりパケットの送信元アドレスがホストネットワーク要素のアドレスに置き換えられる。
【0081】
ステップ1230では、これによりパケットが外部インタフェースを介してホストネットワーク要素から外へ送信される。
最後に、
図12の変形である
図13を参照すると、パケットベースの環境におけるホストネットワーク要素のプロセッサによって実行される方法1300が説明されており、ホストネットワーク要素はコンテナとブリッジネットワークを実装し、コンテナはブリッジネットワーク上の内部アドレスによってアドレス指定可能である。
【0082】
方法1300のステップ1310では、送信元アドレス、宛先アドレス、及び有効期限パラメータを有するパケットが取得される。
【0083】
方法1300のステップ1320では、パケットの属性に基づいてパケットが変更され、ホストネットワーク要素の内部インタフェースまたは外部インタフェースに送信される。パケットが内部インタフェースから受信/取得され、パケットの送信元アドレスがコンテナの内部アドレスであり、パケットの宛先がマルチキャストグループアドレスである場合、(i)前述の変更により、パケットの有効期限パラメータが増加し、パケットの送信元アドレスがホストのアドレスに設定され、(ii)前述の送信により、変更されたパケットがホストネットワーク要素の外部インタフェースに送信されることに留意されたい。
【0084】
上記のコンピュータ可読記憶媒体は、プロセッサなどの命令実行デバイスが使用するために、命令を非一時的な形式で保持及び格納できる有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、限定するものではないが、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁気記憶デバイス、半導体記憶デバイス、またはそれらの任意の適切な組み合わせであってもよい。コンピュータ可読記憶媒体のより多くの具体例は、網羅的ではないが、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、静的ランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読み取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードもしくは命令が溝に記憶された隆起構造などの機械的符号化デバイス、及び前述の任意の好適な組み合わせを含む。
【0085】
本明細書に記載のコンピュータ可読プログラム命令は、このようなコンピュータ可読記憶媒体からそれぞれのコンピューティング/処理装置にダウンロードすることも、または、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、及び/またはワイヤレスネットワークなどのネットワークを介して外部コンピュータまたは外部記憶装置にダウンロードすることもできる。ネットワークには、銅線伝送ケーブル、光伝送ファイバー、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、及び/またはエッジサーバが含まれ得る。各コンピューティング/処理装置内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信/取得し、そのコンピュータ可読プログラム命令をそれぞれのコンピューティング/処理装置内のコンピュータ可読記憶媒体に格納するために転送する。
【0086】
本開示の動作を遂行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、または、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語または類似するプログラミング言語などの従来の手続きプログラミング言語を含んだ1つ以上のプログラミング言語の任意の組み合わせで書かれたソースコードまたはオブジェクトコードのいずれかであってよい。コンピュータ可読プログラム命令は、ホスト上で完全に実行される場合もあれば、ホスト上で一部が実行され、リモートコンピュータ上で一部が実行される場合もある。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(LAN)もしくはワイドエリアネットワーク(WAN)を含む、任意の種類のネットワークを介してホストに接続することができ、または外部のコンピュータに(例えば、インターネットサービスプロバイダを用いるインターネット経由で)接続することができる。いくつかの実施形態では、例えば、プログラマブルロジック回路、フィールドプログラム可能ゲートアレイ(FPGA)、またはプログラム可能ロジックアレイ(PLA)を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることにより、コンピュータ可読プログラム命令を実行し、本開示の態様を実行することができる。
【0087】
本開示の態様は、様々な実施形態に従った方法、装置(システム)、及びコンピュータプログラム製品のフローチャート/信号フロー図及び/またはブロック図を参照して本明細書に説明されている。フローチャート図及び/またはブロック図の各ブロック、ならびにフローチャート図及び/またはブロック図のブロックの組み合わせは、コンピュータ可読プログラム命令によって実装できることが理解されよう。
【0088】
これらのコンピュータ可読プログラム命令は、汎用コンピュータのプロセッサ、専用コンピュータ、または機械を製造するための他のプログラム可能データ処理装置に提供されてもよく、これにより、コンピュータまたは他のプログラム可能データ処理装置のプロセッサを介して実行する命令は、ブロックまたは複数のブロックのフローチャート及び/またはブロック図に指定される機能/行為を実施するための手段を作成する。また、これらのコンピュータ可読プログラム命令は、コンピュータ、プログラム可能データ処理装置、及び/または他のデバイスに特定の方法で機能するように命令できるコンピュータ可読記憶媒体に記憶されてもよく、これにより、命令を記憶しているコンピュータ可読記憶媒体は、フローチャート及び/またはブロック図のブロックまたは複数のブロックに指定される機能/行為の態様を実施する命令を含んだ、製造品を含む。
【0089】
また、コンピュータ可読プログラム命令は、一連の操作ステップを、コンピュータ、他のプログラム可能装置、または他のデバイスで実行させて、コンピュータ、他のプログラム可能装置または他のデバイスで実行する命令が、ブロックまたは複数のブロックのフローチャート及び/またはブロック図で指定される機能/行為を実施するように、コンピュータ実装プロセスを作り出すために、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスの上にロードされてもよい。
【0090】
図のフローチャート及びブロック図は、本開示の様々な実施形態に従ったシステム、方法、装置、及びコンピュータプログラム製品の可能である実施態様のアーキテクチャ、機能、及び動作を示す。この点で、フローチャートまたはブロック図の各ブロックは、規定された論理関数(複数可)を実装するための1つ以上の実行可能命令を含むモジュール、セグメント、または命令の一部を表し得る。いくつかの代替実施態様では、ブロックに記載されている機能が、図に記載されている順序とは異なって行われる場合がある。例えば、連続して示される2つのブロックは、実際に、実質的に同時に実行され得る、または、ブロックは、時々、含まれる機能に応じて、逆の順序で実行され得る。また、ブロック図及び/またはフローチャート図の各ブロック、ならびにブロック図及び/またはフローチャート図のブロックの組み合わせは、指定された機能もしくは行為を実行する、または専用のハードウェア及びコンピュータ命令の組み合わせを遂行する、専用のハードウェアベースのシステムによって実装できることに留意されたい。
【0091】
本開示の様々な実施形態の説明は、例示の目的で提示しており、網羅的であることも、開示した実施形態に限定されることも意図していない。多くの修正及び変形は、説明した実施形態の範囲及び主旨から逸脱することなく当業者には明白であろう。本明細書で使用されている用語は、実施形態の原理、市場で見られる技術に対する実際の応用または技術的改善を最もよく説明するために、または当業者が本明細書で開示されている実施形態を理解できるようにするために選択されたものである。
【0092】
本明細書全体を通じて、「処理」、「コンピューティング」、「計算」、「決定」、「分析」などの用語を使用する議論は、電子量などの物理量として表されるデータを操作及び/または同様に物理量として表される他のデータに変換するコンピュータまたはコンピューティングシステム、または同様の電子コンピューティングデバイスの動作及び/またはプロセスを指す場合があることを理解されたい。
【0093】
「一実施形態」、「例示的な実施形態」または「実施形態」に対する本明細書全体を通じての言及は、実施形態に関連して記載される特定の特徴、構造、または特性が本開示の少なくとも1つの実施形態に含まれることを意味する。したがって、本明細書を通して様々な場所で「一実施形態では」、「例示的な実施形態では」、または「実施形態では」という語句が使用されている場合、必ずしもすべてが同じ実施形態を指しているわけではないが、場合によってはそうである可能性がある。さらに、特定の特徴、構造、または特性は、1つ以上の実施形態において、当業者には明らかな任意の好適な方法で組み合わせることができる。同様に、上記の実施形態例の説明では、開示を簡素化し、様々な態様の1つ以上の理解を助ける目的で、様々な特徴が1つの実施形態、図、またはその説明に一緒にグループ化されることがあることを理解する必要がある。しかしながら、開示の本方法は、それぞれの請求項に明示的に述べられるよりも多くの特徴を必要とするという意図を反映するものとして解釈されるべきではない。むしろ、以下の特許請求の範囲が反映するように、態様は、単一の前述の開示された実施形態のすべての特徴にあるわけではない。このように、発明を実施するための形態に続く特許請求の範囲は、この発明を実施するための形態に明示的組み込まれ、それぞれの請求項は、別個の実施形態として独立している。さらに、本明細書に記載の一部の実施形態には、他の実施形態に含まれる一部の特徴は含まれるが、他の特徴は含まれない一方で、異なる実施形態の特徴の組み合わせは、本開示の範囲内にあり、当業者に理解されるように、異なる実施形態を形成することが意図されている。
【0094】
本明細書で使用されるように、特に明記しない限り、共通のオブジェクトまたはステップを説明するために「第1」、「第2」、「第3」などの序数形容詞を使用する場合、これは単に、同様のオブジェクトまたはステップの異なるインスタンスが参照されていることを示すものであり、そのように説明されているオブジェクトまたはステップが、時間的、空間的、順位的、またはその他の方法で所与の順序でなければならないことを意味するものではない。
【0095】
本明細書では、様々な個別の特徴が1つの例示的な実施形態でのみ説明される場合があることに留意されたい。本明細書において単一の例示的な実施形態に関して説明するための特定の選択は、特定の特徴が、それが説明されている実施形態にのみ適用可能であるという制限として解釈されるべきではない。本明細書で説明するすべての特徴は、本明細書で説明する他の例示的な実施形態のいずれかまたはすべてに同様に適用可能、追加可能、または交換可能であり、任意の組み合わせ、グループ化、または配置で適用可能である。特に、特定の特徴を図示、定義、または説明するために本明細書で単一の参照番号を使用することは、その特徴が別の図面または説明内の別の特徴に関連付けられたりまたは同等とみなすことができないことを意味するものではない。さらに、図または図面に2つ以上の参照番号が使用されている場合、これはそれらの実施形態または特徴のみに限定されるものと解釈されるべきではなく、同様の特徴にも同様に適用可能であり、参照番号が使用されないか、または別の参照番号が省略される。
【0096】
また、「A及びBのうち少なくとも1つ」という語句が使用されている場合、この語句はAまたはB、あるいはAとBの両方を選択することを意図しており、そのように定義され、これは「及び/または」という語句に似ている。このような語句に2つ以上の変数が存在する場合、この語句は、変数の1つだけ、変数のいずれか1つ、変数のいずれかの任意の組み合わせ、及び変数のすべてを含むものとして定義される。
【0097】
前述の説明及び添付の図面は、特定の実施形態の原理及び動作モードを示している。しかしながら、これらの実施形態は限定的なものとみなされるべきではない。上述の実施形態のさらなる変形は、当業者には理解されるであろうものであり、上述の実施形態は、限定的なものではなく、例示的なものとしてみなされるべきである。したがって、以下の請求項によって定義される本発明の範囲から逸脱することなく、当業者はこれらの実施形態を変更することができることが理解されるべきである。
【国際調査報告】