(57)【特許請求の範囲】
【請求項１】
ローカル・エンドポイントとリモート・エンドポイントとの間における接続の確立を容易とするコンピュータ実行可能な方法において、
単一の接続要求メッセージを多数のリモート・エンドポイントに分岐するプロキシサーバに対して、ローカル・エンドポイントから単一の接続要求メッセージを送信することと、
各応答メッセージが前記リモート・エンドポイントと関連付けられたアドレス情報を持つような１つ以上の応答メッセージを前記リモート・エンドポイントから受信することと、
前記応答メッセージを受信すると、前記プロキシサーバを介して、対応する前記リモート・エンドポイントに対して受信応答メッセージに対応する確認応答を送信することと、
前記ローカル・エンドポイントと少なくとも１つの前記リモート・エンドポイントとの間における接続を確立することとを備え、
前記ローカル・エンドポイント、前記リモート・エンドポイント、又は、その双方がそれぞれ、ネットワークアドレス変換（ＮＡＴ）ファイアウォールの後方に存在し、
前記方法はさらに、
前記ローカル・エンドポイントが後方に存在するＮＡＴファイアウォールの種類を判定することと、
前記ローカル・エンドポイントが前記ＮＡＴファイアウォールの後方に存在しないことに応答して、前記ローカル・エンドポイントと関連付けられたアドレス情報を持つ単一の接続要求メッセージを前記プロキシサーバに対して送信することとを備える、
方法。
【請求項２】
ローカル・エンドポイントとリモート・エンドポイントとの間における接続の確立を容易とするコンピュータ実行可能な方法において、
単一の接続要求メッセージを多数のリモート・エンドポイントに分岐するプロキシサーバに対して、ローカル・エンドポイントから単一の接続要求メッセージを送信することと、
各応答メッセージが前記リモート・エンドポイントと関連付けられたアドレス情報を持つような１つ以上の応答メッセージを前記リモート・エンドポイントから受信することと、
前記応答メッセージを受信すると、前記プロキシサーバを介して、対応する前記リモート・エンドポイントに対して受信応答メッセージに対応する確認応答を送信することと、
前記ローカル・エンドポイントと少なくとも１つの前記リモート・エンドポイントとの間における接続を確立することとを備え、
前記ローカル・エンドポイント、前記リモート・エンドポイント、又は、その双方がそれぞれ、ネットワークアドレス変換（ＮＡＴ）ファイアウォールの後方に存在し、
前記応答メッセージがセッションオファーを持ち、
前記セッションオファーが、前記応答メッセージと関連付けられた前記リモート・エンドポイントに対応するアドレスのリストを含み、
前記アドレスのリストが、ＮＡＴ外部アドレス及びポート、ローカルアドレス及びポート、及び／又は、外部中継アドレスを含む、方法。
【請求項３】
ローカル・エンドポイントとリモート・エンドポイントとの間における接続の確立を容易とするコンピュータ実行可能な方法において、
単一の接続要求メッセージを多数のリモート・エンドポイントに分岐するプロキシサーバに対して、ローカル・エンドポイントから単一の接続要求メッセージを送信することと、
各応答メッセージが前記リモート・エンドポイントと関連付けられたアドレス情報を持つような１つ以上の応答メッセージを前記リモート・エンドポイントから受信することと、
前記応答メッセージを受信すると、前記プロキシサーバを介して、対応する前記リモート・エンドポイントに対して受信応答メッセージに対応する確認応答を送信することと、
前記ローカル・エンドポイントと少なくとも１つの前記リモート・エンドポイントとの間における接続を確立することとを備え、
前記ローカル・エンドポイント、前記リモート・エンドポイント、又は、その双方がそれぞれ、ネットワークアドレス変換（ＮＡＴ）ファイアウォールの後方に存在し、
前記確認応答がセッションアンサーを持ち、
前記セッションアンサーが前記ローカル・エンドポイントに対応するアドレスのリストを含み、
前記アドレスのリストが、ＮＡＴ外部アドレス及びポート、ローカルアドレス及びポート、及び／又は、外部中継アドレスを含む、方法。
【請求項４】
さらに、
１つ以上の前記リモート・エンドポイントが節電スリープモードであるかどうかを判定することと、
１つ以上の前記リモート・エンドポイントが前記節電スリープモードであるのに応答して、帯域外信号を使用して前記リモート・エンドポイントのうちの少なくとも１つを起動することと、
を備える、請求項１〜請求項３の何れか１項に記載の方法。
【請求項５】
前記帯域外信号が、通話、テキストメッセージ、又は、その双方を含む、請求項４記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、コンテンツセントリック・ネットワークにおけるルーティングに関する。より具体的には、本開示は、ファイアウォールを有するコンテンツセントリック・ネットワークにおけるセッション開始プロトコル（ＳＩＰ）ベースのカストディアンルーティングを容易とする装置及び方法に関する。
【発明の概要】
【課題を解決するための手段】
【０００２】
本発明の１つの実施形態は、ローカル・エンドポイントとリモート・エンドポイントとの間における接続の確立を容易とするシステムを提供する。動作中において、システムは、単一の接続要求メッセージを複数のリモート・エンドポイントに分岐するプロキシサーバに対して、ローカル・エンドポイントから単一の接続要求メッセージを送信する。システムは、リモート・エンドポイントから１つ以上の応答メッセージを受信する。各応答メッセージは、リモート・エンドポイントと関連付けられたアドレス情報を持っている。応答メッセージの受信に応じて、システムは、プロキシサーバを介して、受信された応答メッセージと関連付けられたリモート・エンドポイントに対して、受信された応答メッセージに対応する確認応答を送信し、ローカル・エンドポイントと複数のリモート・エンドポイントとの間における少なくとも１つの接続を確立する。
【０００３】
この実施形態の１つの変形例において、ローカル・エンドポイント、リモート・エンドポイント、又は、その双方は、それぞれ、ネットワークアドレス変換（ＮＡＴ）ファイアウォールの後方にある。
【０００４】
さらなる変形例において、システムは、さらに、ローカル・エンドポイントが後方に存在するＮＡＴファイアウォールの種別を判定し、ローカル・エンドポイントがいかなるＮＡＴの後方にも又はコーン型ＮＡＴの後方にもないこと応答して、システムは、プロキシサーバに対して単一の接続要求メッセージを送信する。接続要求メッセージは、ローカル・エンドポイントが到達されることができるＮＡＴの外側と関連付けられた、又は、ＮＡＴが検出されない場合にはローカル・エンドポイントと関連付けられたアドレス及びポート情報を持っている。
【０００５】
この実施形態の１つの変形例において、プロキシサーバは、セッション開始プロトコル（ＳＩＰ）プロキシサーバであり、接続要求メッセージは、ＳＤＰペイロードがないＳＩＰ  ＩＮＶＩＴＥメッセージである。
【０００６】
さらなる変形例において、応答メッセージは、セッション記述プロトコル（ＳＤＰ）オファーを持っているＳＩＰ暫定応答又は２００／ＯＫメッセージである。
【０００７】
さらなる変形例において、ＳＤＰオファーは、応答メッセージと関連付けられたリモート・エンドポイントに対応するアドレスのリストを含む。アドレスのリストは、ＮＡＴ外部アドレスを含み、また、ローカルアドレス及びポート、及び／又は、外部中継アドレスを含んでもよい。
【０００８】
さらなる変形例において、確認応答は、ＳＩＰ  ＰＲＡＣＫ又はＡＣＫメッセージであり、ＳＩＰ  ＰＲＡＣＫ又はＡＣＫメッセージは、セッション記述プロトコル（ＳＤＰ）アンサーを持っている。
【０００９】
さらなる変形例において、ＳＤＰアンサーは、ローカル・エンドポイントに対応するアドレスのリストを含む。アドレスのリストは、ローカルアドレス及びポート、ＮＡＴ外部アドレス及びポート、並びに、外部中継アドレスのうちの少なくとも１つを含む。
【００１０】
この実施形態の１つの変形例において、システムは、さらに、１つ以上のリモート・エンドポイントが節電スリープモードであるかどうかを判定する。１つ以上のリモート・エンドポイントが節電スリープモードであるのに応答して、システムは、帯域外信号を使用してリモート・エンドポイントのうちの少なくとも１つを起動する。
【００１１】
さらなる変形例において、帯域外信号は、通話、テキストメッセージ、又は、その双方を含む。
【００１２】
この実施形態の１つの変形例において、ローカル・エンドポイント及びリモート・エンドポイントは、コンテンツセントリック・ネットワーク（ＣＣＮ）に接続されている。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施形態にかかるカストディアンルーティングについての典型的なシステムアーキテクチャの概略図を示している。
【図２】図２は、ＮＡＴの全ての組み合わせについてのエンドポイント間接続が確立時にＮＡＴ通過が可能であるかどうかの概略図を示している。
【図３】図３は、プロキシが一対多（分岐）接続のセットアップを試みる場合の典型的なシナリオの概略図を示している。
【図４】図４は、ＮＡＴの全ての組み合わせについての一対多（分岐）接続の確立時に複数のＮＡＴ通過が可能であるかどうかの概略図を示している。
【図５】図５は、本発明の実施形態にかかるＳＩＰベースのランデブーを実装することが可能な装置のアーキテクチャのブロック図を示している。
【図６】図６は、本発明の実施形態にかかるＳＩＰベースのランデブーのプロセスの時空間概略図を示している。
【図７】図７は、本発明の実施形態にかかるＳＩＰベースのランデブーを容易とする典型的なコンピュータシステムを示している。  図面において、同様の参照符号は、同一の図要素を参照する。
【発明を実施するための形態】
【００１４】
以下の説明は、いかなる当業者も本発明を実施して使用することが可能なように示されており、特定のアプリケーション及びその要件との関連で提供される。開示される実施形態に対する様々な変更は、当業者にとって容易に明らかなはずであり、本願明細書において定義される一般的原則は、本発明の精神及び範囲から逸脱することなく、他の実施形態及びアプリケーションに適用されてもよい。それゆえに、本発明は、示される実施形態に限定されるものではなく、本願明細書において開示される原理及び特徴と一致する最も広い範囲と一致する。
【００１５】
この詳細な説明において開示されるデータ構造及びコードは、通常、コンピュータシステムによって使用するためにコード及び／又はデータを記憶することができる任意の装置又は媒体であり得るコンピュータ読み取り可能な記憶媒体に記憶されている。コンピュータ読み取り可能な媒体は、それらに限定されるものではないが、揮発性メモリ、不揮発性メモリ、ディスクドライブ、磁気テープ、ＣＤ（コンパクトディスク）、ＤＶＤ（ディジタル多用途ディスク又はディジタルビデオディスク）等の磁気及び光記憶装置、又は、現在知られている若しくは後に開発されるコンピュータ読み取り可能な記憶媒体を記憶することができる他の媒体を含む。
【００１６】
本発明の実施形態は、ファイアウォールを有するコンテンツセントリック・ネットワーク（ＣＣＮ）におけるカストディアンルーティングを容易とするセッション開始プロトコル（ＳＩＰ）ベースのランデブーを提供する。本発明の実施形態において、コンテンツについてのカストディアンは、カストディアンと関連付けられた多数のエンドポイントについての情報を保持するＳＩＰプロキシに周期的に登録する。コンテンツリクエスタがカストディアンの少なくとも１つの通信エンドポイントとの接続を確立しようと試みるとき、コンテンツリクエスタは、ＳＩＰプロキシに対してセッション記述プロトコル（ＳＤＰ）ペイロードを含まないＳＩＰ  ＩＮＶＩＴＥを送信し、ＳＩＰプロキシは、その後にペイロードなしのＳＩＰ  ＩＮＶＩＴＥを複製し、１つのＩＮＶＩＴＥをカストディアンと関連付けられた各エンドポイントに対して送信する。カストディアンのエンドポイントがＩＮＶＩＴＥに対して応答したとき、エンドポイントは、ＳＩＰプロキシサーバを介して、コンテンツリクエスタに対してＳＤＰペイロードを含むＳＩＰ  ２００／ＯＫメッセージを送信し、このメッセージはＳＤＰオファーをなす。（ＳＩＰ  ＡＣＫメッセージにおける）ＳＤＰアンサーによるＳＤＰオファーに対する応答により、コンテンツリクエスタは、カストディアン上のエンドポイントに対してそれ自身の接続情報を送信する。その結果、ある対称型ＮＡＴファイアウォールを含む様々な種類のネットワークアドレス変換（ＮＡＴ）ファイアウォールを越えて、複数のＳＩＰセッションがコンテンツリクエスタとカストディアンとの間に確立されることができる。
【００１７】
本開示はＣＣＮに基づく例を使用して示されるものの、本発明の実施形態は、ＣＣＮに限定されるものではない。
【００１８】
用語「カストディアン」とは、関心のあるコンテンツを記憶する装置をいう。カストディアンは、揮発性又は不揮発性記憶装置にデータを記憶することが可能な任意の種類の装置とすることができる。カストディアンは、ラップトップコンピュータ、タブレット若しくはスレートコンピュータ、スマートフォン、若しくは、携帯情報端末機（ＰＤＡ）等の携帯型計算装置、又は、デスクトップコンピュータ若しくはホームメディアサーバ等の固定型計算装置とすることができる。
【００１９】
用語「通信エンドポイント」とは、リモート装置がそれを介して計算装置と通信することができる計算装置にある通信インターフェースをいう。「通信エンドポイント」は、それらに限定されるものではないが、ＷｉＦｉ（商標）（Ｗｉ−Ｆｉアライアンスの商標）インターフェース、第３世代携帯電話インターフェース、及び、ブルートゥース（商標）（ワシントン州カークランドのブルートゥース・スペシャル・インタレスト・グループの商標）インターフェースを含む任意の種類の通信インターフェースとすることができる。
【００２０】
コンテンツセントリック・ネットワーク（ＣＣＮ）において、通信は、データの需要者によって動かされる。ＣＣＮにおいて、インタレストパケット及びデータパケットという２つのパケット種別がある。インタレストパケット（「クエリー」とも称される）は、いくつかのコンテンツへの要求である。インタレストパケットは、どのようなコンテンツが望まれるか及びどのようなコンテンツが望まれないかを表現するクエリーの特別な形式を符号化する。データパケット（「コンテンツパケット」とも称される）は、コンテンツのユニットである。データパケットは、内部にそれらの完全な名称を持つことによって自己識別している。需要者は、全ての利用可能な接続性にわたってそのインタレストをブロードキャストすることによってコンテンツを要求する。そのインタレストを聞き且つそれを満たすデータを有する任意のノードは、データパケットによって応答することができる。データは、インタレストに応答してのみ送信され、そのインタレストを消費する。インタレスト及びデータの双方は、コンテンツ名称（又はＣＣＮ名称）によって交換されるコンテンツを識別する。１つの実施形態において、データは、インタレストパケットにおけるＣＣＮ名称がデータパケットにおけるＣＣＮ名称のプレフィックスである場合に、インタレストを「満たす」ことができる。
【００２１】
ＣＣＮ名称は、意味のわからない、明確に特定された数のコンポーネントからなるバイナリオブジェクトである。さらに、ＣＣＮ名称は、持続的でコンテンツに固有である。すなわち、ファイル又はデータオブジェクトのコンテンツを変えた場合には、コンテンツは、事実上、新たな名称と関連付けられる。この持続性は、例えば新たなコンテンツが所定名称の「バージョン４」であり得るという明確なバージョニング機構によって実現されることができる。持続性はまた、暗に実現されることもできる。例えば、コンテンツは、それらの人が定めた名称のみならず、認証メタデータ（例えば、コンテンツの発行者によるディジタル署名）と関連付けられることができる。結果として、完全なコンテンツ名称は、所定名称と関連付けられたデータが変化したときに変化する。
【００２２】
機能的には、ＣＣＮは、様々な名称とそれらが表すコンテンツとの間の関連性を保有することができる。名称は、階層的に構築され、可変長を有し、多くの状況においてユーザによって理解されることができる。例えば、「／ａｂｃｄ／ｂｏｂ／ｐａｐｅｒｓ／ｃｃｎ／ｎｅｗｓ」は、記事の名称、すなわち、「ＡＢＣＤ」という名前の組織における「ボブ」という名前のユーザについての文書の「ｃｃｎ」集合体からの「ニュース」記事であり得る。ＣＣＮにおいて、アプリケーションの視点からすれば、コンテンツ需要者は、「ＡＢＣＤ」組織の見つけ方又はどのホストがボブのＣＣＮ刊行物を保持するかの見つけ方を判定する必要はない。１つの実施形態において、コンテンツの一部を要求するために、ＣＣＮにおける装置は、その名称によってそのコンテンツに関心のあるネットワークに登録し、ローカルネットワークにおいて利用可能である場合には、コンテンツは、それに対して返送される。ルーティングインフラストラクチャは、予想される発行者に対してインタレストをインテリジェントに伝播し、そして、インタレストが通過した経路に沿って任意の利用可能なコンテンツを戻すように対処する。
【００２３】
ＣＣＮは、それらを特に魅力的にするさらなる特性を有する。全てのコンテンツは、暗号的に認証されることができ、それは、ネットワーク上のノードのいくつかの小集団（例えばコンテンツの適正な質問者）がコンテンツの一部の信頼性を検証することができることを意味する。ＣＣＮはまた、発行者から独立して、データが名称によってアクセスされるのを許容する。同時に、ある発行者によってデータについての特殊な要求を調整することができる。例えば、「ｆｏｏ．ｔｘｔ」又は「ボブによって署名された「ｆｏｏ．ｔｘｔ」を求めることができる。いかなる形式の自己検証名称も、生成者と需要者との間で規約として使用されることができる。ハイブリッド自己検証名称を使用することもまた可能である。ここで、名称の前半コンポーネントは、組織及び効率的なルーティングのためにあり、名称の後半コンポーネントは、自己検証である。最後に、ＣＣＮは、コンテンツ及び信頼の分離を許容し、異なるデータの需要者がコンテンツの同じ一部における信頼を確立するために異なる機構を使用するのを可能とする。コンテンツが単一の発行者によって署名されているかもしれない、それは異なる理由のために信頼されることができる。例えば、１人のユーザは、その署名者との直接の個人的接続のために、コンテンツの所定の一部を信頼するかもしれないのに対して、他のユーザは、そのユーザが信頼するように選択した公開鍵基盤（ＰＫＩ）へのコンテンツの署名者の参加のために、同じコンテンツを信頼するかもしれない。
【００２４】
ソーシャルネットワーク・グループ内での様々なユーザ装置間でのコンテンツの共有を可能とするために、様々なユーザ装置を含むＣＣＮベースのコンテンツデリバリネットワーク（ＣＤＮ）にわたってカストディアンベースのルーティングが実装されることができる。カストディアンベースのルーティングを実装したＣＤＮにおいて、コンテンツは、カストディアンと称されるコンテンツを記憶する装置と関連付けられる。コンテンツの特定の一部についての要求は、カストディアンの物理的位置にかかわらず、そのカストディアンに対して常に送られることができる。
【００２５】
コンテンツの一部の要求側がそのコンテンツのカストディアンに正確に接続することができるのを確実にするために、ＣＣＮベースのＣＤＮは、コンテンツ・プリフィックス・ツー・カストディアン・マッピング、カストディアン・ツー・通信エンドポイント・マッピング、及び、通信エンドポイント・ツー・物理アドレス・マッピングを含む３つの異なるマッピングを保持する。装置が他の装置と相互に作用するたびに、それらは、ルーティング情報がＣＤＮにわたって割り当てられるのを確認するために、３つのマッピングを互いに交換する。代わりに、通信エンドポイント・ツー・物理アドレス・マッピング情報は、要求側とカストディアンとの間におけるランデブーサービスを提供する公開セッション開始プロトコル（ＳＩＰ）サーバ等の第三者のサービスにおいて記憶されることができる。
【００２６】
カストディアンベースのルーティングについての詳細は、出願日未定の発明者ジェームズ  Ｄ．  ソーントン、ヴァン  Ｌ．  ジェーコブソン、及び、マーク  モスコによる「コンテンツセントリック・ネットワークにおけるカストディアンベースのルーティング」と題された米国特許出願番号未定（代理人整理番号ＰＡＲＣ−２０１００４９８−ＵＳ−ＮＰ）においてみられることができ、その開示は、本願明細書においてその全体を引用することによって盛り込まれる。
【００２７】
図１は、本発明の実施形態にかかるカストディアンルーティングのための典型的なシステムアーキテクチャの概略図を示している。システム１００は、ラップトップコンピュータ１０２、メディアサーバ１０４、デスクトップコンピュータ１０６、スマートフォン１０８、及び、プロキシサーバ１１０等の複数の装置を含む。ラップトップコンピュータ１０２、メディアサーバ１０４、デスクトップコンピュータ１０６、及び、スマートフォン１０８は、ＣＣＮ１２０と、ＩＰベースのネットワーク等の従来のネットワーク１３０との双方に対して接続されている。プロキシサーバ１１０は、従来のネットワーク１３０に対して接続されている。１つの実施形態において、プロキシサーバ１１０は、ＳＩＰプロキシサーバである。ここで留意すべきは、ＣＣＮ１２０がまた、従来のネットワーク１３０の上に重ね合わされることができるということである。
【００２８】
動作中において、ラップトップコンピュータ１０２は、コンテンツの一部を要求し、コンテンツ・プリフィックス・ツー・カストディアン・マッピングを実行した後に、ラップトップコンピュータ１０２は、スマートフォン１０８がそのようなコンテンツのカストディアンであると判定し、スマートフォン１０８が２つの論理エンドポイントを有すると識別する。ここで留意すべきは、論理エンドポイントが物理的な通信エンドポイントのハイレベル表現であり、場合によってはランデブー機構と組み合わされるということである。１つの実施形態において、カストディアンは、カストディアンが接触され得る各経路についての論理エンドポイント・エントリを発行する。例えば、スマートフォン１０８の２つの論理エンドポイントは、ＷｉＦｉエンドポイント及び第３世代携帯電話エンドポイントを含んでもよく、スマートフォン１０８は、「ｃｅｌｌ＿ｓｉｐ」、「ｗｉｆｉ＿ｓｉｐ」、及び、「ｗｉｆｉ＿ｈｏｍｅｎｅｔ」としてエントリを発行してもよい。これらのエントリは、スマートフォン１０８に対する接続方法をラップトップコンピュータ１０２等の相手方に伝える。例えば、「ｃｅｌｌ＿ｓｉｐ」及び「ｗｉｆｉ＿ｓｉｐ」は、その携帯電話及びＷｉＦｉインターフェースがＳＩＰを介してネゴシエートされるポイント・ツー・ポイント・トンネルを確立することによって到達されることができることを意味しており、「ｗｉｆｉ＿ｈｏｍｅｎｅｔ」は、ＷｉＦｉインターフェースがまた、スマートフォン１０８が家庭の（信頼された）ＷｉＦｉネットワーク上にある場合に、直接接続されることができることを意味している。
【００２９】
１つの実施形態において、コンテンツ・プリフィックス・ツー・カストディアン・マッピング及びカストディアン・ツー・論理エンドポイント・マッピングは、ＣＣＮ１２０に対して接続された全ての装置が互いに通信するときはいつでも、これらの装置間で交換される／割り当てられる。その後、識別された論理エンドポイントは、ＩＰソケット（ＩＰアドレス及びポート）等のネットワークアドレスであるそれらのネットワークエンドポイント識別子（ＮＥＩ）にマッピングされる。ここで留意すべきは、論理エンドポイントのＮＥＩが頻繁に変化することができるため、論理エンドポイント・ツー・ＮＥＩマッピングが動的であるということである。例えば、スマートフォン１０８が異なるＷｉＦｉホットスポットに対して接続されたときはいつでも、スマートフォン１０８のＷｉＦｉインターフェースのＮＥＩは変化する。さらに、論理エンドポイント・ツー・ＮＥＩ・マッピングは、ネットワークアドレス変換（ＮＡＴ）ファイアウォールの存在から生じる問題を大抵含む。より具体的には、カストディアンが複数の論理エンドポイントを含む場合には、複数のエンドポイントとの接続を確立しようとすることは、ＮＡＴファイアウォールの存在下では困難であり得る。
【００３０】
ＮＡＴの存在下の装置ルーティングは、エンドポイントが他のエンドポイントの現在のネットワークアドレスをみつけることができ、それにより、２つのエンドポイント間における接続の確立を可能とするようにＮＡＴ通過プロセスを必要とする。エンドポイントがＮＡＴの後方にないものと、エンドポイントが５種類のＮＡＴのうちの１つの後方にある場合のシナリオとを含む６つの異なるエンドポイントシナリオがある。５種類のＮＡＴは、フルコーン型ＮＡＴ、アドレス制限コーン型（ＡＣ）ＮＡＴ、ポート制限コーン型（ＰＣ）ＮＡＴ、予測可能対称型（ＰＳ）ＮＡＴ、及び、ランダム対称型（ＲＳ）ＮＡＴを含む。
【００３１】
コーン型ＮＡＴは、ＮＡＴバインディングが生き続けている限り、常に、いかなる特定の内部アドレス及びポートの組み合わせも同じ外部アドレス及びポートの組み合わせにマッピングするＮＡＴである。したがって、複数の接続は、同じ内部アドレス及びポートから異なるリモートアドレス及びポートまで作成されることができ、全ての接続は、同じＮＡＴ外部アドレス及びポートから生じるようにみえることになる。フィルタリング能力に応じて、コーン型ＮＡＴはまた、ＦＣ  ＮＡＴ、ＡＣ  ＮＡＴ、及び、ＰＣ  ＮＡＴに分類される。
【００３２】
エンドポイントがＦＣ  ＮＡＴの後方にある場合、一旦ＮＡＴバインディングが生成されると、いかなるリモート外部アドレス及びポートも、データをＮＡＴ外部アドレス及びポートに対して送信することができ、データは、内部ホストアドレス及びポートに対して転送されることになる。ここでフィルタリングがなく、ＮＡＴバインディングが生成されるとすぐに、インターネット上の誰でも、その特定の内部ホストアドレス及びポートに対してデータを送信するようにそれを使用することができる。ＦＣ  ＮＡＴは、制限が最も少ない種類のＮＡＴであり、通過するのに最も容易なものであるが、最も高いセキュリティのリスクを広げるものである。
【００３３】
ＡＣ  ＮＡＴは、いくつかのアドレスフィルタリングを加える。エンドポイントがＡＣ  ＮＡＴの後方にある場合には、それらに開いているＮＡＴバインディングを有するリモート外部アドレスのみが、内部アドレスに対してデータを返送することができ、さらに、それらのリモート外部ホストは、バインディングが開かれたポートのみならず、いかなるポート番号からもそのようにすることができる。ＡＣ  ＮＡＴは、ＮＡＴを介してデータを内部ホストに対して送信することができるＩＰアドレスを、以前に内部ホストからデータを受信したそれらの外部ホストにだけ制限することによる簡便なアドレスフィルタを実装してインターネット上の誰でもＮＡＴバインディングを使用できないようにしている。ＡＣ  ＮＡＴは、ＦＣ  ＮＡＴよりも良好なセキュリティを提供するが、なおも通過するのが比較的容易である。
【００３４】
ＰＣ  ＮＡＴは、さらなるポートフィルタリングを追加する。ＰＣ  ＮＡＴが実装される状況において、ＮＡＴバインディングが内部アドレス及びポートからリモート外部アドレス及びポートに対してセットアップされたとき、その正確なリモートアドレス及びポートのみは、ＰＣ  ＮＡＴを介して内部アドレス及びポートに対してデータを返送することができる。
【００３５】
対称型ＮＡＴは、コーン型ＮＡＴとは異なる。対称型ＮＡＴは、異なるＮＡＴ外部アドレス及びポートに対して、４つのタプル（ローカル内部アドレス、ローカル内部ポート、リモートアドレス、リモートポート）によって定義される各接続をマッピングする。対称型ＮＡＴは、通過するのがかなり困難であり、場合によっては、対称型ＮＡＴを通過することは実行不可能である。対称型ＮＡＴは、予測可能対称型（ＰＳ）ＮＡＴ及びランダム対称型（ＲＳ）ＮＡＴを含む２つのクラスにわけられることができる。ここで留意すべきは、通常は個数が比較的小さいものの、大きいＮＡＴボックスが多数の外部アドレスを有することができるということである。
【００３６】
ＰＳ  ＮＡＴとは、予測可能な方法でその外部アドレス／ポートの組み合わせを割り当てる対称型ＮＡＴをいう。例えば、ＰＳ  ＮＡＴを介した連続的な接続は、シーケンシャルな外部ポート番号にマッピングされてもよい。ＮＡＴボックスのローディング及びＮＡＴバインディングを割り当てるための内部アルゴリズムの双方は、予測可能性に影響する。予測可能性は、試験サーバ（複数のサーバアドレスが必要とされる）に対する多数の試験接続を実行し、ＮＡＴボックスによって使用される外部アドレスにおけるパターンを探すことによって見出されることができる。
【００３７】
ＲＳ  ＮＡＴとは、一見ランダムなアドレス及びポートの組み合わせを分配するＮＡＴボックスをいう。ＲＳ  ＮＡＴボックスは、未使用のマッピングの順序付けられていないリストを保持してもよく、それらがタイムアウトするときにリストの始め又は終わりに対してマッピングを返し、時間とともにリストをランダム化することになる。したがって、その後の接続は、一見ランダムなアドレス／ポートの組み合わせにマッピングされる。家庭又は中小企業において使用されるもの等の軽い負荷の対称型ＮＡＴは、大抵は予測可能である。サービスプロバイダー又は大企業によって使用されるもの等の重い負荷の対称型ＮＡＴは、多くのポートが使用中であり且つ利用可能なポートのパターンが割り当てアルゴリズムの使用にかかわらず急速にランダム化されることから、高い頻度で予測可能ではない。
【００３８】
ＮＡＴ通過は、ＮＡＴの存在下でエンドポイント・ツー・エンドポイント接続を確立するのを必要とする。ＮＡＴ通過に使用される共通の方法は、インタラクティブ接続性確立（ＩＣＥ）プロトコルに基づいている。ＩＣＥでは、ローカルホストが第三者を介してローカルホストについての可能な接続アドレス（ポートを含む）のリストを有するオファーをリモートホストに送信する。この可能な接続アドレス及びポートのリストは、ホストが後方にある任意のＮＡＴボックスについての外部アドレス及びポートとともに、ホストのローカルインターフェース（通常は１つのみ）のそれぞれについてのアドレス及びポートを含む。ＮＡＴ外部アドレス及びポートは、外部ネットワーク上の周知のサーバに対してパケットを送出することによって決定され、サーバは要求が送信されたものの中から見つけたアドレスで応答する。ＮＡＴについてのセッション通過ユーティリティ（ＳＴＵＮ）プロトコルは、このために使用されることができる。少なくとも２つのサーバに対していくつかのそのような要求を送出することにより、クライアントは、ＲＳ  ＮＡＴを除き、それが後方にあるのはどのような種類のＮＡＴであるかを判定することができ、ほぼ全てのＮＡＴの場合に到達可能であるアドレスを予測することができる。任意には、外部中継サーバのアドレスである第３の種類のアドレスが含められる。中継サーバは、ＮＡＴが通過可能ではない場合においてエンドポイントが到達されるのを許容する。通過使用中継ＮＡＴ（ＴＵＲＮ）プロトコルは、外部中継アドレスをセットアップして見出すのに使用されることができる。ローカルホストについての可能な接続アドレス及びポートのリストを受信すると、リモートホストは、同様に生成されるそれ自身の可能な接続アドレス及びポートのリストで応答する。各ホストが他のホストについての可能な接続アドレス及びポートのリストを取得するとすぐに、それぞれは、互いの間における全ての可能な接続を確立しようとする。様々な組み合わせは、（おそらく、ローカルインターフェース、ＮＡＴボックス外部インターフェース、及び、中継サーバの順序で）最初により速い又はより効率的でありそうなリンクを試験することを優先させられる。このプロセスは、双方向通信が確立されたときに停止する。
【００３９】
ＮＡＴボックスを越えるエンドポイント・ツー・エンドポイント接続をセットアップするときに、公衆網上のＳＩＰプロキシサーバ等の第三者は、エンドポイント間におけるセットアップメッセージを中継するのを必要とする。ここで留意すべきは、上述したように、全てのＮＡＴ状態が通過可能であるとは限らないということである。図２は、ＮＡＴの全ての組み合わせについてのエンドポイント・ツー・エンドポイント接続が確立時にＮＡＴ通過が可能であるかどうかの概略図を示している。図２から確認することができるように、エンドポイントのうちの１つがＲＳ  ＮＡＴの後方にあり且つ他のエンドポイントがＰＣ  ＮＡＴ、ＰＳ  ＮＡＴ、又は、ＲＳ  ＮＡＴの後方にある場合には、ＮＡＴ通過は不可能となり、２つのエンドポイントが通信するために外部中継サーバが必要とされる。
【００４０】
ＮＡＴを越えるエンドポイント・ツー・エンドポイント接続をセットアップすることに加え、第三者はまた、１つのローカル・エンドポイントから複数のリモート・エンドポイントまでの複数の接続をセットアップすることができる。例えば、ＳＩＰプロキシサーバは、単一のＳＩＰ  ＩＮＶＩＴＥメッセージをＳＩＰプロキシに登録される複数のＳＩＰエンドポイントに分岐することができる。複数のエンドポイントがＳＩＰプロキシ上の同じレコードのアドレス（ＡＯＲ）に全て登録されるとき、又は、元のＩＮＶＩＴＥが複数のアドレスのリストにまで拡大されたグループ名称宛とされるとき、そのようなプロセスが起こり得る。エンドポイントの前方におけるＮＡＴボックスの存在は、一対多接続をセットアップするためのさらなる挑戦を課すことができる。
【００４１】
図３は、プロキシが一対多接続のセットアップを試みる場合の典型的なシナリオの概略図を示している。図３において、ローカル装置３０２は、ＮＡＴボックス３０６の後方にインターフェース３０４を含む。リモート装置３０８は、ＮＡＴボックス３１４及び３１６の後方にそれぞれ多数のインターフェース３１０−３１２を含む。また、図３に含まれるものは、プロキシサーバ３１８である。図３から、ローカル装置３０２がインターフェース３０４からインターフェース３１０及び３１２までの接続を介してリモート装置３０８と通信することができるということを確認することができる。全てのインターフェースがＮＡＴファイアウォールの後方にあることから、プロキシサーバ３１８は、セットアップメッセージを中継するのに必要とされる。動作中において、インターフェース３０４は、プロキシサーバ３１８に対してＳＩＰ  ＩＮＶＩＴＥ等の接続要求メッセージ３２０を送出する。プロキシサーバ３１８は、接続要求メッセージ３２２及び３２４を含む接続要求メッセージ３２０の複数のコピーを作成し、その後、インターフェース３１０及び３１２に対して接続要求メッセージ３２２及び３２４をそれぞれ送出する。
【００４２】
プロキシにおける接続要求メッセージの分岐は、ＮＡＴ通過プロセスをさらに複雑にし得る。従来のシステムにおいて、ローカルアドレスバインディングは、１つのアドレス及びポートの組み合わせを含むのみである接続要求メッセージにおいて送出され、それにより、複数の接続を確立するための能力を制限している。ＮＡＴがコーン型ＮＡＴである場合には、複数の接続がこの１つのアドレス及びポートから作成されるのをコーン型ＮＡＴが許容することから、これは問題ではない。しかしながら、ＮＡＴが対称型ＮＡＴである場合には、単一の接続のみが単一のＮＡＴ外部アドレス及びポートマッピングを使用して作成されることができることから、複数の接続は失敗することがある。したがって、分岐された招待に対する第１の応答者は、首尾よく接続し得るが、その後のものは失敗することになる。
【００４３】
図４は、ＮＡＴの全ての組み合わせについての一対多接続の確立時に複数のＮＡＴ通過が可能であるかどうかの概略図を示している。図２と比較して、図４においては、ＮＡＴ通過が不可能となる２つのさらなる状態を確認することができる。ローカルホスト（接続要求メッセージを送出しているもの）がＰＳ  ＮＡＴの後方にあるとき、リモートホスト（又はエンドポイント）がＰＣ  ＮＡＴ又はＰＳ  ＮＡＴの後方にある場合には、一対多接続についてのＮＡＴ通過は失敗することがあり得る。換言すれば、システムは、首尾よく複数の接続を確立することに失敗することがある。より具体的には、プロキシが接続要求を分岐するとき、これら２つのＮＡＴ状態においては、第１の分岐された接続のみがＮＡＴを通過することができるのに対して、その後の全ての分岐された接続は通過することができるというわけでない。
【００４４】
ローカル・エンドポイントがＰＳ  ＮＡＴの後方にあり且つリモート・エンドポイントがＰＣ  ＮＡＴの後方にある状況において、ローカル・エンドポイントは、単一の外部アドレス及びポートの組み合わせを送出し、接続要求に対する第１の応答者とのネゴシエーション時に、ローカル・エンドポイントについてのＮＡＴバインディングが作成される。その後の接続は、異なるアドレス及びポートから到来することになる。いかなるその後の応答者も、それらのポート制限コーン型フィルタを第１の接続のアドレス及びポートに開き、それにより、トラフィックが通過するのを防止する。同様に、リモート・エンドポイントがＰＳ  ＮＡＴの後方にある場合には、ＮＡＴバインディングがローカル・エンドポイントについて作成された後に、その後の応答者は、それらの予測された対称型ＮＡＴフィルタを第１の接続のアドレス及びポートのみに開き、それにより、トラフィックが通過するのを防止する。
【００４５】
ＣＣＮネットワークにおけるカストディアンベースのルーティングについて、一対多のＮＡＴ通過の問題は、装置がランデブー機構を介した複数の論理エンドポイントを有するカストディアンに対する複数の接続を確立しようとしているときに起こる。可能なランデブー方法のうち、ＳＩＰベースのランデブーは、多くの利点を有する。１つの利点は、多くのファイアウォールベンダーが積極的にピア・ツー・ピアＳＩＰを支持し、ＳＩＰ交換におけるセッション記述プロトコル（ＳＤＰ）コンテンツに基づいてＵＤＰポートを自動的にホールパンチングすることになるということである。したがって、この開示は、一対多のＮＡＴ通過を実現するための例としてＳＩＰを使用する。１つの実施形態において、論理エンドポイントとそのＮＥＩとの間におけるマッピングは、公開ＳＩＰプロキシを使用して実現される。図１に示される例において、スマートフォン１０８は、その論理エンドポイントの全てについてのその現在のＮＥＩをＳＩＰプロキシ１１０に周期的に登録することができ、１つの登録エントリは１つの論理エンドポイントに対応する。各登録エントリは、どこに登録すべきか及び対応する論理エンドポイントのＮＥＩを指示する。ここで留意すべきは、公開ＳＩＰプロキシに登録する代わりに、ＣＮＮ１１２に対して接続される全ての装置に論理エンドポイント・ツー・ＮＥＩマッピング情報を割り当てることもまた可能であるということである。しかしながら、論理エンドポイント・ツー・ＮＥＩマッピング情報は頻繁に変化し且つそのようなマッピングはＣＣＮ１１２内でのコンテンツ通信を実現するのに必要とされることから、そのようなマッピングを割り当てることは有益でありそうにない。それにもかかわらず、特に装置が不変のＩＰアドレスを有するか又は直接到達可能なＳＩＰエンドポイントであり得る場合に、論理エンドポイント・ツー・ＮＥＩマッピング情報の割り当てが公開ＳＩＰサーバに対するバックアップとして役に立つことができる状況があることがあり得る。
【００４６】
リモート装置がスマートフォン１０８に対する接続を確立するのを許容するために、スマートフォン１０８は、ＳＩＰプロキシ１１０にＳＩＰ識別子を登録するのを必要とする。ＳＩＰ識別子は、装置の公開鍵情報に由来する装置についてのＳＩＰ準拠の識別子であり得る。そのような識別子は、公開鍵情報の知識を有する他のいかなる装置によっても計算可能であり得る。１つの実施形態において、スマートフォン１０８は、１つ以上のＳＩＰ登録レコードを保持する。これらの登録レコードは、スマートフォン１０８が論理エンドポイント・ツー・ＮＥＩマッピング情報を保持するＳＩＰプロキシ１１０のＮＥＩを指定する。
【００４７】
ＳＩＰ登録レコードを検査した後に、ラップトップコンピュータ１０２は、スマートフォン１０８との通信のための可能なプロキシとしてＳＩＰプロキシ１１０を識別する。１つの実施形態において、ラップトップコンピュータ１０２は、登録レコードからスマートフォン１０８についての論理エンドポイント・ツー・ＮＥＩマッピング情報を取得する。スマートフォン１０８についての登録レコードはまた、複数のエンドポイントが存在するかどうかも示す。例えば、スマートフォン１０８についてのＳＩＰ登録レコードは、スマートフォン１０８が、ＷｉＦｉエンドポイント及び第３世代携帯電話エンドポイントというＳＩＰを介して到達可能な２つの論理エンドポイントを有することを示す。実装されているＮＡＴの種類に応じて、ラップトップコンピュータ１０２は、シーケンシャルに又はパラレルに、スマートフォン１０８の複数のエンドポイントに対して接続することを試みてもよい。ラップトップコンピュータ１０２が、それ自身が対称型ＮＡＴファイアウォールの後方にあることを検出した場合には、ラップトップコンピュータ１０２は、シーケンシャルにスマートフォン１０８の複数のエンドポイントに対して接続しようとすることによってシーケンシャルなＮＡＴ戦略を使用することを決定することができるか、そうでなければ、パラレルのＮＡＴ戦略を使用することができる。しかしながら、場合によっては、ラップトップコンピュータは、ＰＳ  ＮＡＴが実装される場合であっても、最良に実行するものを選択するために、全てのエンドポイントに対する接続を同時に確立したくなり得る。そのために、対称型ＮＡＴを越える一対多のＮＡＴ通過を実現するために特別な注意が必要とされる。場合によっては、スマートフォン１０８は、どのエンドポイントがカストディアン・ツー・論理エンドポイント・マッピングエントリにおいてより高い優先レベルを有するかについて特定してもよい。したがって、ラップトップコンピュータ１０２は、最初に、より高い優先レベルを有する論理エンドポイントに対して接続することを試みることになる。
【００４８】
ランデブー手順を開始するために、ラップトップコンピュータ１０２は、プロキシサーバ１１０に対してＳＩＰ  ＩＮＶＩＴＥ等の接続要求を送信する。ＳＩＰ  ＩＮＶＩＴＥは、スマートフォン１０８のＳＩＰ識別子になる。一対多のＮＡＴ通過を容易とするために、このＳＩＰ  ＩＮＶＩＴＥは、いかなるＳＤＰペイロードも含まないという意味で従来のＳＩＰ  ＩＮＶＩＴＥではない。ＳＩＰプロキシ１１０がＩＮＶＩＴＥを受信し、このＳＩＰ識別子について登録された複数の論理エンドポイントがあることを識別したときに、ＳＩＰプロキシ１１０は、ＩＮＶＩＴＥを分岐し（すなわち複数のコピーを作成し）、全ての登録された論理エンドポイントに対して分岐されたＩＮＶＩＴＥを転送する。ここで留意すべきは、ＳＩＰプロキシ１１０が複数のエンドポイントに対する単一のＩＮＶＩＴＥメッセージの分岐に関与することから、それが処理状態を把握するＳＩＰプロキシであることを必要とするということである。
【００４９】
ＩＮＶＩＴＥを受信するのに応答して、スマートフォン１０８は、それぞれがスマートフォン１０８の論理エンドポイントに対応する（ＩＥＴＦウェブサイトｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ３２６１で入手可能なインターネット技術特別調査委員会（ＩＥＴＦ）ＲＦＣ３２６１によって定義されるような）１つ以上の２００／ＯＫメッセージによってＳＩＰプロキシ１１０に対して応答することができる。２００／ＯＫメッセージは、対応する論理エンドポイントに固有のＳＤＰオファーを含む。１つの実施形態において、ＳＤＰオファーは、スマートフォン１０８の各インターフェースについての可能な接続アドレス（ポートを含む）のリストを含む。リストは、インターフェースが後方にある任意のＮＡＴボックスについての外部アドレス及びポートとともに、ローカルアドレス及びポートを含む。さらなる実施形態において、リストはまた、外部中継サーバのアドレスを含む。
【００５０】
そして、ＳＩＰプロキシ１１０は、ＡＣＫメッセージによって各２００／ＯＫメッセージに対して順次応答するラップトップコンピュータ１０２に対して２００／ＯＫメッセージを中継する。ＡＣＫメッセージは、ラップトップコンピュータ１０２に固有のＳＤＰアンサーを含む。１つの実施形態において、ＳＤＰアンサーは、ラップトップコンピュータ１０２についての可能な接続アドレス（ポートを含む）のリストを含む。ここで留意すべきは、ＮＡＴ戦略がシーケンシャルである場合には、ラップトップコンピュータ１０２は、ＡＣＫメッセージを調整するということである。その第３世代携帯電話エンドポイント等のスマートフォン１０８の論理エンドポイントがＡＣＫメッセージを受信するとき、それはリンクアダプタを起動し、インタラクティブ接続性確立（ＩＣＥ）ＮＡＴネゴシエーションが、第３世代携帯電話エンドポイントとラップトップコンピュータ１０２との間で始まる。ＩＣＥについての詳細は、ＩＥＴＦウェブサイト（ｈｔｔｐ：／／ｔｏｏｌｓ．ｉｅｔｆ．ｏｒｇ／ｈｔｍｌ／ｒｆｃ５２４５）で入手可能なＩＥＴＦ  ＲＦＣ５２４５においてみつけることができる。ＮＡＴファイアウォールの種類に応じて、ＮＡＴについてのセッション通過ユーティリティ（ＳＴＵＮ）及び通過使用中継ＮＡＴ（ＴＵＲＮ）等の他のＮＡＴ通過技術がまた使用されることもできる。ＩＣＥネゴシエーションが完了したとリンクアダプタが判定したとき、リンクアダプタは、接続が使用できる状態であることを示すためにメッセージを送信することになる。
【００５１】
招待者のアドレス及びポートの識別及び送信を遅延させることにより且つＳＤＰオファーが各被招待者から送信される２００／ＯＫメッセージに含まれることができることにより、本発明の実施形態は、（外部中継サーバなしで通過するのが不可能である）ＲＳ  ＮＡＴを除き、ほぼ全ての種類のＮＡＴファイアウォールを越える一対多接続の確立を可能とする。ここで留意すべきは、ＮＡＴがコーン型ＮＡＴである場合には、ＩＮＶＩＴＥ複数接続が、スマートフォン１０８の単一のアドレス及びポートと複数のエンドポイントとの間において確立されることができるため、ラップトップコンピュータ１０２からのＩＮＶＩＴＥがＳＤＰオファーを含むことが可能であるということである。
【００５２】
装置がファイアウォールにおいてホールパンチングされるＳＩＰエンドポイントを保つことが可能なことを意味する、カストディアン装置がＳＩＰフレンドリーなファイアウォールを有する場合において、公開ＳＩＰプロキシは、もはやランデブーのために必要とされない。その代わりに、カストディアン装置は、直接到達可能なＳＩＰエンドポイントとして又は非公開ＳＩＰプロキシとして機能を果たすことができる。さらに、カストディアン装置が公開ＩＰアドレスを有する場合には、ＳＩＰプロキシは必要とされない。
【００５３】
図５は、本発明の実施形態にかかるＳＩＰベースのランデブーを実装することが可能な装置のアーキテクチャのブロック図を示している。装置５００は、接続性エージェント５０２と、ＳＩＰエージェント５０４−５０６等の多数のＳＩＰエージェントと、セッションイニシエータ５０８と、接続コントローラ５１０−５１２等の多数の接続コントローラとを含む。
【００５４】
動作中において、接続性エージェント５０２は、ＣＣＮデーモン（ＣＣＮＤ）等のＣＣＮプロセスから満たされてないＣＣＮインタレストを受信し、インタレストを満たすことが可能であり得るリモートシステムに対して接続する方法を判定する。コンテンツ・プリフィックス・ツー・カストディアン・マッピングに基づいて、接続性エージェント５０２は、インタレストを満たすためにどの物理的装置（カストディアン）に対して接続すべきかを判定する。接続性エージェント５０２は、装置５００のＳＩＰ識別子とともに、使用するために公開ＳＩＰプロキシのＮＥＩをＳＩＰエージェント５０４−５０６に提供する。ＳＩＰエージェント５０４−５０６は、順次、公開ＳＩＰプロキシに接触し、各論理エンドポイント（ネットワークインターフェース）についてのＳＩＰ登録を保持する。例えば、ＳＩＰエージェント５０４は、ＷｉＦｉインターフェースについてのＳＩＰ登録を保持するのに対して、ＳＩＰエージェント５０６は、第３世代携帯電話インターフェースについてのＳＩＰ登録を保持する。ここで留意すべきは、インターフェースについてのローカルアドレスは変化してもよく、対応するＳＩＰエージェントは、ローカルインターフェース・アドレスを監視して、最新のＳＩＰプロキシ登録を維持するということである。ＳＩＰエージェントは、ＳＩＰプロキシとの通信経路を開き続けることを必要とする。１つの実施形態において、ＳＩＰエージェントは、適切な登録を保つために、Ｖｉａヘッダにおいて等、ＳＩＰプロキシからのフィードバックを使用する。
【００５５】
（リモート装置からコンテンツの一部を取得するために）セッションがリモート装置によって開始されることを必要とすると接続性エージェント５０２が判定したとき、接続性エージェント５０２は、ＳＩＰプロキシを介してリモートＳＩＰ識別子に対してペイロードがないＩＮＶＩＴＥを送信するように順次特定のＳＩＰエージェントに対して指示するセッションイニシエータ５０８に対してリモート装置のＳＩＰ識別子を渡す。ここで留意すべきは、ＩＮＶＩＴＥがＳＤＰペイロードを含まないことから、ＩＮＶＩＴＥはＳＤＰオファーではないということである。ＳＩＰエージェント５０４等のＳＩＰエージェントがリモートＳＩＰ識別子からＩＮＶＩＴＥを受信した場合には、ＳＩＰエージェントは、ローカルアドレス及びポート、サーバ反射アドレス及びポート、及び、中継アドレスを含むことができる、インターフェースに固有のＮＥＩのリストを有するＳＤＰオファーを含む２００／ＯＫメッセージを生成することになる。ＳＩＰエージェントがＳＤＰオファーを含む２００／ＯＫメッセージを受信した場合には、ＳＩＰエージェントは、インターフェースに固有のＮＥＩをリストアップしたＳＤＰアンサーを有するＡＣＫを構築し、それにより、ＳＩＰセットアップメッセージ交換を完了する。
【００５６】
接続コントローラ５１０−５１２は、一対の所定のローカル及びリモートＮＥＩの間におけるリンクの保持に関与する。ＳＩＰエージェントがＡＣＫを受信したとき、ＳＩＰエージェントは、セッションイニシエータ５０８に対して２００／ＯＫ及びＡＣＫ情報を渡し、特定のインターフェースについての接続コントローラを生成する。ＩＣＥ等のＮＡＴ通過ライブラリを使用することにより、接続コントローラは、ＮＡＴファイアウォールの存在下であってもリモート装置に対して接続することができる。
【００５７】
図６は、本発明の実施形態にかかるＳＩＰベースのランデブーのプロセスの時空間概略図を示している。いかなる接続の試みも許容するのに先立って、リモート・エンドポイント６０６及び６０８は、ＳＩＰプロキシ６０４に登録することを必要とする（工程６１０及び６１２）。リモート・エンドポイント６０６及び６０８に対する接続を確立するために、ローカル・エンドポイント６０２は、ＳＩＰプロキシ６０４に対して、リモート・エンドポイント６０６及び６０８に対応するＳＩＰ識別子になるペイロードがないＩＮＶＩＴＥメッセージを送信する（工程６１４）。ここで留意すべきは、ペイロードがないＩＮＶＩＴＥはＳＤＰペイロードを含まず、それにより、オファーではないということである。ＳＩＰプロキシ６０４は、エンドポイント６０６に対して１つのＩＮＶＩＴＥを且つエンドポイント６０８に対して１つのＩＮＶＩＴＥを転送することによって単一のＩＮＶＩＴＥを分岐する（工程６１６及び６１８）。ＩＮＶＩＴＥメッセージを受信すると、各エンドポイントは、ＳＩＰプロキシ６０４に対して２００／ＯＫメッセージによって応答する（工程６２０及び６２２）。各２００／ＯＫメッセージは、エンドポイントのローカルアドレス及びポート、ＮＡＴ外部アドレス及びポート、並びに、任意の中継アドレスを含んでもよいエンドポイントに固有のＮＥＩのリストを有するＳＤＰオファーを含む。他の実施形態において、２００／ＯＫメッセージの代わりに、リモート・エンドポイントは、ＳＩＰ暫定応答メッセージにおいてＳＤＰオファーを送出してもよい。ＳＩＰプロキシ６０４は、ローカル・エンドポイント６０２に対して２００／ＯＫメッセージを中継して戻す（工程６２４及び６２６）。
【００５８】
リモート・エンドポイント６０６及び６０８からのＳＤＰオファーを含む２００／ＯＫメッセージを受信すると、ローカル・エンドポイント６０２は、各２００／ＯＫについてのＳＩＰプロキシ６０４に対してＡＣＫメッセージを送信する（工程６２８及び６３０）。ＳＤＰオファーがＳＩＰ暫定応答メッセージに含まれる場合には、ローカル・エンドポイント６０２は、暫定応答確認（ＰＲＡＣＫ）をＳＩＰプロキシ６０４に対して送信する。ＡＣＫメッセージは、ローカル・エンドポイント６０２についてのローカルアドレス及びポート、ＮＡＴ外部アドレス及びポート、並びに、任意の中継アドレスを含んでもよいＳＤＰアンサーを含む。ＳＩＰプロキシ６０４は、リモート・エンドポイント６０６及び６０８に対してＡＣＫメッセージを転送して戻し（工程６３２及び６３４）、それにより、ＳＩＰセットアップメッセージの交換を完了する。ここで留意すべきは、ローカルＮＡＴ戦略がシーケンシャルである場合には、ローカル装置６０２は、ＡＣＫメッセージの送信を調整してもよいということである。一旦エンドポイントの対が互いから可能な接続アドレス及びポートを取得すると、それらは、ＩＣＥネゴシエーションを開始するためにリンクアダプタを起動することができる（工程６３６及び６３８）。一旦ＩＣＥネゴシエーションプロセスが完了すると、接続は使用できる状態である（工程６４０及び６４２）。
【００５９】
ここで留意すべきは、時々、リモート装置、特に携帯機器は、節電モードであることがあり、したがって、携帯電話データ接続又はＷｉＦｉ接続を開き続けないということである。結果として、装置はＳＩＰを介して到達不可能である。そのような場合、ローカル装置は、リモート携帯機器を起動するためにテキストメッセージや通話等の他の手段を使用してもよい。そのような帯域外信号伝達は、ＳＩＰベースのランデブーを開始するためにリモート携帯機器にデータ接続を行わせるブートストラップである。ここで留意すべきは、帯域外信号はランデブーのためには使用されないが、ＳＩＰ登録及び交換の開始のためには使用され、ＳＩＰベースのランデブーは処理されることができるということである。ＳＩＰプロキシの能力に応じて、装置は、帯域外起動方法を示すために電話番号又はＳＩＰプロキシとの他の接点を登録することができる。
【００６０】
また、ここで留意すべきは、ローカル・エンドポイントがコーン型ＮＡＴの後方にあるとき等、ＮＡＴが容易に通過されることができる場合には、ローカルアドレス及びポートの組み合わせの送信の遅延がより遅いセッションセットアップ・プロセスをもたらすことがあることから、システムは、より速いセッションセットアップ・プロセスをもたらすことができる従来のＮＡＴ通過方法を使用することができるということである。１つの実施形態において、ローカル・エンドポイントは、最初に、それが後方にあるのはどのような種類のＮＡＴであるかを判定する。それがコーン型ＮＡＴの後方にあると判定した場合には、通常のＮＡＴ通過が実行される。ＳＩＰの場合において、ローカル・エンドポイントは、ＳＩＰプロキシに対して、その接続アドレス／ポートの組み合わせを含むＳＤＰオファーを含む従来のＳＩＰ  ＩＮＶＩＴＥを送出することができる。一方で、それが予測可能対称型ＮＡＴの後方にあると判定した場合には、それは、ペイロードがないＳＩＰ  ＩＮＶＩＴＥを送出することにより、それ自身のアドレス及びポートの組み合わせの送信を遅延させることになる。
【００６１】
図７は、本発明の実施形態にかかるＳＩＰベースのランデブーを容易とする典型的なコンピュータシステムを示している。図７において、コンピュータ及び通信システム７００は、プロセッサ７０２と、メモリ７０４と、記憶装置７０６とを含む。記憶装置７０６は、プロセッサ７０２によって実行されることになるプログラムを記憶する。具体的には、記憶装置７０６は、アプリケーション７１０及び７１２等の他のアプリケーションとともに、ＳＩＰベースのランデブーアプリケーション７０８を記憶する。動作中において、ＳＩＰベースのランデブーアプリケーション７０８は、記憶装置７０６からメモリ７０４にロードされ、その後、プロセッサ７０２によって実行される。プログラムを実行するとともに、プロセッサ７０２は、上述した機能を実行する。コンピュータ及び通信システム７００は、任意のディスプレイ７１４、キーボード７１６、及び、ポインティングデバイス７１８に対して接続されている。
【００６２】
ここで留意すべきは、この開示は一対多のＮＡＴ通過を実現するためにＳＩＰを使用したランデブープロセスを記載しているものの、接続の招待者が最初の接続要求においてそのアドレス及びポートの組み合わせを送出しない限り、他の種類のメッセージ交換がまた、同じ目的を実現するために可能であるということである。
【図１】
0005865684.tif 000002
【図２】
0005865684.tif 000003
【図３】
0005865684.tif 000004
【図４】
0005865684.tif 000005
【図５】
0005865684.tif 000006
【図６】
0005865684.tif 000007
【図７】
0005865684.tif 000008