KR20070082682A - P2p 파일 전송 시스템 및 방법 - Google Patents

P2p 파일 전송 시스템 및 방법 Download PDF

Info

Publication number
KR20070082682A
KR20070082682A KR1020060015602A KR20060015602A KR20070082682A KR 20070082682 A KR20070082682 A KR 20070082682A KR 1020060015602 A KR1020060015602 A KR 1020060015602A KR 20060015602 A KR20060015602 A KR 20060015602A KR 20070082682 A KR20070082682 A KR 20070082682A
Authority
KR
South Korea
Prior art keywords
channel
user
file
information
user client
Prior art date
Application number
KR1020060015602A
Other languages
English (en)
Other versions
KR100810759B1 (ko
Inventor
최성원
Original Assignee
엔에이치엔(주)
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 엔에이치엔(주) filed Critical 엔에이치엔(주)
Priority to KR1020060015602A priority Critical patent/KR100810759B1/ko
Priority to JP2008555141A priority patent/JP2009531744A/ja
Priority to PCT/KR2007/000686 priority patent/WO2007094584A1/en
Publication of KR20070082682A publication Critical patent/KR20070082682A/ko
Application granted granted Critical
Publication of KR100810759B1 publication Critical patent/KR100810759B1/ko
Priority to US12/193,552 priority patent/US9003042B2/en

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 P2P 파일 전송 시스템 및 방법에 관한 것으로서, 본 발명에 의한 시스템은 시스템에 접속한 사용자들을 관리하고, 사용자들간의 P2P 파일 전송을 관리하는 P2P 노드 관리 시스템; 및 파일 송신자와 파일 수신자 사이의 직접 연결에 의한 P2P 파일 전송이 실패할 경우, 상기 파일 송신자로부터 전송되는 파일을 상기 파일 수신자에게 중계하는 릴레이 서버를 포함한다. 본 발명에 의하면, NAT와 같이 P2P에 의한 파일 전송이 불안정해지는 환경 하에서 보다 안정적인 파일 전송이 가능한 장점이 있으며, P2P를 보다 다양한 파일 전송 시스템에 확장하여 적용할 수 있다.
P2P, 중계, 메신저

Description

P2P 파일 전송 시스템 및 방법{P2P File Transmission System and Method}
도 1은 본 발명의 바람직한 일 실시예에 따른 P2P 파일 전송 시스템의 구성을 도시한 도면.
도 2는 본 발명에 적용되는 시스템이 메신저 시스템일 경우의 P2P 파일 전송 시스템의 구성을 도시한 도면.
도 3은 본 발명의 바람직한 일 실시예에 따른 릴레이 서버의 모듈 구성을 도시한 블록도.
도 4는 본 발명의 일 실시예에 따른 사용자 정보 데이터의 구조를 도시한 도면.
도 5는 본 발명의 일 실시예에 따른 채널 관리 모듈에서 관리하는 채널 관리 데이터의 구조를 도시한 도면.
도 6은 본 발명에 적용되는 시스템이 일반적인 P2P 파일 공유 시스템일 경우의 P2P 파일 전송 시스템의 구성을 도시한 도면.
도 7은 본 발명의 바람직한 일 실시예에 따른 P2P 파일 전송 방법의 전체적임 흐름을 도시한 순서도.
도 8은 본 발명의 바람직한 일 실시예에 따른 릴레이 서버에 채널이 형성되 고 파일 송수신을 위한 사용자들이 참가하는 과정에 대한 순서도.
도 9는 본 발명의 바람직한 일 실시예에 따른 채널 형성 후의 파일 전송 방법에 대한 순서도.
본 발명은 파일 전송 시스템 및 방법에 관한 것으로서, 더욱 상세하게는 피어(Peer)들간의 직접 접속에 의해 파일을 송수신하는 P2P(Peer to Peer) 파일 전송 시스템 및 방법에 관한 것이다.
P2P는 기존의 서버와 클라이언트 개념에서 개인 컴퓨터끼리 직접 연결하여 파일을 검색하고 교환할 수 있는 방식을 말한다.
P2P는 크게 두 가지 방식이 존재하는데, 하나는 서버의 도움을 받아서 개인 클라이언트간의 접속을 수행하는 것이고 다른 하나는 클라이언트들 상호간에 미리 아이피 주소를 공유하여 서버의 도움 없이 직접 연결을 하여 파일을 교환하는 방식이다.
서버의 도움을 받아 개인 클라이언트간에 파일을 교환하는 P2P 방식은 상업적으로 이용되기 시작하였으며 대표적인 예로 냅스터의 서비스가 있다.
P2P 방식은 초기에는 음악 파일과 같은 개인 사용자들간의 파일 교환에 주로 이용되었으나, 근래에는 메신저 시스템에서 사용자들간의 파일 전송, 인터넷폰에서 의 음성 데이터 전송 등 다양한 서비스에서 활용되고 있으며, 그 활용 분야는 점차 증가하는 추세이다.
그러나, P2P 방식은 특정 네트워크 환경하에서 정상적인 파일 송수신이 이루어지지 않는 문제점이 있었다. 대표적인 경우로, 클라이언트가 NAT(Network Address Translation)을 사용하는 네트워크에 존재할 경우 정상적인 P2P 파일 전송이 이루어지지 않는 경우가 빈번히 발생하였으며, 특히 파일 송신자와 파일 수신자가 모두 NAT를 사용할 경우 이러한 문제는 더욱 심화되었다.
NAT는 OSI(Open System Interface) 모델에서 3계층인 네트워크 계층에서 공인 아이피 주소를 사설 아이피 주소로 변환하여 사용하는 기술로서, 공인 아이피 주소를 많은 확보할 수 없는 오피스 등에서 많이 사용되었다. NAT를 이용할 경우, 사설 IP주소를 사용하면서 이를 공인 IP주소와 상호 변환할 수 있도록 하여 공인 IP주소를 다수가 함께 사용할 수 있도록 함으로써 한정된 공인 아이피 주소 자원을 절약할 수 있다는 장점이 있다.
이러한 장점 이외에도 외부로부터 사용자 단말기의 공격을 방지할 수 있는 장점이 있어 보안상으로도 많은 도움이 되는 바, NAT의 사용 역시 점차 증가하고 있는 추세이다.
이와 같이, NAT의 사용 및 각종 보안을 위한 시스템이 도입됨에 따라 P2P에 의한 파일 전송의 불안정성이 문제되고 있으며, 이는 P2P 파일 전송 방식의 활성화에 큰 장애가 되고 있다.
NAT에서의 P2P 파일 전송의 불안정성을 극복하기 위해 UDP 홀 펀칭(Hole Punching)과 같은 방법이 제안되기는 하였으나, 이는 UDP에 국한되며 UDP 홀 펀칭에 의해서도 불안정성을 완전히 해소하지 못하는 문제점이 있었다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 NAT와 같이 P2P에 의한 파일 전송이 불안정해지는 환경 하에서 보다 안정적인 파일 전송이 가능한 P2P 파일 전송 시스템 및 방법을 제안하는 것이다.
본 발명의 다른 목적은 P2P 파일 전송 상태를 모니터링하여 파일 전송이 불안정한 상황인 경우 별도의 서버를 통해 파일 전송을 중계하는 P2P 파일 전송 시스템 및 방법을 제안하는 것이다.
본 발명의 또 다른 목적은 P2P를 보다 다양한 네트워크 환경에 적용할 수 있는 P2P 파일 전송 시스템 및 방법을 제안하는 것이다.
상기한 바와 같은 목적을 달성하기 위하여 본 발명의 일 측면에 따르면, 네트워크를 통해 접속한 사용자 클라이언트들의 정보-여기서 사용자 클라이언트들의 정보는 아이디 정보 및 주소 정보를 포함함-를 관리하고, 특정 사용자 클라이언트의 요청에 응답하여 접속된 사용자 클라이언트들의 정보를 제공하는 P2P 노드 관리 시스템-상기 사용자 클라이언트들에는 P2P 어플리케이션이 설치되며, 상기 P2P 어플리케이션은 접속 시 사용자 아이디 정보 및 주소 정보를 상기 P2P 노드 관리 시 스템에 전송함-; 상기 P2P 노드 관리 시스템에 접속한 제1 사용자 클라이언트 및 제2 사용자 클라이언트가 상기 P2P 어플리케이션간의 직접 연결에 의한 P2P 파일 송수신에 실패할 경우, 채널을 형성하여 상기 제1 사용자 클라이언트 및 상기 제2 사용자 클라이언트의 파일 송수신을 중계하는 릴레이 서버를 포함하는 P2P 파일 전송 시스템이 제공된다.
상기 제1 사용자 클라이언트가 상기 제2 사용자 클라이언트와의 파일 송수신을 요청할 경우, 상기 릴레이 서버는 상기 제1 사용자 클라이언트로부터 파일 송수신 요청 정보를 수신하며, 사익 채널을 통해 상기 제1 사용자 클라이언트와 상기 제2 사용자 클라이언트 사이에 파일 송수신에 필요한 정보를 중계한다.
상기 P2P 노드 관리 시스템은 P2P 파일 공유 시스템, 메신저 파일 전송 시스템, 인터넷 전화 시스템, 게임 시스템으로 이루어진 그룹으로부터 선택된 어느 하나를 포함할 수 있다.
상기 파일 송수신에 필요한 정보는 사용자 아이디 정보, 공인 아이피 주소 정보, 공인 포트 번호, 사설 아이피 주소 정보 및 사설 포트 번호로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합일 수 있다.
상기 직접 연결에 의한 P2P 파일 전송은 상기 제1 사용자 클라이언트와 상기 제2 사용자 클라이언트 사이의 TCP 연결 설정에 의한 파일 전송 및 상기 제1 사용자 클라이언트와 상기 제2 사용자 클라이언트 사이의 UDP 홀 펀칭에 의한 파일 전송을 포함할 수 있다.
상기 릴레이 서버는 상기 제1 사용자 클라이언트로부터 상기 제2 사용자 클 라이언트와의 파일 송수신을 요청받을 경우, 상기 P2P 노드 관리 시스템에 상기 제2 사용자 클라이언트로의 채널 초대 메시지 전송을 요청하며, 상기 P2P 노드 관리 시스템은 상기 릴레이 서버로부터의 요청에 응답하여 채널 초대 메시지를 상기 제2 사용자 클라이언트에 전송한다.
상기 제1 사용자 클라이언트는 상기 릴레이 서버에 상기 제2 사용자 클라이언트와의 파일 송수신 요청 시 상기 제2 사용자 클라이언트의 주소 정보를 제공하며, 상기 릴레이 서버는 상기 제2 사용자 클라이언트의 주소 정보를 이용하여 상기 제2 사용자 클라이언트에 채널 초대 메시지를 전송한다.
본 발명의 다른 측면에 따르면, 네트워크를 통해 접속한 사용자 클라이언트들의 정보-여기서 사용자 클라이언트들의 정보는 아이디 정보 및 주소 정보를 포함함-를 관리하고, 특정 사용자 클라이언트의 요청에 응답하여 접속된 사용자 클라이언트들의 정보를 제공하는 P2P 노드 관리 시스템과 연동하며, 상기 P2P 노드 관리 시스템으로부터 접속된 사용자 클라이언트들의 정보를 수신한 제1 사용자 클라이언트의 채널 생성 요청에 응답하여 채널을 생성하는 채널 생성부; 상기 채널 생성부에 의해 생성된 적어도 하나의 채널 정보를 관리하는 채널 정보 관리부; 채널 생성을 요청한 상기 제1 사용자 클라이언트가 상기 P2P 노드 관리 시스템으로부터의 접속된 사용자 클라이언트들의 정보를 이용하여 지정한 적어도 하나의 제2 사용자 클라이언트를 채널에 초대하기 위한 미리 설정된 프로세스를 수행하고 상기 제2 사용자 클라이언트의 채널 참가를 처리하는 채널 참가 처리부; 및 상기 채널에 참여한 제1 사용자 클라이언트 및 제2 사용자 클라이언트가 직접 연결에 의한 P2P 파일 전 송이 실패할 경우, 상기 형성된 채널을 통해 상기 제1 사용자 클라이언트 및 상기 제2 사용자 클라이언트간의 파일 송수신을 중계하는 파일 중계부를 포함하는 릴레이 서버가 제공된다.
본 발명의 또 다른 측면에 따르면, 사용자의 요청에 응답하여 채널을 형성하는 단계(a); 상기 형성된 채널을 통해 채널에 참여한 사용자들이 전송하는 P2P 파일 전송에 필요한 정보를 중계하는 단계(b); 채널에 참여한 사용자들간의 직접 연결에 의한 P2P 파일 전송이 성공하는지 여부를 판단하는 단계(c); 및 채널에 참여한 사용자들간의 직접 연결에 의한 P2P 파일 전송이 실패할 경우, 상기 형성된 채널을 통해 사용자들간의 파일 전송을 중계하는 단계(d)를 포함할 수 있다.
이하에서는 첨부된 도면을 참조하여 본 발명에 의한 P2P 파일 전송 시스템 및 방법의 바람직한 실시예를 상세히 설명한다.
도 1은 본 발명의 바람직한 일 실시예에 따른 P2P 파일 전송 시스템의 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 P2P 파일 전송 시스템은 P2P 노드 관리 시스템(100) 및 릴레이 서버(102)를 포함할 수 있다. P2P 파일 전송 시스템에는 복수의 사용자 클라이언트(104, 106, 108)가 네트워크를 통해 통신을 수행한다.
P2P 노드 관리 시스템(100)은 P2P 파일 전송 서비스를 제공하고 P2P 전송을 위해 접속한 사용자 클라이언트 노드를 관리하는 시스템으로서, 다양한 형태의 P2P 서비스 시스템을 모두 포함할 수 있다. 일례로, P2P 노드 관리 시스템(100)은 다른 사용자들과 대화를 하면서 같은 대화 채널에 속한 사용자들과의 P2P 파일 전송을 제공하는 메신저 시스템일 수 있다. 또 다른 예로, P2P 노드 관리 시스템(100)은 각 사용자들이 미리 설정된 공유 폴더에 저장된 파일 정보를 열람할 수 있고 공유 폴더의 파일 중 선택된 파일에 대한 교환 서비스를 제공하는 전형적인 P2P 파일 공유 시스템일 수도 있다. 또 다른 예로, P2P 노드 관리 시스템은 사용자들간의 음성 데이터를 교환하는 인터넷 전화 서비스 시스템일 수도 있다. 또 다른 예로, P2P 노드 관리 시스템(100)은 복수의 사용자가 게임 데이터를 교환하는 온라인 게임 서비스 시스템일 수도 있다. 상술한 P2P 노드 관리 시스템 이외에도 P2P를 이용한 다양한 종류의 서비스 시스템이 포함될 수 있을 것이다.
P2P 노드 관리 시스템(100)은 접속한 사용자 정보를 관리하고, 특정 사용자가 접속한 사용자들의 정보를 요청할 경우, 접속한 사용자들의 정보를 제공한다. 여기서 접속한 사용자 정보는 사용자 아이디 정보 및 주소 정보를 포함할 수 있다. 사용자 클라이언트들(104, 106, 108)에 설치된 P2P 어플리케이션(110)은 사용자 클라이언트가 켜지거나 P2P 어플리케이션의 실행 시 아이디 정보 및 주소 정보를 P2P 노드 관리 시스템(100)에 전송하며, P2P 노드 관리 시스템(100)은 수신된 정보를 관리한다.
메신저 시스템에서 P2P 파일 전송 서비스를 제공할 경우, 사용자 클라이언트들(104, 106, 108)에 설치되는 P2P 어플리케이션(110)은 메신저 어플리케이션일 수 있다. 통상적인 P2P 파일 공유 시스템의 경우, 사용자 클라이언트들(104, 106, 108)에 설치되는 P2P 어플리케이션은 P2P 파일 공유 어플리케이션일 수 있다
사용자 클라이언트는 네트워크를 통한 통신이 가능하고 디지털 데이터 처리가 가능한 어떠한 형태의 단말기도 포함할 수 있다. 예를 들어, 사용자 클라이언트는 일반적인 PC, 노트북, 휴대폰, PDA 등을 모두 포함할 수 있다. 여기서 네트워크는 일반적인 인터넷망, 사설망과 같은 유선 네트워크는 물론 이동통신망, 무선 인터넷망과 같은 무선 네트워크를 모두 포함할 수 있다.
종래 기술에서 살펴본 바와 같이, 기존의 P2P 파일 전송 시스템에서는 파일 송신자와 파일 수신자가 모두 NAT를 사용하는 경우 정상적인 파일 송수신이 이루어지지 않는 경우가 발생하였다. 또한, 파일 전송자와 파일 수신자 중 어느 한 사용자가 NAT를 사용하는 경우에도 정상적인 파일 송수신이 이루어지지 않는 경우도 종종 발생한다. 외부적으로 공개되는 공인 아이피와 시스템 내부에서의 사설 아이피가 별도로 관리되는 NAT를 이용한 시스템은 보안상 유리한 장점이 있으나 P2P 서비스가 원활하게 지원되지 않는 문제점이 있었다.
본 발명에서는 상술한 NAT를 이용한 시스템은 물론 기타의 P2P 파일 전송이 불안해지는 시스템에서의 원활한 파일 전송을 위해 릴레이 서버(102)를 추가적으로 포함한다.
릴레이 서버(102)는 파일 송신자와 파일 수신자 사이에 채널을 형성하고 형성된 채널을 통해 파일 전송자와 수신자 사이의 파일 전송을 중계하는 기능을 한다. 릴레이 서버(102)는 NAT 시스템 등으로 인해 파일 전송자와 파일 수신자 사이의 P2P 파일 전송이 불가능할 경우, 채널을 통해 파일 송신자로부터 전송되는 파일 을 파일 수신자에게 제공한다.
따라서, 본 발명의 바람직한 실시예에 따르면, 파일 송신자와 파일 수신자 사이에 P2P에 의한 직접 파일 전송이 정상적으로 이루어지는지 여부를 판단하고, 판단 결과 정상적인 파일 전송이 이루어지지 않는 경우에는 P2P에 의한 파일 전송이 아닌 릴레이 서버(102)에 의한 파일 중계가 자동적으로 이루어지도록 한다.
본 발명의 일 실시예에 따르면, 사용자 클라이언트에 설치되는 P2P 어플리케이션(110)은 파일 교환을 위한 상대방 클라이언트와 P2P에 의한 직접 파일 전송을 시도하며 NAT 등으로 인해 P2P 파일 전송에 실패할 경우 상기 P2P 어플리케이션(110)은 릴레이 서버(102)를 통한 파일 중계를 요청하며, 릴레이 서버(102)에 의한 파일 중계 절차가 수행된다.
본 발명의 바람직한 실시예에 따르면, 사용자들간의 파일 전송을 위한 주소 정보 등의 교환은 릴레이 서버(102)를 통해 이루어진다. 일반적인 P2P 시스템에서 P2P 파일 전송을 위한 주소 정보 등은 P2P 노드 관리 시스템에서 제공하며, P2P 노드 관리 시스템에서 제공한 정보에 따라 P2P 어플리케이션(110) 사이의 통신을 통해 파일 전송이 수행된다. 본 발명의 바람직한 실시예에 따르면, 릴레이 서버(102)에서 형성된 채널을 통해 파일 전송을 위한 주소 정보 및 기타의 부가적인 정보가 교환되는 것이 바람직하다. 채널을 통해 P2P 파일 전송을 위한 주소 정보가 교환되면, 파일 송신자 및 파일 수신자의 클라이언트들에 설치된 P2P 어플리케이션(110)은 직접 연결에 의한 파일 전송을 시도하며, 직접 연결에 의한 파일 전송에 실패할 경우, 릴레이 서버에 의한 파일 중계 절차가 수행된다. 여기서, 직접 연결에 의한 파일 전송 실패는 클라이언트들간의 연결 설정에 실패하는 경우 및 연결 설정은 성공 하였으나 파일 송수신이 이루어지지 않거나 미리 설정된 속도 이하로 파일이 송수신되는 경우를 모두 포함할 수 있을 것이다.
상술한 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)로 전송될 경우 중앙 서버는 전송된 메시지를 인스턴트 메시지 서버(208)로 전송한다.
사용자가 인스턴트 메시지를 전송할 경우, 인스턴트 메시지는 메시지 큐 서버(204)에 전송된다. 메시지 큐 서버(204)는 인스턴트 메시지가 전송될 경우 메시지 패킷을 큐에 저장하고 FIFO(First Input First Output) 방식으로 메시지를 추출한다. 메시지 큐 서버(204)는 추출한 메시지에 대해 비즈니스 로직을 수행한 후 메시지를 메신저 중앙 서버(202)에 전달한다. 메시지 큐 서버(204)가 수행하는 비즈니스 로직은 금지된 메시지(예를 들어, 욕설 등)에 대한 필터링 및 패킷을 전달할 서버의 결정 등을 포함할 수 있을 것이다.
인스턴트 메시지 서버(208)는 사용자 클라이언트들(210, 212)간의 인스턴트 메시징 세션을 관리하며 사용자 클라이언트들(210, 212)간에 전송하는 메시지 패킷을 중계하는 기능을 한다. 인스턴트 메시지 서버(208)는 메신저 중앙 서버(202)로부터 메시지 패킷을 전달받은 후 이를 수신자 클라이언트에 전송한다.
메신저 서비스에서, 사용자는 다른 사용자와의 대화를 이용한 대화창을 통해 파일의 전송을 수행한다. 릴레이 서버(102)는 사용자가 대화창을 통해 파일의 전송을 요청할 경우 파일 전송을 위해 필요한 정보를 사용자들간에 교환하기 위한 채널을 형성한다. 여기서, 파일 전송을 위해 필요한 사용자 정보는 상대방 사용자의 아 이디 정보 및 주소 정보(IP주소, 포트 번호)를 포함할 수 있을 것이다. 도 2에서, 사용자 클라이언트1(210)이 파일 전송자이고 사용자 클라이언트2(212)가 파일 수신자일 경우, 파일 전송자인 사용자 클라이언트1(210)의 P2P 어플리케이션(250)은 릴레이 서버에 채널 생성을 요청하며, 이에 응답하여 릴레이 서버(102)는 채널을 형성하고, 파일 수신자인 사용자 클라이언트2(212)에 채널에 참여하도록 초대 메시지를 제공한다. 이때, 파일 수신자인 사용자 클라이언트2(212)의 주소 정보는 메신저 중앙 서버에 의해 관리되므로, 릴레이 서버(102)는 메신저 중앙 서버(202)에 파일 수신자의 초대를 요청하고 메신저 중앙 서버(202)가 사용자 클라이언트2(212)에게 초대 메시지를 전송할 수 있다.
전술한 바와 같이, 파일 송신자인 사용자 클라이언트1(210)과 파일 수신자인 사용자 클라이언트2(212)의 P2P 어플리케이션들(250, 252)은 통신을 통해 직접 연결에 의한 P2P 파일 전송을 시도하고, 직접 연결에 의한 P2P 파일 전송이 가능한지 여부를 판단하며, 직접 연결에 의한 P2P 파일 전송이 가능하지 않을 경우, 릴레이 서버(102)는 상기 형성된 채널을 통해 사용자 클라이언트1(210)과 사용자 클라이언트2(212) 사이의 파일 전송을 중계한다.
도 3은 본 발명의 바람직한 일 실시예에 따른 릴레이 서버의 모듈 구성을 도시한 블록도이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 릴레이 서버는 리스너(300), 리더(302), 핸들러(304) 및 라이터(306)를 포함할 수 있으며, 핸들러는 채널 생성 모듈(310), 채널 관리 모듈(312), 채널 참가 처리 모듈(314) 및 파일 중계 모듈 (316)을 포함할 수 있다.
리스너(300)는 릴레이 서버에 패킷이 전달되는지 여부를 모니터링하며, 패킷이 전달될 경우 이를 리더(302)에 전달한다. 리스너(300)에 전달되는 패킷에는 채널 생성 요청 패킷, 채널 참가 요청 패킷 및 파일 데이터 패킷 및 기타 다양한 제어 메시지 패킷 등이 포함될 수 있다. 리스너와 사용자 클라이언트는 소켓 통신을 수행할 수 있으며, 바람직하게는 TCP 프로토콜에 의해 수행된다.
릴레이 서버 리더(302)는 리스너(300)에 수신된 패킷을 읽어와 릴레이 서버 핸들러(304)에 제공하는 기능을 한다.
핸들러(304)는 리더(302)로부터 패킷이 전달될 경우, 패킷의 종류에 따라 미리 설정된 비즈니스 로직을 수행한다.
채널 생성 모듈(310)은, 상기 리더(302)로부터 전송되는 패킷이 채널 생성을 요청하는 패킷일 경우, 채널을 생성하는 기능을 한다. 여기서 채널은 채널에 참여한 사용자들이 전송하는 데이터가 교환되는 논리적인 공간을 의미한다. 종래의 P2P 시스템의 경우, P2P 노드 관리 시스템(100)에서 파일을 교환할 사용자들의 주소 정보를 일방적으로 제공하였으나, 본 발명에 의하면 파일 전송을 위한 초기 정보의 교환을 위해 릴레이 서버에서 채널을 형성하도록 한다.
채널 생성 시 채널 생성 모듈(310)은 채널의 고유 아이디 정보를 부여한다. 채널 생성을 요청하는 패킷에는 채널 생성을 요청하는 사용자 정보가 포함되어 있으며, 채널 생성을 요청한 사용자는 채널 생성 시 자동적으로 해당 채널에 참가한다.
채널 관리 모듈(312)은 릴레이 서버에 생성된 복수의 채널 각각의 정보를 관리하는 기능을 한다.
도 5는 본 발명의 일 실시예에 따른 채널 관리 모듈에서 관리하는 채널 관리 데이터의 구조를 도시한 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 채널 관리 데이터는 채널 아이디(500), 최대 사용자 수(502), 참가한 사용자 수(504) 및 참가한 사용자 정보(506)를 포함한다.
채널 아이디(500)는 채널이 생성될 때 채널 생성 모듈(310)이 고유하게 부여하는 아이디 정보이다. 채널에 참여한 사용자들이 송수신하는 패킷에는 채널 아이디 정보가 포함된다.
최대 사용자 수(502)는 채널에 참여 가능한 최대 사용자 수이며 채널 생성 시에 설정된다. 채널 생성자의 요청에 의해 최대 사용자 수는 변경될 수도 있다.
참가한 사용자 수(504)는 현재 채널에 참가하고 있는 사용자의 수이며, 사용자의 채널 참가/나가기에 따라 변경된다.
참가한 사용자 정보(506)는 채널에 참가하고 있는 사용자들의 정보이다. 여기서 사용자 정보는 각 사용자의 주소 정보 및 아이디 정보를 포함할 수 있다.
채널 참가 처리 모듈(314)는 파일 송수신을 위한 상대방 사용자를 초대하고 상대방 사용자의 채널 참가를 처리하는 기능을 한다. 채널을 생성한 사용자가 채널에 초대할 사용자를 지정한 경우, 채널 참가 처리 모듈(314)는 해당 사용자의 채널 초대를 위해 미리 설정된 프로세스를 수행한다. 예를 들어, 메신저 시스템의 경우, 채널 참가 처리 모듈(314)은 메신저 중앙 서버에 해당 사용자에게 채널 초대 메시지를 전송할 것을 요청할 수 있다. 채널 참가 처리 모듈(314)은 상기 메신저 중앙 서버로부터 채널 초대 메시지를 수신한 사용자가 초대에 응답하여 채널 참가를 요청할 경우 채널 참가를 수락한다.
초대를 받은 사용자의 채널 참가 요청 메시지에는 해당 사용자의 사용자 정보가 포함되어 있다.
도 4는 본 발명의 일 실시예에 따른 사용자 정보 데이터의 구조를 도시한 도면이다.
도 4을 참조하면, 본 발명의 일 실시예에 따른 사용자 정보 데이터는 채널 아이디(400), 사용자 아이디(402), 공인 아이피(404), 공인 포트(406), 사설 아이피(408) 및 사설 포트(410) 정보를 포함한다.
사설 아이피(408) 및 사설 포트(410) 정보는 사용자가 사설 아이피 및 사설 포트를 사용할 때 포함되며, 공인 아이피 및 공인 포트만을 사용하는 경우에는 포함되지 않는다. 일반적으로 NAT를 이용하는 경우에는 사설 아이피 및 사설 포트 정보가 포함된다.
채널 초대 메시지에는 도 4와 같은 사용자 정보가 포함되며, 채널 초대 메시지를 통해 초대를 받은 사용자는 초대를 한 사용자의 정보를 확인하고, 초대를 받은 사용자의 채널 참가 요청 메시지에도 도 4와 같은 사용자 정보가 포함되어 초대를 한 사용자는 초대를 받은 사용자의 정보를 확인할 수 있다.
파일 중계 모듈(316)은 채널에 참여한 사용자들간의 파일 전송을 중계하는 기능을 한다. 파일 전송은 채널에 참여한 사용자들간의 파일 전송 요청 및 파일 전송 수락 절차를 거친 후에 이루어지며, 이러한 파일 전송 요청 및 파일 전송 수락 정보 역시 파일 중계 모듈(316)에 의해 중계될 수 있다. 전술한 바와 같이, 파일 전송 요청에 따른 파일 전송 수락이 이루어진 후, 사용자 클라이언트들의 직접 연결에 의한 파일 전송이 시도되고, 직접 연결에 의한 파일 전송에 실패할 경우 파일 중계 모듈(316)이 채널에 참여한 사용자들간의 파일 전송을 중계한다.
라이터(306)는 핸들러(304)에 의해 처리된 데이터를 출력하는 기능을 한다. 예를 들어, 초대를 받은 사용자가 채널 참가를 요청할 경우, 핸들러(304)는 해당 사용자의 채널 참가를 수락하고, 해당 사용자의 채널 참가 정보를 라이터(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)와의 통신을 통해 영화 '물랑루즈' 동영상 파일을 공유 파일로 저장하고 있는 사용자 클라이언트들의 정보(아이디 정보 및 간략한 주소 정보를 포함할 수 있음)를 제공한다.
영화 '물랑루즈'를 저장하고 있는 사용자 클라이언트들의 정보를 수신한 사용자 클라이언트들(606, 608)에 설치된 P2P 어플리케이션(650, 652)은 릴레이 서버(102)를 통해 사용자가 선택한 특정 클라이언트와 파일 전송을 위해 필요한 정보를 교환한다. 전술한 바와 같이, 릴레이 서버에 채널을 형성하여 상대방 사용자의 아이디 정보 및 상세한 주소 정보(IP 주소, 포트 번호, 사설 IP 주소, 사설 포트 주 소)를 교환한다.
메신저 시스템에서의 같이, 파일 송신자와 파일 수신자의 P2P 어플리케이션들간의 통신을 통해 직접 파일 전송이 가능한지 여부가 판단되며, 직접 파일 전송이 가능하지 않을 경우, 릴레이 서버(102)는 파일 수신자와 파일 송신자 사이의 파일 전송을 중계한다.
도 6과 같은 일반적인 P2P 파일 공유 시스템에 본 발명이 적용될 경우에도 도 3에 도시된 릴레이 서버의 구성, 도 4에 도시된 사용자 정보 구성 및 도 5에 도시된 채널 정보 구성은 동일할 수 있다.
다만, 메신저 시스템에서는 일반적으로 파일 송신자가 먼저 릴레이 서버에 채널을 형성하나, 도 6과 같은 시스템이 사용될 경우, 파일 수신자가 먼저 파일의 전송을 요청하므로 파일 수신자에 의해 릴레이 서버에 채널이 형성될 수 있을 것이다.
본 발명의 다른 실시예에 따르면, 도 6과 같은 P2P 파일 공유 시스템의 경우, 파일 송수신에 필요한 정보는 릴레이 서버의 채널을 통해 교환되지 않아도 무방하다. P2P 파일 공유 시스템의 경우, 사용자가 특정 파일의 다운로드를 요청하면, 해당 파일을 가진 사용자와의 P2P 접속을 위한 주소 정보가 제공될 수 있는 바, 파일 제공 서버(602)가 파일 송수신에 필요한 상대방 사용자의 아이디 정보 및 상세한 주소 정보(IP 주소, 포트 번호, 사설 IP 주소, 사설 포트 주소)를 제공할 수도 있을 것이다.
이 경우, 파일을 송수신하려는 사용자들은 파일 제공 서버(602)로부터 수신 한 상대방 사용자의 아이디 정보 및 상세한 주소 정보를 이용하여 P2P 접속을 수행하고 파일을 송수신을 시도한다.
파일 송수신에 필요한 정보가 파일 제공 서버(602)로부터 제공되기 때문에, 상술한 다른 실시예에 따르면, 릴레이 서버(102)는 직접 연결에 의한 P2P 파일 송수신이 실패할 경우 파일 송수신 중계 절차만을 수행한다. 사용자 클라이언트들에 설치된 P2P 어플리케이션은 직접 연결에 의한 P2P 파일 전송에 실패할 경우, 릴레이 서버(102)에 파일의 중계를 요청하며, 릴레이 서버(102)는 채널을 형성하여 파일을 송수신을 중계한다.
도 7은 본 발명의 바람직한 일 실시예에 따른 P2P 파일 전송 방법의 전체적임 흐름을 도시한 순서도이다.
도 7을 참조하면, 사용자가 특정 파일에 대한 전송을 요청할 경우, 릴레이 서버의 채널 생성 모듈(310)은 파일 전송을 위한 채널을 형성한다(단계 S700).
채널은 파일 송신자 또는 파일 수신자 중 어느 한 사용자의 요청에 의해 채널 생성 모듈(310)을 통해 형성될 수 있다. 예를 들어, 도 2에 도시된 메신저 시스템의 경우, 파일을 전송하려는 사용자가 먼저 파일 전송 동작을 개시하므로 파일 송신자의 요청에 의해 채널이 형성될 수 있을 것이다.
도 6에 도시된 일반적인 P2P 파일 교환 시스템의 경우, 파일 수신자가 특정 파일의 전송을 요청하면서 파일 전송 동작을 개시하므로 파일 수신자의 요청에 의해 채널이 형성될 수 있을 것이다.
릴레이 서버에서 형성 가능한 채널의 수는 릴레이 서버가 수용 가능한 커넥 션(connection)의 수에 의해 결정되며, 일반적으로 릴레이 서버가 수용 가능한 커넥션의 수의 1/2이 될 수 있을 것이다.
릴레이 서버에 채널이 형성되면, 릴레이 서버의 채널 참가 처리 모듈(314)은 파일 교환을 위한 상대방 사용자를 초대한다(단계 S702). 파일 교환을 위한 상대방 정보는 채널을 형성한 사용자에 의해 제공된다. 릴레이 서버는 상대방의 주소 정보를 가지고 있는 다른 서버를 경유하여 초대 메시지를 전송하거나, 상대방의 주소 정보를 가지고 있는 다른 서버로부터 상대방 주소 정보를 제공받아 해당 사용자에게 직접 초대 메시지를 전송한다. 도 2의 경우, 상대방의 주소 정보를 가지고 있는 다른 서버는 메신저 중앙 서버(202)일 수 있다. 도 6의 경우, 상대방의 주소 정보를 가지고 있는 다른 서버는 사용자 관리 서버(600)일 수 있다. 물론, 상대방의 주소 정보는 채널을 형성한 사용자에 의해 제공되거나, 릴레이 서버가 자체적으로 관리할 수도 있으며, 이 경우, 채널 참가 처리 모듈(312)은 초대 메시지를 해당 사용자에게 직접 전송한다.
파일 교환을 위한 상대방이 초대 메시지에 응답하여 채널에 참가하면, 파일 송신자 및 파일 수신자의 클라이언트에 설치된 P2P 어플리케이션은 직접 연결에 의한 파일 전송을 시도한다(단계 S704).
본 발명의 바람직한 실시예에 따르면, 직접 연결에 의한 파일 전송은 두 개의 단계를 포함할 수 있다. 첫번째 단계는 일반적인 P2P 접속과 마찬가지로 파일 송신자와 파일 수신자 사이에 TCP 접속을 통해 파일 전송을 시도하는 것이다.
첫 번째 단계가 실패할 경우, 두 번째 단계로 TCP 접속에 의한 파일 전송이 실패할 경우, UDP 홀 펀칭(Hole Punching)에 의한 파일 전송을 시도한다. UDP 홀 펀칭은 P2P 어플리케이션이 미들 박스를 경유하도록 홀 펀칭을 시도 한 후 서로 직접 연결되도록 하는 방식이다.
TCP 연결 또는 UDP 홀 펀칭에 의한 연결이 성공적으로 설정되고 파일 전송이 성공적으로 이루어지는 경우 직접 연결에 의해 계속적으로 파일이 전송된다(단계 S708).
TCP 연결 또는 UDP 홀 펀칭에 의한 파일 전송에 실패하는 경우, 릴레이 서버의 파일 중계 모듈(316)은 형성된 채널을 통해 릴레이 서버가 파일 전송을 중계한다(단계 S710). 파일 송신자는 릴레이 서버로 파일을 전송하며, 릴레이 서버는 파일 송신자가 속한 채널에 참여한 다른 사용자에게 수신된 파일을 전송한다. 파일 송신자와 파일 수신자는 릴레이 서버의 채널 참여 시 릴레이 서버와 TCP 연결을 설정하며, TCP/IP 방식에 의해 릴레이 서버와 통신할 수 있다. 파일 중계가 완료되면, 형성된 채널은 삭제된다(단계 S712)
도 8은 본 발명의 바람직한 일 실시예에 따른 릴레이 서버에 채널이 형성되고 파일 송수신을 위한 사용자들이 참가하는 과정에 대한 순서도이다.
도 8을 참조하면, 파일을 전송 또는 수신하려는 사용자는 릴레이 서버에 채널의 생성을 요청한다(단계 S800). 채널 생성 요청 정보에는 도 4와 같은 사용자 정보가 포함되어 있다.
사용자의 채널 생성 요청 정보에 응답하여 릴레이 서버의 채널 생성 모듈(310)은 채널을 생성하고 생성된 채널에 고유의 아이디를 부여한다(단계 S802).
채널이 생성되면, 채널을 생성한 사용자는 릴레이 서버에 파일 송수신을 위한 상대방 사용자의 초대를 요청한다(단계 S804). 초대 요청 정보에는 상대방 사용자의 아이디 정보가 포함될 수 있다.
릴레이 서버의 채널 참가 처리 모듈(314)은 상대방 사용자의 아이디를 다른 서버(도 2의 시스템에서의 메신저 중앙 서버(202), 도 6의 P2P 파일 공유 시스템에서의 사용자 정보 관리 서버(600))에 전송하여 해당 사용자의 초대를 요청한다(단계 S806).
물론, 상대방 사용자의 주소 정보가 채널 생성자로부터 제공되어 주소를 알고 있을 경우에는 릴레이 서버가 직접 초대 메시지를 전송할 수도 있을 것이다.
예를 들어, 도 2에 도시된 메신저 시스템의 경우, 릴레이 서버는 특정 아이디의 사용자를 초대할 것을 메신저 중앙 서버(202)에 요청하며, 메신저 중앙 서버는 해당 아이디를 가진 사용자에게 초대 메시지를 전송한다. 이와 달리, 메신저 시스템에서 파일 송신자는 파일 수신자의 아이피 주소와 같은 주소 정보를 릴레이 서버에 제공할 수 있으며, 릴레이 서버는 파일 수신자의 아이피 주소로 초대 메시지를 직접 전송할 수도 있는 것이다.
릴레이 서버로부터 상기 초대 요청을 받은 서버(도 2의 시스템에서의 메신저 중앙 서버(202), P2P 파일 공유 시스템에서의 사용자 정보 관리 서버(600))는 릴레이 서버로부터의 요청 정보에 따라 초대 메시지를 해당 사용자 클라이언트 전송하며(단계 S808), 초대 메시지를 수신한 사용자 클라이언트는 채널 참여 요청 정보를 릴레이 서버에 전송한다(단계 S810). 채널 참여 요청 정보에는 초대를 받은 사용자 의 도 4와 같은 사용자 정보가 포함된다.
초대를 받은 사용자의 채널 참여 요청 정보를 수신한 릴레이 서버의 채널 참가 처리 모듈(314)은 해당 사용자의 채널 참여를 수락하고(단계 S812), 채널 참여 정보를 채널을 생성한 사용자에게 전송한다(단계 S814). 채널 참여 정보에는 채널에 참여한 상대방 사용자의 정보가 포함되어 있다.
도 8과 같은 과정을 통해 파일을 송수신하려는 사용자는 릴레이 서버의 같은 채널에 참여하며 상대방 사용자의 공인 아이피 주소, 공인 포트 번호, 사설 아이피 주소 및 사설 포트 번호를 확인할 수 있다.
도 9는 본 발명의 바람직한 일 실시예에 따른 채널 형성 후의 파일 전송 방법에 대한 순서도이다.
도 9를 참조하면, 파일을 전송하려는 사용자는 릴레이 서버에 파일 전송 요청 정보를 전송한다(단계 S900). 파일 전송 요청 정보에는 전송하려는 파일 명과 파일 사이즈 정보가 포함될 수 있다. 릴레이 서버의 파일 중계 모듈(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 홀 펀칭에 의한 파일 전송에 실패할 경우, 릴레이 서버의 파일 중계 모듈(316)에 파일 중계를 요청하고 파일 데이터를 전송한다(단계 S920). 전송되는 파일 데이터의 헤더 정보에는 채널 아이디 정보가 포함되며, 릴레이 서버는 채널 아이디에 상응하는 채널을 통해 해당 채널에 참여한 파일 수신자 클라이언트로 파일을 전송한다(단계 S922).
파일 전송이 완료되면, 파일 송신자 클라이언트와 파일 수신자 클라이언트는 채널에서 나간다(단계 S924). 사용자들이 채널에서 모두 나갈 경우, 릴레이 서버는 형성된 채널을 종료한다(단계 S926). 본 발명의 바람직한 실시예에 따르면, 파일을 송수신한 사용자가 다른 파일을 송수신할 수도 있으므로, 사용자들이 채널을 나간 후 일정 시간동안 채널을 유지한 후 채널을 종료하는 것이 바람직하다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야에서 통상의 지식을 가진 자라면 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
이상에서 설명한 바와 같이, 본 발명의 바람직한 실시예에 따른 P2P 파일 전송 시스템 및 방법에 따르면, NAT와 같이 P2P에 의한 파일 전송이 불안정해지는 환경 하에서 보다 안정적인 파일 전송이 가능한 장점이 있다
또한, 본 발명의 바람직한 실시예에 따르면, P2P 파일 전송 상태를 모니터링하여 파일 전송이 불안정한 상황인 경우 별도의 서버를 통해 파일 전송을 중계함으로써 네트워크 환경에 관계 없이 P2P 시스템에 의한 파일 전송이 가능하고, P2P를 통한 파일 전송 방식이 보다 다양한 네트워크 환경에 적용될 수 있는 장점이 있다.

Claims (17)

  1. 네트워크를 통해 접속한 사용자 클라이언트들의 정보-여기서 사용자 클라이언트들의 정보는 아이디 정보 및 주소 정보를 포함함-를 관리하고, 특정 사용자 클라이언트의 요청에 응답하여 접속된 사용자 클라이언트들의 정보를 제공하는 P2P 노드 관리 시스템-상기 사용자 클라이언트들에는 P2P 어플리케이션이 설치되며, 상기 P2P 어플리케이션은 접속 시 사용자 아이디 정보 및 주소 정보를 상기 P2P 노드 관리 시스템에 전송함-;
    상기 P2P 노드 관리 시스템에 접속한 제1 사용자 클라이언트 및 제2 사용자 클라이언트가 상기 P2P 어플리케이션간의 직접 연결에 의한 P2P 파일 송수신에 실패할 경우, 상기 제1 사용자 클라이언트 및 상기 제2 사용자 클라이언트간의 파일 송수신을 중계하는 릴레이 서버를 포함하는 것을 특징으로 하는 P2P 파일 전송 시스템.
  2. 제1항에 있어서,
    상기 제1 사용자 클라이언트가 상기 제2 사용자 클라이언트와의 파일 송수신을 요청할 경우, 상기 릴레이 서버는 상기 제1 사용자 클라이언트로부터 파일 송수신 요청 정보를 수신하며, 채널을 형성하여 상기 제1 사용자 클라이언트와 상기 제2 사용자 클라이언트 사이에 파일 송수신에 필요한 정보를 중계하는 것을 특징으로 하는 P2P 파일 전송 시스템.
  3. 제1항에 있어서,
    상기 P2P 노드 관리 시스템은 P2P 파일 공유 시스템, 메신저 파일 전송 시스템, 인터넷 전화 시스템, 게임 시스템으로 이루어진 그룹으로부터 선택된 어느 하나를 포함하는 것을 특징으로 하는 P2P 파일 전송 시스템.
  4. 제2항에 있어서,
    상기 파일 송수신에 필요한 정보는 사용자 아이디 정보, 공인 아이피 주소 정보, 공인 포트 번호, 사설 아이피 주소 정보 및 사설 포트 번호로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합인 것을 특징으로 하는 P2P 파일 전송 시스템.
  5. 제2항에 있어서,
    상기 릴레이 서버는 상기 채널을 통해 상기 제1 사용자 클라이언트 및 상기 제2 사용자 클라이언트의 파일 송수신을 중계하는 것을 특징으로 하는 P2P 파일 전송 시스템.
  6. 제2항에 있어서,
    상기 릴레이 서버는 상기 제1 사용자 클라이언트로부터 상기 제2 사용자 클라이언트와의 파일 송수신을 요청받을 경우, 상기 P2P 노드 관리 시스템에 상기 제 2 사용자 클라이언트로의 채널 초대 메시지 전송을 요청하며, 상기 P2P 노드 관리 시스템은 상기 릴레이 서버로부터의 요청에 응답하여 채널 초대 메시지를 상기 제2 사용자 클라이언트에 전송하는 것을 특징으로 하는 P2P 파일 전송 시스템.
  7. 제2항에 있어서,
    상기 제1 사용자 클라이언트는 상기 릴레이 서버에 상기 제2 사용자 클라이언트와의 파일 송수신 요청 시 상기 제2 사용자 클라이언트의 주소 정보를 제공하며, 상기 릴레이 서버는 상기 제2 사용자 클라이언트의 주소 정보를 이용하여 상기 제2 사용자 클라이언트에 채널 초대 메시지를 전송하는 것을 특징으로 하는 P2P 파일 전송 시스템.
  8. 네트워크를 통해 접속한 사용자 클라이언트들의 정보-여기서 사용자 클라이언트들의 정보는 아이디 정보 및 주소 정보를 포함함-를 관리하고, 특정 사용자 클라이언트의 요청에 응답하여 접속된 사용자 클라이언트들의 정보를 제공하는 P2P 노드 관리 시스템과 연동하며,
    상기 P2P 노드 관리 시스템으로부터 접속된 사용자 클라이언트들의 정보를 수신한 제1 사용자 클라이언트의 채널 생성 요청에 응답하여 채널을 생성하는 채널 생성부;
    상기 채널 생성부에 의해 생성된 적어도 하나의 채널 정보를 관리하는 채널 정보 관리부;
    채널 생성을 요청한 상기 제1 사용자 클라이언트가 상기 P2P 노드 관리 시스템으로부터의 접속된 사용자 클라이언트들의 정보를 이용하여 지정한 적어도 하나의 제2 사용자 클라이언트를 채널에 초대하기 위한 미리 설정된 프로세스를 수행하고 상기 제2 사용자 클라이언트의 채널 참가를 처리하는 채널 참가 처리부; 및
    상기 채널에 참여한 제1 사용자 클라이언트 및 제2 사용자 클라이언트가 직접 연결에 의한 P2P 파일 전송이 실패할 경우, 상기 형성된 채널을 통해 상기 제1 사용자 클라이언트 및 상기 제2 사용자 클라이언트간의 파일 송수신을 중계하는 파일 중계부를 포함하는 것을 특징으로 하는 릴레이 서버.
  9. 제8항에 있어서,
    상기 채널 정보 관리부는 상기 채널 생성 시 부여되는 채널 아이디 정보, 채널에 참여한 사용자 수 정보 및 채널에 참여한 사용자 정보를 관리하는 것을 특징으로 하는 릴레이 서버.
  10. 제8항에 있어서,
    상기 릴레이 서버는 상기 채널을 통해 제1 사용자 클라이언트 및 제2 사용자 클라이언트 사이의 파일 송수신에 필요한 정보를 중계하며, 상기 파일 송수신에 필요한 정보는 공인 아이피 주소, 공인 포트 번호, 사설 아이피 주소 및 사설 포트 번호로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합을 포함하는 것을 특징으로 하는 릴레이 서버.
  11. 제8항에 있어서,
    상기 채널에 초대하기 위한 미리 설정된 프로세스는 상기 P2P 노드 관리 시스템에 상기 제2 사용자 클라이언트로의 채널 초대 메시지 전송을 요청하는 것임을 특징으로 하는 릴레이 서버.
  12. 제8항에 있어서,
    상기 제1 사용자 클라이언트는 상기 제2 사용자 클라이언트의 주소 정보를 제공하며, 상기 채널에 초대하기 위한 미리 설정된 프로세스는 상기 제2 사용자 클라이언트의 주소 정보를 이용하여 상기 제2 사용자 클라이언트에 초대 메시지를 전송하는 것임을 특징으로 하는 릴레이 서버.
  13. 제8항에 있어서,
    상기 형성된 채널은 채널에 참가한 제1 사용자 클라이언트 및 제2 사용자 클라이언트가 채널을 나간 후 미리 설정된 시간이 경과한 후 종료되는 것을 특징으로 하는 릴레이 서버.
  14. 사용자의 요청에 응답하여 채널을 형성하는 단계(a);
    상기 형성된 채널을 통해 채널에 참여한 사용자들이 전송하는 P2P 파일 송수신에 필요한 정보를 중계하는 단계(b)
    채널에 참여한 사용자들간의 직접 연결에 의한 P2P 파일 전송이 성공하는지 여부를 판단하는 단계(c); 및
    채널에 참여한 사용자들간의 직접 연결에 의한 P2P 파일 전송이 실패할 경우, 상기 형성된 채널을 통해 사용자들간의 파일 전송을 중계하는 단계(d)를 포함하는 것을 특징으로 하는 파일 전송 방법.
  15. 제14항에 있어서, 상기 P2P 파일 송수신에 필요한 정보는 공인 아이피 주소, 공인 포트 번호, 사설 아이피 주소 및 사설 포트 번호로 이루어진 그룹으로부터 선택된 어느 하나 또는 이들의 조합을 포함하는 것을 특징으로 하는 파일 전송 방법.
  16. 제14항에 있어서, 채널을 형성한 사용자가 지정한 다른 사용자를 채널에 초대하기 위해 채널 초대 메시지를 생성하는 단계를 더 포함하며, 상기 채널 초대 메시지는 P2P 노드를 관리하는 시스템에 전송되며, 상기 P2P 노드를 관리하는 시스템은 해당 사용자에게 초대 메시지를 전송하는 것을 특징으로 하는 파일 전송 방법.
  17. 제14항에 있어서, 채널을 형성한 사용자가 지정한 다른 사용자를 채널에 초대하기 위해 채널 초대 메시지를 생성하는 단계를 더 포함하며, 상기 다른 사용자의 주소 정보는 채널을 형성한 사용자로부터 제공되고, 상기 채널 초대 메시지는 상기 주소 정보에 기초하여 해당 사용자에게 전송되는 것을 특징으로 하는 파일 전송 방법.
KR1020060015602A 2006-02-17 2006-02-17 P2p 파일 전송 시스템 및 방법 KR100810759B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020060015602A KR100810759B1 (ko) 2006-02-17 2006-02-17 P2p 파일 전송 시스템 및 방법
JP2008555141A JP2009531744A (ja) 2006-02-17 2007-02-08 P2pファイル転送システム及び方法
PCT/KR2007/000686 WO2007094584A1 (en) 2006-02-17 2007-02-08 P2p file transmission system and method
US12/193,552 US9003042B2 (en) 2006-02-17 2008-08-18 P2P file transmission system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060015602A KR100810759B1 (ko) 2006-02-17 2006-02-17 P2p 파일 전송 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20070082682A true KR20070082682A (ko) 2007-08-22
KR100810759B1 KR100810759B1 (ko) 2008-03-07

Family

ID=38371727

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060015602A KR100810759B1 (ko) 2006-02-17 2006-02-17 P2p 파일 전송 시스템 및 방법

Country Status (4)

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

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170000232A (ko) * 2015-06-23 2017-01-02 에스케이텔레콤 주식회사 단말장치 및 단말장치의 동작 방법
US10681755B2 (en) 2015-06-30 2020-06-09 2Ip Co., Ltd. Routing method and network entity performing same
US11234113B2 (en) 2019-08-16 2022-01-25 Samsung Electronics Co., Ltd Electronic device and method for providing service by electronic device
KR20220053914A (ko) * 2020-10-23 2022-05-02 주식회사 엘지유플러스 통신 네트워크에서 단말들 간의 연결을 제어하는 방법 및 장치

Families Citing this family (35)

* 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 阿里巴巴集团控股有限公司 一种插件下载的方法和系统
US9026581B2 (en) * 2009-09-10 2015-05-05 Google Technology Holdings LLC Mobile device and method of operating same to interface content provider website
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
JP5885706B2 (ja) * 2013-07-11 2016-03-15 株式会社京三製作所 通信システム
JP5865424B2 (ja) * 2014-04-25 2016-02-17 株式会社日立製作所 メッセージシステムおよびデータストアサーバ
US10129412B1 (en) * 2014-09-08 2018-11-13 Whatsapp Inc. Establishing and maintaining a VOIP call
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 지원 방법
CN105227659B (zh) * 2015-09-30 2018-12-28 深圳市先河系统技术有限公司 一种网络通信方法及设备
CN105871706A (zh) * 2016-06-13 2016-08-17 珠海佳米科技有限公司 文件传输方法及系统
CN107707583B (zh) 2016-08-08 2020-11-17 环旭电子股份有限公司 云端数据传输系统及其动态分流方法
CN106888261A (zh) * 2017-02-27 2017-06-23 深圳市先河系统技术有限公司 一种分布式文件传输方法、服务器及私有云设备
KR101921275B1 (ko) * 2017-06-16 2019-02-13 라인 가부시키가이샤 메신저에서의 파일 전송 시 기기 간 통신 기술을 활용하는 방법 및 시스템
CN109660613B (zh) * 2018-12-11 2021-10-22 网宿科技股份有限公司 文件传输方法及系统
CN109462606A (zh) * 2018-12-19 2019-03-12 安徽典典科技发展有限责任公司 点对点远程访问方法
WO2020161842A1 (ja) 2019-02-06 2020-08-13 コネクトフリー株式会社 データ送信方法、通信処理方法、装置、および通信処理プログラム
CN110225114A (zh) * 2019-06-12 2019-09-10 上海银行股份有限公司 文件传输与管理系统
US20230209345A1 (en) * 2021-12-24 2023-06-29 Whitestar Communications, Inc. Device-specific selection between peer-to-peer connections and core-based hybrid peer-to-peer connections in a secure data network

Family Cites Families (26)

* 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
TW200412101A (en) * 2002-12-23 2004-07-01 Shaw-Hwa Hwang Directly peer-to peer transmission protocol between two virtual network
US7596625B2 (en) * 2003-01-27 2009-09-29 Microsoft Corporation Peer-to-peer grouping interfaces and methods
KR100468325B1 (ko) * 2003-03-28 2005-01-27 주식회사 프리챌 P2p서비스 방법
US20050021770A1 (en) * 2003-06-13 2005-01-27 Guy Helm Method for transferring PPP inactivity time in a CDMA2000 network
WO2005010680A2 (en) * 2003-07-15 2005-02-03 Wildtangent, Inc. Multi-session user launching and invitation system and method
EP1678886B1 (en) * 2003-10-27 2009-02-18 Nokia Corporation Method and devices for relayed peer-to-peer communications between terminals in mobile networks
US8065418B1 (en) * 2004-02-02 2011-11-22 Apple Inc. NAT traversal for media conferencing
JPWO2005078593A1 (ja) * 2004-02-13 2007-10-18 ソニーケミカル&インフォメーションデバイス株式会社 業務プロセスシステム及び業務プロセス方法、並びに情報処理装置
JP2005316690A (ja) * 2004-04-28 2005-11-10 Nippon Telegr & Teleph Corp <Ntt> P2pファイル転送方法、システム、利用者端末、中継端末、およびプログラム
US8239547B2 (en) * 2004-07-09 2012-08-07 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

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170000232A (ko) * 2015-06-23 2017-01-02 에스케이텔레콤 주식회사 단말장치 및 단말장치의 동작 방법
US10681755B2 (en) 2015-06-30 2020-06-09 2Ip Co., Ltd. Routing method and network entity performing same
US11234113B2 (en) 2019-08-16 2022-01-25 Samsung Electronics Co., Ltd Electronic device and method for providing service by electronic device
KR20220053914A (ko) * 2020-10-23 2022-05-02 주식회사 엘지유플러스 통신 네트워크에서 단말들 간의 연결을 제어하는 방법 및 장치
KR20220136334A (ko) * 2020-10-23 2022-10-07 주식회사 엘지유플러스 통신 네트워크에서 단말들 간의 연결을 제어하는 방법 및 장치

Also Published As

Publication number Publication date
US20080301233A1 (en) 2008-12-04
WO2007094584A1 (en) 2007-08-23
KR100810759B1 (ko) 2008-03-07
US9003042B2 (en) 2015-04-07
JP2009531744A (ja) 2009-09-03

Similar Documents

Publication Publication Date Title
KR100810759B1 (ko) P2p 파일 전송 시스템 및 방법
US10454762B2 (en) System and method of processing media traffic for a hub-based system federating disparate unified communications systems
US20030126213A1 (en) Establishing direct instant messaging communication between wireless devices
EP1593231B1 (en) Systems and methods for collaborative communication
US7904521B2 (en) Method for transferring chat messages by establishing chat room data transfer channel
US7774010B2 (en) Peer-to-peer group management framework and methodology
US20140040404A1 (en) System and method for federating chat rooms across disparate unified communications systems
US7668926B2 (en) Real-time communications over data forwarding framework
US9906603B2 (en) System and method for transferring a session between multiple clients
US20030014488A1 (en) System and method for enabling multimedia conferencing services on a real-time communications platform
US7831715B2 (en) Communication system, communication method, and program
US8386585B2 (en) Real-time communications over data forwarding framework
US7593988B2 (en) Systems and methods for multiparty session invite
WO2015054522A1 (en) Federating chat rooms across disparate unified communications systems
US20110055894A1 (en) Firewall and NAT Traversal for Social Networking and/or Content Sharing On Mobile Devices
US10348714B1 (en) Systems and methods for setting up a collaborative communication system
Greene et al. Instant messaging & presence management in mobile adhoc networks
CN114928459A (zh) 用于私有通讯架构的连接方法与电脑可读取媒体
CN101325585B (zh) 文件传输方法、互连网关和客户端
KR101295546B1 (ko) 인스턴트 메신저 서비스 방법
JP4841357B2 (ja) セキュアなシグナリングチャネルを用いたリソース更新方法、サーバ、端末及びプログラム
CN118631788A (zh) 一种局域网离线群组音视频方法
KR101082851B1 (ko) Udp기반의 p2p 접속 시스템 및 방법
KR20070071384A (ko) 동등계층 통신을 이용한 인스턴트 메신저 서비스 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20131231

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20141230

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20151223

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20170117

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20180102

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20200102

Year of fee payment: 13