(57)【要約】  Ｐ２Ｐコンテンツ共有のための方法、システム、及びノードが提供される。方法は、スーパーノードが、一般ユーザノードから、フラグメントを求める要求を受信するステップと、一般ユーザノードによって求められたフラグメントが記憶されているかどうかについてスーパーノード自体を調べるステップと、記憶されている場合、記憶されているフラグメントを一般ユーザノードによって共有されるようにアップロードするステップと、記憶されていない場合、一般ユーザノードによって求められたフラグメントをその他のスーパーノード及び一般ユーザノードに求めるステップと、取得したフラグメントを一般ユーザノードによって共有されるようにアップロードするステップとを含む。提供される解決法は、ＮＡＴの背後のプライベートネットワークユーザがＮＡＴを越えてＰ２Ｐ伝送を達成するのを支援することが可能である。同時に、上りレートと下りレートとが非対称である場合に全体的な共有レートはネットワーク内の最小レートによって制限されるという問題が解決され、高い帯域幅要求を有するリアルタイムＰ２Ｐビジネスアプリケーションが可能になる。
2010522386.tif 000002
【特許請求の範囲】
【請求項１】
スーパーノードがユーザノードから選択される、ピアツーピア（Ｐ２Ｐ）コンテンツ共有のための方法であって、
前記スーパーノードによって、一般ユーザノードから、フラグメントを求める要求を受信し、前記スーパーノード自体を調べて、前記一般ユーザノードによって要求された前記フラグメントが前記スーパーノード内に記憶されているかどうかを確認し、記憶されている場合、前記スーパーノードは、前記スーパーノードの記憶されているフラグメントを前記一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、前記スーパーノードは、前記一般ユーザノードによって所望される前記フラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを前記一般ユーザノードによって共有されるようにアップロードすることを含む、方法。
【請求項２】
前記スーパーノードを前記ユーザノードから選択することは、
パブリックＩＰアドレスを有するユーザノードを前記スーパーノードとしてトラッカに登録することを含む、請求項１に記載の方法。
【請求項３】
前記スーパーノードによって、前記一般ユーザノードから、フラグメントを求める前記要求を受信することの前に、前記方法は、
前記一般ユーザノードによって、トラッカから、スーパーノードリストを取得し、フラグメントを求める前記要求を、前記スーパーノードリスト内の少なくとも１つのスーパーノードに送信することを更に含み、
前記スーパーノードによって、前記一般ユーザノードによって所望される前記フラグメントを前記その他のスーパーノード又は一般ユーザノードに要求することは、前記スーパーノードによって、前記一般ユーザノードによって所望される一部の前記フラグメントをランダムに選択し、前記その他のスーパーノード又は一般ユーザノードに、前記選択された一部を要求することを含む、請求項１に記載の方法。
【請求項４】
トラッカと、一般ユーザノードとを備える、ピアツーピア（Ｐ２Ｐ）コンテンツ共有のためのシステムであって、前記システムはスーパーノードを更に備え、ダウンロード要求を有さない場合、前記スーパーノードは、一般ユーザノードからの、フラグメントを求める要求に従って、前記スーパーノード自体によって記憶されたフラグメント、あるいは、その他のスーパーノード又は一般ユーザノードから取得したフラグメントを、前記一般ユーザノードによって共有されるようにアップロードする、システム。
【請求項５】
前記スーパーノードはパブリックＩＰアドレスを有するユーザノードである、請求項４に記載のシステム。
【請求項６】
スーパーノードとして働くことが可能なユーザノードであって、
ユーザノードがスーパーノードであるための条件を満たすことを検出した場合に、前記ユーザノードをスーパーノードとしてトラッカに登録するように適合された、スーパーノード登録モジュールと、
フラグメント要求処理モジュールであって、一般ユーザノードから、フラグメントを求める要求を受信し、前記処理モジュール自体を調べて、前記一般ユーザノードによって要求された前記フラグメントが前記処理モジュール内に記憶されているかどうかを確認し、記憶されている場合、前記処理モジュールは、前記処理モジュールの記憶されているフラグメントを、前記一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、前記処理モジュールは、前記一般ユーザノードによって所望される前記フラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを前記一般ユーザノードによって共有されるようにアップロードする、フラグメント要求処理モジュールとを備える、ユーザノード。
【請求項７】
スーパーノードがユーザノードから選択される、ピアツーピア（Ｐ２Ｐ）コンテンツ共有のための方法であって、
プライベートネットワークユーザノードによって、前記プライベートネットワークユーザノード自体のフラグメントを、前記スーパーノードによって割り当てられたパブリックＩＰアドレスとポート番号とを介して、又はエージェントとしての前記スーパーノードを使用してアップロードして、その他のユーザノードによって共有されるようにするか、又はその他のユーザノードからフラグメントをダウンロードすることを含む、方法。
【請求項８】
前記プライベートネットワークユーザノードによって、前記プライベートネットワークユーザノード自体のフラグメントをアップロードすることの前に、前記方法は、
パブリックＩＰアドレスを有するユーザノードを、前記スーパーノードとしてトラッカに登録することを更に含み、ここで、前記プライベートネットワークユーザノードは、前記スーパーノードと相互作用して、前記プライベートネットワークユーザノード自体のネットワークアドレス変換（ＮＡＴ）がコーン型ＮＡＴであることを判定し、次に、前記スーパーノードから前記パブリックＩＰアドレスと前記ポート番号とを取得して、前記パブリックＩＰアドレスと前記ポート番号とを前記トラッカに登録する、請求項７に記載の方法。
【請求項９】
前記プライベートネットワークユーザノードによって、前記プライベートネットワークユーザノード自体のフラグメントをアップロードすることの前に、前記方法は、
パブリックＩＰアドレスを有するユーザノードを、前記スーパーノードとしてトラッカに登録することを更に含み、ここで、前記プライベートネットワークユーザノードは、前記スーパーノードと相互作用して、前記プライベートネットワークユーザノード自体のＮＡＴが対称型ＮＡＴであることを判定し、次に、前記スーパーノードに、エージェントとして前記トラッカに登録するよう要求し、前記スーパーノードは、前記スーパーノード自体のパブリックＩＰアドレスを前記トラッカに登録する、請求項７に記載の方法。
【請求項１０】
トラッカと、一般ユーザノードとを備える、ピアツーピア（Ｐ２Ｐ）コンテンツ共有のためのシステムであって、前記システムはスーパーノードを更に備え、前記スーパーノードは、プライベートネットワークユーザノードがネットワークアドレス変換（ＮＡＴ）を越えてＰ２Ｐ伝送を達成するのを支援するように適合された、システム。
【請求項１１】
前記スーパーノードは、パブリックＩＰアドレスとポート番号とをコーン型ＮＡＴプライベートネットワークユーザノードに割り当てるように適合された、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ）サーバ機能モジュールを更に備え、前記プライベートネットワークユーザノードは、前記パブリックＩＰアドレスと前記ポート番号とを前記トラッカに登録する、請求項１０に記載のシステム。
【請求項１２】
前記スーパーノードは、対称型ＮＡＴプライベートネットワークユーザノードのエージェントとして前記トラッカに登録するように適合された、ＴＵＲＮ（Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ）サーバ機能モジュールを更に備える、請求項１０に記載のシステム。
【請求項１３】
プライベートネットワークユーザノードであって、
前記ユーザノードがプライベートネットワークユーザノードであることを検出し、次に、前記ユーザノードのＮＡＴタイプがコーン型ＮＡＴであるか対称型ＮＡＴであるかを判定し、そして、判定結果を登録モジュールに送信するように適合された、ネットワークアドレス変換（ＮＡＴ）タイプ判定モジュールと、
前記ＮＡＴタイプ判定モジュールによって送信された前記判定結果を受信するように適合された、登録モジュールであって、前記結果がコーン型ＮＡＴである場合、前記登録モジュールは、パブリックＩＰアドレスとポート番号とを前記ユーザノードに割り当てるようスーパーノードに要求し、前記パブリックＩＰアドレスと前記ポート番号とをトラッカに登録し、前記結果が対称型ＮＡＴである場合、前記登録モジュールは、少なくとも１つのスーパーノードに登録し、前記スーパーノードに、前記ユーザノードのエージェントとして前記トラッカに登録するよう要求する、登録モジュールとを備える、プライベートネットワークユーザノード。
【請求項１４】
コーン型ＮＡＴプライベートネットワークユーザノードがパブリックＩＰアドレスとポート番号とをトラッカに登録できるように、前記パブリックＩＰアドレスと前記ポート番号とを前記コーン型ＮＡＴプライベートネットワークユーザノードに割り当てるように適合された、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ）サーバ機能モジュール
を備える、スーパーノード。
【請求項１５】
対称型ＮＡＴプライベートネットワークユーザノードのエージェントとしてトラッカに登録するように適合された、ＴＵＲＮ（Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ）サーバ機能モジュール
を更に備える、請求項１４に記載のスーパーノード。
【請求項１６】
対称型ＮＡＴプライベートネットワークユーザノードのエージェントとしてトラッカに登録するように適合された、ＴＵＲＮ（Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ）サーバ機能モジュール
を備える、スーパーノード。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、インターネット技術の分野に関し、特に、インターネットにおけるコンテンツ共有技術に関する。
【背景技術】
【０００２】
従来のインターネットでは、クライアント／サーバモードが採用され、Ｗｅｂサイト上の集中型サーバが使用されている。しかし、インターネットの発展は集中化から分散化へ向かっており、集中型サーバは分散型サーバに、例えば、ＰｅｅｒツーＰｅｅｒ（Ｐ２Ｐ）技術に変化している。
【０００３】
Ｐ２Ｐ技術では、複数のユーザをネットワーク内に統合して、帯域幅を共有し、ネットワーク内の情報を共同処理する。従来のクライアント／サーバモードとは異なり、Ｐ２Ｐ動作モードでは、各クライアント端末がクライアント及びサーバの両方として機能する。
【０００４】
Ｐ２Ｐ共有ダウンロードは、一般的なダウンロードモードである。毎日、世界中の何十万ものネットワークユーザが、ビットトレント（ＢＴ）ソフトウェアを使用して、映画全体、ＭＰ３、及び大規模ソフトウェアをダウンロードしており、データトラフィックは、世界の総インターネットデータトラフィックの７０％を超えている。共有ダウンロードのプロセスにおいて、同じファイルをダウンロードする必要がある複数のユーザのうちの各ユーザ端末は、ファイルのセグメントをダウンロードする必要があるのみであり、次に、お互いに交換して、それにより、各ユーザは最終的に完全なファイルを得ることができる。
【０００５】
現在のＰ２Ｐ共有ダウンロードモードでは、ＢＴが広く利用されている。図１に示すように、ＢＴのネットワークモデルは、接尾部．ｔｏｒｒｅｎｔを有するファイルを配置するためのＷｅｂサーバと、ユーザがお互いを見つけるのを管理するトラッカと、一般ユーザとを含む。
【０００６】
ＢＴ共有ダウンロードを実現するプロセスは、具体的には以下のステップを含む。
【０００７】
１．コンテンツを共有することを意図するユーザは、接尾部．ｔｏｒｒｅｎｔを有するファイルを一般的なＷｅｂサーバ上に発行し、そのファイルは、共有ファイルに関する長さと名前とハッシュ情報、及びトラッカのユニバーサルリソースロケータ（ＵＲＬ）などを含む。
【０００８】
２．共有コンテンツを入手したいユーザは、一般的なＷｅｂサイトのＷｅｂサーバから．ｔｏｒｒｅｎｔファイルをダウンロードして、トラッカのＵＲＬを取得する。
【０００９】
３．ユーザ（コンテンツを共有することを意図するユーザと、共有コンテンツを入手したいユーザとを含む）は、トラッカと通信を行い、それらのユーザがオンラインであることをトラッカに報告し、その他のｐｅｅｒｓ（コンテンツを共有することを意図するユーザと、共有コンテンツを入手したいユーザとを意味する）のリストをトラッカから取得する。
【００１０】
４．完全なファイルを有するＰｅｅｒはシードと呼ばれ、ファイルを共有することを意図するユーザは、ファイルを、フラグメント共有に適した複数のフラグメントに分割する。
【００１１】
５．全てのＰｅｅｒｓはファイルを共有するために相互に通信を行い、その通信の中で、各Ｐｅｅｒは、そのＰｅｅｒの所望するフラグメントをその他のＰｅｅｒに要求し、一方で、そのＰｅｅｒ自体のフラグメントを、それらのフラグメントを要求しているＰｅｅｒに分配する。
【００１２】
６．全てのファイルコンテンツがダウンロードされた後で、共有プロセス全体を終了する。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
ＢＴ共有のためのＰ２Ｐネットワークは典型的な「皆は一人のために、一人は皆のために」のネットワークであり、そのネットワークを介して各ユーザのリソースが完全に共有されるということが、上記のＢＴ共有プロセスから分かる。しかし、このネットワークでは、真の「平等」の故に、いかなる追加の動作でも「自発的に」行うことを希望するユーザはなく、それによりネットワークは、主として次の２点における特定の制限を有する。
【００１４】
１．２つのユーザがネットワークアドレス変換（ＮＡＴ）の背後にある場合、それらのユーザのアドレスはプライベートネットワークアドレスであり、プライベートネットワークアドレスは外部から直接アクセスされることができない。プライベートネットワーク内の装置に直接アクセスするためには、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ）又はＴＵＲＮ（Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ）のメカニズムが必要とされる。しかし、現在のＢＴネットワークでは、その動作を調整及び完了するための対応するユニットを採用することができず、そのため、Ｐ２Ｐの直接アクセスは実現不可能である。
【００１５】
２．ネットワークが非対称ネットワークである場合、全体的な共有アクセスレートは最小レートによって制限され、例えば、非対称型デジタル加入者線（ＡＤＳＬ）ネットワークでは、代表的な下りレートは８Ｍであり、代表的な上りレートは５１２Ｋである。単に１つのユーザの観点からは、そのユーザのために複数のその他のユーザが、各ユーザの上りレートは十分に高くなくても、同時にアップロードサービスを提供してもよく、複数のユーザの合計レートが、高速ダウンロードに対する１つのユーザの要求を満たすかもしれない。しかし、ネットワーク全体の状況を考慮に入れると、完全なＰ２Ｐの下では、合計の上りレートは、合計の下りレートと正確に等しい。従って、下りリンクの帯域幅がたとえ十分に広くても、上りレートの制限の故に、ユーザの平均下りレートは、ネットワークの平均上りレートであることのみが可能である。
【課題を解決するための手段】
【００１６】
従って、本発明は、プライベートネットワークユーザノードがＰ２Ｐ共有を実現できず、Ｐ２Ｐ共有アクセスレートが上りレートと下りレートのうちのより低いレートによって制限されるという、従来技術における問題を解決することが可能な、Ｐ２Ｐコンテンツ共有のための方法、システム、及びノードに関する。
【００１７】
上記の目的を達成するために、本発明は以下の技術的解決法を提供する。
【００１８】
スーパーノードがユーザノードから選択される、Ｐ２Ｐコンテンツ共有のための方法は、以下のステップを含む。
【００１９】
スーパーノードは、一般ユーザノードから、フラグメントを求める要求を受信し、そのスーパーノード自体を調べて、一般ユーザノードによって要求されたフラグメントがそのスーパーノード内に記憶されているかどうかを確認する。記憶されている場合、スーパーノードは、そのスーパーノードの記憶されているフラグメントを一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、スーパーノードは、一般ユーザノードによって所望されるフラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを一般ユーザノードによって共有されるようにアップロードする。
【００２０】
Ｐ２Ｐコンテンツ共有のためのシステムは、トラッカと、一般ユーザノードとを含み、スーパーノードを更に含む。ダウンロード要求がない場合、スーパーノードは、一般ユーザノードからの、フラグメントを求める要求に従って、そのスーパーノード自体によって記憶されたフラグメント、あるいは、その他のスーパーノード又は一般ユーザノードから取得したフラグメントを、一般ユーザノードによって共有されるようにアップロードする。
【００２１】
スーパーノードとして働くことが可能なユーザノードは、スーパーノード登録モジュールと、フラグメント要求処理モジュールとを含む。
【００２２】
スーパーノード登録モジュールは、ユーザノードがスーパーノードであるための条件を満たすことを検出した場合に、ユーザノードをスーパーノードとしてトラッカに登録するように適合される。
【００２３】
フラグメント要求処理モジュールは、一般ユーザノードから、フラグメントを求める要求を受信し、そのモジュール自体を調べて、一般ユーザノードによって要求されたフラグメントがそのモジュール内に記憶されているかどうかを確認するように適合される。記憶されている場合、処理モジュールは、そのモジュールの記憶されているフラグメントを、一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、処理モジュールは、一般ユーザノードによって所望されるフラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを、一般ユーザノードによって共有されるようにアップロードする。
【００２４】
スーパーノードがユーザノードから選択される、Ｐ２Ｐコンテンツ共有のための方法は、以下のステップを含む。
【００２５】
プライベートネットワークユーザノードは、そのプライベートネットワークユーザノード自体のフラグメントを、スーパーノードによって割り当てられたパブリックＩＰアドレスとポート番号とを介して、又はエージェントとしてのスーパーノードを使用してアップロードして、その他のユーザノードによって共有されるようにするか、又はその他のユーザノードからフラグメントをダウンロードする。
【００２６】
Ｐ２Ｐコンテンツ共有のためのシステムは、トラッカと、一般ユーザノードとを含み、スーパーノードを更に含む。スーパーノードは、Ｐ２Ｐ伝送を達成するように、プライベートネットワークユーザノードがネットワークアドレス変換（ＮＡＴ）を越えることを支援するように適合される。
【００２７】
プライベートネットワークユーザノードは、ＮＡＴタイプ判定モジュールと、登録モジュールとを含む。
【００２８】
ＮＡＴタイプ判定モジュールは、ユーザノードがプライベートネットワークユーザノードであることを検出し、次に、ユーザノードのＮＡＴタイプがコーン型ＮＡＴであるか対称型ＮＡＴであるかを判定し、そして、判定結果を登録モジュールに送信するように適合される。
【００２９】
登録モジュールは、ＮＡＴタイプ判定モジュールによって送信された判定結果を受信するように適合される。結果がコーン型ＮＡＴである場合、登録モジュールは、パブリックＩＰアドレスとポート番号とをユーザノードに割り当てるようスーパーノードに要求し、パブリックＩＰアドレスとポート番号とをトラッカに登録する。結果が対称型ＮＡＴである場合、登録モジュールは、少なくとも１つのスーパーノードに登録し、スーパーノードに、ユーザノードのエージェントとしてトラッカに登録するよう要求する。
【００３０】
スーパーノードは、コーン型ＮＡＴプライベートネットワークユーザノードがパブリックＩＰアドレスとポート番号とをトラッカに登録するように、パブリックＩＰアドレスとポート番号とをコーン型ＮＡＴプライベートネットワークユーザノードに割り当てるように適合された、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ）サーバ機能モジュールを含む。
【００３１】
スーパーノードは、対称型ＮＡＴプライベートネットワークユーザノードのエージェントとしてトラッカに登録するように適合された、ＴＵＲＮ（Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ）サーバ機能モジュールを含む。
【発明の効果】
【００３２】
本発明の実施形態によれば、従来技術の欠点を克服するために、一定の条件を満たすユーザノードをスーパーノードとし、スーパーノードは、ＮＡＴを越える際のプライベートネットワークユーザノードのために、調整及び中継の役割を果たす。更に、ダウンロード要求を有さない場合、スーパーノードは、下りレートの要求を上りレートが満たすようにするために、自発的にアップロードサービスを提供して過度に低い上りレートを補償し、それにより、ＮＡＴの背後のプライベートネットワークユーザノードがＮＡＴを越えるのを支援して、Ｐ２Ｐ伝送を達成する。同時に、上りレートと下りレートとが非対称である場合に全体的な共有レートはネットワーク内の最小レートによって制限されるという問題が解決され、従って、高い帯域幅要求を有するリアルタイムＰ２Ｐビジネスアプリケーションが可能となる。
【図面の簡単な説明】
【００３３】
【図１】従来技術における、ＢＴネットワークのアーキテクチャ図である。
【図２】本発明の一実施形態による、ＢＴネットワークのアーキテクチャ図である。
【図３】本発明の一実施形態による、アップロードサービスを提供しているスーパーノードのフローチャートである。
【図４】本発明の一実施形態による、プライベートネットワークユーザノードがＮＡＴを越えるのを支援しているスーパーノードのフローチャートである。
【発明を実施するための形態】
【００３４】
以下、本発明について、添付の図面を参照して、実施形態を介して更に詳細に説明する。
【００３５】
本発明の実施形態で提供される技術的解決法によれば、既存のＢＴネットワークアーキテクチャにおいて、一定の条件を満たすユーザノードをスーパーノードとし、スーパーノードは、ＮＡＴを越える際のプライベートネットワークユーザノードのために、ＳＴＵＮサーバ又はＴＵＲＮサーバとして、調整及び中継の役割を果たす。更に、ダウンロード要求がない場合、スーパーノードは、下りレートの要求を上りレートが満たすようにするために、自発的にアップロードサービスを提供して過度に低い上りレートを補償する。
【００３６】
本発明の目的、技術的解決法、及び利点を分かりやすくするために、添付の図面を使用して、実施形態について以下で詳細に説明する。本明細書に記載する実施形態は、本発明を限定することを意図するものではなく、本発明を説明することのみを意図するものであるということが理解されるべきである。
【００３７】
本発明の一実施形態によるネットワークアーキテクチャを図２に示す。図２では、既存のＢＴネットワークアーキテクチャ内にスーパーノードが導入されている。スーパーノードは、以下の条件を満たす一般ユーザノードによって置き換えられてもよい。パブリックＩＰアドレスを有する。その他のユーザノードによって直接アクセスされることが可能である。十分な処理能力を有する。共有コンテンツを記憶するための十分な記憶空間を有する。十分な帯域幅を有する。
【００３８】
一般ユーザノードの全ての処理に従うことに加えて、スーパーノードは、更に、トラッカに登録する際にそのノードがスーパーノードであることを明らかにする必要があり、それにより、トラッカ及びその他のユーザノードは、どのノードがスーパーノードであるかを情報のやりとりの間に知らされてもよい。
【００３９】
ダウンロードの要求がない場合、スーパーノードは、ダウンロードファイルの特定のコンテンツに関心がなく、Ｗｅｂサーバから．ｔｏｒｒｅｎｔファイルを能動的にダウンロードしなくてもよい。従って、トラッカの発見メカニズムはそれに応じて修正される必要があり、そのため、トラッカのＩＰアドレス又はドメイン名は．ｔｏｒｒｅｎｔファイルからはもはや取得されず、各ユーザノード内に予め設定される。一般ユーザノードがスーパーノードとしてトラッカに登録する際の特定のプロセスを、以下に示す。
【００４０】
１．ユーザノードは、予め設定されたトラッカのＩＰアドレス又はドメイン名を介してトラッカを見つける。
【００４１】
２．ユーザノードは、トラッカから、スーパーノードのリストを取得する。
【００４２】
３．スーパーノードはＳＴＵＮサーバの機能を統合し、一般ユーザノードはＳＴＵＮクライアントの機能を統合する。ＳＴＵＮクライアントは、ＳＴＵＮサーバと通信して、ユーザノードのＩＰアドレスがパブリックＩＰアドレスであるかプライベートＩＰアドレスであるかを判定する。具体的には、ＳＴＵＮクライアントはＳＴＵＮサーバにプローブパケットを最初に送信し、（ＩＰヘッダを除く）パケットペイロードは、ＳＴＵＮクライアント自体のＩＰアドレスを含む。パケットがＮＡＴを越える場合、ヘッダのＩＰアドレスはＮＡＴのパブリックＩＰアドレスに変更されるが、ペイロード内のＩＰアドレスは変わらない。それ故、プローブパケットを受信した場合、ＳＴＵＮサーバは、ＳＴＵＮクライアントがＮＡＴを越えたかどうかを判定するために、パケットヘッダのソースＩＰがペイロードのＩＰアドレスと同一であるかどうかを比較して確認し、次に、ＳＴＵＮクライアントに応答パケットを返す。パケットペイロードは、その中でパブリックＩＰアドレスを運び、ＳＴＵＮクライアントは、応答パケットのヘッダ宛先ＩＰアドレスを、ペイロードＩＰアドレスと比較して、そのパケットがＮＡＴを越えたかどうかを確認する。
【００４３】
ＳＴＵＮクライアントがＮＡＴの背後にある場合、ＳＴＵＮサーバは、ＮＡＴを越えた後のＳＴＵＮクライアントのＩＰアドレスとポート番号とについて、その他のユーザに通知し、従って、その他のユーザはＳＴＵＮクライアントにアクセスできる。
【００４４】
４．ユーザノードは、そのユーザノード自体のＩＰアドレスがパブリックＩＰアドレスであることを見出した場合、そのユーザノード自体を調べて、処理能力、記憶容量、及び帯域幅がスーパーノードの条件を満たすかどうかを確認し、満たすならば、スーパーノードとしてトラッカに登録する。
【００４５】
条件を満たすユーザノードがスーパーノードとして登録された後で、スーパーノードは、ＢＴネットワークアーキテクチャ内で２つの機能を達成する。１つは、そのスーパーノード自体がいかなるファイルもダウンロードしていない場合にアップロードサービスを提供することであり、もう１つは、プライベートネットワークアドレスを有するユーザがＮＡＴを越えるのを支援することである。
【００４６】
スーパーノードの、そのスーパーノード自体がいかなるファイルもダウンロードしていない場合にアップロードサービスを提供するプロセスを、図３に示す。
【００４７】
ステップ３０１で、スーパーノードは、一般ユーザノードから、フラグメントを求める要求を受信する。
【００４８】
ステップ３０２で、スーパーノードは、一般ユーザノードからの、フラグメントを求める要求を解析し、そのスーパーノード自体を調べて、そのフラグメントが存在するかどうかを確認する。存在しない場合はステップ３に進み、存在する場合はステップ５に進む。
【００４９】
ステップ３０３で、スーパーノードは、一般ユーザノードによって所望されるフラグメントのうちの一部のフラグメントをランダムに選択し、選択された一部をその他のノード（スーパーノード及び一般ユーザノードを含む）に要求する。
【００５０】
ステップ３０４で、スーパーノードは、その他のノードからフラグメントを取得し、取得したフラグメントを、そのスーパーノード自体の記憶空間内に一時的に記憶する。
【００５１】
ステップ３０４の後で、プロセスは、ステップ３０５に進むか、又はステップ３０１に戻る。
【００５２】
ステップ３０５で、スーパーノードは、記憶されたフラグメントを、フラグメントを要求する一般ユーザノードによって共有されるようにアップロードする。
【００５３】
上記のプロセスにおいて最も重要な点は、スーパーノードは、全てのフラグメントをダウンロードするのではなく、一部のフラグメントをランダムにダウンロードして、スーパーノードと一般ユーザノードとの間での帯域幅をめぐる競合を回避するということである。スーパーノードは一部のフラグメントのみを有するが、スーパーノードの数が十分である場合、全部のフラグメントを取得するために全てのスーパーノードが統合されてもよく、そして、各スーパーノードはそのスーパーノード自体によって所有される部分を共有するために繰り返しアップロードし、それにより、不十分なアップロード帯域幅の問題は有効に解決されうる。
【００５４】
プライベートネットワークアドレスを有するにすぎない一般ユーザノードがＮＡＴを越えるのを支援する、スーパーノードの具体的なプロセスを図４に示す。このプロセスは以下のステップを含む。
【００５５】
ステップ４０１で、一般ユーザノードは、その一般ユーザノード自体のＩＰアドレスがプライベートＩＰアドレスであることを見出した場合、スーパーノードのＳＴＵＮサーバと情報を交換する。
【００５６】
ステップ４０２で、一般ユーザノードは、その一般ユーザノード自体のＮＡＴタイプがコーン型ＮＡＴであるか対称型ＮＡＴであるかを、交換された情報に従って判定する。結果がコーン型ＮＡＴである場合はステップ４０３に進み、結果が対称型ＮＡＴである場合はステップ４０４に進む。
【００５７】
ステップ４０３で、結果がコーン型ＮＡＴである場合、一般ユーザノードは、その一般ユーザノード自体のパブリックＩＰアドレスとポート番号とをスーパーノードのＳＴＵＮサーバから取得し、パブリックＩＰアドレスとポート番号とをトラッカに登録し、それにより、その他のユーザノード（一般ユーザノード及びスーパーノードを含む）は、一般ユーザノードによって発行されたパブリックＩＰアドレスとポート番号とを介して一般ユーザノードにアクセスして、Ｐ２Ｐ伝送を直接実行してもよい。その後、プロセスは終了する。
【００５８】
ステップ４０４で、結果が対称型ＮＡＴである場合、一般ユーザノードは、１つ以上のスーパーノードを選択してそのスーパーノードに登録し、選択されたスーパーノードに、エージェントとしてトラッカに登録するよう要求する。スーパーノードは、そのスーパーノード自体のパブリックＩＰアドレスを登録し、その後、一般ユーザノードは、転送のためのエージェントとしてのスーパーノードを介してファイルをアップロード及びダウンロードする。スーパーノードは、ＮＡＴ越えのためのＴＵＲＮサーバとして働く。
【００５９】
本発明の一実施形態によれば、スーパーノードとして働くことが可能なユーザノードの構成は主として、スーパーノード登録モジュールと、フラグメント要求処理モジュールとを含む。
【００６０】
スーパーノード登録モジュールは、ユーザノードがスーパーノードであるための条件を満たすことを検出した場合に、ユーザノードをスーパーノードとしてトラッカに登録するように適合される。
【００６１】
フラグメント要求処理モジュールは、一般ユーザノードから、フラグメントを求める要求を受信し、そのスーパーノード自体を調べて、一般ユーザノードによって要求されたフラグメントがそのスーパーノード内に記憶されているかどうかを確認するように適合される。記憶されている場合、処理モジュールは、記憶されているフラグメントを、一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、処理モジュールは、一般ユーザノードによって所望されるフラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを、一般ユーザノードによって共有されるようにアップロードする。
【００６２】
本発明の一実施形態によれば、プライベートネットワークユーザノードの構成は主として、ＮＡＴタイプ判定モジュールと、登録モジュールとを含む。
【００６３】
ＮＡＴタイプ判定モジュールは、ユーザノードがプライベートネットワークユーザノードであることを検出し、次に、ユーザノードのＮＡＴタイプがコーン型ＮＡＴであるか対称型ＮＡＴであるかを判定し、そして、判定結果を登録モジュールに送信するように適合される。
【００６４】
登録モジュールは、ＮＡＴタイプ判定モジュールによって送信された判定結果を受信するように適合される。結果がコーン型ＮＡＴである場合、登録モジュールは、パブリックＩＰアドレスとポート番号とをユーザノードに割り当てるようスーパーノードに要求し、パブリックＩＰアドレスとポート番号とをトラッカに登録する。結果が対称型ＮＡＴである場合、登録モジュールは、少なくとも１つのスーパーノードに登録し、スーパーノードに、ユーザノードのエージェントとしてトラッカに登録するよう要求する。
【００６５】
本発明の一実施形態によれば、プライベートネットワークユーザノードがＮＡＴを越えるのを支援することが可能なスーパーノードの構成は主として、ＳＴＵＮサーバ機能モジュールと、ＴＵＲＮサーバ機能モジュールとを含む。
【００６６】
ＳＴＵＮサーバ機能モジュールは、パブリックＩＰアドレスとポート番号とをコーン型ＮＡＴプライベートネットワークユーザノードに割り当てるように適合され、それにより、プライベートネットワークユーザノードは、パブリックＩＰアドレスとポート番号とをトラッカに登録する。
【００６７】
ＴＵＲＮサーバ機能モジュールは、対称型ＮＡＴプライベートネットワークユーザノードのエージェントとしてトラッカに登録するように適合される。
【００６８】
上述のように、本発明の実施形態では、一定の条件を満たすユーザノードをスーパーノードとし、スーパーノードは、ＮＡＴを越える際のプライベートネットワークユーザノードのために、ＳＴＵＮサーバ又はＴＵＲＮサーバとして、調整及び中継の役割を果たす。更に、ダウンロード要求がない場合、スーパーノードは、下りレートの要求を上りレートが満たすようにするために、自発的にアップロードサービスを提供して過度に低い上りレートを補償し、それにより、ＮＡＴの背後のプライベートネットワークユーザノードがＮＡＴを越えてＰ２Ｐ伝送を達成するのを支援する。同時に、上りレートと下りレートとが非対称である場合に全体的な共有レートはネットワーク内の最小レートによって制限されるという問題が解決され、従って、高い帯域幅要求を有するリアルタイムＰ２Ｐビジネスアプリケーションが可能となる。
【００６９】
本発明を実施形態によって上記で開示してきたが、実施形態は本発明を限定することを意図するものではない。本発明の精神及び原理内で行われるいかなる修正、均等物との置換、及び変形も、本発明の範囲内に入る。
【図１】
2010522386.tif 000003
【図２】
2010522386.tif 000004
【図３】
2010522386.tif 000005
【図４】
2010522386.tif 000006
2010522386.tif 000007
【手続補正書】
【提出日】平成21年11月26日(2009.11.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＰｅｅｒツーＰｅｅｒ（Ｐ２Ｐ）コンテンツ共有のための方法であって、
スーパーノードであるための条件をユーザノードが満たすことを検出した場合に、前記ユーザノードをスーパーノードとしてトラッカに登録し、
前記スーパーノードによって、一般ユーザノードからの、フラグメントを求める要求に従って、前記一般ユーザノードとフラグメントを共有し、又は、前記スーパーノードによって、プライベートネットワークユーザノードのためのパブリックＩＰアドレスとポート番号とを割り当て、
前記プライベートネットワークユーザノードは、前記プライベートネットワークユーザノード自体のフラグメントを、前記パブリックＩＰアドレスと前記ポート番号とを介して、又はエージェントとしての前記スーパーノードを使用してアップロードして、その他のユーザノードによって共有されるようにするか、又はその他のユーザノードからフラグメントをダウンロードするようにする、方法。
【請求項２】
前記ユーザノードをスーパーノードとしてトラッカに登録することは、
パブリックＩＰアドレスを有するユーザノードを前記スーパーノードとしてトラッカに登録することを含む、請求項１に記載の方法。
【請求項３】
一般ユーザノードからの、フラグメントを求める要求に従って、前記一般ユーザノードとフラグメントを共有することは、
前記スーパーノードによって、一般ユーザノードから、フラグメントを求める要求を受信し、前記スーパーノード自体を調べて、前記一般ユーザノードによって要求された前記フラグメントが前記スーパーノード内に記憶されているかどうかを確認し、記憶されている場合、前記スーパーノードは、前記スーパーノードの記憶されているフラグメントを前記一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、前記スーパーノードは、前記一般ユーザノードによって所望される前記フラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを前記一般ユーザノードによって共有されるようにアップロードすることを含む、請求項１又は２に記載の方法。
【請求項４】
前記スーパーノードによって、前記一般ユーザノードから、フラグメントを求める前記要求を受信することの前に、前記方法は、
前記一般ユーザノードによって、トラッカから、スーパーノードリストを取得し、フラグメントを求める前記要求を、前記スーパーノードリスト内の少なくとも１つのスーパーノードに送信することを更に含み、
前記スーパーノードによって、前記一般ユーザノードによって所望される前記フラグメントを前記その他のスーパーノード又は一般ユーザノードに要求することは、前記スーパーノードによって、前記一般ユーザノードによって所望される一部の前記フラグメントをランダムに選択し、前記その他のスーパーノード又は一般ユーザノードに、前記選択された一部を要求することを含む、請求項３に記載の方法。
【請求項５】
前記プライベートネットワークユーザノードが前記プライベートネットワークユーザノード自体のフラグメントをアップロードすることの前に、前記方法は、
前記プライベートネットワークユーザノードが、前記スーパーノードとやりとりをして、前記プライベートネットワークユーザノード自体のネットワークアドレス変換（ＮＡＴ）がコーン型ＮＡＴであることを判定し、次に、前記スーパーノードから前記パブリックＩＰアドレスと前記ポート番号とを取得して、前記パブリックＩＰアドレスと前記ポート番号とを前記トラッカに登録することを更に含む、請求項１又は２に記載の方法。
【請求項６】
前記プライベートネットワークユーザノードは前記プライベートネットワークユーザノード自体のフラグメントをアップロードし、前記方法は、
前記プライベートネットワークユーザノードが、前記スーパーノードとやりとりをして、前記プライベートネットワークユーザノード自体のＮＡＴが対称型ＮＡＴであることを判定し、次に、前記スーパーノードに、エージェントとして前記トラッカに登録するよう要求し、前記スーパーノードが、前記スーパーノード自体のパブリックＩＰアドレスを使用して前記トラッカに登録することを更に含む、請求項１又は２に記載の方法。
【請求項７】
ユーザノードがスーパーノードであるための条件を満たすことを検出した場合に、前記ユーザノードをスーパーノードとしてトラッカに登録するように適合された、スーパーノード登録モジュールと、
一般ユーザノードからの、フラグメントを求める要求に従って、前記一般ユーザノードとフラグメントを共有するように適合された、共有モジュールと、
プライベートネットワークユーザノードのためのパブリックＩＰアドレスとポート番号とに適合された、割り当てモジュールと
を備える、スーパーノード。
【請求項８】
一般ユーザノードから、フラグメントを求める要求を受信し、前記スーパーノード自体を調べて、前記一般ユーザノードによって要求された前記フラグメントが前記スーパーノード内に記憶されているかどうかを確認するように適合されたフラグメント要求処理モジュールであって、記憶されている場合、前記処理モジュールは、前記記憶されているフラグメントを、前記一般ユーザノードによって共有されるようにアップロードし、記憶されていない場合、前記処理モジュールは、前記一般ユーザノードによって所望される前記フラグメントをその他のスーパーノード又は一般ユーザノードに要求し、取得したフラグメントを前記一般ユーザノードによって共有されるようにアップロードする、フラグメント要求処理モジュール
を更に含む、請求項７に記載のスーパーノード。
【請求項９】
コーン型ＮＡＴプライベートネットワークユーザノードがパブリックＩＰアドレスとポート番号とをトラッカに登録できるように、前記パブリックＩＰアドレスと前記ポート番号とを前記コーン型ＮＡＴプライベートネットワークユーザノードに割り当てるように適合された、ＳＴＵＮ（Ｓｉｍｐｌｅ  Ｔｒａｖｅｒｓａｌ  ｏｆ  ＵＤＰ  Ｔｈｒｏｕｇｈ  Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｏｒｓ）サーバ機能モジュール
を更に含む、請求項７に記載のスーパーノード。
【請求項１０】
対称型ＮＡＴプライベートネットワークユーザノードのエージェントとしてトラッカに登録するように適合された、ＴＵＲＮ（Ｔｒａｖｅｒｓａｌ  Ｕｓｉｎｇ  Ｒｅｌａｙ  ＮＡＴ）サーバ機能モジュール
を更に備える、請求項７に記載のスーパーノード。
【請求項１１】
トラッカと、一般ユーザノードと、請求項７〜９のいずれか１項に記載のスーパーノードとを含む、ＰｅｅｒツーＰｅｅｒ（Ｐ２Ｐ）コンテンツ共有のためのシステム。
【請求項１２】
トラッカと、ユーザノードと、請求項７〜９のいずれか１項に記載のスーパーノードとを含む、ＰｅｅｒツーＰｅｅｒ（Ｐ２Ｐ）コンテンツ共有のためのシステムであって、
前記ユーザノードは、
前記ユーザノードがプライベートネットワークユーザノードであることを検出し、次に、前記ユーザノードのＮＡＴタイプがコーン型ＮＡＴであるか対称型ＮＡＴであるかを判定し、判定結果を登録モジュールに送信するように適合された、ネットワークアドレス変換（ＮＡＴ）タイプ判定モジュールと、
前記ＮＡＴタイプ判定モジュールによって送信された前記判定結果を受信するように適合された、登録モジュールであって、前記結果がコーン型ＮＡＴである場合、前記登録モジュールは、パブリックＩＰアドレスとポート番号とを前記ユーザノードに割り当てるようスーパーノードに要求し、前記パブリックＩＰアドレスと前記ポート番号とをトラッカに登録し、前記結果が対称型ＮＡＴである場合、前記登録モジュールは、少なくとも１つのスーパーノードに登録し、前記スーパーノードに、前記ユーザノードのエージェントとして前記トラッカに登録するよう要求する、登録モジュールとを含む、システム。
【国際調査報告】
2010522386.tif 000008
2010522386.tif 000009
2010522386.tif 000010
2010522386.tif 000011
2010522386.tif 000012
2010522386.tif 000013