説明

ネットワークにおけるエンドポイント間の接続性の確定

【課題】通信ネットワークにおける2つのエンドポイント間の接続性を確定する方法を提供すること。
【解決手段】この方法は、2つのエンドポイントの各々と関連するトランスポート・アドレスを識別することと、2つのエンドポイント間の伝送パスを識別するトランスポート・アドレスのペアを確定することとを含む。この方法は次に、各エンドポイントにおいて、トランスポート・アドレスのペアのどれが一意の伝送パスを識別するかを確定し、次に各エンドポイントで一意の伝送パスを識別する各ペアに接続性チェックを行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワークおよび通信の分野に関し、より詳細には、接続を確立しようとするとき、ネットワークの2つのエンドポイント間の接続性を確定すること(または接続性チェックを削減すること)に関する。
【背景技術】
【0002】
特にファイアウォールおよびネットワーク・アドレス変換(NAT)型機器があるネットワークにおいて、エンドポイント間の接続性を確定することは、難題である。通常、NATは、外部エンティティからネットワーク・トポロジを見えないようにする。具体的には、NATは、内部ネットワークに別個のアドレス空間を使用することにより、内部ネットワークを広範なインターネットから隔離する。NATは、各ネットワーク接続に対してこれらのアドレス空間の間で動的に変わる。
【0003】
NATが介在するネットワークにおける2つのエンドポイント(ホスト、ピア、ノードなどとも呼ばれる)間の伝送パスの確定を改善するために、様々なプロトコル/方式が提案されてきた。提案されたプロトコルの一例が、ICE(Interactive Connectivity Establishment、双方向接続性確立)であり、現在、セッション記述プロトコル(SDP)を拡張したものである、一般的なNAT越えの基礎となっている。このICEプロトコルは、汎用性があるが、ICEの初期バージョンは、接続性を確定するときに必要よりも多くのメッセージを使用していた。
【非特許文献1】Internet Engineering Task Force (IETF) RFC 3489、「STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)」、「http://www.ietf.org/rfc/rfc3489.txt」、2007年6月7日
【発明の開示】
【課題を解決するための手段】
【0004】
本発明のある例示的実施形態は、通信ネットワークにおける2つのエンドポイント間の接続性を確定する方法を提供することができ、この方法は、2つのエンドポイントの各々と関連するトランスポート・アドレスを識別することと、2つのエンドポイント間の伝送パスを識別するトランスポート・アドレスのペアを確定することと、トランスポート・アドレスのペアのどれが一意の伝送パスを識別するかを各エンドポイントにおいて確定することと、一意の伝送パスを識別する各ペアに各エンドポイントにおいて接続性チェックを行うこととを含む。
【0005】
本発明のある例示的実施形態は、通信ネットワークにおける2つのエンドポイント間の接続性チェックを削減する方法を提供することができ、この方法は、各エンドポイントの候補を識別することであって、各エンドポイントがそのエンドポイントの候補を基点候補または非基点候補であるとして分類する、候補を識別することと、2つのエンドポイント間の伝送パスを定める候補のペアを確定することと、各エンドポイントにおいて各ペアに行われる接続性チェックのリストを作成することと、各エンドポイントにおいてそのエンドポイントのリストにフィルタをかけて、そのエンドポイントの非基点候補を含むすべてのペアに対する接続性チェックの実行を抑制することとを含む。
【0006】
本発明のある例示的実施形態は、通信ネットワークにおける2つのエンドポイント間の接続性チェックを削減する方法を提供することができ、この方法は、各エンドポイントの候補を識別し、各エンドポイントがそのエンドポイントの候補を基点候補または非基点候補であるとして分類することと、各エンドポイントにおいて各非基点候補に対応する基点候補を確定することと、2つのエンドポイント間の伝送パスを定める候補のペアを確定することと、各エンドポイントにおいて各ペアに行われる接続性チェックのリストを作成することと、各エンドポイントにおいて各ペアおよび非基点候補に対応する基点候補を調べて、調べたペアの対応する基点候補に相当するペアに接続性チェックがすでに行われたかどうかを判断することと、調べたペアの対応する基点候補に相当するペアに接続性チェックが行われていない場合、調べたペアに接続性チェックを行うことと、調べたペアの対応する基点候補に相当するペアに接続性チェックが行われていた場合、このペアに対する接続性チェックの実行を抑制することとを含む。
【0007】
本発明のある例示的実施形態は、通信ネットワークにおける2つのエンドポイント間の接続性を確定する方法を提供することができ、この方法は、2つのエンドポイントの各々と関連するトランスポート・アドレスを識別することと、各エンドポイントにおいて2つのエンドポイント間の伝送パスを識別するトランスポート・アドレスのペアを確定し、各ペアは、そのエンドポイントと関連する、メッセージを発信することができるトランスポート・アドレスを含むことと、各エンドポイントにおいて一意の伝送パスを識別する各ペアに対して接続性チェックを実行することとを含む。
【0008】
本発明のある例示的実施形態は、通信ネットワークにおける2つのエンドポイント間の接続性チェックの方法を提供することができ、この方法は、各エンドポイントの候補を識別し、各エンドポイントがそのエンドポイントの候補を基点候補または非基点候補であるとして分類することと、各エンドポイントにおいて2つのエンドポイント間の伝送パスを定める候補のペアを確定し、各ペアがそのエンドポイントからの基点候補を含むことと、各エンドポイントにおいて各ペアに行われる接続性チェックのリストを作成することと、各エンドポイントに対してそのエンドポイントの非基点候補を含むすべてのペアに接続性チェックを行うこととを含む。
【発明を実施するための最良の形態】
【0009】
図1に、例示的ネットワーク100の略図を示す。第1のエンドポイント(L)102(ホスト、ピア、ノードなど)が、NAT−NL104の背後に配置されている。第2のエンドポイント(R)106は、NAT−NR108の背後に配置されている。エンドポイント102は、インターネット112のアドレス可能サーバ(SL)110にアクセスできる。またエンドポイント104は、インターネット112のアドレス可能サーバ(SR)114にアクセスできる。メディア・リレー(ML)装置116をインターネット112に配置し、エンドポイント102と関連させることができる。
【0010】
サーバ110および114は、STUNサーバ(Simple Traversal of UDP (User Datagram Protocol) through NATs)別称(Session Traversal Utilities for NAT)とすることができる。STUNおよびNATのさらなる詳細については、2007年6月7日の「http://www.ietf.org/rfc/rfc3489.txt」から、参照により本明細書に組み込む「STUN-Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)」というタイトルのインターネット技術タスクフォース(IETF)のRFC3489を参照する。
【0011】
エンドポイント102および106は、互いの間の接続を確立するためにそれぞれサーバを使用する必要があるが、サーバは(図のように)別個のものとすることができ、または1つのサーバが両方のエンドポイントを処理することができる。さらに、このサーバは、公開(すなわち、インターネット全体でアクセス可能)とする必要はなく、またグローバルにルーティング可能なアドレス空間にある必要はない。詳細には、サーバはプライベートなアドレス空間にあることが可能であり、複数のサーバが異なるアドレス空間に配置されることが可能である。
【0012】
エンドポイント102/106の各々は、1つまたは複数の関連するトランスポート・アドレスを有する。トランスポート・アドレスは、付加情報(例えば、UDPまたはTCPポート番号)の付いたIPアドレスと定義され、ここでUDPはユーザ・データグラム・プロトコル、TCPは伝送制御プロトコルである。
【0013】
エンドポイントは様々な手段により、関連するトランスポート・アドレスを知ることができる。上述のSTUNアプローチは、このような一手段となる。他の手段を使用することもできる。
【0014】
エンドポイントとトランスポート・アドレスの関連付けは、NAT104/108およびリレー装置116など、ネットワーク100上の他の装置により行うことができ、この装置を介する通信で使用するために、各エンドポイント102/106に少なくとも1つのトランスポート・アドレスを割り当てる。各エンドポイント102/106は、様々な既知のプロセスにより、各エンドポイントと関連するこれらのトランスポート・アドレスについて知る。トランスポート・アドレスは、メッセージを発信することができるものであるか、またはメッセージを発信することができないものである。メッセージを発信できないどのトランスポート・アドレスも、メッセージを発信することができる対応するトランスポート・アドレスを有する。
【0015】
図2に、一実施形態によりネットワーク100において2つのエンドポイント102および106間の接続性を確定する方法200の流れ図を示す。この方法200は、ステップ210で、各エンドポイント102/106と関連するトランスポート・アドレスを識別することを含む。ステップ220では、2つのエンドポイント102/106間の可能な伝送パスを識別するトランスポート・アドレスのペアを確定する。ペアは、ペアの一方の要素をローカルのトランスポート・アドレスから、ペアのもう一方の要素をリモートのトランスポート・アドレスから形成されている。伝送パス(またはチャネル)とは、ネットワークの2つのノード(例えば、トランスポート・アドレス)間のパスであり、これによってデータ通信を行うことができるようになるものである。
【0016】
ステップ230では、各エンドポイント102/106において、一意の伝送パスを識別するトランスポート・アドレスのペアを確定する。これらのトランスポート・アドレスのペアは、伝送パスを定める2つのエンドポイントである。一意の伝送パスとは、これまで接続性の確定が行われていない伝送パスか、またはペアを調べているエンドポイントのトランスポート・アドレスが、メッセージを発信することができるものである伝送パスである。伝送パスは、そのパスのエンドポイントのトランスポート・アドレスがメッセージを発信することができないトランスポート・アドレスである場合、エンドポイントの観点から別の伝送パスと事実上同じもの(メッセージを発信することができる対応するトランスポート・アドレスからのものと同じ伝送パス)である。
【0017】
ステップ240では、ステップ230で識別された一意の伝送パスを定義する各トランスポート・アドレスのペアに対し、各エンドポイント102/106で接続性チェックを行う。トランスポート・アドレスのペア間の接続性チェックは、ローカルのトランスポート・アドレスからリモートのトランスポート・アドレスに到達することができるかどうかを判断する目的のために、トランスポート・アドレスのペア間でパケット交換を行うことである。
【0018】
ステップ210は、各エンドポイント102/106と関連するトランスポート・アドレスを見つけ出し、各エンドポイントからもう一方のエンドポイントへ、そのエンドポイントと関連するトランスポート・アドレスに関する情報を提供することを含むことができる。2つのエンドポイント間でこのようにトランスポート・アドレスを交換することは、各エンドポイントがもう一方のエンドポイントにそのトランスポート・アドレスのリストを提供することにより行われることが可能である。このリストは、エンドポイントと関連するすべてのトランスポート・アドレスのものであるか、またはこのようなすべてのトランスポート・アドレスの一部のみのものである場合がある。具体的には、エンドポイント102は、エンドポイント106と関連するトランスポート・アドレスを知らされ、その逆も同様である。
【0019】
ステップ230は、各エンドポイント102/106で、そのエンドポイントと関連する、メッセージを発信することができるトランスポート・アドレスのセットを導き出すことと、次に各エンドポイントで、そのエンドポイントに導き出されたセットからのトランスポート・アドレスを含むトランスポート・アドレスのペアのセットを確定することとを含むことができる。このセットのペアは、一意の伝送パスを識別する。
方法200のステップは、各エンドポイント102/106で別々に、独立して行う。
【0020】
さらにトランスポート・アドレスを使用して、付加的な関連情報(例えば、ユーザ名、パスワードなど)と共にトランスポート・アドレスを含む候補を形成することができる。後述するように、すべてのトランスポート・アドレスが候補を形成するというわけではない。さらに候補は、基点候補か、または非基点候補として分類される。基点候補は、一般に、メッセージを発信することができるトランスポート・アドレスと定義される。非基点候補は、一般に、基点候補と別のトランスポート・アドレスとの間にあるトランスポート・アドレスと定義される。したがって、各非基点候補は、対応する基点候補を有する。
【0021】
候補のタイプの例を、以下にまとめる。
(1)ホスト候補(基点候補)。ローカル装置にあるオペレーティング・システムから割り当てられるトランスポート・アドレス。詳細には、ホスト候補は、ローカル・ホストに割り当てられたアドレスとローカルに割り当てられたポート番号を組み合わせる。図1の例では、L1およびR1がホスト候補である。
(2)リレー候補(基点候補)。メディア・リレーのトランスポート・アドレス。リレー候補に送信されたパケットは、NATの背後に配置されたホストへ転送される。図1の例では、MLがメディア・リレーであり、L3は、メディア候補と呼ばれるML上の候補である。
(3)再帰候補(非基点候補)。ホスト候補に対応するように、NATにより割り当てられるトランスポート・アドレス。再帰候補に送信されたパケットは、NATにより対応するホスト候補に転送される。再帰候補を、「サーバ再帰」または「ピア再帰」としてさらに分類し、どのように見つけ出すかを示すことができる。図1の例では、L2およびR2が、サーバ再帰候補である(ピア再帰候補は示していない)。
【0022】
接続性チェックの例を表1−Aに示し、以下に説明する。
【0023】
【表1】

