説明

リレーサーバを利用したデータ伝送システム及び方法

【課題】本発明は、リレーサーバを利用してデータを伝送するシステム及び方法を提供する。
【解決手段】本発明の一実施形態によるリレーサーバを利用したデータ伝送方法は、クライアントが登録用パケットをリレーサーバに伝送すると、リレーサーバが登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージをクライアントに伝送する。次いで、前記リレーサーバはクライアントの登録情報を位置サーバに伝送し、位置サーバは各クライアント別にクライアントの登録情報を記憶する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はデータ伝送技術に関するものであって、より詳しくは、リレーサーバを利用したデータ伝送技術に関するものである。
【背景技術】
【0002】
P2P(Peer-to-Peer)技術とは、各ユーザが個々の端末機に直接接続して各種情報及びコンテンツを共有する技術である。P2P技術は、当初、各ユーザがインターネット上で音楽ファイル及び映像ファイルなどを不法的に互いに共有するための手段として使用されていたが、近年には、メッセンジャーシステムを利用したクライアント間のファイル伝送、インターネット電話による音声データ伝送など、多様なサービスにおいて利用されており、その利用分野は徐々に広がっている。
【0003】
各クライアントがP2P技術においてプライベートネットワーク上に存在することによりクライアント間の直接接続が不可能な場合には、リレー(relay)サーバを利用したデータの中継方法が使用される。このとき、UDP(User Datagram Protocol)データが中継されるときはUDPリレーサーバが使用され、TCP(Transmission Control Protocol)データが中継されるときはTCPリレーサーバが使用される。しかしながら、従来技術に係るリレーサーバを利用したデータ伝送方式には、下記に示す問題点があった。
【0004】
第一に、クライアントがサービスに接続して他のクライアントとデータ(メッセージ又はファイルなど)を交換するためには、特定のサーバと定期的に接続状態を維持しなければならない。このために、殆どのサービス提供者は、ログインサーバを設定した後、クライアントがログインサーバに接続して認証を受けることにより、サービスに接続される。このとき、クライアントは、ログインサーバとTCP接続を維持して、前記TCP接続を通じて各クライアントがP2Pサービスを利用できる状態にあることが確認される。しかしながら、クライアントがログインサーバを通じてTCP接続を継続して維持させることは、サーバに多くの負荷を与えることになる。
【0005】
第二に、各クライアントがプライベートネットワークに存在することにより両者間で直接の接続が不可能な場合、各クライアントは、リレーサーバ(TCPリレーサーバ又はUDPリレーサーバ)に接続した後、前記リレーサーバを通じて相手方にデータを伝送しなければならない。しかしながら、TCPリレーサーバはTCPデータのみを中継し、UDPリレーサーバはUDPデータのみを中継するため、クライアントがUDP接続の不可能な環境ではUDPリレーサーバを通じてデータを伝送することができない。そして、各クライアントが接続したリレーサーバの種類が相互に異なるときは、データを伝送することは不可能である。
【0006】
第三に、クライアント間でリレーサーバを通じてデータを中継する場合、各クライアントは相手方と直接接続している状態ではないため、データ伝送について必ずしも確保されているわけではないといった問題を有している。すなわち、自身が伝送したデータを相手方が確実に受け取ったか否かについて直に確認することができないので、データ伝送に対する信頼性が確保できないという問題を有している。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の実施形態は、ログインサーバを設けることなくP2Pネットワーク接続を維持することができるリレーサーバを利用したデータ伝送システム及び方法を提供する。
【0008】
本発明の実施形態は、TCP使用環境、UDP使用環境を問わず、データを伝送することができるリレーサーバを利用したデータ伝送システム及び方法を提供する。
【0009】
本発明の実施形態は、クライアント間のデータ伝送を確保することができるリレーサーバを利用したデータ伝送システム及び方法を提供する。
【課題を解決するための手段】
【0010】
本発明の一実施形態によるリレーサーバを利用したデータ伝送システムは、リレーサーバ;及び前記リレーサーバに登録用パケットを伝送するクライアントを含み、前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する。
【0011】
本発明の一実施形態によるリレーサーバを利用したデータ伝送方法は、(A)リレーサーバが、クライアントから登録用パケットを受信する段階;(B)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階;及び(C)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階を含む。
【発明の効果】
【0012】
本発明の実施形態によれば、各クライアントがログインサーバのような別個のサーバに接続しなくても、リレーサーバのみを通じてP2Pネットワーク接続が維持されると同時に、データ伝送を遂行することができる。そして、各クライアントのTCP又はUDP使用環境を問わず、リレーサーバを利用してデータ伝送が可能になる。また、リレーサーバを利用しつつもクライアント間のデータ伝送を確保することもできる。
【図面の簡単な説明】
【0013】
【図1】本発明の一実施形態によるクライアントがTCPリレーサーバに接続してP2Pネットワーク接続を維持する方法を示す図である。
【図2】本発明の一実施形態によるクライアントがTCPリレーサーバに伝送する登録用パケットを示す図である。
【図3】本発明の一実施形態によるクライアントがUDPリレーサーバに接続してP2Pネットワーク接続を維持する方法を示す図である。
【図4】UDP使用クライアントからUDP使用クライアントにデータを伝送する方法を示す図である。
【図5】TCP使用クライアントからTCP使用クライアントにデータを伝送する方法を示す図である。
【図6】UDP使用クライアントからTCP使用クライアントにデータを伝送する方法を示す図である。
【図7】TCP使用クライアントからUDP使用クライアントにデータを伝送する方法を示す図である。
【発明を実施するための形態】
【0014】
以下、図1乃至図7を参照して、本発明のリレーサーバを利用したデータ伝送システム及び方法の具体的な実施形態を説明する。しかしながら、これは例示に過ぎず、本発明はこれに制限されない。
【0015】
本発明を説明するにあたり、本発明に係る公知技術に対する具体的な説明が、本発明の要旨を不明瞭にすると判断される場合には、その詳細な説明を省略する。そして、後述する用語は、本発明における機能を考慮して定義された用語であって、これはユーザ、運用者の意図又は慣例などによって変わり得る。従って、その定義は本明細書の全般にわたる内容に基づいて下されなければならない。
【0016】
本発明の技術的思想は請求範囲により決定され、以下の実施形態は、進歩的な本発明の技術的思想を本発明が属する技術分野において通常の知識を有する者に効率的に説明するための一手段に過ぎない。
【0017】
1.P2Pネットワーク接続維持
本発明の実施形態においては、各クライアントがログインサーバのような別個のサーバに接続しなくても、リレーサーバのみを通じてP2Pネットワーク接続が維持されると同時にデータ伝送が可能となる。これについて、クライアントがTCPリレーサーバに接続する場合とUDPリレーサーバに接続する場合とに分けて説明する。ここで、クライアントは、自身が属するネットワーク環境に応じて、TCPリレーサーバ又はUDPリレーサーバに接続される。
【0018】
1−1.クライアントがTCPリレーサーバに接続した場合
図1は、本発明の一実施形態によるクライアントがTCPリレーサーバに接続してP2Pネットワーク接続を維持する方法を示す図である。
【0019】
図1を参照すると、クライアント102はTCPリレーサーバ104とのTCP接続を確立する(S101)。
【0020】
具体的には、クライアント102がSYNパケットを前記TCPリレーサーバ104に伝送すると、前記TCPリレーサーバ104が前記SYNパケットに対する応答としてSYN+ACKパケットを前記クライアント102に伝送する。すると、前記クライアント102が前記SYN+ACKパケットに対する応答としてACKパケットを伝送する。このように、スリーウェイハンドシェイク(3-way handshake)方式により、前記クライアント102と前記TCPリレーサーバ104との間にTCP接続が確立される。
【0021】
次に、前記クライアント102は、登録用パケットを前記TCPリレーサーバ104に伝送する(S103)。図2は、本発明の一実施形態によるクライアントがTCPリレーサーバに伝送する登録用パケットを示す図である。
【0022】
図2を参照すると、登録用パケット150は、ヘッダ151及びペイロード154を含む。前記ヘッダ151は、IPヘッダ及びTCPヘッダを含んでいるが、前記IPヘッダには前記クライアント102のプライベートIPアドレスが含まれ、前記TCPヘッダには前記クライアント102のプライベートポート(private port)が含まれる。
【0023】
そして、前記ペイロード154には、前記クライアント102のユーザ識別情報、前記クライアント102のプライベートIPアドレス、前記クライアント102のプライベートポート、前記クライアント102が属するプライベートネットワークのNAT(Network Address Translation)タイプなどの情報が含まれる。
【0024】
前記ユーザ識別情報は、前記クライアント102を他のクライアントと識別する固有情報をいう。前記ユーザ識別情報としては、例えば、ユーザのID、前記ユーザのIDとマッピングされたユーザ固有番号、及び前記クライアント102のMACアドレスなどが挙げられる。
【0025】
前記NATは、プライベートネットワークとパブリックネットワーク(public network)との間でプライベートIPアドレスとパブリックIPアドレスとを相互変換するデバイスをいう。前記クライアント102がプライベートネットワークに属する場合、前記クライアント102は、インターネットのパブリックIPアドレスを節約するために又は前記クライアント102を外部攻撃から保護するためにNATを使用する。
【0026】
前記NATは、完全コーン型(full cone)、制限付きコーン型(restricted cone)、ポート制限付きコーン型(port restricted cone)、及び対称コーン型(symmetric cone)の四つの種類に分類され、前記クライアント102は、当該クライアント102が属するプライベートネットワークのNATタイプに関する情報を前記登録用パケットに含んで前記TCPリレーサーバ104に伝送する。
【0027】
ここで、前記クライアント102が伝送する登録用パケット150は、前記クライアント102が属するプライベートネットワークのNATを経由して前記TCPリレーサーバ104に伝達される。このとき、前記クライアント102が属するプライベートネットワークのNATは、前記登録用パケット150のIPヘッダに含まれる前記クライアント102のプライベートIPアドレスを、それとマッピングされたパブリックIPアドレスに変換し、前記TCPヘッダに含まれる前記クライアント102のプライベートポートを、それとマッピングされたパブリックポートに変換して伝達する。
【0028】
次に、前記TCPリレーサーバ104は、前記登録用パケットに含まれる情報を用いて前記クライアント102を前記TCPリレーサーバ104に登録する(S105)。すると、前記TCPリレーサーバ104は、前記クライアント102に関する登録情報を有する。
【0029】
前記登録情報には、前記クライアント102のユーザ識別情報、前記クライアント102のプライベートIPアドレス、前記クライアント102のプライベートポート、前記クライアント102が属するプライベートネットワークのNATタイプ、前記クライアント102のマッピングされたパブリックIPアドレス、及び前記クライアント102のマッピングされたパブリックポートが含まれる。
【0030】
次に、前記TCPリレーサーバ104は、登録結果メッセージを前記クライアント102に伝送する(S107)。
【0031】
このとき、前記クライアント102は、P2Pネットワークに接続している状態となり、P2Pサービスの利用が可能な状態となる。そして、このような状態は、前記TCPリレーサーバ104とのTCP接続が有効なうちは継続される。このとき、前記クライアント102は、前記TCPリレーサーバ104を通じて、他のクライアントにデータを送信、又は他のクライアントからデータを受信することができる。
【0032】
このように、前記クライアント102を前記TCPリレーサーバ104に登録することにより、別個のログインサーバを新たに設けなくても、前記クライアント102がP2Pサービスの利用が可能な状態であるか否かを確認することができ、他のクライアントとデータ通信を遂行する。ここで、前記クライアント102と前記TCPリレーサーバ104との間のTCP接続が終了すると、前記TCPリレーサーバ104は、前記クライアント102がログアウトされたものとみなして登録解除手続きを遂行する。
【0033】
次に、前記TCPリレーサーバ104は前記クライアント102の登録情報を位置サーバ106に伝送する(S109)。次いで、前記位置サーバ106は前記クライアント102の登録情報を記憶する。
【0034】
1−2.クライアントがUDPリレーサーバに接続する場合
図3は、本発明の一実施形態によるクライアントがUDPリレーサーバに接続してP2Pネットワーク接続を維持する方法を示す図である。
【0035】
図3を参照すると、クライアント202は登録用パケットをUDPリレーサーバ204に伝送する(S201)。すなわち、UDPの場合、TCPのような接続機能を提供しないため、前記クライアント202は最初に登録用パケットを前記UDPリレーサーバ204に伝送する。
【0036】
前記クライアント202が伝送する登録用パケットは、TCPヘッダの代わりにUDPヘッダを有するという点を除いては、前記図2に図示された登録用パケットと同一である。そして、前記登録用パケットは、前記クライアント202が属するプライベートネットワークのNATを経由して前記UDPリレーサーバ204に伝達する。このとき、前記NATは、前記登録用パケットのIPヘッダに含まれる前記クライアント202のプライベートIPアドレスを、それとマッピングされたパブリックIPアドレスに変換し、前記UDPヘッダに含まれる前記クライアント202のプライベートポートを、それとマッピングされたパブリックポートに変換して伝達する。
【0037】
次に、前記UDPリレーサーバ204は、前記登録用パケットに含まれる情報を用いて前記クライアント202を前記UDPリレーサーバ204に登録する(S203)。すると、前記UDPリレーサーバ204は、前記クライアント202に関する登録情報を有する。
【0038】
前記登録情報には、前記クライアント202のユーザ識別情報、前記クライアント202のプライベートIPアドレス、前記クライアント202のプライベートポート、前記クライアント202が属するプライベートネットワークのNATタイプ、前記クライアント202のマッピングされたパブリックIPアドレス、及び前記クライアント202のマッピングされたパブリックポートが含まれる。
【0039】
次に、前記UDPリレーサーバ204は、登録結果メッセージを前記クライアント202に伝送し(S205)、前記クライアント202の登録情報を位置サーバ206に伝送する(S207)。次いで、前記位置サーバ206は前記クライアント202の登録情報を記憶する。
【0040】
次に、前記クライアント202が定期的にキープアライブ(keep alive)メッセージを前記UDPリレーサーバ204に伝送すると(S209)、前記UDPリレーサーバ204が前記keep aliveメッセージをループバック(loopback)で前記クライアント202に再送信する(S211)。これを通じて前記クライアント202はP2Pサービスの利用が可能な状態であるか否か(すなわち、P2Pネットワークに接続された状態であるか否か)を確認することができる。
【0041】
このとき、前記UDPリレーサーバ204は、前記クライアント202からkeep aliveメッセージを受信した時間を確認する。仮に、前記クライアント202から既定の時間以上keep aliveメッセージを受信することができない場合、前記UDPリレーサーバ204は前記クライアント202との接続が終了したものとみなす。
【0042】
このように、前記クライアント202を前記UDPリレーサーバ204に登録して定期的にkeep aliveメッセージを伝送することにより、別個のログインサーバを利用しなくても、前記クライアント202がP2Pサービスの利用が可能な状態であるか否かを確認することができ、他のクライアントとデータ通信を遂行することができる。
【0043】
2.ネットワーク使用環境を問わないデータ伝送
本発明の実施形態においては、各クライアントのTCP又はUDP使用環境を問わず、リレーサーバ(TCPリレーサーバ及びUDPリレーサーバ)を利用してデータ伝送が可能となる。これについて、各クライアントのネットワーク使用環境に分けて説明する。
【0044】
2−1.UDP使用クライアントからUDP使用クライアントにデータを伝送する場合
図4は、UDP使用クライアントからUDP使用クライアントにデータを伝送する方法を示す図である。
【0045】
図4を参照すると、第1のクライアント302が第2のクライアント308にデータを伝送すると、前記第1のクライアント302は位置サーバ304に第2のクライアント308のユーザIDを伝送する(S301)。このとき、前記第1のクライアント302は、例えば、メッセンジャーサービスの友達検索などを通じて第2のクライアント308のユーザIDを取得することができる。
【0046】
次に、前記位置サーバ304は、前記第2のクライアント308のユーザIDを通じて前記第2のクライアント308のUDP接続情報を確認した後、前記UDP接続情報を前記第1のクライアント302に伝送する(S303)。前記UDP接続情報は、前記第2のクライアント308が使用するUDPリレーサーバのアドレス及び前記第2のクライアント308のパブリックネットワークマッピングアドレス(例えば、前記第2のクライアント308のプライベートIPアドレス及びマッピングされたパブリックIPアドレス、並びに前記第2のクライアント308のプライベートポート及びマッピングされたパブリックポート)を含む。
【0047】
すなわち、図3を参照して説明したように、UDPリレーサーバが各クライアントを登録するとき、UDPリレーサーバが各クライアントの登録情報を位置サーバに伝送するため、位置サーバにはクライアント別に該当するクライアントの登録情報及び各クライアントの登録情報を伝送したUDPリレーサーバのアドレスが記憶される。よって、前記位置サーバ304は、前記第1のクライアント302から前記第2のクライアント308のユーザIDを受信する場合、前記ユーザIDを通じて前記第2のクライアント308のUDP接続情報を確認することができる。
【0048】
次に、前記第1のクライアント302は、前記UDP接続情報から前記第2のクライアント308が使用するUDPリレーサーバ306のアドレスを確認した後、前記第2のクライアント308のパブリックネットワークマッピングアドレスを含むデータパケットを前記UDPリレーサーバ306に伝送する(S305)。このとき、前記データパケットには、当該データパケットが前記UDPリレーサーバ306によって中継されるべきメッセージであるか、或いは前記UDPリレーサーバ306で処理すべきメッセージであるかを識別する識別子が含まれる。
【0049】
次に、前記UDPリレーサーバ306は、前記データパケットにおいて前記第2のクライアント308のパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記第2のクライアント308のパブリックネットワークマッピングアドレスに伝送する(S307)。すると、前記第2のクライアント308のプライベートネットワークに属するNATは、前記パブリックネットワークマッピングアドレスのうちパブリックIPアドレスを、それとマッピングされたプライベートIPアドレスに変換し、前記パブリックネットワークマッピングアドレスのうちパブリックポートを、それとマッピングされたプライベートポートに変換して前記第2のクライアント308に伝達する。
【0050】
このとき、前記第2のクライアント308は、前記UDPリレーサーバ306とホールパンチング(hole punching)を通じて接続を維持しているため、前記データパケットを受信することができる。
【0051】
2−2.TCP使用クライアントからTCP使用クライアントにデータを伝送する場合
図5は、TCP使用クライアントからTCP使用クライアントにデータを伝送する方法を示す図である。
【0052】
図5を参照すると、第1のクライアント402が第2のクライアント408にデータを伝送すると、前記第1のクライアント402は位置サーバ404に前記第2のクライアント408のユーザIDを伝送する(S401)。
【0053】
次に、前記位置サーバ404は、前記第2のクライアント408のTCP接続情報を確認した後、前記TCP接続情報を前記第1のクライアント402に伝送する(S403)。前記TCP接続情報には、前記第2のクライアント408が使用するTCPリレーサーバ406のアドレス及び前記第2のクライアント408のユーザ固有番号が含まれる。ここで、前記第2のクライアント408のユーザ固有番号は、前記第2のクライアント408のユーザIDとマッピングされた番号であってもよい。
【0054】
すなわち、前記位置サーバ404には、各クライアントの登録情報及び各クライアントの登録情報を伝送したTCPリレーサーバのアドレスが記憶されているので、前記第1のクライアント402から前記第2のクライアント408のユーザIDを受信する場合、前記ユーザIDを通じて前記第2のクライアント408のTCP接続情報を確認することができる。
【0055】
次に、前記第1のクライアント402は、前記TCP接続情報から前記第2のクライアント408が使用するTCPリレーサーバ406のアドレスを確認して前記TCPリレーサーバ406とのTCP接続を確立した後(S405)、前記第2のクライアント408のユーザ固有番号を含むデータパケットを前記TCPリレーサーバ406に伝送する(S407)。
【0056】
次に、前記TCPリレーサーバ406は、前記データパケットにおいて前記第2のクライアント408のユーザ固有番号を確認した後、前記ユーザ固有番号で自身とTCP接続されるクライアント(すなわち、第2のクライアント408)を確認して前記データパケットを伝送する(S409)。
【0057】
すなわち、前記TCPリレーサーバ406は、自身に接続したクライアントのTCPセッションと該当クライアントのユーザ固有番号をマッピングさせているため、前記第1のクライアント402から受信したデータパケットでユーザ固有番号を確認することにより、前記データパケットを伝達すべきクライアントのTCPセッションを確認することができる。
【0058】
2−3.UDP使用クライアントからTCP使用クライアントにデータを伝送する場合
図6は、UDP使用クライアントからTCP使用クライアントにデータを伝送する方法を示す図である。ここでは、UDPを使用する第1のクライアントからTCPを使用する第2のクライアントにデータを伝送する場合を示す。このとき、第1のクライアントはUDPリレーサーバ及びTCPリレーサーバを順次経由して第2のクライアントにデータを伝送する。
【0059】
図6を参照すると、第1のクライアント502は位置サーバ504に第2のクライアント510のユーザIDを伝送する(S501)。
【0060】
次に、前記位置サーバ504は、前記第2のクライアント510のユーザIDを通じて前記第2のクライアント510のTCP接続情報を確認した後、前記TCP接続情報を前記第1のクライアント502に伝送する(S503)。前記TCP接続情報には、前記第2のクライアント510が使用するTCPリレーサーバ508のアドレス及び前記第2のクライアント510のユーザ固有番号が含まれる。
【0061】
次に、前記第1のクライアント502は、自身が使用するUDPリレーサーバ506に前記TCP接続情報を含むデータパケットを伝送する(S505)。
【0062】
次に、前記UDPリレーサーバ506は、前記データパケットのTCP接続情報から前記第2のクライアント510が使用するTCPリレーサーバ508のアドレスを確認した後、前記TCP接続情報を含むデータパケットを前記TCPリレーサーバ508に伝送する(S507)。
【0063】
次に、前記TCPリレーサーバ508は、前記データパケットのTCP接続情報から前記第2のクライアント510のユーザ固有番号を確認した後、前記ユーザ固有番号で自身とTCP接続されるクライアント(すなわち、第2のクライアント510)を確認して前記データパケットを伝送する(S509)。
【0064】
2−4.TCP使用クライアントからUDP使用クライアントにデータを伝送する場合
図7は、TCP使用クライアントからUDP使用クライアントにデータを伝送する方法を示す図である。ここでは、TCPを使用する第1のクライアントからUDPを使用する第2のクライアントにデータを伝送する場合を示す。このとき、第1のクライアントはTCPリレーサーバ及びUDPリレーサーバを順次経由して第2のクライアントにデータを伝送する。
【0065】
図7を参照すると、第1のクライアント602は位置サーバ604に第2のクライアント610のユーザIDを伝送する(S601)。
【0066】
次に、前記位置サーバ604は、前記第2のクライアント610のUDP接続情報を前記第1のクライアント602に伝送する(S603)。前記UDP接続情報は、前記第2のクライアント610が使用するUDPリレーサーバ608のアドレス及び前記第2のクライアント610のパブリックネットワークマッピングアドレス(例えば、前記第2のクライアント610のプライベートIPアドレス及びマッピングされたパブリックIPアドレス、並びに前記第2のクライアント610のプライベートポート及びマッピングされたパブリックポート)を含む。
【0067】
次に、前記第1のクライアント602は、自身が使用するTCPリレーサーバ606とTCP接続を確立した後(S605)、前記TCPリレーサーバ606に前記UDP接続情報を含むデータパケットを伝送する(S607)。
【0068】
次に、前記TCPリレーサーバ606は、前記UDP接続情報から前記第2のクライアント610が使用するUDPリレーサーバ608のアドレスを確認した後、前記UDPリレーサーバ608に前記UDP接続情報を含むデータパケットを伝送する(S609)。
【0069】
次に、前記UDPリレーサーバ608は、前記UDP接続情報から前記第2のクライアント610のパブリックマッピングアドレス(public mapping address)を確認した後、前記第2のクライアント610のパブリックマッピングアドレスに前記データパケットを伝送する(S611)。すると、前記第2のクライアント610のプライベートネットワークに属するNATは、前記パブリックネットワークマッピングアドレスのうちパブリックIPアドレスを、それとマッピングされたプライベートIPアドレスに変換し、前記パブリックネットワークマッピングアドレス中パブリックポートを、それとマッピングされたプライベートポートに変換して前記第2のクライアント610に伝達する。
【0070】
このとき、前記第2のクライアント610は、前記UDPリレーサーバ608とホールパンチング(hole punching)を通じて接続を維持しているため、前記データパケットを受信することができる。
【0071】
一方、前記第1のクライアント602が伝送するデータパケットには、前記第1のクライアント602が使用するTCPリレーサーバ606のアドレスを含むことができる。この場合、前記データパケットを受信した第2のクライアント610は、前記TCPリレーサーバ606のアドレスを記憶した後、前記第1のクライアント602にデータを伝送するとき、前記TCPリレーサーバ606を利用して伝達することができる。
【0072】
本発明の実施形態によれば、クライアントがUDP接続が不可能な環境でもUDPリレーサーバを通じてデータを伝送することができ、各クライアントが接続したリレーサーバの種類が相互に異なる場合にもデータを伝送することができる。すなわち、各クライアントのネットワーク環境を問わず、リレーサーバを通じてデータを伝送することができる。
【0073】
3.データ伝送の信頼性確保
P2Pクライアント間にリレーサーバを利用してデータ伝送を遂行する場合、リレーサーバはデータを中継する役割のみをするため、データが相手方クライアントに実際に伝送されたか否かを確認することができなくなる。よって、本発明の実施形態においては、第1のクライアントがリレーサーバを通じて第2のクライアントにデータを伝送する場合、データを該当するネットワークのMTU(Maximum Transmission Unit)よりも小さなサイズに分割して伝送する。このとき、該当データに対してトランザクション番号(transaction number)を付与し、分割されたパケットに対してフラグメント番号(fragment number)を付与する。
【0074】
そして、前記第2のクライアントは、前記データのトランザクション番号及び前記分割されたパケットのフラグメント番号それぞれに対してACKメッセージを前記第1のクライアントに伝送する。このとき、リレーサーバは、前記ACKメッセージをバイパス(bypass)で前記第1のクライアントに伝達する。
【0075】
この場合、各クライアントはリレーサーバを利用してデータを伝送しても、各データのトランザクション番号及び該当データのフラッグメントパケットのフラグメント番号それぞれに対してACKメッセージを受信するため、相手方クライアントにすべてのデータの伝送が完了したということを確認することができる。
【0076】
一方、本発明の実施形態は、本明細書において記述した方法をコンピュータ上で遂行するためのプログラムを含むコンピュータ読取可能な記録媒体を含むことができる。前記コンピュータ読取可能な記録媒体は、プログラム命令、ローカルデータファイル、ローカルデータ構造などを単独かつ組み合わせて含むことができる。前記媒体は、本発明のために特別に設計されて構成されたものであり、又はコンピュータソフトウェア分野において通常の知識を有する者に公知されて使用可能なものであり得る。コンピュータ読取可能な記録媒体の例としては、ハードディスク、フロッピーディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロッピーディスクのような磁気−光媒体、並びにROM、RAM、フラッシュメモリーなどのようなプログラム命令を記憶し遂行するように特別に構成されたハードウェア装置が挙げられる。プログラム命令の例としては、コンパイラにより生成された機械語コードのみならず、インタプリタなどを使用してコンピュータにより実行され得る高級言語コードを含むことができる。
【0077】
以上、代表的な実施形態を通じて本発明について詳細に説明したが、本発明が属する技術分野において通常の知識を有する者は、詳述した実施形態について本発明の範疇から外れない範囲内で様々な変形が可能であることを理解しなければならない。従って、本発明の権利範囲は説明された実施形態に限定して定めてはならず、後述する特許請求の範囲のみならず、この特許請求の範囲と均等なものなどによって定められなければならない。
【符号の説明】
【0078】
102、202:クライアント
104、406、508、606:TCPリレーサー
106、206、304、404、504、604:位置サーバ
204、306、506、608:UDPリレーサーバ
302、402、502、602:第1のクライアント
308、408、510、610:第2のクライアント

