[go: up one dir, main page]

KR100641796B1 - P2P overlay network construction method and apparatus - Google Patents

P2P overlay network construction method and apparatus Download PDF

Info

Publication number
KR100641796B1
KR100641796B1 KR1020050039228A KR20050039228A KR100641796B1 KR 100641796 B1 KR100641796 B1 KR 100641796B1 KR 1020050039228 A KR1020050039228 A KR 1020050039228A KR 20050039228 A KR20050039228 A KR 20050039228A KR 100641796 B1 KR100641796 B1 KR 100641796B1
Authority
KR
South Korea
Prior art keywords
node
file
nodes
identification value
value
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.)
Expired - Fee Related
Application number
KR1020050039228A
Other languages
Korean (ko)
Other versions
KR20060071079A (en
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 US11/793,791 priority Critical patent/US20080130516A1/en
Priority to PCT/KR2005/003523 priority patent/WO2006068365A1/en
Publication of KR20060071079A publication Critical patent/KR20060071079A/en
Application granted granted Critical
Publication of KR100641796B1 publication Critical patent/KR100641796B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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] 

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Environmental & Geological Engineering (AREA)
  • Computer And Data Communications (AREA)

Abstract

본 발명은 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것으로, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록시키는 방법에 있어서, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드가 상기 참여를 원하는 노드의 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부가 판단되는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 참여를 원하는 노드가 상기 제 1 노드와 상기 제 2 노드 사이에 등록되는 단계;로 구성된다. 따라서, 각 노드에서 공유하는 자원을 보다 쉽고 효율적으로 검색할 수 있다.The present invention relates to a method and apparatus for constructing a P2P overlay network. The present invention relates to a P2P overlay network in which identification values for a plurality of nodes are obtained using a distributed hash table, and the plurality of nodes are sequentially located based on the identification values. CLAIMS 1. A method of registering a node that wants to participate, the method comprising: (a) sending a join request message from the node that wants to participate to a reference node of the P2P overlay network; (b) As the participation request message is sequentially transmitted between the plurality of nodes, an identification value of a node to which the first node, which has received the participation request message, wants to participate, is the identification value of the first node and the first node. Determining whether the value is between the identification values of the second node next to the node; And (c) registering the node that wants to participate between the first node and the second node when it is determined that the inter-value is determined in the step (b). Therefore, it is possible to search for resources shared by each node more easily and efficiently.

Description

P2P 오버레이 네트워크 구축 방법 및 장치{P2P overlay network construction method and apparatus}P2P overlay network construction method and apparatus

도 1은 본 발명에 따른 노드와 공유 파일을 해쉬 함수를 통해 얻은 식별값을 기반으로 나타나는 자원 정보 위치자(Resource Locator)의 구성을 나타내는 블럭도이다.FIG. 1 is a block diagram illustrating a configuration of a resource information resource locator showing a node and a shared file based on an identification value obtained through a hash function according to the present invention.

도 2는 본 발명에 따른 참여를 원하는 노드가 이미 구성된 P2P 오버레이 네트워크에 참여하는 방법을 나타내는 도면이다.2 is a diagram illustrating a method for joining a P2P overlay network in which a node that wants to participate according to the present invention is already configured.

도 3은 본 발명에 따른 노드가 2홉 내에 있는 이웃 노드와 친구 노드가 동작하고 있는지 여부를 확인하는 방법을 나타내는 도면이다.3 is a diagram illustrating a method of checking whether a node and a friend node are operating within two hops according to the present invention.

도 4는 본 발명에 따른 노드가 보유하고 있는 공유 파일의 자원 정보 위치자를 P2P 오버레이 네트워크 상에 등록하는 방법을 나타내는 도면이다.4 is a diagram illustrating a method of registering a resource information locator of a shared file held by a node on a P2P overlay network according to the present invention.

도 5는 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 일예이다. 5 is an example of a method for searching for a shared file stored in another node in one node according to the present invention.

도 6은 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 다른 일예이다. 6 is another example of a method for searching for a shared file stored in another node in one node according to the present invention.

도 7은 본 발명에 따른 같은 식별값을 가진 노드가 다른 IP를 이용해서 참여하고자 할 때 발생하는 식별값 중복 문제를 해결하는 방법에 대한 일예이다.7 is an example of a method of solving the problem of duplicated identification values generated when a node having the same identification value attempts to participate using different IP according to the present invention.

도 8은 도 3에서 19번 노드가 저장하고 있는 이웃 노드 테이블과 친구 노드 테이블을 나타내는 도면이다.FIG. 8 is a diagram illustrating a neighbor node table and a friend node table stored in node 19 in FIG. 3.

본 발명은 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것으로, 더욱 상세하게는 인터넷과 같은 분산된 환경에서 P2P 오버레이 네트워크를 구축하고 각 노드에서 공유하는 자원을 쉽고 효율적으로 검색할 수 있는 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for constructing a P2P overlay network, and more particularly, to a P2P overlay network construction method for constructing a P2P overlay network in a distributed environment such as the Internet and for easily and efficiently searching for resources shared by each node. And to an apparatus.

IPv6(Internet Protocol version 6) 네트워크는 시험망의 수준을 넘어 상용 서비스를 할 수 있도록 구축되고 있으나 아직까지는 IPv6를 이용한 응용들이 많지 않은 상황이다. 따라서, IPv6 네트워크의 활성화를 위해서는 상용망에서 동작할 수 있는 많은 응용들이 개발되어져야 한다. 특히 인터넷의 기본 개념인 End-to-End 서비스를 지향하는 P2P 응용의 경우 차세대 인터넷에서 가장 많이 사용될 수 있는 응용 중 하나로 여겨지고 있기 때문에 IPv6 네트워크에서 동작하는 P2P 응용의 개발 및 보급을 통해 IPv6 네트워크의 사용을 앞당기는데 많은 기여를 할 수 있을 것이다.IPv6 (Internet Protocol version 6) networks are being built to provide commercial services beyond the test network, but there are not many applications using IPv6. Therefore, in order to activate the IPv6 network, many applications that can operate in a commercial network must be developed. In particular, P2P applications aiming for the end-to-end service, which is the basic concept of the Internet, are considered as one of the most widely used applications in the next-generation Internet. Therefore, the use of IPv6 networks through the development and distribution of P2P applications that operate on IPv6 networks It will be able to contribute a lot to this.

종래에 연구된 알고리즘인 Peer-to-Peer(P2P) 기술은 HTTP와 같이 어플리케이션 레벨의 프로토콜로, 사용자 사이의 실시간 통신이나 자원분배 및 교환 등을 지원하는 기술로 정의되고 있다. P2P는 일반적으로 서버를 이용한 혼합형(hybrid) P2P 방식과 모든 노드가 서버와 클라이언트의 동작을 수행하는 순수(pure) P2P 방식이 존재한다. 순수 P2P 방식은 근본적인 Peer-to-Peer의 개념을 따른 것으로, 대규모의 망에서 각 노드가 공유된 자원의 검색 및 발견이 어렵다는 문제점을 가지고 있다. Peer-to-Peer (P2P) technology, which has been studied in the past, is an application level protocol such as HTTP, and is defined as a technology that supports real-time communication, resource distribution and exchange between users. P2P generally includes a hybrid P2P scheme using a server and a pure P2P scheme in which all nodes perform server and client operations. Pure P2P method follows the fundamental concept of peer-to-peer, and it has a problem that it is difficult to search and find resources shared by each node in a large network.

혼합형 P2P 방식은 서버를 통해 각 노드들에게 자원의 공유 기능을 제공하는 것으로, 서비스를 제공할 수 있는 중앙 서버와 실질적인 공유 자원을 가지고 있는 P2P 노드들로 구성되어있다. 중앙 서버는 각 노드들로부터 네트워크 연결 세션을 유지하고 공유한 자원들의 메타 데이터들을 관리 유지하여 P2P 노드들의 필요에 의한 자원을 쉽게 검색 할 수 있다. 각 P2P 노드는 공유 자원을 검색하기 위해 서버에 접속하여 해당 자원을 보유한 노드를 검색하고 실제 자원의 교환은 두 노드간의 연결을 통해 이루어진다. 이러한 구조의 대표적인 예로는 세계적으로 잘 알려져 있는 Napster이다. 그러나, 이와 같은 구조는 확장성이 부족하고, 또한 중앙 집중으로 인한 비용의 상승 및 안정성에 취약한 문제점을 가지고 있다. The hybrid P2P method provides a resource sharing function to each node through a server, and is composed of a central server capable of providing a service and P2P nodes having substantial shared resources. The central server maintains network connection sessions from each node and manages and maintains metadata of shared resources so that the P2P nodes can easily search for resources as needed. Each P2P node connects to the server to search for shared resources, searches for nodes with the resources, and exchanges of the actual resources are made through the connection between the two nodes. A representative example of such a structure is Napster, which is well known around the world. However, such a structure lacks scalability and also has a problem in that it is vulnerable to increase in cost and stability due to centralization.

