(57)【特許請求の範囲】
【請求項１】
リレーサーバ；及び
前記リレーサーバに登録用パケットを伝送するクライアント
を含み、前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する、リレーサーバを利用したデータ伝送システムにおいて、
各クライアント別に前記リレーサーバが伝送する前記クライアントの登録情報を記憶する位置サーバをさらに含み、
前記クライアントの登録情報を前記位置サーバに伝送するリレーサーバは、ＵＤＰリレーサーバであり、
前記クライアントは、前記位置サーバから相手方クライアントのＵＤＰ接続情報を取得した後、前記相手方クライアントが使用するＵＤＰリレーサーバに前記ＵＤＰ接続情報を含むデータパケットを伝送する、リレーサーバを利用したデータ伝送システム。
【請求項２】
前記登録用パケットは、
前記クライアントのプライベートＩＰアドレスと前記クライアントのプライベートポートとを含むヘッダ；及び
前記クライアントのユーザ識別情報と、前記クライアントのプライベートＩＰアドレスと、前記クライアントのプライベートポートと、前記クライアントが属するプライベートネットワークのＮＡＴタイプとを包含するペイロード
を含む、請求項１に記載のリレーサーバを利用したデータ伝送システム。
【請求項３】
前記クライアントが属するプライベートネットワークに備えられ、前記クライアントが伝送するデータパケット内に前記ヘッダに含まれる前記クライアントのプライベートＩＰアドレスを、当該プライベートＩＰアドレスとマッピングされたパブリックＩＰアドレスに変換し、前記ヘッダに含まれる前記クライアントのプライベートポートを、当該プライベートポートとマッピングされたパブリックポートに変換して前記リレーサーバに伝達するＮＡＴをさらに含む、請求項２に記載のリレーサーバを利用したデータ伝送システム。
【請求項４】
前記クライアントの登録情報は、
前記クライアントのユーザ識別情報、前記クライアントのプライベートＩＰアドレス、前記クライアントのプライベートポート、前記クライアントが属するプライベートネットワークのＮＡＴタイプ、前記クライアントのプライベートＩＰアドレスとマッピングされたパブリックＩＰアドレス、及び前記クライアントのプライベートポートとマッピングされたパブリックポートの何れか一以上を含む、請求項３に記載のリレーサーバを利用したデータ伝送システム。
【請求項５】
前記ＵＤＰ接続情報は、
前記相手方クライアントが使用するＵＤＰリレーサーバのアドレス及び前記相手方クライアントのパブリックネットワークマッピングアドレスを含む、請求項１に記載のリレーサーバを利用したデータ伝送システム。
【請求項６】
前記相手方クライアントが使用するＵＤＰリレーサーバは、
前記ＵＤＰ接続情報のうち相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する、請求項５に記載のリレーサーバを利用したデータ伝送システム。
【請求項７】
リレーサーバ；及び
前記リレーサーバに登録用パケットを伝送するクライアント
を含み、前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する、リレーサーバを利用したデータ伝送システムにおいて、
各クライアント別に前記リレーサーバが伝送する前記クライアントの登録情報を記憶する位置サーバをさらに含み、
前記クライアントの登録情報を前記位置サーバに伝送するリレーサーバは、ＴＣＰリレーサーバであり、
前記クライアントは、
前記位置サーバから相手方クライアントのＴＣＰ接続情報を取得した後、前記相手方クライアントが使用するＴＣＰリレーサーバに前記ＴＣＰ接続情報を含むデータパケットを伝送する、リレーサーバを利用したデータ伝送システム。
【請求項８】
前記ＴＣＰ接続情報は、
前記相手方クライアントが使用するＴＣＰリレーサーバのアドレス及び前記相手方クライアントのユーザ識別情報を含む、請求項７に記載のリレーサーバを利用したデータ伝送システム。
【請求項９】
前記相手方クライアントが使用するＴＣＰリレーサーバは、
前記ＴＣＰ接続情報のうち、前記相手方クライアントのユーザ識別情報を通じて自身とＴＣＰ接続されるクライアントを確認した後、前記データパケットを前記ＴＣＰ接続されるクライアントに伝達する、請求項８に記載のリレーサーバを利用したデータ伝送システム。
【請求項１０】
リレーサーバ；及び
前記リレーサーバに登録用パケットを伝送するクライアント
を含み、前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する、リレーサーバを利用したデータ伝送システムにおいて、
各クライアント別に前記リレーサーバが伝送する前記クライアントの登録情報を記憶する位置サーバをさらに含み、
前記クライアントの登録情報を前記位置サーバに伝送するリレーサーバは、ＵＤＰリレーサーバであり、
前記クライアントは、
前記位置サーバから相手方クライアントのＴＣＰ接続情報を取得した後、自身が使用するＵＤＰリレーサーバに前記ＴＣＰ接続情報を含むデータパケットを伝送する、リレーサーバを利用したデータ伝送システム。
【請求項１１】
前記ＴＣＰ接続情報は、
前記相手方クライアントが使用するＴＣＰリレーサーバのアドレス及び前記相手方クライアントのユーザ識別情報を含む、請求項１０に記載のリレーサーバを利用したデータ伝送システム。
【請求項１２】
前記ＵＤＰリレーサーバは、前記ＴＣＰ接続情報のうち前記相手方クライアントが使用するＴＣＰリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するＴＣＰリレーサーバに伝達し、
前記相手方クライアントが使用するＴＣＰリレーサーバは、前記ＴＣＰ接続情報のうち前記相手方クライアントのユーザ識別情報を通じて自身とＴＣＰ接続されるクライアントを確認した後、前記データパケットを前記ＴＣＰ接続されるクライアントに伝達する、請求項１１に記載のリレーサーバを利用したデータ伝送システム。
【請求項１３】
リレーサーバ；及び
前記リレーサーバに登録用パケットを伝送するクライアント
を含み、前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する、リレーサーバを利用したデータ伝送システムにおいて、
各クライアント別に前記リレーサーバが伝送する前記クライアントの登録情報を記憶する位置サーバをさらに含み、
前記クライアントの登録情報を前記位置サーバに伝送するリレーサーバは、ＴＣＰリレーサーバであり、
前記クライアントは、
前記位置サーバから相手方クライアントのＵＤＰ接続情報を取得した後、自身が使用するＴＣＰリレーサーバに前記ＵＤＰ接続情報を含むデータパケットを伝送する、リレーサーバを利用したデータ伝送システム。
【請求項１４】
前記ＵＤＰ接続情報は、
前記相手方クライアントが使用するＵＤＰリレーサーバのアドレス及び前記相手方クライアントのパブリックネットワークマッピングアドレスを含む、請求項１３に記載のリレーサーバを利用したデータ伝送システム。
【請求項１５】
前記ＴＣＰリレーサーバは、前記ＵＤＰ接続情報のうち前記相手方クライアントが使用するＵＤＰリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するＵＤＰリレーサーバに伝達し、
前記相手方クライアントが使用するＵＤＰリレーサーバは、前記ＵＤＰ接続情報のうち前記相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する、請求項１４に記載のリレーサーバを利用したデータ伝送システム。
【請求項１６】
前記クライアントは、
前記データパケットを多数分割して伝送し、
前記データパケットにトランザクション番号を付与し、
前記分割されたパケットにフラグメント番号をそれぞれ付与する、請求項１又は５乃至１５の何れか一項に記載のリレーサーバを利用したデータ伝送システム。
【請求項１７】
前記相手方クライアントは、
前記データパケットのトランザクション番号及び前記分割されたパケットのフラグメント番号それぞれに対して、ＡＣＫを前記クライアントに伝送する、請求項１６に記載のリレーサーバを利用したデータ伝送システム。
【請求項１８】
前記リレーサーバがＴＣＰリレーサーバである場合、
前記クライアントは、前記ＴＣＰリレーサーバとＴＣＰ接続を確立した後、前記登録用パケットを前記ＴＣＰリレーサーバに伝送する、請求項７に記載のリレーサーバを利用したデータ伝送システム。
【請求項１９】
前記リレーサーバがＵＤＰリレーサーバである場合、
前記クライアントは、前記登録結果メッセージを受信した後、前記ＵＤＰリレーサーバにキープアライブメッセージを定期的に伝送し、前記ＵＤＰリレーサーバは前記キープアライブメッセージを前記クライアントに再送信する、請求項１に記載のリレーサーバを利用したデータ伝送システム。
【請求項２０】
(Ａ)リレーサーバが、クライアントから登録用パケットを受信する段階；
(Ｂ)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階；及び
(Ｃ)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階
を含み、前記(Ｃ)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのＵＤＰ接続情報を取得する段階；
前記クライアントが、前記ＵＤＰ接続情報から前記相手方クライアントが使用するＵＤＰリレーサーバのアドレスを確認した後、前記相手方クライアントが使用するＵＤＰリレーサーバに前記ＵＤＰ接続情報を含むデータパケットを伝送する段階；及び
前記相手方クライアントが使用するＵＤＰリレーサーバが、前記ＵＤＰ接続情報から前記相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する段階
を含む、リレーサーバを利用したデータ伝送方法。
【請求項２１】
(Ａ)リレーサーバが、クライアントから登録用パケットを受信する段階；
(Ｂ)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階；及び
(Ｃ)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階
を含み、前記(Ｃ)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのＴＣＰ接続情報を取得する段階；
前記クライアントが、前記ＴＣＰ接続情報から前記相手方クライアントが使用するＴＣＰリレーサーバのアドレスを確認した後、前記相手方クライアントが使用するＴＣＰリレーサーバに前記ＴＣＰ接続情報を含むデータパケットを伝送する段階；及び
前記相手方クライアントが使用するＴＣＰリレーサーバが、前記ＴＣＰ接続情報に前記相手方クライアントのユーザ識別情報を通じて自身とＴＣＰ接続されるクライアントを確認した後、前記データパケットを前記ＴＣＰ接続されるクライアントに伝達する段階
を含む、リレーサーバを利用したデータ伝送方法。
【請求項２２】
(Ａ)リレーサーバが、クライアントから登録用パケットを受信する段階；
(Ｂ)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階；及び
(Ｃ)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階
を含み、前記(Ｃ)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのＴＣＰ接続情報を取得する段階；
前記クライアントが、自身が使用するＵＤＰリレーサーバに前記ＴＣＰ接続情報を含むデータパケットを伝送する段階；
前記ＵＤＰリレーサーバが、前記ＴＣＰ接続情報から前記相手方クライアントが使用するＴＣＰリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するＴＣＰリレーサーバに伝達する段階；及び
前記相手方クライアントが使用するＴＣＰリレーサーバが、前記ＴＣＰ接続情報から前記相手方クライアントのユーザ識別情報を通じて自身とＴＣＰ接続されるクライアントを確認した後、前記データパケットを前記ＴＣＰ接続されるクライアントに伝達する段階
を含む、リレーサーバを利用したデータ伝送方法。
【請求項２３】
(Ａ)リレーサーバが、クライアントから登録用パケットを受信する段階；
(Ｂ)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階；及び
(Ｃ)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階
を含み、前記(Ｃ)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのＵＤＰ接続情報を取得する段階；
前記クライアントが、自身が使用するＴＣＰリレーサーバに前記ＵＤＰ接続情報を含むデータパケットを伝送する段階；
前記ＴＣＰリレーサーバが、前記ＵＤＰ接続情報から前記相手方クライアントが使用するＵＤＰリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するＵＤＰリレーサーバに伝達する段階；及び
前記相手方クライアントが使用するＵＤＰリレーサーバが、前記ＵＤＰ接続情報から前記相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する段階
を含む、リレーサーバを利用したデータ伝送方法。
【請求項２４】
請求項２０乃至２３の何れか一項に記載した方法をコンピューター上で遂行するためのプログラム。
【請求項２５】
請求項２４に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ伝送技術に関するものであって、より詳しくは、リレーサーバを利用したデータ伝送技術に関するものである。
【背景技術】
【０００２】
Ｐ２Ｐ(Peer-to-Peer)技術とは、各ユーザが個々の端末機に直接接続して各種情報及びコンテンツを共有する技術である。Ｐ２Ｐ技術は、当初、各ユーザがインターネット上で音楽ファイル及び映像ファイルなどを不法的に互いに共有するための手段として使用されていたが、近年には、メッセンジャーシステムを利用したクライアント間のファイル伝送、インターネット電話による音声データ伝送など、多様なサービスにおいて利用されており、その利用分野は徐々に広がっている。
【０００３】
各クライアントがＰ２Ｐ技術においてプライベートネットワーク上に存在することによりクライアント間の直接接続が不可能な場合には、リレー(relay)サーバを利用したデータの中継方法が使用される。このとき、ＵＤＰ(User Datagram Protocol)データが中継されるときはＵＤＰリレーサーバが使用され、ＴＣＰ(Transmission Control Protocol)データが中継されるときはＴＣＰリレーサーバが使用される。しかしながら、従来技術に係るリレーサーバを利用したデータ伝送方式には、下記に示す問題点があった。
【０００４】
第一に、クライアントがサービスに接続して他のクライアントとデータ(メッセージ又はファイルなど)を交換するためには、特定のサーバと定期的に接続状態を維持しなければならない。このために、殆どのサービス提供者は、ログインサーバを設定した後、クライアントがログインサーバに接続して認証を受けることにより、サービスに接続される。このとき、クライアントは、ログインサーバとＴＣＰ接続を維持して、前記ＴＣＰ接続を通じて各クライアントがＰ２Ｐサービスを利用できる状態にあることが確認される。しかしながら、クライアントがログインサーバを通じてＴＣＰ接続を継続して維持させることは、サーバに多くの負荷を与えることになる。
【０００５】
第二に、各クライアントがプライベートネットワークに存在することにより両者間で直接の接続が不可能な場合、各クライアントは、リレーサーバ(ＴＣＰリレーサーバ又はＵＤＰリレーサーバ)に接続した後、前記リレーサーバを通じて相手方にデータを伝送しなければならない。しかしながら、ＴＣＰリレーサーバはＴＣＰデータのみを中継し、ＵＤＰリレーサーバはＵＤＰデータのみを中継するため、クライアントがＵＤＰ接続の不可能な環境ではＵＤＰリレーサーバを通じてデータを伝送することができない。そして、各クライアントが接続したリレーサーバの種類が相互に異なるときは、データを伝送することは不可能である。
【０００６】
第三に、クライアント間でリレーサーバを通じてデータを中継する場合、各クライアントは相手方と直接接続している状態ではないため、データ伝送について必ずしも確保されているわけではないといった問題を有している。すなわち、自身が伝送したデータを相手方が確実に受け取ったか否かについて直に確認することができないので、データ伝送に対する信頼性が確保できないという問題を有している。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本発明の実施形態は、ログインサーバを設けることなくＰ２Ｐネットワーク接続を維持することができるリレーサーバを利用したデータ伝送システム及び方法を提供する。
【０００８】
本発明の実施形態は、ＴＣＰ使用環境、ＵＤＰ使用環境を問わず、データを伝送することができるリレーサーバを利用したデータ伝送システム及び方法を提供する。
【０００９】
本発明の実施形態は、クライアント間のデータ伝送を確保することができるリレーサーバを利用したデータ伝送システム及び方法を提供する。
【課題を解決するための手段】
【００１０】
本発明の一実施形態によるリレーサーバを利用したデータ伝送システムは、リレーサーバ；及び前記リレーサーバに登録用パケットを伝送するクライアントを含み、前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する。
【００１１】
本発明の一実施形態によるリレーサーバを利用したデータ伝送方法は、(Ａ)リレーサーバが、クライアントから登録用パケットを受信する段階；(Ｂ)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階；及び(Ｃ)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階を含む。
【発明の効果】
【００１２】
本発明の実施形態によれば、各クライアントがログインサーバのような別個のサーバに接続しなくても、リレーサーバのみを通じてＰ２Ｐネットワーク接続が維持されると同時に、データ伝送を遂行することができる。そして、各クライアントのＴＣＰ又はＵＤＰ使用環境を問わず、リレーサーバを利用してデータ伝送が可能になる。また、リレーサーバを利用しつつもクライアント間のデータ伝送を確保することもできる。
【図面の簡単な説明】
【００１３】
【図１】本発明の一実施形態によるクライアントがＴＣＰリレーサーバに接続してＰ２Ｐネットワーク接続を維持する方法を示す図である。
【図２】本発明の一実施形態によるクライアントがＴＣＰリレーサーバに伝送する登録用パケットを示す図である。
【図３】本発明の一実施形態によるクライアントがＵＤＰリレーサーバに接続してＰ２Ｐネットワーク接続を維持する方法を示す図である。
【図４】ＵＤＰ使用クライアントからＵＤＰ使用クライアントにデータを伝送する方法を示す図である。
【図５】ＴＣＰ使用クライアントからＴＣＰ使用クライアントにデータを伝送する方法を示す図である。
【図６】ＵＤＰ使用クライアントからＴＣＰ使用クライアントにデータを伝送する方法を示す図である。
【図７】ＴＣＰ使用クライアントからＵＤＰ使用クライアントにデータを伝送する方法を示す図である。
【発明を実施するための形態】
【００１４】
以下、図１乃至図７を参照して、本発明のリレーサーバを利用したデータ伝送システム及び方法の具体的な実施形態を説明する。しかしながら、これは例示に過ぎず、本発明はこれに制限されない。
【００１５】
本発明を説明するにあたり、本発明に係る公知技術に対する具体的な説明が、本発明の要旨を不明瞭にすると判断される場合には、その詳細な説明を省略する。そして、後述する用語は、本発明における機能を考慮して定義された用語であって、これはユーザ、運用者の意図又は慣例などによって変わり得る。従って、その定義は本明細書の全般にわたる内容に基づいて下されなければならない。
【００１６】
本発明の技術的思想は請求範囲により決定され、以下の実施形態は、進歩的な本発明の技術的思想を本発明が属する技術分野において通常の知識を有する者に効率的に説明するための一手段に過ぎない。
【００１７】
１．Ｐ２Ｐネットワーク接続維持
本発明の実施形態においては、各クライアントがログインサーバのような別個のサーバに接続しなくても、リレーサーバのみを通じてＰ２Ｐネットワーク接続が維持されると同時にデータ伝送が可能となる。これについて、クライアントがＴＣＰリレーサーバに接続する場合とＵＤＰリレーサーバに接続する場合とに分けて説明する。ここで、クライアントは、自身が属するネットワーク環境に応じて、ＴＣＰリレーサーバ又はＵＤＰリレーサーバに接続される。
【００１８】
１−１．クライアントがＴＣＰリレーサーバに接続した場合
図１は、本発明の一実施形態によるクライアントがＴＣＰリレーサーバに接続してＰ２Ｐネットワーク接続を維持する方法を示す図である。
【００１９】
図１を参照すると、クライアント１０２はＴＣＰリレーサーバ１０４とのＴＣＰ接続を確立する(Ｓ１０１)。
【００２０】
具体的には、クライアント１０２がＳＹＮパケットを前記ＴＣＰリレーサーバ１０４に伝送すると、前記ＴＣＰリレーサーバ１０４が前記ＳＹＮパケットに対する応答としてＳＹＮ＋ＡＣＫパケットを前記クライアント１０２に伝送する。すると、前記クライアント１０２が前記ＳＹＮ＋ＡＣＫパケットに対する応答としてＡＣＫパケットを伝送する。このように、スリーウェイハンドシェイク(3-way handshake)方式により、前記クライアント１０２と前記ＴＣＰリレーサーバ１０４との間にＴＣＰ接続が確立される。
【００２１】
次に、前記クライアント１０２は、登録用パケットを前記ＴＣＰリレーサーバ１０４に伝送する(Ｓ１０３)。図２は、本発明の一実施形態によるクライアントがＴＣＰリレーサーバに伝送する登録用パケットを示す図である。
【００２２】
図２を参照すると、登録用パケット１５０は、ヘッダ１５１及びペイロード１５４を含む。前記ヘッダ１５１は、ＩＰヘッダ及びＴＣＰヘッダを含んでいるが、前記ＩＰヘッダには前記クライアント１０２のプライベートＩＰアドレスが含まれ、前記ＴＣＰヘッダには前記クライアント１０２のプライベートポート(private port)が含まれる。
【００２３】
そして、前記ペイロード１５４には、前記クライアント１０２のユーザ識別情報、前記クライアント１０２のプライベートＩＰアドレス、前記クライアント１０２のプライベートポート、前記クライアント１０２が属するプライベートネットワークのＮＡＴ(Network Address Translation)タイプなどの情報が含まれる。
【００２４】
前記ユーザ識別情報は、前記クライアント１０２を他のクライアントと識別する固有情報をいう。前記ユーザ識別情報としては、例えば、ユーザのＩＤ、前記ユーザのＩＤとマッピングされたユーザ固有番号、及び前記クライアント１０２のＭＡＣアドレスなどが挙げられる。
【００２５】
前記ＮＡＴは、プライベートネットワークとパブリックネットワーク(public network)との間でプライベートＩＰアドレスとパブリックＩＰアドレスとを相互変換するデバイスをいう。前記クライアント１０２がプライベートネットワークに属する場合、前記クライアント１０２は、インターネットのパブリックＩＰアドレスを節約するために又は前記クライアント１０２を外部攻撃から保護するためにＮＡＴを使用する。
【００２６】
前記ＮＡＴは、完全コーン型(full cone)、制限付きコーン型(restricted cone)、ポート制限付きコーン型(port restricted cone)、及び対称コーン型(symmetric cone)の四つの種類に分類され、前記クライアント１０２は、当該クライアント１０２が属するプライベートネットワークのＮＡＴタイプに関する情報を前記登録用パケットに含んで前記ＴＣＰリレーサーバ１０４に伝送する。
【００２７】
ここで、前記クライアント１０２が伝送する登録用パケット１５０は、前記クライアント１０２が属するプライベートネットワークのＮＡＴを経由して前記ＴＣＰリレーサーバ１０４に伝達される。このとき、前記クライアント１０２が属するプライベートネットワークのＮＡＴは、前記登録用パケット１５０のＩＰヘッダに含まれる前記クライアント１０２のプライベートＩＰアドレスを、それとマッピングされたパブリックＩＰアドレスに変換し、前記ＴＣＰヘッダに含まれる前記クライアント１０２のプライベートポートを、それとマッピングされたパブリックポートに変換して伝達する。
【００２８】
次に、前記ＴＣＰリレーサーバ１０４は、前記登録用パケットに含まれる情報を用いて前記クライアント１０２を前記ＴＣＰリレーサーバ１０４に登録する(Ｓ１０５)。すると、前記ＴＣＰリレーサーバ１０４は、前記クライアント１０２に関する登録情報を有する。
【００２９】
前記登録情報には、前記クライアント１０２のユーザ識別情報、前記クライアント１０２のプライベートＩＰアドレス、前記クライアント１０２のプライベートポート、前記クライアント１０２が属するプライベートネットワークのＮＡＴタイプ、前記クライアント１０２のマッピングされたパブリックＩＰアドレス、及び前記クライアント１０２のマッピングされたパブリックポートが含まれる。
【００３０】
次に、前記ＴＣＰリレーサーバ１０４は、登録結果メッセージを前記クライアント１０２に伝送する(Ｓ１０７)。
【００３１】
このとき、前記クライアント１０２は、Ｐ２Ｐネットワークに接続している状態となり、Ｐ２Ｐサービスの利用が可能な状態となる。そして、このような状態は、前記ＴＣＰリレーサーバ１０４とのＴＣＰ接続が有効なうちは継続される。このとき、前記クライアント１０２は、前記ＴＣＰリレーサーバ１０４を通じて、他のクライアントにデータを送信、又は他のクライアントからデータを受信することができる。
【００３２】
このように、前記クライアント１０２を前記ＴＣＰリレーサーバ１０４に登録することにより、別個のログインサーバを新たに設けなくても、前記クライアント１０２がＰ２Ｐサービスの利用が可能な状態であるか否かを確認することができ、他のクライアントとデータ通信を遂行する。ここで、前記クライアント１０２と前記ＴＣＰリレーサーバ１０４との間のＴＣＰ接続が終了すると、前記ＴＣＰリレーサーバ１０４は、前記クライアント１０２がログアウトされたものとみなして登録解除手続きを遂行する。
【００３３】
次に、前記ＴＣＰリレーサーバ１０４は前記クライアント１０２の登録情報を位置サーバ１０６に伝送する(Ｓ１０９)。次いで、前記位置サーバ１０６は前記クライアント１０２の登録情報を記憶する。
【００３４】
１−２．クライアントがＵＤＰリレーサーバに接続する場合
図３は、本発明の一実施形態によるクライアントがＵＤＰリレーサーバに接続してＰ２Ｐネットワーク接続を維持する方法を示す図である。
【００３５】
図３を参照すると、クライアント２０２は登録用パケットをＵＤＰリレーサーバ２０４に伝送する(Ｓ２０１)。すなわち、ＵＤＰの場合、ＴＣＰのような接続機能を提供しないため、前記クライアント２０２は最初に登録用パケットを前記ＵＤＰリレーサーバ２０４に伝送する。
【００３６】
前記クライアント２０２が伝送する登録用パケットは、ＴＣＰヘッダの代わりにＵＤＰヘッダを有するという点を除いては、前記図２に図示された登録用パケットと同一である。そして、前記登録用パケットは、前記クライアント２０２が属するプライベートネットワークのＮＡＴを経由して前記ＵＤＰリレーサーバ２０４に伝達する。このとき、前記ＮＡＴは、前記登録用パケットのＩＰヘッダに含まれる前記クライアント２０２のプライベートＩＰアドレスを、それとマッピングされたパブリックＩＰアドレスに変換し、前記ＵＤＰヘッダに含まれる前記クライアント２０２のプライベートポートを、それとマッピングされたパブリックポートに変換して伝達する。
【００３７】
次に、前記ＵＤＰリレーサーバ２０４は、前記登録用パケットに含まれる情報を用いて前記クライアント２０２を前記ＵＤＰリレーサーバ２０４に登録する(Ｓ２０３)。すると、前記ＵＤＰリレーサーバ２０４は、前記クライアント２０２に関する登録情報を有する。
【００３８】
前記登録情報には、前記クライアント２０２のユーザ識別情報、前記クライアント２０２のプライベートＩＰアドレス、前記クライアント２０２のプライベートポート、前記クライアント２０２が属するプライベートネットワークのＮＡＴタイプ、前記クライアント２０２のマッピングされたパブリックＩＰアドレス、及び前記クライアント２０２のマッピングされたパブリックポートが含まれる。
【００３９】
次に、前記ＵＤＰリレーサーバ２０４は、登録結果メッセージを前記クライアント２０２に伝送し(Ｓ２０５)、前記クライアント２０２の登録情報を位置サーバ２０６に伝送する(Ｓ２０７)。次いで、前記位置サーバ２０６は前記クライアント２０２の登録情報を記憶する。
【００４０】
次に、前記クライアント２０２が定期的にキープアライブ（keep alive）メッセージを前記ＵＤＰリレーサーバ２０４に伝送すると(Ｓ２０９)、前記ＵＤＰリレーサーバ２０４が前記keep aliveメッセージをループバック(loopback)で前記クライアント２０２に再送信する(Ｓ２１１)。これを通じて前記クライアント２０２はＰ２Ｐサービスの利用が可能な状態であるか否か(すなわち、Ｐ２Ｐネットワークに接続された状態であるか否か)を確認することができる。
【００４１】
このとき、前記ＵＤＰリレーサーバ２０４は、前記クライアント２０２からkeep aliveメッセージを受信した時間を確認する。仮に、前記クライアント２０２から既定の時間以上keep aliveメッセージを受信することができない場合、前記ＵＤＰリレーサーバ２０４は前記クライアント２０２との接続が終了したものとみなす。
【００４２】
このように、前記クライアント２０２を前記ＵＤＰリレーサーバ２０４に登録して定期的にkeep aliveメッセージを伝送することにより、別個のログインサーバを利用しなくても、前記クライアント２０２がＰ２Ｐサービスの利用が可能な状態であるか否かを確認することができ、他のクライアントとデータ通信を遂行することができる。
【００４３】
２．ネットワーク使用環境を問わないデータ伝送
本発明の実施形態においては、各クライアントのＴＣＰ又はＵＤＰ使用環境を問わず、リレーサーバ(ＴＣＰリレーサーバ及びＵＤＰリレーサーバ)を利用してデータ伝送が可能となる。これについて、各クライアントのネットワーク使用環境に分けて説明する。
【００４４】
２−１．ＵＤＰ使用クライアントからＵＤＰ使用クライアントにデータを伝送する場合
図４は、ＵＤＰ使用クライアントからＵＤＰ使用クライアントにデータを伝送する方法を示す図である。
【００４５】
図４を参照すると、第１のクライアント３０２が第２のクライアント３０８にデータを伝送すると、前記第１のクライアント３０２は位置サーバ３０４に第２のクライアント３０８のユーザＩＤを伝送する(Ｓ３０１)。このとき、前記第１のクライアント３０２は、例えば、メッセンジャーサービスの友達検索などを通じて第２のクライアント３０８のユーザＩＤを取得することができる。
【００４６】
次に、前記位置サーバ３０４は、前記第２のクライアント３０８のユーザＩＤを通じて前記第２のクライアント３０８のＵＤＰ接続情報を確認した後、前記ＵＤＰ接続情報を前記第１のクライアント３０２に伝送する(Ｓ３０３)。前記ＵＤＰ接続情報は、前記第２のクライアント３０８が使用するＵＤＰリレーサーバのアドレス及び前記第２のクライアント３０８のパブリックネットワークマッピングアドレス(例えば、前記第２のクライアント３０８のプライベートＩＰアドレス及びマッピングされたパブリックＩＰアドレス、並びに前記第２のクライアント３０８のプライベートポート及びマッピングされたパブリックポート)を含む。
【００４７】
すなわち、図３を参照して説明したように、ＵＤＰリレーサーバが各クライアントを登録するとき、ＵＤＰリレーサーバが各クライアントの登録情報を位置サーバに伝送するため、位置サーバにはクライアント別に該当するクライアントの登録情報及び各クライアントの登録情報を伝送したＵＤＰリレーサーバのアドレスが記憶される。よって、前記位置サーバ３０４は、前記第１のクライアント３０２から前記第２のクライアント３０８のユーザＩＤを受信する場合、前記ユーザＩＤを通じて前記第２のクライアント３０８のＵＤＰ接続情報を確認することができる。
【００４８】
次に、前記第１のクライアント３０２は、前記ＵＤＰ接続情報から前記第２のクライアント３０８が使用するＵＤＰリレーサーバ３０６のアドレスを確認した後、前記第２のクライアント３０８のパブリックネットワークマッピングアドレスを含むデータパケットを前記ＵＤＰリレーサーバ３０６に伝送する(Ｓ３０５)。このとき、前記データパケットには、当該データパケットが前記ＵＤＰリレーサーバ３０６によって中継されるべきメッセージであるか、或いは前記ＵＤＰリレーサーバ３０６で処理すべきメッセージであるかを識別する識別子が含まれる。
【００４９】
次に、前記ＵＤＰリレーサーバ３０６は、前記データパケットにおいて前記第２のクライアント３０８のパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記第２のクライアント３０８のパブリックネットワークマッピングアドレスに伝送する(Ｓ３０７)。すると、前記第２のクライアント３０８のプライベートネットワークに属するＮＡＴは、前記パブリックネットワークマッピングアドレスのうちパブリックＩＰアドレスを、それとマッピングされたプライベートＩＰアドレスに変換し、前記パブリックネットワークマッピングアドレスのうちパブリックポートを、それとマッピングされたプライベートポートに変換して前記第２のクライアント３０８に伝達する。
【００５０】
このとき、前記第２のクライアント３０８は、前記ＵＤＰリレーサーバ３０６とホールパンチング(hole punching)を通じて接続を維持しているため、前記データパケットを受信することができる。
【００５１】
２−２．ＴＣＰ使用クライアントからＴＣＰ使用クライアントにデータを伝送する場合
図５は、ＴＣＰ使用クライアントからＴＣＰ使用クライアントにデータを伝送する方法を示す図である。
【００５２】
図５を参照すると、第１のクライアント４０２が第２のクライアント４０８にデータを伝送すると、前記第１のクライアント４０２は位置サーバ４０４に前記第２のクライアント４０８のユーザＩＤを伝送する(Ｓ４０１)。
【００５３】
次に、前記位置サーバ４０４は、前記第２のクライアント４０８のＴＣＰ接続情報を確認した後、前記ＴＣＰ接続情報を前記第１のクライアント４０２に伝送する(Ｓ４０３)。前記ＴＣＰ接続情報には、前記第２のクライアント４０８が使用するＴＣＰリレーサーバ４０６のアドレス及び前記第２のクライアント４０８のユーザ固有番号が含まれる。ここで、前記第２のクライアント４０８のユーザ固有番号は、前記第２のクライアント４０８のユーザＩＤとマッピングされた番号であってもよい。
【００５４】
すなわち、前記位置サーバ４０４には、各クライアントの登録情報及び各クライアントの登録情報を伝送したＴＣＰリレーサーバのアドレスが記憶されているので、前記第１のクライアント４０２から前記第２のクライアント４０８のユーザＩＤを受信する場合、前記ユーザＩＤを通じて前記第２のクライアント４０８のＴＣＰ接続情報を確認することができる。
【００５５】
次に、前記第１のクライアント４０２は、前記ＴＣＰ接続情報から前記第２のクライアント４０８が使用するＴＣＰリレーサーバ４０６のアドレスを確認して前記ＴＣＰリレーサーバ４０６とのＴＣＰ接続を確立した後(Ｓ４０５)、前記第２のクライアント４０８のユーザ固有番号を含むデータパケットを前記ＴＣＰリレーサーバ４０６に伝送する(Ｓ４０７)。
【００５６】
次に、前記ＴＣＰリレーサーバ４０６は、前記データパケットにおいて前記第２のクライアント４０８のユーザ固有番号を確認した後、前記ユーザ固有番号で自身とＴＣＰ接続されるクライアント(すなわち、第２のクライアント４０８)を確認して前記データパケットを伝送する(Ｓ４０９)。
【００５７】
すなわち、前記ＴＣＰリレーサーバ４０６は、自身に接続したクライアントのＴＣＰセッションと該当クライアントのユーザ固有番号をマッピングさせているため、前記第１のクライアント４０２から受信したデータパケットでユーザ固有番号を確認することにより、前記データパケットを伝達すべきクライアントのＴＣＰセッションを確認することができる。
【００５８】
２−３．ＵＤＰ使用クライアントからＴＣＰ使用クライアントにデータを伝送する場合
図６は、ＵＤＰ使用クライアントからＴＣＰ使用クライアントにデータを伝送する方法を示す図である。ここでは、ＵＤＰを使用する第１のクライアントからＴＣＰを使用する第２のクライアントにデータを伝送する場合を示す。このとき、第１のクライアントはＵＤＰリレーサーバ及びＴＣＰリレーサーバを順次経由して第２のクライアントにデータを伝送する。
【００５９】
図６を参照すると、第１のクライアント５０２は位置サーバ５０４に第２のクライアント５１０のユーザＩＤを伝送する(Ｓ５０１)。
【００６０】
次に、前記位置サーバ５０４は、前記第２のクライアント５１０のユーザＩＤを通じて前記第２のクライアント５１０のＴＣＰ接続情報を確認した後、前記ＴＣＰ接続情報を前記第１のクライアント５０２に伝送する(Ｓ５０３)。前記ＴＣＰ接続情報には、前記第２のクライアント５１０が使用するＴＣＰリレーサーバ５０８のアドレス及び前記第２のクライアント５１０のユーザ固有番号が含まれる。
【００６１】
次に、前記第１のクライアント５０２は、自身が使用するＵＤＰリレーサーバ５０６に前記ＴＣＰ接続情報を含むデータパケットを伝送する(Ｓ５０５)。
【００６２】
次に、前記ＵＤＰリレーサーバ５０６は、前記データパケットのＴＣＰ接続情報から前記第２のクライアント５１０が使用するＴＣＰリレーサーバ５０８のアドレスを確認した後、前記ＴＣＰ接続情報を含むデータパケットを前記ＴＣＰリレーサーバ５０８に伝送する(Ｓ５０７)。
【００６３】
次に、前記ＴＣＰリレーサーバ５０８は、前記データパケットのＴＣＰ接続情報から前記第２のクライアント５１０のユーザ固有番号を確認した後、前記ユーザ固有番号で自身とＴＣＰ接続されるクライアント(すなわち、第２のクライアント５１０)を確認して前記データパケットを伝送する(Ｓ５０９)。
【００６４】
２−４．ＴＣＰ使用クライアントからＵＤＰ使用クライアントにデータを伝送する場合
図７は、ＴＣＰ使用クライアントからＵＤＰ使用クライアントにデータを伝送する方法を示す図である。ここでは、ＴＣＰを使用する第１のクライアントからＵＤＰを使用する第２のクライアントにデータを伝送する場合を示す。このとき、第１のクライアントはＴＣＰリレーサーバ及びＵＤＰリレーサーバを順次経由して第２のクライアントにデータを伝送する。
【００６５】
図７を参照すると、第１のクライアント６０２は位置サーバ６０４に第２のクライアント６１０のユーザＩＤを伝送する(Ｓ６０１)。
【００６６】
次に、前記位置サーバ６０４は、前記第２のクライアント６１０のＵＤＰ接続情報を前記第１のクライアント６０２に伝送する(Ｓ６０３)。前記ＵＤＰ接続情報は、前記第２のクライアント６１０が使用するＵＤＰリレーサーバ６０８のアドレス及び前記第２のクライアント６１０のパブリックネットワークマッピングアドレス(例えば、前記第２のクライアント６１０のプライベートＩＰアドレス及びマッピングされたパブリックＩＰアドレス、並びに前記第２のクライアント６１０のプライベートポート及びマッピングされたパブリックポート)を含む。
【００６７】
次に、前記第１のクライアント６０２は、自身が使用するＴＣＰリレーサーバ６０６とＴＣＰ接続を確立した後(Ｓ６０５)、前記ＴＣＰリレーサーバ６０６に前記ＵＤＰ接続情報を含むデータパケットを伝送する(Ｓ６０７)。
【００６８】
次に、前記ＴＣＰリレーサーバ６０６は、前記ＵＤＰ接続情報から前記第２のクライアント６１０が使用するＵＤＰリレーサーバ６０８のアドレスを確認した後、前記ＵＤＰリレーサーバ６０８に前記ＵＤＰ接続情報を含むデータパケットを伝送する(Ｓ６０９)。
【００６９】
次に、前記ＵＤＰリレーサーバ６０８は、前記ＵＤＰ接続情報から前記第２のクライアント６１０のパブリックマッピングアドレス(public mapping address)を確認した後、前記第２のクライアント６１０のパブリックマッピングアドレスに前記データパケットを伝送する(Ｓ６１１)。すると、前記第２のクライアント６１０のプライベートネットワークに属するＮＡＴは、前記パブリックネットワークマッピングアドレスのうちパブリックＩＰアドレスを、それとマッピングされたプライベートＩＰアドレスに変換し、前記パブリックネットワークマッピングアドレス中パブリックポートを、それとマッピングされたプライベートポートに変換して前記第２のクライアント６１０に伝達する。
【００７０】
このとき、前記第２のクライアント６１０は、前記ＵＤＰリレーサーバ６０８とホールパンチング(hole punching)を通じて接続を維持しているため、前記データパケットを受信することができる。
【００７１】
一方、前記第１のクライアント６０２が伝送するデータパケットには、前記第１のクライアント６０２が使用するＴＣＰリレーサーバ６０６のアドレスを含むことができる。この場合、前記データパケットを受信した第２のクライアント６１０は、前記ＴＣＰリレーサーバ６０６のアドレスを記憶した後、前記第１のクライアント６０２にデータを伝送するとき、前記ＴＣＰリレーサーバ６０６を利用して伝達することができる。
【００７２】
本発明の実施形態によれば、クライアントがＵＤＰ接続が不可能な環境でもＵＤＰリレーサーバを通じてデータを伝送することができ、各クライアントが接続したリレーサーバの種類が相互に異なる場合にもデータを伝送することができる。すなわち、各クライアントのネットワーク環境を問わず、リレーサーバを通じてデータを伝送することができる。
【００７３】
３．データ伝送の信頼性確保
Ｐ２Ｐクライアント間にリレーサーバを利用してデータ伝送を遂行する場合、リレーサーバはデータを中継する役割のみをするため、データが相手方クライアントに実際に伝送されたか否かを確認することができなくなる。よって、本発明の実施形態においては、第１のクライアントがリレーサーバを通じて第２のクライアントにデータを伝送する場合、データを該当するネットワークのＭＴＵ(Maximum Transmission Unit)よりも小さなサイズに分割して伝送する。このとき、該当データに対してトランザクション番号(transaction number)を付与し、分割されたパケットに対してフラグメント番号(fragment number)を付与する。
【００７４】
そして、前記第２のクライアントは、前記データのトランザクション番号及び前記分割されたパケットのフラグメント番号それぞれに対してＡＣＫメッセージを前記第１のクライアントに伝送する。このとき、リレーサーバは、前記ＡＣＫメッセージをバイパス(bypass)で前記第１のクライアントに伝達する。
【００７５】
この場合、各クライアントはリレーサーバを利用してデータを伝送しても、各データのトランザクション番号及び該当データのフラッグメントパケットのフラグメント番号それぞれに対してＡＣＫメッセージを受信するため、相手方クライアントにすべてのデータの伝送が完了したということを確認することができる。
【００７６】
一方、本発明の実施形態は、本明細書において記述した方法をコンピュータ上で遂行するためのプログラムを含むコンピュータ読取可能な記録媒体を含むことができる。前記コンピュータ読取可能な記録媒体は、プログラム命令、ローカルデータファイル、ローカルデータ構造などを単独かつ組み合わせて含むことができる。前記媒体は、本発明のために特別に設計されて構成されたものであり、又はコンピュータソフトウェア分野において通常の知識を有する者に公知されて使用可能なものであり得る。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロッピーディスクのような磁気−光媒体、並びにＲＯＭ、ＲＡＭ、フラッシュメモリーなどのようなプログラム命令を記憶し遂行するように特別に構成されたハードウェア装置が挙げられる。プログラム命令の例としては、コンパイラにより生成された機械語コードのみならず、インタプリタなどを使用してコンピュータにより実行され得る高級言語コードを含むことができる。
【００７７】
以上、代表的な実施形態を通じて本発明について詳細に説明したが、本発明が属する技術分野において通常の知識を有する者は、詳述した実施形態について本発明の範疇から外れない範囲内で様々な変形が可能であることを理解しなければならない。従って、本発明の権利範囲は説明された実施形態に限定して定めてはならず、後述する特許請求の範囲のみならず、この特許請求の範囲と均等なものなどによって定められなければならない。
【符号の説明】
【００７８】
１０２、２０２:クライアント
１０４、４０６、５０８、６０６:ＴＣＰリレーサー
１０６、２０６、３０４、４０４、５０４、６０４:位置サーバ
２０４、３０６、５０６、６０８:ＵＤＰリレーサーバ
３０２、４０２、５０２、６０２:第１のクライアント
３０８、４０８、５１０、６１０:第２のクライアント
【図１】
0005378494.tif 000002
【図２】
0005378494.tif 000003
【図３】
0005378494.tif 000004
【図４】
0005378494.tif 000005
【図５】
0005378494.tif 000006
【図６】
0005378494.tif 000007
【図７】
0005378494.tif 000008