【特許請求の範囲】
【請求項1】
リレーサーバ;及び
前記リレーサーバに登録用パケットを伝送するクライアントを含み、
前記リレーサーバは、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する、リレーサーバを利用したデータ伝送システム。
【請求項2】
前記登録用パケットは、
前記クライアントのプライベートIPアドレスと前記クライアントのプライベートポートとを含むヘッダ;及び
前記クライアントのユーザ識別情報と、前記クライアントのプライベートIPアドレスと、前記クライアントのプライベートポートと、前記クライアントが属するプライベートネットワークのNATタイプとを包含するペイロード
を含む、請求項1に記載のリレーサーバを利用したデータ伝送システム。
【請求項3】
前記クライアントが属するプライベートネットワークに備えられ、前記クライアントが伝送するデータパケット内の前記ヘッダに含まれる前記クライアントのプライベートIPアドレスを、当該プライベートIPアドレスとマッピングされたパブリックIPアドレスに変換し、前記ヘッダに含まれる前記クライアントのプライベートポートを、当該プライベートポートとマッピングされたパブリックポートに変換して前記リレーサーバに伝達するNATをさらに含む、請求項2に記載のリレーサーバを利用したデータ伝送システム。
【請求項4】
各クライアント別に前記リレーサーバが伝送する前記クライアントの登録情報を記憶する位置サーバをさらに含む、請求項3に記載のリレーサーバを利用したデータ伝送システム。
【請求項5】
前記クライアントの登録情報は、
前記クライアントのユーザ識別情報、前記クライアントのプライベートIPアドレス、前記クライアントのプライベートポート、前記クライアントが属するプライベートネットワークのNATタイプ、前記クライアントのプライベートIPアドレスとマッピングされたパブリックIPアドレス、及び前記クライアントのプライベートポートとマッピングされたパブリックポートの何れか一以上を含む、請求項4に記載のリレーサーバを利用したデータ伝送システム。
【請求項6】
前記クライアントの登録情報を前記位置サーバに伝送するリレーサーバは、
TCPリレーサーバ又はUDPリレーサーバである、請求項5に記載のリレーサーバを利用したデータ伝送システム。
【請求項7】
前記クライアントは、
前記位置サーバから相手方クライアントのUDP接続情報を取得した後、前記相手方クライアントが使用するUDPリレーサーバに前記UDP接続情報を含むデータパケットを伝送する、請求項6に記載のリレーサーバを利用したデータ伝送システム。
【請求項8】
前記UDP接続情報は、
前記相手方クライアントが使用するUDPリレーサーバのアドレス及び前記相手方クライアントのパブリックネットワークマッピングアドレスを含む、請求項6に記載のリレーサーバを利用したデータ伝送システム。
【請求項9】
前記相手方クライアントが使用するUDPリレーサーバは、
前記UDP接続情報のうち相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する、請求項8に記載のリレーサーバを利用したデータ伝送システム。
【請求項10】
前記クライアントは、
前記位置サーバから相手方クライアントのTCP接続情報を取得した後、前記相手方クライアントが使用するTCPリレーサーバに前記TCP接続情報を含むデータパケットを伝送する、請求項6に記載のリレーサーバを利用したデータ伝送システム。
【請求項11】
前記TCP接続情報は、
前記相手方クライアントが使用するTCPリレーサーバのアドレス及び前記相手方クライアントのユーザ識別情報を含む、請求項10に記載のリレーサーバを利用したデータ伝送システム。
【請求項12】
前記相手方クライアントが使用するTCPリレーサーバは、
前記TCP接続情報のうち、前記相手方クライアントのユーザ識別情報を通じて自身とTCP接続されるクライアントを確認した後、前記データパケットを前記TCP接続されるクライアントに伝達する、請求項11に記載のリレーサーバを利用したデータ伝送システム。
【請求項13】
前記クライアントは、
前記位置サーバから相手方クライアントのTCP接続情報を取得した後、自身が使用するUDPリレーサーバに前記TCP接続情報を含むデータパケットを伝送する、請求項6に記載のリレーサーバを利用したデータ伝送システム。
【請求項14】
前記TCP接続情報は、
前記相手方クライアントが使用するTCPリレーサーバのアドレス及び前記相手方クライアントのユーザ識別情報を含む、請求項13に記載のリレーサーバを利用したデータ伝送システム。
【請求項15】
前記UDPリレーサーバは、前記TCP接続情報のうち前記相手方クライアントが使用するTCPリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するTCPリレーサーバに伝達し、
前記相手方クライアントが使用するTCPリレーサーバは、前記TCP接続情報のうち、前記相手方クライアントのユーザ識別情報を通じて自身とTCP接続されるクライアントを確認した後、前記データパケットを前記TCP接続されるクライアントに伝達する、請求項14に記載のリレーサーバを利用したデータ伝送システム。
【請求項16】
前記クライアントは、
前記位置サーバから相手方クライアントのUDP接続情報を取得した後、自身が使用するTCPリレーサーバに前記UDP接続情報を含むデータパケットを伝送する、請求項6に記載のリレーサーバを利用したデータ伝送システム。
【請求項17】
前記UDP接続情報は、
前記相手方クライアントが使用するUDPリレーサーバのアドレス及び前記相手方クライアントのパブリックネットワークマッピングアドレスを含む、請求項16に記載のリレーサーバを利用したデータ伝送システム。
【請求項18】
前記TCPリレーサーバは、前記UDP接続情報のうち、前記相手方クライアントが使用するUDPリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するUDPリレーサーバに伝達し、
前記相手方クライアントが使用するUDPリレーサーバは、前記UDP接続情報のうち、前記相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する、請求項17に記載のリレーサーバを利用したデータ伝送システム。
【請求項19】
前記クライアントは、
前記データパケットを分割して伝送し、
前記データパケットにトランザクション番号を付与し、
前記分割されたデータパケットにフラグメント番号をそれぞれ付与する、請求項7乃至18の何れか一項に記載のリレーサーバを利用したデータ伝送システム。
【請求項20】
前記相手方クライアントは、
前記データパケットのトランザクション番号及び前記分割されたデータパケットのフラグメント番号のそれぞれに対して、ACKパケットを前記クライアントに伝送する、請求項19に記載のリレーサーバを利用したデータ伝送システム。
【請求項21】
前記リレーサーバがTCPリレーサーバである場合、
前記クライアントは、前記TCPリレーサーバとTCP接続を確立した後、前記登録用パケットを前記TCPリレーサーバに伝送する、請求項1に記載のリレーサーバを利用したデータ伝送システム。
【請求項22】
前記リレーサーバがUDPリレーサーバである場合、
前記クライアントは、前記登録結果メッセージを受信した後、前記UDPリレーサーバにキープアライブメッセージを定期的に伝送し、前記UDPリレーサーバは前記キープアライブメッセージを前記クライアントに再送信する、請求項1に記載のリレーサーバを利用したデータ伝送システム。
【請求項23】
(A)リレーサーバが、クライアントから登録用パケットを受信する段階;
(B)前記リレーサーバが、前記登録用パケットを通じて前記クライアントを登録した後、登録結果メッセージを前記クライアントに伝送する段階;及び
(C)前記リレーサーバが、前記クライアントの登録情報を位置サーバに伝送する段階
を含む、リレーサーバを利用したデータ伝送方法。
【請求項24】
前記(C)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのUDP接続情報を取得する段階;
前記クライアントが、前記UDP接続情報から前記相手方クライアントが使用するUDPリレーサーバのアドレスを確認した後、前記相手方クライアントが使用するUDPリレーサーバに前記UDP接続情報を含むデータパケットを伝送する段階;及び
前記相手方クライアントが使用するUDPリレーサーバが、前記UDP接続情報から前記相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する段階
を含む、請求項23に記載のリレーサーバを利用したデータ伝送方法。
【請求項25】
前記(C)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのTCP接続情報を取得する段階;
前記クライアントが、前記TCP接続情報から前記相手方クライアントが使用するTCPリレーサーバのアドレスを確認した後、前記相手方クライアントが使用するTCPリレーサーバに前記TCP接続情報を含むデータパケットを伝送する段階;及び
前記相手方クライアントが使用するTCPリレーサーバが、前記TCP接続情報に前記相手方クライアントのユーザ識別情報を通じて自身とTCP接続されるクライアントを確認した後、前記データパケットを前記TCP接続されるクライアントに伝達する段階
を含む、請求項23に記載のリレーサーバを利用したデータ伝送方法。
【請求項26】
前記(C)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのTCP接続情報を取得する段階;
前記クライアントが、自身が使用するUDPリレーサーバに前記TCP接続情報を含むデータパケットを伝送する段階;
前記UDPリレーサーバが、前記TCP接続情報から前記相手方クライアントが使用するTCPリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するTCPリレーサーバに伝達する段階;及び
前記相手方クライアントが使用するTCPリレーサーバが、前記TCP接続情報から前記相手方クライアントのユーザ識別情報を通じて自身とTCP接続されるクライアントを確認した後、前記データパケットを前記TCP接続されるクライアントに伝達する段階
を含む、請求項23に記載のリレーサーバを利用したデータ伝送方法。
【請求項27】
前記(C)段階以後に、
前記クライアントが、前記位置サーバから相手方クライアントのUDP接続情報を取得する段階;
前記クライアントが、前記クライアント自身が使用するTCPリレーサーバに前記UDP接続情報を含むデータパケットを伝送する段階;
前記TCPリレーサーバが、前記UDP接続情報から前記相手方クライアントが使用するUDPリレーサーバのアドレスを確認した後、前記データパケットを前記相手方クライアントが使用するUDPリレーサーバに伝達する段階;及び
前記相手方クライアントが使用するUDPリレーサーバが、前記UDP接続情報から前記相手方クライアントのパブリックネットワークマッピングアドレスを確認した後、前記データパケットを前記相手方クライアントのパブリックネットワークマッピングアドレスに伝達する段階
を含む、請求項23に記載のリレーサーバを利用したデータ伝送方法。
【請求項28】
請求項23乃至27の何れか一項に記載の方法をコンピューター上で遂行するためのプログラム。
【請求項29】
請求項28に記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【請求項30】
第1のクライアントが、位置サーバから第2のクライアントの接続情報を取得する段階;
前記第1のクライアントが、前記第1のクライアントと接続される第1のサーバに前記接続情報を含むデータパケットを伝送する段階;
前記第1のサーバが、前記接続情報から前記第2のクライアントと接続される第2のサーバのアドレスを確認した後、前記データパケットを前記第2のサーバに伝達する段階;及び
前記第2のサーバが、前記接続情報に含まれる前記第2のクライアントのユーザ識別情報を通じて前記第2のクライアントを確認した後、前記データパケットを前記第2のクライアントに伝達する段階
を含む、データ送信方法。
【請求項31】
第1のクライアントが、位置サーバから第2のクライアントの接続情報を取得する段階;
前記第1のクライアントが、前記第1のクライアントと接続される第1のサーバに前記接続情報を含むデータパケットを伝送する段階;及び
前記第1のサーバが、前記接続情報に含まれる前記第2のクライアントのユーザ識別情報を通じて前記第2のクライアントを確認した後、前記データパケットを前記第2のクライアントに伝達する段階
を含む、データ送信方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−138901(P2012−138901A)
【公開日】平成24年7月19日(2012.7.19)
【国際特許分類】
【出願番号】特願2011−262062(P2011−262062)
【出願日】平成23年11月30日(2011.11.30)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.フロッピー
【出願人】(510294195)サムソン エスディーエス カンパニー リミテッド (33)
【Fターム(参考)】