KR20040076660A - Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof - Google Patents
Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof Download PDFInfo
- Publication number
- KR20040076660A KR20040076660A KR1020030011972A KR20030011972A KR20040076660A KR 20040076660 A KR20040076660 A KR 20040076660A KR 1020030011972 A KR1020030011972 A KR 1020030011972A KR 20030011972 A KR20030011972 A KR 20030011972A KR 20040076660 A KR20040076660 A KR 20040076660A
- Authority
- KR
- South Korea
- Prior art keywords
- information
- peer
- data
- peers
- network
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
본 발명은 HTTP, FTP 등의 전송 프로토콜을 이용하여 네트워크 상에서 정보를 전달하는 방법 및 시스템에 관한 것이다. 본 발명에 따른 정보 전달 방법 및 시스템은 정보를 전송하는 컴퓨터(서버)가 처리하여 전송하여야 할 정보를 작은 조각으로 분할하여 임의의 네트워크에 연결된 여러 대의 개인용 컴퓨터(PC)에 중복/분산하여 저장하고, 분산 처리(Distributed Computing) 기법을 이용하여 정보를 전송하는 컴퓨터(서버)가 담당해야 할 정보 전송을 이들 개인용 컴퓨터(PC)들이 대신하여 정보를 요구한 컴퓨터(클라이언트)에게 전송하는 피어 대 피어(Peer-to-Peer) 전송을 하는 것을 특징으로 한다. 본 발명에 따른 네트워크 상에서 정보를 전달하는 방법 및 시스템에 의하면 정보를 전송하는 컴퓨터(서버)의 작업 부하를 줄이고, 정보를 전달받는 컴퓨터(클라이언트)가 여러 경로를 통해 병렬적으로 정보를 수집할 수 있도록 함으로써 정보를 전달받는데 소요되는 시간을 줄일 수 있다.The present invention relates to a method and system for transferring information over a network using a transport protocol such as HTTP, FTP, or the like. The information transmission method and system according to the present invention divides the information to be processed and transmitted by the computer (server) that transmits the information into small pieces, and stores the duplicated / distributed data in a plurality of personal computers (PCs) connected to an arbitrary network. In this case, a peer-to-peer that transmits information to a computer (client) on behalf of these personal computers (PC) should be responsible for the information transfer that the computer (server) that transmits the information by using distributed computing techniques. Peer-to-Peer) characterized in that the transmission. According to the method and system for transmitting information on a network according to the present invention, it is possible to reduce the workload of a computer (server) that transmits information, and the computer (client) that receives the information can collect information in parallel through various paths. This can reduce the time it takes to receive information.
Description
본 발명은 네트워크 상에서 분산 처리(distributed computing) 및 피어 대 피어(peer-to-peer) 통신 기법을 이용하여 정보를 전달하는 방법에 관한 것이다. 더욱 상세하게는, 본 발명은 파일 등의 단위로 구분된 한 단위의 정보(예를 들어 JPEG 등의 화상 정보 혹은 MPEG 등의 동영상 정보) 혹은 여러 단위의 데이터로 이루어진 정보(예를 들어, 다수의 GIF 파일로 구성된 웹페이지 등)를 원래의 크기보다 작은 데이터로 나누어 이를 복수의 컴퓨터로부터 클라이언트로 병렬적으로 전달하는 방법에 관한 것이다.The present invention relates to a method of delivering information using distributed computing and peer-to-peer communication techniques over a network. More specifically, the present invention provides a unit of information (for example, image information such as JPEG or moving image information such as MPEG) divided into units such as a file or information consisting of data of various units (for example, a plurality of A web page composed of GIF files, etc.) is divided into data smaller than the original size and transmitted in parallel from a plurality of computers to a client.
일반적으로, 임의의 네트워크를 통해 임의의 전자화된 정보를 전달받기 위해서는 소정의 정보를 요구하는 컴퓨터(이하 "클라이언트"라고 함)와, 클라이언트로부터 요구된 정보를 제공하는 컴퓨터(이하 "서버"라고 함)와, 이들 간의 정보 전달 경로를 구성하는 네트워크가 존재해야 한다. 이 중 서버와 네트워크는 하나의 클라이언트에게만 서비스되는 자원이 아니므로, 각기 다른 클라이언트들의 요구에 의해 과중한 부하가 걸리게 되고, 이러한 부하의 증대로 말미암아 결국 병목 현상이 발생하게 된다. 그 결과, 서버에 동시에 접속할 수 있는 클라이언트의 수가 제한될 수 밖에 없고, 또한 정보를 요구하는 클라이언트로서는 자신에게 할당된 대역폭 중의 일부만을 사용할 수 밖에 없다는 문제점이 있다.In general, a computer (hereinafter referred to as a "client") requesting certain information in order to receive arbitrary electronicized information through any network and a computer providing a requested information from a client (hereinafter referred to as a "server"). ) And a network constituting an information transmission path between them. Since the server and the network are not resources that are serviced by only one client, they are heavily loaded by the demands of different clients, and the increase in the load eventually causes a bottleneck. As a result, there is a problem that the number of clients that can connect to the server at the same time is limited, and only a part of the bandwidth allocated to the client requesting information can be used.
이와 같은 문제점으로 인해 인터넷을 통해 정보를 판매하는 컨텐츠 제공자(Contents Provider)들은 사용자의 수를 늘이고 서비스의 품질을 향상시키기 위해서 서버의 역할을 할 수 있는 용량이 크고 고가인 컴퓨터를 다수 구입하거나 정보가 전달되는 네트워크의 대역폭을 증가시키는 등의 막대한 투자를 해야 한다. 뿐만 아니라, 컨텐츠 제공자들은 소정의 정보 제공 서비스를 안정적으로 제공하기 위하여 최대 클라이언트 수를 예측하여 그에 대한 대비를 하여야 하는데, 이러한 클라이언트의 수는 정확한 예측이 힘들 뿐만 아니라 시간에 따라 그 수가 변동하는 특성을 지니고 있으므로, 예측한 최대 클라이언트 수 만큼의 정보 요구가 발생하지 않은 경우에는 최대 클라이언트 수를 예측하여 준비한 자원이 낭비되고 있음을 의미하고, 만일 예측이 잘못되어 정보를 요구하는 클라이언트의 수가 예측한 최대 클라이언트 수보다 많은 경우에는 정상적인 서비스를 제공할 수 없다는 문제점이 있다.Due to this problem, content providers who sell information through the Internet purchase large numbers of expensive and expensive computers that can act as servers to increase the number of users and improve the quality of service. Major investments are needed, such as increasing the bandwidth of the delivered network. In addition, content providers should anticipate and prepare for the maximum number of clients in order to stably provide a predetermined information providing service. Such a number of clients are difficult to accurately predict, and the number varies over time. If the information request does not occur as much as the estimated maximum number of clients, it means that the resources prepared by predicting the maximum number of clients are wasted. If the forecast is incorrect, the number of clients requesting information is estimated. In more cases, there is a problem that can not provide a normal service.
서버와 네트워크에서 발생하는 상기의 병목 문제를 해결하기 위해서 IP 멀티캐스팅(Multicasting)이라는 기법이 안출되었다. 이는 인터넷을 통한 동영상 생중계와 같이 동일한 시간에 동일한 정보를 다수의 클라이언트가 요구하는 경우에 서버와 네트워크에서의 부하를 줄이기 위한 기법이다. 일반적으로 TCP/IP 상의 유니캐스트(unicast) 인터넷 응용 프로그램은 데이터의 송신자가 수신자의 인터넷 주소(IP Address)를 알고, 수신자 주소를 전송 패킷의 헤더(header)에 표시해 패킷을 전송한다. 이러한 패킷이 올바른 수신자에게 전달되기 위해서는 인터넷상의 많은 라우터(router)가 패킷의 헤더를 보고 전송 경로를 결정하게 된다. 그러나 멀티캐스트 전송을 위한 패킷은 그 구성이 조금 다르다. 패킷의 송신자는 그 헤더에 수신자의 주소 대신, 수신자들이 참여하고 있는 그룹 주소(Group Address)를 표시하여 패킷을 전송한다. 멀티캐스트 전송을 위한 그룹 주소는 D-class IP address(224.0.0.0∼239.255.255.255)로, 전세계 개개의 인터넷 호스트(host)를 나타내는 A, B, C-class IP address와는 달리 실제의 호스트를 나타내는 주소가 아니다. 따라서, 이와 같은 멀티캐스트 패킷을 전송받은 수신자는 자신이 패킷의 그룹에 속해 있는가를 판단해 패킷의 수용 여부를 결정하게 된다. 이러한 IP 멀티캐스팅 기법을 실제 네트워크 상에서 사용하기 위해서는 라우터(Router) 장비에 IP 멀티캐스팅을 지원하는 기능이 필수적인데, 현재 전세계에 설치된 라우터 장비의 일부만이 IP 멀티캐스팅 기능을 지원하고 있고 향후 단기간 내에 현재 네트워크 상에 위치하는 라우터 장비가 전면적으로 교체될 가능성이 없으므로 현실적으로 현재의 백본망하에서는 이러한 IP 멀티캐스팅 기법의 도입을 통한 성능 이득은 크게 기대하기 힘들다는 문제점이 있다.In order to solve the above bottleneck problem in the server and the network, a technique called IP multicasting has been devised. This is a technique to reduce the load on the server and the network when multiple clients require the same information at the same time, such as live video streaming through the Internet. In general, a unicast Internet application over TCP / IP sends a packet by the sender of the data knowing the recipient's IP address and marking the recipient's address in the header of the transport packet. In order for these packets to be delivered to the correct recipients, many routers on the Internet look at the headers of the packets to determine the transmission path. However, the configuration of the packet for multicast transmission is slightly different. The sender of the packet transmits the packet by indicating the group address in which the receiver participates, instead of the address of the receiver. The group address for multicast transmission is D-class IP address (224.0.0.0 to 239.255.255.255), which is a real host unlike A, B, and C-class IP addresses that represent individual Internet hosts around the world. It is not an address. Therefore, the receiver receiving the multicast packet determines whether the packet belongs to the group of packets or not. In order to use this IP multicasting technique on a real network, a function that supports IP multicasting is essential for router equipment. Only a few router equipments installed in the world currently support IP multicasting and Since there is no possibility that the router equipment located on the network will be completely replaced, there is a problem that the performance gain through the introduction of the IP multicasting technique is hardly expected under the current backbone network.
서버와 네트워크에서 발생하는 병목 문제를 해결하기 위한 또 다른 방법은 CDN(Content Delivery Network)을 이용하는 것이다. CDN은 각 네트워크에 전략적으로 설치된 캐시(cache) 서버를 통하여 컨텐츠를 배포함으로써 사용자에게는 빠르고 안정적인 네트웍 접속환경을 제공하고 ISP(Internet Service Provider), 컨텐츠 제공자 등 인터넷 사업자에게는 분산 처리를 통해 사용자를 수용할 수 있도록 네트워크 인프라를 제공하는 것이라고 할 수 있다. 컨텐츠는 컨텐츠 제공자의 서버로부터 네트워크, 가입자망을 거쳐 사용자에게 전달된다. 이 과정에서 인터넷의 속도저하는 바로 “Middle-Mile”, 즉 컨텐츠 제공자의 서버로부터 NSP 또는 ISP의 네트워크들을 거쳐 사용자측 Node에 이르는 구간에서 발생하게 되는데, CDN은 바로 이 “Middle-mile”에서의 문제를 해결해 주기 위한 것으로서, ISP(Internet Service Provider)에 캐시 서버를 전략적으로 설치하고 컨텐츠를 CP의 서버로부터 캐시 서버로 분산시킴으로써 네트워크 간의 전송이 아니라 마치 동일한 서브네트워크 내에서의 전송과 같은 효과를 갖는다. 이로 인해 특정 네트워크로의 트래픽 집중을 방지함으로써 빠른 속도를 보장할 수 있다. 이러한 CDN 방식은 네트워크상의 몇몇 중요한 위치에 서버의 역할을 대신할 컴퓨터를 두어 서버가 처리할 요구를 대신 처리하도록 구현되는데, 이를 통하여 서버의 부하를 줄이고, 클라이언트의 요구가 서버에 도달하기까지 네트워크를 횡단하지 않고 중간에서 처리되도록 함으로써 네트워크에서의 부담을 줄일 수 있게 된다. 그러나, 이러한 CDN을 이용하는 것도 서버에 준하는 용량의 컴퓨터를 다수 마련해야 하는 비용이 소요된다는 점과, 서버의 기능을 여러 컴퓨터에서 대신한다고 하더라도 결국 CDN 기능을 담당하는 서버의 수는 제한적일 수밖에 없다는 점을 고려할 때, 상술한 문제점에 대한 근본적인 해결책은 될 수 없다.Another way to solve bottlenecks in servers and networks is to use a Content Delivery Network (CDN). CDN distributes contents through cache servers strategically installed in each network to provide users with fast and stable network access environment and to distribute users to Internet service providers such as ISP (Internet Service Provider) and content providers through distributed processing. It can be said to provide a network infrastructure. Content is delivered from the content provider's server to the user via the network or subscriber network. In this process, the slowdown of the Internet occurs in the "Middle-Mile", that is, the section from the content provider's server to the NSP or ISP's network to the user node. The CDN is the problem in this "mid-mile". In order to solve the problem, strategically installing a cache server in an ISP (Internet Service Provider) and distributing content from the CP server to the cache server has the same effect as the transmission in the same subnetwork rather than the transmission between networks. This ensures high speeds by preventing traffic from concentrating on specific networks. This CDN method is implemented by placing a computer in some important place on the network in place of the server to handle the server's request, thereby reducing the load on the server and the network until the client's request reaches the server. This can reduce the burden on the network by allowing them to be processed in the middle instead of crossing. However, the use of such a CDN also requires the cost of having a large number of computers comparable to those of the server, and even if the functions of the server are replaced by several computers, the number of servers serving the CDN function is limited. At this time, there is no fundamental solution to the problem described above.
본 발명은 상기와 같은 종래의 문제점을 감안하여, PC와 같은 일반 사용자의 컴퓨터(이하 "피어"라고 함)의 CPU, 하드디스크, 네트워크 대역폭 등의 유휴 자원을 활용하는 분산 처리 기법과, 중앙의 서버를 통하지 않고 일반 사용자의 PC 간에 데이터 전송이 가능한 피어 대 피어 기법을 이용하여 정보의 전송을 병렬적으로 수행하도록 함으로써, 인터넷 등의 네트워크 상에서의 정보 전송 속도를 향상시키고 서버 및 네트워크에서 발생하는 부하를 감소시키고 데이터가 전송되는 경로를 단축시키는 것을 그 목적으로 한다.SUMMARY OF THE INVENTION In view of the above-described conventional problems, the present invention provides a distributed processing technique that utilizes idle resources such as CPU, hard disk, and network bandwidth of a normal user's computer (hereinafter, referred to as "peer"), such as a PC. By using the peer-to-peer technique that allows data to be transferred between end users' PCs without going through the server, the information can be transmitted in parallel, improving the speed of information transmission on the network such as the Internet, and the load on the server and the network. The purpose is to reduce the number of channels and to shorten the path over which data is transmitted.
더욱 상세하게는, 본 발명은 서비스의 대상이 되는 정보의 저장과 전송을 전적으로 담당하는 중앙의 서버의 역할을 대신하여 다수의 피어들에게 서비스될 정보를 분할 및 중복하여 저장하고, 클라이언트로부터 정보에 대한 요구가 있는 경우 이 정보에 해당하는 분할된 데이터를 가지고 있는 피어들을 검색하여 가장 빠른 전송 속도를 발휘할 수 있는 피어들을 선정한 후에 정보를 요구한 클라이언트에게 병렬적으로 전송하도록 함으로써, 클라이언트는 빠른 전송을 이용할 수 있고 서버 및네트워크에서의 부하를 감소시킬 수 있을 뿐 아니라, 중앙의 서버보다 인접한 피어로부터 데이터를 전송함으로써 전송 경로를 단축시키는 것을 그 목적으로 한다.More specifically, the present invention divides and duplicates information to be serviced by a plurality of peers in place of a central server that is solely responsible for storing and transmitting information that is a target of a service, and stores information to be stored from a client to the information. When a request is made, the peers search for peers with fragmented data corresponding to this information, select peers that can achieve the fastest transmission speed, and send the information in parallel to the requesting client. In addition to being available and reducing the load on the server and network, the aim is to shorten the transmission path by transmitting data from adjacent peers rather than a central server.
도 1은 본 발명에 따른 네트워크 상에서 정보를 병렬적으로 전송하기 위한 시스템의 개략적인 구성을 도시한 개념도.1 is a conceptual diagram illustrating a schematic configuration of a system for transmitting information in parallel on a network according to the present invention.
도 2는 본 발명에 따른 네트워크 상에서 정보를 병렬적으로 전송하기 위한 시스템이 적용되는 실제 요소 간의 관계를 도시한 블록도.2 is a block diagram illustrating the relationship between actual elements to which a system for transmitting information in parallel on a network according to the present invention is applied;
도 3는 본 발명의 일실시예에 따른 네트워크 상의 정보 전송 병렬화 방법의 단계를 도시한 흐름도.3 is a flow diagram illustrating the steps of a method for parallelizing the transmission of information on a network in accordance with one embodiment of the present invention.
상기의 목적을 달성하기 위해서, 본 발명에 따른 네트워크 상의 정보 전송 병렬화 방법은 상기 정보를 소정의 크기의 데이터로 분할하여 저장하는 단계; 상기 소정의 크기의 데이터를 제공할 수 있는 피어들을 검색하는 단계; 상기 검색된 피어들 중에서 소정의 기준에 따라 피어를 선정하는 단계; 상기 선정된 피어로부터 병렬적으로 상기 소정의 크기의 데이터를 전송받는 단계; 및 상기 전송받은 소정의 크기의 데이터를 상기 정보로 복원하는 단계를 포함하는 것을 특징으로 한다.In order to achieve the above object, an information transmission parallelization method on a network according to the present invention comprises the steps of: dividing and storing the information into data of a predetermined size; Searching for peers capable of providing the data of the predetermined size; Selecting a peer from among the searched peers according to a predetermined criterion; Receiving data of the predetermined size in parallel from the selected peer; And restoring the received data having the predetermined size to the information.
또한, 상기의 목적을 달성하기 위해서, 본 발명에 따른 네트워크 상에서 병렬적으로 정보를 전송하기 위한 시스템은 상기 정보의 전송을 요청하는 클라이언트; 상기 정보를 소정의 크기의 데이터로 분할하여 저장하고 있는 서버; 상기 분할된 소정의 크기의 데이터를 저장하고 있는 다수의 피어들; 및 상기 피어들에 저장되어 있는 상기 소정의 크기의 데이터 및 또는 데이터에 대한 정보를 관리하고, 상기 클라이언트의 상기 정보 요청을 분석하여 소정의 기준에 따라 상기 다수의 피어들 중 상기 정보 전송에 적합한 피어를 선정하는 하나 이상의 에이전트를 포함하는 것을 특징으로 한다.In addition, in order to achieve the above object, a system for transmitting information in parallel on a network according to the present invention includes a client requesting the transmission of the information; A server dividing and storing the information into data having a predetermined size; A plurality of peers storing the partitioned predetermined size data; And a peer suitable for transmitting the information among the plurality of peers according to a predetermined criterion by managing the data of the predetermined size and / or information about the data stored in the peers, and analyzing the information request of the client. It characterized in that it comprises one or more agents for selecting.
또한, 본 발명의 다른 일면에 의하면, 상기 정보 전송에 적합한 피어를 선정하는 것은 클라이언트에서 수행될 수 있다.In addition, according to another aspect of the present invention, selecting a peer suitable for the information transmission may be performed in the client.
상술한 목적을 달성하기 위한 본 발명의 특징 및 장점은 첨부된 도면과 관련하여 이하의 설명을 통해 보다 분명히 드러날 것이다. 첨부된 도면을 참조하여 본 발명의 실시예를 상세히 설명하면 다음과 같다.The features and advantages of the present invention for achieving the above objects will become more apparent from the following description taken in conjunction with the accompanying drawings. Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings.
도 1은 본 발명이 적용되는 병렬 전송의 개략적인 구성을 나타내는 블록도로서, 임의의 네트워크로 상호 간에 정보 전송이 가능한 다음의 모듈들로 구성된다.1 is a block diagram showing a schematic configuration of parallel transmission to which the present invention is applied, and is composed of the following modules capable of transmitting information to each other through an arbitrary network.
전송될 정보를 분할하여 소정의 크기의 데이터로 저장하고 있는 서버(S)와;A server (S) for dividing information to be transmitted and storing it as data of a predetermined size;
소정의 정보를 요청하는 클라이언트(C)와;A client C for requesting predetermined information;
서버(S)를 대신하여 상기 소정의 크기의 데이터를 전송하는 역할을 수행하는 피어(1, 2, 3, 4)(11, 12, 13, 14)들과;Peers (1, 2, 3, 4) (11, 12, 13, 14) which serve to transmit data of the predetermined size on behalf of the server (S);
상기 클라이언트의 정보 요청을 분석하여, 상기 클라이언트의 요청에 따라 상기 서버를 대신하여 상기 소정의 크기의 데이터를 전송하는 피어들을 검색하는 하나 이상의 에이전트(A, B)(21, 22)로 구성된다.One or more agents (A, B) 21, 22 for analyzing the client's request for information and retrieving peers that transmit the data of the predetermined size on behalf of the server in response to the client's request.
서버(S)는 소정의 정보를 가변 또는 고정 크기의 데이터로 분할하여 저장하고 있다. 상기 분할되어 저장된 데이터는 암호화되어 있을 수 있다. 이러한 데이터의 암호화는 잘 알려진 공개키 암호화 알고리즘인 RSA(Rivest, Shamir, Adleman) 방식이나 DES(Data Encryption Standard) 등의 주지의 암호화 방식에 따라 수행될 수 있다. 이러한 암호화 기법은 클라이언트에게 유료 컨텐츠 등을 전송하는데 특히 유용할 수 있다.The server S divides and stores predetermined information into data of variable or fixed size. The divided and stored data may be encrypted. Such data encryption may be performed according to well-known encryption methods such as RSA (Rivest, Shamir, Adleman) method or DES (Data Encryption Standard), which are well-known public key encryption algorithms. This encryption technique may be particularly useful for transmitting paid content to clients.
하나 이상의 에이전트(A, B)(21, 22)는 서버(S)에 저장되어 있는 상기 소정의 크기로 분할된 데이터를 각 피어에 중복하여 저장되도록 배포하는 역할과, 각 피어에 저장된 상기 분할된 데이터를 관리하여 상기 분할된 데이터를 배출하고 새로 반입하는 역할을 담당함으로써 어떠한 정보의 분할된 데이터들이 어느 피어에 저장이 되어 있는지 항시 감시한다. 또한, 상기 에이전트는 이러한 감시 결과를 관리하고, 이를 이용하여 클라이언트(C)의 정보 요청(request)이 있는 경우, 이러한 정보 요청을 분석하여 어느 피어에서 처리할 수 있는지 검색하는 역할을 수행한다.At least one agent (A, B) (21, 22) distributes the data divided into the predetermined size stored in the server (S) to be stored in duplicate to each peer, and the divided It manages data, and discharges and imports the partitioned data, thereby constantly monitoring what peer data is stored in which information. In addition, the agent manages the monitoring result, and when there is an information request of the client C, the agent analyzes the information request and searches for which peer it can process.
이때 클라이언트(C)로부터 정보에 대한 요청이 있는 경우, 이 요청이 종래의 데이터 전송 방법에서 같이 서버(S)로 전송되는 것이 아니라 하나 이상의 에이전트(A, B)(21, 22)에게 전송될 수 있다. 이 경우, 하나 이상의 에이전트(A, B)(21, 22)는 상기 요청된 정보가 어느 피어(1, 2, 3, 4)(11, 12, 13, 14)에 분할된 데이터의 형태로 저장되어 있는지를 판단하고, 소정의 기준에 따라 이들 피어 중에서 어떠한 피어들로부터 상기 분할된 데이터를 전송하는 것이 바람직한지를 검색한다. 다수의 피어들 중에서 전송이 바람직한 하나 이상의 피어를 선정하는 것은 다음의 기준에 따라 수행될 수 있다.At this time, when there is a request for information from the client C, the request may not be transmitted to the server S as in the conventional data transmission method, but to one or more agents A and B 21 and 22. have. In this case, one or more agents (A, B) 21, 22 store the requested information in the form of data divided into which peers 1, 2, 3, 4 (11, 12, 13, 14). It is determined whether or not it is desirable to transmit the divided data from among the peers according to predetermined criteria. The selection of one or more peers from which a plurality of peers is desirable for transmission may be performed according to the following criteria.
(1) 클라이언트의 IP address를 분석하여 클라이언트의 IP address와 유사한 IP address를 갖는 피어를 선정할 수 있다. 일례로, 클라이언트와 피어의 IP address의 앞의 3 바이트가 유사한 경우라면, 양자는 동일 또는 인접 네트워크 상에 위치할 가능성이 높으므로 정보 전송 효율이 좋을 수 있다.(1) By analyzing the client's IP address, a peer having an IP address similar to the client's IP address can be selected. For example, if the first three bytes of the IP address of the client and the peer are similar, the information transmission efficiency may be good since both are likely to be located on the same or adjacent network.
(2) Ping 또는 Trace 명령을 사용하여 피어의 응답 속도 등을 보아 응답 속도가 양호한 고려할 수 있다. 응답 속도가 빠르다면 그 피어로의 네트워크 부하가 많지 않다고 볼 수 있으므로 정보 전송 효율이 좋을 수 있다.(2) The response speed of the peer can be considered to be good by using the Ping or Trace command. If the response speed is fast, it may be considered that the network load to the peer is not high, so the information transmission efficiency may be good.
(3) 피어 측에 인스톨되어 있는 전용 어플리케이션을 이용하여 피어의 CPU 및 입출력 부하를 측정하여, 이를 기초로 CPU 및 입출력 부하가 적은 피어를 선정할 수 있다. 임의의 피어의 CPU 및 입출력 부하가 낮다면 그 피어가 전송 작업을 더욱 신속하게 처리할 수 있으므로 정보 전송 효율이 좋을 수 있다.(3) The CPU and I / O load of the peer can be measured using a dedicated application installed on the peer side, and a peer with less CPU and I / O load can be selected based on this. If a peer's CPU and I / O load is low, the peer can process the transfer more quickly, which can improve information transfer efficiency.
(4) 클라이언트에게 서비스한 피어의 서비스 이력(history)를 조사하여 피어를 선정할 수 있다.(4) The peer can be selected by examining the service history of the peer that has served the client.
위에서 예시한 기준들 중 일부 또는 전부를 기초로 하여 에이전트(A, B)(21, 22) 혹은 클라이언트(C)는 바람직한 전송 효율을 가지고 있는 피어를 선정한다. 여기에서 서버(S) 또한 피어들 중의 하나로서 상기 소정의 기준에 따라 선정될 수 있다. 선정된 피어들은 자신들이 가지고 있는 소정의 크기로 분할된 데이터를 클라이언트(C)로 전송한다. 본 발명의 일실시예에 따르면, 각 피어에서 분할된 데이터를 전송하는 도중, 전송 네트워크 상에 장애가 발생한 경우에는 클라이언트에서 구동되고 있는 소정의 전용 어플리케이션이 이러한 장애 사실을 소정의 time-out 경과 등을 통하여 검출하고, 이를 에이전트(A, B)(21, 22) 에게 통지하도록 동작할 수 있다. 이 경우, 에이전트는 상기 분할된 데이터를 가진 전송에 적합한 다른 피어를 선정하여 이 선정된 피어로 하여금 네트워크 장애로 인해 전송하지 못한 상기 분할된 데이터를 클라이언트(C)로 전송하도록 동작할 수 있다. 분할된 데이터 전부의 전송이 완료되면 클라이언트(C)는 전송받은 분할된 데이터들을 원래의 형태로 복원(암호화 여부에 따라 복호를 포함할 수 있음)하여 용도에 맞게 사용할 수 있게 된다.Based on some or all of the criteria exemplified above, the agent (A, B) 21, 22 or the client C selects a peer having the desired transmission efficiency. The server S may also be selected according to the predetermined criterion as one of the peers. The selected peers transmit the data divided into their predetermined size to the client C. According to an embodiment of the present invention, if a failure occurs on the transmission network during transmission of divided data at each peer, a predetermined dedicated application running on the client may report the failure to a predetermined time-out. Can be detected and notified to the agents (A, B) 21, 22. In this case, the agent may select another peer suitable for transmission with the partitioned data and operate to send the partitioned data to the client C that the selected peer could not transmit due to a network failure. When the transmission of all the divided data is completed, the client C may restore the received divided data to its original form (which may include decoding depending on encryption) and use it for a purpose.
본 발명의 바람직한 일실시예에 따른 네트워크 상에서 정보를 병렬적으로 전송하기 위한 시스템은 상기 피어들 사이에서 전송되는 상기 작은 단위의 데이터의 캐싱(caching)을 관리하는 캐시 관리자를 더 포함할 수 있다. 이러한 캐시 관리자는 각 피어들 사이에서 주로 전송되는 데이터를 캐싱하여 두었다가, 인접 클라이언트기 이 정보를 요청하는 경우 이를 클라이언트에게 바로 전송함으로써 네트워크 상의 부하를 절감할 수 있게 된다. 상기 캐시 관리자는 독립적인 서버의 형태로 존재할 수도 있지만, 구현에 따라 캐시 관리자는 각 피어에 존재하고 캐시의 변경이 발생할 때마다 에이전트에 보고하는 방식으로 존재할 수도 있다.The system for transmitting information in parallel on a network according to an exemplary embodiment of the present invention may further include a cache manager that manages caching of the small unit of data transmitted between the peers. Such a cache manager caches data mainly transmitted between peers, and when the neighbor client requests this information, the cache manager directly reduces the load on the network. The cache manager may exist in the form of an independent server, but depending on the implementation, the cache manager may exist in each peer and report to the agent whenever a change in the cache occurs.
이와 같이 하나의 정보가 소정의 크기의 데이터로 분할되어 각기 다른 피어(1, 2, 3, 4)(11, 12, 13, 14)들에 저장되어 있고, 클라이언트(C)가 상기 정보를 요청하는 경우 각 피어(1, 2, 3, 4)(11, 12, 13, 14)들이 상기 분할된 소정의 크기의 데이터를 클라이언트(C)로 각각 전송하게 되므로 클라이언트는 여러 컴퓨터(피어)로부터 병렬적인 전송을 받게 된다. 본 발명에 따른 바람직한 일실시예에서, 클라이언트는 요청한 정보가 N개의 조각으로 분할된 경우 최대 N개의 피어들로부터 병렬적으로 전송을 받을 수 있지만, 정보의 특성이나 클라이언트의 특성 등을 고려하여 동시에 전달되는 정보 조각의 수를 일정 수 이하로 제한하는 기능을 포함하는 것도 가능하다.In this way, one piece of information is divided into data of a predetermined size and stored in different peers 1, 2, 3, and 4 (11, 12, 13, and 14), and the client C requests the information. In this case, each peer (1, 2, 3, 4) (11, 12, 13, 14) transmits the divided data of the predetermined size to the client C, respectively, so that the client is parallel from multiple computers (peers). You will receive a transmission. In a preferred embodiment according to the present invention, when the requested information is divided into N pieces, the client may receive transmissions in parallel from a maximum of N peers, but at the same time considering the characteristics of the information or the characteristics of the client, etc. It is also possible to include a function to limit the number of pieces of information to be a certain number or less.
도 2는 본 발명이 적용되는 분야의 실제 구성 요소인 서버(S), 클라이언트(C), 에이전트(21), 피어(11)간의 상호 관계를 나타낸 도면으로, 전체적인 동작을 위해 각 요소는 상호 연결된 임의의 네트워크를 통해 다음의 도 3에 도시된 흐름도와 같이 동작한다.FIG. 2 is a diagram illustrating the interrelationship between the server S, the client C, the agent 21, and the peer 11, which are actual components in the field to which the present invention is applied. It works like any of the flow charts shown in FIG. 3 below via any network.
도 3은 본 발명의 바람직한 일실시예에 따른 네트워크 상의 정보 전송 병렬화의 흐름을 도시하고 있다.3 illustrates a flow of information transmission parallelism on a network according to a preferred embodiment of the present invention.
단계 310에서, 서버(S)는 서비스의 대상이 되는 모든 정보를 가변 또는 고정 크기의 데이터로 분할하여 저장한다. 도 2에 도시된 하나 이상의 에이전트(21)는 서버(S)에 저장되어 있는 상기 분할된 데이터를 각 피어(11)에게 중복하여 배포하는 역할과, 각 피어(11)에 저장된 상기 분할된 데이터를 관리하여 상기 분할된 데이터를 삭제하고 새로 반입하는 역할을 담당함으로써 어떠한 정보의 분할된 데이터들이 어느 피어에 저장이 되어 있는지 항시 감시한다. 또한, 에이전트는 서버(S)에 업로드 되거나 삭제되는 정보를 파악하고, 서버(S)에서 삭제된 정보에 대응하는 각 피어(11)에 저장된 데이터를 삭제시키며, 새로이 업로드된 정보에 대해서는 이에 대응하는 분할된 데이터를 각 피어(11)에게 중복 배포한다.In operation 310, the server S divides and stores all information that is a service target into data of variable or fixed size. At least one agent 21 shown in FIG. 2 distributes the divided data stored in the server S to each peer 11 and distributes the divided data stored in each peer 11. It manages and deletes the partitioned data and imports the new data. By monitoring the peer, the partitioned data of which information is stored in which peer. In addition, the agent identifies the information uploaded or deleted on the server S, and deletes the data stored in each peer 11 corresponding to the information deleted in the server S, corresponding to the newly uploaded information The divided data are distributed to each peer 11 redundantly.
단계 320에서, 에이전트는 상기 감시 결과를 관리하고, 이를 이용하여 클라이언트(C)의 정보 요청(request)이 있는 경우 이러한 정보 요청을 분석하여 어느 피어에서 처리할 수 있는지 검색하는 역할을 수행한다.In step 320, the agent manages the monitoring result, and uses this to analyze the information request when there is an information request from the client C and search for which peer to process.
단계 330에서, 클라이언트(C)로부터 정보에 대한 요청이 있는 경우, 이 요청이 종래의 데이터 전송 방법에서 같이 서버(S)로 전송되는 것이 아니라 상기 하나 이상의 에이전트(21)로 전송될 수 있다. 이 경우, 상기 하나 이상의 에이전트(21)는 상기 요청된 정보가 어느 피어에 분할된 데이터의 형태로 저장되어 있는지를 검색하여 검색된 피어들을 클라이언트(C)에게 통지하고, 클라이언트는 상기 상술한소정의 기준에 따라 이들 피어 중에서 어떠한 피어들로부터 상기 분할된 데이터를 전송하는 것이 바람직한지를 판단하여 적합한 피어들을 선정한다. 상술한 바와 같이 본 발명에 따르면 상기 분할된 데이터를 피어들에게 중복하여 저장하기 때문에 동일 데이터를 가진 하나 이상의 피어가 네트워크 상에 존재한다. 단계 330은 상술한 소정의 기준에 따라 이러한 하나 이상의 피어 중에서 가장 전송 효율이 좋을 것으로 판단되는 피어를 선정하는 단계이다. 본 발명의 또 다른 일례에 의하면, 적합한 피어들을 선정하는 것은 클라이언트(C)에서 수행될 수도 있지만, 에이전트가 적합한 피어를 선정하여 선정된 피어를 클라이언트(C)에게 통지하도록 동작할 수 있다. 상술한 바와 같이 여기에서 서버(S) 또한 피어들 중의 하나로서 상기 소정의 기준에 따라 선정의 대상이 될 수 있다.In step 330, when there is a request for information from the client C, the request may be transmitted to the one or more agents 21, rather than to the server S as in the conventional data transmission method. In this case, the at least one agent 21 searches for which peers the requested information is stored in the form of divided data, and notifies the retrieved peers to the client C, and the client meets the above-mentioned predetermined criteria. Accordingly, from among the peers, it is determined from which peers it is desirable to transmit the divided data to select appropriate peers. As described above, according to the present invention, since the divided data are repeatedly stored in the peers, one or more peers having the same data exist on the network. Step 330 is a step of selecting a peer which is determined to have the best transmission efficiency among the one or more peers according to the above-described predetermined criteria. According to another example of the invention, selecting suitable peers may be performed at client C, but the agent may operate to select a suitable peer and notify client C of the selected peer. As described above, the server S may also be selected as one of the peers according to the predetermined criterion.
단계 340에서, 상기 단계 330에서 선정된 피어들은 각기 저장하고 있는 분할된 데이터를 클라이언트에게 전송한다. 개념적으로는 클라이언트가 요청한 정보가 N개의 조각으로 분할된 경우 최대 N개의 피어들로부터 병렬적으로 전송을 받을 수 있지만, 정보의 특성이나 클라이언트의 특성 등을 고려하여 동시에 전달되는 정보 조각의 수를 일정 수 이하로 제한하는 기능을 포함하는 것이 가능하다.In step 340, the peers selected in step 330 transmit the divided data stored in the client to the client. Conceptually, if the information requested by the client is divided into N fragments, it can receive transmissions from up to N peers in parallel.However, considering the characteristics of the information or the characteristics of the client, the number of information fragments simultaneously delivered is fixed. It is possible to include a function that limits to less than a few.
단계 350에서, 상기 단계 340의 전송 과정에서 임의의 피어와 클라이언트 사이의 네트워크에 장애가 발생하거나, 예기치 못한 상황(피어 컴퓨터의 다운 등)이 발생한 경우, 임의의 피어에서 수행되던 분할된 데이터의 전송이 느려지거나 또는 중지된다. 이러한 경우, 클라이언트 측에서 구동되는 전용 어플리케이션은 소정의 시간 경과 후 time-out 여부를 판단하여 임의의 피어에서의 전송이 소정의 속도 이하로 느려지거나 중지되었다는 사실을 에이전트로 통지한다. 이러한 통지가 있는 경우, 단계 330으로 회귀하여 상술한 과정이 반복된다. 이러한 예기치 못한 사고의 경우, 클라이언트가 에이전트로 통지할 수도 있으나, 전송 상황을 체크하고 있는 에이전트가 이를 직접 감지하여 단계 330으로 회귀하는 것도 가능하다.In step 350, if the network between any peer and the client fails in the transmission process of step 340, or if an unexpected situation (such as a downtime of the peer computer) occurs, the transmission of the divided data that was performed in any peer is performed. Slow down or stop. In this case, the dedicated application running on the client side determines whether to time-out after a predetermined time elapses and notifies the agent that the transmission from any peer has slowed or stopped below a predetermined speed. If there is such a notification, the process returns to step 330 and the above-described process is repeated. In the case of such an unexpected accident, the client may notify the agent. However, the agent checking the transmission status may directly detect this and return to step 330.
단계 360에서, 모든 피어로부터의 분할된 데이터가 모두 전송되면 전송이 완료된다.In step 360, the transmission is complete when all the divided data from all peers is transmitted.
단계 370에서, 전송된 상기 분할된 데이터는 클라이언트 측에서 다시 복원된다. 이 경우, 특정 암호화 알고리즘을 통하여 암호화된 데이터는 다시 복호화되어 소정의 서비스를 제공할 수 있는 형태의 정보로 복원된다.In step 370, the partitioned data transmitted is restored on the client side again. In this case, the data encrypted through a specific encryption algorithm is decoded again and restored to information of a form that can provide a predetermined service.
이상에서 상세히 설명한 바와 같이, 본 발명에 따르면, 서버가 서비스할 정보를 여러 개의 소정의 크기의 데이터로 분할하여 여러 대의 일반 사용자 컴퓨터에 저장함으로써 컨텐츠 제공자들이 자신이 관리하는 서버가 아닌 외부의 컴퓨터로 정보가 유출되어 컨텐츠 제공자의 허락을 받지 않고 정보를 사용할 수 있는 가능성을 배제할 수 있다.As described in detail above, according to the present invention, by dividing the information to be serviced by the server into a plurality of predetermined size data stored in a number of general user computer content providers to the external computer rather than the server that they manage It is possible to exclude the possibility that information may be leaked and used without the permission of the content provider.
또한, 본 발명에 따르면, 서버와 클라이언트 간의 일대일 전송이 아닌 다수의 피어와 클라이언트 간의 병렬 전송을 통하여, 같은 크기의 정보를 전송하는데 소요되는 시간을 획기적으로 단축할 수 있을 뿐 아니라, 모든 클라이언트의 모든 요청을 중앙의 서버가 집중적으로 관리하여 서비스하는 것과는 달리 다수의 피어들이 동시에 병렬적으로 처리하기 때문에, 서버의 부하를 획기적으로 감소시킬 수 있으므로 서버의 구축 비용을 절감시킬 수 있다.In addition, according to the present invention, not only the one-to-one transmission between the server and the client, but also parallel transmission between a plurality of peers and clients, it is possible to dramatically shorten the time required to transmit information of the same size, Unlike the central server managing and serving requests centrally, since multiple peers process them in parallel simultaneously, the load on the server can be dramatically reduced, thereby reducing the cost of building the server.
아울러 상술한 본 발명의 바람직한 실시예는 예시의 목적을 위한 것이고, 당업자라면 상술한 본 발명의 사상과 범위 안에서 다양한 수정, 변경, 부가 등이 가능하다는 것은 자명하다. 따라서, 본 발명의 권리범위는 이하에 기술하는 특허청구의 범위에 의해 정하여지며, 이의 수정, 변경 등은 본 발명의 균등의 범위에 속한다고 볼 것이다. 특히 상술한 서버, 에이전트, 피어, 클라이언트 등의 각 구성 요소는 기능상 분류한 것일 뿐, 이들의 실제 물리적인 위치는 기능상의 분류와 무관하다.In addition, the preferred embodiment of the present invention described above is for the purpose of illustration, it will be apparent to those skilled in the art that various modifications, changes, additions, etc. are possible within the spirit and scope of the present invention described above. Therefore, the scope of the present invention is defined by the claims described below, it will be seen that modifications, changes, etc. belong to the equivalent scope of the present invention. In particular, the above-described components of the server, the agent, the peer, the client, and the like are only functionally classified, and their actual physical location is irrelevant to the functional classification.
Claims (2)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030011972A KR20040076660A (en) | 2003-02-26 | 2003-02-26 | Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020030011972A KR20040076660A (en) | 2003-02-26 | 2003-02-26 | Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20040076660A true KR20040076660A (en) | 2004-09-03 |
Family
ID=37362763
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020030011972A KR20040076660A (en) | 2003-02-26 | 2003-02-26 | Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20040076660A (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100748030B1 (en) * | 2006-10-13 | 2007-08-09 | 김진용 | P2 based CDN service method using organizational internet network infrastructure |
CN1897588B (en) * | 2006-06-21 | 2010-06-16 | 北京北大方正电子有限公司 | A mixed-mode network file transfer method and system |
CN102882925A (en) * | 2011-08-05 | 2013-01-16 | 新游网络科技有限公司 | Device and method for distributed control of file downloading network |
US8423609B2 (en) | 2009-12-29 | 2013-04-16 | Samsung Electronics Co., Ltd. | Method and network apparatus for requesting data based on content name |
KR101338696B1 (en) * | 2011-01-10 | 2013-12-06 | 명지대학교 산학협력단 | Method of providing a differential contents service according to level in a p2p network |
-
2003
- 2003-02-26 KR KR1020030011972A patent/KR20040076660A/en not_active Application Discontinuation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1897588B (en) * | 2006-06-21 | 2010-06-16 | 北京北大方正电子有限公司 | A mixed-mode network file transfer method and system |
KR100748030B1 (en) * | 2006-10-13 | 2007-08-09 | 김진용 | P2 based CDN service method using organizational internet network infrastructure |
US8423609B2 (en) | 2009-12-29 | 2013-04-16 | Samsung Electronics Co., Ltd. | Method and network apparatus for requesting data based on content name |
KR101338696B1 (en) * | 2011-01-10 | 2013-12-06 | 명지대학교 산학협력단 | Method of providing a differential contents service according to level in a p2p network |
CN102882925A (en) * | 2011-08-05 | 2013-01-16 | 新游网络科技有限公司 | Device and method for distributed control of file downloading network |
WO2013022182A1 (en) * | 2011-08-05 | 2013-02-14 | Neowiz Games Corporation | Device and method for distributed control of file downloading network |
KR101305062B1 (en) * | 2011-08-05 | 2013-09-11 | (주)네오위즈게임즈 | Device and method for distributed control of file downloading network |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20030019900A (en) | Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof | |
US11336614B2 (en) | Content node network address selection for content delivery | |
US8677011B2 (en) | Load distribution system, load distribution method, apparatuses constituting load distribution system, and program | |
JP4529974B2 (en) | Server load balancing system, server load balancing device, content management device, and server load balancing program | |
US7062570B2 (en) | High performance server farm with tagging and pipelining | |
JP5048134B2 (en) | Packet routing method, system, apparatus, and backup resource selection method, system | |
KR101430237B1 (en) | Peer selction method and system in peer to peer communication | |
JP2003256310A (en) | Server load decentralizing system, server load decentralizing apparatus, content management apparatus and server load decentralizing program | |
Wong et al. | Content routers: Fetching data on network path | |
Hefeeda et al. | On-demand media streaming over the internet | |
Liu et al. | A novel cache replacement scheme against cache pollution attack in content-centric networks | |
Trajano et al. | ContentSDN: A content-based transparent proxy architecture in software-defined networking | |
Nguyen et al. | Adaptive caching for beneficial content distribution in information-centric networking | |
JP5871908B2 (en) | Method and system for controlling data communication within a network | |
Jin et al. | Content routing and lookup schemes using global bloom filter for content-delivery-as-a-service | |
KR20040076660A (en) | Parallel information delivery method based on peer-to-peer enabled distributed computing technology and the system thereof | |
Gupta et al. | 2-Tiered cloud based content delivery network architecture: An efficient load balancing approach for video streaming | |
Yoshida | Dynamic CDN against flash crowds | |
Eum et al. | Design and implementation of ICN-enabled IEEE 802.11 access points as nano data centers | |
Matsuzono et al. | Content request handling for application-oriented transport control | |
Gupta et al. | Content delivery network approach to improve web performance: a review | |
Li | Popularity-driven caching strategy for dynamic adaptive streaming over information-centric networks | |
Awiphan et al. | Outbound face selection considering response time and buffer usage for CCN adaptive video streaming | |
Yokota et al. | A load reduction system to mitigate flash crowds on web server | |
JP2006260592A (en) | Content management device, and content management program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20030226 |
|
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20030707 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
PG1501 | Laying open of application | ||
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |