(57)【要約】Ｐ２Ｐファイル転送システム及び方法を提供する。本Ｐ２Ｐファイル転送システムは、システムに接続したユーザーを管理し、ユーザー間のＰ２Ｐファイル転送を管理するＰ２Ｐノード管理システムと、ファイル送信者とファイル受信者間の直接連結によるＰ２Ｐファイル転送に失敗する場合、ファイル送信者から転送されるファイルをファイル受信者に中継するリレーサーバーと、を含む構成とした。これにより、Ｐ２Ｐによるファイル転送が不安定になるＮＡＴのような環境下で、より安定したファイル転送を可能にし、かつ、Ｐ２Ｐをより様々なファイル転送システムに拡張して適用可能にする。【選択図】図１
2009531744.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続したユーザークライアントのユーザーＩＤ情報及びアドレス情報を含むユーザークライアントの情報を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するＰ２Ｐノード管理システムと、
前記Ｐ２Ｐノード管理システムに接続した第１ユーザークライアント及び第２ユーザークライアント間の直接連結によるＰ２Ｐファイル送受信に失敗する場合、前記第１ユーザークライアント及び前記第２ユーザークライアント間のファイル送受信を中継するリレーサーバーと、
を含む、Ｐ２Ｐファイル転送システム。
【請求項２】
前記ユーザークライアントにはＰ２Ｐアプリケーションが設置され、
前記Ｐ２Ｐアプリケーションは、接続時に、前記ユーザーＩＤ情報及び前記アドレス情報を前記Ｐ２Ｐノード管理システムに転送し、前記第１ユーザークライアント及び前記第２ユーザークライアント間の直接連結によるＰ２Ｐファイル送受信を試みることを特徴とする、請求項１に記載のＰ２Ｐファイル転送システム。
【請求項３】
前記第１ユーザークライアントが前記第２ユーザークライアントとのファイル送受信を要請する場合、前記リレーサーバーは、前記第１ユーザークライアントからファイル送受信要請情報を受信し、チャンネルを生成し、前記第１ユーザークライアントと前記第２ユーザークライアント間にファイル送受信に必要な情報を中継することを特徴とする、請求項１に記載のＰ２Ｐファイル転送システム。
【請求項４】
前記Ｐ２Ｐノード管理システムは、Ｐ２Ｐファイル共有システム、メッセンジャーファイル転送システム、インターネット電話システム、ゲームシステムのうち、いずれか一つを含むことを特徴とする、請求項１に記載のＰ２Ｐファイル転送システム。
【請求項５】
前記ファイル送受信に必要な情報は、ユーザーＩＤ情報、公認ＩＰアドレス情報、公認ポート番号、私設ＩＰアドレス情報及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせであることを特徴とする、請求項３に記載のＰ２Ｐファイル転送システム。
【請求項６】
前記リレーサーバーは、前記チャンネルを介して前記第１ユーザークライアント及び前記第２ユーザークライアント間のファイル送受信を中継することを特徴とする、請求項３に記載のＰ２Ｐファイル転送システム。
【請求項７】
前記リレーサーバーは、前記第１ユーザークライアントから前記第２ユーザークライアントとのファイル送受信要請を受ける場合、前記Ｐ２Ｐノード管理システムに、前記第２ユーザークライアントへのチャンネル招待メッセージ転送を要請し、前記Ｐ２Ｐノード管理システムは、前記リレーサーバーからの要請に応答してチャンネル招待メッセージを前記第２ユーザークライアントに転送することを特徴とする、請求項３に記載のＰ２Ｐファイル転送システム。
【請求項８】
前記第１ユーザークライアントは、前記リレーサーバーに前記第２ユーザークライアントとのファイル送受信要請時に、前記第２ユーザークライアントのアドレス情報を提供し、前記リレーサーバーは、前記第２ユーザークライアントのアドレス情報を用いて前記第２ユーザークライアントにチャンネル招待メッセージを転送することを特徴とする、請求項３に記載のＰ２Ｐファイル転送システム。
【請求項９】
ネットワークを介して接続したユーザークライアントのユーザーＩＤ情報及びアドレス情報を含むクライアントの情報を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するＰ２Ｐノード管理システムと連動し、前記Ｐ２Ｐノード管理システムから、接続したユーザークライアントの情報を受信した第１ユーザークライアントのチャンネル生成要請に応答してチャンネルを生成するチャンネル生成モジュールと、
前記チャンネルに参加した第１ユーザークライアント及び第２ユーザークライアント間の直接連結によるＰ２Ｐファイル転送に失敗する場合、前記チャンネルを介して前記第１ユーザークライアント及び前記第２ユーザークライアント間のファイル送受信を中継するファイル中継モジュールと、
を含む、リレーサーバー。
【請求項１０】
前記チャンネル生成部により生成された前記チャンネルのうち、少なくとも一つの前記チャンネルのチャンネル情報を管理するチャンネル情報管理モジュールと、
チャンネル生成を要請した前記第１ユーザークライアントが前記Ｐ２Ｐノード管理システムからの接続したユーザークライアントの情報を用いて指定した一つ以上の第２ユーザークライアントを前記チャンネルに招待するためのあらかじめ設定されたプロセスを行い、前記第２ユーザークライアントのチャンネル参加を処理するチャンネル参加処理モジュールと、
をさらに含むことを特徴とする、請求項９に記載のリレーサーバー。
【請求項１１】
前記チャンネル情報管理モジュールは、前記チャンネル生成時に与えられるチャンネルＩＤ情報、チャンネルに参加したユーザー数情報及びチャンネルに参加したユーザー情報を管理することを特徴とする、請求項９に記載のリレーサーバー。
【請求項１２】
前記リレーサーバーは、前記チャンネルを介して前記第１ユーザークライアント及び前記第２ユーザークライアント間のファイル送受信に必要な情報を中継し、前記ファイル送受信に必要な情報は、公認ＩＰアドレス、公認ポート番号、私設ＩＰアドレス及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせを含むことを特徴とする、請求項９に記載のリレーサーバー。
【請求項１３】
前記あらかじめ設定されたプロセスは、前記Ｐ２Ｐノード管理システムに前記第２ユーザークライアントへのチャンネル招待メッセージ転送を要請することであることを特徴とする、請求項９に記載のリレーサーバー。
【請求項１４】
前記第１ユーザークライアントは、前記第２ユーザークライアントのアドレス情報を提供し、前記あらかじめ設定されたプロセスは、前記第２ユーザークライアントのアドレス情報を用いて前記第２ユーザークライアントに招待メッセージを転送することであることを特徴とする、請求項９に記載のリレーサーバー。
【請求項１５】
前記生成されたチャンネルは、チャンネルに参加した第１ユーザークライアント及び第２ユーザークライアントが前記チャンネルを出た後、あらかじめ設定された時間が経過した後に終了することを特徴とする、請求項９に記載のリレーサーバー。
【請求項１６】
ユーザーの要請に応答してチャンネルを生成する段階と、
前記生成されたチャンネルを介して、チャンネルに参加したユーザーが転送するＰ２Ｐファイル送受信に必要な情報を中継する段階と、
チャンネルに参加したユーザー間の直接連結によるＰ２Ｐファイル転送に成功するか否かを判断する段階と、
チャンネルに参加したユーザー間の直接連結によるＰ２Ｐファイル転送に失敗する場合、前記生成されたチャンネルを介してユーザー間のファイル転送を中継する段階と、
を含むことを特徴とする、ファイル転送方法。
【請求項１７】
前記Ｐ２Ｐファイル送受信に必要な情報は、公認ＩＰアドレス、公認ポート番号、私設ＩＰアドレス及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせを含むことを特徴とする、請求項１６に記載のファイル転送方法。
【請求項１８】
チャンネルを生成したユーザーにより指定された他のユーザーをチャンネルに招待するために、チャンネル招待メッセージを生成する段階をさらに含み、
前記チャンネル招待メッセージは、Ｐ２Ｐノードを管理するシステムに転送され、前記Ｐ２Ｐノードを管理するシステムは、該当のユーザーに招待メッセージを転送することを特徴とする、請求項１６に記載のファイル転送方法。
【請求項１９】
チャンネルを生成したユーザーにより指定された他のユーザーをチャンネルに招待するために、チャンネル招待メッセージを生成する段階をさらに含み、
前記他のユーザーのアドレス情報は、チャンネルを生成したユーザーから提供され、前記チャンネル招待メッセージは、前記アドレス情報に基づいて該当のユーザーに転送されることを特徴とする、請求項１６に記載のファイル転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイル転送システム及び方法に係り、より詳細には、ピア（Ｐｅｅｒ）間の直接接続によってファイルを送受信するＰ２Ｐ（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）ファイル転送システム及び方法に関する。
【背景技術】
【０００２】
Ｐ２Ｐとは、既存のサーバーとクライアントではなく、個人コンピュータ間が直接連結され、ファイルを検索し交換できる方式のことをいう。
【０００３】
Ｐ２Ｐは、２種類の方式に大別される。その一つは、サーバーの助けを借りて個人クライアント間への接続を行うことであり、もう一つは、クライアント相互間にあらかじめＩＰアドレスを共有し、サーバーの助けを借りずに直接連結され、ファイルを交換する方式である。
【０００４】
サーバーの助けを借りて個人クライアント間にファイルを交換するＰ２Ｐ方式は、既に商用化されている。その代表が、ナップスターのサービスである。
【０００５】
Ｐ２Ｐ方式は、初期には、音楽ファイルのような個人ユーザー間のファイル交換に主に用いられたが、最近では、メッセンジャーシステムにおけるユーザー間のファイル転送、インターネットフォンにおける音声データ転送など、様々なサービスに活用されており、その活用分野は益々増加する一方である。
【０００６】
しかしながら、Ｐ２Ｐ方式は、特定ネットワーク環境下で正常なファイル送受信ができないという問題点があった。その代表例を挙げると、クライアントがＮＡＴ（Ｎｅｔｗｏｒｋ  Ａｄｄｒｅｓｓ  Ｔｒａｎｓｌａｔｉｏｎ）を使用するネットワークに存在する場合、正常なＰ２Ｐファイル転送が行われないことが頻繁だった。特に、このような問題点は、ファイル送信者とファイル受信者が両者ともＮＡＴを使用する場合に一層深刻になる。
【０００７】
ＮＡＴは、ＯＳＩ（Ｏｐｅｎ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）モデルで３階層であるネットワーク階層で、公認ＩＰ（Ｐｕｂｌｉｃ  ＩＰ）アドレスを私設ＩＰ（Ｐｒｉｖａｔｅ  ＩＰ）アドレスに変換して使用する技術である。ＮＡＴは、多くの公認ＩＰアドレスの確保が困難なオフィスなどで主として用いられてきた。ＮＡＴを用いると、私設ＩＰアドレスを使用しながらこれを公認ＩＰアドレスと相互変換し、公認ＩＰアドレスを多数のユーザーが共に使用できるようにし、したがって、限定された公認ＩＰアドレス資源を節約することができる。
【０００８】
それ以外にも、ＮＡＴは、外部からユーザー端末機への攻撃を防ぐことができ、保安上においても多くの長所があり、この点から、ＮＡＴの使用は増加一途にある。
【０００９】
このように、ＮＡＴの使用及び各種保安のためのシステムの導入から、Ｐ２Ｐ方式によるファイル転送の不安定性が問題化されており、これは、Ｐ２Ｐ方式のファイル転送の活性化に大きな障害となっている。
【００１０】
ＮＡＴにおけるＰ２Ｐ方式のファイル転送の不安定性を克服するために、ＵＤＰホールパンチング（Ｈｏｌｅ  Ｐｕｎｃｈｉｎｇ）のような方法が提案されたが、これはＵＤＰに限定される方法である。しかも、ＵＤＰホールパンチングによってもその不安定性を完全に解消することはできなかった。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、上記の従来技術の問題点を解決するためのもので、Ｐ２Ｐによるファイル転送が不安定になるＮＡＴのような環境下で、より安定したファイル転送を可能にするＰ２Ｐファイル転送システム及び方法を提供する。
【００１２】
また、本発明は、Ｐ２Ｐファイル転送状態をモニタリングし、ファイル転送状態が不安定な場合、別のサーバーを通じてファイル転送を中継するＰ２Ｐファイル転送システム及び方法を提供する。
【００１３】
また、本発明は、Ｐ２Ｐをより様々なネットワーク環境に適用できるＰ２Ｐファイル転送システム及び方法を提供する。
【００１４】
それ以外の本発明の目的は、下記の説明から容易に理解されることができる。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明の一実施例によれば、ネットワークを介して接続したユーザークライアントの情報（該ユーザークライアントの情報は、ユーザーＩＤ情報及びアドレス情報を含む）を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するＰ２Ｐノード管理システムと、前記Ｐ２Ｐノード管理システムに接続した第１ユーザークライアント及び第２ユーザークライアント間の直接連結によるＰ２Ｐファイル送受信に失敗する場合、前記第１ユーザークライアント及び前記第２ユーザークライアント間のファイル送受信を中継するリレーサーバーと、を含むＰ２Ｐファイル転送システムが提供される。
【００１６】
また、本発明の他の実施例によれば、前記ユーザークライアントにはＰ２Ｐアプリケーションが設置され、前記Ｐ２Ｐアプリケーションは、接続時に、前記ユーザーＩＤ情報及び前記アドレス情報を前記Ｐ２Ｐノード管理システムに転送し、前記第１ユーザークライアント及び前記第２ユーザークライアント間の直接連結によるＰ２Ｐファイル送受信を試みることを特徴とするＰ２Ｐファイル転送システムが提供される。
【００１７】
また、本発明のさらに他の実施例によれば、前記第１ユーザークライアントが前記第２ユーザークライアントとのファイル送受信を要請する場合、前記リレーサーバーは、前記第１ユーザークライアントからファイル送受信要請情報を受信し、チャンネルを生成し、前記第１ユーザークライアントと前記第２ユーザークライアント間にファイル送受信に必要な情報を中継することを特徴とするＰ２Ｐファイル転送システムが提供される。
【００１８】
また、本発明のさらに他の実施例によれば、前記Ｐ２Ｐノード管理システムは、Ｐ２Ｐファイル共有システム、メッセンジャーファイル転送システム、インターネット電話システム、ゲームシステムのうちいずれか一つを含むことを特徴とするＰ２Ｐファイル転送システムが提供される。
【００１９】
また、本発明のさらに他の実施例によれば、前記ファイル送受信に必要な情報は、ユーザーＩＤ情報、公認ＩＰアドレス情報、公認ポート番号、私設ＩＰアドレス情報及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせであることを特徴とするＰ２Ｐファイル転送システムが提供される。
【００２０】
また、本発明のさらに他の実施例によれば、前記リレーサーバーは、前記チャンネルを介して前記第１ユーザークライアント及び前記第２ユーザークライアントのファイル送受信を中継することを特徴とするＰ２Ｐファイル転送システムが提供される。
【００２１】
また、本発明のさらに他の実施例によれば、前記リレーサーバーは、前記第１ユーザークライアントから前記第２ユーザークライアントとのファイル送受信要請を受ける場合、前記Ｐ２Ｐノード管理システムに、前記第２ユーザークライアントへのチャンネル招待メッセージ転送を要請し、前記Ｐ２Ｐノード管理システムは、前記リレーサーバーからの要請に応答して、チャンネル招待メッセージを前記第２ユーザークライアントに転送することを特徴とするＰ２Ｐファイル転送システムが提供される。
【００２２】
また、本発明のさらに他の実施例によれば、前記第１ユーザークライアントは、前記リレーサーバーに前記第２ユーザークライアントとのファイル送受信要請時に、前記第２ユーザークライアントのアドレス情報を提供し、前記リレーサーバーは、前記第２ユーザークライアントのアドレス情報を用いて前記第２ユーザークライアントにチャンネル招待メッセージを転送することを特徴とするＰ２Ｐファイル転送システムが提供される。
【００２３】
また、また、本発明の一実施例によれば、ネットワークを介して接続したユーザークライアントの情報（該ユーザークライアントの情報は、ユーザーＩＤ情報及びアドレス情報を含む）を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するＰ２Ｐノード管理システムと連動し、前記Ｐ２Ｐノード管理システムから接続されたユーザークライアントの情報を受信した第１ユーザークライアントのチャンネル生成要請に応答してチャンネルを生成するチャンネル生成モジュールと、前記チャンネルに参加した第１ユーザークライアント及び第２ユーザークライアント間の直接連結によるＰ２Ｐファイル転送に失敗する場合、前記チャンネルを介して前記第１ユーザークライアント及び前記第２ユーザークライアント間のファイル送受信を中継するファイル中継モジュールと、を含むリレーサーバーが提供される。
【００２４】
また、本発明の他の実施例によれば、前記チャンネル生成部により生成された前記チャンネルのうち、少なくとも一つの前記チャンネルのチャンネル情報を管理するチャンネル情報管理モジュールと、チャンネル生成を要請した前記第１ユーザークライアントが前記Ｐ２Ｐノード管理システムからの接続したユーザークライアントの情報を用いて指定した少なくとも一つの第２ユーザークライアントを前記チャンネルに招待するためのあらかじめ設定されたプロセスを行い、前記第２ユーザークライアントのチャンネル参加を処理するチャンネル参加処理モジュールと、をさらに含むことを特徴とするリレーサーバーが提供される。
【００２５】
また、本発明のさらに他の実施例によれば、前記チャンネル情報管理モジュールは、前記チャンネル生成時に与えられるチャンネルＩＤ情報、チャンネルに参加したユーザー数情報及びチャンネルに参加したユーザー情報を管理することを特徴とするリレーサーバーが提供される。
【００２６】
また、本発明のさらに他の実施例によれば、前記リレーサーバーは、前記チャンネルを介して第１ユーザークライアント及び第２ユーザークライアント間のファイル送受信に必要な情報を中継し、前記ファイル送受信に必要な情報は、公認ＩＰアドレス、公認ポート番号、私設ＩＰアドレス及び私設ポート番号のうちいずれか一つまたはこれらの組み合わせを含むことを特徴とする。
【００２７】
また、本発明のさらに他の実施例によれば、前記あらかじめ設定されたプロセスは、前記Ｐ２Ｐノード管理システムに前記第２ユーザークライアントへのチャンネル招待メッセージ転送を要請することであることを特徴とするリレーサーバーが提供される。
【００２８】
また、本発明のさらに他の実施例によれば、前記第１ユーザークライアントは、前記第２ユーザークライアントのアドレス情報を提供し、前記あらかじめ設定されたプロセスは、前記第２ユーザークライアントのアドレス情報を用いて前記第２ユーザークライアントに招待メッセージを転送することであることを特徴とするリレーサーバーが提供される。
【００２９】
また、本発明のさらに他の実施例によれば、前記生成されたチャンネルは、チャンネルに参加した第１ユーザークライアント及び第２ユーザークライアントが前記チャンネルを行った後、あらかじめ設定された時間が経過した後に終了することを特徴とするリレーサーバーが提供される。
【００３０】
また、また、本発明の一実施例によれば、ユーザーの要請に応答してチャンネルを生成する段階と、前記生成されたチャンネルを介してチャンネルに参加したユーザーが転送するＰ２Ｐファイル送受信に必要な情報を中継する段階と、チャンネルに参加したユーザー間の直接連結によるＰ２Ｐファイル転送に成功するか否かを判断する段階と、チャンネルに参加したユーザー間の直接連結によるＰ２Ｐファイル転送に失敗する場合、前記生成されたチャンネルを介してユーザー間のファイル転送を中継する段階と、を含むことを特徴とするファイル転送方法が提供される。
【００３１】
また、本発明の他の実施例によれば、前記Ｐ２Ｐファイル送受信に必要な情報は、公認ＩＰアドレス、公認ポート番号、私設ＩＰアドレス及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせを含むことを特徴とするファイル転送方法が提供される。
【００３２】
また、本発明のさらに他の実施例によれば、チャンネルを生成したユーザーが指定した他のユーザーをチャンネルに招待するためにチャンネル招待メッセージを生成する段階をさらに含み、前記チャンネル招待メッセージは、Ｐ２Ｐノードを管理するシステムに転送され、前記Ｐ２Ｐノードを管理するシステムは、該当のユーザーに招待メッセージを転送することを特徴とするファイル転送方法が提供される。
【００３３】
また、本発明のさらに他の実施例によれば、チャンネルを生成したユーザーが指定した他のユーザーをチャンネルに招待するためにチャンネル招待メッセージを生成する段階をさらに含み、前記他のユーザーのアドレス情報は、チャンネルを生成したユーザーから提供され、前記チャンネル招待メッセージは、前記アドレス情報に基づいて該当のユーザーに転送されることを特徴とするファイル転送方法が提供される。
【発明を実施するための最良の形態】
【００３４】
上記の目的、特徴及び長所は、添付の図面に基づく下記の詳細な説明から明確になる。
【００３５】
本発明は、様々な変更を加え、様々な実施例が得られるので、以下では、特定実施例を図面に例示し、その詳細について説明する。ただし、下記の実施例は、本発明を特定の形態に限定するためのものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物または代替物はいずれも本発明に含まれるものとして理解すべきである。なお、下記の説明において、関連する公知の技術についての具体的な説明が、本発明の要旨を曖昧にすると判断される場合には、その詳細な説明を省略する。
【００３６】
“第１”及び“第２”などの用語は、様々な構成要素を説明するのに使われることができるが、これらの用語によって構成要素が限定されることはない。これらの用語は、単に、ある構成要素を他の構成要素から区別する目的にのみ使用することができる。例えば、本発明の権利範囲を逸脱しない限度内で、第１構成要素は第２構成要素と命名されることができ、同様に、第２構成要素も第１構成要素と命名されることができる。“及び／または”という用語は、複数の記載された関連項目の組み合わせまたは複数の記載された関連項目のいずれかの項目を含む。
【００３７】
ある構成要素が他の構成要素に“連結されている”または“接続されている”と言及された時には、該当の他の構成要素に直接的に連結されていたりまたは接続されている場合の他にも、中間に他の構成要素が存在する場合も含まれるものとして理解すべきである。一方、ある構成要素が他の構成要素に“直接連結されている”または“直接接続されている”と言及された時には、中間に他の構成要素が存在しないものと理解すべきである。
【００３８】
本出願で使用した用語は、単に、特定の実施例を説明するためのもので、本発明を限定するためのものではない。なお、単数の表現は、文脈上、明白に別途に言及しない限り、複数の表現をも含む。本出願でいう“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在するということを示すためのもので、１つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性をあらかじめ排除するものではない。
【００３９】
別に定義されない限り、技術的または科学的な用語を含め、ここで用いられる全ての用語は、本発明の属する技術分野における通常の知識を持つ者が一般的に理解できるものと同じ意味を有している。一般的に使われる辞書に定義されているような用語は、関連技術の文脈上に一致する意味を有するように解釈されるべきであり、本出願で明白に定義しない限り、理想的にまたは過度に形式的な意味として解釈されてはいけない。
【００４０】
以下、添付の図面を参照しつつ、本発明によるＰ２Ｐファイル転送システム及び方法の実施例について詳細に説明する。
【００４１】
図１は、本発明の一実施例によるＰ２Ｐファイル転送システムの構成を示す図である。
【００４２】
図１を参照すると、本発明の一実施例によるＰ２Ｐファイル転送システムは、Ｐ２Ｐノード管理システム１００及びリレーサーバー１０２を含むことができる。Ｐ２Ｐファイル転送システムには、複数のユーザークライアント１０４，１０６，１０８がネットワークを介して通信を行う。
【００４３】
Ｐ２Ｐノード管理システム１００は、Ｐ２Ｐファイル転送サービスを提供し、Ｐ２Ｐ転送のために接続したユーザークライアントノードを管理するシステムで、様々な形態のＰ２Ｐサービスシステムをいずれも含むことができる。一例として、Ｐ２Ｐノード管理システム１００は、他のユーザーと会話をしながら同じ会話チャンネルに属するユーザーとのＰ２Ｐファイル転送を提供するメッセンジャーシステムがある。他の例として、Ｐ２Ｐノード管理システム１００は、各ユーザーが、あらかじめ設定された共有フォルダに保存されたファイル情報を閲覧でき、共有フォルダのファイルのうち、選択されたファイルに対する交換サービスを提供する典型的なＰ２Ｐファイル共有システムであってもよい。さらに他の一例として、Ｐ２Ｐノード管理システム１００は、ユーザー間の音声データを交換するインターネット電話サービスシステムであってもよい。さらに他の例として、Ｐ２Ｐノード管理システム１００は、複数のユーザーがゲームデータを交換するオンラインゲームサービスシステムであってもよい。Ｐ２Ｐノード管理システム１００には、上記のシステムの他にも、Ｐ２Ｐを用いた様々な種類のサービスシステムが含まれることができる。
【００４４】
Ｐ２Ｐノード管理システム１００は、接続したユーザー情報を管理し、特定ユーザーが、接続したユーザーの情報を要請する場合、接続したユーザーの情報を提供する。ここで、接続したユーザー情報には、ユーザーＩＤ情報及びアドレス情報が含まれることができる。ユーザークライアント１０４，１０６，１０８に設置されたＰ２Ｐアプリケーション１１０は、ユーザークライアントがオンになるとき、または、Ｐ２Ｐアプリケーション１１０の実行のときに、ユーザーＩＤ情報及びアドレス情報をＰ２Ｐノード管理システム１００に転送し、Ｐ２Ｐノード管理システム１００は、受信した情報を管理する。
【００４５】
メッセンジャーシステムでＰ２Ｐファイル転送サービスを提供する場合、ユーザークライアント１０４，１０６，１０８に設置されるＰ２Ｐアプリケーション１１０は、メッセンジャーアプリケーションである。通常的なＰ２Ｐファイル共有システムの場合、ユーザークライアント１０４，１０６，１０８に設置されるＰ２Ｐアプリケーション１１０は、Ｐ２Ｐファイル共有アプリケーションである。
【００４６】
ユーザークライアントは、ネットワークを介した通信が可能であり、デジタルデータ処理が可能な端末機であれば、いかなる形態の端末機も含むことができる。例えば、ユーザークライアントは、一般的なＰＣ、ノートブック、携帯電話、ＰＤＡなどをいずれも含むことができる。ここで、ネットワークは、一般的なインターネット網、私設網のような有線ネットワークはもとより、移動通信網、無線インターネット網のような無線ネットワークも含むことができる。
【００４７】
上記従来技術で説明したように、既存のＰ２Ｐファイル転送システムでは、ファイル送信者とファイル受信者がいずれもＮＡＴを使用する場合、正常なファイル送受信ができない場合がある。また、ファイル転送者とファイル受信者のいずれかのユーザーがＮＡＴを使用する場合にも、正常なファイル送受信ができない場合が度々あった。外部的に公開される公認ＩＰ（Ｐｕｂｌｉｃ  ＩＰ）とシステム内部における私設ＩＰ（Ｐｒｉｖａｔｅ  ＩＰ）が別個に管理されるＮＡＴを用いたシステムは、保安上には有利であるが、Ｐ２Ｐサービスが円滑に支援されないという問題点があった。
【００４８】
本発明では、上記のＮＡＴを用いたシステムの他、その他のＰ２Ｐファイル転送がス安定になるシステムにおける円滑なファイル転送のためにリレーサーバー１０２をさらに含むことができる。
【００４９】
リレーサーバー１０２は、ファイル送信者とファイル受信者間にチャンネルを生成し、生成されたチャンネルを介してファイル転送者と受信者間のファイル転送を中継する機能を果たす。リレーサーバー１０２は、ＮＡＴシステムなどによってファイル転送者とファイル受信者間のＰ２Ｐファイル転送が不可能な場合、チャンネルを介してファイル送信者から転送されるファイルをファイル受信者に提供する。
【００５０】
したがって、本発明の実施例によれば、Ｐ２Ｐアプリケーション１１０は、ファイル送信者とファイル受信者間に、Ｐ２Ｐによる直接ファイル転送が正常に行われるか否かを判断する。その判断結果、正常なファイル転送が行われない場合には、Ｐ２Ｐによるファイル転送ではなく、リレーサーバー１０２によるファイル中継が自動的に行われるようにする。
【００５１】
本発明の一実施例によれば、ユーザークライアントに設置されるＰ２Ｐアプリケーション１１０は、ファイル交換のための相手クライアントとＰ２Ｐによる直接ファイル転送を試みる。そして、ＮＡＴなどによってＰ２Ｐファイル転送に失敗すると、Ｐ２Ｐアプリケーション１１０は、リレーサーバー１０２を介したファイル中継を要請し、要請に応じてリレーサーバー１０２によるファイル中継手順が行われる。
【００５２】
本発明の実施例によれば、ユーザー間のファイル転送のためのアドレス情報などの交換は、リレーサーバー１０２を介して行われる。一般的なＰ２Ｐシステムで、Ｐ２Ｐファイル転送のためのアドレス情報などは、Ｐ２Ｐノード管理システムから提供され、Ｐ２Ｐノード管理システムから提供した情報によってＰ２Ｐアプリケーション１１０間の通信を介してファイル転送が行われる。本発明の実施例によれば、リレーサーバー１０２で生成されたチャンネルを介してファイル転送のためのアドレス情報及びその他の付加的な情報が交換されることができる。チャンネルを介してＰ２Ｐファイル転送のためのアドレス情報が交換されると、ファイル送信者及びファイル受信者のクライアントに設置されたＰ２Ｐアプリケーション１１０は、直接連結によるファイル転送を試みる。この直接連結によるファイル転送に失敗する場合、リレーサーバー１０２によるファイル中継手順が行われる。ここで、直接連結によるファイル転送の失敗は、クライアント間の連結設定に失敗する場合、連結設定には成功したがファイル送受信ができない場合、及びあらかじめ設定された速度以下の速度でファイルが送受信される場合をいずれも含むことができる。
【００５３】
上記のＰ２Ｐファイル転送システムは、様々なＰ２Ｐ転送に適用されることができるが、説明の便宜上、以下では、本発明のＰ２Ｐファイル転送システムがメッセンジャーにおけるＰ２Ｐファイル転送に適用される場合を取り上げて説明する。
【００５４】
図２は、本発明に適用されるシステムがメッセンジャーシステムである場合のＰ２Ｐファイル転送システムの構成を示す図である。
【００５５】
図２を参照すると、メッセンジャーシステムが適用されたＰ２Ｐファイル転送システムは、ゲートウェイモニタリングサーバー２００、メッセンジャー中央サーバー２０２、メッセージキューサーバー２０４、リレーサーバー１０２及びインスタントメッセージサーバー２０８を含むことができる。ユーザークライアント２１０，２１２には、Ｐ２Ｐアプリケーション２５０，２５２が設置される。前述の如く、メッセンジャーシステムにおけるＰ２Ｐアプリケーションは、メッセンジャーアプリケーションとすることができる。
【００５６】
ゲートウェイモニタリングサーバー２００は、ユーザークライアント２１０，２１２が初期にメッセンジャー転送システムに接続すると、接続要請を処理し、ユーザークライアント２１０，２１２が接続する中央サーバーのアドレス情報を提供する。ユーザーが初期にログインする場合、ユーザーのログイン要請は、ゲートウェイモニタリングサーバー２００に転送され、ゲートウェイモニタリングサーバー２００は、ユーザーのログイン要請を処理した後、処理情報をメッセンジャー中央サーバー２０２に伝達する。
【００５７】
メッセンジャー中央サーバー２０２は、インスタントメッセージ転送動作を全体的に制御するサーバーで、ユーザークライアント２１０，２１２の接続を管理し、クライアントが転送したメッセージ及びその他要請情報を処理する。一般的なメッセージがメッセンジャー中央サーバー２０２に転送されてくる場合、メッセンジャー中央サーバー２０２は、転送されてきたメッセージをインスタントメッセージサーバー２０８に転送する。
【００５８】
ユーザーがインスタントメッセージを転送する場合、インスタントメッセージは、メッセージキューサーバー２０４に転送される。メッセージキューサーバー２０４は、インスタントメッセージを受信すると、メッセージパケットをキューに保存し、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎｐｕｔ  Ｆｉｒｓｔ  Ｏｕｔｐｕｔ）方式でメッセージを抽出する。メッセージキューサーバー２０４は、抽出したメッセージにビジネスロジックを行った後、該メッセージをメッセンジャー中央サーバー２０２に伝達する。ここで、メッセージキューサーバー２０４が行うビジネスロジックは、禁じられたメッセージ（例えば、悪口等）のフィルタリング、またはパケットを伝達するサーバーの決定などを含むことができる。
【００５９】
インスタントメッセージサーバー２０８は、ユーザークライアント２１０，２１２間のインスタントメッセージングセッションを管理し、ユーザークライアント２１０，２１２間に転送するメッセージパケットを中継する機能を行う。インスタントメッセージサーバー２０８は、メッセンジャー中央サーバー２０２からメッセージパケットを受け取った後、これを受信者クライアントに転送する。
【００６０】
メッセンジャーサービスにおいて、ユーザーは、他のユーザーとの会話を用いた会話窓を介してファイルの転送を行う。リレーサーバー１０２は、ユーザーが会話窓を介してファイルの転送を要請する場合、ユーザーがファイル転送のために必要な情報を相互間に交換するためのチャンネルを生成する。ここで、ファイル転送のために必要なユーザー情報は、相手ユーザーＩＤ情報及びアドレス情報（ＩＰアドレス、ポート番号）を含むことができる。図２で、第１ユーザークライアント２１０がファイル転送者であり、第２ユーザークライアント２１２がファイル受信者である場合、第１ユーザークライアント２１０のＰ２Ｐアプリケーション２５０は、リレーサーバーにチャンネル生成を要請する。これに応答してリレーサーバー１０２はチャンネルを生成し、第２ユーザークライアント２１２に招待メッセージを提供し、第２ユーザークライアント２１２がチャンネルに参加できるようにする。このとき、第２ユーザークライアント２１２のアドレス情報はメッセンジャー中央サーバー２０２により管理されるので、リレーサーバー１０２がメッセンジャー中央サーバー２０２にファイル受信者を招待することを要請すると、メッセンジャー中央サーバー２０２は、第２ユーザークライアント２１２に招待メッセージを転送することができる。
【００６１】
前述の如く、ファイル送信者の第１ユーザークライアント２１０とファイル受信者である第２ユーザークライアント２１２のＰ２Ｐアプリケーション２５０，２５２は、通信を介して直接連結によるＰ２Ｐファイル転送を試み、直接連結によるＰ２Ｐファイル転送の可否を判断する。そして、直接連結によるＰ２Ｐファイル転送が可能でない場合、リレーサーバー１０２は、当該生成されたチャンネルを介して第１ユーザークライアント２１０と第２ユーザークライアント２１２間のファイル転送を中継する。
【００６２】
図３は、本発明の一実施例によるリレーサーバー１０２のモジュール構成を示すブロック図である。
【００６３】
図３を参照すると、本発明の一実施例によるリレーサーバー１０２は、リスナー３００、リーダー３０２、ハンドラー３０４及びライター３０６を含むことができ、ハンドラーは、チャンネル生成モジュール３１０、チャンネル管理モジュール３１２、チャンネル参加処理モジュール３１４及びファイル中継モジュール３１６を含むことができる。
【００６４】
リスナー３００は、リレーサーバー１０２にパケットが伝達されるか否かをモニタリングし、パケットが伝達されると、これをリーダー３０２に伝達する。リスナー３００に伝達されるパケットは、チャンネル生成要請パケット、チャンネル参加要請パケット及びファイルデータパケット及びその他様々な制御メッセージパケットなどを含むことができる。リスナーとユーザークライアントはソケット通信を行うことができ、ＴＣＰプロトコルによる通信を行うことができる。
【００６５】
リーダー３０２は、リスナー３００で受信したパケットを読み取り、ハンドラー３０４に提供する。
【００６６】
ハンドラー３０４は、リーダー３０２からパケットが伝達される場合、パケットの種類によって予め設定されたビジネスロジックを行う。
【００６７】
チャンネル生成モジュール３１０は、リーダー３０２から転送されるパケットがチャンネル生成を要請するパケットである場合、チャンネルを生成する機能を行う。ここで、チャンネルは、チャンネルに参加したユーザーが転送するデータが交換される論理的な空間を意味する。従来のＰ２Ｐシステムでは、Ｐ２Ｐノード管理システム１００から、ファイルを交換するユーザーのアドレス情報を一方的に提供したが、本発明によれば、リレーサーバー１０２が、ファイル転送のための初期情報の交換のためにチャンネルを生成する。
【００６８】
チャンネル生成際に、チャンネル生成モジュール３１０は、チャンネルに固有のチャンネルＩＤ情報を与える。チャンネル生成を要請するパケットには、チャンネル生成を要請するユーザー情報が含まれており、チャンネル生成を要請したユーザーは、チャンネル生成時に自動的に該当のチャンネルに参加する。
【００６９】
チャンネル管理モジュール３１２は、リレーサーバーで生成された複数のチャンネルのそれぞれの情報を管理する機能を果たす。
【００７０】
図５は、本発明の一実施例によるチャンネル管理モジュールで管理するチャンネル管理データの構造を示す図である。
【００７１】
図５を参照すると、本発明の一実施例によるチャンネル管理データは、チャンネルＩＤ５００、最大ユーザー数５０２、参加したユーザー数５０４及び参加したユーザー情報５０６を含む。
【００７２】
チャンネルＩＤ５００は、チャンネルが生成される時に、チャンネル生成モジュール３１０が、生成されたチャンネルに固有に与えるＩＤである。チャンネルに参加したユーザーが送受信するパケットには、チャンネルＩＤ５００に関する情報が含まれる。
【００７３】
最大ユーザー数５０２は、チャンネルに参加可能なユーザー数の最大値であり、チャンネル生成時に設定される。チャンネル生成者の要請に応じて最大ユーザー数５０２は変更されてもよい。
【００７４】
参加したユーザー数５０４は、現在チャンネルに参加しているユーザーの数で、ユーザーのチャンネルへの出入りによって変更される。
【００７５】
参加したユーザー情報５０６は、チャンネルに参加しているユーザーに関する情報である。ここで、ユーザー情報は、各ユーザーのアドレス情報及びユーザーＩＤ情報を含むことができる。
【００７６】
チャンネル参加処理モジュール３１４は、ファイル送受信のための相手ユーザーを招待し、相手ユーザーのチャンネル参加を処理する機能を果たす。チャンネルを生成したユーザーが、チャンネルに招待するユーザーを指定した場合、チャンネル参加処理モジュール３１４は、該当のユーザーのチャンネルへの招待のために、あらかじめ設定されたプロセスを行う。例えば、メッセンジャーシステムにおいては、チャンネル参加処理モジュール３１４は、メッセンジャー中央サーバー２０２に、該当のユーザーにチャンネル招待メッセージを転送することを要請することができる。
【００７７】
メッセンジャー中央サーバー２０２からチャンネル招待メッセージを受信したユーザーが招待に応答してチャンネル参加を要請した場合、チャンネル参加処理モジュール３１４は、そのチャンネル参加を受諾する。
【００７８】
招待を受けたユーザーのチャンネル参加要請メッセージには、当該ユーザーのユーザー情報が含まれている。
【００７９】
図４は、本発明の一実施例によるユーザー情報データの構造を示す図である。
【００８０】
図４を参照すると、本発明の一実施例によるユーザー情報データは、チャンネルＩＤ４００、ユーザーＩＤ４０２、公認ＩＰ４０４、公認ポート４０６、私設ＩＰ４０８及び私設ポート４１０の情報を含む。
【００８１】
ユーザー情報データは、ユーザーが私設ＩＰ及び私設ポートを使用するときには私設ＩＰ４０８及び私設ポート４１０情報を含み、これらの情報を、公認ＩＰ及び公認ポートのみを使用する場合には含まない。一般的に、ＮＡＴを利用する場合には、ユーザー情報データには私設ＩＰ及び私設ポート情報が含まれる。
【００８２】
チャンネル招待メッセージには、図４のようなユーザー情報が含まれる。チャンネル招待メッセージを介して招待を受けたユーザーは、招待をしたユーザーの情報を確認する。招待を受けたユーザーからのチャンネル参加要請メッセージにも、図４のようなユーザー情報が含まれるので、招待をしたユーザーも、招待を受けたユーザーの情報を確認することができる。
【００８３】
ファイル中継モジュール３１６は、チャンネルに参加したユーザー間のファイル転送を中継する機能を果たす。ファイル転送は、チャンネルに参加したユーザー間のファイル転送要請及びファイル転送受諾の手順を経た後に行われ、このようなファイル転送要請及びファイル転送受諾情報もまた、ファイル中継モジュール３１６によって中継されることができる。前述の如く、ファイル転送要請によるファイル転送受諾がなされた後、ユーザークライアントの直接連結によるファイル転送が試みられ、直接連結によるファイル転送に失敗する場合、ファイル中継モジュール３１６が、チャンネルに参加したユーザー間のファイル転送を中継する。
【００８４】
ライター３０６は、ハンドラー３０４によって処理されたデータを出力する。例えば、招待を受けたユーザーがチャンネル参加を要請する場合、ハンドラー３０４は、当該ユーザーのチャンネル参加を受諾し、当該ユーザーのチャンネル参加情報をライター３０８に出力し、ライター３０８は、招待を受けたユーザーのチャンネル参加情報を、招待をしたユーザーに転送する。
【００８５】
図６は、本発明の一実施例による一般的なＰ２Ｐファイル共有システムが適用されたＰ２Ｐファイル転送システムの構成を示す図である。
【００８６】
図６を参照すると、一般的なＰ２Ｐファイル共有システムが適用される場合の本発明の一実施例によるＰ２Ｐファイル転送システムは、ユーザー管理サーバー６００、ファイル情報提供サーバー６０２及びリレーサーバー１０２を含むことができる。図２と同様に、ユーザークライアントにはＰ２Ｐアプリケーション６５０，６５２が設置される。図２で、ユーザー管理サーバー６００及びファイル情報提供サーバー６０２は、図１のＰ２Ｐノード管理システム１００に該当する。
【００８７】
ユーザー管理サーバー６００は、Ｐ２Ｐファイル共有システムに接続したユーザーのアドレス情報と、各ユーザーが共有するファイル情報とを管理する機能を果たす。ユーザークライアント６０６，６０８に設置されたＰ２Ｐアプリケーション６５０，６５２は、クライアント６０６，６０８の電源が入ったり、Ｐ２Ｐアプリケーション６５０，６５２がユーザーにより実行される場合、自動的にクライアントのアドレス情報と該当クライアントが共有するファイル情報をユーザー管理サーバーに転送する。また、Ｐ２Ｐアプリケーション６５０，６５２は、クライアント６０６，６０８の電源が切られたり、Ｐ２Ｐアプリケーション６５０，６５２が終了したりする場合、終了信号をユーザー管理サーバー６００に転送し、ファイル共有が不可能な状態であるということを知らせる。ユーザー管理サーバー６００は、終了信号を受信すると、該当のユーザーのアドレス情報及び共有ファイル情報を削除する。
【００８８】
ファイル情報提供サーバー６０２は、ファイルを受信しようとするユーザーが要請したファイルを有している他のユーザーの情報を提供し、ファイル送信者とファイル受信者のＰ２Ｐファイル交換を制御する。例えば、ユーザーが映画‘ムーランルージュ’の動映像ファイルを要請した場合、ファイル情報提供サーバー６０２は、ユーザー管理サーバー６００との通信を介して、映画‘ムーランルージュ’の動映像ファイルを共有ファイルとして保存しているユーザークライアントの情報（ユーザーＩＤ情報及び簡略なアドレス情報を含むことができる）を提供する。
【００８９】
映画‘ムーランルージュ’を保存しているユーザークライアントの情報を受信したユーザークライアント６０６，６０８に設置されたＰ２Ｐアプリケーション６５０，６５２は、リレーサーバー１０２を介して、ユーザーが選択した特定クライアントとファイル転送のために必要な情報を交換する。前述の如く、リレーサーバーにチャンネルを生成し、相手ユーザーのユーザーＩＤ情報及び詳細なアドレス情報（ＩＰアドレス、ポート番号、私設ＩＰアドレス、私設ポートアドレス）を交換する。
【００９０】
メッセンジャーシステムにおけると同様に、直接ファイル転送の可否は、ファイル送信者とファイル受信者のＰ２Ｐアプリケーション間の通信を通じて判断される。直接ファイル転送が可能でない場合、リレーサーバー１０２は、ファイル受信者とファイル送信者間のファイル転送を中継する。
【００９１】
図６のような一般的なＰ２Ｐファイル共有システムに本発明が適用される場合にも、図３に示すリレーサーバーの構成、図４に示すユーザー情報構成及び図５に示すチャンネル情報構成は、同一に適用可能である。
【００９２】
ただし、メッセンジャーシステムでは、まず、一般的にファイル送信者によりリレーサーバー１０２にチャンネルが生成されるが、図６のようなシステムが使用される場合には、まずファイル受信者がファイルの転送を要請するので、ファイル受信者によりリレーサーバー１０２にチャンネルが生成されることができる。
【００９３】
本発明の他の実施例によれば、図６のようなＰ２Ｐファイル共有システムでは、ファイル送受信に必要な情報がリレーサーバー１０２のチャンネルを介して交換されなくても良い。Ｐ２Ｐファイル共有システムでは、ユーザーが特定ファイルのダウンロードを要請すると、該当のファイルを有するユーザーとのＰ２Ｐ接続のためのアドレス情報が提供されることができる。したがって、ファイル提供サーバー６０２によりファイル送受信に必要な相手ユーザーのユーザーＩＤ情報及び詳細なアドレス情報（ＩＰアドレス、ポート番号、私設ＩＰアドレス、私設ポートアドレス）が提供されても良い。
【００９４】
この場合、ファイルを送受信しようとするユーザーは、ファイル提供サーバー６０２から受信した相手ユーザーのユーザーＩＤ情報及び詳細なアドレス情報を用いてＰ２Ｐ接続を行い、ファイルの送受信を試みる。
【００９５】
ファイル送受信に必要な情報がファイル提供サーバー６０２から提供されるので、上記の他の実施例によれば、リレーサーバー１０２は、直接連結によるＰ２Ｐファイル送受信に失敗する場合、ファイル送受信中継手順のみを行う。ユーザークライアントに設置されたＰ２Ｐアプリケーションは、直接連結によるＰ２Ｐファイル転送に失敗する場合、リレーサーバー１０２にファイルの中継を要請し、リレーサーバー１０２はチャンネルを生成し、ファイルの送受信を中継する。
【００９６】
図７は、本発明の一実施例によるＰ２Ｐファイル転送方法の全体的な流れを示すフローチャートである。
【００９７】
図７を参照すると、ユーザーが特定ファイルの転送を要請する場合、リレーサーバーのチャンネル生成モジュール３１０は、ファイル転送のためのチャンネルを生成する（Ｓ７００）。
【００９８】
チャンネルは、ファイル送信者またはファイル受信者のいずれか一方の要請に応じてチャンネル生成モジュール３１０が生成することができる。例えば、図２に示すメッセンジャーシステムでは、ファイルを転送しようとするユーザーがまずファイル転送動作を開始するので、ファイル送信者の要請によってチャンネルが生成されることができる。
【００９９】
図６に示す一般的なＰ２Ｐファイル交換システムでは、ファイル受信者が特定ファイルの転送を要請しながらファイル転送動作を開始するので、ファイル受信者の要請によってチャンネルが生成されることができる。
【０１００】
リレーサーバーで生成可能なチャンネルの数は、リレーサーバーが受け入れ可能なコネクション（ｃｏｎｎｅｃｔｉｏｎ）の数によって決定され、通常、リレーサーバーが受け入れ可能なコネクションの数の１／２になることができる。
【０１０１】
リレーサーバー１０２にチャンネルが生成されると、チャンネル参加処理モジュール３１４は、ファイル交換のための相手ユーザーを招待する（Ｓ７０２）。ファイル交換のための相手の情報は、チャンネルを生成したユーザーにより提供される。リレーサーバーは、相手のアドレス情報を有している他のサーバーを経由して招待メッセージを転送したり、相手のアドレス情報を有している他のサーバーから相手のアドレス情報を受信し、該当のユーザーに直接招待メッセージを転送する。図２の場合では、相手のアドレス情報を有している他のサーバーが、メッセンジャー中央サーバー２０２になることができる。図６の場合では、相手のアドレス情報を有している他のサーバーが、ユーザー管理サーバー６００になることができる。もちろん、相手のアドレス情報は、チャンネルを生成したユーザーにより提供されるか、または、リレーサーバーが自体的に管理しても良く、この場合、チャンネル参加処理モジュール３１２は、招待メッセージを該当のユーザーに直接転送する。
【０１０２】
ファイル交換のための相手が招待メッセージに応答してチャンネルに参加すると、ファイル送信者及びファイル受信者のクライアントに設置されたＰ２Ｐアプリケーションは、直接連結によるファイル転送を試みる（Ｓ７０４）。
【０１０３】
本発明の一実施例によれば、直接連結によるファイル転送は、２つの段階を含むことができる。
【０１０４】
その第一の段階では、Ｐ２Ｐアプリケーションが、一般的なＰ２Ｐ接続と同様に、ファイル送信者とファイル受信者間にＴＣＰ接続を介してファイル転送を試みる。
【０１０５】
この第一の段階に失敗する場合、第二の段階で、Ｐ２Ｐアプリケーションは、ＵＤＰホールパンチング（Ｈｏｌｅ  Ｐｕｎｃｈｉｎｇ）によるファイル転送を試みる。ＵＤＰホールパンチングは、Ｐ２Ｐアプリケーションがミドルボックスを経由するようにホールパンチングを試みた後、互いに直接連結されるようにする方式である。
【０１０６】
ＴＣＰ接続またはＵＤＰホールパンチングによる連結が成功的に設定され、ファイル転送に成功する場合、直接連結により継続してファイルが転送される（Ｓ７０８）。
【０１０７】
一方、ＴＣＰ連結またはＵＤＰホールパンチングによるファイル転送に失敗すると、リレーサーバー１０２のファイル中継モジュール３１６は、生成されたチャンネルを介してファイル転送を中継する（Ｓ７１０）。ファイル送信者は、リレーサーバーにファイルを転送し、リレーサーバーは、ファイル送信者の属したチャンネルに参加した他のユーザーに、受信したファイルを転送する。ファイル送信者とファイル受信者は、リレーサーバーのチャンネル参加時にリレーサーバーとＴＣＰ連結を設定し、ＴＣＰ／ＩＰ方式によってリレーサーバーと通信することができる。ファイル中継が完了すると、生成されたチャンネルは削除される（Ｓ７１２）。
【０１０８】
図８は、本発明の一実施例によるリレーサーバー１０２にチャンネルが生成され、ファイル送受信のためのユーザーが参加する過程を示すフローチャートである。
【０１０９】
図８を参照すると、ファイルを転送または受信しようとするユーザー（ファイル送信者）のクライアントは、リレーサーバー１０２にチャンネルの生成を要請する（ステップＳ８００）。チャンネル生成要請情報には、図４に示すようなユーザー情報が含まれている。
【０１１０】
ユーザーのチャンネル生成要請情報に応答してリレーサーバー１０２のチャンネル生成モジュール３１０はチャンネルを生成し、生成されたチャンネルに固有のＩＤを与える（ステップＳ８０２）。
【０１１１】
チャンネルが生成されると、チャンネルを生成したユーザーは、リレーサーバー１０２にファイル送受信のための相手ユーザーの招待を要請する（ステップＳ８０４）。招待要請情報には、相手ユーザーのユーザーＩＤ情報が含まれることができる。
【０１１２】
リレーサーバー１０２のチャンネル参加処理モジュール３１４は、相手ユーザーのＩＤを他のサーバー（図２のシステムではメッセンジャー中央サーバー２０２、図６のＰ２Ｐファイル共有システムではユーザー情報管理サーバー６００）に転送し、当該ユーザーの招待を要請する（ステップＳ８０６）。
【０１１３】
もちろん、相手ユーザーのアドレス情報がチャンネル生成者から提供されそのアドレスを知っている場合には、リレーサーバー１０２が直接招待メッセージを転送することができる。
【０１１４】
例えば、図２に示すメッセンジャーシステムでは、リレーサーバー１０２は、特定ＩＤのユーザーを招待することをメッセンジャー中央サーバー２０２に要請し、メッセンジャー中央サーバー２０２は、当該ＩＤを持つユーザーに招待メッセージを転送する。これと違い、メッセンジャーシステムにおいて、ファイル送信者は、ファイル受信者のＩＰアドレスのようなアドレス情報をリレーサーバー１０２に提供でき、リレーサーバー１０２は、ファイル受信者のＩＰアドレスに招待メッセージを直接転送してもよい。
【０１１５】
リレーサーバー１０２から前記招待要請を受けたサーバー（図２のシステムではメッセンジャー中央サーバー２０２、Ｐ２Ｐファイル共有システムではユーザー情報管理サーバー６００）は、リレーサーバー１０２からの要請情報に応じて招待メッセージをファイル受信者クライアントに転送し（ステップＳ８０８）、招待メッセージを受信したファイル受信者クライアントは、チャンネル参加要請情報をリレーサーバー１０２に転送する（ステップＳ８１０）。チャンネル参加要請情報には、招待を受けたユーザーの図４のようなユーザー情報が含まれる。
【０１１６】
招待を受けたユーザーのチャンネル参加要請情報を受信したリレーサーバー１０２のチャンネル参加処理モジュール３１４は、当該ユーザーのチャンネル参加を受諾し（ステップＳ８１２）、チャンネル参加情報を、チャンネルを生成したファイル送信者クライアントに転送する（ステップＳ８１４）。チャンネル参加情報には、チャンネルに参加した相手ユーザーの情報が含まれている。
【０１１７】
図８のような過程により、ファイルを送受信しようとするユーザーは、リレーサーバー１０２の同じチャンネルに参加し、相手ユーザーの公認ＩＰアドレス、公認ポート番号、私設ＩＰアドレス及び私設ポート番号を確認することができる。
【０１１８】
図９は、本発明の一実施例によるチャンネル生成後のファイル転送方法を示すフローチャートである。
【０１１９】
図９を参照すると、ファイルを転送しようとするユーザーは、リレーサーバー１０２にファイル転送要請情報を転送する（ステップＳ９００）。ファイル転送要請情報には、転送しようとするファイル名とファイルサイズ情報が含まれることができる。リレーサーバー１０２のファイル中継モジュール３１６は、ファイル転送要請情報をファイル受信者クライアントに転送する（ステップＳ９０２）。
【０１２０】
ファイル受信者クライアントは、ファイル転送を受諾し（ステップＳ９０４）、ファイル転送受諾情報は、ファイル中継モジュール３１６を介して、ファイルを転送しようとするユーザーに転送される（ステップＳ９０６）。
【０１２１】
Ｓ９００〜Ｓ９０６は、まずファイルを転送しようとするユーザーがファイル転送動作を開始する図２のメッセンジャーシステムを挙げて説明した。しかし、ファイルを受信しようとするユーザーがまずファイル転送を要請する図６のＰ２Ｐファイル共有システムでは、ファイル受信者がファイル転送を要請することができる。
【０１２２】
ファイル送受信者がファイル送受信に同意した場合、ファイル送受信者のクライアント間の直接連結による転送が試みられる（ステップＳ９０８）。ファイル送信者のクライアントとファイル受信者のクライアントは、ＴＣＰコネクションを設定し、設定されたコネクションを介してファイル転送を試みる。
【０１２３】
ＴＣＰ連結によるファイル転送に成功する場合（ステップＳ９１０）、設定されたＴＣＰコネクションを介してファイル転送を継続して行う（ステップＳ９１２）。本発明の一実施例によれば、ファイルがファイル送信者クライアントからファイル受信者クライアントに転送されないか、あらかじめ設定された臨界値以下の速度で送信者クライアントから受信者クライアントに転送される場合、ファイル転送に失敗したと判断する。
【０１２４】
直接ＴＣＰコネクションを設定してファイルを転送するのに失敗した場合、ＵＤＰホールパンチングが試みられる（ステップＳ９１４）。ＵＤＰホールパンチングにより正常にファイルが転送される場合（ステップＳ９１６）、ＵＤＰホールパンチングで設定されたコネクションによりファイル転送を継続して行う（ステップＳ９１８）。
【０１２５】
ファイル送信者クライアントに設置されたＰ２Ｐアプリケーションは、ＴＣＰ直接接続及びＵＤＰホールパンチングによるファイル転送に失敗する場合、リレーサーバー１０２のファイル中継モジュール３１６にファイル中継を要請し、ファイルデータを転送する（ステップＳ９２０）。転送されるファイルデータのヘッダ情報にはチャンネルＩＤ情報が含まれ、リレーサーバー１０２は、チャンネルＩＤに相応するチャンネルを介して、当該チャンネルに参加したファイル受信者クライアントにファイルを転送する（ステップＳ９２２）。
【０１２６】
ファイル転送が完了すると、ファイル送信者クライアントとファイル受信者クライアントはチャンネルから出る（ステップＳ９２４）。ユーザーがチャンネルから全て出ると、リレーサーバー１０２は、生成されたチャンネルを終了する（ステップＳ９２６）。本発明の実施例によれば、ファイルを送受信したユーザーが他のファイルを送受信することもできるので、ユーザーがチャンネルを出てから一定時間チャンネルを維持した後、チャンネルを終了することができる。
【０１２７】
以上では具体的な実施例に挙げて本発明を説明してきたが、添付の特許請求の範囲に記載された本発明の思想及び領域を逸脱しない範囲内で、本発明を様々に修正及び変更できるということは、該当技術分野における通常の知識を持つ者にとっては明らかである。
【産業上の利用可能性】
【０１２８】
以上説明した如く、本発明の実施例によるＰ２Ｐファイル転送システム及び方法によれば、ＮＡＴのように、Ｐ２Ｐによるファイル転送が不安定になる環境下においてより安定したファイル転送が可能になる。
【０１２９】
また、本発明の実施例によれば、Ｐ２Ｐファイル転送状態をモニタリングし、ファイル転送が不安定な状況では、別のサーバーを介してファイル転送を中継するので、ネットワーク環境に関係なくＰ２Ｐシステムによるファイル転送が可能になり、Ｐ２Ｐを介したファイル転送方式がより様々なネットワーク環境に適用されることが可能になる。
【図面の簡単な説明】
【０１３０】
【図１】本発明の一実施例によるＰ２Ｐファイル転送システムの構成を示す図である。
【図２】本発明の一実施例によるメッセンジャーシステムが適用されたＰ２Ｐファイル転送システムの構成を示す図である。
【図３】本発明の一実施例によるリレーサーバーのモジュール構成を示すブロック図である。
【図４】本発明の一実施例によるユーザー情報データの構造を示す図である。
【図５】本発明の一実施例によるチャンネル管理モジュールで管理するチャンネル管理データの構造を示す図である。
【図６】本発明に適用されるシステムが一般的なＰ２Ｐファイル共有システムである場合のＰ２Ｐファイル転送システムの構成を示す図である。
【図７】本発明の一実施例によるＰ２Ｐファイル転送方法の全体的な流れを示すフローチャートである。
【図８】本発明の一実施例によるリレーサーバーにチャンネルが生成され、ファイル送受信のためのユーザーが参加する過程を示すフローチャートである。
【図９】本発明の一実施例によるチャンネル形成後のファイル転送方法を示すフローチャートである。
【図１】
2009531744.tif 000003
【図２】
2009531744.tif 000004
【図３】
2009531744.tif 000005
【図４】
2009531744.tif 000006
【図５】
2009531744.tif 000007
【図６】
2009531744.tif 000008
【図７】
2009531744.tif 000009
【図８】
2009531744.tif 000010
【図９】
2009531744.tif 000011
【国際調査報告】
2009531744.tif 000012
2009531744.tif 000013