순수 P2P 방식은 널리 알려져 있는 Gnutella와 Freenet등이 대표적으로 사용하고 있다. Gnutella의 경우 각 노드는 응용차원에서 스스로 연결하여 네트워크를 이루고 있는데, 이 노드는 파일을 검색하기 위해 일정 범위 안으로 검색 메시지를 플루딩(Flooding)하여 파일을 가진 노드의 정보를 얻을 수 있다. 그러나 주기적으로 메시지를 모든 Gnutella 네트워크에 플루딩하기 때문에 확장성에 대한 큰 문제점을 가지고 있다. Pure P2P method is widely used by Gnutella and Freenet. In the case of Gnutella, each node connects itself in an application level, and this node can obtain information about the node having the file by flooding the search message to a certain range to search for the file. However, it has a big problem with scalability because it periodically polls all Gnutella networks.

반면에, 해쉬 테이블을 이용하여 실제 값과 해쉬 함수를 통해 얻은 키의 조 합에 의해 네트워크를 구축하는 P2P 오버레이 네트워크는 확장성 및 안정성을 제공한다. 대표적인 방법으로는 DHT(Distributed Hash Table: 분산 해쉬 테이블)를 사용하는 Chord, Pastry, 및 CAN 등이 있다. On the other hand, the P2P overlay network, which uses a hash table to construct a network by combining a real value with a key obtained through a hash function, provides scalability and stability. Representative methods include Chord, Pastry, and CAN using a Distributed Hash Table (DHT).

Chord의 경우 원형의 m-bit 가상 식별자 공간을 이용하여 노드와 공유 파일을 각각 해쉬 함수를 통해 얻은 식별값을 배치시킨다. 또한 자원을 검색하기 위해 각 노드는 핑거 테이블(finger table)이라는 라우팅 테이블을 유지하여 검색 수행을 용이하게 한다. Chord uses the circular m-bit virtual identifier space to place the identification values obtained through the hash function of the node and the shared file, respectively. In addition, to retrieve resources, each node maintains a routing table called a finger table to facilitate the search.

Pastry는 마이크로소프트사(Microsoft)에 의해 제안된 방법으로 IP 주소나 공개키를 암호화 해쉬를 통해 중복되지 않는 랜덤한 128비트 노드 식별자로 만들어 이름 공간상에 분산되도록 한다. 또한 데이터도 128비트 키를 가지며, 데이터로부 유추되는 키에 가장 가까운 키를 가진 노드에 저장되어 검색을 용이하게 한다. Pastry is a method proposed by Microsoft that makes an IP address or public key a random 128-bit node identifier that is not duplicated through a cryptographic hash and is distributed across the namespace. The data also has a 128-bit key and is stored in the node with the key closest to the key inferred from the data to facilitate retrieval.

마지막으로, CAN은 해쉬 함수를 통해 d 차원에서 한 점에 대응되는 벡터 P (p = hash(key) )를 얻어 각 노드들은 가상공간을 분할한 존의 범위에 해당하는 데이터를 저장하게 된다.Finally, CAN obtains a vector P (p = hash (key)) corresponding to a point in the d dimension through a hash function, and each node stores data corresponding to the range of the zone where the virtual space is divided.

혼합형 P2P 방식은 중앙 서버로 인해 비용 상승 및 확장성과 안정성 부분에서 취약하며, 순수 P2P 방식중에서 Gutella를 대표로 하는 플루딩을 이용하는 P2P 오버레이 네트워크 역시 잦은 메시지들의 플루딩으로 인해 트래픽이 증가함으로써 확장성 부분에서 문제점을 가지고 있다. Hybrid P2P method is weak in terms of cost increase, scalability and stability due to central server, and P2P overlay network using Gutella's representative flooding among pure P2P methods also has scalability due to increased traffic due to frequent message flooding. I have a problem with

이와 같이, Chord, Pastry, 및 CAN과 같은 시스템은 확장성과 안정성 그리고 사용의 편의성을 제공하지만, 위의 알고리즘은 실제 구현하기에 복잡한 방법들 을 제시하고 있을 뿐 아니라 키워드를 이용한 파일 검색에 비해 DHT가 지닌 단점으로 인해 실제 검색 성공 확률은 높지 않다는 문제점을 가지고 있다. 또한, 분산된 환경에서의 스토리지와 같은 특정 P2P 응용에만 적합하다는 문제점을 가지고 있다.As such, systems such as Chord, Pastry, and CAN provide scalability, stability, and ease of use, but the above algorithms offer complex methods to implement in practice, as well as DHT's Due to the disadvantages, the actual search success probability is not high. It also has the problem that it is only suitable for certain P2P applications such as storage in a distributed environment.

본 발명은 DHT를 이용하여 분산된 환경에 적합하도록 노드와 공유 자원을 배치하고 각 노드는 이웃 노드와 친구 노드에 대한 위치 정보만을 저장하여 메시지 라우팅을 통한 P2P 오버레이 네트워크를 구축하는 방법을 제공한다. The present invention provides a method for arranging nodes and shared resources so as to be suitable for a distributed environment using DHT, and each node stores only location information of neighbor nodes and friend nodes, thereby establishing a P2P overlay network through message routing.

또한, 본 발명은 P2P의 성격을 유지하며, 인스턴트 메신져와 함께 연동하는 친구 노드를 P2P 오버레이 네트워크를 구성하는데 사용함으로써 파일 검색을 가능하도록 하는 방법을 제공한다. In addition, the present invention provides a method for maintaining a character of P2P and enabling file retrieval by using a friend node interworking with an instant messenger to construct a P2P overlay network.

상기 기술적 과제를 해결하기 위한 본 발명의 P2P 오버레이 네트워크 구축 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록시키는 방법에 있어서, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드가 상기 참여를 원하는 노드의 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부가 판단되는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 참여를 원하는 노드가 상기 제 1 노드와 상기 제 2 노드 사이에 등록되는 단계;를 포함하는 것을 특징으로 가진다.The P2P overlay network construction method of the present invention for solving the above technical problem, obtains identification values for a plurality of nodes using a distributed hash table, and the plurality of nodes are sequentially located based on the identification value P2P A method of registering a node to join an overlay network, the method comprising: (a) sending a join request message from a node to join to a reference node of the P2P overlay network; (b) As the participation request message is sequentially transmitted between the plurality of nodes, an identification value of a node to which the first node, which has received the participation request message, wants to participate, is the identification value of the first node and the first node. Determining whether the value is between the identification values of the second node next to the node; And (c) registering the node, which is desired to participate, between the first node and the second node when it is determined that the inter-value is determined in the step (b).

또한, 상기 기술적 과제를 해결하기 위한 본 발명의 P2P 오버레이 네트워크 구축 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록하는 방법에 있어서, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드에서 상기 참여를 원하는 노드의 식별값과 상기 제 1 노드의 식별값이 일치되는지 여부를 판단하는 단계; (c) 상기 (b)단계에서 일치한다고 판단되는 경우에 상기 제 1 노드는 상기 참여를 원하는 노드에 패스워드 요청 메시지를 전송하는 단계; (d) 상기 제 1 노드는 상기 참여를 원하는 노드로부터 패스워드를 전송받는 단계; 및 (e) 상기 제 1 노드는 상기 (d)단계에서 전송받은 패스워드와 상기 제 1 노드를 등록할 때 입력되었던 패스워드를 비교하여 일치하는 경우 상기 참여를 원하는 노드로 대체되는 단계;를 포함하는 것을 특징으로 가진다.In addition, the P2P overlay network construction method of the present invention for solving the technical problem, by using a distributed hash table to obtain the identification value for a plurality of nodes and the plurality of nodes are sequentially located based on the identification value A method of registering a node that wants to participate in a P2P overlay network, the method comprising the steps of: (a) transmitting a join request message from a node that wants to participate to a reference node of the P2P overlay network; (b) Whether the participation request message is sequentially transmitted between the plurality of nodes, and whether the identification value of the node that wants to participate in the first node that has received the participation request message matches the identification value of the first node; Determining; (c) if it is determined in step (b) that the first node transmits a password request message to the node that wants to participate; (d) the first node receiving a password from the node that wants to participate; And (e) comparing the password received in the step (d) with the password input when registering the first node and replacing the node with the desired node if the first node matches. Have as characteristic.

