(57)【要約】  本発明はP2P接続の確立方法を提供している。当該方法は以下のステップを含む。まず、接続の第一端末がセンターサーバを通じて被接続の第二端末へ接続の第一端末アドレスの付け加えられている一つのメッセージを転送する。そして第二端末が前記メッセージを受信し、当該メッセージに付け加えられている接続の第一端末アドレスを読取り、第一端末アドレスへP2P接続を開始して、P2P接続を確立する。本発明はまた他のP2P接続の確立方法を提供して、UDPやTCPタイプに基づくP2P接続の確立を実現できる。本発明を使用することにより、P2P接続を被接続端末によって開始することが実現できて、双方向のP2P接続の確立の開始を実現し、且つ本発明によって提供される多種のポリシーによるP2P接続の確立方法において、多種のポリシーでP2P接続の確立を試みて、P2Pの接続率を向上している。
2008515067.tif 000002
【特許請求の範囲】
【請求項１】
ピア・ツー・ピア（P2P）接続の確立方法であって、
接続の第一端末が被接続の第二端末に第一端末アドレスの付け加えられているメッセージを送信するステップと、
第二端末が前記メッセージを受信した後、当該メッセージに付け加えられている接続の第一端末アドレスを読取り、第一端末アドレスへP2P接続を開始するステップとを含むことを特徴とするこの方法。
【請求項２】
第一端末と第二端末が一つのセンターサーバに登録し、前記第一端末が第二端末にメッセージを送信するステップは、
第一端末がセンターサーバに前記第一端末アドレスの付けられているメッセージを送信し、センターサーバが前記第一端末アドレスの付けられているメッセージを第二端末に転送することを含むことを特徴とする請求項1に記載の方法。
【請求項３】
前記P2P接続がUDPタイプのP2P接続であり、又はTCPタイプのP2P接続であることを特徴とする請求項1に記載の方法。
【請求項４】
ピア・ツー・ピア（P2P）接続の確立方法であって、接続の第一端末と被接続の第二端末が公衆網に接続されており、当該方法は、
第一端末がセンターサーバを通じて第二端末に接続要求メッセージを転送し、第二端末によって返信される第二端末のポートタイプの付けられている第一応答メッセージを受信するステップと、
第一端末が第二端末のポートタイプがUDPであることを判断した場合、そのIPアドレスとUDPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとUDPポートにP2P接続の確立を開始し、プロセスを終了するステップと、
第一端末が前記第二端末のポートタイプがTCPであることを判断した場合、そのIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップとを含むことを特徴とするこの方法。
【請求項５】
前記IPアドレスとUDPポートを第二端末に通知し、第二端末がP2P接続の確立を開始するステップは、
第一端末がセンターサーバを通じて第二端末へそのローカルIPアドレスとUDPポートの付けられているメッセージを転送し、
第二端末が前記メッセージを受信した後、直接に当該メッセージ中の第一端末のローカルIPアドレスとUDPポートへ第二端末のローカルIPアドレスとUDPポートの付けられている第二応答メッセージを返信してP2P接続を開始し、
第一端末が前記第二応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末のローカルIPアドレスとUDPポートへのP2P接続を確立することを含むことを特徴とする請求項4に記載の方法。
【請求項６】
第一端末が前記第二応答メッセージを受信しなかった場合、
第一端末が直接に第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを送信し、
第二端末が当該メッセージを受信した後、直接に当該メッセージに付け加えられている第一端末の公衆IPアドレスとUDPポートへ、第二端末の公衆IPアドレスとUDPポートの付け加えられている第三応答メッセージを返信してP2P接続を開始し、
第一端末が前記第三応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含むことを特徴とする請求項5に記載の方法。
【請求項７】
第一端末が前記第三応答メッセージを受信しなかった場合、
第一端末がセンターサーバを通じて第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを転送し、
第二端末が当該メッセージを受信した後、直接に当該メッセージ中の第一端末の公衆IPアドレスとUDPポートへ、第二端末の公衆IPアドレスとUDPポートの付け加えられている第四応答メッセージを返信してP2P接続を開始し、
第一端末が前記第四応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含むことを特徴とする請求項6に記載の方法。
【請求項８】
第一端末が前記第四応答メッセージを受信しなかった場合、
第一端末がセンターサーバを通じて、第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを転送し、
第二端末がセンターサーバを通じて第一端末へ第二端末の公衆IPアドレスとUDPポートの付け加えられている第五応答メッセージを転送し、
第一端末が前記応答メッセージを受信した後、直接に当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとUDPポートへ、接続の確立要求メッセージを送信し、
第二端末が前記接続の確立要求メッセージを受信した場合、第一端末の公衆IPアドレスとUDPポートへ第六応答メッセージを返信してP2P接続を開始し、
第一端末が前記第六応答メッセージを受信した後、当該P2P接続に応答して、第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含むことを特徴とする請求項７に記載の方法。
【請求項９】
第一端末が自分が公衆網であること又はsock5プロキシ(proxy)を使用していることを判断した場合、
前記第一端末のIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップは、
第一端末が第二端末へ第一端末のIPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第二端末が直接にTCPプロトコルを使用して当該メッセージに付け加えられている第一端末の公衆IPアドレスとTCPポートに接続することを含むことを特徴とする請求項４に記載の方法。
【請求項１０】
第一端末が自分が公衆網にいないこと又はsock5プロキシを使用していないことを判断した場合、前記ステップＤは、
第二端末へ第一端末IPアドレスとTCPポートが0に設定されている接続要求メッセージを送信し、
第二端末が前記接続要求を受信した場合、且つそれ自身が公衆網にあること又はsock5プロキシを使用していることを判断した場合、第一端末へ第二端末の公衆IPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第一端末が前記接続要求メッセージを受信した後、直接にTCPプロトコルを使用して、当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとTCPポートに接続することを含むことを特徴とする請求項4に記載の方法。
【請求項１１】
前記P2P接続の確立が失敗した場合、
第一端末がセンターサーバに接続し、センターサーバに一つの中継チャネルchannelを申請し、
センターサーバが一つの中継チャネルを割り当て、且つ対応するchannel ID及び対応するキーkeyを第一端末と第二端末に送信し、
第一端末と第二端末がセンターサーバによって提供されるchannel ID、keyを通じてセンターサーバへのP2P接続を確立することを更に含むことを特徴とする請求項4に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はピア・ツー・ピア情報の伝送技術分野に関し、特に、ピア・ツー・ピア接続の確立方法に関する。
【背景技術】
【０００２】
インターネットにおいて、ピア・ツー・ピア（P2P）接続技術がデータ伝送とデータダウンロードに広く応用されている。図１に示すネットワーキング図のように、一般的に、クライアント端末はサーバに登録して、被接続端末のクライアント端末のアドレス情報を取得した後、被接続端末のクライアント端末へP2P接続を開始できる。以下、図2に示したBT（BitTorrent）ソフトウェアによるデータダウンロードプロセスを参照しながら、P2P接続の確立プロセスについて説明する。
【０００３】
BTソフトウェアは、P2P方式によってファイルをダウンロードするソフトウェアの一つであり、一つのピア（Peer）においてデータをダウンロードするとともに、他のピアのためにデータをアップロードする機能を実現して、各BTピア間で互いにそれ自身の既にダウンロードしたデータを伝送できることを実現している。Peer Aを例とする場合、BTソフトウェアによるデータダウンロードは、以下のステップを含む。
【０００４】
ステップ201で、Peer AのBTクライアント端末は予めネットワークから拡張子（suffix）がtorrentである一つの情報ファイルを獲得し、当該torrent情報にはBTダウンロードサービスを提供するサーバ（Tracker）のアドレスが格納されている。そして、Peer AのBTクライアント端末はtorrent情報に基づいてTrackerにアクセスし、且つそれ自身のアドレスやダウンロード需要など情報をTrackerにアップロードする。
【０００５】
ステップ202〜203で、TrackerはPeer Aの要求した今回のダウンロード内容に基づいてピアリスト（Peerlist）に対応し、その後、一定のポリシーを採用して当該Peerlistを検索し、幾つのPeer情報を選択してPeer Aに送信する。ここで、選択されたPeer情報には、データダウンロードを提供するPeerとデータアップロードを必要するPeerが含まれている。
【０００６】
ステップ204〜205で、Peer AはPeer情報を受信した後、一定のポリシーを採用して、ダウンロードできるPeerを選択し、直接に当該PeerへTCPプロトコルの接続要求を開始して、当該PeerへのP2P接続を確立し、且つデータダウンロードをスタートする。一方、データアップロードを必要するPeerを選択し、直接に当該PeerへTCPの接続要求を開始して、当該PeerへのP2P接続を確立し、且つデータアップロードをスタートする。
【０００７】
ステップ206で、Peer Aはリアルタイムに更新されるPeerlistを取得するために、定期的にアップロードレート、ダウンロードレート、そのダウンロードの結果等の情報をTrackerに報告する。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、BTソフトウェアには下記の欠点がある。
【０００９】
１）TCPプロトコルを使用して各Peerの間でP2P接続を確立してから、データを伝送するが、ある特定の応用、例えば、UDP伝送を使用するリアルタイムマルチメディアデータ伝送などに対しては、TCPプロトコルを使用すれば、リアルタイム要求を満足できないことがある。
【００１０】
２）更に主なことは、P2P接続を確立するとき、P2P接続端末が単一方向で接続を開始することしかできないため、接続率が低すぎるという結果となる。
【００１１】
実際に、現在、普通のP2P接続プロセスにおいて、やはり接続端末によって接続を開始することしかできなく、被接続端末によって接続を開始することはできない。例えば、クライアント端末を通じてインターネットに接続されたあるユーザがネットワーク中のあるサーバからデータをダウンロードするために当該サーバにP2P接続を開始する場合、当該ユーザからのP2P接続の確立を開始することだけを許可し、被接続端末としてのサーバからユーザへP2P接続の確立を開始することは許可しない。そこで、ある場合において、ユーザの開始したP2P接続がサーバと接続を確立することなく、または、ユーザがP2P接続を開始することができないとき、P2P接続の確立が失敗になり、その結果、接続率が低くなる。
【００１２】
そこで、本発明はかかる問題点に鑑みてなされたものであって、P2P接続の開始が接続端末または被接続端末の双方向によって全部可能である、P2P接続の確立方法を提供することを主な目的とする。
【課題を解決するための手段】
【００１３】
ピア・ツー・ピア（P2P）接続の確立方法であって、
接続の第一端末が被接続の第二端末に第一端末アドレスの付け加えられているメッセージを送信するステップと、
第二端末が前記メッセージを受信した後、当該メッセージに付け加えられている接続の第一端末アドレスを読取り、第一端末アドレスへP2P接続を開始するステップとを含む。
【００１４】
第一端末と第二端末が一つのセンターサーバに登録し、前記第一端末が第二端末にメッセージを送信するステップは、
第一端末がセンターサーバに前記第一端末アドレスの付けられているメッセージを送信し、センターサーバが前記第一端末アドレスの付けられているメッセージを第二端末に転送することを含む。
【００１５】
前記P2P接続がUDPタイプのP2P接続であり、又はTCPタイプのP2P接続である。
【００１６】
ピア・ツー・ピア（P2P）接続の確立方法であって、接続の第一端末と被接続の第二端末が公衆網に接続されており、当該方法は、
第一端末がセンターサーバを通じて第二端末に接続要求メッセージを転送し、第二端末によって返信される第二端末のポートタイプの付けられている第一応答メッセージを受信するステップと、
第一端末が第二端末のポートタイプがUDPであることを判断した場合、そのIPアドレスとUDPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとUDPポートにP2P接続の確立を開始し、プロセスを終了するステップと、
第一端末が前記第二端末のポートタイプがTCPであることを判断した場合、そのIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップとを含む。
【００１７】
前記IPアドレスとUDPポートを第二端末に通知し、第二端末がP2P接続の確立を開始するステップは、
第一端末がセンターサーバを通じて第二端末へそのローカルIPアドレスとUDPポートの付けられているメッセージを転送し、
第二端末が前記メッセージを受信した後、直接に当該メッセージ中の第一端末のローカルIPアドレスとUDPポートへ第二端末のローカルIPアドレスとUDPポートの付けられている第二応答メッセージを返信してP2P接続を開始し、
第一端末が前記第二応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末のローカルIPアドレスとUDPポートへのP2P接続を確立することを含む。
【００１８】
第一端末が前記第二応答メッセージを受信しなかった場合、
第一端末が直接に第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを送信し、
第二端末が当該メッセージを受信した後、直接に当該メッセージに付け加えられている第一端末の公衆IPアドレスとUDPポートへ、第二端末の公衆IPアドレスとUDPポートの付け加えられている第三応答メッセージを返信してP2P接続を開始し、
第一端末が前記第三応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含む。
【００１９】
第一端末が前記第三応答メッセージを受信しなかった場合、
第一端末がセンターサーバを通じて第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを転送し、
第二端末が当該メッセージを受信した後、直接に当該メッセージ中の第一端末の公衆IPアドレスとUDPポートへ、第二端末の公衆IPアドレスとUDPポートの付け加えられている第四応答メッセージを返信してP2P接続を開始し、
第一端末が前記第四応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含む。
【００２０】
第一端末が前記第四応答メッセージを受信しなかった場合、
第一端末がセンターサーバを通じて、第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを転送し、
第二端末がセンターサーバを通じて第一端末へ第二端末の公衆IPアドレスとUDPポートの付け加えられている第五応答メッセージを転送し、
第一端末が前記応答メッセージを受信した後、直接に当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとUDPポートへ、接続の確立要求メッセージを送信し、
第二端末が前記接続の確立要求メッセージを受信した場合、第一端末の公衆IPアドレスとUDPポートへ第六応答メッセージを返信してP2P接続を開始し、
第一端末が前記第六応答メッセージを受信した後、当該P2P接続に応答して、第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含む。
【００２１】
第一端末が自分が公衆網であること又はsock5プロキシを使用していることを判断した場合、
前記第一端末のIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップは、
第一端末が第二端末へ第一端末のIPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第二端末が直接にTCPプロトコルを使用して当該メッセージに付け加えられている第一端末の公衆IPアドレスとTCPポートに接続する。
【００２２】
第一端末が自分が公衆網にいないこと又はsock5プロキシを使用していないことを判断した場合、前記ステップＤは、
第二端末へ第一端末IPアドレスとTCPポートが0に設定されている接続要求メッセージを送信し、
第二端末が前記接続要求を受信した場合、且つそれ自身が公衆網にあること又はsock5プロキシを使用していることを判断した場合、第一端末へ第二端末の公衆IPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第一端末が前記接続要求メッセージを受信した後、直接にTCPプロトコルを使用して、当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとTCPポートに接続することを含む。
【００２３】
前記P2P接続の確立が失敗した場合、
第一端末がセンターサーバに接続し、センターサーバに一つの中継チャネルchannelを申請し、
センターサーバが一つの中継チャネルを割り当て、且つ対応するchannel ID及び対応するキーkeyを第一端末と第二端末に送信し、
第一端末と第二端末がセンターサーバによって提供されるchannel ID、keyを通じてセンターサーバへのP2P接続を確立することを更に含む。
【発明の効果】
【００２４】
上記の方法からわかるように、本発明は従来技術に対して、接続端末によって接続を開始することだけでなく、被接続端末によってP2P接続を開始することも実現している。これによって、接続端末がP2P接続を確立できない場合において、本発明を採用してP2P接続の確立を試み、P2P接続率を高めることができる。
【００２５】
なお、本発明によるUDP接続の確立プロセスを使用する場合、双方向のP2P接続の開始を実現できることだけでなく、同一ローカルエリアネットワーク内のユーザがそれぞれインターネットに接続した後、インターネットを使用して迂回接続することも回避でき、直接にローカルエリアネットワークを使用して接続を確立することを実現できる。本発明によるTCP接続の確立プロセスは、双方向のP2P接続の開始プロセスを実現して、P2Pの接続率を高めている。  
【００２６】
また、本発明に係るP2P接続の確立プロセスにおいて、多種のポリシーで接続の確立を試み、単一方向で接続を開始することだけでなく、多種の接続方式で接続の確立を試みて、P2P技術におけるノードの接続率を向上している。
【発明を実施するための最良の形態】
【００２７】
本発明において、接続端末は被接続端末とP2P接続を確立することができないとき、被接続端末に一つのメッセージを送信して、それ自身のIPアドレス及び使用しているUDP又はTCPポートを被接続端末に通知する。当該メッセージが被接続端末に受信された場合、被接続端末から接続端末へP2P接続を確立する命令を開始する。このような方式によって、被接続端末によってP2P接続を開始することができるようになり、P2P接続の確立の成功率を向上している。
【００２８】
例えば、図１に示すネットワーキング図を使用する場合に対して、接続端末PeerAからのP2P接続の開始が確立できない場合、被接続端末PeerBからP2P接続の開始を試みることができる。図3に示す実施例１に係るP2P接続を確立するフローチャートは、以下のステップを含む。
【００２９】
ステップ301で、接続端末Peer Aはセンターサーバにメッセージを送信して、被接続端末PeerBにP2P接続の開始を要求する。ここで、当該メッセージには一つの指定アドレスが付けられており、当該アドレスは、被接続端末PeerBの接続すべきアドレスである。一般的に、当該指定アドレスはPeerAの公衆（public）アドレス又はローカル (local)アドレスでよい。
【００３０】
ステップ302で、センターサーバはステップ301における上記メッセージをPeerBに転送する。
【００３１】
ステップ303で、PeerBは上記メッセージを受信した後、含まれている指定アドレスに基づいて、指定アドレスにP2P接続を開始する。
【００３２】
上記ステップによっては、PeerAからPeerBへP2P接続を開始することができない場合、PeerBによりPeerAへP2P接続を開始することを実現できる。例えば、接続端末PeerAが公衆網におけるあるサーバであり、ある被接続端末とP2P接続を確立しようとする場合、当該方法を使用してP2P接続を実現することができ、従来の技術のようにこのような場合でのP2P接続が全く実現できないということはない。
【００３３】
なお、わかりやすいように、上記ステップにおいて、接続端末が直接にメッセージを被接続端末に送信することができる場合、上記センターサーバがメッセージを中継するステップは不要である。
【００３４】
以上のP2P接続方法に基づいて、本発明の実施例２はまた多種のポリシーによるP2P接続方法を採用して、公衆網に接続された端末間のP2P接続の確立成功率を高めている。
【００３５】
上記多種のポリシーによるP2P接続方法を紹介する前に、まず、端末が公衆網に接続されたときの関連のアドレスとポートについて説明する。本発明の実施例２に係る上記公衆網はインターネットであり、対応するプライベートネットワークはローカルエリアネットワークである。一つの端末が公衆網に接続された場合、一般に、公衆網は自動的に当該端末に公衆網で使用する一つの公衆IPアドレスを割り当てる。こうして、一つの端末に、ローカルアドレス（Local_IP）及び対応するポート（Local_Port）と、公衆アドレス（Public_IP）及び対応するポート（Public_Port）が存在する可能性がある。
【００３６】
やはり図１に示すネットワークアーキテクチャを例とする。ネットワークに一つのセンターサーバが存在するとする。ユーザクライアント端末はセンターサーバに登録した後、センターサーバが提供するサービスを獲得することができる。PeerAと、PeerBが全部既にセンターサーバに登録したとする。ある場合において、PeerAがファイルを伝送するためにPeerBへのP2P接続を確立しようとする場合、センターサーバは、PeerBに対応する公衆IPアドレスをPeerAに送信する。図４に示す実施例２に係るP2P接続を確立するフローチャートを参照して、接続端末としてのPeerAと、被接続端末としてのPeerBのP2P接続の確立プロセスは、以下のステップを含む。
【００３７】
ステップ401で、PeerAは外部ネットワークに要求（listen）してそれ自身の公衆IPとUDPポート（A_Public_IP:A_Public_Port）を取得する。ここの公衆IPとUDPポートは、PeerAが公衆網に接続された場合に割り当てられる公衆アドレスとUDPポートである。そして、PeerAはセンターサーバを通じてPeerBに接続要求メッセージを転送する。
【００３８】
ステップ402で、PeerBは、センターサーバにより転送された接続要求メッセージを受信した後、自分がUDP方式を使用しているか否かを判断する。PeerBがUDP方式を使用する場合、PeerBは外部ネットワークに対して自分の公衆IPとUDPポート（B_Public_IP:B_Public_Port）を要求（listen）し、その後、センターサーバを通じてPeerAに接続を受ける応答メッセージを転送し、及びUDPポート番号によってそれ自身が使用しているのがUDPプロトコルであることを相手に通知する。PeerBがTCP方式を使用する場合、センターサーバを通じてPeerAに接続を受ける応答メッセージを転送し、且つポート番号によってそれ自身が使用しているのがTCPプロトコルであることを相手に通知する。
【００３９】
ステップ403で、PeerAは接続を受ける応答メッセージを受信し、PeerBがUDP方式を使用していることを検出した場合、ステップ404に進み、UDP方式を使用してPeerBとP2P接続を確立することを試み、PeerBがTCP方式を使用していることを検出した場合、ステップ408に進み、TCP方式を使用してPeerBとP2P接続を確立することを試みる。
【００４０】
ステップ401〜403を通じて、PeerAは、PeerBとのP2P接続の確立にUDPプロトコルを使用するかそれともTCPプロトコルを使用するかを決定する。PeerAがUDP方式でPeerBとのP2P接続の確立を試みるプロセスに対しては、図4を参照するともに、図5も併せて参照し、図4と図5において対応するステップは同じステップ番号で表している。
【００４１】
ステップ404で、PeerAとPeerBの同一プライベートネットワーク内モードでの接続の確立を試み、ここで以下のステップが含まれる。
【００４２】
PeerAはまず一つのローカルのA_local_IP:A_local_Portを要求（listen）し、そして、test_in_lanメッセージを生成し、センターサーバを通じてPeerBにtest_in_lanテストメッセージを転送する。当該test_in_lanメッセージの指定アドレスにはA_local_IP:A_local_Portが付けられて、直接にPeerAのA_local_IP:A_local_Portに応答メッセージre_test_in_lanを返信することをBに要求する。
【００４３】
PeerBは上記test_in_lanを受信した後、一つのローカルのB_local_IP:B_local_Portを要求（listen）し、そして、直接にA_local_IP:A_local_Portにre_test_in_lanパケットを返信し、当該re_test_in_lanパケットにはB_local_IP:B_local_Portが付け加えられている。当該re_test_in_lanメッセージにより被接続端末としてのPeerBはP2P接続を開始する。
【００４４】
PeerAがre_test_in_lanを受信した場合、PeerAは直接にアドレスB_local_IP:B_local_Portにackパケットを送信し、PeerAがre_test_in_lanを受信しなかった場合、ステップ405に進む。
【００４５】
以上のステップ404において、PeerAとPeerBのプライベートアドレスでP2P接続の確立を試み、これによって、同一ローカルエリアネットワーク内のユーザがそれぞれインターネットに接続した後、インターネットを使用して迂回接続することを回避でき、直接にローカルエリアネットワークを使用して接続を確立することを実現できる。
【００４６】
ステップ405で、PeerAはプライベートネットワーク内に、PeerBは公衆網にあるモードでの接続の確立を試みる。このプロセスにおいて、PeerAは公衆網に接続されたアドレスを使用して接続を確立し、以下ステップを含む。
【００４７】
PeerAは直接にPeerBへA_Public_IP:A_Public_Portの付け加えられているtest1テストメッセージを送信して、直接にA_Public_IP:A_Public_Portへ応答メッセージre_test1を返信することをPeerBに要求する。
【００４８】
PeerBはtest1を受信した後、直接にPeerAのA_Public_IP:A_Public_Portへre_test1を返信する。
【００４９】
PeerAがre_test1を受信したら、PeerAは直接にB_Public_IP:B_Public_Portへ一つの接続確立のackパケットを送信し、PeerAがre_test1を受信しなかった場合、ステップ406に進む。
【００５０】
ステップ406で、PeerAは公衆網に、PeerBはプライベートネットワーク内にあるモードでの接続の確立を試み、ここで以下のステップが含まれる。
【００５１】
PeerAはセンターサーバを通じてPeerBにA_Public_IP:A_Public_Portの付け加えられているtest2テストメッセージを転送して、直接にA_Public_IP:A_Public_Portへ応答メッセージre_test2を返信することをBに要求する。
【００５２】
PeerBはtest2を受信した後、直接にPeerAへre_test2を返信する。当該re_test2により被接続端末はP2P接続を開始する。
【００５３】
PeerAがre_test2を受信した場合、PeerAは直接にB_Public_IP:B_Public_Portへ一つの接続確立のackパケットを送信し、PeerAがre_test2を受信しなかった場合、ステップ407に進む。
【００５４】
ステップ407で、PeerAとPeerBが異なるプライベートネットワーク内にあるモードでの接続の確立を試みる。ここで、PeerAとPeerBは公衆網を通じてP2P接続を確立する。
【００５５】
PeerAはtest3のテストメッセージを開始し、センターサーバを通じてtest3テストメッセージをB_Public_IP:B_Public_PortでPeerBへ転送し、当該メッセージはPeerBにセンターサーバを通じてPeerAのA_Public_IP:A_Public_Portへ応答メッセージre_test3を返信することを要求する。
【００５６】
PeerBはセンターサーバを通じてB_Public_IP:B_Public_Portの付け加えられているre_test3をPeerAへ転送する。
【００５７】
PeerAはre_test3を受信した後、直接にPeerBのB_Public_IP:B_Public_Portへtest31を送信する。
【００５８】
PeerBがtest31を受信した場合、PeerBはPeerAへre_test3メッセージを返信し、PeerBが受信しなかった場合、ステップ412に進む。
【００５９】
PeerAがre_test3を受信した場合、PeerAは直接にPeerB_Public_IP:B_Public_Portへ一つの接続確立のackパケットを送信し、PeerAがre_test3を受信しなかった場合、ステップ412に進む。
【００６０】
以上のステップ404〜407で記述した具体的ステップにおいて、PeerBはPeerAによって送信されたackパケットを受信した場合、PeerAに一つのAnswerパケットを返信して、接続が既にUDPで確立されたことを表し、すると、UDPチャネルが作成されてデータ伝送のプロセスが起動される。
【００６１】
PeerBによって返信されたAnswerパケットがAに受信された場合も、接続が既にUDPで確立されたことを表し、すると、UDPチャネルが作成されてデータ伝送のプロセスが起動される。
【００６２】
ここで、上記のステップ404〜407は、UDPプロトコルを使用してP2P接続を確立するプロセスであり、上記のPortとはUDPポートを指すものである。また、以上の四種のUDPモードによるP2P接続の試みを通じて、UDPタイプのP2P接続の成功率を高めている。
【００６３】
ステップ408で、PeerAはTCPプロトコルを使用して接続の確立を試みる。まず、それ自身が公衆網にあるか否かを判断し、又は記録されたソフトウェア設定ファイル（例えば、配置ファイル）に基づいて、それ自身がsock5プロキシを使用しているか否かを判断する。公衆網にあり又はsock5プロキシを使用している場合、まず一つのTCPポート（A_Public_Port_TCP）を外部に対して要求（listen）し、Bへ接続要求メッセージを送信し、当該メッセージ中の指定アドレスにはA_Public_IP:A_Public_Port_TCPが付けられている。それでない場合、当該メッセージに付けられている指定アドレス中のIPとTCPポートに0を記入して、PeerAがプライベートネットワーク内にあることを表し、PeerBに送信する。
【００６４】
ここで、PeerAによりそれ自身が公衆網にあるか否かを判断する方法は、PeerAのIPアドレスがローカルアドレスに属しないと判断する場合、即ち、IPアドレスが192.168.*.*、10.1.**、172.(16-31).*.*、169.*.*.*範囲内にいないと判断する場合、当該IPアドレスが公衆アドレスであると認めることができる。ここで、上記ローカルIPアドレスの範囲は経験データであり、大部分の可能なローカルIPアドレスを含めている。
【００６５】
ステップ409で、PeerBは接続要求メッセージを受信した後、当該メッセージ中の指定アドレス中のIPとTCPポートのフィールドが0であるか否かを判断する。そうであれば、ステップ410に進み、それでなければ、PeerBは直接にTCPプロトコルを使用して当該メッセージに付けられている指定アドレス中のA_Public_IP:A_Public_Port_TCPに接続（CONNECT）して、PeerBからPeerAへの接続を確立し、接続で失敗した場合、ステップ412に進む。（PeerAによって接続を開始する）
【００６６】
ステップ410で、PeerBはそれ自身が公衆網にあるか否か、又はsock5プロキシを使用しているか否かを判断する。そうであれば、一つのTCPポートを外部に対して要求（listen）し、PeerAへメッセージを送信し、当該メッセージに付けられている指定アドレスにはB_Public_IP:B_Public_Port_TCPが含まれている。それでなければ、Bがプライベートネットワーク内にあることを表し、ステップ412に進む。
【００６７】
ステップ411で、PeerAは接続要求メッセージを受信した後、直接にTCPプロトコルを使用して当該メッセージに付けられている指定アドレスB_Public_IP:B_Public_Port_TCPに接続し、PeerAからPeerBへのTCP接続を確立する。接続の確立で失敗した場合、ステップ412に進む。
【００６８】
ステップ408〜411はTCPを使用してP2Pの確立を試みるプロセスである。上記からわかるように、当該プロセスは接続端末としてのPeerAがP2P接続を開始するプロセスを含み、被接続端末としてのPeerBがP2P接続を開始するプロセスも含む。
【００６９】
ステップ412で、センターサーバを通じて中継チャネルを確立して、端末間での接続を確立する。このステップは従来技術において中継チャネルを通じて端末間でのP2P接続の確立方法と同じであり、以下のことを含む。
【００７０】
PeerAはセンターサーバに接続して、一つのルーム（room）を申請する。上記ルームは中継チャネル（channel）と呼ばれてもよい。
【００７１】
センターサーバは割り当てたchannel ID及び対応するキー（key）をPeerAに返信するとともに、当該channel ID、keyをBに送信する。
【００７２】
PeerAとPeerBは当該channel ID、keyに基づいてセンターサーバによって提供される当該channelへの接続を確立して、PeerAとPeerBとの間のP2P接続の確立を実現する。
【００７３】
ここで、ステップ412がステップ407から進んできたステップである場合、当該プロセスで全部UDPサービスタイプを採用し、408以後のステップから進んできたステップである場合、TCPサービスタイプを採用する。つまり、ステップ412で採用されるポートのタイプはステップ412以前のステップにおいて使用されるポートのタイプと同じである。
【００７４】
上記の端末間で接続を確立するステップを通じて、二つの端末間では多種の方式を採用して接続の確立を試みることができ、接続開始端末が接続の確立を起動することだけでなく、被接続端末が接続を開始することも含まれて、接続率を有効的に向上している。
【００７５】
上記説明されたものは、本発明の好ましい実施例にすぎず、本発明の保護範囲を限定するものではない。本発明の精神と原則内で行われる種々の修正、均等な置換、改善などは全て本発明の保護範囲内に含まれるべきである。
【図面の簡単な説明】
【００７６】
【図１】センターサーバと複数のピアを含むネットワーキング図である。
【図２】BTソフトウェアによりデータダウンロードを実現することを示すフローチャートである。
【図３】本発明の実施例１に係るP2P接続の確立を示すフローチャートである。
【図４】本発明の実施例2に係る多種のポリシーによるP2P接続の確立を示すフローチャートである。
【図５】本発明の実施例3に係るUDP方式でP2P接続の確立を試みることを示すフローチャートである。
【符号の説明】
【００７７】
２０１  情報をアップロード
２０２  PeerlistからPeerを選択
２０３  選択されたPeerを送信
２０４  P2P接続を確立
２０５  データをダウンロード（アップロード）
２０６  情報をアップロード
【図１】
2008515067.tif 000003
【図２】
2008515067.tif 000004
【図３】
2008515067.tif 000005
【図４】
2008515067.tif 000006
【図５】
2008515067.tif 000007
【手続補正書】
【提出日】平成19年3月29日(2007.3.29)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ピア・ツー・ピア（P2P）接続の確立方法であって、
接続の第一端末が被接続の第二端末に第一端末アドレスの付け加えられているメッセージを送信するステップと、
第二端末が前記メッセージを受信した後、当該メッセージに付け加えられている接続の第一端末アドレスを読取り、第一端末アドレスへP2P接続を開始するステップとを含むことを特徴とするこの方法。
【請求項２】
第一端末と第二端末が一つのセンターサーバに登録し、前記第一端末が第二端末にメッセージを送信するステップは、
第一端末がセンターサーバに前記第一端末アドレスの付けられているメッセージを送信し、センターサーバが前記第一端末アドレスの付けられているメッセージを第二端末に転送することを含むことを特徴とする請求項1に記載の方法。
【請求項３】
前記P2P接続がUDPタイプのP2P接続であり、又はTCPタイプのP2P接続であることを特徴とする請求項1に記載の方法。
【請求項４】
ピア・ツー・ピア（P2P）接続の確立方法であって、
第一端末がセンターサーバを通じて第二端末に接続要求メッセージを転送し、第二端末によって返信される第二端末のポートタイプの付けられている第一応答メッセージを受信するステップと、
第一端末が第二端末のポートタイプがUDPであることを判断した場合、そのIPアドレスとUDPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとUDPポートにP2P接続の確立を開始し、プロセスを終了するステップと、
第一端末が前記第二端末のポートタイプがTCPであることを判断した場合、そのIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップとを含むことを特徴とするこの方法。
【請求項５】
前記IPアドレスとUDPポートを第二端末に通知し、第二端末がP2P接続の確立を開始するステップは、
第一端末がセンターサーバを通じて第二端末へそのローカルIPアドレスとUDPポートの付けられているメッセージを転送し、
第二端末が前記メッセージを受信した後、直接に当該メッセージ中の第一端末のローカルIPアドレスとUDPポートへ第二端末のローカルIPアドレスとUDPポートの付けられている第二応答メッセージを返信してP2P接続を開始し、
第一端末が前記第二応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末のローカルIPアドレスとUDPポートへのP2P接続を確立することを含むことを特徴とする請求項4に記載の方法。
【請求項６】
第一端末が前記第二応答メッセージを受信しなかった場合、
第一端末が直接に第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを送信し、
第二端末が当該メッセージを受信した後、直接に当該メッセージに付け加えられている第一端末の公衆IPアドレスとUDPポートへ、第二端末の公衆IPアドレスとUDPポートの付け加えられている第三応答メッセージを返信してP2P接続を開始し、
第一端末が前記第三応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含むことを特徴とする請求項5に記載の方法。
【請求項７】
第一端末が前記第三応答メッセージを受信しなかった場合、
第一端末がセンターサーバを通じて第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを転送し、
第二端末が当該メッセージを受信した後、直接に当該メッセージ中の第一端末の公衆IPアドレスとUDPポートへ、第二端末の公衆IPアドレスとUDPポートの付け加えられている第四応答メッセージを返信してP2P接続を開始し、
第一端末が前記第四応答メッセージを受信した後、当該P2P接続に応答して、当該応答メッセージ中の第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含むことを特徴とする請求項6に記載の方法。
【請求項８】
第一端末が前記第四応答メッセージを受信しなかった場合、
第一端末がセンターサーバを通じて、第二端末へ第一端末の公衆IPアドレスとUDPポートの付け加えられているメッセージを転送し、
第二端末がセンターサーバを通じて第一端末へ第二端末の公衆IPアドレスとUDPポートの付け加えられている第五応答メッセージを転送し、
第一端末が前記応答メッセージを受信した後、直接に当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとUDPポートへ、接続の確立要求メッセージを送信し、
第二端末が前記接続の確立要求メッセージを受信した場合、第一端末の公衆IPアドレスとUDPポートへ第六応答メッセージを返信してP2P接続を開始し、
第一端末が前記第六応答メッセージを受信した後、当該P2P接続に応答して、第二端末の公衆IPアドレスとUDPポートへのP2P接続を確立することを更に含むことを特徴とする請求項７に記載の方法。
【請求項９】
第一端末が自分が公衆網であること又はsock5プロキシ(proxy)を使用していることを判断した場合、
前記第一端末のIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップは、
第一端末が第二端末へ第一端末のIPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第二端末が直接にTCPプロトコルを使用して当該メッセージに付け加えられている第一端末の公衆IPアドレスとTCPポートに接続することを含むことを特徴とする請求項４に記載の方法。
【請求項１０】
第一端末が自分が公衆網にいなく且つsock5プロキシも使用していないことを判断した場合、前記第一端末がそのIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップは、
第二端末へ第一端末IPアドレスとTCPポートが0に設定されている接続要求メッセージを送信し、
第二端末が前記接続要求を受信した場合、且つそれ自身が公衆網にあること又はsock5プロキシを使用していることを判断した場合、第一端末へ第二端末の公衆IPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第一端末が前記接続要求メッセージを受信した後、直接にTCPプロトコルを使用して、当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとTCPポートに接続することを含むことを特徴とする請求項4に記載の方法。
【請求項１１】
前記P2P接続の確立が失敗した場合、
第一端末がセンターサーバに接続し、センターサーバに一つの中継チャネルchannelを申請し、
センターサーバが一つの中継チャネルを割り当て、且つ対応するchannel ID及び対応するキーkeyを第一端末と第二端末に送信し、
第一端末と第二端末がセンターサーバによって提供されるchannel ID、keyを通じてセンターサーバへのP2P接続を確立することを更に含むことを特徴とする請求項4に記載の方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
ピア・ツー・ピア（P2P）接続の確立方法であって、
第一端末がセンターサーバを通じて第二端末に接続要求メッセージを転送し、第二端末によって返信される第二端末のポートタイプの付けられている第一応答メッセージを受信するステップと、
第一端末が第二端末のポートタイプがUDPであることを判断した場合、そのIPアドレスとUDPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとUDPポートにP2P接続の確立を開始し、プロセスを終了するステップと、
第一端末が前記第二端末のポートタイプがTCPであることを判断した場合、そのIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップとを含む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
第一端末が自分が公衆網にいなく且つsock5プロキシも使用していないことを判断した場合、前記第一端末がそのIPアドレスとTCPポートを第二端末に通知し、第二端末が第一端末のIPアドレスとTCPポートへP2P接続の確立を開始するステップは、
第二端末へ第一端末IPアドレスとTCPポートが0に設定されている接続要求メッセージを送信し、
第二端末が前記接続要求を受信した場合、且つそれ自身が公衆網にあること又はsock5プロキシを使用していることを判断した場合、第一端末へ第二端末の公衆IPアドレスとTCPポートの付け加えられている接続要求メッセージを送信し、
第一端末が前記接続要求メッセージを受信した後、直接にTCPプロトコルを使用して、当該応答メッセージに付け加えられている第二端末の公衆IPアドレスとTCPポートに接続することを含む。
【国際調査報告】
2008515067.tif 000008
2008515067.tif 000009
2008515067.tif 000010
2008515067.tif 000011