KR20060071079A - P2p 오버레이 네트워크 구축 방법 및 장치 - Google Patents

P2p 오버레이 네트워크 구축 방법 및 장치 Download PDF

Info

Publication number
KR20060071079A
KR20060071079A KR1020050039228A KR20050039228A KR20060071079A KR 20060071079 A KR20060071079 A KR 20060071079A KR 1020050039228 A KR1020050039228 A KR 1020050039228A KR 20050039228 A KR20050039228 A KR 20050039228A KR 20060071079 A KR20060071079 A KR 20060071079A
Authority
KR
South Korea
Prior art keywords
node
file
nodes
identification value
value
Prior art date
Application number
KR1020050039228A
Other languages
English (en)
Other versions
KR100641796B1 (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 PCT/KR2005/003523 priority Critical patent/WO2006068365A1/en
Priority to US11/793,791 priority patent/US20080130516A1/en
Publication of KR20060071079A publication Critical patent/KR20060071079A/ko
Application granted granted Critical
Publication of KR100641796B1 publication Critical patent/KR100641796B1/ko

Links

Images

Classifications

    • 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/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/0864Round trip delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/122Shortest path evaluation by minimising distances, e.g. by selecting a route with minimum of number of hops
    • 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/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1065Discovery involving distributed pre-established resource-based relationships among peers, e.g. based on distributed hash tables [DHT] 

Abstract

본 발명은 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것으로, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록시키는 방법에 있어서, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드가 상기 참여를 원하는 노드의 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부가 판단되는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 참여를 원하는 노드가 상기 제 1 노드와 상기 제 2 노드 사이에 등록되는 단계;로 구성된다. 따라서, 각 노드에서 공유하는 자원을 보다 쉽고 효율적으로 검색할 수 있다.

Description

P2P 오버레이 네트워크 구축 방법 및 장치{P2P overlay network construction method and apparatus}
도 1은 본 발명에 따른 노드와 공유 파일을 해쉬 함수를 통해 얻은 식별값을 기반으로 나타나는 자원 정보 위치자(Resource Locator)의 구성을 나타내는 블럭도이다.
도 2는 본 발명에 따른 참여를 원하는 노드가 이미 구성된 P2P 오버레이 네트워크에 참여하는 방법을 나타내는 도면이다.
도 3은 본 발명에 따른 노드가 2홉 내에 있는 이웃 노드와 친구 노드가 동작하고 있는지 여부를 확인하는 방법을 나타내는 도면이다.
도 4는 본 발명에 따른 노드가 보유하고 있는 공유 파일의 자원 정보 위치자를 P2P 오버레이 네트워크 상에 등록하는 방법을 나타내는 도면이다.
도 5는 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 일예이다.
도 6은 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 다른 일예이다.
도 7은 본 발명에 따른 같은 식별값을 가진 노드가 다른 IP를 이용해서 참여하고자 할 때 발생하는 식별값 중복 문제를 해결하는 방법에 대한 일예이다.
도 8은 도 3에서 19번 노드가 저장하고 있는 이웃 노드 테이블과 친구 노드 테이블을 나타내는 도면이다.
본 발명은 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것으로, 더욱 상세하게는 인터넷과 같은 분산된 환경에서 P2P 오버레이 네트워크를 구축하고 각 노드에서 공유하는 자원을 쉽고 효율적으로 검색할 수 있는 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것이다.
IPv6(Internet Protocol version 6) 네트워크는 시험망의 수준을 넘어 상용 서비스를 할 수 있도록 구축되고 있으나 아직까지는 IPv6를 이용한 응용들이 많지 않은 상황이다. 따라서, IPv6 네트워크의 활성화를 위해서는 상용망에서 동작할 수 있는 많은 응용들이 개발되어져야 한다. 특히 인터넷의 기본 개념인 End-to-End 서비스를 지향하는 P2P 응용의 경우 차세대 인터넷에서 가장 많이 사용될 수 있는 응용 중 하나로 여겨지고 있기 때문에 IPv6 네트워크에서 동작하는 P2P 응용의 개발 및 보급을 통해 IPv6 네트워크의 사용을 앞당기는데 많은 기여를 할 수 있을 것이다.
종래에 연구된 알고리즘인 Peer-to-Peer(P2P) 기술은 HTTP와 같이 어플리케이션 레벨의 프로토콜로, 사용자 사이의 실시간 통신이나 자원분배 및 교환 등을 지원하는 기술로 정의되고 있다. P2P는 일반적으로 서버를 이용한 혼합형(hybrid) P2P 방식과 모든 노드가 서버와 클라이언트의 동작을 수행하는 순수(pure) P2P 방식이 존재한다. 순수 P2P 방식은 근본적인 Peer-to-Peer의 개념을 따른 것으로, 대규모의 망에서 각 노드가 공유된 자원의 검색 및 발견이 어렵다는 문제점을 가지고 있다.
혼합형 P2P 방식은 서버를 통해 각 노드들에게 자원의 공유 기능을 제공하는 것으로, 서비스를 제공할 수 있는 중앙 서버와 실질적인 공유 자원을 가지고 있는 P2P 노드들로 구성되어있다. 중앙 서버는 각 노드들로부터 네트워크 연결 세션을 유지하고 공유한 자원들의 메타 데이터들을 관리 유지하여 P2P 노드들의 필요에 의한 자원을 쉽게 검색 할 수 있다. 각 P2P 노드는 공유 자원을 검색하기 위해 서버에 접속하여 해당 자원을 보유한 노드를 검색하고 실제 자원의 교환은 두 노드간의 연결을 통해 이루어진다. 이러한 구조의 대표적인 예로는 세계적으로 잘 알려져 있는 Napster이다. 그러나, 이와 같은 구조는 확장성이 부족하고, 또한 중앙 집중으로 인한 비용의 상승 및 안정성에 취약한 문제점을 가지고 있다.
순수 P2P 방식은 널리 알려져 있는 Gnutella와 Freenet등이 대표적으로 사용하고 있다. Gnutella의 경우 각 노드는 응용차원에서 스스로 연결하여 네트워크를 이루고 있는데, 이 노드는 파일을 검색하기 위해 일정 범위 안으로 검색 메시지를 플루딩(Flooding)하여 파일을 가진 노드의 정보를 얻을 수 있다. 그러나 주기적으로 메시지를 모든 Gnutella 네트워크에 플루딩하기 때문에 확장성에 대한 큰 문제점을 가지고 있다.
반면에, 해쉬 테이블을 이용하여 실제 값과 해쉬 함수를 통해 얻은 키의 조 합에 의해 네트워크를 구축하는 P2P 오버레이 네트워크는 확장성 및 안정성을 제공한다. 대표적인 방법으로는 DHT(Distributed Hash Table: 분산 해쉬 테이블)를 사용하는 Chord, Pastry, 및 CAN 등이 있다.
Chord의 경우 원형의 m-bit 가상 식별자 공간을 이용하여 노드와 공유 파일을 각각 해쉬 함수를 통해 얻은 식별값을 배치시킨다. 또한 자원을 검색하기 위해 각 노드는 핑거 테이블(finger table)이라는 라우팅 테이블을 유지하여 검색 수행을 용이하게 한다.
Pastry는 마이크로소프트사(Microsoft)에 의해 제안된 방법으로 IP 주소나 공개키를 암호화 해쉬를 통해 중복되지 않는 랜덤한 128비트 노드 식별자로 만들어 이름 공간상에 분산되도록 한다. 또한 데이터도 128비트 키를 가지며, 데이터로부 유추되는 키에 가장 가까운 키를 가진 노드에 저장되어 검색을 용이하게 한다.
마지막으로, CAN은 해쉬 함수를 통해 d 차원에서 한 점에 대응되는 벡터 P (p = hash(key) )를 얻어 각 노드들은 가상공간을 분할한 존의 범위에 해당하는 데이터를 저장하게 된다.
혼합형 P2P 방식은 중앙 서버로 인해 비용 상승 및 확장성과 안정성 부분에서 취약하며, 순수 P2P 방식중에서 Gutella를 대표로 하는 플루딩을 이용하는 P2P 오버레이 네트워크 역시 잦은 메시지들의 플루딩으로 인해 트래픽이 증가함으로써 확장성 부분에서 문제점을 가지고 있다.
이와 같이, Chord, Pastry, 및 CAN과 같은 시스템은 확장성과 안정성 그리고 사용의 편의성을 제공하지만, 위의 알고리즘은 실제 구현하기에 복잡한 방법들 을 제시하고 있을 뿐 아니라 키워드를 이용한 파일 검색에 비해 DHT가 지닌 단점으로 인해 실제 검색 성공 확률은 높지 않다는 문제점을 가지고 있다. 또한, 분산된 환경에서의 스토리지와 같은 특정 P2P 응용에만 적합하다는 문제점을 가지고 있다.
본 발명은 DHT를 이용하여 분산된 환경에 적합하도록 노드와 공유 자원을 배치하고 각 노드는 이웃 노드와 친구 노드에 대한 위치 정보만을 저장하여 메시지 라우팅을 통한 P2P 오버레이 네트워크를 구축하는 방법을 제공한다.
또한, 본 발명은 P2P의 성격을 유지하며, 인스턴트 메신져와 함께 연동하는 친구 노드를 P2P 오버레이 네트워크를 구성하는데 사용함으로써 파일 검색을 가능하도록 하는 방법을 제공한다.
상기 기술적 과제를 해결하기 위한 본 발명의 P2P 오버레이 네트워크 구축 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록시키는 방법에 있어서, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드가 상기 참여를 원하는 노드의 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부가 판단되는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 참여를 원하는 노드가 상기 제 1 노드와 상기 제 2 노드 사이에 등록되는 단계;를 포함하는 것을 특징으로 가진다.
또한, 상기 기술적 과제를 해결하기 위한 본 발명의 P2P 오버레이 네트워크 구축 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록하는 방법에 있어서, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드에서 상기 참여를 원하는 노드의 식별값과 상기 제 1 노드의 식별값이 일치되는지 여부를 판단하는 단계; (c) 상기 (b)단계에서 일치한다고 판단되는 경우에 상기 제 1 노드는 상기 참여를 원하는 노드에 패스워드 요청 메시지를 전송하는 단계; (d) 상기 제 1 노드는 상기 참여를 원하는 노드로부터 패스워드를 전송받는 단계; 및 (e) 상기 제 1 노드는 상기 (d)단계에서 전송받은 패스워드와 상기 제 1 노드를 등록할 때 입력되었던 패스워드를 비교하여 일치하는 경우 상기 참여를 원하는 노드로 대체되는 단계;를 포함하는 것을 특징으로 가진다.
상기 기술적 과제를 해결하기 위한 본 발명의 공유 파일 자원 정보 위치자 등록 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 저장하고 있는 노드에서 상기 공유 파일에 대 한 자원 정보 위치자를 등록하는 방법에 있어서, (a) 상기 공유 파일을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계; (b) 상기 파일 식별값을 포함하는 파일등록 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일등록 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 등록하는 단계;를 포함하는 것을 특징으로 가진다.
상기 기술적 과제를 해결하기 위한 본 발명의 공유 파일 검색 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서, (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계; (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드에 기 저장되어 있는 공유 파일 리스트에 존재하는지 판단하는 단계; (c) 상기 (b)단계에서 존재한다고 판단되는 경우에 상기 제 1 노드는 사전에 상기 파일 식별값과 일치하는 공유 파일 리스트를 전송한 노드로 상기 파일 검색 메시지를 전송하는 단계; (d) 상기 공유 파일 리스트를 전송한 노드는 상기 파일 식별값에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계; 및 (e) 상기 공유 파일 검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 가진다.
또한, 상기 기술적 과제를 해결하기 위한 본 발명의 공유 파일 검색 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서, (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계; (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계; (d) 상기 파일검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 가진다.
상기 기술적 과제를 해결하기 위한 본 발명의 P2P 오버레이 네트워크 구축 장치는, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상 기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크를 구축함에 있어서, 상기 다수개의 노드는 각각 자신의 노드에서 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하는 이웃 노드 테이블; 및 인스턴트 메신져와 연동하여 얻을 수 있는 친구 노드들에 대한 자원 정보 위치자를 저장하는 친구 노드 테이블;을 포함하는 것을 특징으로 가진다.
이하, 도면을 참조하여 본 발명의 일실시예를 보다 상세히 설명하기로 한다.
도 1은 본 발명에 따른 노드와 공유 파일을 해쉬 함수를 통해 얻은 식별값을 기반으로 나타나는 자원 정보 위치자(Resource Locator)의 구성을 나타내는 블럭도이다. 도 1을 참조하면, 자원 정보 위치자(100)는 식별값(ID)(110), IP 주소(IP address)(120) 및 포트 번호(port number)(130)로 이루어져 있다.
먼저, 식별값(110)은 노드 또는 공유 파일을 DHT(Distributed Hash Table)를 이용한 해쉬를 통하여 획득한다. 여기에서, 노드의 경우에는 이메일 주소(e-mail address)를 MD5 해쉬 함수를 통해 해쉬하여 식별값을 획득하고, 공유 파일의 경우에는 파일명(file name)을 MD5 해쉬 함수를 통해 해쉬하여 식별값을 획득한다. 이와 같이 획득된 식별값은 원형 가상 공간에 시계 반대 방향으로 위치하게 된다.
자원 정보 위치자(100)는 시계 반대 방향으로 위치하는 노드와 공유 파일의 식별값(110)과 함께 노드의 IP 주소(120)와 현재 응용 서비스를 제공하는 포트 번호(130)로 이루어져 있다. 여기에서, IP 주소(120)는 실제 노드의 IPv6(Internet Protocol version 6)이다.
여기에서, 획득된 식별값은 원형 가상 공간에 시계 반대 방향으로 위치하는 것으로 설명하였으나, 본 발명의 다른 일실시예에서는 원형 가상 공간에 시계 방향으로 위치하도록 할 수도 있다.
또한, 본 발명에서는 종래의 P2P 오버레이 프로토콜과는 달리 IPv6 상에서 작동하는 새로운 P2P 오버레이 네트워크에 관한 것이다.
도 2는 본 발명에 따른 참여를 원하는 노드가 이미 구성된 P2P 오버레이 네트워크에 참여하는 방법을 나타내는 도면이다. 도 2를 참조하면, 식별값이 17인 17번 노드(즉, 참여를 원하는 노드)가 이미 구성되어 있는 P2P 오버레이 네트워크에 참여하는 과정을 나타내고 있다.
먼저, 17번 노드는 응용을 시작하면서 0번 노드(즉, 기준 노드)의 정보를 통하여 0번 노드가 현재 동작중인지 여부를 확인하기 위한 PING 메시지를 전송한다(S200).
여기에서, 기준 노드(key node)라는 것은 언제나 접속 가능하고, 모든 노드가 처음부터 그 주소를 알고 있는 특수한 노드로 가정하는 것으로, 이 기준 노드의 정보는 P2P 응용이 시작되면 함께 로드되어 정보를 획득하거나 DNS(Domain Name System)를 통해 특정 IP 주소를 획득할 수 있게 된다. 도 2의 P2P 오버레이 네트워크에서는 식별값이 0인 0번 노드가 기준 노드로 되어 있다.
다음으로, PING 메시지를 전송받은 0번 노드가 동작중이라면 PONG 메시지를 17번 노드에게 전송한다(S210).
다음으로, 17번 노드는 0번 노드에게 참여 요청 메시지(JOIN 메시지)를 전 송한다(S220). 이와 같이, 모든 노드는 처음으로 P2P 오버레이 네트워크에 참여하기 위해서 0번 노드(기분 노드)에 참여 요청 메시지를 보내게 된다.
다음으로, 0번 노드는 17번 노드가 위치할 가상 원형 공간을 구성하기 위해 시계방향으로 해당 위치로의 참여 요청 메시지를 전송한다(S230)(S240)(S250). 도 2에서 17번 노드가 위치할 노드는 22번 노드의 왼쪽이기 때문에 22번 노드까지 참여 요청 메시지가 전송된다.
다음으로, 참여 요청 메시지를 전송받은 22번 노드는 17번 노드에게 P2P 오버레이 네트워크에 성공적으로 위치했다는 것을 알리는 참여 확인 메시지(JACK)를 전송한다(S260).
다음으로, 하나의 노드는 2홉 내의 이웃 노드에 대한 정보를 가지고 있어야 하므로, 22번 노드는 17번 노드의 이웃 노드인 2번 노드, 10번 노드, 22번 노드 및 51번 노드에게 17번 노드의 자원 정보 위치자를 포함한 갱신 메시지를 전송하고(S271)(S272)(S273)(S274), 상기 2번 노드, 10번 노드, 22번 노드 및 51번 노드로부터 자원 정보 위치자를 전송받아 이를 등록하게 된다. 도 2에서는 2번 노드에 자원 정보 위치자를 전송하는 것(S271), 10번 노드에 자원 정보 위치자를 전송하는 것(S272), 22번 노드에 자원 정보 위치자를 전송하는 것(S273) 및 51번 노드에 자원 정보 위치자를 전송하는 것(S274)으로 구성되어 있다.
도 2에서와 같이, 성공적으로 P2P 오버레이 네트워크에 참여한 노드는 이웃 노드의 정보를 획득하고 인스턴트 메신져와 같은 친구 노드로부터 공유 파일 리스트를 직접 전송받게 된다. 또한, P2P 오버레이 네트워크를 유지 보수하기 위해 주 기적으로 동작 확인 메시지(HELLO 메시지)를 전송하게 된다. 이와 관련하여서는 도 3에서 상세히 살펴보기로 한다.
도 3은 본 발명에 따른 노드가 2홉 내에 있는 이웃 노드와 친구 노드가 동작하고 있는지 여부를 확인하는 방법을 나타내는 도면이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 된다.
도 3을 참조하면, 19번 노드(식별값이 19)는 성공적으로 P2P 오버레이 네트워크에 참여하여 자신의 이웃 노드들과 친구 노드들에게 동작 확인 메시지(HELLO 메시지)를 통해 RTT(Round Trip Time)를 체크하여 현재 이웃 노드들이 잘 동작하고 있는지 여부를 확인하는 것이다.
먼저, 19번 노드는 자신의 왼쪽의 왼쪽 노드인 2번 노드에 동작 확인 메시지를 전송한다(S300). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 2번 노드로부터 2번 노드 자신이 동작중이라는 동작 반응 메시지(HACK 메시지)를 전송받는다(S305). 따라서, 19번 노드는 2번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S305에서 2번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 2번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.
다음으로, 19번 노드는 자신의 왼쪽 노드인 10번 노드에 동작 확인 메시지를 전송한다(S310). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 10번 노 드로부터 10번 노드 자신이 동작중이라는 동작 반응 메시지를 전송받는다(S315). 따라서, 19번 노드는 10번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S315에서 10번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 10번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.
다음으로, 19번 노드는 자신의 오른쪽 노드인 20번 노드에 동작 확인 메시지를 전송한다(S320). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 20번 노드로부터 20번 노드 자신이 동작중이라는 동작 반응 메시지를 전송받는다(S325). 따라서, 19번 노드는 20번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S325에서 20번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 20번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.
다음으로, 19번 노드는 자신의 오른쪽의 오른쪽 노드인 22번 노드에 동작 확인 메시지를 전송한다(S330). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 22번 노드로부터 22번 노드 자신이 동작중이라는 동작 반응 메시지를 전송받는다(S335). 따라서, 19번 노드는 22번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S335에서 22번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 22번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.
다음으로, 19번 노드는 자신의 친구 노드인 67번 노드, 51번 노드 및 40번 노드에 동작 확인 메시지와 19번 노드 자신이 공유한 파일의 리스트를 전송한다(S340)(S350)(S360). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 67번 노드, 51번 노드 및 40번 노드로부터 각각 동작중이라는 동작 반응 메시지와 각각의 67번 노드, 51번 노드 및 40번 노드가 공유 파일의 리스트를 전송받는다(S345)(S355)(S365). 따라서, 19번 노드는 67번 노드, 51번 노드 및 40번 노드 각각으로부터 전송되는 동작 확인 메시지를 통하여 현재 동작중이라는 것을 확인하게 된다. 또한, 19번 노드는 친구 노드인 67번 노드, 51번 노드 및 40번 노드 각각이 보유하고 있는 파일의 리스트를 전송받아 이를 저장하게 된다. 한편, 단계S345, 단계S355 및 단계S365에서 67번 노드, 51번 노드 및 40번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 67번 노드, 51번 노드 및 40번 노드가 각각 현재 동작중이지 않는다는 것을 확인하게 된다.
도 3에서는 각각의 단계를 통하여 살펴보았으나, 본 발명의 다른 일실시예에서는 이와 같은 동작이 동시에 또는 다른 정한 규칙에 의하여 진행될 수 있다.
도 4는 본 발명에 따른 노드가 보유하고 있는 공유 파일의 자원 정보 위치자를 P2P 오버레이 네트워크 상에 등록하는 방법을 나타내는 도면이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 된다.
도 4를 참조하면, 10번 노드(식별값이 10)가 저장하고 있는 공유 파일들의 식별값을 기준으로 각각의 자원 정보 위치자를 P2P 오버레이 네트워크에 등록하는 과정을 설명하고 있다. 10번 노드는 먼저 이웃 노드들의 정보를 이용하여 파일의 식별값을 노드의 식별값을 고려함으로써 원형 공간인 P2P 오버레이 네트워크 상의 해당 노드에 위치시키게 된다.
먼저, 10번 노드는 8번 파일(식별값이 8)에 대한 자원 정보 위치자를 자신의 이웃 노드들의 정보를 확인하고, 8번 파일에 대하여는 10번 노드와 2번 노드에 위치시켜야 하기 때문에 10번 노드 자신에게 저장한다(S400).
다음으로, 10번 노드는 45번 파일(식별값이 45)에 대한 자원 정보 위치자를 자신의 이웃 노드들의 정보를 확인한 후 먼저 0번 노드에게 전송한다(S410). 다음으로, 0번 노드는 45번 파일에 대한 자원 정보 위치자를 자신의 이웃 노드들의 정보를 확인한 후 다시 51번 노드에게 전송한다(S415). 여기에서, 51번 노드는 이웃 노드들의 정보를 고려한 결과 45번 파일은 자신에게 저장되어야 하는 것을 알고 45번 파일에 대한 자원 정보 위치자를 저장한다. 즉, 45번 파일은 51번 노드와 22번 노드 사이에 위치하는 것이므로 51번 노드는 45번 파일에 대한 자원 정보 위치자를 자신에게 저장하는 것이다.
다음으로, 8번 노드는 158번 파일(식별값이 158)에 대한 자원 정보 위치자는 자신의 이웃 노드들의 정보를 확인한 후 먼저 0번 노드에게 전송한다(S420). 여기에서, 0번 노드는 이웃 노드들의 정보를 고려한 결과 158번 파일은 자신에게 저장되어야 하는 것을 알고 158번 파일에 대한 자원 정보 위치자를 저장한다. 즉, 158번 파일은 0번 노드와 67번 노드 사이에 위치하는 것이므로 0번 노드는 158번 파일에 대한 자원 정보 위치자를 자신에게 저장하는 것이다.
도 5는 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 일예이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 된다.
도 5를 참조하면, 먼저, 2번 노드(식별값이 2)는 45번 파일(식별값이 45)을 검색하기 위한 파일 검색 메시지를 수신한다(S500).
다음으로, 2번 노드로부터 자신의 이웃 노드들에 대한 식별값을 고려하여 45번 파일에 대한 자원 정보 위치자를 저장하고 있을 만한 노드에게 순차적으로 파일 검색 메시지를 전송하게 된다. 즉 보다 구체적으로 살펴보면, 2번 노드는 P2P 오버레이 네트워크에서 메시지 전송방향으로 자신의 이웃 노드들인 0번 노드와 67번 노드에 대한 2홉 내의 자원 정보 위치자를 저장하고 있으므로, 상기 0번 노드와 67번 노드 중에서 45번 파일에 가까이 있는 67번 노드에게 45번 파일에 대한 자원 정보 위치자를 검색하기 위한 파일 검색 메시지를 전송한다(S510). 또한, 파일 전송 메시지를 전달받은 67번 노드는 다시 P2P 오버레이 네트워크에서 메시지 전송방향으로 자신의 이웃 노드들인 51번 노드와 22번 노드에 대한 자원 정보 위치자를 저장하고 있으므로, 상기 51번 노드와 22번 노드 중에서 45번 파일에 대한 자원 정보 위치자를 저장하고 있는 51번 노드에 위치하고 있다는 사실을 알고 파일 검색 메시지를 51번 노드에 전송한다(S520).
다음으로, 파일 검색 메시지를 전송받은 51번 노드는 2번 노드에게 45번 파 일에 대한 자원 정보 위치자를 포함하는 검색 확인 메시지를 전송한다(S530).
다음으로, 2번 노드는 자원 정보 위치자를 이용하여 45번 파일을 실제로 저장하고 있는 10번 노드와 연결하여 45번 파일을 검색하게 된다(S530).
도 6은 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 다른 일예이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 위치하고 있다.
도 6을 참조하면, 먼저, 2번 노드(식별값이 2)는 45번 파일(식별값이 45)을 검색하기 위한 파일 검색 메시지를 수신한다(S600).
다음으로, 2번 노드는 자신의 친구 노드들에 대한 파일 리스트를 고려하여 45번 파일에 대한 자원 정보 위치자를 저장하고 있는 노드가 있는지 여부를 판단하여, 친구 노드들중에 파일 리스트를 가지고 있는 노드에 파일 검색 메시지를 전송하게 된다(S610). 즉, 2번 노드는 P2P 오버레이 네트워크에서 자신의 친구 노드들에 대한 파일 정보 리스트를 가지고 있으므로, 상기 2번 노드의 45번 파일에 대한 파일 리스트로부터 45번 파일에 대한 자원 정보 위치자는 친구 노드인 51번 노드가 가지고 있다는 사실을 알고 파일 검색 메시지를 51번 노드에 전송하는 것이다.
다음으로, 파일 검색 메시지를 전송받은 51번 노드는 2번 노드에게 45번 파일에 대한 자원 정보 위치자를 포함하는 검색 확인 메시지를 전송한다(S620).
다음으로, 2번 노드는 자원 정보 위치자를 이용하여 45번 파일을 실제로 저 장하고 있는 10번 노드와 연결하여 45번 파일을 검색하게 된다(S630).
따라서, 친구 노드를 이용하면 파일 검색의 과정을 단순화 할 수 있기 때문에 보다 효율적이라 할 수 있다. 즉, 친구 노드를 P2P 오버레이 네트워크를 형성한 링 상에서 일종의 지름길로 이용하기 때문에 효율적인 검색이 가능하게 된다.
도 7은 본 발명에 따른 같은 식별값을 가진 노드가 다른 IP를 이용해서 참여하고자 할 때 발생하는 식별값 중복 문제를 해결하는 방법에 대한 일예이다. 본 발명에서는 노드의 식별값을 이메일 주소(e-mail address)를 통해 얻게 된다. 따라서, 만약 사용자가 같은 이메일 주소를 가지고 다른 장소 즉 다른 IP 주소 상에서 P2P 오버레이 네트워크에 접근하게 되면 동일한 식별값으로 인해 P2P 오버레이 네트워크에 참여하는데 있어서 문제가 발생하게 된다. 도 7에서는 이와 같은 문제를 해결하기 위해 식별값의 중복 문제를 해결하는 방법에 대한 것을 제공하는 것이다.
도 7을 참조하면, 이미 참여한 51번 노드(식별값이 51)는 이미 P2P 오버레이 네트워크상에 위치하고 있으나, 같은 식별값을 통해 다른 IP 주소를 가지고 참여하고자 하는 참여를 원하는 51번 노드는 0번 노드(기준 노드)에게 등록 요청 메시지(JOIN 메시지)를 전송한다(S700). 이와 같이, 모든 노드는 처음으로 P2P 오버레이 네트워크에 참여하기 위해서 0번 노드(기분 노드)에 참여 요청 메시지를 보내게 된다.
다음으로, 0번 노드는 참여를 원하는 51번 노드가 위치할 가상 원형 공간을 구성하기 위해 시계방향으로 이웃에 위치한 67번 노드에게 참여 요청 메시지를 전송한다(S710).
다음으로, 67번 노드는 참여를 원하는 51번 노드가 위치할 가상 원형 공간을 구성하기 위해 시계방향으로 이웃에 위치한 이미 참여한 51번 노드에게 참여 요청 메시지를 전송한다(S720).
다음으로, 참여 요청 메시지는 결국 이미 참여한 51번 노드에게 전달이 되고, 이미 참여한 51번 노드는 같은 식별값으로부터 참여를 요청받은 것을 알고, 패스워드 요청 메시지를 통해 참여를 원하는 51번 노드에게 패스워드를 요청하게 된다(S730).
다음으로, 참여를 원하는 51번 노드는 패스워드를 해쉬 함수를 통해 암호화 하여 암호화한 패스워드를 이미 참여한 51번 노드에게 전송한다(S740).
다음으로, 이미 참여한 51번 노드는 상기 암호화한 패스워드를 복호화하여 패스워드가 일치하는지 확인한다(S750).
다음으로, 이미 참여한 51번 노드는 단계S750에서 패스워드가 일치한다고 판단되면, 참여를 원하는 51번 노드를 참여시키고, 참여를 원하는 51번 노드에게 참여 확인 메시지를 전송한다(S760). 이후에, 새롭게 참여한 51번 노드는 자신의 이웃 노드들에 갱신 메시지를 보내 노드의 변경을 알리게 된다.
도 8은 도 3에서 19번 노드가 저장하고 있는 이웃 노드 테이블과 친구 노드 테이블을 나타내는 도면이다. 도 8을 참조하면, 도 3에서 19번 노드에서 저장하고 있는 이웃 노드들에 대한 자원 정보 위치자를 나타내는 이웃 노드 테이블과 친구 노드들에 대한 자원 정보 위치자를 나타내는 친구 노드 테이블로 구성되어 있다.
이웃 노드 테이블에는 자신을 중심으로 오른쪽의 오른쪽(RR), 오른쪽(R), 왼쪽(L), 왼쪽의 왼쪽(LL)에 대한 자원 정보 위치자가 저장되어 있다. 구체적으로 예를 들어, 도 3에서의 오른쪽의 오른쪽(RR) 노드인 19번 노드, 오른쪽(R) 노드인 20번 노드, 왼쪽 노드인 10번 노드 및 왼쪽의 왼쪽(LL) 노드인 2번 노드들에 대한 식별값, IP 주소, 포트 번호, RTT 및 타임아웃 정보를 저장하고 있다.
친구 노드 테이블에는 인스턴트 메신져에 따른 친구 노드들에 대한 자원 정보 위치자가 저장되어 있다. 구체적으로 예를 들어, 도 3에서의 19번 노드의 친구 노드 테이블에는 자신의 친구 노드인 40번 노드, 51번 노드 및 67번 노드들에 대한 식별값, IP 주소, 포트 번호, RTT 및 타임아웃 정보를 저장하고 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프, 플로피디스크 및 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명은 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것으로, P2P의 기본 특성을 살린 순수 P2P 방식으로 모든 노드가 서버와 클라이언트의 역할을 수행할 수 있도록 하고, 또한 인터넷과 같은 분산된 환경에서 적합한 P2P 오버레이 네트워크를 구축하기 위해 DHT를 이용하여 확장성, 신뢰성, 유지 보수성 및 사용자 편의성을 제공한다.
자원 정보 위치자(Resource Locator)라고 하는 라우팅 테이블을 유지하여 보다 효율적인 자원 검색이 가능하고, 또한 간단히 구성된 메시지의 교환을 통해 P2P 오버레이 네트워크를 구축 및 유지 보수할 수 있다.
또한, 본 발명을 통해 구성된 P2P 오버레이 네트워크는 차세대 인터넷인 IPv6를 기반으로 하여 동작하며, 인스턴트 메신져, VoD 서비스, 자원 공유와 같은 현재 인터넷 상에서 많이 사용되고 있는 응용 서비스를 제공할 수 있고, 이를 통해 IPv6 기반으로 동작하는 다양한 서비스들이 많은 사용자들에게 제공될 수 있으며, IPv6 조기 도입에 큰 역할을 수행할 수 있게 된다.

Claims (16)

  1. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록시키는 방법에 있어서,
    (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계;
    (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드가 상기 참여를 원하는 노드의 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부가 판단되는 단계; 및
    (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 참여를 원하는 노드가 상기 제 1 노드와 상기 제 2 노드 사이에 등록되는 단계;를 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  2. 제 1 항에 있어서,
    (d) 상기 제 1 노드는 상기 참여를 원하는 노드에게 등록이 성공되었음을 알리는 참여 확인 메시지를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  3. 제 2 항에 있어서,
    상기 다수개의 노드는 각각 자신을 중심으로 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하고 있는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  4. 제 3 항에 있어서,
    (f) 상기 제 1 노드는 상기 참여를 원하는 노드를 중심으로 양쪽 방향으로 2홉 내에 존재하는 노드에 상기 참여를 원하는 노드의 자원 정보 위치자를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  5. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록하는 방법에 있어서,
    (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계;
    (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드에서 상기 참여를 원하는 노드의 식별값과 상기 제 1 노드의 식별값이 일치되는지 여부를 판단하는 단계;
    (c) 상기 (b)단계에서 일치한다고 판단되는 경우에 상기 제 1 노드는 상기 참여를 원하는 노드에 패스워드 요청 메시지를 전송하는 단계;
    (d) 상기 제 1 노드는 상기 참여를 원하는 노드로부터 패스워드를 전송받는 단계; 및
    (e) 상기 제 1 노드는 상기 (d)단계에서 전송받은 패스워드와 상기 제 1 노드를 등록할 때 입력되었던 패스워드를 비교하여 일치하는 경우 상기 참여를 원하는 노드로 대체되는 단계;를 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  6. 제 5 항에 있어서,
    상기 다수개의 노드는 각각 자신을 중심으로 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하고 있는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  7. 제 6 항에 있어서,
    (f) 상기 제 1 노드에 대체되어 등록된 상기 참여를 원하는 노드는 자신을 중심으로 양쪽 방향으로 2홉 내에 존재하는 노드에 상기 참여를 원하는 노드의 자원 정보 위치자를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.
  8. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 저장하고 있는 노드에서 상기 공유 파일에 대한 자원 정보 위치자를 등록하는 방법에 있어서,
    (a) 상기 공유 파일을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계;
    (b) 상기 파일 식별값을 포함하는 파일등록 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일등록 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및
    (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 등록하는 단계;를 포함하는 것을 특징으로 하는 공유 파일 자원 정보 위치자 등록 방법.
  9. 제 8 항에 있어서,
    상기 다수개의 노드는 각각 자신을 중심으로 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하고 있는 것을 특징으로 하는 공유 파일 자원 정보 위치자 등록 방법.
  10. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서,
    (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계;
    (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및
    (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계;
    (d) 상기 파일검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 하는 공유 파일 검색 방법.
  11. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서,
    (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계;
    (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드에 기 저장되어 있는 공유 파일 리스트에 존재하는지 판단하는 단계;
    (c) 상기 (b)단계에서 존재한다고 판단되는 경우에, 상기 제 1 노드는 사전에 상기 파일 식별값과 일치하는 공유 파일 리스트를 전송한 노드로 상기 파일 검색 메시지를 전송하는 단계;
    (d) 상기 공유 파일 리스트를 전송한 노드는 상기 파일 식별값에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계; 및
    (e) 상기 공유 파일 검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 하는 공유 파일 검색 방법.
  12. 제 11 항에 있어서,
    상기 (c)단계는 상기 (b)단계에서 존재하지 않는다고 판단되는 경우에, 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 노드가 상기 파일 식별값이 상기 파일 검색 메시지를 전송받은 노드의 식별값과 상기 파일 검색 메시지를 전송받은 노드 다음에 위치하는 노드의 식별값의 사이값인지 여부를 판단하고, 사이값 이라고 판단되는 시점에서 파일 검색 메시지를 전송받은 노드로 상기 파일 검색 메시지를 전송하는 것을 특징으로 하는 공유 파일 검색 방법.
  13. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크를 구축함에 있어서,
    상기 다수개의 노드는 각각 자신의 노드에서 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하는 이웃 노드 테이블; 및
    인스턴트 메신져와 연동하여 얻을 수 있는 친구 노드들에 대한 자원 정보 위치자를 저장하는 친구 노드 테이블;을 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.
  14. 제 13 항에 있어서, 상기 자원 정보 위치자에는
    해당하는 노드의 이메일 주소를 해쉬하여 얻어지는 해쉬 함수값인 식별값;
    상기 해당하는 노드의 실제 위치를 나타내는 IP 주소; 및
    상기 해당하는 노드에서 현재 응용 서비스를 제공하는 포트 번호;로 이루어진 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.
  15. 제 13 항에 있어서,
    상기 다수개의 노드는 각각 상기 이웃 노드 테이블을 통하여 이웃하는 노드 들과 상기 친구 노드 테이블을 통하여 친구 노드들에게 주기적으로 동작상태 확인 메시지를 전송하여 RTT 값을 측정함으로써 상기 이웃하는 노드들과 친구 노드들이 동작하고 있는지 여부를 측정하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.
  16. 제 15 항에 있어서,
    상기 다수개의 노드는 각각 상기 친구 노드들중에서 동작하고 있는 친구 노드들에 자신이 보유하고 있는 공유 파일 리스트를 전송하고,
    상기 동작하고 있는 친구 노드들이 보유하고 있는 공유 파일 리스트를 전송받는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.
KR1020050039228A 2004-12-21 2005-05-11 P2p 오버레이 네트워크 구축 방법 및 장치 KR100641796B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/KR2005/003523 WO2006068365A1 (en) 2004-12-21 2005-10-21 P2p overlay network construction method and apparatus
US11/793,791 US20080130516A1 (en) 2004-12-21 2005-10-21 P2p Overplay Network Construction Method and Apparatus

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020040109698 2004-12-21
KR20040109698 2004-12-21

Publications (2)

Publication Number Publication Date
KR20060071079A true KR20060071079A (ko) 2006-06-26
KR100641796B1 KR100641796B1 (ko) 2006-11-02

Family

ID=37164630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050039228A KR100641796B1 (ko) 2004-12-21 2005-05-11 P2p 오버레이 네트워크 구축 방법 및 장치

Country Status (1)

Country Link
KR (1) KR100641796B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101144331B1 (ko) * 2010-06-28 2012-05-11 강원대학교산학협력단 시간 기반의 메쉬 오버레이 네트워크 시스템 및 이를 이용한 메쉬 오버레이 네트워크 구축 방법
US8255565B2 (en) 2007-01-12 2012-08-28 Samsung Electronics Co., Ltd. Proxying transaction method for processing function of wireless node in peer-to-peer overlay network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255565B2 (en) 2007-01-12 2012-08-28 Samsung Electronics Co., Ltd. Proxying transaction method for processing function of wireless node in peer-to-peer overlay network
KR101144331B1 (ko) * 2010-06-28 2012-05-11 강원대학교산학협력단 시간 기반의 메쉬 오버레이 네트워크 시스템 및 이를 이용한 메쉬 오버레이 네트워크 구축 방법

Also Published As

Publication number Publication date
KR100641796B1 (ko) 2006-11-02

Similar Documents

Publication Publication Date Title
US20080130516A1 (en) P2p Overplay Network Construction Method and Apparatus
Pucha et al. Ekta: An efficient dht substrate for distributed applications in mobile ad hoc networks
Henningsen et al. Mapping the interplanetary filesystem
US7336623B2 (en) Peer-to-peer cloud-split detection and repair methods
US7660320B2 (en) Communication network, a method of routing data packets in such communication network and a method of locating and securing data of a desired resource in such communication network
KR101422213B1 (ko) 단말의 능력을 기초로 역할을 설정하는 장치 및 그 방법
US20070233832A1 (en) Method of distributed hash table node ID collision detection
US20070230468A1 (en) Method to support mobile devices in a peer-to-peer network
TW200803303A (en) Inter-proximity communication within a rendezvous federation
WO2005074197A1 (en) Obtaining routing information
Shah et al. A survey of P2P content sharing in MANETs
JP4607764B2 (ja) モバイルピアツーピアネットワーク構築
Yu et al. Location-aware private service discovery in pervasive computing environment
KR101219536B1 (ko) 일반 피어 장치, pan 게이트웨이 장치, 수퍼 피어 장치, p2p 네트워크 기반의 상호 연동 방법
KR100641796B1 (ko) P2p 오버레이 네트워크 구축 방법 및 장치
Singh et al. Challenges and protocols for P2P applications in multi-hop wireless networks
Yan et al. Towards an integrated architecture for peer-to-peer and ad hoc overlay network applications
Ariff et al. A review of recent advancement in Kademlia and Chord algorithm
Grigoras Service-oriented naming scheme for wireless ad hoc networks
Karwaczynski et al. Analysis of overlay network impact on dependability
JP5287500B2 (ja) ノード装置およびノード装置用プログラム
Li et al. Topology mismatch avoidable cross-layer protocol for P2P file discovery in MANETs
Karbhari et al. Bootstrapping in gnutella: A preliminary measurement study
Kaya A glance at peer to peer systems
Delmastro et al. P2P SYSTEMS ON MANETS: FROM PASTRY TO CROSSROAD

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120216

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20121025

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee