JP2009531744A - P2pファイル転送システム及び方法 - Google Patents

P2pファイル転送システム及び方法 Download PDF

Info

Publication number
JP2009531744A
JP2009531744A JP2008555141A JP2008555141A JP2009531744A JP 2009531744 A JP2009531744 A JP 2009531744A JP 2008555141 A JP2008555141 A JP 2008555141A JP 2008555141 A JP2008555141 A JP 2008555141A JP 2009531744 A JP2009531744 A JP 2009531744A
Authority
JP
Japan
Prior art keywords
channel
user
file
information
user client
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2008555141A
Other languages
English (en)
Inventor
スン ウォン チョ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Naver Corp
Original Assignee
Naver Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Naver Corp filed Critical Naver Corp
Publication of JP2009531744A publication Critical patent/JP2009531744A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • H04L61/2589NAT traversal over a relay server, e.g. traversal using relay for network address translation [TURN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1091Interfacing with client-server systems or between P2P systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • H04W88/04Terminal devices adapted for relaying to or from another terminal or user

Abstract

P2Pファイル転送システム及び方法を提供する。本P2Pファイル転送システムは、システムに接続したユーザーを管理し、ユーザー間のP2Pファイル転送を管理するP2Pノード管理システムと、ファイル送信者とファイル受信者間の直接連結によるP2Pファイル転送に失敗する場合、ファイル送信者から転送されるファイルをファイル受信者に中継するリレーサーバーと、を含む構成とした。これにより、P2Pによるファイル転送が不安定になるNATのような環境下で、より安定したファイル転送を可能にし、かつ、P2Pをより様々なファイル転送システムに拡張して適用可能にする。
【選択図】図1

Description

本発明は、ファイル転送システム及び方法に係り、より詳細には、ピア(Peer)間の直接接続によってファイルを送受信するP2P(Peer to Peer)ファイル転送システム及び方法に関する。
P2Pとは、既存のサーバーとクライアントではなく、個人コンピュータ間が直接連結され、ファイルを検索し交換できる方式のことをいう。
P2Pは、2種類の方式に大別される。その一つは、サーバーの助けを借りて個人クライアント間への接続を行うことであり、もう一つは、クライアント相互間にあらかじめIPアドレスを共有し、サーバーの助けを借りずに直接連結され、ファイルを交換する方式である。
サーバーの助けを借りて個人クライアント間にファイルを交換するP2P方式は、既に商用化されている。その代表が、ナップスターのサービスである。
P2P方式は、初期には、音楽ファイルのような個人ユーザー間のファイル交換に主に用いられたが、最近では、メッセンジャーシステムにおけるユーザー間のファイル転送、インターネットフォンにおける音声データ転送など、様々なサービスに活用されており、その活用分野は益々増加する一方である。
しかしながら、P2P方式は、特定ネットワーク環境下で正常なファイル送受信ができないという問題点があった。その代表例を挙げると、クライアントがNAT(Network Address Translation)を使用するネットワークに存在する場合、正常なP2Pファイル転送が行われないことが頻繁だった。特に、このような問題点は、ファイル送信者とファイル受信者が両者ともNATを使用する場合に一層深刻になる。
NATは、OSI(Open System Interface)モデルで3階層であるネットワーク階層で、公認IP(Public IP)アドレスを私設IP(Private IP)アドレスに変換して使用する技術である。NATは、多くの公認IPアドレスの確保が困難なオフィスなどで主として用いられてきた。NATを用いると、私設IPアドレスを使用しながらこれを公認IPアドレスと相互変換し、公認IPアドレスを多数のユーザーが共に使用できるようにし、したがって、限定された公認IPアドレス資源を節約することができる。
それ以外にも、NATは、外部からユーザー端末機への攻撃を防ぐことができ、保安上においても多くの長所があり、この点から、NATの使用は増加一途にある。
このように、NATの使用及び各種保安のためのシステムの導入から、P2P方式によるファイル転送の不安定性が問題化されており、これは、P2P方式のファイル転送の活性化に大きな障害となっている。
NATにおけるP2P方式のファイル転送の不安定性を克服するために、UDPホールパンチング(Hole Punching)のような方法が提案されたが、これはUDPに限定される方法である。しかも、UDPホールパンチングによってもその不安定性を完全に解消することはできなかった。
本発明は、上記の従来技術の問題点を解決するためのもので、P2Pによるファイル転送が不安定になるNATのような環境下で、より安定したファイル転送を可能にするP2Pファイル転送システム及び方法を提供する。
また、本発明は、P2Pファイル転送状態をモニタリングし、ファイル転送状態が不安定な場合、別のサーバーを通じてファイル転送を中継するP2Pファイル転送システム及び方法を提供する。
また、本発明は、P2Pをより様々なネットワーク環境に適用できるP2Pファイル転送システム及び方法を提供する。
それ以外の本発明の目的は、下記の説明から容易に理解されることができる。
上記目的を達成するために、本発明の一実施例によれば、ネットワークを介して接続したユーザークライアントの情報(該ユーザークライアントの情報は、ユーザーID情報及びアドレス情報を含む)を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するP2Pノード管理システムと、前記P2Pノード管理システムに接続した第1ユーザークライアント及び第2ユーザークライアント間の直接連結によるP2Pファイル送受信に失敗する場合、前記第1ユーザークライアント及び前記第2ユーザークライアント間のファイル送受信を中継するリレーサーバーと、を含むP2Pファイル転送システムが提供される。
また、本発明の他の実施例によれば、前記ユーザークライアントにはP2Pアプリケーションが設置され、前記P2Pアプリケーションは、接続時に、前記ユーザーID情報及び前記アドレス情報を前記P2Pノード管理システムに転送し、前記第1ユーザークライアント及び前記第2ユーザークライアント間の直接連結によるP2Pファイル送受信を試みることを特徴とするP2Pファイル転送システムが提供される。
また、本発明のさらに他の実施例によれば、前記第1ユーザークライアントが前記第2ユーザークライアントとのファイル送受信を要請する場合、前記リレーサーバーは、前記第1ユーザークライアントからファイル送受信要請情報を受信し、チャンネルを生成し、前記第1ユーザークライアントと前記第2ユーザークライアント間にファイル送受信に必要な情報を中継することを特徴とするP2Pファイル転送システムが提供される。
また、本発明のさらに他の実施例によれば、前記P2Pノード管理システムは、P2Pファイル共有システム、メッセンジャーファイル転送システム、インターネット電話システム、ゲームシステムのうちいずれか一つを含むことを特徴とするP2Pファイル転送システムが提供される。
また、本発明のさらに他の実施例によれば、前記ファイル送受信に必要な情報は、ユーザーID情報、公認IPアドレス情報、公認ポート番号、私設IPアドレス情報及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせであることを特徴とするP2Pファイル転送システムが提供される。
また、本発明のさらに他の実施例によれば、前記リレーサーバーは、前記チャンネルを介して前記第1ユーザークライアント及び前記第2ユーザークライアントのファイル送受信を中継することを特徴とするP2Pファイル転送システムが提供される。
また、本発明のさらに他の実施例によれば、前記リレーサーバーは、前記第1ユーザークライアントから前記第2ユーザークライアントとのファイル送受信要請を受ける場合、前記P2Pノード管理システムに、前記第2ユーザークライアントへのチャンネル招待メッセージ転送を要請し、前記P2Pノード管理システムは、前記リレーサーバーからの要請に応答して、チャンネル招待メッセージを前記第2ユーザークライアントに転送することを特徴とするP2Pファイル転送システムが提供される。
また、本発明のさらに他の実施例によれば、前記第1ユーザークライアントは、前記リレーサーバーに前記第2ユーザークライアントとのファイル送受信要請時に、前記第2ユーザークライアントのアドレス情報を提供し、前記リレーサーバーは、前記第2ユーザークライアントのアドレス情報を用いて前記第2ユーザークライアントにチャンネル招待メッセージを転送することを特徴とするP2Pファイル転送システムが提供される。
また、また、本発明の一実施例によれば、ネットワークを介して接続したユーザークライアントの情報(該ユーザークライアントの情報は、ユーザーID情報及びアドレス情報を含む)を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するP2Pノード管理システムと連動し、前記P2Pノード管理システムから接続されたユーザークライアントの情報を受信した第1ユーザークライアントのチャンネル生成要請に応答してチャンネルを生成するチャンネル生成モジュールと、前記チャンネルに参加した第1ユーザークライアント及び第2ユーザークライアント間の直接連結によるP2Pファイル転送に失敗する場合、前記チャンネルを介して前記第1ユーザークライアント及び前記第2ユーザークライアント間のファイル送受信を中継するファイル中継モジュールと、を含むリレーサーバーが提供される。
また、本発明の他の実施例によれば、前記チャンネル生成部により生成された前記チャンネルのうち、少なくとも一つの前記チャンネルのチャンネル情報を管理するチャンネル情報管理モジュールと、チャンネル生成を要請した前記第1ユーザークライアントが前記P2Pノード管理システムからの接続したユーザークライアントの情報を用いて指定した少なくとも一つの第2ユーザークライアントを前記チャンネルに招待するためのあらかじめ設定されたプロセスを行い、前記第2ユーザークライアントのチャンネル参加を処理するチャンネル参加処理モジュールと、をさらに含むことを特徴とするリレーサーバーが提供される。
また、本発明のさらに他の実施例によれば、前記チャンネル情報管理モジュールは、前記チャンネル生成時に与えられるチャンネルID情報、チャンネルに参加したユーザー数情報及びチャンネルに参加したユーザー情報を管理することを特徴とするリレーサーバーが提供される。
また、本発明のさらに他の実施例によれば、前記リレーサーバーは、前記チャンネルを介して第1ユーザークライアント及び第2ユーザークライアント間のファイル送受信に必要な情報を中継し、前記ファイル送受信に必要な情報は、公認IPアドレス、公認ポート番号、私設IPアドレス及び私設ポート番号のうちいずれか一つまたはこれらの組み合わせを含むことを特徴とする。
また、本発明のさらに他の実施例によれば、前記あらかじめ設定されたプロセスは、前記P2Pノード管理システムに前記第2ユーザークライアントへのチャンネル招待メッセージ転送を要請することであることを特徴とするリレーサーバーが提供される。
また、本発明のさらに他の実施例によれば、前記第1ユーザークライアントは、前記第2ユーザークライアントのアドレス情報を提供し、前記あらかじめ設定されたプロセスは、前記第2ユーザークライアントのアドレス情報を用いて前記第2ユーザークライアントに招待メッセージを転送することであることを特徴とするリレーサーバーが提供される。
また、本発明のさらに他の実施例によれば、前記生成されたチャンネルは、チャンネルに参加した第1ユーザークライアント及び第2ユーザークライアントが前記チャンネルを行った後、あらかじめ設定された時間が経過した後に終了することを特徴とするリレーサーバーが提供される。
また、また、本発明の一実施例によれば、ユーザーの要請に応答してチャンネルを生成する段階と、前記生成されたチャンネルを介してチャンネルに参加したユーザーが転送するP2Pファイル送受信に必要な情報を中継する段階と、チャンネルに参加したユーザー間の直接連結によるP2Pファイル転送に成功するか否かを判断する段階と、チャンネルに参加したユーザー間の直接連結によるP2Pファイル転送に失敗する場合、前記生成されたチャンネルを介してユーザー間のファイル転送を中継する段階と、を含むことを特徴とするファイル転送方法が提供される。
また、本発明の他の実施例によれば、前記P2Pファイル送受信に必要な情報は、公認IPアドレス、公認ポート番号、私設IPアドレス及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせを含むことを特徴とするファイル転送方法が提供される。
また、本発明のさらに他の実施例によれば、チャンネルを生成したユーザーが指定した他のユーザーをチャンネルに招待するためにチャンネル招待メッセージを生成する段階をさらに含み、前記チャンネル招待メッセージは、P2Pノードを管理するシステムに転送され、前記P2Pノードを管理するシステムは、該当のユーザーに招待メッセージを転送することを特徴とするファイル転送方法が提供される。
また、本発明のさらに他の実施例によれば、チャンネルを生成したユーザーが指定した他のユーザーをチャンネルに招待するためにチャンネル招待メッセージを生成する段階をさらに含み、前記他のユーザーのアドレス情報は、チャンネルを生成したユーザーから提供され、前記チャンネル招待メッセージは、前記アドレス情報に基づいて該当のユーザーに転送されることを特徴とするファイル転送方法が提供される。
上記の目的、特徴及び長所は、添付の図面に基づく下記の詳細な説明から明確になる。
本発明は、様々な変更を加え、様々な実施例が得られるので、以下では、特定実施例を図面に例示し、その詳細について説明する。ただし、下記の実施例は、本発明を特定の形態に限定するためのものではなく、本発明の思想及び技術範囲に含まれるあらゆる変更、均等物または代替物はいずれも本発明に含まれるものとして理解すべきである。なお、下記の説明において、関連する公知の技術についての具体的な説明が、本発明の要旨を曖昧にすると判断される場合には、その詳細な説明を省略する。
“第1”及び“第2”などの用語は、様々な構成要素を説明するのに使われることができるが、これらの用語によって構成要素が限定されることはない。これらの用語は、単に、ある構成要素を他の構成要素から区別する目的にのみ使用することができる。例えば、本発明の権利範囲を逸脱しない限度内で、第1構成要素は第2構成要素と命名されることができ、同様に、第2構成要素も第1構成要素と命名されることができる。“及び/または”という用語は、複数の記載された関連項目の組み合わせまたは複数の記載された関連項目のいずれかの項目を含む。
ある構成要素が他の構成要素に“連結されている”または“接続されている”と言及された時には、該当の他の構成要素に直接的に連結されていたりまたは接続されている場合の他にも、中間に他の構成要素が存在する場合も含まれるものとして理解すべきである。一方、ある構成要素が他の構成要素に“直接連結されている”または“直接接続されている”と言及された時には、中間に他の構成要素が存在しないものと理解すべきである。
本出願で使用した用語は、単に、特定の実施例を説明するためのもので、本発明を限定するためのものではない。なお、単数の表現は、文脈上、明白に別途に言及しない限り、複数の表現をも含む。本出願でいう“含む”または“有する”などの用語は、明細書上に記載された特徴、数字、段階、動作、構成要素、部品またはこれらを組み合わせたものが存在するということを示すためのもので、1つまたはそれ以上の他の特徴や数字、段階、動作、構成要素、部品またはこれらを組み合わせたものの存在または付加可能性をあらかじめ排除するものではない。
別に定義されない限り、技術的または科学的な用語を含め、ここで用いられる全ての用語は、本発明の属する技術分野における通常の知識を持つ者が一般的に理解できるものと同じ意味を有している。一般的に使われる辞書に定義されているような用語は、関連技術の文脈上に一致する意味を有するように解釈されるべきであり、本出願で明白に定義しない限り、理想的にまたは過度に形式的な意味として解釈されてはいけない。
以下、添付の図面を参照しつつ、本発明によるP2Pファイル転送システム及び方法の実施例について詳細に説明する。
図1は、本発明の一実施例によるP2Pファイル転送システムの構成を示す図である。
図1を参照すると、本発明の一実施例によるP2Pファイル転送システムは、P2Pノード管理システム100及びリレーサーバー102を含むことができる。P2Pファイル転送システムには、複数のユーザークライアント104,106,108がネットワークを介して通信を行う。
P2Pノード管理システム100は、P2Pファイル転送サービスを提供し、P2P転送のために接続したユーザークライアントノードを管理するシステムで、様々な形態のP2Pサービスシステムをいずれも含むことができる。一例として、P2Pノード管理システム100は、他のユーザーと会話をしながら同じ会話チャンネルに属するユーザーとのP2Pファイル転送を提供するメッセンジャーシステムがある。他の例として、P2Pノード管理システム100は、各ユーザーが、あらかじめ設定された共有フォルダに保存されたファイル情報を閲覧でき、共有フォルダのファイルのうち、選択されたファイルに対する交換サービスを提供する典型的なP2Pファイル共有システムであってもよい。さらに他の一例として、P2Pノード管理システム100は、ユーザー間の音声データを交換するインターネット電話サービスシステムであってもよい。さらに他の例として、P2Pノード管理システム100は、複数のユーザーがゲームデータを交換するオンラインゲームサービスシステムであってもよい。P2Pノード管理システム100には、上記のシステムの他にも、P2Pを用いた様々な種類のサービスシステムが含まれることができる。
P2Pノード管理システム100は、接続したユーザー情報を管理し、特定ユーザーが、接続したユーザーの情報を要請する場合、接続したユーザーの情報を提供する。ここで、接続したユーザー情報には、ユーザーID情報及びアドレス情報が含まれることができる。ユーザークライアント104,106,108に設置されたP2Pアプリケーション110は、ユーザークライアントがオンになるとき、または、P2Pアプリケーション110の実行のときに、ユーザーID情報及びアドレス情報をP2Pノード管理システム100に転送し、P2Pノード管理システム100は、受信した情報を管理する。
メッセンジャーシステムでP2Pファイル転送サービスを提供する場合、ユーザークライアント104,106,108に設置されるP2Pアプリケーション110は、メッセンジャーアプリケーションである。通常的なP2Pファイル共有システムの場合、ユーザークライアント104,106,108に設置されるP2Pアプリケーション110は、P2Pファイル共有アプリケーションである。
ユーザークライアントは、ネットワークを介した通信が可能であり、デジタルデータ処理が可能な端末機であれば、いかなる形態の端末機も含むことができる。例えば、ユーザークライアントは、一般的なPC、ノートブック、携帯電話、PDAなどをいずれも含むことができる。ここで、ネットワークは、一般的なインターネット網、私設網のような有線ネットワークはもとより、移動通信網、無線インターネット網のような無線ネットワークも含むことができる。
上記従来技術で説明したように、既存のP2Pファイル転送システムでは、ファイル送信者とファイル受信者がいずれもNATを使用する場合、正常なファイル送受信ができない場合がある。また、ファイル転送者とファイル受信者のいずれかのユーザーがNATを使用する場合にも、正常なファイル送受信ができない場合が度々あった。外部的に公開される公認IP(Public IP)とシステム内部における私設IP(Private IP)が別個に管理されるNATを用いたシステムは、保安上には有利であるが、P2Pサービスが円滑に支援されないという問題点があった。
本発明では、上記のNATを用いたシステムの他、その他のP2Pファイル転送がス安定になるシステムにおける円滑なファイル転送のためにリレーサーバー102をさらに含むことができる。
リレーサーバー102は、ファイル送信者とファイル受信者間にチャンネルを生成し、生成されたチャンネルを介してファイル転送者と受信者間のファイル転送を中継する機能を果たす。リレーサーバー102は、NATシステムなどによってファイル転送者とファイル受信者間のP2Pファイル転送が不可能な場合、チャンネルを介してファイル送信者から転送されるファイルをファイル受信者に提供する。
したがって、本発明の実施例によれば、P2Pアプリケーション110は、ファイル送信者とファイル受信者間に、P2Pによる直接ファイル転送が正常に行われるか否かを判断する。その判断結果、正常なファイル転送が行われない場合には、P2Pによるファイル転送ではなく、リレーサーバー102によるファイル中継が自動的に行われるようにする。
本発明の一実施例によれば、ユーザークライアントに設置されるP2Pアプリケーション110は、ファイル交換のための相手クライアントとP2Pによる直接ファイル転送を試みる。そして、NATなどによってP2Pファイル転送に失敗すると、P2Pアプリケーション110は、リレーサーバー102を介したファイル中継を要請し、要請に応じてリレーサーバー102によるファイル中継手順が行われる。
本発明の実施例によれば、ユーザー間のファイル転送のためのアドレス情報などの交換は、リレーサーバー102を介して行われる。一般的なP2Pシステムで、P2Pファイル転送のためのアドレス情報などは、P2Pノード管理システムから提供され、P2Pノード管理システムから提供した情報によってP2Pアプリケーション110間の通信を介してファイル転送が行われる。本発明の実施例によれば、リレーサーバー102で生成されたチャンネルを介してファイル転送のためのアドレス情報及びその他の付加的な情報が交換されることができる。チャンネルを介してP2Pファイル転送のためのアドレス情報が交換されると、ファイル送信者及びファイル受信者のクライアントに設置されたP2Pアプリケーション110は、直接連結によるファイル転送を試みる。この直接連結によるファイル転送に失敗する場合、リレーサーバー102によるファイル中継手順が行われる。ここで、直接連結によるファイル転送の失敗は、クライアント間の連結設定に失敗する場合、連結設定には成功したがファイル送受信ができない場合、及びあらかじめ設定された速度以下の速度でファイルが送受信される場合をいずれも含むことができる。
上記のP2Pファイル転送システムは、様々なP2P転送に適用されることができるが、説明の便宜上、以下では、本発明のP2Pファイル転送システムがメッセンジャーにおけるP2Pファイル転送に適用される場合を取り上げて説明する。
図2は、本発明に適用されるシステムがメッセンジャーシステムである場合のP2Pファイル転送システムの構成を示す図である。
図2を参照すると、メッセンジャーシステムが適用されたP2Pファイル転送システムは、ゲートウェイモニタリングサーバー200、メッセンジャー中央サーバー202、メッセージキューサーバー204、リレーサーバー102及びインスタントメッセージサーバー208を含むことができる。ユーザークライアント210,212には、P2Pアプリケーション250,252が設置される。前述の如く、メッセンジャーシステムにおけるP2Pアプリケーションは、メッセンジャーアプリケーションとすることができる。
ゲートウェイモニタリングサーバー200は、ユーザークライアント210,212が初期にメッセンジャー転送システムに接続すると、接続要請を処理し、ユーザークライアント210,212が接続する中央サーバーのアドレス情報を提供する。ユーザーが初期にログインする場合、ユーザーのログイン要請は、ゲートウェイモニタリングサーバー200に転送され、ゲートウェイモニタリングサーバー200は、ユーザーのログイン要請を処理した後、処理情報をメッセンジャー中央サーバー202に伝達する。
メッセンジャー中央サーバー202は、インスタントメッセージ転送動作を全体的に制御するサーバーで、ユーザークライアント210,212の接続を管理し、クライアントが転送したメッセージ及びその他要請情報を処理する。一般的なメッセージがメッセンジャー中央サーバー202に転送されてくる場合、メッセンジャー中央サーバー202は、転送されてきたメッセージをインスタントメッセージサーバー208に転送する。
ユーザーがインスタントメッセージを転送する場合、インスタントメッセージは、メッセージキューサーバー204に転送される。メッセージキューサーバー204は、インスタントメッセージを受信すると、メッセージパケットをキューに保存し、FIFO(First Input First Output)方式でメッセージを抽出する。メッセージキューサーバー204は、抽出したメッセージにビジネスロジックを行った後、該メッセージをメッセンジャー中央サーバー202に伝達する。ここで、メッセージキューサーバー204が行うビジネスロジックは、禁じられたメッセージ(例えば、悪口等)のフィルタリング、またはパケットを伝達するサーバーの決定などを含むことができる。
インスタントメッセージサーバー208は、ユーザークライアント210,212間のインスタントメッセージングセッションを管理し、ユーザークライアント210,212間に転送するメッセージパケットを中継する機能を行う。インスタントメッセージサーバー208は、メッセンジャー中央サーバー202からメッセージパケットを受け取った後、これを受信者クライアントに転送する。
メッセンジャーサービスにおいて、ユーザーは、他のユーザーとの会話を用いた会話窓を介してファイルの転送を行う。リレーサーバー102は、ユーザーが会話窓を介してファイルの転送を要請する場合、ユーザーがファイル転送のために必要な情報を相互間に交換するためのチャンネルを生成する。ここで、ファイル転送のために必要なユーザー情報は、相手ユーザーID情報及びアドレス情報(IPアドレス、ポート番号)を含むことができる。図2で、第1ユーザークライアント210がファイル転送者であり、第2ユーザークライアント212がファイル受信者である場合、第1ユーザークライアント210のP2Pアプリケーション250は、リレーサーバーにチャンネル生成を要請する。これに応答してリレーサーバー102はチャンネルを生成し、第2ユーザークライアント212に招待メッセージを提供し、第2ユーザークライアント212がチャンネルに参加できるようにする。このとき、第2ユーザークライアント212のアドレス情報はメッセンジャー中央サーバー202により管理されるので、リレーサーバー102がメッセンジャー中央サーバー202にファイル受信者を招待することを要請すると、メッセンジャー中央サーバー202は、第2ユーザークライアント212に招待メッセージを転送することができる。
前述の如く、ファイル送信者の第1ユーザークライアント210とファイル受信者である第2ユーザークライアント212のP2Pアプリケーション250,252は、通信を介して直接連結によるP2Pファイル転送を試み、直接連結によるP2Pファイル転送の可否を判断する。そして、直接連結によるP2Pファイル転送が可能でない場合、リレーサーバー102は、当該生成されたチャンネルを介して第1ユーザークライアント210と第2ユーザークライアント212間のファイル転送を中継する。
図3は、本発明の一実施例によるリレーサーバー102のモジュール構成を示すブロック図である。
図3を参照すると、本発明の一実施例によるリレーサーバー102は、リスナー300、リーダー302、ハンドラー304及びライター306を含むことができ、ハンドラーは、チャンネル生成モジュール310、チャンネル管理モジュール312、チャンネル参加処理モジュール314及びファイル中継モジュール316を含むことができる。
リスナー300は、リレーサーバー102にパケットが伝達されるか否かをモニタリングし、パケットが伝達されると、これをリーダー302に伝達する。リスナー300に伝達されるパケットは、チャンネル生成要請パケット、チャンネル参加要請パケット及びファイルデータパケット及びその他様々な制御メッセージパケットなどを含むことができる。リスナーとユーザークライアントはソケット通信を行うことができ、TCPプロトコルによる通信を行うことができる。
リーダー302は、リスナー300で受信したパケットを読み取り、ハンドラー304に提供する。
ハンドラー304は、リーダー302からパケットが伝達される場合、パケットの種類によって予め設定されたビジネスロジックを行う。
チャンネル生成モジュール310は、リーダー302から転送されるパケットがチャンネル生成を要請するパケットである場合、チャンネルを生成する機能を行う。ここで、チャンネルは、チャンネルに参加したユーザーが転送するデータが交換される論理的な空間を意味する。従来のP2Pシステムでは、P2Pノード管理システム100から、ファイルを交換するユーザーのアドレス情報を一方的に提供したが、本発明によれば、リレーサーバー102が、ファイル転送のための初期情報の交換のためにチャンネルを生成する。
チャンネル生成際に、チャンネル生成モジュール310は、チャンネルに固有のチャンネルID情報を与える。チャンネル生成を要請するパケットには、チャンネル生成を要請するユーザー情報が含まれており、チャンネル生成を要請したユーザーは、チャンネル生成時に自動的に該当のチャンネルに参加する。
チャンネル管理モジュール312は、リレーサーバーで生成された複数のチャンネルのそれぞれの情報を管理する機能を果たす。
図5は、本発明の一実施例によるチャンネル管理モジュールで管理するチャンネル管理データの構造を示す図である。
図5を参照すると、本発明の一実施例によるチャンネル管理データは、チャンネルID500、最大ユーザー数502、参加したユーザー数504及び参加したユーザー情報506を含む。
チャンネルID500は、チャンネルが生成される時に、チャンネル生成モジュール310が、生成されたチャンネルに固有に与えるIDである。チャンネルに参加したユーザーが送受信するパケットには、チャンネルID500に関する情報が含まれる。
最大ユーザー数502は、チャンネルに参加可能なユーザー数の最大値であり、チャンネル生成時に設定される。チャンネル生成者の要請に応じて最大ユーザー数502は変更されてもよい。
参加したユーザー数504は、現在チャンネルに参加しているユーザーの数で、ユーザーのチャンネルへの出入りによって変更される。
参加したユーザー情報506は、チャンネルに参加しているユーザーに関する情報である。ここで、ユーザー情報は、各ユーザーのアドレス情報及びユーザーID情報を含むことができる。
チャンネル参加処理モジュール314は、ファイル送受信のための相手ユーザーを招待し、相手ユーザーのチャンネル参加を処理する機能を果たす。チャンネルを生成したユーザーが、チャンネルに招待するユーザーを指定した場合、チャンネル参加処理モジュール314は、該当のユーザーのチャンネルへの招待のために、あらかじめ設定されたプロセスを行う。例えば、メッセンジャーシステムにおいては、チャンネル参加処理モジュール314は、メッセンジャー中央サーバー202に、該当のユーザーにチャンネル招待メッセージを転送することを要請することができる。
メッセンジャー中央サーバー202からチャンネル招待メッセージを受信したユーザーが招待に応答してチャンネル参加を要請した場合、チャンネル参加処理モジュール314は、そのチャンネル参加を受諾する。
招待を受けたユーザーのチャンネル参加要請メッセージには、当該ユーザーのユーザー情報が含まれている。
図4は、本発明の一実施例によるユーザー情報データの構造を示す図である。
図4を参照すると、本発明の一実施例によるユーザー情報データは、チャンネルID400、ユーザーID402、公認IP404、公認ポート406、私設IP408及び私設ポート410の情報を含む。
ユーザー情報データは、ユーザーが私設IP及び私設ポートを使用するときには私設IP408及び私設ポート410情報を含み、これらの情報を、公認IP及び公認ポートのみを使用する場合には含まない。一般的に、NATを利用する場合には、ユーザー情報データには私設IP及び私設ポート情報が含まれる。
チャンネル招待メッセージには、図4のようなユーザー情報が含まれる。チャンネル招待メッセージを介して招待を受けたユーザーは、招待をしたユーザーの情報を確認する。招待を受けたユーザーからのチャンネル参加要請メッセージにも、図4のようなユーザー情報が含まれるので、招待をしたユーザーも、招待を受けたユーザーの情報を確認することができる。
ファイル中継モジュール316は、チャンネルに参加したユーザー間のファイル転送を中継する機能を果たす。ファイル転送は、チャンネルに参加したユーザー間のファイル転送要請及びファイル転送受諾の手順を経た後に行われ、このようなファイル転送要請及びファイル転送受諾情報もまた、ファイル中継モジュール316によって中継されることができる。前述の如く、ファイル転送要請によるファイル転送受諾がなされた後、ユーザークライアントの直接連結によるファイル転送が試みられ、直接連結によるファイル転送に失敗する場合、ファイル中継モジュール316が、チャンネルに参加したユーザー間のファイル転送を中継する。
ライター306は、ハンドラー304によって処理されたデータを出力する。例えば、招待を受けたユーザーがチャンネル参加を要請する場合、ハンドラー304は、当該ユーザーのチャンネル参加を受諾し、当該ユーザーのチャンネル参加情報をライター308に出力し、ライター308は、招待を受けたユーザーのチャンネル参加情報を、招待をしたユーザーに転送する。
図6は、本発明の一実施例による一般的なP2Pファイル共有システムが適用されたP2Pファイル転送システムの構成を示す図である。
図6を参照すると、一般的なP2Pファイル共有システムが適用される場合の本発明の一実施例によるP2Pファイル転送システムは、ユーザー管理サーバー600、ファイル情報提供サーバー602及びリレーサーバー102を含むことができる。図2と同様に、ユーザークライアントにはP2Pアプリケーション650,652が設置される。図2で、ユーザー管理サーバー600及びファイル情報提供サーバー602は、図1のP2Pノード管理システム100に該当する。
ユーザー管理サーバー600は、P2Pファイル共有システムに接続したユーザーのアドレス情報と、各ユーザーが共有するファイル情報とを管理する機能を果たす。ユーザークライアント606,608に設置されたP2Pアプリケーション650,652は、クライアント606,608の電源が入ったり、P2Pアプリケーション650,652がユーザーにより実行される場合、自動的にクライアントのアドレス情報と該当クライアントが共有するファイル情報をユーザー管理サーバーに転送する。また、P2Pアプリケーション650,652は、クライアント606,608の電源が切られたり、P2Pアプリケーション650,652が終了したりする場合、終了信号をユーザー管理サーバー600に転送し、ファイル共有が不可能な状態であるということを知らせる。ユーザー管理サーバー600は、終了信号を受信すると、該当のユーザーのアドレス情報及び共有ファイル情報を削除する。
ファイル情報提供サーバー602は、ファイルを受信しようとするユーザーが要請したファイルを有している他のユーザーの情報を提供し、ファイル送信者とファイル受信者のP2Pファイル交換を制御する。例えば、ユーザーが映画‘ムーランルージュ’の動映像ファイルを要請した場合、ファイル情報提供サーバー602は、ユーザー管理サーバー600との通信を介して、映画‘ムーランルージュ’の動映像ファイルを共有ファイルとして保存しているユーザークライアントの情報(ユーザーID情報及び簡略なアドレス情報を含むことができる)を提供する。
映画‘ムーランルージュ’を保存しているユーザークライアントの情報を受信したユーザークライアント606,608に設置されたP2Pアプリケーション650,652は、リレーサーバー102を介して、ユーザーが選択した特定クライアントとファイル転送のために必要な情報を交換する。前述の如く、リレーサーバーにチャンネルを生成し、相手ユーザーのユーザーID情報及び詳細なアドレス情報(IPアドレス、ポート番号、私設IPアドレス、私設ポートアドレス)を交換する。
メッセンジャーシステムにおけると同様に、直接ファイル転送の可否は、ファイル送信者とファイル受信者のP2Pアプリケーション間の通信を通じて判断される。直接ファイル転送が可能でない場合、リレーサーバー102は、ファイル受信者とファイル送信者間のファイル転送を中継する。
図6のような一般的なP2Pファイル共有システムに本発明が適用される場合にも、図3に示すリレーサーバーの構成、図4に示すユーザー情報構成及び図5に示すチャンネル情報構成は、同一に適用可能である。
ただし、メッセンジャーシステムでは、まず、一般的にファイル送信者によりリレーサーバー102にチャンネルが生成されるが、図6のようなシステムが使用される場合には、まずファイル受信者がファイルの転送を要請するので、ファイル受信者によりリレーサーバー102にチャンネルが生成されることができる。
本発明の他の実施例によれば、図6のようなP2Pファイル共有システムでは、ファイル送受信に必要な情報がリレーサーバー102のチャンネルを介して交換されなくても良い。P2Pファイル共有システムでは、ユーザーが特定ファイルのダウンロードを要請すると、該当のファイルを有するユーザーとのP2P接続のためのアドレス情報が提供されることができる。したがって、ファイル提供サーバー602によりファイル送受信に必要な相手ユーザーのユーザーID情報及び詳細なアドレス情報(IPアドレス、ポート番号、私設IPアドレス、私設ポートアドレス)が提供されても良い。
この場合、ファイルを送受信しようとするユーザーは、ファイル提供サーバー602から受信した相手ユーザーのユーザーID情報及び詳細なアドレス情報を用いてP2P接続を行い、ファイルの送受信を試みる。
ファイル送受信に必要な情報がファイル提供サーバー602から提供されるので、上記の他の実施例によれば、リレーサーバー102は、直接連結によるP2Pファイル送受信に失敗する場合、ファイル送受信中継手順のみを行う。ユーザークライアントに設置されたP2Pアプリケーションは、直接連結によるP2Pファイル転送に失敗する場合、リレーサーバー102にファイルの中継を要請し、リレーサーバー102はチャンネルを生成し、ファイルの送受信を中継する。
図7は、本発明の一実施例によるP2Pファイル転送方法の全体的な流れを示すフローチャートである。
図7を参照すると、ユーザーが特定ファイルの転送を要請する場合、リレーサーバーのチャンネル生成モジュール310は、ファイル転送のためのチャンネルを生成する(S700)。
チャンネルは、ファイル送信者またはファイル受信者のいずれか一方の要請に応じてチャンネル生成モジュール310が生成することができる。例えば、図2に示すメッセンジャーシステムでは、ファイルを転送しようとするユーザーがまずファイル転送動作を開始するので、ファイル送信者の要請によってチャンネルが生成されることができる。
図6に示す一般的なP2Pファイル交換システムでは、ファイル受信者が特定ファイルの転送を要請しながらファイル転送動作を開始するので、ファイル受信者の要請によってチャンネルが生成されることができる。
リレーサーバーで生成可能なチャンネルの数は、リレーサーバーが受け入れ可能なコネクション(connection)の数によって決定され、通常、リレーサーバーが受け入れ可能なコネクションの数の1/2になることができる。
リレーサーバー102にチャンネルが生成されると、チャンネル参加処理モジュール314は、ファイル交換のための相手ユーザーを招待する(S702)。ファイル交換のための相手の情報は、チャンネルを生成したユーザーにより提供される。リレーサーバーは、相手のアドレス情報を有している他のサーバーを経由して招待メッセージを転送したり、相手のアドレス情報を有している他のサーバーから相手のアドレス情報を受信し、該当のユーザーに直接招待メッセージを転送する。図2の場合では、相手のアドレス情報を有している他のサーバーが、メッセンジャー中央サーバー202になることができる。図6の場合では、相手のアドレス情報を有している他のサーバーが、ユーザー管理サーバー600になることができる。もちろん、相手のアドレス情報は、チャンネルを生成したユーザーにより提供されるか、または、リレーサーバーが自体的に管理しても良く、この場合、チャンネル参加処理モジュール312は、招待メッセージを該当のユーザーに直接転送する。
ファイル交換のための相手が招待メッセージに応答してチャンネルに参加すると、ファイル送信者及びファイル受信者のクライアントに設置されたP2Pアプリケーションは、直接連結によるファイル転送を試みる(S704)。
本発明の一実施例によれば、直接連結によるファイル転送は、2つの段階を含むことができる。
その第一の段階では、P2Pアプリケーションが、一般的なP2P接続と同様に、ファイル送信者とファイル受信者間にTCP接続を介してファイル転送を試みる。
この第一の段階に失敗する場合、第二の段階で、P2Pアプリケーションは、UDPホールパンチング(Hole Punching)によるファイル転送を試みる。UDPホールパンチングは、P2Pアプリケーションがミドルボックスを経由するようにホールパンチングを試みた後、互いに直接連結されるようにする方式である。
TCP接続またはUDPホールパンチングによる連結が成功的に設定され、ファイル転送に成功する場合、直接連結により継続してファイルが転送される(S708)。
一方、TCP連結またはUDPホールパンチングによるファイル転送に失敗すると、リレーサーバー102のファイル中継モジュール316は、生成されたチャンネルを介してファイル転送を中継する(S710)。ファイル送信者は、リレーサーバーにファイルを転送し、リレーサーバーは、ファイル送信者の属したチャンネルに参加した他のユーザーに、受信したファイルを転送する。ファイル送信者とファイル受信者は、リレーサーバーのチャンネル参加時にリレーサーバーとTCP連結を設定し、TCP/IP方式によってリレーサーバーと通信することができる。ファイル中継が完了すると、生成されたチャンネルは削除される(S712)。
図8は、本発明の一実施例によるリレーサーバー102にチャンネルが生成され、ファイル送受信のためのユーザーが参加する過程を示すフローチャートである。
図8を参照すると、ファイルを転送または受信しようとするユーザー(ファイル送信者)のクライアントは、リレーサーバー102にチャンネルの生成を要請する(ステップS800)。チャンネル生成要請情報には、図4に示すようなユーザー情報が含まれている。
ユーザーのチャンネル生成要請情報に応答してリレーサーバー102のチャンネル生成モジュール310はチャンネルを生成し、生成されたチャンネルに固有のIDを与える(ステップS802)。
チャンネルが生成されると、チャンネルを生成したユーザーは、リレーサーバー102にファイル送受信のための相手ユーザーの招待を要請する(ステップS804)。招待要請情報には、相手ユーザーのユーザーID情報が含まれることができる。
リレーサーバー102のチャンネル参加処理モジュール314は、相手ユーザーのIDを他のサーバー(図2のシステムではメッセンジャー中央サーバー202、図6のP2Pファイル共有システムではユーザー情報管理サーバー600)に転送し、当該ユーザーの招待を要請する(ステップS806)。
もちろん、相手ユーザーのアドレス情報がチャンネル生成者から提供されそのアドレスを知っている場合には、リレーサーバー102が直接招待メッセージを転送することができる。
例えば、図2に示すメッセンジャーシステムでは、リレーサーバー102は、特定IDのユーザーを招待することをメッセンジャー中央サーバー202に要請し、メッセンジャー中央サーバー202は、当該IDを持つユーザーに招待メッセージを転送する。これと違い、メッセンジャーシステムにおいて、ファイル送信者は、ファイル受信者のIPアドレスのようなアドレス情報をリレーサーバー102に提供でき、リレーサーバー102は、ファイル受信者のIPアドレスに招待メッセージを直接転送してもよい。
リレーサーバー102から前記招待要請を受けたサーバー(図2のシステムではメッセンジャー中央サーバー202、P2Pファイル共有システムではユーザー情報管理サーバー600)は、リレーサーバー102からの要請情報に応じて招待メッセージをファイル受信者クライアントに転送し(ステップS808)、招待メッセージを受信したファイル受信者クライアントは、チャンネル参加要請情報をリレーサーバー102に転送する(ステップS810)。チャンネル参加要請情報には、招待を受けたユーザーの図4のようなユーザー情報が含まれる。
招待を受けたユーザーのチャンネル参加要請情報を受信したリレーサーバー102のチャンネル参加処理モジュール314は、当該ユーザーのチャンネル参加を受諾し(ステップS812)、チャンネル参加情報を、チャンネルを生成したファイル送信者クライアントに転送する(ステップS814)。チャンネル参加情報には、チャンネルに参加した相手ユーザーの情報が含まれている。
図8のような過程により、ファイルを送受信しようとするユーザーは、リレーサーバー102の同じチャンネルに参加し、相手ユーザーの公認IPアドレス、公認ポート番号、私設IPアドレス及び私設ポート番号を確認することができる。
図9は、本発明の一実施例によるチャンネル生成後のファイル転送方法を示すフローチャートである。
図9を参照すると、ファイルを転送しようとするユーザーは、リレーサーバー102にファイル転送要請情報を転送する(ステップS900)。ファイル転送要請情報には、転送しようとするファイル名とファイルサイズ情報が含まれることができる。リレーサーバー102のファイル中継モジュール316は、ファイル転送要請情報をファイル受信者クライアントに転送する(ステップS902)。
ファイル受信者クライアントは、ファイル転送を受諾し(ステップS904)、ファイル転送受諾情報は、ファイル中継モジュール316を介して、ファイルを転送しようとするユーザーに転送される(ステップS906)。
S900〜S906は、まずファイルを転送しようとするユーザーがファイル転送動作を開始する図2のメッセンジャーシステムを挙げて説明した。しかし、ファイルを受信しようとするユーザーがまずファイル転送を要請する図6のP2Pファイル共有システムでは、ファイル受信者がファイル転送を要請することができる。
ファイル送受信者がファイル送受信に同意した場合、ファイル送受信者のクライアント間の直接連結による転送が試みられる(ステップS908)。ファイル送信者のクライアントとファイル受信者のクライアントは、TCPコネクションを設定し、設定されたコネクションを介してファイル転送を試みる。
TCP連結によるファイル転送に成功する場合(ステップS910)、設定されたTCPコネクションを介してファイル転送を継続して行う(ステップS912)。本発明の一実施例によれば、ファイルがファイル送信者クライアントからファイル受信者クライアントに転送されないか、あらかじめ設定された臨界値以下の速度で送信者クライアントから受信者クライアントに転送される場合、ファイル転送に失敗したと判断する。
直接TCPコネクションを設定してファイルを転送するのに失敗した場合、UDPホールパンチングが試みられる(ステップS914)。UDPホールパンチングにより正常にファイルが転送される場合(ステップS916)、UDPホールパンチングで設定されたコネクションによりファイル転送を継続して行う(ステップS918)。
ファイル送信者クライアントに設置されたP2Pアプリケーションは、TCP直接接続及びUDPホールパンチングによるファイル転送に失敗する場合、リレーサーバー102のファイル中継モジュール316にファイル中継を要請し、ファイルデータを転送する(ステップS920)。転送されるファイルデータのヘッダ情報にはチャンネルID情報が含まれ、リレーサーバー102は、チャンネルIDに相応するチャンネルを介して、当該チャンネルに参加したファイル受信者クライアントにファイルを転送する(ステップS922)。
ファイル転送が完了すると、ファイル送信者クライアントとファイル受信者クライアントはチャンネルから出る(ステップS924)。ユーザーがチャンネルから全て出ると、リレーサーバー102は、生成されたチャンネルを終了する(ステップS926)。本発明の実施例によれば、ファイルを送受信したユーザーが他のファイルを送受信することもできるので、ユーザーがチャンネルを出てから一定時間チャンネルを維持した後、チャンネルを終了することができる。
以上では具体的な実施例に挙げて本発明を説明してきたが、添付の特許請求の範囲に記載された本発明の思想及び領域を逸脱しない範囲内で、本発明を様々に修正及び変更できるということは、該当技術分野における通常の知識を持つ者にとっては明らかである。
以上説明した如く、本発明の実施例によるP2Pファイル転送システム及び方法によれば、NATのように、P2Pによるファイル転送が不安定になる環境下においてより安定したファイル転送が可能になる。
また、本発明の実施例によれば、P2Pファイル転送状態をモニタリングし、ファイル転送が不安定な状況では、別のサーバーを介してファイル転送を中継するので、ネットワーク環境に関係なくP2Pシステムによるファイル転送が可能になり、P2Pを介したファイル転送方式がより様々なネットワーク環境に適用されることが可能になる。
本発明の一実施例によるP2Pファイル転送システムの構成を示す図である。 本発明の一実施例によるメッセンジャーシステムが適用されたP2Pファイル転送システムの構成を示す図である。 本発明の一実施例によるリレーサーバーのモジュール構成を示すブロック図である。 本発明の一実施例によるユーザー情報データの構造を示す図である。 本発明の一実施例によるチャンネル管理モジュールで管理するチャンネル管理データの構造を示す図である。 本発明に適用されるシステムが一般的なP2Pファイル共有システムである場合のP2Pファイル転送システムの構成を示す図である。 本発明の一実施例によるP2Pファイル転送方法の全体的な流れを示すフローチャートである。 本発明の一実施例によるリレーサーバーにチャンネルが生成され、ファイル送受信のためのユーザーが参加する過程を示すフローチャートである。 本発明の一実施例によるチャンネル形成後のファイル転送方法を示すフローチャートである。

Claims (19)

  1. ネットワークを介して接続したユーザークライアントのユーザーID情報及びアドレス情報を含むユーザークライアントの情報を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するP2Pノード管理システムと、
    前記P2Pノード管理システムに接続した第1ユーザークライアント及び第2ユーザークライアント間の直接連結によるP2Pファイル送受信に失敗する場合、前記第1ユーザークライアント及び前記第2ユーザークライアント間のファイル送受信を中継するリレーサーバーと、
    を含む、P2Pファイル転送システム。
  2. 前記ユーザークライアントにはP2Pアプリケーションが設置され、
    前記P2Pアプリケーションは、接続時に、前記ユーザーID情報及び前記アドレス情報を前記P2Pノード管理システムに転送し、前記第1ユーザークライアント及び前記第2ユーザークライアント間の直接連結によるP2Pファイル送受信を試みることを特徴とする、請求項1に記載のP2Pファイル転送システム。
  3. 前記第1ユーザークライアントが前記第2ユーザークライアントとのファイル送受信を要請する場合、前記リレーサーバーは、前記第1ユーザークライアントからファイル送受信要請情報を受信し、チャンネルを生成し、前記第1ユーザークライアントと前記第2ユーザークライアント間にファイル送受信に必要な情報を中継することを特徴とする、請求項1に記載のP2Pファイル転送システム。
  4. 前記P2Pノード管理システムは、P2Pファイル共有システム、メッセンジャーファイル転送システム、インターネット電話システム、ゲームシステムのうち、いずれか一つを含むことを特徴とする、請求項1に記載のP2Pファイル転送システム。
  5. 前記ファイル送受信に必要な情報は、ユーザーID情報、公認IPアドレス情報、公認ポート番号、私設IPアドレス情報及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせであることを特徴とする、請求項3に記載のP2Pファイル転送システム。
  6. 前記リレーサーバーは、前記チャンネルを介して前記第1ユーザークライアント及び前記第2ユーザークライアント間のファイル送受信を中継することを特徴とする、請求項3に記載のP2Pファイル転送システム。
  7. 前記リレーサーバーは、前記第1ユーザークライアントから前記第2ユーザークライアントとのファイル送受信要請を受ける場合、前記P2Pノード管理システムに、前記第2ユーザークライアントへのチャンネル招待メッセージ転送を要請し、前記P2Pノード管理システムは、前記リレーサーバーからの要請に応答してチャンネル招待メッセージを前記第2ユーザークライアントに転送することを特徴とする、請求項3に記載のP2Pファイル転送システム。
  8. 前記第1ユーザークライアントは、前記リレーサーバーに前記第2ユーザークライアントとのファイル送受信要請時に、前記第2ユーザークライアントのアドレス情報を提供し、前記リレーサーバーは、前記第2ユーザークライアントのアドレス情報を用いて前記第2ユーザークライアントにチャンネル招待メッセージを転送することを特徴とする、請求項3に記載のP2Pファイル転送システム。
  9. ネットワークを介して接続したユーザークライアントのユーザーID情報及びアドレス情報を含むクライアントの情報を管理し、特定ユーザークライアントの要請に応答して、接続したユーザークライアントの情報を提供するP2Pノード管理システムと連動し、前記P2Pノード管理システムから、接続したユーザークライアントの情報を受信した第1ユーザークライアントのチャンネル生成要請に応答してチャンネルを生成するチャンネル生成モジュールと、
    前記チャンネルに参加した第1ユーザークライアント及び第2ユーザークライアント間の直接連結によるP2Pファイル転送に失敗する場合、前記チャンネルを介して前記第1ユーザークライアント及び前記第2ユーザークライアント間のファイル送受信を中継するファイル中継モジュールと、
    を含む、リレーサーバー。
  10. 前記チャンネル生成部により生成された前記チャンネルのうち、少なくとも一つの前記チャンネルのチャンネル情報を管理するチャンネル情報管理モジュールと、
    チャンネル生成を要請した前記第1ユーザークライアントが前記P2Pノード管理システムからの接続したユーザークライアントの情報を用いて指定した一つ以上の第2ユーザークライアントを前記チャンネルに招待するためのあらかじめ設定されたプロセスを行い、前記第2ユーザークライアントのチャンネル参加を処理するチャンネル参加処理モジュールと、
    をさらに含むことを特徴とする、請求項9に記載のリレーサーバー。
  11. 前記チャンネル情報管理モジュールは、前記チャンネル生成時に与えられるチャンネルID情報、チャンネルに参加したユーザー数情報及びチャンネルに参加したユーザー情報を管理することを特徴とする、請求項9に記載のリレーサーバー。
  12. 前記リレーサーバーは、前記チャンネルを介して前記第1ユーザークライアント及び前記第2ユーザークライアント間のファイル送受信に必要な情報を中継し、前記ファイル送受信に必要な情報は、公認IPアドレス、公認ポート番号、私設IPアドレス及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせを含むことを特徴とする、請求項9に記載のリレーサーバー。
  13. 前記あらかじめ設定されたプロセスは、前記P2Pノード管理システムに前記第2ユーザークライアントへのチャンネル招待メッセージ転送を要請することであることを特徴とする、請求項9に記載のリレーサーバー。
  14. 前記第1ユーザークライアントは、前記第2ユーザークライアントのアドレス情報を提供し、前記あらかじめ設定されたプロセスは、前記第2ユーザークライアントのアドレス情報を用いて前記第2ユーザークライアントに招待メッセージを転送することであることを特徴とする、請求項9に記載のリレーサーバー。
  15. 前記生成されたチャンネルは、チャンネルに参加した第1ユーザークライアント及び第2ユーザークライアントが前記チャンネルを出た後、あらかじめ設定された時間が経過した後に終了することを特徴とする、請求項9に記載のリレーサーバー。
  16. ユーザーの要請に応答してチャンネルを生成する段階と、
    前記生成されたチャンネルを介して、チャンネルに参加したユーザーが転送するP2Pファイル送受信に必要な情報を中継する段階と、
    チャンネルに参加したユーザー間の直接連結によるP2Pファイル転送に成功するか否かを判断する段階と、
    チャンネルに参加したユーザー間の直接連結によるP2Pファイル転送に失敗する場合、前記生成されたチャンネルを介してユーザー間のファイル転送を中継する段階と、
    を含むことを特徴とする、ファイル転送方法。
  17. 前記P2Pファイル送受信に必要な情報は、公認IPアドレス、公認ポート番号、私設IPアドレス及び私設ポート番号のうち、いずれか一つまたはこれらの組み合わせを含むことを特徴とする、請求項16に記載のファイル転送方法。
  18. チャンネルを生成したユーザーにより指定された他のユーザーをチャンネルに招待するために、チャンネル招待メッセージを生成する段階をさらに含み、
    前記チャンネル招待メッセージは、P2Pノードを管理するシステムに転送され、前記P2Pノードを管理するシステムは、該当のユーザーに招待メッセージを転送することを特徴とする、請求項16に記載のファイル転送方法。
  19. チャンネルを生成したユーザーにより指定された他のユーザーをチャンネルに招待するために、チャンネル招待メッセージを生成する段階をさらに含み、
    前記他のユーザーのアドレス情報は、チャンネルを生成したユーザーから提供され、前記チャンネル招待メッセージは、前記アドレス情報に基づいて該当のユーザーに転送されることを特徴とする、請求項16に記載のファイル転送方法。
JP2008555141A 2006-02-17 2007-02-08 P2pファイル転送システム及び方法 Pending JP2009531744A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020060015602A KR100810759B1 (ko) 2006-02-17 2006-02-17 P2p 파일 전송 시스템 및 방법
PCT/KR2007/000686 WO2007094584A1 (en) 2006-02-17 2007-02-08 P2p file transmission system and method

Publications (1)

Publication Number Publication Date
JP2009531744A true JP2009531744A (ja) 2009-09-03

Family

ID=38371727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008555141A Pending JP2009531744A (ja) 2006-02-17 2007-02-08 P2pファイル転送システム及び方法

Country Status (4)

Country Link
US (1) US9003042B2 (ja)
JP (1) JP2009531744A (ja)
KR (1) KR100810759B1 (ja)
WO (1) WO2007094584A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014170573A (ja) * 2014-04-25 2014-09-18 Hitachi Ltd メッセージシステムおよびデータストアサーバ
JP2015019259A (ja) * 2013-07-11 2015-01-29 株式会社京三製作所 通信システム
JP2017532851A (ja) * 2014-09-08 2017-11-02 ワッツアップ・インコーポレイテッドWhatsapp Inc. Voip通話の確立及び維持
JP2019003632A (ja) * 2017-06-16 2019-01-10 Line株式会社 メッセンジャーでのファイル送信時に機器間の通信技術を活用する方法及びシステム

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090100137A1 (en) * 2007-10-11 2009-04-16 Motorola, Inc. Method and apparatus for providing services in a peer-to-peer communications network
US8171148B2 (en) * 2009-04-17 2012-05-01 Sling Media, Inc. Systems and methods for establishing connections between devices communicating over a network
CN101605138A (zh) * 2009-07-14 2009-12-16 中兴通讯股份有限公司 文件传输方法及终端
CN101610226A (zh) * 2009-07-17 2009-12-23 阿里巴巴集团控股有限公司 一种插件下载的方法和系统
US8589516B2 (en) * 2009-09-10 2013-11-19 Motorola Mobility Llc Method and system for intermediating content provider website and mobile device
US8990338B2 (en) 2009-09-10 2015-03-24 Google Technology Holdings LLC Method of exchanging photos with interface content provider website
US8621099B2 (en) * 2009-09-21 2013-12-31 Sling Media, Inc. Systems and methods for formatting media content for distribution
US9015225B2 (en) * 2009-11-16 2015-04-21 Echostar Technologies L.L.C. Systems and methods for delivering messages over a network
US9178923B2 (en) 2009-12-23 2015-11-03 Echostar Technologies L.L.C. Systems and methods for remotely controlling a media server via a network
US9275054B2 (en) 2009-12-28 2016-03-01 Sling Media, Inc. Systems and methods for searching media content
US8412833B2 (en) * 2010-04-07 2013-04-02 Apple Inc. Apparatus and method for inviting users to online sessions
US9113185B2 (en) 2010-06-23 2015-08-18 Sling Media Inc. Systems and methods for authorizing access to network services using information obtained from subscriber equipment
US9037656B2 (en) 2010-12-20 2015-05-19 Google Technology Holdings LLC Method and system for facilitating interaction with multiple content provider websites
WO2012129988A1 (zh) * 2011-03-30 2012-10-04 中兴通讯股份有限公司 一种节点加入对等网络的方法及系统
KR101799447B1 (ko) * 2011-05-27 2017-11-20 삼성전자주식회사 디바이스의 서버 연결 방법, 정보 제공 방법 및 이를 적용한 디바이스 및, 클라우딩 컴퓨팅 네트워크 시스템 및 그 동작 방법
CN102497221B (zh) * 2011-12-13 2014-12-31 华为终端有限公司 终端之间传输数据的方法和终端
US20130254259A1 (en) * 2012-03-20 2013-09-26 Fast Track Technologies Limited Method and system for publication and sharing of files via the internet
KR101980129B1 (ko) 2012-07-10 2019-05-20 한국전자통신연구원 관리 기능이 부여된 피투피 네트워크 시스템
KR101225405B1 (ko) * 2012-08-03 2013-01-22 (주)네오위즈게임즈 데이터 송수신 네트워크 제어 방법 및 장치
DE102012022875A1 (de) * 2012-11-22 2014-05-22 Giesecke & Devrient Gmbh Verfahren und System zur Applikationsinstallation
US9762508B2 (en) * 2014-10-02 2017-09-12 Microsoft Technology Licensing, Llc Relay optimization using software defined networking
KR20160053618A (ko) * 2014-11-05 2016-05-13 (주) 이스트몹 P2p 지원 장치 및 그의 p2p 지원 방법
KR102000108B1 (ko) * 2015-06-23 2019-07-15 에스케이텔레콤 주식회사 단말장치 및 단말장치의 동작 방법
CN108141721A (zh) * 2015-06-30 2018-06-08 株式会社途艾普 路由方法及执行此的网络实体
CN105227659B (zh) * 2015-09-30 2018-12-28 深圳市先河系统技术有限公司 一种网络通信方法及设备
CN105871706A (zh) * 2016-06-13 2016-08-17 珠海佳米科技有限公司 文件传输方法及系统
CN107707583B (zh) * 2016-08-08 2020-11-17 环旭电子股份有限公司 云端数据传输系统及其动态分流方法
CN112929411A (zh) * 2017-02-27 2021-06-08 深圳市先河系统技术有限公司 一种分布式文件传输方法、服务器及私有云设备
CN109660613B (zh) * 2018-12-11 2021-10-22 网宿科技股份有限公司 文件传输方法及系统
CN109462606A (zh) * 2018-12-19 2019-03-12 安徽典典科技发展有限责任公司 点对点远程访问方法
CN110225114A (zh) * 2019-06-12 2019-09-10 上海银行股份有限公司 文件传输与管理系统
KR20210020611A (ko) 2019-08-16 2021-02-24 삼성전자주식회사 전자 장치 및 전자 장치에서 서비스 제공 방법
KR102494912B1 (ko) * 2020-10-23 2023-02-06 주식회사 엘지유플러스 통신 네트워크에서 단말들 간의 연결을 제어하는 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040148333A1 (en) * 2003-01-27 2004-07-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods
US20040153858A1 (en) * 2002-12-23 2004-08-05 Hwang Shaw Hwa Direct peer-to-peer transmission protocol between two virtual networks
WO2004086247A1 (en) * 2003-03-28 2004-10-07 Freechal Inc. P2p service method
WO2005078593A1 (ja) * 2004-02-13 2005-08-25 Sony Chemicals Corporation 業務プロセスシステム及び業務プロセス方法、並びに情報処理装置

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7370004B1 (en) * 1999-11-15 2008-05-06 The Chase Manhattan Bank Personalized interactive network architecture
US7426530B1 (en) * 2000-06-12 2008-09-16 Jpmorgan Chase Bank, N.A. System and method for providing customers with seamless entry to a remote server
US8601492B2 (en) * 2001-03-31 2013-12-03 Siebel Systems, Inc. User interface for multi-channel communication
US20030009561A1 (en) * 2001-06-14 2003-01-09 Sollee Patrick N. Providing telephony services to terminals behind a firewall and /or network address translator
US7233979B2 (en) * 2002-03-14 2007-06-19 Microsoft Corporation Instant messaging session invite for arranging peer-to-peer communication between applications
US20040034705A1 (en) * 2002-08-13 2004-02-19 Mihai Focsaneanu Connecting devices in a data network
CN1505417B (zh) * 2002-12-03 2010-06-16 皇家飞利浦电子股份有限公司 能高效传递多媒体信息的无线网络系统
US7080225B1 (en) * 2002-12-10 2006-07-18 Emc Corporation Method and apparatus for managing migration of data in a computer system
US20050021770A1 (en) * 2003-06-13 2005-01-27 Guy Helm Method for transferring PPP inactivity time in a CDMA2000 network
US20060178216A1 (en) * 2003-07-15 2006-08-10 Shea Mattew T Multi-session user launching and invitation system and method
ATE423417T1 (de) * 2003-10-27 2009-03-15 Nokia Corp Verfahren und einrichtung für weitergeleitete peer-to-peer-kommunikation zwischen endgeräten in mobil-netzwerken
US8065418B1 (en) * 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
JP2005316690A (ja) * 2004-04-28 2005-11-10 Nippon Telegr & Teleph Corp <Ntt> P2pファイル転送方法、システム、利用者端末、中継端末、およびプログラム
EP1766918B1 (en) * 2004-07-09 2013-02-27 TELEFONAKTIEBOLAGET LM ERICSSON (publ) Method and arrangement for providing different services in a multimedia communication system
US8473617B2 (en) * 2004-12-31 2013-06-25 Sony Corporation Media client architecture for networked communication devices
US7912046B2 (en) * 2005-02-11 2011-03-22 Microsoft Corporation Automated NAT traversal for peer-to-peer networks
US20060194596A1 (en) * 2005-02-26 2006-08-31 Li Deng System and method for direct peer to peer mobile messaging
JP4487810B2 (ja) * 2005-03-14 2010-06-23 株式会社日立製作所 セッション中継装置
EP1708428B1 (en) * 2005-03-31 2009-05-13 Hewlett-Packard Development Company, L.P. Multimedia messaging during a Push-to-Talk session
US8874691B2 (en) * 2005-06-22 2014-10-28 Core Wireless Licensing S.A.R.L. System and method for establishing peer to peer connections between PCS and smart phones using networks with obstacles
US8296437B2 (en) * 2005-12-29 2012-10-23 Logmein, Inc. Server-mediated setup and maintenance of peer-to-peer client computer communications
US7706373B2 (en) * 2006-11-01 2010-04-27 Nuvoiz, Inc. Session initiation and maintenance while roaming

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040153858A1 (en) * 2002-12-23 2004-08-05 Hwang Shaw Hwa Direct peer-to-peer transmission protocol between two virtual networks
US20040148333A1 (en) * 2003-01-27 2004-07-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods
WO2004086247A1 (en) * 2003-03-28 2004-10-07 Freechal Inc. P2p service method
WO2005078593A1 (ja) * 2004-02-13 2005-08-25 Sony Chemicals Corporation 業務プロセスシステム及び業務プロセス方法、並びに情報処理装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015019259A (ja) * 2013-07-11 2015-01-29 株式会社京三製作所 通信システム
JP2014170573A (ja) * 2014-04-25 2014-09-18 Hitachi Ltd メッセージシステムおよびデータストアサーバ
JP2017532851A (ja) * 2014-09-08 2017-11-02 ワッツアップ・インコーポレイテッドWhatsapp Inc. Voip通話の確立及び維持
JP2019149798A (ja) * 2014-09-08 2019-09-05 ワッツアップ・インコーポレイテッドWhatsapp Inc. Voip通話の確立及び維持
JP2019003632A (ja) * 2017-06-16 2019-01-10 Line株式会社 メッセンジャーでのファイル送信時に機器間の通信技術を活用する方法及びシステム
JP7153474B2 (ja) 2017-06-16 2022-10-14 Line株式会社 メッセンジャーでのファイル送信時に機器間の通信技術を活用する方法及びシステム

Also Published As

Publication number Publication date
KR20070082682A (ko) 2007-08-22
KR100810759B1 (ko) 2008-03-07
US9003042B2 (en) 2015-04-07
US20080301233A1 (en) 2008-12-04
WO2007094584A1 (en) 2007-08-23

Similar Documents

Publication Publication Date Title
JP2009531744A (ja) P2pファイル転送システム及び方法
US20030126213A1 (en) Establishing direct instant messaging communication between wireless devices
US7526563B2 (en) Interworking gateway and method
KR100624802B1 (ko) 프리젠스 관리 구현
US7668926B2 (en) Real-time communications over data forwarding framework
US20140040404A1 (en) System and method for federating chat rooms across disparate unified communications systems
US20060194596A1 (en) System and method for direct peer to peer mobile messaging
US20060178216A1 (en) Multi-session user launching and invitation system and method
WO2007016851A1 (fr) Procede etablissant un canal de transmission de donnees pour dialogue en ligne afin de realiser la transmission du message
MX2008000157A (es) Marco de trabajo de gestion de grupo entre iguales y metodologia.
EP1678886B1 (en) Method and devices for relayed peer-to-peer communications between terminals in mobile networks
JP2005318503A (ja) プレゼンスサーバ、セッション制御サーバ、パケット中継システム、サーバ、及びシステム
WO2013063886A1 (zh) 一种网关、跨社区群组信息处理系统及方法
WO2007009369A1 (fr) Méthode et système grâce auxquels un utilisateur de messagerie instantanée peut utiliser un chat room d’un système de messagerie instantanée auquel l’utilisateur n’appartient pas
CN101309233A (zh) 实现即时通讯tcp连接复用的方法
US7593988B2 (en) Systems and methods for multiparty session invite
US20140089441A1 (en) Method And System Of Transferring Electronic Messages Using An Instant Messaging Protocol
EP3055953A1 (en) Federating chat rooms across disparate unified communications systems
CN102340456A (zh) 互通网关系统的通信方法及互通网关系统
Greene et al. Instant messaging & presence management in mobile adhoc networks
US20110055894A1 (en) Firewall and NAT Traversal for Social Networking and/or Content Sharing On Mobile Devices
WO2011032390A1 (zh) 一种融合ip消息的发送方法及系统
KR100704834B1 (ko) 동등 계층 통신을 이용한 채팅 서비스 제공 방법 및 시스템
KR101871523B1 (ko) 제1 네트워크의 텔레포니 디바이스들과 제2 네트워크에 연결된 디바이스들 간의 컨퍼런스 메시징 방법
KR101295546B1 (ko) 인스턴트 메신저 서비스 방법

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101012

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110329