チェックを、「Cn」と表示し、ここでn=1から8である。候補間のチェックの方向は、「−>」および「<−」という表記で示している。L1およびR1は基点候補であり、L2およびR2は非基点候補である。L1、L2、R1、およびR2をトランスポート・アドレスとみなすこともでき、チェックを同様に適用できであろうことに注意する。L3は、この例の一部ではない。
【0024】
表1−Aに示すように、非基点候補L2から始まるチェックC3およびC4は、基点候補L1から始まるC1およびC2の重複である。
【0025】
同様に、非基点候補R2から始まるチェックC6およびC8は、基点候補R1から始まるチェックC5およびC7の重複である。
【0026】
重複するチェックC3、C4、C6、およびC8を抑制する/フィルタをかける/削除することにより、エンドポイント12と16との間で交換される必要があるメッセージの数が、この例では50%(8チェックから4チェックまで)削減される。さらに、チェックの数を削減することにより、残りのチェック(C1、C2、C5、およびC7)はより早く始まることが可能になり(すなわち、次のチェックの開始までの遅延が少ないため)、したがって、エンドポイント12と16との間の接続を確立する速度および効率を向上させる。詳細には、チェックは連続的に行われることが可能であるため、チェックを削減することはまた、チェックを行うために必要な時間を削減し、したがって、接続性チェックの性能を向上させる。
【0027】
冗長な接続性チェックは、候補のいくつかが、サーバ再帰またはピア再帰の候補(非基点候補)であるときに現れる。ネットワーク・トポロジの観点から、非基点候補からメッセージを送信することは、メッセージが出された候補(すなわち、非基点候補に対応する基点候補)からメッセージを送信することと同じことであるため、冗長が現れる。したがって、非基点候補から送信されるメッセージは、新しいネットワーク・パスをチェックしないため有効ではない。
【0028】
図3に、一実施形態により2つのエンドポイント102および106間の接続性チェックを削減する方法300の流れ図を示す。この方法300は、ステップ310において、各エンドポイント102/106の候補(上述のように基点候補または非基点候補に分類される)を識別することを含む。各エンドポイント102/106の候補は、それぞれのエンドポイントと関連付けるために通知されるトランスポート・アドレスとすることができる。つまり、すべてのトランスポート・アドレスが候補になるとは限らないと考えられる。
【0029】
オプションのステップ315は、各エンドポイント102/106で各非基点候補に対応する基点候補を確定することを含む。次に、ステップ320において、2つのエンドポイント102/106間の伝送パスを識別する、すなわち定める候補のペアを確定する。ステップ320へのさらなるオプションとして、各ペアがエンドポイント102/106からの基点候補を含むように、エンドポイントにより形成される候補のペアを集めることができる。ステップ330では、各エンドポイント102/106において、各ペアに行われる接続性チェックのリストを作る(一例として、表1−AのチェックC1〜C8を参照)。ステップ340では、(各エンドポイント102/106における)接続性チェックのリストに、各エンドポイントでフィルタをかけ、そのエンドポイントの非基点候補を含むすべての候補に対して接続性チェックを行うことを抑制する。
【0030】
ステップ310は、各エンドポイント102/106と関連する候補を見つけ出し、一方のエンドポイントからもう一方のエンドポイントへ、そのエンドポイントと関連する候補に関する情報を提供することを含むことができる。したがって、エンドポイント102は、エンドポイント106と関連する候補を知り、その逆も同様である。
【0031】
フィルタをかけるステップ340は、いくつかの方法で遂行することができる。例えば、各エンドポイントは、ペアからの1つの候補が、セットを作るエンドポイントの非基点候補である候補のペアのセットを作る。次に、このセットを利用して、このセットを作るエンドポイントの接続性チェックのリストを変更し、このセットのペアへの接続性チェックを取り除くことができる。あるいは、エンドポイントでこのセットを利用して、このセットのペアへの接続性チェックを抑制するフィルタを作成することができる。次にこのフィルタを、このセットを作っているエンドポイントのリストに適用することができ、その後フィルタをかけられたリストに接続性チェックを行うことができる。
【0032】
フィルタをかけるステップ340の別のオプションは、各エンドポイントが、候補の各ペアおよびペアの中のそのエンドポイントのあらゆる非基点候補に対応する基点候補を調べることを含む。ペアは、対応する基点候補により調べられ、この同じ対応する基点候補を有するあらゆるペアに接続性チェックが行われたかどうかを判断する。エンドポイントは、独自の候補を基点または非基点とする独自の分類をわかっているので、ペアの中の独自の候補を調べるが、別のエンドポイントからの候補に関する判断を行うことはできない。対応する基点候補を有するペアに接続性チェックが行われていない場合、エンドポイントでペアの接続性チェックを行う。対応する基点候補を有するペアの接続性チェックが、エンドポイントによりすでに行われていた場合、調べられているペアの接続性チェックは、エンドポイントにより抑制される。
方法300のステップは、各エンドポイント102/106で別々に、独立して行う。
【0033】
図4に、一実施形態によりネットワーク100の2つのエンドポイント102および106間の接続性を確定する方法400の流れ図を示す。この方法400は、ステップ410において、各エンドポイント102/106と関連するトランスポート・アドレスを識別することを含む。ステップ420において、2つのエンドポイント102/106間の伝送パスを識別するトランスポート・アドレスのペアを確定する。各ペアは、そのエンドポイントと関連する、メッセージを開始することができるトランスポート・アドレスを含む。したがって、形成されるペアだけが、一意の伝送パスを作り出すペアである。ステップ430において、各エンドポイント102/106でペアに接続性チェックを行い、それによって一意の伝送パスを定める。
【0034】
ステップ410は、各エンドポイント102/106と関連するトランスポート・アドレスを見つけ出し、各エンドポイントからもう一方の各エンドポイントへ、そのエンドポイントと関連するトランスポート・アドレスに関する情報を提供することを含むことができる。次に、各エンドポイントについて、そのエンドポイントと関連するどのトランスポート・アドレスがメッセージを開始することができるかを確定する。
方法400のステップは、各エンドポイント102/106で別々に、独立して行う。
【図面の簡単な説明】
【0035】
【図1】本発明の一実施形態により2つのホスト間の接続性をどのように確定することができるかを示す例示的なネットワークの略図である。
【図2】本発明の一実施形態により接続性を確定する方法の流れ図である。
【図3】本発明の別の実施形態により接続性チェックを削減する方法の流れ図である。
【図4】本発明の別の実施形態により接続性を確定する方法の流れ図である。

