(57)【特許請求の範囲】
【請求項１】
第1のピアデバイスによって、第2のピアデバイスとの近距離ベースの接続を確立するステップと、
前記第2のピアデバイスによる受信のために、前記近距離ベースの接続を介して前記第1のピアデバイスの第1の候補アドレスリストを送信するステップと、
前記近距離ベースの接続を介して前記第2のピアデバイスの第2の候補アドレスリストを受信するステップと、
第1および第2の候補アドレスリストから選択された第1および第2のパブリックネットワークアドレスの様々な対を使用して広域接続を確立することを反復的に試みるステップと、
前記第1の候補アドレスリストから選択された第1のパブリックネットワークアドレスおよび前記第2の候補アドレスリストから選択された第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するステップと
を含むピアデバイスによるピアツーピア通信の方法。
【請求項２】
前記広域接続を確立できるかどうかを決定するために前記第1のパブリックネットワークアドレスおよび前記第2のパブリックネットワークアドレスを使用して、双方向接続確立(ICE)プロトコルを開始するステップをさらに含む請求項1に記載の方法。
【請求項３】
前記第1のピアデバイス上の第1の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第1の複数のネットワークアドレスを含む第1の候補アドレスリストを生成するステップをさらに含み、
前記第2の候補アドレスリストが、前記第2のピアデバイス上の第2の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第2の複数のネットワークアドレスを含み、
前記第1の複数のネットワークアドレスのうちの1つおよび前記第2の複数のネットワークアドレスのうちの1つを含む候補の対を選択するステップであり、
前記広域接続を介した前記通信セッションを確立する前記ステップが、前記選択された候補の対を使用して確立するステップをさらに含む、ステップ
をさらに含む請求項1に記載の方法。
【請求項４】
前記第1のピアデバイスによって、前記第2のピアデバイスの第1のネットワークアドレスを取得するステップであり、前記第1のネットワークアドレスが前記第2のパブリックネットワークアドレスとは異なる、ステップと、
前記第1のネットワークアドレスを使用して前記第2のピアデバイスに接続できないことを決定するステップであり、
送信する前記ステップおよび受信する前記ステップが前記接続できないことに基づく、ステップと
をさらに含む請求項3に記載の方法。
【請求項５】
前記候補の対を選択する前記ステップが、前記広域接続を有効にするそれぞれの候補の対が見つかるまで、双方向接続確立(ICE)プロトコルに基づいて反復的に選択するステップをさらに含む請求項3に記載の方法。
【請求項６】
前記広域接続に対応する所望の通信特性に対応するユーザ入力を受信するステップであり、送信する前記ステップおよび受信する前記ステップが前記ユーザ入力に基づく、ステップをさらに含む。請求項1に記載の方法。
【請求項７】
前記広域接続に対応する所望の通信特性と関連した前記第1のピアデバイスにおいてアプリケーションを実行するステップであり、送信する前記ステップおよび受信する前記ステップが前記アプリケーションの前記実行からのトリガに基づく、ステップをさらに含む請求項1に記載の方法。
【請求項８】
前記第2のピアデバイスから広域通信要求を受信するステップであり、送信する前記ステップおよび受信する前記ステップが前記広域通信要求の前記受信に基づく、ステップをさらに含む請求項1に記載の方法。
【請求項９】
前記広域接続が前記近距離ベースの接続と比較して異なる通信特性を有する請求項1に記載の方法。
【請求項１０】
前記広域接続を介した前記通信セッションを確立する前記ステップの後、前記近距離ベースの接続をリリースするステップをさらに含む請求項1に記載の方法。
【請求項１１】
前記近距離ベースの接続および前記広域接続を維持するステップであり、前記近距離ベースの接続および前記広域接続が異なる通信特性を有する、ステップと、
通信メッセージの送信のために、前記近距離ベースの接続または前記広域接続のうちの一方を、前記通信メッセージの所望の通信特性と、前記近距離ベースの接続または前記広域接続のうちの前記選択された一方のそれぞれの通信特性との間の一致に基づいて選択するステップと
をさらに含む請求項1に記載の方法。
【請求項１２】
第2のピアデバイスとの近距離ベースの接続を確立するための第1のモジュールと、
前記第2のピアデバイスによる受信のために、前記近距離ベースの接続を介して前記第1のピアデバイスの第1の候補アドレスリストを送信するための第2のモジュールと、
前記近距離ベースの接続を介して前記第2のピアデバイスの第2の候補アドレスリストを受信するための第3のモジュールと、
前記第1の候補アドレスリストから選択された第1のパブリックネットワークアドレスおよび前記第2の候補アドレスリストから選択された第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するための第4のモジュールと
を含む通信を有効にするように構成された少なくとも1つのプロセッサ。
【請求項１３】
前記広域接続を確立することができるかどうかを決定するために、前記第1のパブリックネットワークアドレスおよび前記第2のパブリックネットワークアドレスを使用して双方向接続確立(ICE)プロトコルを開始するための第5のモジュールをさらに含む請求項12に記載の少なくとも1つのプロセッサ。
【請求項１４】
前記第1のピアデバイス上の第1の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第1の複数のネットワークアドレスを含む第1の候補アドレスリストを生成するための第5のモジュールをさらに含み、
前記第2の候補アドレスリストが、前記第2のピアデバイス上の第2の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第2の複数のネットワークアドレスを含み、
前記第1の複数のネットワークアドレスのうちの1つおよび前記第2の複数のネットワークアドレスのうちの1つを含む候補の対を選択するための第6のモジュールであり、
前記第4のモジュールが、前記選択された候補の対を使用して前記広域接続を介した前記通信セッションを確立する、第6のモジュール
をさらに含む請求項12に記載の少なくとも1つのプロセッサ。
【請求項１５】
前記第1のピアデバイスによって、前記第2のピアデバイスの第1のネットワークアドレスを取得するための第7のモジュールであり、前記第1のネットワークアドレスが前記第2のパブリックネットワークアドレスとは異なる、第7のモジュールと、
前記第1のネットワークアドレスを使用して前記第2のピアデバイスに接続できないことを決定するための第8のモジュールであり、
送信する前記ステップおよび受信する前記ステップが前記ユーザ入力に基づく、第8のモジュールと
をさらに含む請求項14に記載の少なくとも1つのプロセッサ。
【請求項１６】
前記候補の対を選択するための前記第6のモジュールが、前記広域接続を有効にするそれぞれの候補の対が見つかるまで、双方向接続確立(ICE)プロトコルに基づいてさらに反復的に選択する請求項14に記載の少なくとも1つのプロセッサ。
【請求項１７】
コンピュータにより実行可能な命令を備えたコンピュータプログラムであって、
コンピュータに第2のピアデバイスとの近距離ベースの接続を確立させるための少なくとも1つの命令と、
前記コンピュータに前記第2のピアデバイスによる受信のために、前記近距離ベースの接続を介して前記第1のピアデバイスの第1の候補アドレスリストを送信させるための少なくとも1つの命令と、
前記コンピュータに前記近距離ベースの接続を介して前記第2のピアデバイスの第2の候補アドレスリストを受信させるための少なくとも1つの命令と、
前記コンピュータに前記第1の候補アドレスリストから選択された第1のパブリックネットワークアドレスおよび前記第2の候補アドレスリストから選択された第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立させるための少なくとも1つの命令と
を含むコンピュータプログラム。
【請求項１８】
前記広域接続を確立することができるかどうかを決定するために、前記第1のパブリックネットワークアドレスおよび前記第2のパブリックネットワークアドレスを使用して双方向接続確立(ICE)プロトコルを開始するための少なくとも1つの命令をさらに含む請求項17に記載のコンピュータプログラム。
【請求項１９】
前記第1のピアデバイス上の第1の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第1の複数のネットワークアドレスを含む第1の候補アドレスリストを生成するための少なくとも1つの命令をさらに含み、
前記第2の候補アドレスリストが、前記第2のピアデバイス上の第2の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第2の複数のネットワークアドレスを含み、
前記第1の複数のネットワークアドレスのうちの1つおよび前記第2の複数のネットワークアドレスのうちの1つを含む候補の対を選択するための少なくとも1つの命令であり、
前記広域接続を介した前記通信セッションを確立するための前記少なくとも1つの命令が、前記選択された候補の対を使用して確立するための少なくとも1つの命令をさらに含む、命令
をさらに含む請求項17に記載のコンピュータプログラム。
【請求項２０】
前記第1のピアデバイスによって、前記第2のピアデバイスの第1のネットワークアドレスを取得するための少なくとも1つの命令であり、前記第1のネットワークアドレスが前記第2のパブリックネットワークアドレスとは異なる、命令と、
前記第1のネットワークアドレスを使用して前記第2のピアデバイスに接続できないことを決定するための少なくとも1つの命令であり、
送信する前記ステップおよび受信する前記ステップが前記接続できないことに基づく、命令と
をさらに含む請求項19に記載のコンピュータプログラム。
【請求項２１】
前記候補の対を選択するための前記少なくとも1つの命令が、前記広域接続を有効にするそれぞれの候補の対が見つかるまで、双方向接続確立(ICE)プロトコルに基づいて反復的に選択するための少なくとも1つの命令をさらに含む請求項19に記載のコンピュータプログラム。
【請求項２２】
第2のピアデバイスとの近距離ベースの接続を確立するための手段と、
前記第2のピアデバイスによる受信のために、前記近距離ベースの接続を介して前記第1のピアデバイスの第1の候補アドレスリストを送信するための手段と、
前記近距離ベースの接続を介して前記第2のピアデバイスの第2の候補アドレスリストを受信するための手段と、
前記第1の候補アドレスリストから選択された第1のパブリックネットワークアドレスおよび前記第2の候補アドレスリストから選択された第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するための手段と
を含む第1のピアデバイス。
【請求項２３】
前記広域接続を確立できるかどうかを決定するために前記第1のパブリックネットワークアドレスおよび前記第2のパブリックネットワークアドレスを使用して、双方向接続確立(ICE)プロトコルを開始するための手段をさらに含む請求項22に記載の第1のピアデバイス。
【請求項２４】
前記第1のピアデバイス上の第1の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第1の複数のネットワークアドレスを含む第1の候補アドレスリストを生成するための手段をさらに含み、
前記第2の候補アドレスリストが、前記第2のピアデバイス上の第2の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第2の複数のネットワークアドレスを含み、
前記第1の複数のネットワークアドレスのうちの1つおよび前記第2の複数のネットワークアドレスのうちの1つを含む候補の対を選択するための手段であり、
前記広域接続を介した前記通信セッションを確立するための前記手段が、前記選択された候補の対を使用して確立するための手段をさらに含む、手段
をさらに含む請求項22に記載の第1のピアデバイス。
【請求項２５】
前記第1のピアデバイスによって、前記第2のピアデバイスの第1のネットワークアドレスを取得するための手段であり、前記第1のネットワークアドレスが前記第2のパブリックネットワークアドレスとは異なる、手段と、
前記第1のネットワークアドレスを使用して前記第2のピアデバイスに接続できないことを決定するための手段であり、
送信する前記ステップおよび受信する前記ステップが前記接続できないことに基づく、手段と
をさらに含む請求項24に記載の第1のピアデバイス。
【請求項２６】
前記候補の対を選択するための前記手段が、前記広域接続を有効にするそれぞれの候補の対が見つかるまで、双方向接続確立(ICE)プロトコルに基づいて反復的に選択するための手段をさらに含む請求項24に記載の第1のピアデバイス。
【請求項２７】
第2のピアデバイスとの近距離ベースの接続を確立し、
前記第2のピアデバイスによる受信のために、前記近距離ベースの接続を介して前記第1のピアデバイスの第1の候補アドレスリストを送信し、
前記近距離ベースの接続を介して前記第2のピアデバイスの第2の候補アドレスリストを受信し、
前記第1の候補アドレスリストから選択された第1のパブリックネットワークアドレスおよび前記第2の候補アドレスリストから選択された第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立する
ように構成されたプロセッサ
を含む第1のピアデバイス。
【請求項２８】
前記プロセッサが、前記広域接続を確立できるかどうかを決定するために前記第1のパブリックネットワークアドレスおよび前記第2のパブリックネットワークアドレスを使用して、双方向接続確立(ICE)プロトコルを開始するようにさらに構成された請求項27に記載の第1のピアデバイス。
【請求項２９】
前記プロセッサが、
前記第1のピアデバイス上の第1の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第1の複数のネットワークアドレスを含む第1の候補アドレスリストを生成し、
前記第2の候補アドレスリストが、前記第2のピアデバイス上の第2の複数のネットワークインターフェースのうちの1つとそれぞれ関連した第2の複数のネットワークアドレスを含み、
前記第1の複数のネットワークアドレスのうちの1つおよび前記第2の複数のネットワークアドレスのうちの1つを含む候補の対を選択し、
前記広域接続を介した前記通信セッションを確立する前記ステップが、前記選択された候補の対を使用して確立するステップをさらに含む
ようにさらに構成された請求項27に記載の第1のピアデバイス。
【請求項３０】
前記プロセッサが、
前記第2のピアデバイスの第1のネットワークアドレスを取得し、前記第1のネットワークアドレスが前記第2のパブリックネットワークアドレスとは異なり、
前記第1のネットワークアドレスを使用して前記第2のピアデバイスに接続できないことを決定し、
送信する前記ステップおよび受信する前記ステップが前記接続できないことに基づく
ようにさらに構成された請求項29に記載の第1のピアデバイス。
【請求項３１】
前記プロセッサが、前記広域接続を有効にするそれぞれの候補の対が見つかるまで、双方向接続確立(ICE)プロトコルに基づいて、前記候補の対を反復的に選択するようにさらに構成された請求項29に記載の第1のピアデバイス。
【請求項３２】
前記プロセッサが、前記広域接続に対応する所望の通信特性に対応するユーザ入力を受信するようにさらに構成され、送信する前記ステップおよび受信する前記ステップが前記ユーザ入力に基づく請求項27に記載の第1のピアデバイス。
【請求項３３】
前記プロセッサが、前記広域接続に対応する所望の通信特性と関連したアプリケーションを実行するようにさらに構成され、送信する前記ステップおよび受信する前記ステップが前記アプリケーションの前記実行からのトリガに基づく請求項27に記載の第1のピアデバイス。
【請求項３４】
前記プロセッサが、前記第2のピアデバイスから広域通信要求を受信するように構成され、送信する前記ステップおよび受信する前記ステップが前記広域通信要求の前記受信に基づく請求項27に記載の第1のピアデバイス。
【請求項３５】
前記広域接続が前記近距離ベースの接続と比較して異なる通信特性を有する請求項27に記載の第1のピアデバイス。
【請求項３６】
前記プロセッサが、前記広域接続を介した前記通信セッションを確立する前記ステップの後、前記近距離ベースの接続をリリースするようにさらに構成された請求項27に記載の第1のピアデバイス。
【請求項３７】
前記プロセッサが、
前記近距離ベースの接続および前記広域接続を維持し、前記近距離ベースの接続および前記広域接続が異なる通信特性を有し、
通信メッセージの送信のために、前記近距離ベースの接続または前記広域接続のうちの一方を、前記通信メッセージの所望の通信特性と、前記近距離ベースの接続または前記広域接続のうちの前記選択された一方のそれぞれの通信特性との間の一致に基づいて選択する
ようにさらに構成された請求項27に記載の第1のピアデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
米国特許法第119条に基づく優先権の主張
本特許出願は、本特許出願の譲受人に譲渡され、参照により本明細書に明示的に組み込まれている、2009年12月15日に出願された「Apparatus And Method Of Peer-To-Peer Communication」という名称の米国仮特許出願第61/286,604号の優先権を主張する。
【０００２】
記載されている態様は、通信に関し、より詳細にはピアツーピア通信に関する。
【背景技術】
【０００３】
通信デバイスはしばしば、例えばBluetooth(登録商標)、Peanut、Zigbee(登録商標)、または他の任意の短距離通信およびサービス発見機構などのプロトコルを使用して、2つのピアデバイスなど、互いを発見し、近距離ベースの接続(proximity-based connection)を確立することができる。
【０００４】
しかし、こうした近距離ベースの接続によって接続される2つ以上のデバイスは、近距離ベースの接続が望まれない、またはさらなる通信に適していないことを決定することがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、通信の改良された装置および方法が望まれる。
【課題を解決するための手段】
【０００６】
こうした態様を基本的に理解できるようにするために、以下に1つまたは複数の態様の簡単な概要を示す。この概要は、すべての企図された態様の広範囲な概要であるというわけではなく、また、すべての態様の鍵となるまたは重要な要素を識別するためのものではなく、任意のまたはすべての態様の範囲を確定するためのものでもない。単に、後述されるより詳細な説明の前置きとして1つまたは複数の態様のいくつかの概念を簡略化した形で提示するためのものである。
【０００７】
一態様において、ピアデバイスによるピアツーピア通信の方法は、第1のピアデバイスによって、第2のピアデバイスとの近距離ベースの接続を確立するステップを含む。この方法は、第2のピアデバイスによる受信のために近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信するステップも含む。さらに、この方法は、近距離ベースの接続を介して第2のピアデバイスの第2のパブリックネットワークアドレスを受信するステップを含む。さらに、この方法は、第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するステップを含む。
【０００８】
他の態様は、例えば、上記の方法の行為を実行するために構成された1つまたは複数のモジュールを有する少なくとも1つのプロセッサに関する。例えば、少なくとも1つのプロセッサは、第2のピアデバイスとの近距離ベースの接続を確立するための第1のモジュールと、第2のピアデバイスによる受信のために近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信するための第2のモジュールとを含み得る。さらに、少なくとも1つのプロセッサは、近距離ベースの接続を介して第2のピアデバイスの第2のパブリックネットワークアドレスを受信するための第3のモジュールと、第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するための第4のモジュールとを含み得る。
【０００９】
さらに、別の態様において、コンピュータプログラム製品は、コンピュータに上記の方法の行為を実行させるための1つまたは複数の命令を有するコンピュータ可読媒体を含む。例えば、コンピュータプログラム製品は、コンピュータに第2のピアデバイスとの近距離ベースの接続を確立させるための少なくとも1つの命令と、コンピュータに第2のピアデバイスによる受信のために近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信させるための少なくとも1つの命令とを含むコンピュータ可読媒体を含み得る。さらに、コンピュータ可読媒体は、コンピュータに近距離ベースの接続を介した第2のピアデバイスの第2のパブリックネットワークアドレスを受信させるための少なくとも1つの命令と、コンピュータに第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立させるための少なくとも1つの命令とをさらに含み得る。
【００１０】
さらに、別の態様は、上記の方法の行為を実行するための手段を有する第1のピアデバイスを含み得る。例えば、第1のピアデバイスは、第2のピアデバイスとの近距離ベースの接続を確立するための手段と、第2のピアデバイスによる受信のために近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信するための手段とを含み得る。また、第1のピアデバイスは、近距離ベースの接続を介して第2のピアデバイスの第2のパブリックネットワークアドレスを受信するための手段と、第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するための手段とをさらに含み得る。
【００１１】
さらなる態様において、第1のピアデバイスは、上記の方法の行為を実行するように構成されたプロセッサを有し得る。例えば、第1のピアデバイスは、第2のピアデバイスとの近距離ベースの接続を確立し、第2のピアデバイスによる受信のために近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信するように構成されたプロセッサを含み得る。さらに、第1のピアデバイスのプロセッサは、近距離ベースの接続を介して第2のピアデバイスの第2のパブリックネットワークアドレスを受信し、第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して広域接続を介した通信セッションを確立するように構成されてもよい。
【００１２】
上記のおよび関連の目的の達成のために、1つまたは複数の態様は、以下で十分に説明され、特許請求の範囲で特に指摘される特徴を含む。以下の説明および添付の図面は、1つまたは複数の態様のいくつかの特徴例を詳細に記載する。しかし、これらの特徴は、様々な態様の原理が使用され得る様々な方法のうちのほんの少ししか示しておらず、この説明は、こうしたすべての態様およびその均等物を含むものとする。
【００１３】
以下、開示された態様を限定するのではなく例証するために提供される添付の図面との関連で、開示された態様について説明する。図中、類似の表示は、類似の要素を示す。
【図面の簡単な説明】
【００１４】
【図１】ピアツーピア通信のシステムの一態様を示す概略図である。
【図２】図1に対応するピアツーピア通信の一態様を示すメッセージフロー図である。
【図３】図1のピアデバイスの論理アーキテクチャの一部分の一態様を示す概略図である。
【図４】図1のピアデバイスの論理アーキテクチャの別の一部分の一態様を示す概略図である。
【図５】図1のシステムで動作可能な通信の方法の一態様を示すフローチャートである。
【図６】本明細書に記載されている通信のシステムの一態様を示す概略図である。
【発明を実施するための形態】
【００１５】
次に、図面を参照して、様々な態様について説明する。以下の説明では、説明上、1つまたは複数の態様を完全に理解できるようにするために、多数の具体的な詳細が記載される。しかし、こうした態様がこれらの具体的な詳細なしで実施され得ることは明白であろう。
【００１６】
記載された態様は、例えばピアデバイスなど、少なくとも2つの通信デバイス間の広域接続を確立する装置および方法を提供する。2つのピアデバイスは、最初に、互いを発見し、近距離ベースのプロトコルを使用して、互いに通信することができるが、こうした接続を確立するための情報、例えば適切なネットワークアドレスが欠如しているので、広域接続を確立することができない場合がある。例えば、2つのデバイスが異なるサブネットにあり、発信および宛先のアドレスとしてそれぞれのサブネットアドレスを使用して接続しようと試行する場合、各サブネットアドレスが他方のサブネットにおいて認識されないため、結果として行われる通信の試行は失敗する。
【００１７】
記載された装置および方法は、ネットワークアドレスの候補リストの生成、およびさらに近距離ベースの接続を介したそれぞれの候補リストの交換を提供する。各候補リストは、対応するピアデバイスの各ネットワークインターフェースと関連した複数のネットワークアドレスを含む。したがって、次いで、一方または両方のデバイスは、広域接続を確立する際に使用する複数の候補の対のうちの選択された1つを決定することができる。例えば、一方または両方のデバイスは、例えば反復的な方法で、デバイス自体の候補リストと他方のデバイスから受信された候補リストとの異なる組み合わせを使用して他方のデバイスに接続しようと試行することができる。さらに、試行された候補の組み合わせは、1つまたは複数のアルゴリズムに基づいて最適化され得る。例えば、候補リストの生成、または広域接続を試行する際に使用すべき選択された候補の対の決定、またはその両方は、双方向接続確立(Interactive Connection Establishment:ICE)プロトコルを使用するステップを含み得る。選択された候補の対が一旦決定されると、装置および方法は、選択された候補の対を使用して広域接続を確立することを試行するステップを含む。選択された候補の対が成功した場合、広域接続が確立される。例えば、広域接続は、ポイントツーポイントインターネットプロトコル(IP)接続でもよい。
【００１８】
したがって、最初に近距離ベースの接続を介して接続される2つのピアデバイスは、近距離ベースの接続を介して候補リストを交換し、広域接続に使用するために選択された候補の対を決定することを介して、広域接続を代わりにまたはさらに確立することができる。例えば、1つの非限定的な態様において、記載されている態様および方法は、それぞれのデバイスによって格納され、または取得され得るBluetooth(登録商標)プロファイルにおいて構成され得る。したがって、記載された態様によって、2つのピアデバイスは、例えばBluetooth(登録商標)など、(TCPから見て)帯域外の近距離ベースのネットワークを介して候補リストを交換することができ、これによって、双方によって見られるためにパブリックインターネット上になければならない、中央で管理されたネットワーク構成要素、例えばSIPサーバなどの必要がなくなる。
【００１９】
図1を参照すると、一態様において、ピアツーピア通信10のシステムは、第1の通信デバイス12または第1のピア(P1)デバイスと、第2の通信デバイス14または第2のピア(P2)デバイスとを含み、これらは、互いを発見し、近距離ベースの接続16を確立し、次いで近距離ベースの接続16を使用して、広域接続17を確立するように構成されている。
【００２０】
例えば、最初に、各デバイス12または14は、サービス発見プロトコルを実行し、近距離ベースのプロトコルのうちの1つまたは任意の組み合わせに従って近距離ベースの接続16を確立することができる。例えば、近距離ベースのプロトコルは、それだけには限定されないが、例えばBluetooth(登録商標)、Peanut、Zigbee(登録商標)、および他の任意の比較的短距離の通信プロトコルなどのプロトコルを含み得る。この点で、短距離通信プロトコルは、約100メートルを超える距離、または他の態様では、約30メートルと約100メートルとの間の距離を有し得る広域または長距離通信プロトコルと比較して、約100メートル以下、または他の態様では約75メートル以下、または他の態様では約10メートル以下、または他の態様では約1メートルの距離を有し得る。例えば、広帯域プロトコルは、それだけには限定されないが、例えばCDMA、WCDMA、GSM(登録商標)などのセルラ通信プロトコルなどのプロトコル、広域ローカルエリアネットワークプロトコル、WiFiなどを含み得る。したがって、短距離通信プロトコルは、対応する広域または長距離の通信プロトコルより実質的に短距離を有することができ、こうした短距離対長距離の比較は、それだけには限定されないが、Bluetooth(登録商標)対WLAN、またはWLAN対WWANなどを含み得る。いずれにせよ、近距離ベースの接続16が2つのデバイスの間の直接接続であるとき、近距離ベースの接続16はピアツーピア接続と呼ばれ得る。
【００２１】
さらに、ピアデバイス12および14は、それぞれの候補アドレスリスト18および20を交換することができる。各候補アドレスリスト18または20は、それぞれのデバイスのネットワークインターフェース26および28と関連したそれぞれのデバイスの1つまたは複数のネットワークアドレス22および24を含むことができる。例えば、第1のピアデバイス12は、1からnまでのネットワークインターフェースに対応する1からnまでのネットワークアドレスを有することができ、第2のピアデバイス14は、1からmまでのネットワークインターフェースに対応する1からmまでのネットワークアドレスを有することができ、nおよびmは、正の整数である。さらに、例えば、ネットワークインターフェース26および28は、Bluetooth(登録商標)、Peanut、またはZigbee(登録商標)インターフェース、例えばWiFiインターフェースなどのWLANインターフェース、例えばセルラまたはホワイトスペースインターフェースなどのWWANインターフェース、有線ネットワークインターフェース、またはそれぞれのデバイスが利用できる他の任意のネットワーク接続など、近距離ベースの通信インターフェースのそれぞれのうちの1つまたは複数を含むことができる。
【００２２】
一態様において、例えば、各デバイス12および14は、例えばプライベートネットワーク上のプライベートIPアドレスなど、所与のネットワークインターフェースのための所与のネットワークアドレスを知っている場合があり、またはそれぞれのデバイスは、例えばプライベートIPアドレスに対応するパブリックIPアドレスなど、1つまたは複数のネットワークアドレスを取得する旨の要求30または32をアドレスリフレクタサービスに送信することができる。例えば、第1のデバイス12は、第1のデバイス12の第1のアクセスネットワーク36および第1のネットワークアドレス変換器(NAT)38を介してアドレスリフレクタサービス34に要求30を送信するように構成され、一方、第2のデバイス14は、第2のデバイス14の第2のアクセスネットワーク42および第2のネットワークアドレス変換器(NAT)44を介してアドレスリフレクタサービス40に要求32を送信するように構成される。それぞれの応答46または48は、それぞれのアドレスリフレクタサービス34または40によってそれぞれのデバイスに通信を発送するために使用されるそれぞれのネットワークアドレス識別子を含む。いくつかの態様において、要求30または32および応答46または48は、例えば双方向接続確立(ICE)プロトコルなど、接続確立プロトコルの一部であってもよい。
【００２３】
各要求30または32は、それぞれのアドレスリフレクタサービス34または40に到達するために、1つまたは複数のアクセスネットワークおよび1つまたは複数のNATをトラバースすることができ、それぞれの応答46または48は、例えばそれぞれのアドレスリフレクタサービスまたはそれぞれの最も外側のまたは最も高いレベルのNATによって宛先として使用される最も外側のまたは最も高いレベルのネットワークアドレスなど、1つのネットワークアドレスを含むことができることに留意されたい。換言すれば、各応答46または48は、それぞれのアクセスネットワーク36または42内のそれぞれのデバイス12または14に到達するために、それぞれのアクセスネットワーク36または42の外側からの通信で使用され得るパブリックネットワークアドレスを含み得る。さらに、各ネットワークインターフェースは、異なるアクセスネットワーク上で通信することができ、したがって、同じデバイス上のもう1つのネットワークインターフェースとは異なるNATを介して、それぞれの要求を異なるアドレスリフレクタサービスに送信することができることに留意されたい。
【００２４】
いずれにせよ、デバイス12または14は、次いで広域接続17を確立する際に使用するための選択された候補の対50を決定することができる。例えば、一方または両方のデバイス12または14は、第1のデバイスネットワークアドレスと第2のデバイスネットワークアドレスとのそれぞれの組み合わせを使用して接続を確立することを反復的に試行するために、例えばICEプロトコルなどの接続確立プロトコルを実行することができる。こうした反復的な試行は、例えばICEプロトコルなど、1つまたは複数のアルゴリズムまたはプロトコルに従って最適化され得る。したがって、反復の結果は、ポイントツーポイントIP接続を含み得る広域接続17を介して第1のピアデバイス12と第2のピアデバイス14との間の通信を可能にするために決定された第1のデバイスネットワークアドレス52および第2のデバイスネットワークアドレス54を含む選択された候補の対50である。
【００２５】
したがって、次いで、広域接続17を介して第1のピアデバイス12と第2のピアデバイス14との間に通信セッションが確立され得る。広域接続17は、近距離ベースの接続16に取って代わる、または通信を補うために追加の接続を提供するために確立され得る。いくつかの態様において、広域接続17は、例えば異なる距離、異なるスループットまたは帯域幅、異なるサービス品質(QoS)、異なる負荷、または接続または通信セッションを定義する他の任意のパラメータなど、近距離ベースの接続16と比較して異なる通信特性を有する。広域接続17は、より高いまたはより低い値の特性を有する場合があり、一方、近距離ベースの接続16は、より高いまたはより低い特性を有する場合もある。したがって、一方または両方の接続は、所与の通信の必要性または要求に応じて使用され、または確立され得る。例えば、広域接続17を確立した後、一態様では、近距離ベースの接続16は、解放されてもよく、一方で、別の態様では、広域接続17および近距離ベースの接続16の両方が維持されてもよい。例えば、広域接続17および近距離ベースの接続16が両方維持される場合、および広域接続17および近距離ベースの接続16が異なる通信特性を有する場合、ピアデバイス12と14との間のそれぞれの通信メッセージは、例えばサービス品質など、通信メッセージの所望の通信特性と、広域接続17または近距離ベースの接続16の実際の通信特性との間の一致または最も近い一致に基づいて選択された、広域接続17または近距離ベースの接続16のうちの一方を介して交換され得る。
【００２６】
さらに、いくつかの態様では、候補アドレスリスト18および20の生成および交換、および/または候補の対50の決定および広域接続17の確立は、近距離ベースの接続16の最初の発見および確立の一部とすることができる。他の態様では、候補アドレスリスト18および20の生成および交換、および/または候補の対50の決定および広域接続17の確立は、例えば、近距離ベースの接続16を介して使用できない、またはそうでなければ、広域接続17と関連した通信セッションまたは特性を要求するユーザ入力またはデバイスアプリケーション入力によってトリガされ得る。さらなる態様において、候補アドレスリスト18および20の生成および交換、および/または候補の対50の決定、および広域接続17の確立は、ピアデバイスうちの第2のものから広域通信要求を受信するピアデバイスのちの第1のものに基づいてもよい。
【００２７】
さらなる態様において、候補アドレスリスト18および20の生成および交換、および/または候補の対50の決定、および広域接続17の確立は、デバイス12と14との間の広域接続17を確立することができないことによってトリガされる。例えば、デバイス12および14が異なるサブネットワークにあり、それぞれのサブネットワークの既知のネットワークアドレスを交換する場合、両方のサブネットワークアドレスがそれぞれのサブネットワーク内で使用するためのプライベートアドレスである場合、それぞれのサブネットワークアドレスを使用して広域接続を確立しようとする試行は失敗する。換言すれば、データパケットまたは通信が、それぞれのサブネットワークの外側からそれぞれのデバイスに発送されるようにするために、それぞれのサブネットワークアドレスは、パブリックアドレスにマップされる必要がある。したがって、生成および交換プロセス、および広域接続の確立は、広域またはポイントツーポイントIP接続を確立することができないことを決定することに基づいてトリガされ得る。
【００２８】
したがって、記載されている装置および方法は、2つのデバイスが異なるネットワークにあり、従来技術では2つのデバイスが広域接続を介して互いに通信するのを妨げるときでも、近距離ベースの接続を介したネットワーク接続およびNATトラバース情報の交換を提供することによって、2つのデバイス間の広域接続を可能にする。
【００２９】
図3を参照すると、一態様において、ピアデバイス12は、上記の機能を実行するための構成要素を含む。図3はピアデバイス12を記載しているが、ピアデバイス14が実質的に類似の構成要素を含んでいてもよいことを理解されたい。例えば、ピアデバイス12は、サービス発見プロトコルを実行し、ネットワークインターフェース26のうちの1つを介して近距離ベースの接続16(図1)を確立するように構成された論理を含む発見および接続構成要素(discovery and connect component)60を含み得る。
【００３０】
さらに、ピアデバイス12は、接続プロトコルを実行して、候補リスト18および20の複数のネットワークアドレス22および24から選択された候補の対50を決定するように構成された論理を含むICE構成要素62を含み得る。ICE構成要素62は、ピアデバイス12ともう1つのピアデバイス、例えばピアデバイス14との間の広域接続17(図1)の確立を可能にする組み合わせが見つかるまで、ネットワークアドレス22と24との様々な組み合わせを反復的にテストすることができる。いくつかの態様において、ICE構成要素62は、選択された対50をテストする、または見つける際の効率を向上させるための最適化アルゴリズム、ルール、ヒューリスティック、ファジー論理、または対を選択的に選択するための他の任意の機構を含むことができる。
【００３１】
より詳細には、限定として解釈されないものとする一態様において、ICE構成要素62は、デバイスに存在する各ネットワークインターフェースを検査することによって、候補をローカルに生成することができる。デバイスごとに、「ホスト候補」が生成され、これは、2つのデバイスが同じサブネットにある場合、または互いに直接発送可能である場合に働く直接接続オプションである。さらに、0またはそれより多くの「サーバ再帰(SERVER REFLEXIVE)」および「中継」候補が生成され得る。サーバ再帰候補は、最も外側のNATデバイスの外部IPアドレスおよびポートである。これは、インターネット上のSTUNサーバに問い合わせを行うことによってわかり得る。中継候補は、2つのデバイス間のすべてのデータトラフィックを中継するための最後の手段として使用されるTURNサーバである。ICE構成要素62は、それらの望ましさに従ってこれらの候補のすべてを配列することができる。一態様において、データパスに余分なホップを関与させないため、ホスト候補が最も望ましい。さらに、この態様では、サーバ再帰候補は、次に配列され、次に最も望ましくない可能性がある中継候補が続くようにしてもよい。ICE構成要素62は、両方のデバイスが同じ順序のすべての候補を試すことができるように、これらの候補がどのように配列されるかを指図することができる。
【００３２】
いくつかの態様において、ICE構成要素62は、広域接続17(図1)を確立することができ、他の態様において、発見および接続構成要素60は、ICE構成要素62によって識別された選択された候補の対50を使用して広域接続17を確立することができる。
【００３３】
さらに、いくつかの態様において、発見および接続構成要素60およびICE構成要素62は、コンピュータ可読命令、または本明細書に記載されている機能を実行するためにプロセッサによって実行可能な他の論理を含み得る。コンピュータ可読命令は、メモリ、ファームウェア、またはプロセッサのハードウェア部分に格納されるソフトウェアでもよい。
【００３４】
さらに、ピアデバイス12は、1つまたは複数のネットワークインターフェース26を使用することができる1つまたは複数のソフトウェアアプリケーション64を含むことができる。さらに、ソフトウェアアプリケーション64は、発見および接続構成要素60、もしくはICE構成要素62、またはその両方を自動的にトリガすることができる。さらに、ソフトウェアアプリケーション64は、インタラクティブとすることができ、したがってピアデバイス12のユーザからユーザ入力66を受信することができる。いくつかの態様において、ユーザ入力66は、発見および接続構成要素60、もしくはICE構成要素62、またはその両方をトリガすることができる。例えば、ソフトウェアアプリケーション64は、ゲームプログラムを含むことができ、発見および接続構成要素60、もしくはICE構成要素62、またはその両方のトリガは、マルチプレイヤゲームを確立したいという希望に基づいてもよい。他の態様では、ソフトウェアアプリケーション64は、それだけには限定されないが、ウェブブラウザ、電話アプリケーション、マルチメディアアプリケーション、ショートメッセージサービス、インスタントメッセージングアプリケーション、例えばGPSサービスなどの場所/位置アプリケーション、例えばワードプロセッサもしくは表計算ソフトなどのビジネスアプリケーション、または例えばピアデバイス12などのコンピュータデバイスによって実行可能な他の任意のプログラムなど、1つまたは複数のアプリケーションを含み得る。さらに、広域接続17(図1)および近距離ベースの接続16(図1)の両方が維持される態様では、発見および接続構成要素60は、それぞれのピアデバイスから送信されるように、通信メッセージ68の所望の通信特性70に対応する、一致する、または適合が最も近い実際の通信特性を有する接続のうちの1つを選択することによって、通信を管理するための特性と一致する論理を含むことができる。
【００３５】
図4を参照すると、一態様では、ピアデバイス12は、本明細書に記載されている方法、構成要素、または機能のうちの1つまたは複数と関連した処理機能を実行するためのプロセッサ90をさらに含む。例えば、プロセッサ90は、例えば、第1のピアデバイスのための近距離ベースの接続を確立し、近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信し、近距離ベースの接続を介して第2のピアデバイスと関連した第2のパブリックネットワークアドレスを受信し、第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して、広域接続を介して第2のピアデバイスとの通信セッションを確立するための命令を実行するなど、1つまたは複数のアクションを実行することができる。任意には、いくつかの態様では、プロセッサ90は、選択された候補の対を決定するために、常駐の候補ネットワークアドレスリスト、および近距離ベースの接続を介して受信された第2のデバイス候補ネットワークアドレスリストに基づいて、ICEプロトコルを実行するための命令を実行するように構成される。プロセッサ90は、単一または複数の組のプロセッサまたはマルチコアプロセッサを含むことができる。さらに、プロセッサ90は、総合処理システムおよび/または分散処理システムとして実施され得る。
【００３６】
ピアデバイス12は、例えばアプリケーション66のローカルバージョン、コード、命令、構成要素60および/または62、またはプロセッサ90によって実行されるモジュールを格納するためのメモリ92をさらに含むことができる。メモリ92は、例えばランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、テープ、磁気ディスク、光ディスク、揮発性メモリ、不揮発性メモリ、およびその任意の組み合わせなど、コンピュータによって使用可能な任意のタイプのメモリを含むことができる。
【００３７】
さらに、ピアデバイス12は、ハードウェア、ソフトウェア、および本明細書に記載されているようなサービスを使用する1つまたは複数のパーティとの通信の確立および維持を提供する通信構成要素94を含むことができる。通信構成要素94は、ピアデバイス12上の構成要素の間、およびピアデバイス12と、例えば通信ネットワークにわたって配置されるデバイスおよび/または有線または無線のリンクによってアクセス端末12に接続されるデバイスなど外部デバイスとの間の通信を伝えることができる。例えば、通信構成要素94は、1つまたは複数のバスを含むことができ、また、外部デバイスとインターフェースをとるように動作可能な、それぞれ送信機および受信機、またはトランシーバと関連する送信チェーン構成要素および受信チェーン構成要素をさらに含むことができる。さらに、例えば、通信構成要素94は、1つまたは複数のネットワークインターフェース26を含むことができる。
【００３８】
さらに、ピアデバイス12は、情報、データベース、および本明細書に記載されている態様に関連して使用されるプログラムの大容量記憶域を提供するメモリの任意の適した組み合わせとすることができるデータストア96をさらに含むことができる。例えば、データストア96は、プロセッサ92によって現在実行されていないアプリケーション66のデータリポジトリでもよい。
【００３９】
アクセス端末12は、アクセス端末12のユーザから入力を受信するように動作可能であり、ユーザへの提示のために出力を生成するようにさらに動作可能であるユーザインターフェース構成要素98をさらに含むことができる。ユーザインターフェース構成要素98は、それだけには限定されないが、キーボード、テンキー、マウス、タッチセンシティブ式のディスプレイ、ナビゲーションキー、ファンクションキー、マイクロフォン、音声認識構成要素、ユーザから入力を受信することができる他の任意の機構、またはその任意の組み合わせを含む1つまたは複数の入力デバイスを含むことができる。さらに、ユーザインターフェース構成要素98は、それだけには限定されないが、ディスプレイ、スピーカ、触覚フィードバック機構、プリンタ、出力をユーザに提示することができる他の任意の機構、またはその任意の組み合わせを含む1つまたは複数の出力デバイスを含むことができる。
【００４０】
図5を参照すると、動作中、一態様では、ピアツーピア通信の方法100は、ピアデバイスとの近距離ベースの接続を確立するステップを含む(ブロック102)。例えば、方法100は、第1のピアデバイスによって、第1のピアデバイスの近くまたは通信範囲内で最初に発見される第2のピアデバイスに接続するために動作可能でもよい。例えば、一態様では、近距離ベースの接続は、1つまたは複数のネットワークインターフェースと連動して動作する、例えばサービス発見プロトコルなどのプロトコルに従って確立され得る。こうしたプロトコルは、Bluetooth(登録商標)プロトコル、Peanutプロトコル、Zigbee(登録商標)プロトコル、または他の任意の近距離ベースのサービス発見および接続プロトコルを含み得る。こうしたプロトコルは、ネットワークインターフェースまたは通信構成要素の動作に関連してプロセッサによって実行され得る、または、確立は、記載されている機能を実行するように構成された任意のプロセッサ実行可能命令を実行することによって実行され得る。
【００４１】
任意には、この方法は、ピアデバイスへの広域接続を確立したいという希望を決定することをさらに含むことができる(ブロック104)。いくつかの態様において、広域接続の確立、またはこうした確立に先立つパラメータの取得は、近距離ベースの接続を確立することへの自動的な拡張とすることができる。他の態様では、希望またはトリガ状態が決定されるまで、広域接続は確立されない。例えば、一態様では、例えば、広域接続の帯域幅が近距離ベースの接続の帯域幅より大きい場合、広域接続を確立したいという希望は、帯域幅の増加の希望に基づき得る。さらに、例えば、一態様では、広域接続を確立したいという希望は、2つのデバイスの間の距離を拡張しながらも、2つのデバイスの間の通信接続を維持したいという希望に基づいてもよい。さらに、例えば、一態様では、広域接続を確立したいという希望は、例えばデータパケットを発送するための宛先としてピアデバイスのIPアドレスを使用するアプリケーションなど、IPベースのアプリケーションの起動に基づいてもよい。いくつかの態様において、決定するステップは、広域接続を確立するためのプロセスを開始するユーザ入力を受信するステップを含み、一方、他の態様において、決定するステップは、アプリケーション要件を満たすために、または、デバイスの間の距離を監視し、近距離ベースの接続がデバイスの相対的な動きまたは予測された相対的な動きに基づいて最大距離に近づいていることを予測するアプリケーションに基づいて、または、例えば通信構成要素などピアデバイス上の構成要素と関連したプロセッサ実行可能命令に基づいて、広域接続の確立を自動的に開始するステップを含む。
【００４２】
任意には、この方法は、常駐ネットワークインターフェースと関連したネットワークアドレスの第1の候補リストを生成するステップをさらに含んでいてもよい(ブロック106)。いくつかの態様において、第1の候補リストは、例えばピアデバイスとの広域接続を確立する従来の試行からなど、ピアデバイスにすでに常駐していてもよい。他の任意の態様において、第1の候補リストは、生成または更新される必要がある場合があり、または、リストを完成させるために、未知のネットワークアドレスが取得され得る。第1の候補リストの生成は、既知のネットワークアドレスを集めるステップ、および別のデバイスからネットワークアドレスを取得するステップを含み得る。いくつかの態様において、ピアデバイスは、プライベートネットワークアドレスしか知らない場合があり、この場合、例えば、所与のネットワークまたはサブネットワーク内で使用されるとき、データをピアデバイスに発送するよう動作可能であるだけであり得る。こうした場合、第1の候補リストを生成するステップは、プライベートネットワークアドレスに対応するパブリックネットワークアドレスを取得するために、要求をアドレスリフレクタサービスに送信するステップを含むことができる。パブリックネットワークアドレスによって、それぞれのネットワークの外側からのデータをネットワーク内のピアデバイスに発送することができる。したがって、第1の候補リストは、ネットワークインターフェースとそれぞれ関連する複数のネットワークアドレスを含むことができ、こうしたアドレスは、ローカルエリアネットワークアドレス、広域ネットワークアドレス、有線インターフェースネットワークアドレス、および他の任意のタイプのネットワークアドレスを含むことができる。ピアデバイスは、通信構成要素、発見および接続構成要素、または第1の候補リストの生成を実行するためのプロセッサ実行可能命令を含むことができるインタラクティブな接続確立構成要素のうちの1つまたは複数を含むことができる。
【００４３】
また、この方法は、ピアデバイスによる受信のために近距離ベースの接続を介して第1の候補リストを送信するステップを含む(ブロック108)。例えば、送信するステップは、ピアデバイスへの近距離ベースの接続と関連したネットワークインターフェースを介して送信するステップを含む。いくつかの態様において、例えば、送信するステップは、例えば通信構成要素、サービス発見および接続構成要素、インタラクティブな接続確立構成要素、または他の任意の通信関連の構成要素など、広域接続の確立を制御するデバイス上の構成要素によって開始することができる。さらに、送信するステップは、通信構成要素、送信機、トランシーバ、または記載されている機能を実行するように構成された任意のプロセッサ実行可能命令の実行によって実行され得る。
【００４４】
さらに、この方法は、近距離ベースの接続を介して、ピアデバイスのネットワークインターフェースと関連したネットワークアドレスの第2の候補リストを受信するステップを含む(ブロック110)。例えば、受信するステップは、ピアデバイスへの近距離ベースの接続と関連したネットワークインターフェースを介して受信するステップを含む。さらに、受信するステップは、通信構成要素、受信機、トランシーバ、または記載されている機能を実行するように構成された任意のプロセッサ実行可能命令の実行によって実行され得る。
【００４５】
また、この方法は、広域接続を介して通信セッションを確立するための候補の対を選択するステップを含む(ブロック112)。例えば、一態様では、選択するステップは、第1のネットワークアドレスを第1のピアデバイスと関連した第1の候補リストから選択するステップと、第2のネットワークアドレスを第2のピアデバイスと関連した第2の候補リストから選択するステップとを含む。さらに、候補の対の選択は、ネットワークアドレスの異なる組み合わせを第1の候補リストおよび第2の候補リストから選択することによって広域接続を確立しようと試行する反復プロセスの結果とすることができる。いくつかの態様において、選択された第1のデバイスアドレスは、広域接続の確立が試行されるネットワークインターフェースに対応する発信アドレスとすることができ、選択された第2のデバイスアドレスは、通信のための宛先アドレスとすることができる。また、さらに、または任意に、選択するステップは、許容できる候補の対を決定するための時間を低減するように構成された、最適化アルゴリズム、ヒューリスティック、ルール、ファジー論理などに基づいて異なるアドレスの組み合わせを反復的に試行するステップをさらに含み得る。選択するステップは、インタラクティブな接続確立構成要素、通信構成要素、サービス発見構成要素、または記載されている機能を実行するように構成された任意のプロセッサ実行可能命令の実行によって実行され得る。
【００４６】
さらに、この方法は、選択された候補の対を使用して広域接続を介して通信セッションを確立するステップを含む(ブロック114)。例えば、確立するステップは、ネットワークインターフェースに対応する通信プロトコルを実行して、接続を確立し維持できるようにするステップを含むことができる。さらに、例えば、上述したように、選択された候補の対は、第1のデバイスネットワークアドレスの元のアドレスとしての使用、および第2のデバイスネットワークアドレスの第1のピアデバイスから発せられる通信のための宛先アドレスとしての使用を含むことができる。確立するステップは、インタラクティブな接続確立構成要素、通信構成要素、サービス発見構成要素、または記載されている機能を実行するように構成された任意のプロセッサ実行可能命令の実行によって実行され得る。
【００４７】
したがって、方法100によって、近距離ベースの接続を介して候補リストを交換し、広域接続に使用するために選択された候補の対を決定することを介して、近距離ベースの接続を介して最初に別のピアデバイスに接続されたピアデバイスが、代わりにまたはさらに広域接続を確立することができる。
【００４８】
図6を参照すると、いくつかの場合、記載されている態様は、近距離ベースの接続を介して候補リストを交換し、広域接続に使用するために選択された候補の対を決定することを介して、近距離ベースの接続を介して最初に別のピアデバイスに接続されたピアデバイスが、代わりにまたはさらに広域接続を確立できるようにするためのシステム130を含む。例えば、システム130は、ピアデバイス内に少なくとも一部分存在することができる。システム130がプロセッサ、ソフトウェア、またはその組み合わせ(例えば、ファームウェア)によって実施される機能を表す機能ブロックとすることができる機能ブロックを含むものとして表されていることを理解されたい。
【００４９】
システム130は、一緒に作動することができる手段の論理的グループ132を含む。例えば、論理的グループ132は、第2のピアデバイスとの近距離ベースの接続を確立するための手段を含むことができる(ブロック134)。論理的グループ132は、第2のピアデバイスによる受信のために近距離ベースの接続を介して第1のピアデバイスの第1のパブリックネットワークアドレスを送信するための手段を含むこともできる(ブロック136)。さらに、論理的グループ132は、近距離ベースの接続を介して第2のピアデバイスの第2のパブリックネットワークアドレスを受信するための手段を含み得る(ブロック138)。さらに、論理的グループ592は、第1のパブリックネットワークアドレスおよび第2のパブリックネットワークアドレスを使用して、広域接続を介して通信セッションを確立するための手段を含むことができる(ブロック140)。
【００５０】
さらに、システム130は、手段134、136、138、および140と関連した機能を実行するための命令を保持するメモリ142を含むことができる。メモリ142の外部として示されているが、手段134、136、138、および140のうちの1つまたは複数がメモリ142の中に存在していてもよいことを理解されたい。
【００５１】
本出願で使用される場合、用語「構成要素」、「モジュール」、「システム」などは、それだけには限定されないが、例えばハードウェア、ファームウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアなどのコンピュータ関連のエンティティを含むものとする。例えば、構成要素は、それだけには限定されないが、プロセッサ上で稼働するプロセス、プロセッサ、オブジェクト、実行可能命令、実行スレッド、プログラム、および/またはコンピュータとすることができる。一例として、コンピューティングデバイス上で稼働するアプリケーション、およびコンピューティングデバイスはいずれも構成要素とすることができる。1つまたは複数の構成要素はプロセスおよび/または実行スレッド内に存在する可能性があり、1つの構成要素を1つのコンピュータ上に配置する、および/または2つ以上のコンピュータ間に分散することができる。さらに、これらの構成要素は、様々なデータ構造を格納している様々なコンピュータ可読媒体から実行することができる。構成要素は、例えばローカルシステム、分散システムにおいて別の構成要素と対話する、および/またはインターネットなどのネットワークを介して信号によって他のシステムと対話する1つの構成要素からのデータなど、例えば1つまたは複数のデータパケットを有する信号によるなど、ローカルおよび/またはリモートのプロセスによって通信することができる。
【００５２】
さらに、様々な態様は、本明細書では、有線端末または無線端末とすることができる端末との関連で記載されている。端末は、システム、デバイス、加入者ユニット、加入者局、移動局、移動体、モバイルデバイス、遠隔局、遠隔端末、アクセス端末、ユーザ端末、端末、通信デバイス、ユーザエージェント、ユーザデバイス、またはユーザ機器(UE)と呼ばれることもあり得る。無線端末は、セルラ式電話、衛星電話、コードレス電話、セッション開始プロトコル(Session Initiation Protocol:SIP)電話、無線ローカルループ(WLL)局、個人用デジタル補助装置(PDA)、無線接続機能を有するハンドヘルドデバイス、コンピューティングデバイス、または無線モデムに接続されている他の処理デバイスとすることができる。さらに、様々な態様は、本明細書では基地局との関連で記載されている。基地局は、無線端末との通信に使用することができ、アクセスポイント、Node B、または他の何らかの用語として呼ばれることもあり得る。
【００５３】
さらに、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味するものとする。すなわち、特に明記しない限り、または文脈から明らかな場合を除いて、「XはAまたはBを使用する」は、包含的な自然順列(natural inclusive permutation)のいずれをも意味するものとする。すなわち、「XはAまたはBを使用する」は、XはAを使用する、XはBを使用する、またはXはAおよびBの両方を使用する、の場合のいずれによっても満たされる。さらに、本出願および添付の特許請求の範囲で使用される場合、冠詞「a」および「an」は、一般に、特に明記した場合、または文脈から単数形を指すことが明らかである場合を除き、「1つまたは複数の」を意味するものと解釈されたい。
【００５４】
本明細書に記載されている技術は、例えばCDMA、TDMA、FDMA、OFDMA、SC-FDMA、および他のシステムなど、様々な無線通信システムに使用され得る。用語「システム」および「ネットワーク」はしばしば同義で使用される。CDMAシステムは、例えばユニバーサル地上無線アクセス(UTRA)、cdma2000などの無線技術を実装することができる。UTRAは、Wideband-CDMA(W-CDMA)およびCDMAの他の変形を含む。さらに、cdma2000は、IS-2000、IS-95、およびIS-856標準をカバーする。TDMAシステムは、Global System for Mobile Communications(GSM(登録商標))などの無線技術を実装することができる。OFDMAシステムは、Evolved UTRA(E-UTRA)、ウルトラモバイルブロードバンド(UMB)、IEEE 802.11(Wi-Fi)、IEEE 802.16(WiMAX)、IEEE 802.20、Flash-OFDMなどの無線技術を実装することができる。UTRAおよびE-UTRAは、汎用モバイル通信システム(UMTS)の一部である。3GPP Long Term Evolution(LTE)は、ダウンリンク上でOFDMAを、アップリンク上でSC-FDMAを使用するE-UTRAを使用するUMTSのリリースである。UTRA、E-UTRA、UMTS、LTE、およびGSM(登録商標)は、「3rd Generation Partnership Project」(3GPP)という名前の組織からの文書に記載されている。さらに、cdma2000およびUMBは、「3rd Generation Partnership Project 2」(3GPP2)という名前の組織からの文書に記載されている。さらに、こうした無線通信システムは、対になってないライセンスのないスペクトル、802.xx無線LAN、Bluetooth(登録商標)、および他の任意の短距離または長距離の無線通信技術をしばしば使用するピアツーピア(例えばモバイル間)のアドホックなネットワークシステムをさらに含み得る。
【００５５】
様々な態様または特徴は、いくつかのデバイス、構成要素、モジュールなどを含み得るシステムの点から提示される。様々なシステムは、追加のデバイス、構成要素、モジュールなどを含んでいてもよく、および/または図との関連で記載されたデバイス、構成要素、モジュールなどのすべてを含まなくてもよいことを理解され、認識されたい。これらの手法の組み合わせが使用されてもよい。
【００５６】
本明細書に開示される実施形態との関連で記載されている様々な論理、論理ブロック、モジュール、および回路の例は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブルロジックデバイス、個別のゲートまたはトランジスタロジック、個別のハードウェア構成要素、または本明細書に記載されている機能を実行するように設計されているその任意の組み合わせで実施または実行され得る。汎用プロセッサは、マイクロプロセッサでもよいが、代わりに、プロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンでもよい。プロセッサは、例えばDSPとマイクロプロセッサとの組み合わせ、複数のマイクロプロセッサ、DSPコアと連動する1つまたは複数のマイクロプロセッサ、または他の任意のこうした構成など、コンピューティングデバイスの組み合わせとしても実装され得る。さらに、少なくとも1つのプロセッサは、上記のステップおよび/またはアクションのうちの1つまたは複数を実行するように動作可能な1つまたは複数のモジュールを含んでいてもよい。
【００５７】
さらに、本明細書に開示された態様との関連で記載されている方法またはアルゴリズムのステップまたはアクションは、直接ハードウェアに、プロセッサによって実行されるソフトウェアモジュールに、または2つの組み合わせに組み込むことができる。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、取り外し可能ディスク、CD-ROM、または当分野で既知の他の任意の形の記憶媒体に存在していてもよい。プロセッサが記憶媒体から情報を読み込むことができ、また情報を書き込むことができるように、記憶媒体例がプロセッサに結合されてもよい。代替では、記憶媒体は、プロセッサに一体化されていてもよい。さらに、いくつかの態様では、プロセッサおよび記憶媒体は、ASICに存在していてもよい。さらに、ASICは、ユーザ端末に存在していてもよい。代替では、プロセッサおよび記憶媒体は、ユーザ端末に個別の構成要素として存在していてもよい。さらに、いくつかの態様では、方法またはアルゴリズムのステップおよび/またはアクションは、非一時的な媒体を含む、コンピュータプログラム製品に組み込まれ得る、機械可読媒体および/またはコンピュータ可読媒体に1つのまたは任意の組み合わせまたは組のコードおよび/または命令として存在していてもよい。
【００５８】
1つまたは複数の態様において、記載されている機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組み合わせで実施され得る。ソフトウェアで実施される場合、機能はコンピュータ可読媒体上の1つまたは複数の命令またはコードとして格納または送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含むコンピュータ記憶媒体および通信媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体でもよい。それだけには限定されないが、一例として、こうしたコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光学ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶装置、または、命令またはデータ構造の形で所望のプログラムコードを運ぶもしくは格納するために使用され、コンピュータによってアクセスされ得る他の任意の媒体から成り得る。また、任意の接続は、コンピュータ可読媒体と称され得る。例えば、ソフトウェアが同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または無線技術、例えば赤外線、無線、およびマイクロ波などを使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または無線技術、例えば赤外線、無線、およびマイクロ波などは媒体の定義に含まれる。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組み合わせもコンピュータ可読媒体の範囲内に含まれるものとする。
【００５９】
上記の開示は、態様および/または実施形態例について述べているが、添付の特許請求の範囲に定義されたような、記載されている態様および/または実施形態の範囲を逸脱することなく、様々な変更および修正が本明細書において加えられてもよいことに留意されたい。さらに、記載された態様および/または実施形態の要素は、単数で記載され、または請求され得るが、単数の限定が明示的に述べられていない限り、複数が企図される。さらに、特に明記しない限り、すべてのまたは一部の任意の態様および/または実施形態は、すべてのまたは一部の他の任意の態様および/または実施形態と共に使用されてもよい。
【符号の説明】
【００６０】
10  ピアツーピア通信
12  第1の通信デバイス
14  第2の通信デバイス
16  近距離ベースの接続
17  広域接続
18  候補アドレスリスト
20  候補アドレスリスト
22  ネットワークアドレス
24  ネットワークアドレス
26  ネットワークインターフェース
28  ネットワークインターフェース
30  要求
32  要求
34  アドレスリフレクタサービス
36  アクセスネットワーク
38  第1のネットワークアドレス変換器
40  アドレスリフレクタサービス
42  アクセスネットワーク
44  第2のネットワークアドレス変換器
46  応答
48  応答
50  候補の対
52  第1のデバイスネットワークアドレス
54  第2のデバイスネットワークアドレス
60  発見および接続構成要素
62  ICE構成要素
64  ソフトウェアアプリケーション
66  ユーザ入力
68  通信メッセージ
70  通信特性
90  プロセッサ
92  メモリ
94  通信構成要素
96  データストア
98  ユーザインターフェース構成要素
【図１】
0005443617.tif 000002
【図２】
0005443617.tif 000003
【図３】
0005443617.tif 000004
【図４】
0005443617.tif 000005
【図５】
0005443617.tif 000006
【図６】
0005443617.tif 000007