상기 기술적 과제를 해결하기 위한 본 발명의 공유 파일 자원 정보 위치자 등록 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 저장하고 있는 노드에서 상기 공유 파일에 대 한 자원 정보 위치자를 등록하는 방법에 있어서, (a) 상기 공유 파일을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계; (b) 상기 파일 식별값을 포함하는 파일등록 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일등록 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 등록하는 단계;를 포함하는 것을 특징으로 가진다.In the shared file resource information locator registration method of the present invention for solving the technical problem, obtaining identification values for a plurality of nodes by using a distributed hash table and the plurality of nodes are sequentially located based on the identification values A method of registering a resource information locator for a shared file in a node storing a shared file in a P2P overlay network, the method comprising: (a) a file identification value using a hash through the distributed hash table for the shared file Calculating; (b) a file registration message including the file identification value is sequentially transmitted between the plurality of nodes, so that the first node receiving the file registration message has the file identification value and the identification value of the first node. Determining whether the value is between the identification values of the second node next to the first node; And (c) registering the resource information locator for the file when it is determined that the inter-value is determined in the step (b).

상기 기술적 과제를 해결하기 위한 본 발명의 공유 파일 검색 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서, (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계; (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드에 기 저장되어 있는 공유 파일 리스트에 존재하는지 판단하는 단계; (c) 상기 (b)단계에서 존재한다고 판단되는 경우에 상기 제 1 노드는 사전에 상기 파일 식별값과 일치하는 공유 파일 리스트를 전송한 노드로 상기 파일 검색 메시지를 전송하는 단계; (d) 상기 공유 파일 리스트를 전송한 노드는 상기 파일 식별값에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계; 및 (e) 상기 공유 파일 검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 가진다.In the shared file retrieval method of the present invention for solving the above technical problem, a P2P overlay in which identification values for a plurality of nodes are obtained using a distributed hash table, and the plurality of nodes are sequentially located based on the identification values. A method of searching for a shared file in a node that wants to search for a shared file in a network, the method comprising: (a) calculating a file identification value using a hash through the distributed hash table for the shared file name to be searched; (b) a file search message including the file identification value is sequentially transmitted between the plurality of nodes, so that the first node receiving the file search message has previously stored the file identification value in the first node. Determining whether it exists in the shared file list; (c) if it is determined in step (b) that the first node transmits the file search message to a node that previously sent a list of shared files matching the file identification value; (d) the node transmitting the shared file list transmitting a search confirmation message including a resource information locator for the file identification value to a node that wants to search the file; And (e) searching for the file by connecting to the node that wants to search for the shared file to the node having the actual file through the resource information locator.

또한, 상기 기술적 과제를 해결하기 위한 본 발명의 공유 파일 검색 방법은, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서, (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계; (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및 (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계; (d) 상기 파일검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 가진다.In addition, the shared file search method of the present invention for solving the technical problem, by using the distributed hash table to obtain the identification value for a plurality of nodes and the plurality of nodes are sequentially located based on the identification value A method of searching for a shared file in a node that wants to search for a shared file in a P2P overlay network, the method comprising: (a) calculating a file identification value using a hash through the distributed hash table for the shared file name to be searched; (b) a file search message including the file identification value is sequentially transmitted between the plurality of nodes, so that the first node receiving the file search message has the file identification value and the identification value of the first node. Determining whether the value is between the identification values of the second node next to the first node; And (c) the first node transmitting a search confirmation message including a resource information locator for the file to the node that wants to search for the file, when it is determined that the inter-value is determined in step (b). and (d) searching for the file by connecting to the node having the actual file through the resource information locator.

상기 기술적 과제를 해결하기 위한 본 발명의 P2P 오버레이 네트워크 구축 장치는, 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상 기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크를 구축함에 있어서, 상기 다수개의 노드는 각각 자신의 노드에서 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하는 이웃 노드 테이블; 및 인스턴트 메신져와 연동하여 얻을 수 있는 친구 노드들에 대한 자원 정보 위치자를 저장하는 친구 노드 테이블;을 포함하는 것을 특징으로 가진다.According to an aspect of the present invention, there is provided a P2P overlay network construction apparatus for obtaining identification values for a plurality of nodes using a distributed hash table, and the plurality of nodes are sequentially located based on the identification values. In constructing a P2P overlay network, each of the plurality of nodes comprises: a neighbor node table for storing resource information locators for neighboring nodes in two hops in both directions from each node; And a friend node table for storing resource information locators for friend nodes that can be obtained by interworking with an instant messenger.

이하, 도면을 참조하여 본 발명의 일실시예를 보다 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings.

도 1은 본 발명에 따른 노드와 공유 파일을 해쉬 함수를 통해 얻은 식별값을 기반으로 나타나는 자원 정보 위치자(Resource Locator)의 구성을 나타내는 블럭도이다. 도 1을 참조하면, 자원 정보 위치자(100)는 식별값(ID)(110), IP 주소(IP address)(120) 및 포트 번호(port number)(130)로 이루어져 있다.FIG. 1 is a block diagram illustrating a configuration of a resource information resource locator showing a node and a shared file based on an identification value obtained through a hash function according to the present invention. Referring to FIG. 1, the resource information locator 100 includes an identification value (ID) 110, an IP address 120, and a port number 130.

먼저, 식별값(110)은 노드 또는 공유 파일을 DHT(Distributed Hash Table)를 이용한 해쉬를 통하여 획득한다. 여기에서, 노드의 경우에는 이메일 주소(e-mail address)를 MD5 해쉬 함수를 통해 해쉬하여 식별값을 획득하고, 공유 파일의 경우에는 파일명(file name)을 MD5 해쉬 함수를 통해 해쉬하여 식별값을 획득한다. 이와 같이 획득된 식별값은 원형 가상 공간에 시계 반대 방향으로 위치하게 된다. First, the identification value 110 obtains a node or a shared file through a hash using a distributed hash table (DHT). Here, in the case of a node, an hash value is obtained by hashing an e-mail address through an MD5 hash function, and in the case of a shared file, a file name is hashed through an MD5 hash function to obtain an identification value. Acquire. The identification value thus obtained is located counterclockwise in the circular virtual space.

자원 정보 위치자(100)는 시계 반대 방향으로 위치하는 노드와 공유 파일의 식별값(110)과 함께 노드의 IP 주소(120)와 현재 응용 서비스를 제공하는 포트 번호(130)로 이루어져 있다. 여기에서, IP 주소(120)는 실제 노드의 IPv6(Internet Protocol version 6)이다.The resource information locator 100 includes an IP address 120 of a node and a port number 130 for providing a current application service, together with an identification value 110 of a node and a shared file located in a counterclockwise direction. Here, IP address 120 is the Internet Protocol version 6 (IPv6) of the real node.

여기에서, 획득된 식별값은 원형 가상 공간에 시계 반대 방향으로 위치하는 것으로 설명하였으나, 본 발명의 다른 일실시예에서는 원형 가상 공간에 시계 방향으로 위치하도록 할 수도 있다.Here, the obtained identification value has been described as being located counterclockwise in the circular virtual space, but in another embodiment of the present invention, it may be positioned clockwise in the circular virtual space.

또한, 본 발명에서는 종래의 P2P 오버레이 프로토콜과는 달리 IPv6 상에서 작동하는 새로운 P2P 오버레이 네트워크에 관한 것이다. The present invention also relates to a new P2P overlay network operating on IPv6, unlike the conventional P2P overlay protocol.

도 2는 본 발명에 따른 참여를 원하는 노드가 이미 구성된 P2P 오버레이 네트워크에 참여하는 방법을 나타내는 도면이다. 도 2를 참조하면, 식별값이 17인 17번 노드(즉, 참여를 원하는 노드)가 이미 구성되어 있는 P2P 오버레이 네트워크에 참여하는 과정을 나타내고 있다.2 is a diagram illustrating a method for joining a P2P overlay network in which a node that wants to participate according to the present invention is already configured. Referring to FIG. 2, a process of joining a P2P overlay network in which node 17 (ie, a node that wants to join) having an identification value of 17 is already configured is illustrated.

먼저, 17번 노드는 응용을 시작하면서 0번 노드(즉, 기준 노드)의 정보를 통하여 0번 노드가 현재 동작중인지 여부를 확인하기 위한 PING 메시지를 전송한다(S200). First, node 17 transmits a PING message for checking whether node 0 is currently operating through information of node 0 (ie, a reference node) while starting an application (S200).

여기에서, 기준 노드(key node)라는 것은 언제나 접속 가능하고, 모든 노드가 처음부터 그 주소를 알고 있는 특수한 노드로 가정하는 것으로, 이 기준 노드의 정보는 P2P 응용이 시작되면 함께 로드되어 정보를 획득하거나 DNS(Domain Name System)를 통해 특정 IP 주소를 획득할 수 있게 된다. 도 2의 P2P 오버레이 네트워크에서는 식별값이 0인 0번 노드가 기준 노드로 되어 있다.Here, the key node is assumed to be a special node that is always accessible and all nodes know its address from the beginning, and the information of the reference node is loaded together when the P2P application is started to acquire the information. Or obtain specific IP addresses through the Domain Name System (DNS). In the P2P overlay network of FIG. 2, node 0 having an identification value of 0 is a reference node.

다음으로, PING 메시지를 전송받은 0번 노드가 동작중이라면 PONG 메시지를 17번 노드에게 전송한다(S210).Next, if node 0 received the PING message is in operation, transmits a PONG message to node 17 (S210).

다음으로, 17번 노드는 0번 노드에게 참여 요청 메시지(JOIN 메시지)를 전 송한다(S220). 이와 같이, 모든 노드는 처음으로 P2P 오버레이 네트워크에 참여하기 위해서 0번 노드(기분 노드)에 참여 요청 메시지를 보내게 된다. Next, node 17 transmits a join request message (JOIN message) to node 0 (S220). As such, all nodes send a join request message to node 0 (contributing node) to join the P2P overlay network for the first time.

다음으로, 0번 노드는 17번 노드가 위치할 가상 원형 공간을 구성하기 위해 시계방향으로 해당 위치로의 참여 요청 메시지를 전송한다(S230)(S240)(S250). 도 2에서 17번 노드가 위치할 노드는 22번 노드의 왼쪽이기 때문에 22번 노드까지 참여 요청 메시지가 전송된다. Next, node 0 transmits a participation request message to the corresponding position in the clockwise direction to configure the virtual circular space where node 17 is located (S230) (S240) (S250). In FIG. 2, since the node on which node 17 is to be located is the left side of node 22, a join request message is transmitted to node 22.

다음으로, 참여 요청 메시지를 전송받은 22번 노드는 17번 노드에게 P2P 오버레이 네트워크에 성공적으로 위치했다는 것을 알리는 참여 확인 메시지(JACK)를 전송한다(S260).Next, node 22, which has received the participation request message, transmits a participation confirmation message (JACK) indicating that the node 17 has been successfully located in the P2P overlay network (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)으로 구성되어 있다.Next, because one node must have information about neighboring nodes within two hops, node 22 is a node 17 node to node 2, node 10, node 22 and 51, which are neighbors of node 17. Transmit an update message including the resource information locator of S271, S272, S273, S274, receive the resource information locator from nodes 2, 10, 22, and 51 and register it; do. In Figure 2, transmitting the resource information locator to node 2 (S271), transmitting the resource information locator to node 10 (S272), transmitting the resource information locator to node 22 (S273) and 51 And transmitting the resource information locator to the node (S274).

도 2에서와 같이, 성공적으로 P2P 오버레이 네트워크에 참여한 노드는 이웃 노드의 정보를 획득하고 인스턴트 메신져와 같은 친구 노드로부터 공유 파일 리스트를 직접 전송받게 된다. 또한, P2P 오버레이 네트워크를 유지 보수하기 위해 주 기적으로 동작 확인 메시지(HELLO 메시지)를 전송하게 된다. 이와 관련하여서는 도 3에서 상세히 살펴보기로 한다. As shown in FIG. 2, a node successfully participating in a P2P overlay network acquires information of a neighbor node and receives a shared file list directly from a friend node such as an instant messenger. In addition, the operation confirmation message (HELLO message) is periodically transmitted to maintain the P2P overlay network. In this regard will be described in detail in FIG.

도 3은 본 발명에 따른 노드가 2홉 내에 있는 이웃 노드와 친구 노드가 동작하고 있는지 여부를 확인하는 방법을 나타내는 도면이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 된다.3 is a diagram illustrating a method of checking whether a node and a friend node are operating within two hops according to the present invention. Here, in the P2P overlay network, the message is transmitted in the clockwise direction with respect to the reference node (node 0), and the identification value for the node or file becomes smaller as the clockwise direction is around the reference node.

도 3을 참조하면, 19번 노드(식별값이 19)는 성공적으로 P2P 오버레이 네트워크에 참여하여 자신의 이웃 노드들과 친구 노드들에게 동작 확인 메시지(HELLO 메시지)를 통해 RTT(Round Trip Time)를 체크하여 현재 이웃 노드들이 잘 동작하고 있는지 여부를 확인하는 것이다.Referring to FIG. 3, node 19 (identification value 19) successfully participates in a P2P overlay network and sends a round trip time (RTT) to an operation confirmation message (HELLO message) to its neighbor nodes and friend nodes. This is to check whether neighboring nodes are currently operating well.

먼저, 19번 노드는 자신의 왼쪽의 왼쪽 노드인 2번 노드에 동작 확인 메시지를 전송한다(S300). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 2번 노드로부터 2번 노드 자신이 동작중이라는 동작 반응 메시지(HACK 메시지)를 전송받는다(S305). 따라서, 19번 노드는 2번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S305에서 2번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 2번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.First, node 19 transmits an operation confirmation message to node 2, the left node of its left (S300). Next, node 19 receives an operation response message (HACK message) that node 2 itself is operating from node 2 receiving the operation confirmation message (S305). Therefore, node 19 confirms that node 2 is currently operating. On the other hand, if node 2 is not operating in step S305, node 19 does not receive the operation response message. Therefore, node 19 confirms that node 2 is not currently operating.

다음으로, 19번 노드는 자신의 왼쪽 노드인 10번 노드에 동작 확인 메시지를 전송한다(S310). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 10번 노 드로부터 10번 노드 자신이 동작중이라는 동작 반응 메시지를 전송받는다(S315). 따라서, 19번 노드는 10번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S315에서 10번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 10번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.Next, node 19 transmits an operation confirmation message to node 10, which is its left node (S310). Next, node 19 receives an operation response message indicating that node 10 is operating from node 10 receiving the operation confirmation message (S315). Therefore, node 19 confirms that node 10 is currently operating. On the other hand, if node 10 is not operating in step S315, node 19 does not receive an operation response message. Therefore, node 19 confirms that node 10 is not currently operating.

다음으로, 19번 노드는 자신의 오른쪽 노드인 20번 노드에 동작 확인 메시지를 전송한다(S320). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 20번 노드로부터 20번 노드 자신이 동작중이라는 동작 반응 메시지를 전송받는다(S325). 따라서, 19번 노드는 20번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S325에서 20번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 20번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.Next, node 19 transmits an operation confirmation message to node 20, which is its right node (S320). Next, node 19 receives an operation response message that node 20 itself is operating from node 20 that has received the operation confirmation message (S325). Therefore, node 19 confirms that node 20 is currently operating. On the other hand, if node 20 is not operating in step S325, node 19 does not receive an operation response message. Therefore, node 19 confirms that node 20 is not currently operating.

다음으로, 19번 노드는 자신의 오른쪽의 오른쪽 노드인 22번 노드에 동작 확인 메시지를 전송한다(S330). 다음으로, 19번 노드는 동작 확인 메시지를 전송받은 22번 노드로부터 22번 노드 자신이 동작중이라는 동작 반응 메시지를 전송받는다(S335). 따라서, 19번 노드는 22번 노드가 현재 동작중이라는 것을 확인하게 된다. 한편, 단계S335에서 22번 노드가 동작중이지 않는 경우에는 19번 노드는 동작 반응 메시지를 전송받지 못하게 된다. 따라서, 19번 노드는 22번 노드가 현재 동작중이지 않는다는 것을 확인하게 된다.Next, node 19 transmits an operation confirmation message to node 22, which is the right node of its right (S330). Next, node 19 receives an operation response message indicating that node 22 is operating from node 22, which has received the operation confirmation message (S335). Therefore, node 19 confirms that node 22 is currently in operation. On the other hand, if node 22 is not operating in step S335, node 19 does not receive the operation response message. Therefore, node 19 confirms that node 22 is not currently operating.

다음으로, 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번 노드가 각각 현재 동작중이지 않는다는 것을 확인하게 된다.Next, node 19 transmits an operation confirmation message and a list of files shared by node 19 itself to nodes 67, 51, and 40 of its friend nodes (S340) (S350) (S360). . Next, node 19 receives the operation response message from node 67, node 51, and node 40 that receive the operation confirmation message, and node 67, node 51, and node 40 of the shared file. The list is received (S345) (S355) (S365). Therefore, node 19 confirms that it is currently operating through an operation confirmation message transmitted from node 67, node 51, and node 40, respectively. In addition, node 19 receives and stores a list of files owned by node 67, node 51 and node 40, respectively. On the other hand, when nodes 67, 51 and 40 are not operating in steps S345, S355 and S365, node 19 does not receive an operation response message. Therefore, node 19 confirms that node 67, node 51 and node 40 are not currently operating.

도 3에서는 각각의 단계를 통하여 살펴보았으나, 본 발명의 다른 일실시예에서는 이와 같은 동작이 동시에 또는 다른 정한 규칙에 의하여 진행될 수 있다. In FIG. 3, each step has been described, but in another embodiment of the present invention, such an operation may be performed at the same time or by another predetermined rule.

도 4는 본 발명에 따른 노드가 보유하고 있는 공유 파일의 자원 정보 위치자를 P2P 오버레이 네트워크 상에 등록하는 방법을 나타내는 도면이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 된다.4 is a diagram illustrating a method of registering a resource information locator of a shared file held by a node on a P2P overlay network according to the present invention. Here, in the P2P overlay network, the message is transmitted in the clockwise direction with respect to the reference node (node 0), and the identification value for the node or file becomes smaller as the clockwise direction is around the reference node.

도 4를 참조하면, 10번 노드(식별값이 10)가 저장하고 있는 공유 파일들의 식별값을 기준으로 각각의 자원 정보 위치자를 P2P 오버레이 네트워크에 등록하는 과정을 설명하고 있다. 10번 노드는 먼저 이웃 노드들의 정보를 이용하여 파일의 식별값을 노드의 식별값을 고려함으로써 원형 공간인 P2P 오버레이 네트워크 상의 해당 노드에 위치시키게 된다.Referring to FIG. 4, a process of registering each resource information locator with a P2P overlay network based on identification values of shared files stored in node 10 (identification value 10) is described. Node 10 first locates the identification value of the file using the information of the neighbor nodes in the corresponding node on the P2P overlay network which is a circular space by considering the identification value of the node.

먼저, 10번 노드는 8번 파일(식별값이 8)에 대한 자원 정보 위치자를 자신의 이웃 노드들의 정보를 확인하고, 8번 파일에 대하여는 10번 노드와 2번 노드에 위치시켜야 하기 때문에 10번 노드 자신에게 저장한다(S400).First, node 10 should check the resource information locator of file 8 (identification value 8) of its neighbor nodes, and file 10 should be located at node 10 and node 2 for file 8 Stored to the node itself (S400).

다음으로, 10번 노드는 45번 파일(식별값이 45)에 대한 자원 정보 위치자를 자신의 이웃 노드들의 정보를 확인한 후 먼저 0번 노드에게 전송한다(S410). 다음으로, 0번 노드는 45번 파일에 대한 자원 정보 위치자를 자신의 이웃 노드들의 정보를 확인한 후 다시 51번 노드에게 전송한다(S415). 여기에서, 51번 노드는 이웃 노드들의 정보를 고려한 결과 45번 파일은 자신에게 저장되어야 하는 것을 알고 45번 파일에 대한 자원 정보 위치자를 저장한다. 즉, 45번 파일은 51번 노드와 22번 노드 사이에 위치하는 것이므로 51번 노드는 45번 파일에 대한 자원 정보 위치자를 자신에게 저장하는 것이다.Next, node 10 transmits the resource information locator for file 45 (identification value 45) to node 0 first after checking the information of its neighbor nodes (S410). Next, the node 0 transmits the resource information locator for the file 45 to the node 51 again after checking the information of its neighbor nodes (S415). Here, as a result of considering the information of neighbor nodes, node 51 knows that file 45 should be stored in itself and stores the resource information locator for file 45. That is, since file 45 is located between nodes 51 and 22, node 51 stores the resource information locator for file 45 in itself.

다음으로, 8번 노드는 158번 파일(식별값이 158)에 대한 자원 정보 위치자는 자신의 이웃 노드들의 정보를 확인한 후 먼저 0번 노드에게 전송한다(S420). 여기에서, 0번 노드는 이웃 노드들의 정보를 고려한 결과 158번 파일은 자신에게 저장되어야 하는 것을 알고 158번 파일에 대한 자원 정보 위치자를 저장한다. 즉, 158번 파일은 0번 노드와 67번 노드 사이에 위치하는 것이므로 0번 노드는 158번 파일에 대한 자원 정보 위치자를 자신에게 저장하는 것이다.Next, the node 8 transmits the resource information locator for the file 158 (identification value 158) to the node 0 first after checking the information of its neighboring nodes (S420). Here, as a result of considering the information of neighbor nodes, node 0 knows that file 158 should be stored in itself, and stores resource information locator for file 158. That is, file 158 is located between node 0 and node 67, so node 0 stores the resource information locator for file 158.

도 5는 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 일예이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 된다.5 is an example of a method for searching for a shared file stored in another node in one node according to the present invention. Here, in the P2P overlay network, the message is transmitted in the clockwise direction with respect to the reference node (node 0), and the identification value for the node or file becomes smaller as the clockwise direction is around the reference node.

도 5를 참조하면, 먼저, 2번 노드(식별값이 2)는 45번 파일(식별값이 45)을 검색하기 위한 파일 검색 메시지를 수신한다(S500).Referring to FIG. 5, first, node 2 (identification value 2) receives a file search message for searching for file 45 (identification value 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).Next, the file search message is sequentially transmitted to the node that may store the resource information locator for the file 45 in consideration of the identification value of its neighbor nodes from node 2. In more detail, node 2 stores resource information locators within two hops of nodes 0 and 67, which are its neighbor nodes, in a message transmission direction in a P2P overlay network. The file search message for searching for the resource information locator for the file 45 is transmitted to the node 67 near the file 45 among the nodes (S510). Also, node 67, which received the file transfer message, stores resource information locators for nodes 51 and 22, which are its neighbor nodes, in the message transmission direction in the P2P overlay network. Knowing that it is located in the node 51 that stores the resource information locator for the file number 45 of the node and transmits a file search message to the node 51 (S520).

다음으로, 파일 검색 메시지를 전송받은 51번 노드는 2번 노드에게 45번 파 일에 대한 자원 정보 위치자를 포함하는 검색 확인 메시지를 전송한다(S530). Next, the node 51 that has received the file search message transmits a search confirmation message including the resource information locator for the file 45 to the node 2 (S530).

다음으로, 2번 노드는 자원 정보 위치자를 이용하여 45번 파일을 실제로 저장하고 있는 10번 노드와 연결하여 45번 파일을 검색하게 된다(S530). Next, node 2 searches for file number 45 by connecting to node number 10 that actually stores file number 45 using the resource information locator (S530).

도 6은 본 발명에 따른 하나의 노드에서 다른 노드에 저장되어 있는 공유 파일을 검색하는 방법에 대한 다른 일예이다. 여기에서, P2P 오버레이 네트워크에서는 기준 노드(0번 노드)를 중심으로 시계방향으로 메시지를 전송하고, 노드 또는 파일에 대한 식별값은 기준 노드를 중심으로 시계방향으로 갈수로 작아지게 위치하고 있다.6 is another example of a method for searching for a shared file stored in another node in one node according to the present invention. Here, in the P2P overlay network, a message is transmitted in a clockwise direction around the reference node (node 0), and the identification value for the node or file is located smaller in the clockwise direction around the reference node.

도 6을 참조하면, 먼저, 2번 노드(식별값이 2)는 45번 파일(식별값이 45)을 검색하기 위한 파일 검색 메시지를 수신한다(S600).Referring to FIG. 6, first, node 2 (identification value 2) receives a file search message for searching for file 45 (identification value 45) (S600).

다음으로, 2번 노드는 자신의 친구 노드들에 대한 파일 리스트를 고려하여 45번 파일에 대한 자원 정보 위치자를 저장하고 있는 노드가 있는지 여부를 판단하여, 친구 노드들중에 파일 리스트를 가지고 있는 노드에 파일 검색 메시지를 전송하게 된다(S610). 즉, 2번 노드는 P2P 오버레이 네트워크에서 자신의 친구 노드들에 대한 파일 정보 리스트를 가지고 있으므로, 상기 2번 노드의 45번 파일에 대한 파일 리스트로부터 45번 파일에 대한 자원 정보 위치자는 친구 노드인 51번 노드가 가지고 있다는 사실을 알고 파일 검색 메시지를 51번 노드에 전송하는 것이다.Next, node 2 determines whether there is a node storing the resource information locator for file 45 in consideration of the file list of its friend nodes, and determines whether the node having the file list among the friend nodes is present. The file search message is transmitted (S610). That is, since node 2 has a file information list of its friend nodes in the P2P overlay network, the resource information locator for file 45 is 51 from the file list of file 45 of node 2 It knows that node 1 has it and sends a file search message to node 51.

다음으로, 파일 검색 메시지를 전송받은 51번 노드는 2번 노드에게 45번 파일에 대한 자원 정보 위치자를 포함하는 검색 확인 메시지를 전송한다(S620). Next, the node 51 receiving the file search message transmits a search confirmation message including the resource information locator for the file 45 to the node 2 (S620).

다음으로, 2번 노드는 자원 정보 위치자를 이용하여 45번 파일을 실제로 저 장하고 있는 10번 노드와 연결하여 45번 파일을 검색하게 된다(S630). Next, node 2 searches for file 45 using the resource information locator in connection with node 10, which actually stores file 45 (S630).

따라서, 친구 노드를 이용하면 파일 검색의 과정을 단순화 할 수 있기 때문에 보다 효율적이라 할 수 있다. 즉, 친구 노드를 P2P 오버레이 네트워크를 형성한 링 상에서 일종의 지름길로 이용하기 때문에 효율적인 검색이 가능하게 된다.Therefore, using friend node is more efficient because it can simplify the process of file searching. That is, since the friend node is used as a shortcut on the ring forming the P2P overlay network, efficient search is possible.

도 7은 본 발명에 따른 같은 식별값을 가진 노드가 다른 IP를 이용해서 참여하고자 할 때 발생하는 식별값 중복 문제를 해결하는 방법에 대한 일예이다. 본 발명에서는 노드의 식별값을 이메일 주소(e-mail address)를 통해 얻게 된다. 따라서, 만약 사용자가 같은 이메일 주소를 가지고 다른 장소 즉 다른 IP 주소 상에서 P2P 오버레이 네트워크에 접근하게 되면 동일한 식별값으로 인해 P2P 오버레이 네트워크에 참여하는데 있어서 문제가 발생하게 된다. 도 7에서는 이와 같은 문제를 해결하기 위해 식별값의 중복 문제를 해결하는 방법에 대한 것을 제공하는 것이다. 7 is an example of a method of solving the problem of duplicated identification values generated when a node having the same identification value attempts to participate using different IP according to the present invention. In the present invention, the identification value of the node is obtained through an e-mail address. Therefore, if a user accesses the P2P overlay network with the same email address in different places, that is, different IP addresses, there is a problem in participating in the P2P overlay network due to the same identification value. 7 is to provide a method for solving the problem of duplication of identification values to solve this problem.

도 7을 참조하면, 이미 참여한 51번 노드(식별값이 51)는 이미 P2P 오버레이 네트워크상에 위치하고 있으나, 같은 식별값을 통해 다른 IP 주소를 가지고 참여하고자 하는 참여를 원하는 51번 노드는 0번 노드(기준 노드)에게 등록 요청 메시지(JOIN 메시지)를 전송한다(S700). 이와 같이, 모든 노드는 처음으로 P2P 오버레이 네트워크에 참여하기 위해서 0번 노드(기분 노드)에 참여 요청 메시지를 보내게 된다. Referring to FIG. 7, node 51, which has already participated (identification value 51), is already located on the P2P overlay network, but node 51, which wants to participate with another IP address through the same identification, has node 0. The registration request message (JOIN message) is transmitted to the (reference node) (S700). As such, all nodes send a join request message to node 0 (contributing node) to join the P2P overlay network for the first time.

다음으로, 0번 노드는 참여를 원하는 51번 노드가 위치할 가상 원형 공간을 구성하기 위해 시계방향으로 이웃에 위치한 67번 노드에게 참여 요청 메시지를 전송한다(S710).Next, node 0 transmits a join request message to node 67 located in the clockwise direction to construct a virtual circular space in which node 51 wants to participate is located (S710).

다음으로, 67번 노드는 참여를 원하는 51번 노드가 위치할 가상 원형 공간을 구성하기 위해 시계방향으로 이웃에 위치한 이미 참여한 51번 노드에게 참여 요청 메시지를 전송한다(S720). Next, node 67 transmits a participation request message to the already participated node 51, which is located in the neighborhood in the clockwise direction, in order to configure a virtual circular space in which node 51 wants to participate is located (S720).

다음으로, 참여 요청 메시지는 결국 이미 참여한 51번 노드에게 전달이 되고, 이미 참여한 51번 노드는 같은 식별값으로부터 참여를 요청받은 것을 알고, 패스워드 요청 메시지를 통해 참여를 원하는 51번 노드에게 패스워드를 요청하게 된다(S730).Next, the participation request message is eventually delivered to the already participating node 51, and the already participating node 51 knows that the participation request is received from the same identification value, and requests the password to the node 51 who wants to participate through the password request message. It is made (S730).

다음으로, 참여를 원하는 51번 노드는 패스워드를 해쉬 함수를 통해 암호화 하여 암호화한 패스워드를 이미 참여한 51번 노드에게 전송한다(S740). Next, node 51 wishing to participate transmits the encrypted password to the participating node 51 by encrypting the password through a hash function (S740).

다음으로, 이미 참여한 51번 노드는 상기 암호화한 패스워드를 복호화하여 패스워드가 일치하는지 확인한다(S750).Next, the already participating node 51 decrypts the encrypted password and checks whether the password matches (S750).

다음으로, 이미 참여한 51번 노드는 단계S750에서 패스워드가 일치한다고 판단되면, 참여를 원하는 51번 노드를 참여시키고, 참여를 원하는 51번 노드에게 참여 확인 메시지를 전송한다(S760). 이후에, 새롭게 참여한 51번 노드는 자신의 이웃 노드들에 갱신 메시지를 보내 노드의 변경을 알리게 된다.Next, if it is determined that the already participating node 51 has the same password in step S750, the node 51 joins the node 51 that wants to participate, and transmits a participation confirmation message to the node 51 that wants to participate (S760). Thereafter, the newly participating node 51 sends an update message to its neighbor nodes to inform the node of the change.

도 8은 도 3에서 19번 노드가 저장하고 있는 이웃 노드 테이블과 친구 노드 테이블을 나타내는 도면이다. 도 8을 참조하면, 도 3에서 19번 노드에서 저장하고 있는 이웃 노드들에 대한 자원 정보 위치자를 나타내는 이웃 노드 테이블과 친구 노드들에 대한 자원 정보 위치자를 나타내는 친구 노드 테이블로 구성되어 있다. FIG. 8 is a diagram illustrating a neighbor node table and a friend node table stored in node 19 in FIG. 3. Referring to FIG. 8, a neighbor node table indicating resource information locators for neighbor nodes stored in node 19 and a friend node table indicating resource information locators for friend nodes are configured.

이웃 노드 테이블에는 자신을 중심으로 오른쪽의 오른쪽(RR), 오른쪽(R), 왼쪽(L), 왼쪽의 왼쪽(LL)에 대한 자원 정보 위치자가 저장되어 있다. 구체적으로 예를 들어, 도 3에서의 오른쪽의 오른쪽(RR) 노드인 19번 노드, 오른쪽(R) 노드인 20번 노드, 왼쪽 노드인 10번 노드 및 왼쪽의 왼쪽(LL) 노드인 2번 노드들에 대한 식별값, IP 주소, 포트 번호, RTT 및 타임아웃 정보를 저장하고 있다.The neighbor node table stores resource information locators for the right side (RR), the right side (R), the left side (L), and the left side (LL) on the left. Specifically, for example, node 19, which is the right (RR) node of the right side, node 20, which is the right (R) node, node 10, which is the left node, and node 2, which is the left (LL) node of FIG. Field, identification, IP address, port number, RTT, and timeout information.

친구 노드 테이블에는 인스턴트 메신져에 따른 친구 노드들에 대한 자원 정보 위치자가 저장되어 있다. 구체적으로 예를 들어, 도 3에서의 19번 노드의 친구 노드 테이블에는 자신의 친구 노드인 40번 노드, 51번 노드 및 67번 노드들에 대한 식별값, IP 주소, 포트 번호, RTT 및 타임아웃 정보를 저장하고 있다.The friend node table stores resource information locators for friend nodes according to an instant messenger. Specifically, for example, in the friend node table of node 19 in FIG. 3, identification values, IP addresses, port numbers, RTTs, and timeouts for nodes 40, 51, and 67, which are their friend nodes, are included in the friend node table. It is storing information.

본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD_ROM, 자기테이프, 플로피디스크 및 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.The invention can also be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD_ROM, magnetic tape, floppy disks, and optical data storage, and may also include those implemented in the form of carrier waves (eg, transmission over the Internet). . The computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.

이상에서와 같이 도면과 명세서에서 최적 실시예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.As described above, optimal embodiments have been disclosed in the drawings and the specification. Although specific terms have been used herein, they are used only for the purpose of describing the present invention and are not intended to limit the scope of the invention as defined in the claims or the claims. Therefore, those skilled in the art will understand that various modifications and equivalent other embodiments are possible from this. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

본 발명은 P2P 오버레이 네트워크 구축 방법 및 장치에 관한 것으로, P2P의 기본 특성을 살린 순수 P2P 방식으로 모든 노드가 서버와 클라이언트의 역할을 수행할 수 있도록 하고, 또한 인터넷과 같은 분산된 환경에서 적합한 P2P 오버레이 네트워크를 구축하기 위해 DHT를 이용하여 확장성, 신뢰성, 유지 보수성 및 사용자 편의성을 제공한다. The present invention relates to a method and apparatus for constructing a P2P overlay network. The present invention relates to a P2P overlay network that enables all nodes to act as servers and clients in a pure P2P scheme utilizing the basic characteristics of P2P, and is also suitable for distributed environments such as the Internet. DHT is used to build the network, providing scalability, reliability, maintainability and user convenience.

자원 정보 위치자(Resource Locator)라고 하는 라우팅 테이블을 유지하여 보다 효율적인 자원 검색이 가능하고, 또한 간단히 구성된 메시지의 교환을 통해 P2P 오버레이 네트워크를 구축 및 유지 보수할 수 있다.By maintaining a routing table called a resource locator (Resource Locator), a more efficient resource search is possible, and through the exchange of simply configured messages it is possible to build and maintain a P2P overlay network.

또한, 본 발명을 통해 구성된 P2P 오버레이 네트워크는 차세대 인터넷인 IPv6를 기반으로 하여 동작하며, 인스턴트 메신져, VoD 서비스, 자원 공유와 같은 현재 인터넷 상에서 많이 사용되고 있는 응용 서비스를 제공할 수 있고, 이를 통해 IPv6 기반으로 동작하는 다양한 서비스들이 많은 사용자들에게 제공될 수 있으며, IPv6 조기 도입에 큰 역할을 수행할 수 있게 된다.In addition, the P2P overlay network configured through the present invention operates based on IPv6, which is the next generation Internet, and can provide application services that are widely used on the Internet such as instant messenger, VoD service, and resource sharing, and through this, IPv6 based A variety of services can be provided to many users and play a big role in the early adoption of IPv6.

Claims (16)

분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록시키는 방법에 있어서,A method for acquiring an identification value for a plurality of nodes using a distributed hash table and registering a node that wants to participate in a P2P overlay network in which the plurality of nodes are sequentially located based on the identification value, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계;(a) sending a join request message from a node wishing to join to a reference node of the P2P overlay network; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드가 상기 참여를 원하는 노드의 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부가 판단되는 단계; 및(b) As the participation request message is sequentially transmitted between the plurality of nodes, an identification value of a node to which the first node, which has received the participation request message, wants to participate, is the identification value of the first node and the first node. Determining whether the value is between the identification values of the second node next to the node; And (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 참여를 원하는 노드가 상기 제 1 노드와 상기 제 2 노드 사이에 등록되는 단계;를 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.and (c) registering the node that wants to participate between the first node and the second node when it is determined that the inter-value is found in the step (b). 제 1 항에 있어서,The method of claim 1, (d) 상기 제 1 노드는 상기 참여를 원하는 노드에게 등록이 성공되었음을 알리는 참여 확인 메시지를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.(d) the first node transmitting a participation confirmation message indicating that registration is successful to the node that wants to participate. 제 2 항에 있어서,The method of claim 2, 상기 다수개의 노드는 각각 자신을 중심으로 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하고 있는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.And each of the plurality of nodes stores resource information locators for neighboring nodes within two hops in both directions about each node. 제 3 항에 있어서,The method of claim 3, wherein (f) 상기 제 1 노드는 상기 참여를 원하는 노드를 중심으로 양쪽 방향으로 2홉 내에 존재하는 노드에 상기 참여를 원하는 노드의 자원 정보 위치자를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.(f) the first node transmitting the resource information locator of the node wishing to participate to a node existing within two hops in both directions with respect to the node wishing to participate. How to build a network. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에 참여를 원하는 노드를 등록하는 방법에 있어서,A method for acquiring identification values for a plurality of nodes using a distributed hash table and registering a node that wants to participate in a P2P overlay network in which the plurality of nodes are sequentially located based on the identification values, (a) 상기 참여를 원하는 노드로부터 상기 P2P 오버레이 네트워크의 기준 노드로 참여 요청 메시지가 전송되는 단계;(a) sending a join request message from a node wishing to join to a reference node of the P2P overlay network; (b) 상기 참여 요청 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 참여 요청 메시지를 전송받은 제 1 노드에서 상기 참여를 원하는 노드의 식별값과 상기 제 1 노드의 식별값이 일치되는지 여부를 판단하는 단계;(b) Whether the participation request message is sequentially transmitted between the plurality of nodes, and whether the identification value of the node that wants to participate in the first node that has received the participation request message matches the identification value of the first node; Determining; (c) 상기 (b)단계에서 일치한다고 판단되는 경우에 상기 제 1 노드는 상기 참여를 원하는 노드에 패스워드 요청 메시지를 전송하는 단계;(c) if it is determined in step (b) that the first node transmits a password request message to the node that wants to participate; (d) 상기 제 1 노드는 상기 참여를 원하는 노드로부터 패스워드를 전송받는 단계; 및(d) the first node receiving a password from the node that wants to participate; And (e) 상기 제 1 노드는 상기 (d)단계에서 전송받은 패스워드와 상기 제 1 노드를 등록할 때 입력되었던 패스워드를 비교하여 일치하는 경우 상기 참여를 원하는 노드로 대체되는 단계;를 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.(e) comparing the password received in the step (d) with the password input when registering the first node and replacing the password with the desired node if the first node matches. To build a P2P overlay network. 제 5 항에 있어서,The method of claim 5, 상기 다수개의 노드는 각각 자신을 중심으로 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하고 있는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.And each of the plurality of nodes stores resource information locators for neighboring nodes within two hops in both directions about each node. 제 6 항에 있어서,The method of claim 6, (f) 상기 제 1 노드에 대체되어 등록된 상기 참여를 원하는 노드는 자신을 중심으로 양쪽 방향으로 2홉 내에 존재하는 노드에 상기 참여를 원하는 노드의 자원 정보 위치자를 전송하는 단계;를 더 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 방법.(f) transmitting the resource information locator of the node that wants to participate to the node that wants to participate, which is registered in place of the first node and is located within two hops in both directions with respect to itself; P2P overlay network construction method, characterized in that. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 저장하고 있는 노드에서 상기 공유 파일에 대한 자원 정보 위치자를 등록하는 방법에 있어서,A resource for the shared file in a node storing a shared file in a P2P overlay network in which identification values for a plurality of nodes are obtained using a distributed hash table and the plurality of nodes are sequentially located based on the identification values. A method of registering an information locator, (a) 상기 공유 파일을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계;calculating a file identification value of the shared file using a hash through the distributed hash table; (b) 상기 파일 식별값을 포함하는 파일등록 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일등록 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및(b) a file registration message including the file identification value is sequentially transmitted between the plurality of nodes, so that the first node receiving the file registration message has the file identification value and the identification value of the first node. Determining whether the value is between the identification values of the second node next to the first node; And (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 등록하는 단계;를 포함하는 것을 특징으로 하는 공유 파일 자원 정보 위치자 등록 방법.and (c) registering the resource information locator for the file when it is determined that the inter-value is determined in the step (b). 제 8 항에 있어서,The method of claim 8, 상기 다수개의 노드는 각각 자신을 중심으로 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하고 있는 것을 특징으로 하는 공유 파일 자원 정보 위치자 등록 방법.And each of the plurality of nodes stores resource information locators for neighboring nodes within two hops in both directions with respect to each of the plurality of nodes. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서,A method for acquiring an identification value for a plurality of nodes using a distributed hash table and searching for a shared file in a node that wants to search for a shared file in a P2P overlay network in which the plurality of nodes are sequentially located based on the identification value. To (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계;(a) calculating a file identification value using a hash through the distributed hash table of the shared file name to be searched; (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드의 식별값과 상기 제 1 노드 다음에 위치하는 제 2 노드의 식별값의 사이값인지 여부를 판단하는 단계; 및(b) a file search message including the file identification value is sequentially transmitted between the plurality of nodes, so that the first node receiving the file search message has the file identification value and the identification value of the first node. Determining whether the value is between the identification values of the second node next to the first node; And (c) 상기 (b)단계에서 사이값이라고 판단되는 경우에 상기 제 1 노드는 상기 파일에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계;(c) if it is determined in step (b) that the inter-value is determined, the first node sends a search confirmation message including a resource information locator for the file to a node that wants to search the file; (d) 상기 파일검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 하는 공유 파일 검색 방법.and (d) searching for the file by connecting the node that wants to search the file to the node having the actual file through the resource information locator. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크에서 공유 파일을 검색하기 원하는 노드에서 공유 파일을 검색하는 방법에 있어서,A method for acquiring an identification value for a plurality of nodes using a distributed hash table and searching for a shared file in a node that wants to search for a shared file in a P2P overlay network in which the plurality of nodes are sequentially located based on the identification value. To (a) 상기 검색하기 원하는 공유 파일명을 상기 분산 해쉬 테이블을 통한 해쉬를 이용하여 파일 식별값을 계산하는 단계;(a) calculating a file identification value using a hash through the distributed hash table of the shared file name to be searched; (b) 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 제 1 노드가 상기 파일 식별값이 상기 제 1 노드에 기 저장되어 있는 공유 파일 리스트에 존재하는지 판단하는 단계;(b) a file search message including the file identification value is sequentially transmitted between the plurality of nodes, so that the first node receiving the file search message has previously stored the file identification value in the first node. Determining whether it exists in the shared file list; (c) 상기 (b)단계에서 존재한다고 판단되는 경우에, 상기 제 1 노드는 사전에 상기 파일 식별값과 일치하는 공유 파일 리스트를 전송한 노드로 상기 파일 검색 메시지를 전송하는 단계;(c) if it is determined in step (b) that the first node transmits the file search message to a node that previously sent a list of shared files matching the file identification value; (d) 상기 공유 파일 리스트를 전송한 노드는 상기 파일 식별값에 대한 자원 정보 위치자를 포함한 검색 확인 메시지를 상기 파일을 검색하기 원하는 노드로 전송하는 단계; 및(d) the node transmitting the shared file list transmitting a search confirmation message including a resource information locator for the file identification value to a node that wants to search the file; And (e) 상기 공유 파일 검색을 원하는 노드는 상기 자원 정보 위치자를 통하여 실제 파일을 가지는 노드로 연결하여 상기 파일을 검색하는 단계;를 포함하는 것을 특징으로 하는 공유 파일 검색 방법.(e) searching for the file by connecting the node that wants to search for the shared file to the node having the actual file through the resource information locator. 제 11 항에 있어서, The method of claim 11, 상기 (c)단계는 상기 (b)단계에서 존재하지 않는다고 판단되는 경우에, 상기 파일 식별값을 포함하는 파일 검색 메시지가 상기 다수개의 노드 사이에서 순차적으로 전송되면서, 상기 파일 검색 메시지를 전송받은 노드가 상기 파일 식별값이 상기 파일 검색 메시지를 전송받은 노드의 식별값과 상기 파일 검색 메시지를 전송받은 노드 다음에 위치하는 노드의 식별값의 사이값인지 여부를 판단하고, 사이값 이라고 판단되는 시점에서 파일 검색 메시지를 전송받은 노드로 상기 파일 검색 메시지를 전송하는 것을 특징으로 하는 공유 파일 검색 방법.In step (c), if it is determined that the file search message does not exist in step (b), the file search message including the file identification value is sequentially transmitted between the plurality of nodes, and the node receiving the file search message is received. Determines whether the file identification value is a value between an identification value of a node receiving the file search message and an identification value of a node located next to the node receiving the file search message. And transmitting the file search message to a node receiving the file search message. 분산 해쉬 테이블을 이용하여 다수개의 노드에 대한 식별값을 획득하고 상기 다수개의 노드가 상기 식별값을 기반으로 순차적으로 위치되어 있는 P2P 오버레이 네트워크를 구축함에 있어서,In obtaining an identification value for a plurality of nodes using a distributed hash table and constructing a P2P overlay network in which the plurality of nodes are sequentially located based on the identification value, 상기 다수개의 노드는 각각 자신의 노드에서 양쪽 방향으로 2홉 내로 이웃하는 노드들에 대한 자원 정보 위치자를 저장하는 이웃 노드 테이블; 및Each of the plurality of nodes includes: a neighbor node table for storing resource information locators for neighboring nodes within two hops in both directions from its own node; And 인스턴트 메신져와 연동하여 얻을 수 있는 친구 노드들에 대한 자원 정보 위치자를 저장하는 친구 노드 테이블;을 포함하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.And a friend node table for storing resource information locators of friend nodes that can be obtained by interworking with an instant messenger. 제 13 항에 있어서, 상기 자원 정보 위치자에는The resource information locator of claim 13, wherein 해당하는 노드의 이메일 주소를 해쉬하여 얻어지는 해쉬 함수값인 식별값;An identification value that is a hash function value obtained by hashing an email address of a corresponding node; 상기 해당하는 노드의 실제 위치를 나타내는 IP 주소; 및An IP address representing the actual location of the corresponding node; And 상기 해당하는 노드에서 현재 응용 서비스를 제공하는 포트 번호;로 이루어진 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.And a port number for providing a current application service in the corresponding node. 제 13 항에 있어서, The method of claim 13, 상기 다수개의 노드는 각각 상기 이웃 노드 테이블을 통하여 이웃하는 노드 들과 상기 친구 노드 테이블을 통하여 친구 노드들에게 주기적으로 동작상태 확인 메시지를 전송하여 RTT 값을 측정함으로써 상기 이웃하는 노드들과 친구 노드들이 동작하고 있는지 여부를 측정하는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.Each of the plurality of nodes periodically transmits an operation status confirmation message to neighboring nodes through the neighbor node table and friend nodes through the friend node table, and measures the RTT value so that the neighboring nodes and the friend nodes are measured. P2P overlay network building apparatus characterized in that it measures whether or not the operation. 제 15 항에 있어서,The method of claim 15, 상기 다수개의 노드는 각각 상기 친구 노드들중에서 동작하고 있는 친구 노드들에 자신이 보유하고 있는 공유 파일 리스트를 전송하고,Each of the plurality of nodes transmits a list of shared files that it owns to friend nodes operating among the friend nodes. 상기 동작하고 있는 친구 노드들이 보유하고 있는 공유 파일 리스트를 전송받는 것을 특징으로 하는 P2P 오버레이 네트워크 구축 장치.And a shared file list held by the friend nodes in operation.
KR1020050039228A 2004-12-21 2005-05-11 P2P overlay network construction method and apparatus Expired - Fee Related KR100641796B1 (en)

Priority Applications (2)

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

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=37164630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020050039228A Expired - Fee Related KR100641796B1 (en) 2004-12-21 2005-05-11 P2P overlay network construction method and apparatus

Country Status (1)

Country Link
KR (1) KR100641796B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101322213B1 (en) 2007-01-12 2013-10-25 삼성전자주식회사 Proxying transaction method for processing function of wireless node in peer-to-peer overlay network
KR101144331B1 (en) * 2010-06-28 2012-05-11 강원대학교산학협력단 Time Driven Mesh Overlay Network System and Method for Constructing Time Driven Mesh Overlay Network Using the Same

Also Published As

Publication number Publication date
KR20060071079A (en) 2006-06-26

Similar Documents

Publication Publication Date Title
US20080130516A1 (en) P2p Overplay Network Construction Method and Apparatus
Henningsen et al. Mapping the interplanetary filesystem
Pucha et al. Ekta: An efficient dht substrate for distributed applications in mobile ad hoc networks
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 (en) Apparatus and method for setting roles based on terminal capabilities
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
EP1709770A1 (en) Obtaining routing information
Shah et al. A survey of P2P content sharing in MANETs
CN101425958A (en) Request answering method, apparatus and system in P2P overlapping network
JP4607764B2 (en) Mobile peer-to-peer network construction
CN101277256A (en) System and method for realizing network resource location and server
Singh et al. Challenges and protocols for P2P applications in multi-hop wireless networks
KR101219536B1 (en) Edge peer apparatus, pan gateway apparatus, super peer apparatus, p2p network based interconnection method
KR100641796B1 (en) P2P overlay network construction method and apparatus
JP5287500B2 (en) Node device and program for node device
Ariff et al. A review of recent advancement in Kademlia and Chord algorithm
Karwaczynski et al. Analysis of overlay network impact on dependability
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
Tracey et al. Using a DHT in a Peer to Peer architecture for the Internet of
Akon et al. Exchanging peers to establish P2P networks

Legal Events

Date Code Title Description
A201 Request for examination
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

R17-X000 Change to representative recorded

St.27 status event code: A-3-3-R10-R17-oth-X000

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

GRNT Written decision to grant
PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 5

FPAY Annual fee payment

Payment date: 20120216

Year of fee payment: 6

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 6

FPAY Annual fee payment

Payment date: 20121025

Year of fee payment: 7

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 7

LAPS Lapse due to unpaid annual fee
PC1903 Unpaid annual fee

St.27 status event code: A-4-4-U10-U13-oth-PC1903

Not in force date: 20131027

Payment event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

PC1903 Unpaid annual fee

St.27 status event code: N-4-6-H10-H13-oth-PC1903

Ip right cessation event data comment text: Termination Category : DEFAULT_OF_REGISTRATION_FEE

Not in force date: 20131027

PN2301 Change of applicant

St.27 status event code: A-5-5-R10-R13-asn-PN2301

St.27 status event code: A-5-5-R10-R11-asn-PN2301

R18-X000 Changes to party contact information recorded

St.27 status event code: A-5-5-R10-R18-oth-X000

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000