【特許請求の範囲】
【請求項1】
通信ネットワークにおける2つのエンドポイント間の接続性を確定する方法であって、
前記2つのエンドポイントの各々と関連するトランスポート・アドレスを識別するステップと、
前記2つのエンドポイント間の伝送パスを識別する前記トランスポート・アドレスのペアを確定するステップと、
各エンドポイントにおいて、前記トランスポート・アドレスのペアのどれが一意の伝送パスを識別するかを確定するステップと、
各エンドポイントにおいて、一意の伝送パスを識別する各ペアに接続性チェックを行うステップと
を含む方法。
【請求項2】
トランスポート・アドレスを識別する前記ステップが、
各エンドポイントにおいて、そのエンドポイントと関連するトランスポート・アドレスを見つけ出す処理と、
前記エンドポイントの一方からもう一方のエンドポイントへ、そのエンドポイントと関連する前記トランスポート・アドレスに関する情報を提供する処理と
を含む、請求項1に記載の方法。
【請求項3】
前記ペアのどれかを確定する前記ステップが、
各エンドポイントにおいて、そのエンドポイントと関連する、メッセージを発信することができるトランスポート・アドレスのセットを導き出す処理と、
各エンドポイントにおいて、そのエンドポイントに導き出された前記セットからのトランスポート・アドレスを含む前記トランスポート・アドレスのペアのセットを確定する処理であって、前記セットの前記ペアが一意の伝送パスを識別する、前記トランスポート・アドレスのペアのセットを確定する処理と
を含む、請求項1に記載の方法。
【請求項4】
通信ネットワークにおける2つのエンドポイント間の接続性チェックを削減する方法であって、
各エンドポイントの候補を識別することであって、各エンドポイントがそのエンドポイントの候補を基点候補または非基点候補であるとして分類する、候補を識別することと、
前記2つのエンドポイント間の伝送パスを定める前記候補のペアを確定することと、
各エンドポイントにおいて、各ペアに行われる接続性チェックのリストを作成するステップと、
各エンドポイントにおいて、そのエンドポイントの非基点候補を含むすべてのペアに対する接続性チェックの実行を抑制するために、そのエンドポイントの前記リストにフィルタをかけるステップと
を含む方法。
【請求項5】
候補を識別する前記ステップが、
各エンドポイントにおいて、そのエンドポイントと関連する候補を見つけ出す処理と、
前記エンドポイントの一方からもう一方のエンドポイントへ、そのエンドポイントと関連する前記候補に関する情報を提供する処理と
を含む、請求項4に記載の方法。
【請求項6】
フィルタをかける前記ステップが、
各エンドポイントにおいて、そのエンドポイントの非基点候補を含む前記候補のペアのセットを確定する処理と、
各エンドポイントにおいて、そのエンドポイントの前記リストから、前記セットからの前記ペアに対する接続性チェックを取り除く処理と
を含む、請求項4に記載の方法。
【請求項7】
フィルタをかける前記ステップが、
各エンドポイントにおいて、そのエンドポイントの非基点候補を含む前記候補のペアのセットを確定する処理と、
各エンドポイントにおいて、そのエンドポイントの前記セットからの前記ペアに対する接続性チェックを抑制するためにフィルタを作成する処理と、
各エンドポイントにおいて、そのエンドポイントの前記リストに前記フィルタを適用することと、
各エンドポイントにおいて、前記フィルタをかけたリストに基づいて接続性チェックを行う処理と
を含む、請求項4に記載の方法。
【請求項8】
各エンドポイントの前記候補が、そのエンドポイントと関連付けるために通知されるトランスポート・アドレスである、請求項4に記載の方法。
【請求項9】
通信ネットワークにおける2つのエンドポイント間の接続性チェックを削減する方法であって、
各エンドポイントの候補を識別し、各エンドポイントがそのエンドポイントの候補を基点候補または非基点候補であるとして分類することと、
各エンドポイントにおいて、各非基点候補に対応する基点候補を確定することと、
前記2つのエンドポイント間の伝送パスを定める前記候補のペアを確定することと、
各エンドポイントにおいて、各ペアに行われる接続性チェックのリストを作成することと、
各エンドポイントにおいて、各ペアおよび非基点候補に対応する基点候補を調べて、前記調べたペアの対応する基点候補に相当するペアの接続性チェックがすでに行われたかどうかを判断することと、
前記調べたペアの対応する基点候補に相当するペアに接続性チェックが行われていない場合、前記調べたペアに接続性チェックを行うことと、
前記調べたペアの対応する基点候補に相当するペアに接続性チェックが行われていた場合、前記ペアに対する接続性チェックの実行を抑制することと
を含む方法。
【請求項10】
各エンドポイントの前記候補が、そのエンドポイントと関連付けるために通知されるトランスポート・アドレスである、請求項9に記載の方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate