KR101252947B1 - Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution - Google Patents

Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution Download PDF

Info

Publication number
KR101252947B1
KR101252947B1 KR1020100126250A KR20100126250A KR101252947B1 KR 101252947 B1 KR101252947 B1 KR 101252947B1 KR 1020100126250 A KR1020100126250 A KR 1020100126250A KR 20100126250 A KR20100126250 A KR 20100126250A KR 101252947 B1 KR101252947 B1 KR 101252947B1
Authority
KR
South Korea
Prior art keywords
chunks
chunk
node
buffer map
transmission
Prior art date
Application number
KR1020100126250A
Other languages
Korean (ko)
Other versions
KR20120064969A (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 KR1020100126250A priority Critical patent/KR101252947B1/en
Publication of KR20120064969A publication Critical patent/KR20120064969A/en
Application granted granted Critical
Publication of KR101252947B1 publication Critical patent/KR101252947B1/en

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/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

P2P 네트워크에서 스트리밍에 의해 재생되는 파일을 공유 위한 방법 및 장치가 제공된다. 파일을 구성하는 청크들은, 청크들의 희귀도 또는 버퍼 맵 정보에 기반하여 특정한 방식을 통해 전달될 수 있다. 청크들 각각은 희귀도에 따라 푸쉬 방식 또는 풀 방식으로 피어 간에 전달될 수 있다. 또한, 버퍼 맵 격차에 따라 전체 청크들은 푸쉬 방식 또는 풀 방식으로 전달될 수 있으며, 네트워크 내의 모든 피어들에 대해 동일한 방식이 사용될 수 있으며, 피어들 각각에 대해 상이한 방식이 사용될 수 있다.A method and apparatus are provided for sharing a file played by streaming in a P2P network. The chunks that make up the file may be delivered in a particular manner based on the rareness or buffer map information of the chunks. Each of the chunks may be transferred between peers in a push or pull fashion depending on the rarity. In addition, depending on the buffer map gap, the entire chunks may be delivered in a push or pull manner, the same scheme may be used for all peers in the network, and a different scheme may be used for each of the peers.

Figure R1020100126250
Figure R1020100126250

Description

비디오 청크 분포에 적응적인 푸쉬-풀 혼성 스트리밍 방법 및 장치{METHOD AND APPARATUS FOR PUSH-PULL HYBRID STREAMING ADAPTIVE TO VIDEO CHUNK DISTRIBUTION}TECHNICAL AND APPARATUS FOR PUSH-PULL HYBRID STREAMING ADAPTIVE TO VIDEO CHUNK DISTRIBUTION

아래의 실시예들은 비디오 청크 분포에 적응적으로 스트리밍을 하기 위한 방법 및 장치에 관한 것이다.The following embodiments are directed to a method and apparatus for adaptively streaming to a video chunk distribution.

Web 2.0 열풍은, "참여와 공유, 그리고 개방"을 기치로 내세우며 인터넷에 대한 패러다임 전환의 필요성을 역설한다.The Web 2.0 craze calls for "participation, sharing, and openness" and calls for a paradigm shift to the Internet.

이러한, Web 2.0 열풍의 중심에서, 통상적으로 피어-투-피어(Peer-To-Peer; P2P) 스트리밍(streaming)이라고 불리는, P2P 텔레비젼(TeleVision; TV)이 괄목할 성장세를 보이고 있다. P2P TV, 즉 P2P 스트리밍은, P2P 오버레이(overlay) 네트워크 상으로 비디오(video) 스트림을 전달/공유한다.At the heart of this Web 2.0 craze, P2P television, commonly referred to as peer-to-peer (P2P) streaming, is showing remarkable growth. P2P TV, or P2P streaming, delivers / shares a video stream over a P2P overlay network.

오늘날, 예컨대 유튜브(YouTube)와 같은, 선두적인 멀티미디어 사이트들은 대부분 클라이언트/서버(Client/Server; C/S) 모델에 기초하여 서비스를 제공한다. 이러한 사이트들에 있어서, IP 멀티캐스트를 위한 네트워크 인프라스트럭쳐(infrastructure)의 구축 및 콘텐츠 전달 네트워크(Content Delivery Network; CDN) 서버에 지불해야 하는 막대한 비용이 문제로 지적된다.Today, leading multimedia sites, such as YouTube, for the most part, provide services based on a Client / Server (C / S) model. For these sites, the cost of establishing a network infrastructure for IP multicast and paying a Content Delivery Network (CDN) server is pointed out as a problem.

비록, 이러한 인터넷 미디어 사이트들이 큰 성공을 누리고 있지만, 이러한 성공은 어디까지나 300~500Kbps 정도의 비디오 스트림이 제공되는 것을 전제로 하는 것이다. 이러한 비디오 스트림에 비해서 더 고화질을 갖는 IPTV 서비스를 감안한다면, C/S 모델에 기초한 비디오 전송의 확장성(scalability) 문제가 재고되어야 한다.Although these Internet media sites are enjoying great success, the success is based on the assumption that video streams of 300 to 500 Kbps are provided. Considering the IPTV service having a higher quality than such a video stream, the scalability problem of video transmission based on the C / S model should be reconsidered.

IP 멀티캐스트 기반 모델은 멀티캐스트(multicast) 프로토콜(protocol)의 확장(scaling) 문제 및 보급(deployment) 문제가 단점으로서 지적된다. 서버 기반 또는 CDN 기반 모델은 전송 비용 문제가 단점으로서 지적되고 있으나,The IP multicast-based model is pointed out as a disadvantage of the scaling problem and the deployment problem of the multicast protocol. Server-based or CDN-based models are pointed out as a disadvantage of the transmission cost,

이러한 문제에 대한 대안으로서, P2P 기반의 멀티미디어(multi-media) 스트리밍이 있다. P2P 기반의 멀티미디어 스트리밍은 인터넷 라우터(router) 및 네트워크 인프라스트럭쳐의 지원을 필요로 하지 않기 때문에 비용에 있어서 이점을 갖고, 용이하게 보급될 수 있다.An alternative to this problem is P2P based multi-media streaming. P2P based multimedia streaming has an advantage in cost and can be easily deployed because it does not require the support of Internet routers and network infrastructure.

스트림을 다운로드받는 피어(peer)는 다른 피어에게 스트림을 업로드 하도록 요청한다. 이러한 요청에 의해, P2P 네트워크를 구성하는 피어들의 업로드 대역폭들의 합은 시스템의 전체 다운로드 용량이 될 수 있다.The peer that downloads the stream requests the other peer to upload the stream. By this request, the sum of the upload bandwidths of the peers constituting the P2P network can be the total download capacity of the system.

따라서, P2P TV 서비스는 C/S 모델의 성능 병목 현상을 극복할 수 있는 확장성(scalability)을 큰 장점으로 갖는다.Therefore, P2P TV service has a great advantage of scalability that can overcome the performance bottleneck of the C / S model.

또한, P2P 기술에 기반한 P2P 스트리밍은 풍부한 채널, 개인 맞춤형 시청 및 다양한 단말기를 지원할 수 있다.In addition, P2P streaming based on P2P technology can support rich channels, personalized viewing and various terminals.

P2P TV는, 중국을 중심으로, 아시아 국가의 TV 채널을 인터넷으로 전송하기 위해 주로 이용된다. 또한, P2P TV는 북미의 TV 채널을 인터넷으로 재전송하기 위해서도 이용된다.P2P TV is mainly used to transmit TV channels of Asian countries to the Internet, mainly in China. P2P TVs are also used to retransmit TV channels in North America over the Internet.

그러나, 기존의 P2P TV 서비스가 제한적으로나마 기술적 또는 상업적인 성공을 이루었다 하더라도, 기존의 P2P TV 서비스는 사용자에게 만족스런 경험상의 품질(Quality of Experience; QoE)를 제공하지 못한다.However, even if the existing P2P TV service has achieved a limited technical or commercial success, the existing P2P TV service does not provide a satisfactory quality of experience (QoE) to the user.

기존의 TV 품질에 익숙해져 있는 사용자들이 갖는 높은 기대 수준 및 P2P TV에 의해 제공되는 품질 간의 격차는 상당하다. 따라서, P2P TV의 입장에서 보았을 때, 단기적으로는 무엇보다도 정규 IPTV 서비스에 대한 경쟁력을 갖추는 것이 시급하게 요구되고, 장기적으로는 기존 TV에 버금가는 서비스 품질을 제공할 수 있는 체계적인 기술 개발 노력이 요구된다.The gap between the high expectations of users accustomed to existing TV quality and the quality provided by P2P TV is significant. Therefore, from the point of view of P2P TV, it is urgently needed to be competitive with regular IPTV service in the short term, and in the long term, a systematic technical development effort is required to provide service quality comparable to that of conventional TV. do.

독자적인 관리된(managed), 사설(private) IP 전송망을 확보하고 있는 정규 IPTV 사업자들의 서비스 및 괸리되지 않은(unmanaged), 공용(public) 인터넷 상으로 비디오를 전송하는 P2P TV 서비스 간에는 출발에서부터 큰 차이가 존재한다.There is a big difference from the start between the services of regular IPTV operators that have their own managed, private IP transport networks, and P2P TV services that deliver video over the unmanaged, public Internet. exist.

특히, 인터넷 비디오 전송 서비스인 P2P IPTV의 가장 심각한 문제는 프로그램의 전송 지연 및 사용자의 요청에 대한 더딘 반응 속도이다. In particular, the most serious problem of P2P IPTV, the Internet video transmission service, is the delay of program transmission and slow response rate to user request.

P2P 스트리밍 서비스는 일반적으로 오버레이의 구조에 따라서 트리-푸쉬(tree-push) 방식 및 메쉬-풀(mesh-pull) 방식으로 구분될 수 있다.In general, P2P streaming service may be classified into a tree-push and a mesh-pull according to the overlay structure.

트리-푸쉬 방식에서, 비디오 스트리밍은 미리 형성된 트리 경로를 따라서 부모에서 자식으로 순차적으로 전달된다. 반면 메쉬-풀 방식은 피어들이 그들의 이웃으로부터 필요한 비디오 청크들을 요청하여 얻어오는 구조를 갖는다.In a tree-push scheme, video streaming is passed sequentially from parent to child along a preformed tree path. The mesh-pull scheme, on the other hand, has a structure in which peers request and obtain the required video chunks from their neighbors.

기본적으로 트리-푸쉬 방식은 피어 천(peer churn)(피어가 임의로 접속/종료하는 현상)에 탄력성 있게 동작하기 힘들고, 피어들의 업로드 대역폭 활용도가 낮다는 단점을 갖는다. 메쉬-풀 방식은 높은 컨트롤 메시지 오버헤드, 긴 시작 지연 시간 등의 문제점을 갖는다.Basically, the tree-push method has a disadvantage in that it is difficult to flexibly operate on a peer churn (a phenomenon in which the peer is arbitrarily connected / terminated) and the upload bandwidth utilization of the peers is low. The mesh-pull scheme has problems such as high control message overhead and long start delay time.

일반적으로, 메쉬-풀 방식의 단순함 및 피어 천에 대한 높은 탄력성 때문에 트리-푸쉬 방식보다는 메쉬-풀 방식이 더 선호된다.In general, the mesh-pull method is preferred to the tree-push method because of the simplicity of the mesh-pull method and the high elasticity to the peer fabric.

본 발명의 일 실시에는 P2P 비디오 스트리밍의 한 방식인 푸쉬 및 풀을 혼합하여 사용하는 선택적인 푸쉬-풀 장치 및 방법을 제공할 수 있다.One embodiment of the present invention can provide an optional push-pull device and method using a combination of push and pull, which is a method of P2P video streaming.

본 발명의 일 실시에는 청크 분포도에 기초하여 푸쉬 및 풀을 선택적으로 사용하는 스트리밍 장치 및 방법을 제공할 수 있다.One embodiment of the present invention can provide a streaming apparatus and method for selectively using push and pull based on the chunk distribution.

본 발명의 일측에 따르면, P2P 네트워크 내의 노드가 이웃 노드들과 파일을 공유하는 방법에 있어서, 상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 단계, 상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계 및 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 청크의 희귀도는 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 네트워크 내에 퍼진 정도를 나타내고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 파일 공유 방법이 제공된다.According to an aspect of the present invention, in a method in which a node in a P2P network shares a file with neighbor nodes, calculating a rareness of each of one or more chunks included in the file based on buffer map information of the neighbor nodes. Determining a transmission / reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness, and transmitting / receiving each of the selected one or more chunks according to the determined transmission / reception scheme. The buffer map information includes information on whether the neighbor node owns each of the one or more chunks, and the degree of rareness of the chunk is the extent to which each of the one or more chunks spread between the node and the neighbor nodes within the network. The transmission and reception method is a file sharing, push or pull method This method is provided.

싱가 파일 공유 방법은 상기 이웃 노드들로부터 상기 버퍼 맵 정보를 수신하는 단계를 더 포함할 수 있다.The Singapore file sharing method may further include receiving the buffer map information from the neighbor nodes.

상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는, 상기 하나 이상의 청크들 중 상기 희귀도가 제1 미리 정의된 값 이상이고, 상기 노드가 소유한 청크를 고희귀 청크로서 선택하는 단계를 포함할 수 있고, 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는 상기 고희귀 청크를 상기 이웃 노드들 중 상기 고희귀 청크를 포함하지 않은 청크에게 전송하는 단계를 포함할 수 있다.Determining a transmission / reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness, wherein the rareness of the one or more chunks is equal to or greater than a first predefined value and is owned by the node. And selecting one chunk as a rare rare chunk, wherein transmitting and receiving each of the selected one or more chunks according to the determined transmission and reception scheme includes the rare rare chunk of the neighboring nodes. And sending to chunks that do not.

상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는, 상기 하나 이상의 청크들 중 상기 노드만이 소유한 청크를 고희귀 청크로서 선택하는 단계를 포함할 수 있고, 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는 상기 고희귀 청크를 상기 이웃 노드들 중 하나 이상의 노드들에게 전송하는 단계를 포함할 수 있다.Determining a transmission / reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness includes selecting a chunk owned only by the node among the one or more chunks as a high rare chunk. The transmitting and receiving of each of the selected one or more chunks according to the determined transmission and reception scheme may include transmitting the high rare chunk to one or more of the neighboring nodes.

상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는, 상기 하나 이상의 청크들 중 상기 희귀도가 제1 미리 정의된 값 미만이고, 상기 이웃 노드들 중 하나 이상의 노드가 소유하고, 상기 노드가 소유하지 않은 청크를 희귀 청크로서 선택하는 단계를 포함할 수 있고, 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는, 상기 이웃 노드들 중 상기 희귀 청크를 포함한 노드에게 상기 희귀 청크의 전송을 요청하는 단계 및 상기 이웃 노드로부터 상기 희귀 청크를 수신하는 단계를 포함할 수 있다.Determining a transmission / reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness, wherein the rareness of the one or more chunks is less than a first predefined value, and the neighboring nodes And selecting a chunk owned by one or more nodes of the node and not owned by the node as a rare chunk, and transmitting and receiving each of the selected one or more chunks according to the determined transmission / reception scheme. Requesting transmission of the rare chunk to a node including the rare chunk, and receiving the rare chunk from the neighboring node.

상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는, 상기 하나 이상의 청크들 중 상기 노드만이 소유하지 않은 청크를 희귀 청크로서 선택하는 단계를 포함할 수 있고, 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는, 상기 이웃 노드들 중 하나 이상의 노드들에게 상기 희귀 청크의 전송을 요청하는 단계 및 상기 희귀 청크의 전송이 요청된 상기 하나 이상의 노드들로부터 상기 희귀 청크를 수신하는 단계를 포함할 수 있다.Determining a transmission / reception scheme for each of one or more selected chunks of the one or more chunks based on the rareness includes selecting as a rare chunk a chunk not owned only by the node of the one or more chunks. The transmitting and receiving of each of the selected one or more chunks according to the determined transmission and reception scheme may include requesting transmission of the rare chunk to one or more nodes of the neighboring nodes and requesting transmission of the rare chunk. And receiving said rare chunk from said one or more nodes.

상기 파일은 상기 노드에 의해 재생되고 있는 파일일 수 있고, 상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는, 상기 파일의 재생 지점과의 거리 및 상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 특정 청크를 희귀 청크로서 선택하는 단계를 포함할 수 있고, 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는, 상기 이웃 노드들 중 하나 이상의 노드들에게 상기 희귀 청크의 전송을 요청하는 단계 및 상기 희귀 청크의 전송이 요청된 상기 하나 이상의 노드들로부터 상기 희귀 청크를 수신하는 단계를 포함할 수 있다.The file may be a file being played by the node, and determining the transmission / reception scheme of each of the one or more selected chunks of the one or more chunks based on the rareness may include a distance from a playback point of the file. And selecting a particular chunk of the one or more chunks as a rare chunk based on the rareness, and transmitting and receiving each of the selected one or more chunks according to the determined transmission / reception scheme may include: Requesting transmission of the rare chunk to one or more nodes, and receiving the rare chunk from the one or more nodes for which the transmission of the rare chunk is requested.

본 발명의 다른 일측에 따르면, P2P 네트워크 내의 이웃 노드들과 파일을 공유하는 노드에 있어서, 상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 희귀도 계산부, 상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 송수신 방식 결정부 및 상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 송수신부를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 청크의 희귀도는 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 네트워크 내에 퍼진 정도를 나타내고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 네트워크 노드가 제공된다.According to another aspect of the present invention, in a node sharing a file with neighboring nodes in a P2P network, a rareness of calculating a rareness of each of one or more chunks included in the file based on buffer map information of the neighboring nodes. A calculator, a transmission / reception scheme determining unit determining a transmission / reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness, and a transmission / reception to transmit / receive each of the selected one or more chunks according to the determined transmission / reception scheme. And the buffer map information includes information on whether the neighbor node owns each of the one or more chunks, and the degree of rareness of each of the one or more chunks between the node and the neighbor nodes. The degree of spread in the network, and the transmission and reception method is a push method It is provided with a pull method, a network node.

상기 송수신 방식 결정부는 상기 하나 이상의 청크들 중 상기 희귀도가 제1 미리 정의된 값 이상이고, 상기 노드가 소유한 청크를 고희귀 청크로서 선택할 수 있고, 상기 송수신부는 상기 고희귀 청크를 상기 이웃 노드들 중 상기 고희귀 청크를 포함하지 않은 청크에게 전송할 수 있다.The transmission / reception scheme determining unit may select a chunk owned by the node as a rare rare chunk having the rareness greater than or equal to a first predefined value among the one or more chunks, and the transceiver unit selects the rare rare chunk as the neighboring node. Among them, it can be transmitted to the chunk not including the rare chunked.

상기 송수신 방식 결정부는 상기 하나 이상의 청크들 중 상기 희귀도가 제1 미리 정의된 값 미만이고, 상기 이웃 노드들 중 하나 이상의 노드가 소유하고, 상기 노드가 소유하지 않은 청크를 희귀 청크로서 선택할 수 있고, 상기 송수신부는 상기 이웃 노드들 중 상기 희귀 청크를 포함한 노드에게 상기 희귀 청크의 전송을 요청하고, 상기 이웃 노드로부터 상기 희귀 청크를 수신할 수 있다.The transmission / reception scheme determination unit may select as a rare chunk a rare chunk of the one or more chunks that is less than a first predefined value and is owned by one or more nodes of the neighbor nodes and is not owned by the node. The transceiver may request a node including the rare chunk of the neighbor nodes to transmit the rare chunk, and receive the rare chunk from the neighbor node.

본 발명의 또 다른 일측에 따르면, P2P 네트워크 내의 노드가 이웃 노드들과 파일을 공유하는 방법에 있어서, 상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 단계, 상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계 및 상기 선택된 하나 이상의 청크들을 상기 결정된 송수신 방식에 따라 송수신하는 단계를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 버퍼 맵 격차는 상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보 간의 격차를 의미하고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 파일 공유 방법이 제공된다.According to another aspect of the present invention, in a method in which a node in a P2P network shares a file with neighbor nodes, calculating a buffer map gap based on buffer map information of the neighbor nodes and buffer map information of the node. Determining a transmission / reception scheme of one or more selected chunks of the one or more chunks based on the buffer map gap, and transmitting / receiving the selected one or more chunks according to the determined transmission / reception scheme. And information on whether the neighbor node owns each of the one or more chunks, and the buffer map gap means a gap between buffer map information of the neighbor nodes and buffer map information of the node. A file sharing method is provided, either push or pull.

상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 단계는, 상기 이웃 노드들 전체의 버퍼 맵들 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 전체에 대한 상기 버퍼 맵 격차를 계산하는 단계를 포함할 수 있고, 상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계는, 상기 버퍼 맵 격차가 미리 정의된 값 이상일 경우 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계 및 상기 버퍼 맵 격차가 미리 정의된 값 미만일 경우 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계를 포함할 수 있다.Computing a buffer map gap based on the buffer map information of the neighbor nodes and the buffer map information of the node, the buffer map of all the neighbor nodes and the buffer map of the node for all of the neighbor nodes based on The method may include calculating the buffer map gap, and determining the transmission / reception scheme of one or more selected chunks of the one or more chunks based on the buffer map gap, wherein the buffer map gap is equal to or greater than a predefined value. And determining a pull method as a transmission / reception method of the one or more selected chunks, and determining a push method as the transmission / reception method of the one or more selected chunks when the buffer map gap is less than a predefined value.

상기 미리 정의된 값은 상기 노드의 버퍼 맵의 크기 및 상기 이웃 노드들의 개수에 기반하여 결정될 수 있다.The predefined value may be determined based on the size of the buffer map of the node and the number of neighboring nodes.

상기 버퍼 맵 격차가 미리 정의된 값 이상일 경우 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계는, 상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 단계 및 상기 하나 이상의 청크들 중 상기 희귀도가 제1 미리 정의된 값 이상이고, 상기 노드가 소유한 청크를 풀 방식으로 전송할 상기 선택된 청크로 결정하는 단계를 포함할 수 있고, 상기 청크의 희귀도는 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 네트워크 내에 퍼진 정도를 나타낼 수 있다.If the buffer map gap is greater than or equal to a predefined value, determining a pull method as a transmission / reception method of the one or more selected chunks may include: rare of each of the one or more chunks included in the file based on buffer map information of the neighbor nodes; Calculating a degree and determining the selected one of the one or more chunks whose rareness is equal to or greater than a first predefined value and which sends the chunk owned by the node in a pull manner; The rareness of the chunks may indicate the extent to which each of the one or more chunks has spread within the network between the node and the neighbor nodes.

상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 단계는, 상기 이웃 노드들 각각의 버퍼 맵 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 각각에 대한 상기 버퍼 맵 격차를 계산하는 단계를 포함할 수 있고, 상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계는, 상기 이웃 노드들 각각의 상기 버퍼 맵 격차에 기반하여 상기 이웃 노드들 각각으로의 상기 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계를 포함할 수 있다.Computing a buffer map gap based on the buffer map information of the neighbor nodes and the buffer map information of the node, for each of the neighbor nodes based on the buffer map of each of the neighbor nodes and the buffer map of the node. The method may include calculating a buffer map gap, and determining a transmission / reception scheme of one or more selected chunks of the one or more chunks based on the buffer map gap, wherein the buffer map gap of each of the neighboring nodes is determined. And determining a transmission / reception scheme of the one or more selected chunks to each of the neighbor nodes based on the method.

상기 이웃 노드들 각각의 상기 버퍼 맵 격차에 기반하여 상기 이웃 노드들 각각으로의 상기 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계는, 상기 이웃 노드들 중 상기 버퍼 맵 격차가 미리 정의된 값 이상인 이웃 노드에 대해 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계 및 상기 이웃 노드들 중 상기 버퍼 맵 격차가 상기 미리 정의된 값 미만인 이웃 노드에 대해 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계를 포함할 수 있다. The method of transmitting and receiving the one or more selected chunks to each of the neighbor nodes based on the buffer map gap of each of the neighbor nodes may include: a neighbor of which the buffer map gap is greater than or equal to a predefined value. Determining a pull method for a node as a transmission / reception method of the one or more selected chunks and a push method for the neighbor node whose buffer map gap among the neighbor nodes is less than the predefined value. And determining as.

본 발명의 다른 일측에 따르면, 이웃 노드들과 파일을 공유하는 P2P 네트워크 내의 노드에 있어서, 상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 버퍼 맵 격차 계산부, 상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 송수신 방식 결정부 및 상기 선택된 하나 이상의 청크들을 상기 결정된 송수신 방식에 따라 송수신하는 송수신부를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 버퍼 맵 격차는 상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보 간의 격차를 의미하고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 네트워크 노드가 제공된다.According to another aspect of the present invention, in a node in a P2P network sharing a file with neighboring nodes, a buffer map gap calculation for calculating a buffer map gap based on buffer map information of the neighbor nodes and buffer map information of the node. A transmission / reception scheme determining unit configured to determine a transmission / reception scheme of one or more selected chunks of the one or more chunks based on the buffer map gap, and a transmission / reception unit configured to transmit / receive the selected one or more chunks according to the determined transmission / reception scheme. Buffer map information includes information on whether the neighbor node owns each of the one or more chunks, and the buffer map gap means a gap between buffer map information of the neighbor nodes and buffer map information of the node, The transmission and reception method is a push method or a pull method, the network node is first It is.

상기 버퍼 맵 격차 계산부는 상기 이웃 노드들 전체의 버퍼 맵들 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 전체에 대한 상기 버퍼 맵 격차를 계산할 수 있고, 상기 송수신 방식 결정부는 상기 버퍼 맵 격차가 제1 미리 정의된 값 이상일 경우 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하고, 상기 버퍼 맵 격차가 상기 제1 미리 정의된 값 미만일 경우 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있다.The buffer map gap calculator may calculate the buffer map gap for all of the neighbor nodes based on the buffer maps of all of the neighbor nodes and the buffer map of the node, and the transmission / reception scheme determining unit may set the buffer map gap to be the first. If the value is equal to or greater than one predefined value, the pull method may be determined as a transmission / reception method of the one or more selected chunks, and if the buffer map gap is less than the first predefined value, the push method may be determined as a transmission / reception method of the one or more selected chunks. have.

상기 네트워크 노드는 상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 희귀도 계산부를 더 포함할 수 있고, 상기 송수신 방식 결정부는 상기 하나 이상의 청크들 중 상기 희귀도가 제2 미리 정의된 값 이상이고, 상기 노드가 소유한 청크를 풀 방식으로 전송할 상기 선택된 청크로 결정할 수 있고, 상기 청크의 희귀도는 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 네트워크 내에 퍼진 정도를 나타낼 수 있다.The network node may further include a rareness calculator configured to calculate a rareness of each of the one or more chunks included in the file based on buffer map information of the neighbor nodes, and the transmission / reception scheme determining unit may include the one or more chunks. Wherein the rareness is greater than or equal to a second predefined value, and the chunk owned by the node can be determined as the selected chunk to send in a pull manner, wherein the rareness of the chunk is determined by the one or more nodes between the node and the neighboring nodes. Each of the chunks may represent the extent to which it spreads within the network.

상기 버퍼 맵 격차 계산부는 상기 이웃 노드들 각각의 버퍼 맵 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 각각에 대한 상기 버퍼 맵 격차를 계산할 수 있고, 상기 송수신 방식 결정부는 상기 이웃 노드들 각각의 상기 버퍼 맵 격차에 기반하여 상기 이웃 노드들 각각으로의 상기 하나 이상의 선택된 청크들의 송수신 방식을 결정할 수 있다.The buffer map gap calculator may calculate the buffer map gap for each of the neighbor nodes based on the buffer map of each of the neighbor nodes and the buffer map of the node, and the transmission / reception scheme determining unit may calculate the gap between the neighbor nodes. The transmission and reception method of the one or more selected chunks to each of the neighbor nodes may be determined based on the buffer map gap.

상기 송수신 방식 결정부는 상기 이웃 노드들 중 상기 버퍼 맵 격차가 제1 미리 정의된 값 이상인 이웃 노드에 대해 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있고, 상기 이웃 노드들 중 상기 버퍼 맵 격차가 상기 제1 미리 정의된 값 미만인 이웃 노드에 대해 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있다.The transmission / reception scheme determination unit may determine a pull scheme as a transmission / reception scheme of the one or more selected chunks among the neighbor nodes having the buffer map gap of the neighbor nodes greater than or equal to a first predefined value, and the buffer map among the neighbor nodes. A push method may be determined as a transmission / reception scheme of the one or more selected chunks for a neighbor node whose gap is less than the first predefined value.

P2P 비디오 스트리밍의 한 방식인 푸쉬 및 풀을 혼합하여 사용하는 선택적인 푸쉬-풀 장치 및 방법이 제공된다.An alternative push-pull device and method are provided that use a mix of push and pull, which is a method of P2P video streaming.

청크 분포도에 기초하여 푸쉬 및 풀을 선택적으로 사용하는 스트리밍 장치 및 방법이 제공된다.Streaming devices and methods are provided that selectively use push and pull based on the chunk distribution.

도 1은 본 발명의 일 실시예에 따른 청크-별 푸쉬-풀 방식을 설명한다.
도 2는 본 발명의 일 실시예에 따른 제1 피어-별 푸쉬-풀 방식을 설명한다.
도 3은 본 발명의 일 실시예에 따른 제2 피어-별 푸쉬-풀 방식을 설명한다.
도 4는 본 발명의 일 실시예에 따른 P2P 네트워크 내의 노드가 청크-별 푸쉬-풀 방식을 사용하여 파일을 공유하는 방법의 흐름도이다.
도 5는 발명의 일 실시예에 따른 청크-별 푸쉬-풀 방식을 사용하는 노드의 구조도이다.
도 6은 본 발명의 일 실시예에 따른 P2P 네트워크 내의 노드가 청크-별 푸쉬-풀 방식을 사용하여 파일을 공유하는 방법의 흐름도이다.
도 7는 발명의 일 실시예에 따른 청크-별 푸쉬-풀 방식을 사용하는 노드의 구조도이다.
도 8은 본 발명의 일 예에 따른 실효 다운로드 비율(effective download ratio) 및 총 다운로드 비율(total download ratio)를 나타낸다.
도 9는 본 발명의 일 예에 따른 미스 비율(miss ratio)을 나타낸다.
도 10은 본 발명의 일 예에 따른 발산 비율(diffusion rate) 및 발산 지연(diffusion delay)을 나타낸다.
도 11은 본 발명의 일 예에 따른 오버헤드 비율(overhead ratio)를 나타낸다.
도 12는 본 발명의 일 예에 따른 푸쉬 프렉션(push fraction)을 설명한다.
1 illustrates a per-chunk push-pull scheme according to an embodiment of the present invention.
2 illustrates a first peer-to-peer push-pull scheme according to an embodiment of the present invention.
3 illustrates a second peer-to-peer push-pull scheme according to an embodiment of the present invention.
4 is a flowchart of a method in which a node in a P2P network shares a file using a per-chunk push-pull scheme according to an embodiment of the present invention.
5 is a structural diagram of a node using a chunk-by-chunk push-pull method according to an embodiment of the present invention.
6 is a flowchart of a method in which a node in a P2P network shares a file using a per-chunk push-pull scheme according to an embodiment of the present invention.
7 is a structural diagram of a node using a chunk-by-chunk push-pull method according to an embodiment of the present invention.
8 illustrates an effective download ratio and a total download ratio according to an embodiment of the present invention.
9 shows a miss ratio according to an embodiment of the present invention.
FIG. 10 illustrates a diffusion rate and a diffusion delay according to an embodiment of the present invention. FIG.
11 illustrates an overhead ratio according to an embodiment of the present invention.
12 illustrates a push fraction according to an example of the present invention.

일반적으로, 스크리밍에 의해 동영상을 제공하는 단말은, 단말이 사용하는 전송망이 사설 IP 망인가 아니면 공용 인터넷인가에 따라 IPTV 및 인터넷 TV로 구분된다. 그러나, 멀티미디어 스트리밍 기술의 관점에서는 이러한 구분이 큰 의미를 갖지 않을 수 있다. 따라서, 후술될 본 발명의 실시예들에서는, 명시적 구분이 필요한 경우 외에는 IPTV, 인터넷 TV 및 P2P TV를 동일한 의미로서 사용한다.In general, a terminal providing a video by screening is classified into IPTV and Internet TV according to whether a transmission network used by the terminal is a private IP network or a public Internet. However, in terms of multimedia streaming technology, this distinction may not have much meaning. Accordingly, in the embodiments of the present invention to be described below, IPTV, Internet TV, and P2P TV are used as the same meaning except when explicit division is required.

또한, 후술될 본 발명의 실시예들에서, 피어, 노드 및 단말은 네트워크 내에서 송수신 작업을 수행할 수 있는 개체(entity)들을 의미하며, 서로 동일한 의미를 갖는다.
In addition, in the embodiments of the present invention to be described later, the peer, node and terminal means entities that can perform the transmission and reception in the network, and have the same meaning.

이하에서, 본 발명의 일 실시예를, 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 본 발명이 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings. However, the present invention is not limited to or limited by the embodiments. Like reference symbols in the drawings denote like elements.

P2P TV에서 사용되는 대표적인 청크 전송 방식으로서, 푸쉬(push) 및 풀(pull)이 있다.Representative chunk transmission schemes used in P2P TVs include push and pull.

1) 푸쉬 방식에서는, 기본적으로 송신자가 청크 선택의 주체이다. 즉, 송신자에 의해 선택된 청크가 수신자에게로 일방적으로 전송된다. 따라서, 수신자의 요청에 따른 불필요한 지연이 발생되지 않는다. 그러나, 2 개의(또는 2 개 이상의) 피어(송신자)들이 동시에 동일한 청크를 한 피어(수신자)에게 전송할 가능성이 있다. 이러한 중복 전송에 의한 충돌은 자원을 낭비한다.1) In the push method, the sender is basically the subject of the chunk selection. In other words, the chunk selected by the sender is unilaterally sent to the receiver. Therefore, no unnecessary delay occurs according to the request of the receiver. However, there is a possibility that two (or more than one) peers (senders) simultaneously send the same chunk to one peer (receiver). This collision due to duplicate transmission wastes resources.

2) 풀 방식에서는, 수신자가 청크 선택의 주체이다. 수신자는 송신자에게 어떤 청크가 필요한지를 알리고, 필요한 청크를 전달받는다. 따라서, 풀 방식은 푸쉬 방식에서 발생하는 충돌 문제는 완전히 제거하지만, 청크 요청에 따른 오버헤드로 인해 시간적인 낭비를 발생시킨다.2) In pull mode, the receiver is the subject of the chunk selection. The receiver informs the sender what chunks are needed and receives the required chunks. Therefore, the pull method completely eliminates the collision problem caused by the push method, but generates time waste due to the overhead of the chunk request.

후술될 본 발명의 실시예에 따른 선택적인 푸쉬-풀 방식은 푸쉬(즉, 트리-푸쉬) 방식 및 풀(즉, 메쉬-풀) 방식의 장점들을 취합하는 새로운 방식의 라이브 스트리밍 프로토콜이다.An optional push-pull scheme according to an embodiment of the present invention described below is a new live streaming protocol that combines the advantages of the push (i.e. tree-push) scheme and the pull (i.e. mesh-pull) scheme.

즉, 선택적인 푸쉬-풀 방식은, 메쉬를 기반으로 푸쉬 및 풀을 시기 적절하게 선택하여 사용할 수 있다. 후술될 본 발명의 실시예에서는 두 방식 중 하나를 선택하는 기준으로서 청크 분포도를 사용하는 방식이 제안된다.That is, the selective push-pull method may select and use the push and pull in a timely manner based on the mesh. In an embodiment of the present invention to be described below, a method of using a chunk distribution diagram as a criterion for selecting one of two methods is proposed.

본 발명과 마찬가지로, 푸쉬 및 풀을 동시에 사용하는 대표적인 방식으로서, 그리드미디어(GridMedia)가 있다.Similar to the present invention, GridMedia is a representative method of simultaneously using push and pull.

그리드미디어 시스템에서, 피어는 초기에는 풀 방식으로 동작하지만, 이후에는 이웃에게 서브 스트림들을 요청함으로써 이웃으로부터 푸쉬 방식으로 데이터가 전달되도록 한다.In a GridMedia system, a peer initially operates in a pull manner, but then requests substreams from a neighbor to allow data to be delivered from the neighbor in a push manner.

이러한 방식에 의해, 그리드미디어는 풀 방식에서 수반되는 컨트롤 메시지 오버 헤드를 감소시키며, 풀 방식을 푸쉬 방식으로의 전환을 위한 과정 중에 사용하는 것 외에도 손실된 청크를 위한 백업용으로도 사용함으로써 시스템의 성능을 향상시킨다.In this way, GridMedia reduces the control message overhead involved in the pull method, and in addition to using the pull method in the process of switching to the push method, the system performance is also used as a backup for lost chunks. To improve.

하지만, 그리드미디어에서는 푸쉬 방식을 통한 전송은 일정한 풀에 의한 전송 과정에 의해 선행되어야 한다. 따라서, 그리드미디어는 청크의 분포도를 기준으로 푸쉬 및 풀을 선택하는 본 발명의 실시예들과 상이하다.However, in grid media, the transmission through the push method must be preceded by the transmission process by a certain pool. Thus, grid media is different from the embodiments of the present invention that select push and pull based on the distribution of the chunks.

또한, 그리드미디어는 메쉬 방식의 단점인, 컨트롤 메시지 오버헤드를 감소시키는 것에 초점을 맞춘 반면, 본 발명의 실시예들은 컨트롤 메시지 오버헤드의 감축뿐만 아니라 충돌 문제를 해결하는 것에도 초점을 맞춘다.In addition, while GridMedia focuses on reducing control message overhead, which is a drawback of the mesh approach, embodiments of the present invention focus not only on reducing control message overhead but also on solving conflict problems.

후술된 본 발명의 실시예에서 제안되는 선택적인 푸쉬-풀(selective push-pull) 방식은 측정된 청크 분포도를 기반으로 푸쉬 및 풀을 상황에 따라 적절하게 선택한다.The selective push-pull scheme proposed in the embodiments of the present invention described below appropriately selects pushes and pulls according to the situation based on the measured chunk distribution.

푸쉬 방식 및 풀 방식을 선택하는 기준인 청크 분포도를 측정하기 위하여 청크 별 희귀도(rarity) 및 버퍼 맵 격차(disparity)가 정의된다.In order to measure the chunk distribution which is a criterion for selecting the push method and the pull method, the rarity and buffer map disparity for each chunk are defined.

1) 청크의 희귀도는 네트워크 내의 피어들(즉, 특정 피어 및 상기 특정 피어 및 이웃 피어들) 간에 상기 청크가 네트워크 내에 퍼진 정도를 나타낸다. 청크의 희귀도 값이 낮을수록 청크가 더 널리 퍼져있음을 의미한다.1) The rareness of a chunk indicates the extent to which the chunk spreads within the network between peers in the network (ie, a particular peer and the particular peer and neighbor peers). The lower the rareness value of the chunk, the more widely it is.

여기서, 피어의 이웃이란 상기 피어와 P2P 네트워크를 통해 청크들을 공유할 수 있는 피어들을 의미한다.Here, the peer's neighbors refer to peers that can share chunks with the peer through a P2P network.

청크의 희귀도를 계산하기 위한 기본적인 방법으로서, 청크의 희귀도는 측정된 청크의 복제율의 역수일 수 있다.As a basic method for calculating the rarity of the chunk, the rarity of the chunk can be the inverse of the replication rate of the chunk measured.

청크의 복제율은 상기 청크의 이웃 내에서의 등장 횟수가 얼마나 되는지를 카운트함으로써 측정될 수 있다. 청크의 이웃 내에서의 등장 횟수는 상기 이웃들이 주기적으로(또는, 요청에 따라) 피어에게 알리는 버퍼 맵 정보를 통해서 계산될 수 있다.The replication rate of a chunk can be measured by counting how many times it appears in the neighborhood of the chunk. The number of occurrences of a chunk in a neighborhood may be calculated through buffer map information that the neighbors periodically notify (or, upon request) the peer.

버퍼 맵 정보는 파일이 포함하는 하나 이상의 청크들 각각에 대한 정보이다. 버퍼 맵 정보는 피어가 파일이 포함하는 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함한다.The buffer map information is information about each of one or more chunks included in the file. The buffer map information includes information about whether the peer owns each of the one or more chunks the file contains.

따라서, 청크들의 희귀도는 청크가 소유한 이웃들의 버퍼 맵들을 기반으로 청크들 각각의 복제율(즉, 청크의 을 측정하고, 측정된 복제율의 역수를 취함으로써 계산될 수 있다. 즉, 청크들의 희귀도는 희귀도를 계산하는 피어 및 상기 피어의 이웃 피어들 내에서의 하나 이상의 청크들 각각의 등장 횟수의 역수일 수 있다.Thus, the rareness of the chunks can be calculated by measuring the replication rate of each of the chunks (ie, measuring the chunks and taking the inverse of the measured replication rates) based on the buffer maps of the neighbors owned by the chunks. The figure may be an inverse of the number of appearances of each of the one or more chunks in the peer and the peers' neighboring peers that compute the rareness.

2) 버퍼 맵 격차는 피어들의 버퍼 맵들 간의 격차를 의미한다. 버퍼 맵 격차의 값이 클수록 버퍼 맵들 간의 중복이 적음을 의미한다.2) Buffer Map Gap means a gap between buffer maps of peers. The larger the value of the buffer map gap, the less redundancy between the buffer maps.

버퍼 맵 격차는 P2P 스트리밍 성능에 영향을 미치는 중요한 지표 중 하나이다. 버퍼 맵 격차는 피어의 재생 지속성, 시작 지연 시간과 밀접한 연관성을 갖는다.The buffer map gap is one of the important indicators affecting P2P streaming performance. The buffer map gap is closely related to the playback persistence and start delay of the peer.

버퍼 맵 격차는 P2P 라이브 스트리밍의 성능을 예측하는데 있어서, 중요한 요인 중 하나로 사용될 수 있다. 예컨대, 인기도가 낮은 채널의 스트리밍 성능이 낮은 이유로서, 대역폭 피어의 개수 및 피어 당 할당된 서버 자원의 양과 함께, 버퍼 맵 격차가 지목된다.The buffer map gap can be used as one of the important factors in predicting the performance of P2P live streaming. For example, as a reason for the low streaming performance of less popular channels, a buffer map gap is indicated, along with the number of bandwidth peers and the amount of server resources allocated per peer.

버퍼 맵 격차의 값이 큰 것은 버퍼 맵들 간의 중복이 적음을 의미한다. 따라서, 버퍼 맵 격차의 값이 클 경우, 푸쉬 방식으로 청크가 전송되더라도, 상기 청크가 중복으로 전송될 확률이 낮다. 또한, 버퍼 맵 격차의 값이 클 경우, 풀을 이용한 전달보다는 푸쉬를 이용한 전달이 성능의 측면에서 더 유리할 수 있다.A large value of the buffer map gap means that there is little overlap between the buffer maps. Therefore, when the value of the buffer map gap is large, even if chunks are transmitted in a push manner, the probability that the chunks are repeatedly transmitted is low. In addition, when the value of the buffer map gap is large, the delivery using a push may be more advantageous in terms of performance than the delivery using a pool.

따라서, 버퍼 맵 격차 푸쉬 방식 및 풀 방식을 선택하는 지표로서 사용될 수 있다.Therefore, it can be used as an indicator for selecting the buffer map gap push method and the pull method.

예컨대, 버퍼 맵 격차는 하기의 수학식 1에 따라 계산될 수 있다.For example, the buffer map gap may be calculated according to Equation 1 below.

Figure 112010081534613-pat00001
Figure 112010081534613-pat00001

여기서, i 및 j는 서로 이웃인 피어들을 나타낸다. m은 피어 i의 이웃의 수를 나타낸다. UCi(j)는 피어 j가 피어 i의 이웃들 중 유일하게 소유한 청크의 수를 나타낸다.
Where i and j represent peers neighboring each other. m represents the number of neighbors of peer i. UC i (j) represents the number of chunks owned by peer j uniquely among peer i's neighbors.

전술된 것처럼, 선택적인 푸쉬-풀 방식은 측정된 청크 분포도를 기반으로 푸쉬 및 풀을 선택한다.As described above, the optional push-pull scheme selects pushes and pulls based on the measured chunk distribution.

푸쉬 방식은 청크들의 청크 희귀도가 높거나, 피어 간의 버퍼 맵 격차가 높기 때문에 중복 전송에 의한 충돌이 적게 발생할 경우에 유리하다.The push method is advantageous when there are few collisions due to redundant transmission because the chunk rareness of the chunks or the buffer map gap between peers is high.

풀 방식은 청크들의 청크 희귀도가 낮거나(즉, 네트워크 내에 널리 퍼진 청크를 분배할 때나), 퍼어 간의 버퍼 맵 격차가 낮기 때문에 푸쉬 방법이 사용되면 충돌이 많이 발생할 경우에 유리하다. 이는, 네트워크 내에 널리 퍼진 청크는 풀을 이용함으로써 용이하게 획득될 수 있기 때문이며, 만약 분포도가 높은(즉, 희귀도가 낮은) 청크를 전달하기 위해 푸쉬가 사용되면, 충돌의 횟수가 증가하기 때문에 업로드 대역폭이 낭비될 수 있기 -문이다.The pull method is advantageous when there are many collisions when the push method is used because the chunk rarity of the chunks is low (i.e., when distributing chunks prevalent in the network), or because the buffer map gap between the pores is low. This is because chunks that are prevalent in the network can be easily obtained by using pools, and if pushes are used to deliver highly distributed (i.e., less rare) chunks, the number of collisions will increase. Bandwidth can be wasted.

선택적인 푸쉬-풀 방석은 1) 전술된 청크 희귀도에 기반하여 청크 별로 청크의 전송 방식을 결정하는 청크-별(wise) 푸쉬-풀 방식 및 2) 전술된 버퍼 맵 격차에 기반하여 피어 별로 청크의 전송 방식을 결정하는 피어-별 푸쉬-풀 방식으로 나뉜다.Selective push-pull cushions include 1) a chunked push-pull scheme that determines how chunks are sent per chunk based on the chunked rarity described above and 2) a chunk per peer based on the buffer map gap described above. It is divided into a peer-specific push-pull method for determining a transmission method of.

피어-별 푸쉬-풀 방식은 푸쉬에 의해 발생하는 충돌 문제를 완화시키면서, 푸쉬를 시기 적절하게 사용한다.Peer-specific push-pull schemes use pushes in a timely manner, alleviating the collision problem caused by the pushes.

피어-별 푸쉬-풀 방식은 이웃 피어들 전체에 대한 버퍼 맵 격차를 측정하는 제1 피어-별 푸쉬-풀 방식 및 개별 이웃에 대한 버퍼 맵 격차를 측정하는 제2 피어-별 푸쉬-풀 방식이 있다.The per-peer push-pull scheme includes a first per-peer push-pull scheme for measuring buffer map gaps for all neighboring peers and a second per-peer push-pull method for measuring buffer map gaps for individual neighbors. have.

제1 피어-별 푸쉬-풀 방식에 따르면, 피어는 이웃 피어들 전체에 대한 전달 방식(푸쉬 또는 풀)을 결정한다.According to the first peer-specific push-pull scheme, the peer determines the delivery scheme (push or pull) for all of its neighbor peers.

제2 피어-별 푸쉬-풀 방식에 따르면, 피어는 각 이웃 별로 전달 방식(푸쉬 또는 풀)을 결정한다.
According to the second peer-specific push-pull scheme, the peer determines the delivery scheme (push or pull) for each neighbor.

도 1은 본 발명의 일 실시예에 따른 청크-별 푸쉬-풀 방식을 설명한다.1 illustrates a per-chunk push-pull scheme according to an embodiment of the present invention.

피어 A(110), 피어 B(130) 및 피어 C(150)는 네트워크 내의 노드이다.Peer A 110, Peer B 130, and Peer C 150 are nodes in the network.

피어들(110, 130 및 150)은 각각 하나 이상의 파일을 갖는다. 피어들(110, 130 및 150)은 P2P 네트워크를 통해 자신이 갖는 파일들을 서로 간에 공유한다.Peers 110, 130, and 150 each have one or more files. Peers 110, 130, and 150 share their files with each other over a P2P network.

파일은 하나 이상의 청크를 포함한다.The file contains one or more chunks.

공유를 통해, 피어(110, 130 또는 150)가 갖는 파일은 완전한 파일 또는 불완전한 파일일 수 있다. 완전한 파일은 파일의 전부가 피어(110, 130 또는 150)로 다운로드된 파일이다. 불완전한 파일은 파일의 일부만이 피어(110, 130 또는 150)로 다운로드된 파일이다.Through sharing, the file possessed by peers 110, 130, or 150 may be a complete file or an incomplete file. A complete file is a file where all of the file has been downloaded to peer 110, 130 or 150. An incomplete file is a file where only a portion of the file has been downloaded to peer 110, 130, or 150.

불완전한 파일에 대응하는 완전한 파일을, 원본(original) 파일로 명명한다.Name the complete file corresponding to the incomplete file as the original file.

도 1에서 피어 A(110), 피어 B(140) 및 피어 C(170)는 각각 P2P 네트워크에 의해 공유되는 파일의 버퍼 맵(120, 150 또는 180)을 갖는다.In FIG. 1, peer A 110, peer B 140 and peer C 170 each have a buffer map 120, 150 or 180 of a file shared by the P2P network.

이 파일은 모두 동일한 콘텐츠(또는, 애플리케이션(application), 문서(document) 등)을 나타낸다. 따라서, 파일이 완전히 다운로드 되었을 때, 피어들(110, 140 및 170)은 모두 동일한 파일을 갖는다.These files all represent the same content (or application, document, etc.). Thus, when the file has been completely downloaded, the peers 110, 140, and 170 all have the same file.

파일은 하나 이상의 청크로 구성된다. 도 1에서, 파일은 10 개의 청크로 구성된다.The file consists of one or more chunks. In Fig. 1, the file consists of 10 chunks.

피어 A(110)의 버퍼 맵(120)은 10개의 청크들 및 청크들 각각의 상태를 나타낸다. 이 중 가장 좌측 블록(130)(즉, 파일 가장 앞 부분에 대응하는 블록)은 제1 청크를 나타내고, 가장 우측의 블록(139)은 제10 청크를 나타낸다.Buffer map 120 of peer A 110 represents the ten chunks and the state of each of the chunks. The leftmost block 130 (that is, the block corresponding to the frontmost part of the file) represents the first chunk, and the rightmost block 139 represents the tenth chunk.

피어 B(140)의 버퍼 맵(150) 및 피어 C(170)의 버퍼 맵(180)도 각각 제1 내지 제10 청크들 및 청크들 각각의 상태를 나타낸다. 세 버퍼 맵들(120, 150 및 180)의 블록들은 순서에 따라 서로 대응한다. 예컨대, 피어 A(110)의 버퍼(120) 내의 첫 번째 블록(130), 피어 B(140)의 버퍼(150) 내의 첫 번째 블록(160) 및 피어 C(170)의 버퍼(180) 내의 첫 번째 블록(190)은 모두 제1 청크를 나타낸다.The buffer map 150 of peer B 140 and the buffer map 180 of peer C 170 also represent states of the first through tenth chunks and the chunks, respectively. The blocks of the three buffer maps 120, 150, and 180 correspond to each other in order. For example, the first block 130 in buffer 120 of peer A 110, the first block 160 in buffer 150 of peer B 140 and the first in buffer 180 of peer C 170. The first block 190 all represents the first chunk.

청크는 다운로드된 청크 및 다운로드되지 않은 청크로 구분된다.Chunks are divided into downloaded and undownloaded chunks.

다운로드된 청크는, 피어로 완전히 다운로드되어, 완전한 원본 파일의 청크와 동일한 내용을 갖는 청크를 나타낸다. 후술될 고희귀 청크(rarer chunk) 및 희귀 청크(rare chunk)는 다운로드된 청크 중 특별한 조건을 만족시키는 청크이다. 하기에서, 다운로드된 청크는, "피어가 소유한 청크"로 명명한다.The downloaded chunk represents a chunk that has been completely downloaded to the peer and has the same contents as the chunk of the complete original file. Rare chunks and rare chunks to be described later are chunks that satisfy special conditions among downloaded chunks. In the following, the downloaded chunk is named "Cheer owned Chunk".

미싱 청크는 1) 피어가 소유하지 않은 청크(또는, 피어에게 전혀 다운로드되지 않았기 때문에 초기값을 그대로 유지하는 청크) 및 2) 피어에게 일부분만이 다운로드된 청크를 나타낸다. 하기에서, 미싱 청크는 "피어가 소유하지 않은 청크"로 명명한다.Missing chunks represent chunks that are not owned by a peer (or chunks that retain their initial values because they were not downloaded to the peer at all) and 2) chunks that are only partially downloaded to the peer. In the following, the missing chunk is named "Chunk not owned by peer".

피어 A(110)에게 있어서, 제1 청크, 제5 청크, 제8 청크 및 제10 청크는 다운로드된 청크이고, 제4 청크는 다운로드된 청크 중 고희귀 청크이다. 피어 A(110)에게 있어서, 제2 청크, 제3 청크, 제6 청크, 제7 청크 및 제9 청크는 다운로드되지 않은 청크이다.For peer A 110, the first chunk, the fifth chunk, the eighth chunk and the tenth chunk are downloaded chunks, and the fourth chunk is the rare chunk of the downloaded chunks. For peer A 110, the second chunk, the third chunk, the sixth chunk, the seventh chunk, and the ninth chunk are chunks that have not been downloaded.

피어 A(110)는 자신의 버퍼 맵(120) 및 다른 이웃 피어들(140 및 170)의 버퍼 맵(150 및 180)을 갖는다.Peer A 110 has its own buffer map 120 and buffer maps 150 and 180 of other neighboring peers 140 and 170.

각 청크의 희귀도가 피어 A(110)의 버퍼 맵(120) 내의 대응하는 블록의 상단에 표시되었다.The rareness of each chunk is indicated at the top of the corresponding block in buffer map 120 of peer A 110.

청크들 각각의 희귀도는 피어들(110, 140 및 170)의 버퍼 맵(120, 150 및 180)에 기반하여 계산될 수 있다.The rareness of each of the chunks may be calculated based on the buffer maps 120, 150, and 180 of the peers 110, 140, and 170.

예컨대, 피어 A(110)에게 있어서, 제1 블록(130)에 의해 표시된 것처럼 제1 청크는 이미 다운로드된 청크이다. 또한, 제1 청크는 피어 B(140) 및 피어 C(170)도 이미 제1 청크를 소유한다. 따라서, 제1 청크의 등장 횟수는 3이고, 제1 청크의 희귀도는 등장 횟수의 역수인 1/3(즉, 약 0.33)이다. For example, for peer A 110, as indicated by the first block 130, the first chunk is an already downloaded chunk. In addition, the first chunk also has peer B 140 and peer C 170 already owning the first chunk. Thus, the number of occurrences of the first chunk is three, and the rareness of the first chunk is 1/3, that is, the inverse of the number of appearances (that is, about 0.33).

또한, 피어들(110, 140 및 170)의 제2 블록들(131, 161 및 191)에서 나타난 것처럼, 피어 A(110)는 제2 청크를 소유하고 있지 않지만, 피어 B(140) 및 피어 C(170)는 제2 청크를 소유한다. 따라서, 제2 청크의 희귀도는 1/2이다.Also, as shown in the second blocks 131, 161, and 191 of peers 110, 140, and 170, peer A 110 does not own the second chunk, but peer B 140 and peer C do. 170 owns the second chunk. Therefore, the rarity of the second chunk is 1/2.

청크의 희귀도는 0 이상, 1 이하의 수일 수 있다. 네트워크 내의 어떤 피어도 소유하지 않은 청크의 희귀도는 0일 수 있다. 네트워크 내의 특정한 청크가 단독으로 소유한 청크의 희귀도는 1일 수 있다.The rareness of the chunk may be a number greater than or equal to zero and less than or equal to one. The rarity of a chunk not owned by any peer in the network may be zero. The rareness of a chunk that is uniquely owned by a particular chunk in the network may be one.

전술된 것처럼, 청크의 희귀도는 청크의 분포도를 나타내며, 청크 전달 방식(푸쉬 또는 풀)을 결정하는 기준이 될 수 있다.As mentioned above, the rarity of the chunks indicates the distribution of the chunks and can be a criterion for determining the chunk delivery scheme (push or pull).

희귀도가 높은 청크는 푸쉬에 의해 전달될 대상이 될 수 있다.Chunks of high rarity can be targeted by push.

희귀도가 높은 청크(또는, 분포도가 낮은 청크)가 푸쉬 방식에 의해 전송될 경우, 상기 전송에 의해 충돌이 발생할 확률이 낮다. 또한, 푸쉬 방식의 전송을 통해 분포도가 낮은 청크의 분포도가 높혀지면, 이후 상기 청크를 획득하지 못한 피어들도 풀 방식을 통해 상기 청크를 용이하게 획득할 수 있다.When a rare rare chunk (or a less distributed chunk) is transmitted by the push method, there is a low probability of collision due to the transmission. In addition, when the distribution of chunks having low distribution is increased through the transmission of the push method, peers that have not obtained the chunks may easily obtain the chunks through the pull method.

희귀도가 낮은 청크가 푸쉬에 의해 전송되면 충돌에 의해 자원이 낭비될 확률이 높다. 따라서, 푸쉬로 전달되기 어려운, 희귀도가 낮은 청크들은 주로 풀 방식을 통해서 전달된다.If a rare rare chunk is sent by a push, there is a high probability of wasting resources by collision. Therefore, the rarer chunks that are difficult to deliver to the push are delivered primarily through the pull method.

청크의 희귀도에 기반하여, 고희귀 청크(rarer chunk) 및 희귀 청크(rare chunk)가 결정될 수 있다.Based on the rareness of the chunks, a rarer chunk and a rare chunk can be determined.

고희귀 청크는 희귀도가 절대적 또는 상대적으로 높은 청크일 수 있다. 고희귀 청크는 희귀도가 특정한 제1 미리 정해진(predetermined) 값 이상(또는, 초과)인 청크일 수 있다. 고희귀 청크는 특정 피어만이 소유한 청크(에컨대, 피어 A(120)가 소유한 제4 청크)일 수 있다.High rare chunks may be chunks with an absolute or relatively high degree of rareness. The high rare chunk may be a chunk having a rareness above (or above) a particular first predetermined value. The rare rare chunk may be a chunk owned only by a particular peer (eg, a fourth chunk owned by peer A 120).

희귀 청크는 희귀도가 절대적 또는 상대적으로 낮은 청크일 수 있다. 희귀 청크는 희귀도가 특정한 제2 미리 정해진(predetermined) 값 이하(또는, 미만)인 청크일 수 있다. 희귀 청크는 특정 피어만이 소유하지 못한 청크(예컨대, 피어 A(110) 만이 소유하지 못한 제2 청크)일 수 있다.Rare chunks may be chunks with absolute or relatively low rarity. The rare chunk may be a chunk whose rareness is below (or below) a particular second predetermined value. The rare chunk may be a chunk not owned only by a particular peer (eg, a second chunk not owned only by peer A 110).

희귀 청크는 재생 지점에 가까운 청크일 수 있다. 파일이 현재 특정 피어(110, 140 또는 180)에 의해 재생되고 있는 파일인 경우, 상기 파일의 재생 지점(즉, 상기 파일 중 재생되고 있는 부분)에 근접한 청크는 희귀 청크로 분류됨으로써 신속히 상기 특정 피어(110, 140 또는 180)로 전달될 필요가 있다.The rare chunk may be a chunk close to the regeneration point. If the file is currently being played by a particular peer 110, 140, or 180, the chunk close to the playback point of the file (that is, the portion of the file being played) is classified as a rare chunk and is quickly accessed by the particular peer. Need to be forwarded to (110, 140 or 180).

따라서, 희귀 청크는 전술된 것과 같이, 청크의 희귀도 및 파일의 재생 지점과의 근접성에 기반하여 결정될 수 있다.Thus, the rare chunk can be determined based on the rareness of the chunk and proximity to the playback point of the file, as described above.

피어 A(110)는 자신이 소유한 고희귀 청크(예컨대, 제4 청크)를 푸쉬 방식으로 이웃 피어(140 또는 170)에게 전달할 수 있다. 이러한, 푸쉬 방식의 전송으로 인해 청크가 중복으로 전송될 확률이 감소한다.Peer A 110 may deliver its own rare chunk (eg, fourth chunk) to neighbor peer 140 or 170 in a push manner. Due to the push-type transmission, the probability that the chunk is transmitted in duplicate is reduced.

피어 A(110)는 자신이 소유하지 않은(즉, 자신에게 다운로드되지 않은) 희귀 청크(예컨대, 제2 청크 또는 제7 청크)를 이웃 피어(140 또는 170)에게 요청할 수 있다. 요청을 받은 피어(140 또는 170)는 요청된 청크를 피어 A(110)에게 전달하고, 피어 A(110)는 자신이 요청한 청크를 획득한다.Peer A 110 may request a neighboring peer 140 or 170 for a rare chunk (eg, a second chunk or a seventh chunk) that it does not own (ie, has not been downloaded to it). The requested peer 140 or 170 forwards the requested chunk to peer A 110, and peer A 110 obtains the chunk requested by it.

피어 A(110)가 특정 청크를 이웃 피어(140 또는 170)에게 푸쉬로 전달하는 시점 및 이웃 피어(140 또는 170)가 상기 특정 청크를 피어 A(110)에게 요청하는 시점이 근접할 경우, 상기 특정 청크가 중복 전송되는 문제가 발생할 수 있다.When the time point at which peer A 110 delivers a particular chunk to the neighbor peer 140 or 170 as a push, and the time point at which neighbor peer 140 or 170 requests the specific chunk to peer A 110, the There may be a problem that certain chunks are duplicated.

이러한 문제의 해결을 위해, 피어 A(110)는 푸쉬 또는 풀로 전송된 청크가 어떤 다른 피어(140 또는 170)에게 전송되었는지에 대한 정보를 일정 기간 동안 유지함으로써 한 피어에게 개별 청크가 최대 일 회만 전달되게 할 수 있다.To solve this problem, peer A 110 keeps information on which other peer 140 or 170 the chunk sent to the push or pool has been sent for a period of time, so that individual chunks are delivered to a peer only up to once. It can be done.

이러한 정보는, 피어 A(110)가 지닌 이웃 피어(140 또는 170)의 버퍼 맵(150 또는 180) 내의 상기 특정 청크에 대응하는 비트를 셋(set)함으로써 유지될 수 있다.
This information may be maintained by setting a bit corresponding to the particular chunk in the buffer map 150 or 180 of the neighboring peer 140 or 170 with peer A 110.

도 2는 본 발명의 일 실시예에 따른 제1 피어-별 푸쉬-풀 방식을 설명한다.2 illustrates a first peer-to-peer push-pull scheme according to an embodiment of the present invention.

제1 피어-별 푸쉬-풀 방식은 버퍼 맵 격차에 기반하여 푸쉬 및 풀 중 하나를 특정 피어에 대한 전송 방식으로서 선택한다.The first per-peer push-pull scheme selects one of push and pool as the transmission scheme for a particular peer based on the buffer map gap.

피어가 버퍼 맵 격차를 푸쉬 및 풀을 선택하기 위한 최적의 지표로서 사용하기 위해서는, 상기 피어가 소유한 청크들을 대상으로 버퍼 맵 격차가 측정되어야 한다.In order for a peer to use the buffer map gap as an optimal indicator for selecting push and pool, the buffer map gap must be measured for chunks owned by the peer.

예컨대, 피어 A(210)의 버퍼 맵(220)에 따르면, 피어 A(210)는 제1 청크, 제3 청크, 제4 청크, 제6 청크, 제9 청크, 제10 청크, 제14 청크 및 제15 청크를 갖는다. 따라서, 전술된 청크들만이 버퍼 맵 격차를 측정하기 위한 청크들로서 사용된다.For example, according to the buffer map 220 of peer A 210, peer A 210 is a first chunk, a third chunk, a fourth chunk, a sixth chunk, a ninth chunk, a tenth chunk, a fourteenth chunk, and the like. Has a fifteenth chunk. Therefore, only the chunks described above are used as chunks for measuring the buffer map gap.

전술된 수학식 1은 버퍼 맵 격차를 계산하는 피어 자신이 소유하지 않은 청크도 버퍼 맵 계산에 포함시킨다. 따라서, 수학식 1 본 실시예에서의 버퍼 맵 계산에 부적합하다.Equation 1 described above also includes chunks not owned by the peer itself that calculates the buffer map gap, in the buffer map calculation. Therefore, the equation 1 is not suitable for the buffer map calculation in the present embodiment.

본 실시예에서 버퍼 맵 격차는 하기의 수학식 2에 따라 정의될 수 있다.In the present embodiment, the buffer map gap may be defined according to Equation 2 below.

Figure 112010081534613-pat00002
Figure 112010081534613-pat00002

여기서, i는 버퍼 맵 격차를 계산하는 피어를 나타내고, j는 i의 j번 째 이웃 피어들을 나타낸다. m은 피어 i의 이웃의 수를 나타낸다. DCi(j)는 피어 i가 소유한 청크들 중에서 피어 j가 소유하지 못한 청크의 개수를 나타낸다.Here, i represents a peer for calculating a buffer map gap, and j represents jth neighbor peers of i. m represents the number of neighbors of peer i. DC i (j) represents the number of chunks not owned by peer j among the chunks owned by peer i.

예컨대, 피어 A(210)(즉, i = 1)가 소유한 청크들 중, 피어 B(피어 B가 첫 번째 이웃이므로, j = 1)가 소유하지 못한 청크는 제 6 청크 제9 청크 및 제10 청크이다. 따라서, DC1(1)는 3이다.For example, among the chunks owned by peer A 210 (i.e. i = 1), chunks not owned by peer B (since = 1 since peer B is the first neighbor) are the sixth chunk ninth chunk and the first chunk. 10 chunks. Therefore, DC 1 (1) is three.

도 1에서, 피어 B 내지 피어 E 각각에 대해, DC1(2) 내지 DC1(5)가 도시되었다.In FIG. 1, for each of peers B to E, DC 1 (2) to DC 1 (5) are shown.

또한, 버퍼 맵 격차는 (3 + 5 + 4 + 5) / 4 = 4.125이다.In addition, the buffer map gap is (3 + 5 + 4 + 5) / 4 = 4.125.

피어 A(210)는 자신의 버퍼 맵(220) 및 이웃 피어들의 버퍼 맵들(230, 240, 250 및 260)의 정보에 기반하여(즉, 수학식 2를 사용하여) 이웃들 전체에 대한 버퍼 맵 격차를 측정하고, 계산된 버퍼 맵 격차(270)에 기반하여 이웃 피어들 전체에 대한 전달 방식(푸쉬 또는 풀)을 결정한다.Peer A 210 is based on the information in its buffer map 220 and the buffer maps 230, 240, 250, and 260 of neighboring peers (ie, using Equation 2). And determine a delivery method (push or pull) for all neighbor peers based on the calculated buffer map gap 270.

버퍼 맵 격차는 이웃들이 각각 소유한 청크들이 얼마다 서로 상이한가를 나타내기 때문에, 버퍼 맵 격차는 피어 A(210)가 이웃(즉, 이웃 피어 B 내지 이웃 피어 E)들 사이에서 푸쉬 또는 풀 중 어떤 방식을 사용하여 데이터 전달을 수행해야 효율적인지를 선택하기 위한 지표로서 사용될 수 있다.Because the buffer map gap indicates how many chunks each neighbor owns, the buffer map gap indicates that peer A 210 is not able to push or pull between neighbors (i.e., neighbor peers B to neighbor peer E). The method can be used as an indicator to choose whether or not to carry out data transfer should be efficient.

피어 A(210)는 측정된 버퍼 맵 격차의 값에 따라 푸쉬 방식 및 풀 방식 중 하나를 선택하고, 선택된 방식에 따라 동작한다. 예컨대, 버퍼 맵 격차의 값이 미리 정의된 값 이상일 경우, 피어 A(210)는 풀 방식으로 동작할 수 있다. 버퍼 맵 격차의 값이 미리 정의된 값에 미치지 못할 경우, 피어(210)는 푸쉬 방식으로 동작할 수 있다.Peer A 210 selects one of a push method and a pull method according to the measured buffer map gap, and operates according to the selected method. For example, if the value of the buffer map gap is greater than or equal to a predefined value, peer A 210 may operate in a pull manner. If the value of the buffer map gap does not reach a predefined value, the peer 210 may operate in a push manner.

상기의 미리 정의된 값은 버퍼 맵의 크기 및 이웃의 수에 기반하여 결정될 수 있다.The predefined value may be determined based on the size of the buffer map and the number of neighbors.

계산된 버퍼 맵 격차가 높다는 것은, 피어들이 소유한 청크들 간의 중복이 상대적으로 적다는 것을 의미한다. 이러한 경우, 푸쉬에 의해 이웃들에게 청크가 전달되어도 충돌 발생율이 낮다.A high calculated buffer map gap means that there is relatively little duplication between chunks owned by peers. In this case, the collision rate is low even though the chunk is delivered to the neighbors by the push.

반면, 계산된 버퍼 맵 격차가 낮다는 것은, 피어들이 소유한 청크들 중 상당 부분이 겹친다는 것을 의미한다. 이러한 경우, 충돌이 발생할 가능성이 높은 푸쉬 보다는 풀에 의해 청크가 전달되는 것이 효율적이다.On the other hand, a low calculated buffer map gap means that many of the chunks owned by the peers overlap. In this case, it is more efficient to pass the chunk by the pool rather than the push that is more likely to crash.

또한, 푸쉬에 의해 이웃들에게 청크가 전달될 경우, 피어 A(210)는 청크-별 푸쉬-풀에서 사용된 것과 같이, 희귀도가 높은 청크를 우선적으로 상기 청크를 소유하지 않은 이웃에게 전달할 수 있다.In addition, when a chunk is delivered to neighbors by push, peer A 210 may preferentially deliver a high rare chunk to a neighbor that does not own the chunk, as used in the per-chunk push-pull. .

피어 A(210)가 소유한 청크들의 희귀도가 도시되었다. 청크들 중 희귀도가 가장 높은 제9 청크 및 제10 청크가 푸쉬에 의해 우선적으로 전달될 청크로서 선택될 수 있다. 또한, 모든 이웃 피어가 이미 소유한 제14 청크는 전송에서 제외될 수 있다.A rareness of the chunks owned by peer A 210 is shown. The ninth and tenth chunks with the highest rareness among the chunks may be selected as the chunks to be preferentially delivered by the push. In addition, the fourteenth chunk already owned by all neighboring peers may be excluded from transmission.

전술된 버퍼 맵들(220, 230, 240, 250 및 260)은 각 피어들의 파일을 재생하기 위한 플레이백(playback) 버퍼일 수 있다.
The buffer maps 220, 230, 240, 250, and 260 described above may be a playback buffer for playing a file of each peer.

도 3은 본 발명의 일 실시예에 따른 제2 피어-별 푸쉬-풀 방식을 설명한다.3 illustrates a second peer-to-peer push-pull scheme according to an embodiment of the present invention.

피어 A(310)의 버퍼 맵(320)에 따르면, 피어 A(310)는 제2 청크, 제4 청크, 제6 청크, 제7 청크, 제8 청크, 제11 청크, 제14 청크 및 제16 청크를 갖는다.According to the buffer map 320 of peer A 310, peer A 310 is the second chunk, the fourth chunk, the sixth chunk, the seventh chunk, the eighth chunk, the eleventh chunk, the fourteenth chunk, and the sixteenth chunk. Has a chunk.

피어 A(310)는 이웃 피어들 각각에 대해 버퍼 맵 격차를 측정함으로서 이웃 피어들 각각에 대하여 푸쉬 방식 및 풀 방식 중 하나를 선택하고, 선택된 방식에 따라 동작한다.Peer A 310 selects one of a push method and a pull method for each of the neighboring peers by measuring a buffer map gap for each of the neighboring peers, and operates according to the selected method.

따라서, 본 실시예에서는, 전술된 수학식 2가 아닌 하기의 수학식 3에 따라 버퍼 맵 격차가 정의될 수 있다.Therefore, in the present embodiment, the buffer map gap may be defined according to Equation 3 below instead of Equation 2 described above.

Figure 112010081534613-pat00003
Figure 112010081534613-pat00003

여기서, i는 버퍼 맵 격차를 계산하는 피어를 나타내고, j는 i의 j번째 이웃 피어를 나타낸다. DCi(j)는 피어 i가 소유한 청크들 중에서 피어 j가 소유하지 못한 청크의 개수를 나타낸다.Here, i represents a peer for calculating a buffer map gap, and j represents a j-th neighbor peer of i. DC i (j) represents the number of chunks not owned by peer j among the chunks owned by peer i.

예컨대, 피어 A(310)(즉, i = 1)가 소유한 청크들 중, 피어 B(330)(피어 B(330)는 첫 번째 이웃이므로, j = 1)가 소유하지 못한 청크는 제 8 청크이다. 따라서, DC1(1)는 0.5이다. 피어 A(310)(즉, i = 1)가 소유한 청크들 중, 피어 C(350)(피어 C(350)는 두 번째 이웃이므로, j = 2)가 소유하지 못한 청크는 제2 청크, 제6 청크, 제8 청크, 제11 청크 및 제16 청크이다. 따라서, DC1(2)는 2.5이다.For example, among the chunks owned by peer A 310 (i.e. i = 1), chunks not owned by peer B 330 (since peer = 330 is the first neighbor, j = 1) are the eighth. It is chunk. Therefore, DC 1 (1) is 0.5. Of the chunks owned by peer A 310 (i.e. i = 1), the chunks not owned by peer C 350 (since j = 2) are the second chunk, Sixth chunk, eighth chunk, eleventh chunk, and sixteenth chunk. Therefore, DC 1 (2) is 2.5.

각 이웃(330 및 350) 별로 버퍼 맵 격차가 측정되었기 때문에, 피어 A(310)는 각 이웃(330 및 350)마다 푸쉬 및 풀 중 한가지 방식을 선택하여, 선택한 방식에 따라 이웃(330 또는 350)과 청크를 송수신한다.Since the buffer map gap is measured for each neighbor 330 and 350, peer A 310 selects one of push and pool for each neighbor 330 and 350, so that neighbor 330 or 350 depends on the selected method. Send and receive chunks.

피어 A(310)는 버퍼 맵 격차가 높은 이웃 피어 C(350)에게는 푸쉬 방식을 사용하여 청크를 전달할 수 있고, 버퍼 맵 격차가 낮은 이웃 피어 B(330)에게는 풀 요청 메시지를 전달할 수 있다.Peer A 310 may deliver a chunk to a neighbor peer C 350 having a high buffer map gap by using a push method, and may transmit a pull request message to a neighbor peer B 330 having a low buffer map gap.

푸쉬 및 풀 방식은 미리 지정된 값에 기반하여 선택될 수 있다. 즉, 피어 A(310)는 버퍼 맵 격차의 값이 특정한 미리 정해진 값 이상인 이웃 피어에게는 푸쉬 방식을 사용하여 청크를 전달할 수 있고, 버퍼 맵 격차가 상기의 미리 정해진 값보다 더 작은 이웃 피어에게는 풀 요청 메시지를 전달할 수 있다.The push and pull method may be selected based on a predetermined value. That is, peer A 310 may use a push method to deliver a chunk to neighboring peers whose buffer map gap is greater than or equal to a predetermined value, and pull requests to neighboring peers whose buffer map gap is smaller than the predetermined value. You can pass a message.

또한, 피어(310)는 기본적으로 모든 이웃 피어들(330 및 350)에 대해 풀을 전송 방식으로서 사용할 수 있다. 피어(310)는 특정 이웃 피어(330 또는 350)에 대해 버퍼 맵 격차를 측정하면서, 측정된 버퍼 맵 격차가 미리 정해진 값 이상이 될 경우, 상기의 이웃 피어와의 전송 방식을 푸쉬 방식으로 변환할 수 있다.In addition, the peer 310 can basically use the pool for all neighboring peers 330 and 350 as a transmission scheme. The peer 310 measures the buffer map gap with respect to a specific neighbor peer 330 or 350, and when the measured buffer map gap becomes more than a predetermined value, the peer 310 converts the transmission method with the neighbor peer into a push method. Can be.

또한, 파일이 피어 A(310)에서 재생되는 경우, 피어 A(310)는 재생 지점에 가깝지만 아직 획득되지 못한 청크들을 풀 방식이 선택된 이웃 피어들에게 요청할 수 있다.In addition, when a file is played at peer A 310, peer A 310 may request neighboring peers that have selected the pull method to close chunks that are close to the playback point but have not yet been obtained.

피어 A(310)는 푸쉬 방식이 선택된 이웃 피어들에게 우선적으로 전달할 청크를 전술된 청크의 희귀도에 기반하여 선택할 수 있다.Peer A 310 may select a chunk to be preferentially delivered to neighboring peers whose push method is selected based on the rarity of the chunk described above.

또한, 다른 피어들(330, 350) 또한 피어 A(310)와의 버퍼 맵 격차를 측정하여, 측정의 결과에 따라 청크의 전달 방식을 선택할 수 있다. 따라서, 이웃하는 두 피어들는 서로 상이한 방식을 사용하여 청크를 송수신할 수 있다.In addition, the other peers 330 and 350 may also measure the buffer map gap with peer A 310 to select the delivery method of the chunk according to the measurement result. Thus, two neighboring peers can send and receive chunks using different methods.

이웃하는 두 피어들 중 한 피어만 다수의 청크를 갖는 경우, 상기의 한 피어만 푸쉬를 사용하여 청크들을 다른 피어로 전달해줄 수 있다.If only one of the two neighboring peers has multiple chunks, only one of the peers can use the push to pass the chunks to the other peer.

전술된 버퍼 맵들(320, 340 및 360)은 각 피어들(310, 330 및 350)의 파일을 재생하기 위한 플레이백(playback) 버퍼일 수 있다.
The buffer maps 320, 340, and 360 described above may be a playback buffer for playing a file of each of the peers 310, 330, and 350.

도 4는 본 발명의 일 실시예에 따른 P2P 네트워크 내의 노드가 청크-별 푸쉬-풀 방식을 사용하여 파일을 공유하는 방법의 흐름도이다.4 is a flowchart of a method in which a node in a P2P network shares a file using a per-chunk push-pull scheme according to an embodiment of the present invention.

파일은 하나 이상의 청크들을 포함한다.The file contains one or more chunks.

파일은 노드에 의해 재생되고 있는 파일일 수 있다.The file may be a file being played by the node.

단계(S410)에서, 이웃 노드들로부터 상기 버퍼 맵 정보가 수신된다.In step S410, the buffer map information is received from neighbor nodes.

단계(S420)에서, 수신된 이웃 노드들의 버퍼 맵 정보에 기반하여 파일이 포함하는 하나 이상의 청크들 각각의 희귀도가 계산된다.In step S420, the rareness of each of the one or more chunks included in the file is calculated based on the received buffer map information of the neighbor nodes.

단계(S430)에서, 계산된 희귀도에 기반하여 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식이 결정된다.In step S430, a transmission and reception scheme of each of one or more selected chunks of one or more chunks is determined based on the calculated rareness.

송수신 방식은 전술된 푸쉬 방식 또는 풀 방식이다.The transmission and reception method is the above-described push method or pull method.

하나 이상의 청크들 중 희귀도가 제1 미리 정의된 값 이상이고, 노드가 소유한 청크는 고희귀 청크로서 선택될 수 있다. 또한, 하나 이상의 청크들 중 노드만이 소유한 청크는 고희귀 청크로서 선택될 수 있다.A rareness of the one or more chunks is greater than or equal to the first predefined value, and the chunk owned by the node may be selected as the high rare chunk. Also, a chunk owned only by a node of one or more chunks may be selected as the rare chunked.

하나 이상의 청크들 중 희귀도가 제1 미리 정의된 값 미만이고, 이웃 노드들 중 하나 이상의 노드가 소유하고, 노드가 소유하지 않은 청크는 희귀 청크로서 선택될 수 있다. 또한, 하나 이상의 청크들 중 노드만이 소유하지 않은 청크는 희귀 청크로서 선택될 수 있다. 또한, 파일의 재생 지점과의 거리 및 희귀도에 기반하여 하나 이상의 청크들 중 특정 청크가 희귀 청크로서 선택될 수 있다.Chunks of one or more chunks that are less than the first predefined value, owned by one or more of the neighbor nodes, and not owned by the node, may be selected as rare chunks. Also, a chunk not owned only by a node of one or more chunks may be selected as a rare chunk. In addition, a particular chunk of one or more chunks may be selected as a rare chunk based on the degree of rarity and the distance to the playback point of the file.

단계(S440)에서, 선택된 하나 이상의 청크들 각각이 결정된 송수신 방식에 따라 송수신된다.In step S440, each of the selected one or more chunks is transmitted and received according to the determined transmission and reception scheme.

고희귀 청크는 이웃 노드들 중 상기 고희귀 청크를 포함하지 않은 청크에게 전송될 수 있다.The high rare chunk may be transmitted to a chunk not including the high rare chunk among neighboring nodes.

이웃 노드들 중 희귀 청크를 포함한 노드에게 상기 희귀 청크의 전송을 요청될 수 있고, 상기 이웃 노드로부터 상기 희귀 청크가 수신될 수 있다.A node including a rare chunk of neighboring nodes may be requested to transmit the rare chunk, and the rare chunk may be received from the neighboring node.

앞서 도 1 내지 도 3을 참조하여 설명된 본 발명의 일 실시예에 따른 기술 적 내용들이 본 실시예에도 그대로 적용될 수 있다. 따라서 보다 상세한 설명은 이하 생략하기로 한다.
Technical content according to an embodiment of the present invention described above with reference to FIGS. 1 to 3 may be applied to the present embodiment as it is. Therefore, more detailed description will be omitted below.

도 5는 발명의 일 실시예에 따른 청크-별 푸쉬-풀 방식을 사용하는 노드의 구조도이다.5 is a structural diagram of a node using a chunk-by-chunk push-pull method according to an embodiment of the present invention.

노드(500)는 희귀도 계산부(510), 송수신 방식 결정부(520) 및 송수신부(530)를 포함한다.The node 500 includes a rareness calculator 510, a transmission / reception scheme determiner 520, and a transceiver 530.

희귀도 계산부(510)는 이웃 노드들의 버퍼 맵 정보에 기반하여 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산한다.The rareness calculator 510 calculates the rareness of each of the one or more chunks included in the file based on the buffer map information of the neighbor nodes.

송수신 방식 결정부(520)는 계산된 희귀도에 기반하여 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정한다.The transmission / reception scheme determination unit 520 determines a transmission / reception scheme for each of one or more selected chunks among the one or more chunks based on the calculated rareness.

송수신 방식은 푸쉬 방식 또는 풀 방식이다.The transmission and reception method is a push method or a pull method.

송수신부(530)는 선택된 하나 이상의 청크들 각각을 결정된 송수신 방식에 따라 송수신한다.The transceiver 530 transmits and receives each of the selected one or more chunks according to the determined transmission and reception scheme.

송수신 방식 결정부(520)는 하나 이상의 청크들 중 희귀도가 제1 미리 정의된 값 이상이고, 노드가 소유한 청크를 고희귀 청크로서 선택할 수 있고, 송수신부(530)는 고희귀 청크를 이웃 노드들 중 상기 고희귀 청크를 포함하지 않은 청크에게 전송할 수 있다.The transmission / reception scheme determining unit 520 may select a chunk owned by the node as a rare rare chunk having a rareness of one or more chunks or more, and the transceiver 530 may select the rare rare chunk as a neighbor. The node may transmit to a chunk not including the rare chunk of nodes.

상기 송수신 방식 결정부(520)는 하나 이상의 청크들 중 희귀도가 제1 미리 정의된 값 미만이고, 이웃 노드들 중 하나 이상의 노드가 소유하고, 노드가 소유하지 않은 청크를 희귀 청크로서 선택할 수 있고, 송수신부(530)는 이웃 노드들 중 희귀 청크를 포함한 노드에게 상기 희귀 청크의 전송을 요청할 수 있고, 상기 이웃 노드로부터 상기 희귀 청크를 수신할 수 있다.
The transmission / reception scheme determining unit 520 may select as a rare chunk a rareness among one or more chunks that is less than the first predefined value, and is owned by one or more nodes among neighboring nodes and not owned by the node. The transceiver 530 may request a node including a rare chunk among neighboring nodes to transmit the rare chunk, and receive the rare chunk from the neighbor node.

도 6은 본 발명의 일 실시예에 따른 P2P 네트워크 내의 노드가 청크-별 푸쉬-풀 방식을 사용하여 파일을 공유하는 방법의 흐름도이다.6 is a flowchart of a method in which a node in a P2P network shares a file using a per-chunk push-pull scheme according to an embodiment of the present invention.

파일은 하나 이상의 청크들을 포함한다.The file contains one or more chunks.

파일은 노드에 의해 재생되고 있는 파일일 수 있다.The file may be a file being played by the node.

단계(S610)에서, 이웃 노드들로부터 상기 버퍼 맵 정보가 수신된다.In step S610, the buffer map information is received from neighboring nodes.

단계(S620)에서, 수신된 이웃 노드들의 버퍼 맵 정보 및 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차가 계산된다.In operation S620, the buffer map gap is calculated based on the received buffer map information of the neighbor nodes and the buffer map information of the node.

단계(S630)에서, 계산된 버퍼 맵 격차에 기반하여 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식이 결정된다.In step S630, a method of transmitting and receiving one or more selected chunks of one or more chunks is determined based on the calculated buffer map gap.

송수신 방식은 전술된 푸쉬 방식 또는 풀 방식이다.The transmission and reception method is the above-described push method or pull method.

단계(S640)에서, 선택된 하나 이상의 청크들 각각이 결정된 송수신 방식에 따라 송수신된다.In step S640, each of the selected one or more chunks is transmitted and received according to the determined transmission and reception scheme.

우선, 전술된 제1 청크-별 푸쉬 풀 방식이 사용되는 경우를 구체적으로 설명한다.First, the case where the above-described first chunk-by-push push method is used will be described in detail.

단계(S620)에서, 이웃 노드들 전체의 버퍼 맵들 및 노드의 버퍼 맵에 기반하여 상이웃 노드들 전체에 대한 버퍼 맵 격차를 계산될 수 있다.In operation S620, the buffer map gap for all neighboring nodes may be calculated based on the buffer maps of all the neighbor nodes and the buffer map of the node.

단계(S630)에서, 계산된 버퍼 맵 격차가 미리 정의된 값 이상일 경우 풀 방식이 하나 이상의 선택된 청크들의 송수신 방식으로서 결정될 수 있고, 버퍼 맵 격차가 미리 정의된 값 미만일 경우 푸쉬 방식이 하나 이상의 선택된 청크들의 송수신 방식으로서 결정될 수 있다.In step S630, the pull scheme may be determined as a transmission / reception scheme of one or more selected chunks when the calculated buffer map gap is greater than or equal to a predefined value, and the push scheme is one or more selected chunks when the buffer map gap is less than a predefined value. May be determined as a transmission / reception scheme of these.

또한, 이웃 노드들의 버퍼 맵 정보에 기반하여 파일이 포함하는 하나 이상의 청크들 각각의 희귀도가 계산될 수 있고, 하나 이상의 청크들 중 희귀도가 제1 미리 정의된 값 이상이고, 노드가 소유한 청크가 풀 방식으로 전송할 선택된 청크로 결정될 수 있다.In addition, based on the buffer map information of neighboring nodes, the rareness of each of the one or more chunks included in the file may be calculated, and the rareness of the one or more chunks is greater than or equal to the first predefined value and is owned by the node. The chunk may be determined to be the selected chunk to send in the pull manner.

다음으로, 전술된 제2 청크-별 푸쉬 풀 방식이 사용되는 경우를 구체적으로 설명한다.Next, a case where the above-described second chunk-by-push push method is used will be described in detail.

단계(S620)에서, 이웃 노드들 각각의 버퍼 맵 및 노드의 버퍼 맵에 기반하여 이웃 노드들 각각에 대한 상기 버퍼 맵 격차가 계산될 수 있다.In operation S620, the buffer map gap for each of the neighbor nodes may be calculated based on the buffer map of each of the neighbor nodes and the buffer map of the node.

단계(S630)에서, 이웃 노드들 각각의 버퍼 맵 격차에 기반하여 이웃 노드들 각각으로의 하나 이상의 선택된 청크들의 송수신 방식이 결정될 수 있다.In operation S630, a method of transmitting and receiving one or more selected chunks to each of the neighbor nodes may be determined based on a buffer map gap of each of the neighbor nodes.

또한, 이웃 노드들 중 상기 버퍼 맵 격차가 미리 정의된 값 이상인 이웃 노드에 대해 풀 방식이 하나 이상의 선택된 청크들의 송수신 방식으로서 결정될 수 있으며, 이웃 노드들 중 버퍼 맵 격차가 미리 정의된 값 미만인 이웃 노드에 대해 푸쉬 방식이 하나 이상의 선택된 청크들의 송수신 방식으로서 결정될 수 있다.
In addition, a pooling scheme may be determined as a transmission / reception scheme of one or more selected chunks for a neighbor node whose buffer map gap is greater than or equal to a predefined value among neighboring nodes, and a neighbor node whose buffer map gap is less than a predefined value among neighboring nodes. The push method may be determined as a transmit / receive method of one or more selected chunks.

도 7는 발명의 일 실시예에 따른 청크-별 푸쉬-풀 방식을 사용하는 노드의 구조도이다.7 is a structural diagram of a node using a chunk-by-chunk push-pull method according to an embodiment of the present invention.

노드(700)는 버퍼 맵 격차 계산부(710), 송수신 방식 결정부(720) 및 송수신부(730)를 포함한다.The node 700 includes a buffer map gap calculator 710, a transmission / reception scheme determiner 720, and a transceiver 730.

노드(700)는 희귀도 계산부(740)를 포함할 수 있다.The node 700 may include a rareness calculator 740.

버퍼 맵 격차 계산부(710)는 이웃 노드들의 버퍼 맵 정보 및 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산한다.The buffer map gap calculator 710 calculates a buffer map gap based on the buffer map information of the neighbor nodes and the buffer map information of the node.

송수신 방식 결정부(720)는 계산된 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정한다.The transmission / reception scheme determination unit 720 determines a transmission / reception scheme of one or more selected chunks of the one or more chunks based on the calculated buffer map gap.

송수신 방식은 푸쉬 방식 또는 풀 방식이다.The transmission and reception method is a push method or a pull method.

송수신부(730)는 선택된 하나 이상의 청크들을 상기 결정된 송수신 방식에 따라 송수신한다.The transceiver 730 transmits and receives one or more selected chunks according to the determined transmission and reception scheme.

우선, 전술된 제1 청크-별 푸쉬 풀 방식이 사용되는 경우를 구체적으로 설명한다.First, the case where the above-described first chunk-by-push push method is used will be described in detail.

버퍼 맵 격차 계산부(710)는 이웃 노드들 전체의 버퍼 맵들 및 노드의 버퍼 맵에 기반하여 이웃 노드들 전체에 대한 상기 버퍼 맵 격차를 계산할 수 있고, 송수신 방식 결정부(720)는 버퍼 맵 격차가 제1 미리 정의된 값 이상일 경우 풀 방식을 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있고, 버퍼 맵 격차가 제1 미리 정의된 값 미만일 경우 푸쉬 방식을 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있다.The buffer map gap calculator 710 may calculate the buffer map gap for all of the neighbor nodes based on the buffer maps of all the neighbor nodes and the buffer map of the node, and the transmission / reception scheme determination unit 720 determines the buffer map gap. If the value is greater than or equal to the first predefined value, the pull method may be determined as a transmission / reception method of one or more selected chunks, and when the buffer map gap is less than the first predefined value, the push method may be determined as a transmission / reception method of one or more selected chunks. .

희귀도 계산부(740)는 이웃 노드들의 버퍼 맵 정보에 기반하여 상파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산할 수 있고, 송수신 방식 결정부(720)는 하나 이상의 청크들 중 희귀도가 제2 미리 정의된 값 이상이고, 노드가 소유한 청크를 풀 방식으로 전송할 선택된 청크로 결정할 수 있다.The rareness calculator 740 may calculate the rareness of each of the one or more chunks included in the phase file based on the buffer map information of the neighbor nodes, and the transmission / reception scheme determiner 720 may determine the rareness of the one or more chunks. Is greater than or equal to the second predefined value, and the chunk owned by the node may be determined as the selected chunk to be transmitted in a pull manner.

다음으로, 전술된 제2 청크-별 푸쉬 풀 방식이 사용되는 경우를 구체적으로 설명한다.Next, a case where the above-described second chunk-by-push push method is used will be described in detail.

버퍼 맵 격차 계산부(710)는 이웃 노드들 각각의 버퍼 맵 및 노드의 버퍼 맵에 기반하여 이웃 노드들 각각에 대한 상기 버퍼 맵 격차를 계산할 수 있고, 송수신 방식 결정부(720)는 이웃 노드들 각각의 버퍼 맵 격차에 기반하여 이웃 노드들 각각으로의 하나 이상의 선택된 청크들의 송수신 방식을 결정할 수 있다.The buffer map gap calculator 710 may calculate the buffer map gap for each of the neighbor nodes based on the buffer map of each of the neighbor nodes and the buffer map of the node, and the transmission / reception scheme determination unit 720 determines the neighbor nodes. Based on each buffer map gap, a method of transmitting and receiving one or more selected chunks to each of the neighbor nodes may be determined.

송수신 방식 결정부(720)는 이웃 노드들 중 버퍼 맵 격차가 제1 미리 정의된 값 이상인 이웃 노드에 대해 풀 방식을 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있고, 이웃 노드들 중 버퍼 맵 격차가 제1 미리 정의된 값 미만인 이웃 노드에 대해 푸쉬 방식을 하나 이상의 선택된 청크들의 송수신 방식으로서 결정할 수 있다.
The transmission / reception scheme determination unit 720 may determine a pull scheme as a transmission / reception scheme of one or more selected chunks among neighboring nodes whose buffer map gap is greater than or equal to a first predefined value. The push method may be determined as a transmission / reception scheme of one or more selected chunks for a neighbor node that is less than the first predefined value.

하기에서 제안된 세가지 푸쉬-풀 방식의 성능이 분석된다.The performance of the three push-pull schemes proposed below is analyzed.

하기의 분석은 자바(Java)를 기반으로 하는 피어심(PeerSim) 시뮬레이터상에서 이벤트-구동(event-driven) 방식의 시뮬레이션(simulation)에 의한 것이다. 선택적인 푸쉬-풀 방식과의 성능 비교를 위하여 대표적인 메쉬 기반 푸쉬 방식인 DP/LU와 일반적인 랜덤 풀 방식이 구현되었다. 편의를 위하여 본 발명에서 언급된 방식 중 청크-별 푸쉬-풀은 청크-별, 제1 피어-별 푸쉬-풀은 제1 피어-별, 제2 피어-별 푸쉬-풀은 제2 피어-별로 약술한다.The analysis below is by event-driven simulation on a Java-based PeerSim simulator. For performance comparison with the selective push-pull method, the typical mesh-based push method DP / LU and general random pull method are implemented. For convenience, the chunk-by-chunk push-pull is the chunk-star, the first peer-star push-pull is the first peer-star, the second peer-star push-pull is the second peer-by-pattern in the manner mentioned in the present invention. Outline.

시뮬레이션 파라미터는 하기의 표 1과 같다.Simulation parameters are shown in Table 1 below.

파라미터들Parameters value 노드들의 개수Number of nodes 25002500 청크 크기Chunk size 14KB14 KB 패킷 손실(loss) 율Packet loss rate 2%2% 스트리밍 율Streaming rate 336kbps336 kbps 이웃들의 개수Number of neighbors 1515 윈도우 크기Window size 30 초(90 청크)30 seconds (90 chunks) 라운드 간격Round spacing 500 msec500 msec 스타트업 지연Start-up delay 30초 까지Up to 30 seconds 시뮬레이션 시간Simulation time 12.5 분12.5 minutes

하기의 시뮬레이션에서는 상기의 표 1과 같이 시스템 성능에 영향을 주는 객관적인 사실들이 현실세계의 사용자 패턴에 최대한 가깝게 반영되었다.In the following simulation, the objective facts affecting the system performance are reflected as close as possible to the real world user pattern as shown in Table 1 above.

실제 환경의 노드간 지연 시간을 반영하기 위해서 인터넷에서 측정된 평균 지연 시간이 79ms인 노드-투-노드 지연 행렬(node-to-node latency matrix)(2500X2500)가 사용되었다. The node-to-node latency matrix (2500X2500) with an average latency of 79 ms measured on the Internet was used to reflect the real-time node-to-node latency.

노드의 수는 최소한 지연 행렬의 크기만큼은 되어야 하기 때문에 2500개 부근으로 지정되었다. 지연 행렬은 TCP 세그먼트 단위로 반영되기 때문에 TCP 세그먼트가 최대크기의 페이로드(payload)를 가졌다고 가정하고(1460bytes) 계산이 용이하도록 이를 10배 한 값인 14KB가 청크 크기로 결정되었다.Since the number of nodes must be at least as large as the size of the delay matrix, it is assigned around 2500. Since the delay matrix is reflected in TCP segment units, it is assumed that the TCP segment has the maximum payload (1460 bytes), and 14KB, which is 10 times this value, is determined as the chunk size to facilitate calculation.

패킷이 손실되는 비율은 2%로 지정되었다.The rate of packet loss is set at 2%.

초당 필요한 청크의 수가 3개가 되도록, 스트리밍 율은 336kbps로 지정되었다.The streaming rate was specified at 336 kbps so that the number of chunks required per second was three.

노드의 이웃 수는 15로 지정되었고, 다운로딩 윈도우의 크기는 30초(90 개의 청크)로 지정되었다.The number of neighbors in the node was set to 15, and the size of the downloading window was set to 30 seconds (90 chunks).

라운드 주기는 지연 행렬 의 평균 지연 시간을 반영하여 500ms로 지정되었다.The round period is set to 500 ms to reflect the average delay time of the delay matrix.

하기의 표 2는 기본적인 대역폭(bandwidth) 분포도를 나타낸다.Table 2 below shows the basic bandwidth distribution.

업로드 대역폭Upload bandwidth 다운로드 대역폭Download bandwidth 노드들의 프랙션(Fraction of nodes ( fractionfraction )) 128 (kbps)128 (kbps) 768 (kbps)768 (kbps) 0.20.2 384384 15361536 0.40.4 10241024 30723072 0.150.15 40964096 61446144 0.150.15

하기의 시뮬레이션들에서는 피어들의 참여 방식 및 존속 기간 등과 같은 동적인 행동을 모델링 하기 위하여 포사숑(Poisson) 분포 및 로그-노멀(Log-normal) 분포 및 파레토(Pareto) 분포가 사용되었다.In the following simulations, a Poisson distribution, a Log-normal distribution, and a Pareto distribution were used to model dynamic behavior such as peer participation and duration.

피어들의 참여 방식은 포사송 프로세스를 따르며 실제 시스템의 클라이언트 수 분포도가 반영되었다.Peers' participation method follows the Posasong process and reflects the distribution of the number of clients in the actual system.

한편, 피어의 시스템 존속 기간은 헤비-테일드(heavy-tailed) 분포를 따르기 때문에, 약 90%의 피어의 존속기간은 로그-노멀 분포를 따르며, 10%의 피어는 파레토 분포에 따라서 존속한다.On the other hand, since the system lifetime of the peers follows a heavy-tailed distribution, about 90% of the peers follow the log-normal distribution, and 10% of the peers survive the Pareto distribution.

로그-노멀 분포의 μ, σ매개변수는 각각 0, 1.6이고, 파레토 분포의 χm, α 매개변수는 1, 0.9 이며, 포아송 분포의 λ 매개변수는 38로 지정되었다.The μ and σ parameters of the log-normal distribution are 0 and 1.6, respectively, the χm and α parameters of the Pareto distribution are 1 and 0.9, and the λ parameter of the Poisson distribution is 38.

다운로딩 윈도우가 충분한 양의 청크를 다운받지 못했을 경우 미디어 플레이어에게 비디오를 재생하는데 충분한 양의 데이터를 전달하는 것이 어렵게 된다.If the downloading window does not download enough chunks, it will be difficult to deliver enough data to the media player to play the video.

이 때, 하기의 시뮬레이션에서는 미디어 플레이어를 정지하지 않고, 누락된 프레임을 건너뛴다.At this time, the following simulation does not stop the media player and skips the missing frame.

마지막으로 피어심 시뮬레이터는 완전한 양 방향 연결의 네트워크 토폴로지를 제공하지 못하기 때문에, 피어심 시뮬레이터를 확장/수정함으로써 양방향 연결이 보다 잘 형성되도록 하였다.Finally, since the peer-simulator does not provide a network topology of a full bidirectional connection, the peer-simulator can be extended / modified to allow better bi-directional connectivity.

도 8은 본 발명의 일 예에 따른 실효 다운로드 비율(effective download ratio) 및 총 다운로드 비율(total download ratio)를 나타낸다.8 illustrates an effective download ratio and a total download ratio according to an embodiment of the present invention.

실효 다운로드 비율은 데이터가 피어에서 문제없이(재생을 멈추거나 건너뛰는 현상이 없는) 성공적으로 재생되는 비율을 나타내며, 플레이아웃 연속성(playout continuity)이라고도 일컬어진다. 실효 다운로드 비율은 피어당 중복 전송을 제외하고 청크가 다운로드 된 양과 시스템의 스트리밍 율(rate) 의 비율로 결정된다.The effective download rate refers to the rate at which data is successfully played at the peer without any problems (without stopping or skipping playback), also referred to as playout continuity. The effective download rate is determined by the ratio of the amount of chunks downloaded and the streaming rate of the system, excluding duplicate transmissions per peer.

총 다운로드 비율은 중복 전송을 포함하여 전체 시스템의 데이터 전송량이 얼마나 되는지 판단하기 위한 지표로써, 피어당 평균 데이터 다운로드 양 및 스트리밍 율의 비율로써 정의된다.The total download rate is an indicator for determining how much data is transmitted in the entire system, including redundant transmission, and is defined as the ratio of the average data download amount and the streaming rate per peer.

하기의 표 3은 각 P2P 스트리밍 서비스의 사용자 QoE(quality of experience)를 결정하는 대표적인 지표인 실효 다운로드 비율을 각 방식 별로 나타낸다.Table 3 below shows the effective download ratio, which is a representative index for determining a user quality of experience (QoE) of each P2P streaming service, for each method.

DP/LUDP / LU 랜덤 풀Random pool 청크-별Chunk-Stars 제1 피어-별First peer-star 제1 피어-별 옵션First Peer-Specific Option 제2 피어-별Second peer-star 실효Effectiveness
다운로드 비율Download rate

0.79

0.79

0.91

0.91

1.05

1.05

0.97

0.97

1.02

1.02

0.99

0.99

DP/LU는 동작 중 발생하는 중복 전송으로 인해서 0.79 정도로 가장 낮은 성능을 보인다.DP / LU has the lowest performance of 0.79 due to redundant transmission during operation.

랜덤 풀 방식은 0.91 정도의 실효 다운 로드 비율을 보인다.The random pull method has an effective download rate of about 0.91.

상기의 방식들은 모두 좋은 성능을 보이지만, 제1 피어-별 방식은 푸쉬 방식 및 풀 방식 중 하나로만 동작하기 때문에 좋은 성능을 보이지 않는다. 특히 푸쉬 방식으로 동작할 경우 항상 청크 및 피어 선택을 스스로 하기 때문에 버퍼 맵 격차 가 높을 때 동작한다 하더라도 상당 수의 중복 전송이 발생 할 수 있다. 왜냐하면 푸쉬 방식으로 업로드 대역폭을 모두 사용하므로 희귀도에 따라서 전달한다 하더라도 낮은 희귀도를 가진 청크들도 전달 되기 때문이다.All of the above schemes show good performance, but the first peer-by-peer scheme does not show good performance because it operates only in one of the push scheme and the pull scheme. In particular, since the push method always selects chunks and peers by itself, a large number of redundant transmissions may occur even when the buffer map gap is high. Because all the upload bandwidth is used by push method, even if it is delivered according to the rareness, chunks with low rareness are also delivered.

이를 해결하기 위해서 풀을 이용한 과정에서도 업로드 대역폭을 모두 풀을 위해 사용하지 않고 일부는 푸쉬 요청을 처리해 주는 용도로 남겨주는 것이 바람직하다.In order to solve this problem, it is desirable to not use all of the upload bandwidth for the pool even in the process of using the pool, but to leave some of them for the purpose of processing the push request.

따라서 기존의 방식처럼 푸쉬 및 풀 내에서 선택하는 것보다 푸쉬-풀 및 풀 내에서 선택하는 것이 성능을 향상시킨다. 기존의 제1 피어-별 방식과 구분하기 위해서, 푸쉬-풀 및 풀 중에서 하나를 선택하는 방식을 제1 피어-별-옵션(또는, 제1 피어-별 푸쉬-풀 옵션) 방식이라고 명명한다.Therefore, selecting within push-pools and pools improves performance rather than selecting within pushes and pools, as is traditional. In order to distinguish from the existing first peer-by-peer method, a method of selecting one of the push-pull and the pool is called a first peer-per-option (or a first peer-per-push push-pull option) method.

표 1를 보면 제1 피어-별-옵션 방식이 제1 피어-별 방식 보다 좋은 성능을 보임이 확인될 수 있다. 제1 피어-별-옵션 방식은 청크-별 방식과 비슷한 수준의 실효 다운로드 비율을 보이기 때문에 이를 분석하는 것이 더 의미 있는 일이라고 판단된다. 따라서, 이후의 본 발명의 일 예에서는 제1 피어-별 방식 대신에 제1 피어-별-옵션 방식을 이용한다.Looking at Table 1, it can be seen that the first peer-by-option method performs better than the first peer-by-peer method. Since the first peer-by-option method has an effective download rate similar to that of the chunk-by-choice method, it is determined that the analysis is more meaningful. Thus, in the following example of the present invention, the first peer-by-peer method is used instead of the first peer-by-peer method.

제1 그래프(810) 및 제2 그래프(820)는 각각 실효 다운로드 비율 및 총 다운로드 비율을 보인다. 기본적으로 랜덤 풀 l 방식이 평균 0.9의 비율(ratio)를 가지며, 0.8의 성능을 보이는 DP/LU 보다 약간 좋은 성능을 보인다.The first graph 810 and the second graph 820 show an effective download rate and a total download rate, respectively. Basically, the random full l method has a ratio of 0.9 on average and shows slightly better performance than DP / LU showing 0.8 performance.

선택적 푸쉬-풀의 세 가지 방식인 청크-별 방식, 제1 피어-별-옵션 방식 및 제2 피어-별 방식의 실효 다운로드 비율은 각각 1.05, 1.02 및 0.99 정도로써, 랜덤 풀 및 DP/LU보다 약 15% 가량 성능이 향상되었다.The effective download rates of the three selective push-pull schemes, the chunk-specific, the first peer-optional, and the second peer-specific, are 1.05, 1.02, and 0.99, respectively, compared to random pool and DP / LU. The performance improved by about 15%.

이는 푸쉬 및 풀을 시기 적절하게 사용하는 것이 단순히 풀 또는 푸쉬만을 사용하는 것보다 좋은 성능을 보인다는 것을 입증한다.This demonstrates that timely use of pushes and pulls perform better than simply using only pulls or pushes.

세 방식 모두 비슷한 성능을 보이지만, 그 중 청크 별 희귀도를 측정하여 푸쉬 및 풀을 선택하는 방식이 가장 좋은 성능을 보인다.All three methods show similar performance, but the best method is to select push and pull by measuring the rarity of each chunk.

푸쉬 및 풀의 선택 지표로서 버퍼 맵 격차 보다 청크 별 희귀도가 더 좋은 성능을 보이는 것을 뜻하며, 개별 이웃에 대한 측정보다는 이웃 전체에 대한 버퍼 맵 격차 측정이 푸쉬 및 풀 선택의 지표로서 더 좋은 것을 알 수 있다.It is the selection index of push and pool, which means that the rarity per chunk is better than the buffer map gap, and that the buffer map gap measurement for the whole neighborhood is better as an indicator of push and pool selection than the measurement for individual neighbors. Can be.

제2 그래프(820)는 중복 전송을 포함하여 전체 시스템의 데이터 전송량을 보여준다.The second graph 820 shows the data transmission amount of the entire system including redundant transmission.

중복 전송이 거의 발생하지 않는 랜덤 풀 방식은 가장 아랫부분에 위치한다. 청크-별 방식, 제1 피어-별-옵션 방식, 제2 피어-별 방식은 비슷한 양의 총 다운로드 비율을 보이며 오로지 푸쉬 방식으 로만 동작하는 DP/LU는 가장 위쪽에 위치한다.The random pull scheme in which duplicate transmission rarely occurs is located at the bottom. The Chunk-by-Peer, First Peer-to-Peer, and Second Peer-to-Peer have a similar amount of total download rate, and the DP / LU, which operates only in the push mode, is located at the top.

DP/LU의 총 다운로드 비율은 평균 2.0의 성능을 보이는데 1.0도 되지 않는 실효 다운로드 비율과 비교해 봤을 때 상당한 양의 중복전송이 발생함을 알 수 있다.The total download rate of the DP / LU shows an average performance of 2.0, compared with the effective download rate of less than 1.0.

한편 DP/LU와는 대조적으로 랜덤 풀 방식의 총 다운로드 비율은 실효 다운로드 비율과 비슷한 수준을 보이는 것으로 보아 중복 전송이 거의 발생하지 않았음을 예상할 수 있다.On the other hand, in contrast to DP / LU, the total download rate of the random pull method is similar to the effective download rate, so it can be expected that there is almost no duplicate transmission.

청크-별 방식, 제1 피어-별-옵션 방식, 및 제2 피어-별 방식은 평균 1.5정도의 총 다운로드 비율을 보이며 랜덤 풀 방식의 1.7배, DP/LU 방식의 0.8배의 총 다운로드 비율을 보이는 것을 알 수 있다.Chunk-by-Chef, First Peer-by-Option, and Second Peer-by-Pass have an average total download rate of about 1.5, with 1.7 times the random pull method and 0.8 times the DP / LU method. I can see it.

제2 그래프(820)의 총 다운로드 비율은 중복을 포함한 전체 전송량이기 때문에 업로드 대역폭의 실제 사용량으로도 볼 수 있다. 전술된 선택적 푸쉬-풀 방식의 성능 향상은 뒤에서 설명할 작은 제어 오버헤드 비율 및 작은 잉여 비율에서도 기인하지만, 푸쉬 방식을 사용함에 따른 업로드 대역폭 사용량의 증대에서 크게 기인하는 것으로 볼 수 있다.
Since the total download rate of the second graph 820 is the total transmission amount including duplication, it can also be viewed as the actual usage of upload bandwidth. The performance improvement of the selective push-pull scheme described above is also attributable to the small control overhead ratio and the small surplus ratio, which will be described later, but may be attributed to the increase in upload bandwidth usage by using the push scheme.

도 9는 본 발명의 일 예에 따른 미스 비율(miss ratio)을 나타낸다.9 shows a miss ratio according to an embodiment of the present invention.

P2P 스트리밍 서비스에서, 원활한 재생을 위해 청크들은 그들의 재생 시점 이전에 도착이 완료되어야 한다.In a P2P streaming service, chunks must arrive before their playback time point for smooth playback.

손실된 청크는 비디오의 재생이 멈춰지거나 건너뛰어지는 현상을 만든다. 따라서, 손실된 청크의 수는 시스템의 성능을 평가하는데 중요한 기준이 된다.Lost chunks cause the video to stop playing or skip. Thus, the number of chunks lost is an important criterion for evaluating the performance of the system.

미스 비율은 손실된 청크의 비율을 말하며, 피어당 평균 손실하는 청크의 수 및 스트리밍 율의 비율로써 정의된다.The miss rate refers to the percentage of chunks lost and is defined as the ratio of the average number of chunks lost per peer and the streaming rate.

제1 그래프(910)은 각 방식들의 미스 비율을 나타낸다. DP/LU 방식 및 랜덤 풀 방식이 각각 0.14, 0.11의 미스 율를 보이고, 본 발명의 실시예에서 제안된 방식들은 대략 0.5 ~ 0.6 정도의 성능을 보이며 기존의 방식들보다 미스 비율을 1/2 가량 감소시키는 것을 알 수 있다.
The first graph 910 represents the miss rate of each scheme. The DP / LU method and the random pull method show the miss rates of 0.14 and 0.11, respectively, and the proposed methods show about 0.5 to 0.6 performance and reduce the miss rate by about 1/2 compared to the conventional methods. It can be seen that.

도 10은 본 발명의 일 예에 따른 발산 비율(diffusion rate) 및 발산 지연(diffusion delay)을 나타낸다.FIG. 10 illustrates a diffusion rate and a diffusion delay according to an embodiment of the present invention. FIG.

발산 비율은 일정시간 이후 청크가 얼마만큼의 피어에게 전달되는 가를 나타내는 지표로써 일정 시간 이후 임의의 청크를 소유한 피어의 수로써 정의된다.The divergence rate is an indicator of how many chunks are delivered to a chunk after a certain time, and is defined as the number of peers that own any chunk after a certain time.

발산 지연은 서버에서 생성된 청크가 얼마나 빨리 피어들에게 전달되는 가를 나타내는 지표로써 일정 수의 피어가 해당 청크를 소유하게 되는데 걸리는 시간으로 정의된다. The divergence delay is an indicator of how quickly a chunk created by the server is delivered to peers, and is defined as the time it takes for a certain number of peers to own the chunk.

제1 그래프(1010)은 메쉬 기반 스트리밍 서비스의 성능 지표인 발산 비율 및 발산을 나타낸다. 전술된 것처럼, 발산 비율은 청크가 서버로부터 생성되어 일정 시간동안 전달된 피어들의 수를 나타내며, 발산 지연은 피어가 해당 청크를 소유하는데 걸린 시간을 나타낸다.The first graph 1010 represents the divergence rate and divergence which are performance indicators of the mesh-based streaming service. As mentioned above, the divergence rate represents the number of peers whose chunks have been created from the server and delivered over time, and the divergence delay represents the time it took for the peer to own the chunk.

하지만 이는 노드들의 이탈과 참여가 없는 정적인 상황을 기준으로 하는 값이다. 본 발명의 실시예들은 현실세계에서 라이브 스트리밍 서비스를 이용하는 노드들의 행동 패턴을 주의 깊게 반영한 동적인 상황을 가정하였기 때문에 기존의 결과와는 다소 차이가 있는 결과가 발생하였다.However, this value is based on the static situation where there is no departure and participation of nodes. Since the embodiments of the present invention assume a dynamic situation that carefully reflects the behavior pattern of the nodes using the live streaming service in the real world, the result is somewhat different from the existing results.

하지만 이러한 차이는 발산 비율 및 발산 지연 곡선이 수렴하는 값이 낮아진 것일 뿐, 발산 비율 및 발산 지연 곡선의 형태에 있어서는 차이가 발생하지 않았다.However, this difference is only a low value of convergence of the divergence ratio and the divergence delay curve, and did not occur in the form of the divergence ratio and the divergence delay curve.

대략 100초 정도의 측정시간 동안, 청크-별 방식, 제1 피어-별-옵션 방식 및 제2 피어-별 방식은 50%정도의 값에서 수렴하고, DP/LU와 랜덤 풀은 좀 더 아래쪽에서 수렴한다.For approximately 100 seconds of measurement time, the chunk-by-chunk method, the first peer-to-peer option, and the second peer-to-peer method converge at about 50% of the value, while the DP / LU and random pool are further down. Converge.

전술된 것과 같이, 푸쉬 방식을 이용한 전송은 풀 방식에 의한 전송보다 빠른 전파 속도를 갖기 때문에 향상된 확산 지연을 보인다.As described above, the transmission using the push method has a faster propagation rate than the transmission using the pull method, and thus shows an improved spread delay.

제1 그래프(1010)에서, 30%의 확산 비율 에 도달하는데 걸리는 시간(확산 지연)을 비교해보면, 본 발명의 실시예들에 의해 제안된 방식들이 랜덤 풀의 약 1/3, DP/LU의 약 1/2정도의 확산 지연을 보이는 것을 알 수 있다.In the first graph 1010, comparing the time it takes to reach a diffusion rate of 30% (diffusion delay), the schemes proposed by embodiments of the present invention are about 1/3 of the random pool, DP / LU. It can be seen that the spread delay is about 1/2.

랜덤 풀 보다 좋은 성능을 보이는 것은 풀 보다 푸쉬가 전파속도에 있어서 유리하기 때문이며, DP/LU보다 좋은 성능을 보이는 것은 청크 희귀도 또는 버퍼 맵 격차를 기반으로 중복 전송을 최대한 줄이면서 푸쉬를 이용하기 때문이다.Better performance than random pools is because push is more advantageous than propagation in terms of propagation speed, and better performance than DP / LU is because it uses push while minimizing redundant transmissions based on chunked rareness or buffer map gaps. to be.

청크-별 방식 및 제1 피어-별-옵션 방식의 경우 60초 부근에서, 제2 피어-별 방식의 경우에는 30초 부근에서 그래프가 꺾이는 것을 볼 수 있다. 이는 대부분 푸쉬 방식을 통해서 이루어지던 청크 전달이 풀 방식으로 바뀐 지점을 의미한다.It can be seen that the graph is bent at around 60 seconds for the chunk-by-first method and the first peer-to-option method and around 30 seconds for the second peer-star method. This is the point where the chunk delivery, which was mostly done through the push method, changed to the pull method.

제2 피어-별 방식의 경우 앞선 두 방식에 비해 그 전환 지점이 빨리 등장하는 것으로 미루어보아, 제2 피어-별 방식에서는, 푸쉬를 이용한 전달이 더 적으며, 따라서 중복 전송에 의한 충돌도 덜 발생한 것으로 추측될 수 있다.In the case of the second peer-to-peer scheme, the transition point appears earlier than the previous two schemes, and in the second peer-to-peer scheme, there is less propagation using push and thus less collision due to duplicate transmission. Can be inferred.

도 11은 본 발명의 일 예에 따른 오버헤드 비율(overhead ratio)를 나타낸다.11 illustrates an overhead ratio according to an embodiment of the present invention.

피어들은 그들의 이웃과 이웃 목록, 버퍼 맵, 풀 요청 메시지 등을 주고 받는다. 청크 교환을 제외하고 이웃과 주고 받는 정보를 제어 메시지 비율(control message ratio)이라고 하며, 그에 따라 소요된 전송량 및 중복을 제외한 전체 시스템의 전송량 비율로서 정의된다. 또한, 푸쉬 방식에서 충돌 발생에 의해 사용된 전송량과 전체 시스템의 전송량 비율을 잉여 비율(redundancy ratio)라고 정의한다. 제어 메시지 오버헤드 및 잉여 비율을 합쳐서 총 오버헤드 비율(total overhead ratio)이라고 정의한다.Peers exchange their neighbors with a list of neighbors, a buffer map, and a pull request message. Except for chunk exchange, the information exchanged with the neighbor is called a control message ratio, and is defined as the ratio of the transmission amount of the entire system excluding the amount of transmission and duplication. In addition, the ratio of the transmission amount used by the collision occurrence in the push method and the transmission amount of the entire system is defined as a redundancy ratio. The total control message overhead and surplus rate are defined as total overhead ratio.

제1 그래프(1110), 제2 그래프(1120) 및 제3 그래프(1130)는 중복 전송 및 제어 메시지의 전송에 따른 오버헤드를 나타내고 있다. 제3 그래프(1130)는 총 오버헤드 비율을 보여준다.The first graph 1110, the second graph 1120, and the third graph 1130 represent overheads of transmission of duplicate transmissions and control messages. Third graph 1130 shows the total overhead ratio.

평균적으로 0.05 정도의 값을 갖는 랜덤 풀이 오버헤드가 가장 적으며, 청크-별 방식이 평균 0.36, 제1 피어-별-옵션 방식은 0.35, 제2 피어-별 방식은 0.30이다. DP/LU가 0.60 가량의 오버헤드로 가장 총 오버헤드 비율이 크다.On the average, a random pool having a value of about 0.05 has the least overhead, an average chunk-by-chance method of 0.36, a first peer-to-peer option method of 0.35, and a second peer-to-peer method of 0.30. DP / LU is about 0.60 overhead, with the largest total overhead ratio.

총 오버헤드 비율은 제1 그래프(1110)의 청크 잉여 비율과 그 형태가 거의 유사하다. 이는 푸쉬에 의한 중복전송이 전체 오버헤드의 대부분을 차지함을 뜻한다.The total overhead ratio is almost similar to the chunk surplus ratio of the first graph 1110. This means that redundant transmission by push takes up most of the overall overhead.

DP/LU의 잉여 비율은 대략 0.59정도이며, 본 방식에서는 DP/LU의 60%인 0.3정도의 값을 갖는다. The surplus ratio of DP / LU is about 0.59. In this method, it has a value of about 0.3, which is 60% of DP / LU.

본 발명의 실시예들에 따른 세 가지 방식 중 청크-별 방식이 잉여 비율이 가장 높은 편으로 0.36 가량이며, 버퍼 맵 격차를 활용하여 푸쉬를 적절히 사용하는 제1 피어-별-옵션 방식이 0.35으로 그 다음을 차지한다. 마지막으로, 제2 피어-별 방식은 0.30의 값을 보이는데, 이는 푸쉬로 전달되는 청크의 수가 다른 방식들보다 적을 뿐만 아니라 푸쉬 방식을 가장 적절하게 사용하기 때문이다. Among the three methods according to the embodiments of the present invention, the chunk-by-method method has the highest surplus ratio of about 0.36, and the first peer-by-option method that uses the push map appropriately by utilizing the buffer map gap is 0.35. Then occupies. Finally, the second peer-to-peer scheme has a value of 0.30 because the number of chunks delivered to the push is less than other schemes, as well as the push scheme is most appropriately used.

제2 그래프(1120)는 전체 다운로드 한 양에 대한 제어 메시지의 양인 제어 메시지 오버헤드를 나타내며, 보다 정확한 비교를 위해, 제어 메시지의 총 양을 중복 청크를 제외하고 다운로드한 총 양으로 나누어서 측정 하였다.The second graph 1120 represents the control message overhead, which is the amount of control messages for the total downloaded amount. For more accurate comparison, the second graph 1120 is measured by dividing the total amount of control messages by the total amount of downloads excluding duplicate chunks.

제2 그래프(1120)에서 랜덤 풀은 0.04정도의 값을 갖는 반면에, 3가지의 선택적인 푸쉬-풀 방식은 오버헤드가 50%가량 줄어들어 0.02 정도의 값을 갖는다.In the second graph 1120, the random pool has a value of about 0.04, while the three selective push-pull schemes have a value of about 0.02 with about 50% reduction in overhead.

실제로, 제어 메시지의 양에 있어서는 4가지 방식 모두 비슷한 값을 갖지만 총 다운로드 양에서 랜덤-풀 방식이 훨씬 작기 때문에 제어 메시지가 차지하는 비중이 선택적인 푸쉬-풀 방식보다 높게 되는 것이다.
In practice, all four schemes have similar values in the amount of control messages, but the random-pull scheme is much smaller in the total download amount, so the control message occupies a higher percentage than the selective push-pull scheme.

도 12는 본 발명의 일 예에 따른 푸쉬 프렉션(push fraction)을 설명한다.12 illustrates a push fraction according to an example of the present invention.

전술된 선택적인 푸쉬-풀 방식은 푸쉬 및 풀을 동시 또는 번갈아 사용할 수 있기 때문에, 전체 전달된 청크 내에서 푸쉬로 전달된 청크의 비율 및 잉여 비율을 비교해 봄으로써 중복 없이 푸쉬가 얼마나 잘 사용되었는가를 판단하기 위한 정보를 제공할 수 있다.Since the optional push-pull scheme described above can use push and pull simultaneously or alternately, it is shown how well the push was used without duplication by comparing the ratio and surplus ratio of the chunk delivered to the push within the total delivered chunk. Information for judging can be provided.

제1 그래프(1210)는 푸쉬로 전달된 청크의 비율 및 중복 전송의 비율을 함께 보여준다.The first graph 1210 shows the proportion of chunks delivered to the push and the proportion of redundant transmission.

제2 피어-별 방식의 경우, 푸쉬에 의한 전달이 차지하는 비중이 다른 방식보다는 작고, 중복 전송 비율도 가장 작다. 이는 푸쉬로 청크를 전달 하는데 있어서, 두 피어간의 버퍼 맵 격차 측정을 기반으로 하는 방식이 효율성이 높다는 사실을 나타낸다.In the case of the second peer-to-peer scheme, the weight of delivery by push is smaller than the other schemes, and the duplicate transmission rate is the smallest. This indicates that the method based on buffer map gap measurement between two peers is highly efficient in delivering chunks by push.

상기의 시뮬레이션들의 결과를 보면, 본 발명의 실시예들에 따른 선택적인 푸쉬-풀 방법이 사용됨으로써, 잉여 비율은 1/2로 감소되고, 제어 메시지 오버헤드 비율은 50% 가량 감소된다. 또한, 2배 가량 대역폭 사용량이 증대되기 때문에, 실효 다운로드 비율에 있어서 성능이 15% 가량 향상된다.
As a result of the above simulations, by using the selective push-pull method according to the embodiments of the present invention, the surplus ratio is reduced to 1/2, and the control message overhead ratio is reduced by about 50%. In addition, since the bandwidth usage is increased by twice, the performance is improved by about 15% in the effective download rate.

본 발명의 일 실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.Method according to an embodiment of the present invention is implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer readable medium. The computer readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks. Magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상과 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.As described above, the present invention has been described by way of limited embodiments and drawings, but the present invention is not limited to the above embodiments, and those skilled in the art to which the present invention pertains various modifications and variations from such descriptions. This is possible.

그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

500: 노드
510: 희귀도 계산부
520: 송수신 방식 결정부
530: 송수신부
500: node
510: rareness calculator
520: transmission and reception method determination unit
530: transceiver

Claims (26)

피어-투-피어(Peer-to-Peer; P2P) 네트워크 내의 노드가 이웃 노드들과 파일을 공유하는 방법에 있어서,
상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 단계;
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계; 및
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계
를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 희귀도는 상기 P2P 네트워크 내에서 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 퍼진 정도를 나타내고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 파일 공유 방법.
A method in which nodes in a peer-to-peer network share files with neighboring nodes,
Calculating a rareness of each of the one or more chunks included in the file based on buffer map information of the neighbor nodes;
Determining a transmission and reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness; And
Transmitting and receiving each of the selected one or more chunks according to the determined transmission / reception scheme
Wherein the buffer map information includes information about whether the neighbor node owns each of the one or more chunks, and the rareness is between the node and the neighbor nodes within the P2P network. And how each of the chunks is spread, and the transmission / reception scheme is a push scheme or a pull scheme.
제1항에 있어서,
상기 이웃 노드들로부터 상기 버퍼 맵 정보를 수신하는 단계
를 더 포함하는, 파일 공유 방법.
The method of claim 1,
Receiving the buffer map information from the neighbor nodes
Further comprising, file sharing method.
제1항에 있어서,
상기 희귀도는 상기 노드 및 상기 이웃 노드들 내에서의 상기 하나 이상의 청크들 각각의 등장 횟수의 역수인, 파일 공유 방법.
The method of claim 1,
And wherein said rareness is an inverse of the number of appearances of each of said one or more chunks in said node and said neighboring nodes.
제1항에 있어서,
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는,
상기 하나 이상의 청크들 중 제1 청크의 상기 희귀도가 제1 미리 정의된 값 이상이고, 상기 노드가 상기 제1 청크를 소유한 경우 상기 제1 청크를 고희귀 청크로서 선택하는 단계
를 포함하고,
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는
상기 고희귀 청크를 상기 이웃 노드들 중 상기 고희귀 청크를 포함하지 않은 노드에게 전송하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 1,
Determining a transmission and reception method of each of one or more selected chunks of the one or more chunks based on the rareness,
Selecting the first chunk as a high rare chunk when the rareness of a first chunk of the one or more chunks is greater than or equal to a first predefined value and the node owns the first chunk.
Including,
Transmitting and receiving each of the selected one or more chunks according to the determined transmission / reception scheme
Transmitting the high rare chunk to a node among the neighboring nodes that does not include the high rare chunk.
Including, file sharing method.
제1항에 있어서,
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는,
상기 노드가 상기 하나 이상의 청크들 중 제1 청크를 소유하고, 상기 이웃 노드들은 상기 제1 청크를 소유하지 않은 경우 상기 제1 청크를 고희귀 청크로서 선택하는 단계
를 포함하고,
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는
상기 고희귀 청크를 상기 이웃 노드들 중 하나 이상의 노드들에게 전송하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 1,
Determining a transmission and reception method of each of one or more selected chunks of the one or more chunks based on the rareness,
If the node owns a first chunk of the one or more chunks and the neighboring nodes do not own the first chunk, selecting the first chunk as a high rare chunk.
Including,
Transmitting and receiving each of the selected one or more chunks according to the determined transmission / reception scheme
Transmitting the rare rare chunk to one or more of the neighboring nodes.
Including, file sharing method.
제1항에 있어서,
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는,
상기 하나 이상의 청크들 중 제2 청크의 상기 희귀도가 제1 미리 정의된 값 미만이고, 상기 이웃 노드들 중 하나 이상의 노드가 상기 제2 청크를 소유하고, 상기 노드가 상기 제2 청크를 소유하지 않은 경우 상기 제2 청크를 희귀 청크로서 선택하는 단계
를 포함하고,
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는,
상기 이웃 노드들 중 상기 희귀 청크를 포함한 노드에게 상기 희귀 청크의 전송을 요청하는 단계; 및
상기 이웃 노드로부터 상기 희귀 청크를 수신하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 1,
Determining a transmission and reception method of each of one or more selected chunks of the one or more chunks based on the rareness,
The rareness of a second one of the one or more chunks is less than a first predefined value, one or more of the neighboring nodes own the second chunk, and the node does not own the second chunk. If not, selecting the second chunk as a rare chunk
Including,
Transmitting and receiving each of the selected one or more chunks according to the determined transmission and reception scheme,
Requesting transmission of the rare chunk to a node including the rare chunk of the neighbor nodes; And
Receiving the rare chunk from the neighbor node
Including, file sharing method.
제1항에 있어서,
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는,
상기 노드가 상기 하나 이상의 청크들 중 제2 청크를 소유하지 않고, 상기 이웃 노드들은 모두 상기 제2 청크를 소유한 경우 상기 제2 청크를 희귀 청크로서 선택하는 단계
를 포함하고,
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는,
상기 이웃 노드들 중 하나 이상의 노드들에게 상기 희귀 청크의 전송을 요청하는 단계; 및
상기 희귀 청크의 전송이 요청된 상기 하나 이상의 노드들로부터 상기 희귀 청크를 수신하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 1,
Determining a transmission and reception method of each of one or more selected chunks of the one or more chunks based on the rareness,
If the node does not own a second chunk of the one or more chunks, and the neighbor nodes all own the second chunk, selecting the second chunk as a rare chunk
Including,
Transmitting and receiving each of the selected one or more chunks according to the determined transmission and reception scheme,
Requesting transmission of the rare chunk to one or more of the neighboring nodes; And
Receiving the rare chunk from the one or more nodes for which the transmission of the rare chunk has been requested
Including, file sharing method.
제1항에 있어서,
상기 파일은 상기 노드에 의해 재생되고 있는 파일이고,
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 단계는,
상기 파일의 재생 지점과의 거리 및 상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 특정 청크를 희귀 청크로서 선택하는 단계
를 포함하고,
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 단계는,
상기 이웃 노드들 중 하나 이상의 노드들에게 상기 희귀 청크의 전송을 요청하는 단계; 및
상기 희귀 청크의 전송이 요청된 상기 하나 이상의 노드들로부터 상기 희귀 청크를 수신하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 1,
The file is a file being played by the node,
Determining a transmission and reception method of each of one or more selected chunks of the one or more chunks based on the rareness,
Selecting a particular one of the one or more chunks as a rare chunk based on the rareness and the distance to the playback point of the file
Including,
Transmitting and receiving each of the selected one or more chunks according to the determined transmission and reception scheme,
Requesting transmission of the rare chunk to one or more of the neighboring nodes; And
Receiving the rare chunk from the one or more nodes for which the transmission of the rare chunk has been requested
Including, file sharing method.
피어-투-피어(Peer-to-Peer; P2P) 네트워크 내의 이웃 노드들과 파일을 공유하는 노드에 있어서,
상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 희귀도 계산부;
상기 희귀도에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들 각각의 송수신 방식을 결정하는 송수신 방식 결정부; 및
상기 선택된 하나 이상의 청크들 각각을 상기 결정된 송수신 방식에 따라 송수신하는 송수신부
를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 희귀도는 상기 P2P 네트워크 내에서 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 퍼진 정도를 나타내고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 네트워크 노드.
In a node that shares files with neighboring nodes in a peer-to-peer (P2P) network,
A rareness calculator configured to calculate a rareness of each of the one or more chunks included in the file based on the buffer map information of the neighbor nodes;
A transmission / reception scheme determination unit determining a transmission / reception scheme of each of one or more selected chunks of the one or more chunks based on the rareness; And
Transmitting and receiving unit for transmitting and receiving each of the selected one or more chunks according to the determined transmission and reception scheme
Wherein the buffer map information includes information about whether the neighbor node owns each of the one or more chunks, and the rareness is between the node and the neighbor nodes within the P2P network. Each of the chunks is indicative of spread, and the transmission / reception scheme is a push scheme or a pull scheme.
제9항에 있어서,
상기 희귀도는 상기 노드 및 상기 이웃 노드들 내에서의 상기 하나 이상의 청크들 각각의 등장 횟수의 역수인, 네트워크 노드.
10. The method of claim 9,
And said rareness is an inverse of the number of appearances of each of said one or more chunks in said node and said neighboring nodes.
제9항에 있어서,
상기 송수신 방식 결정부는 상기 하나 이상의 청크들 중 제1 청크의 상기 희귀도가 제1 미리 정의된 값 이상이고, 상기 노드가 상기 제1 청크를 소유한 경우 상기 제1 청크를 고희귀 청크로서 선택하고,
상기 송수신부는 상기 고희귀 청크를 상기 이웃 노드들 중 상기 고희귀 청크를 포함하지 않은 노드에게 전송하는, 네트워크 노드.
10. The method of claim 9,
The transmission / reception scheme determination unit selects the first chunk as a high rare chunk when the rareness of the first chunk of the one or more chunks is equal to or greater than a first predefined value and the node owns the first chunk. ,
The transceiver unit transmits the high rare chunk to a node that does not include the high rare chunk among the neighboring nodes.
제9항에 있어서,
상기 송수신 방식 결정부는 상기 하나 이상의 청크들 중 제2 청크의 상기 희귀도가 제1 미리 정의된 값 미만이고, 상기 이웃 노드들 중 하나 이상의 노드가 상기 제2 청크를 소유하고, 상기 노드가 상기 제2 청크를 소유하지 않은 경우 상기 제2 청크를 희귀 청크로서 선택하고,
상기 송수신부는 상기 이웃 노드들 중 상기 희귀 청크를 포함한 노드에게 상기 희귀 청크의 전송을 요청하고, 상기 이웃 노드로부터 상기 희귀 청크를 수신하는, 네트워크 노드.
10. The method of claim 9,
The transmission / reception scheme determining unit may be configured that the rareness of the second chunk of the one or more chunks is less than a first predefined value, at least one node of the neighboring nodes owns the second chunk, and the node is configured as the first chunk. 2 if the chunk is not owned, select the second chunk as a rare chunk,
The transceiver unit requests a node including the rare chunk of the neighbor nodes to transmit the rare chunk, and receives the rare chunk from the neighbor node.
피어-투-피어(Peer-to-Peer; P2P) 네트워크 내의 노드가 이웃 노드들과 파일을 공유하는 방법에 있어서,
상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 단계;
상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계; 및
상기 선택된 하나 이상의 청크들을 상기 결정된 송수신 방식에 따라 송수신하는 단계
를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 버퍼 맵 격차는 상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보 간의 격차를 의미하고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 파일 공유 방법.
A method in which nodes in a peer-to-peer network share files with neighboring nodes,
Calculating a buffer map gap based on buffer map information of the neighbor nodes and buffer map information of the node;
Determining a transmission / reception scheme of one or more selected chunks of the one or more chunks based on the buffer map gap; And
Transmitting / receiving the selected one or more chunks according to the determined transmission / reception scheme
Wherein the buffer map information includes information about whether the neighbor node owns each of the one or more chunks, and the buffer map gap is between buffer map information of the neighbor nodes and buffer map information of the node. Means the gap, the transmission and reception method is a file sharing method, a push method or a pull method.
제13항에 있어서,
상기 이웃 노드들로부터 상기 버퍼 맵 정보를 수신하는 단계
를 더 포함하는, 파일 공유 방법.
The method of claim 13,
Receiving the buffer map information from the neighbor nodes
Further comprising, file sharing method.
제13항에 있어서,
상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 단계는,
상기 이웃 노드들 전체의 버퍼 맵들 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 전체에 대한 상기 버퍼 맵 격차를 계산하는 단계
를 포함하고,
상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계는,
상기 버퍼 맵 격차가 제1 미리 정의된 값 이상일 경우 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계; 및
상기 버퍼 맵 격차가 상기 제1 미리 정의된 값 미만일 경우 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 13,
Computing a buffer map gap based on the buffer map information of the neighbor nodes and the buffer map information of the node,
Calculating the buffer map gap for all of the neighbor nodes based on the buffer maps of all the neighbor nodes and the buffer map of the node.
Including,
The method of transmitting and receiving the one or more selected chunks of the one or more chunks based on the buffer map gap may include:
Determining a pull scheme as a transmission / reception scheme of the one or more selected chunks when the buffer map gap is equal to or greater than a first predefined value; And
Determining a push method as a transmission / reception method of the one or more selected chunks when the buffer map gap is less than the first predefined value.
Including, file sharing method.
제15항에 있어서,
상기 이웃 노드들 전체에 대한 상기 버퍼 맵 격차는 하기의 수학식 1에 기반하여 결정되는, 파일 공유 방법.
[수학식 1]
Figure 112010081534613-pat00004

여기서, DCi(j)는 상기 하나 이상의 청크들 중 상기 노드가 소유하고, 상기 이웃 노드들 중 j번째 이웃 노드가 소유하지 않은 청크의 개수이고, m은 상기 이웃 노드의 개수임.
16. The method of claim 15,
The buffer map gap for all of the neighbor nodes is determined based on Equation 1 below.
[Equation 1]
Figure 112010081534613-pat00004

Where DC i (j) is the number of chunks owned by the node of the one or more chunks and not owned by the j th neighbor node of the neighboring nodes, and m is the number of neighbor nodes.
제15항에 있어서,
상기 제1 미리 정의된 값은 상기 노드의 버퍼 맵의 크기 및 상기 이웃 노드들의 개수에 기반하여 결정되는, 파일 공유 방법.
16. The method of claim 15,
And the first predefined value is determined based on a size of the node's buffer map and the number of neighboring nodes.
제15항에 있어서,
상기 버퍼 맵 격차가 제1 미리 정의된 값 이상일 경우 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계는,
상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 단계; 및
상기 하나 이상의 청크들 중 제1 청크의 상기 희귀도가 제2 미리 정의된 값 이상이고, 상기 노드가 상기 제1 청크를 소유한 경우 상기 제1 청크를 풀 방식으로 전송할 상기 선택된 청크로 결정하는 단계
를 포함하고, 상기 희귀도는 상기 P2P 네트워크 내에서 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 퍼진 정도를 나타내는, 파일 공유 방법.
16. The method of claim 15,
When the buffer map gap is greater than or equal to a first predefined value, determining a pull method as a transmission / reception method of the one or more selected chunks,
Calculating a rareness of each of the one or more chunks included in the file based on buffer map information of the neighbor nodes; And
Determining the rareness of the first chunk of the one or more chunks is greater than or equal to a second predefined value, and if the node owns the first chunk, transferring the first chunk to the selected chunk in a pull manner;
And wherein the rarity indicates a degree to which each of the one or more chunks has spread between the node and the neighboring nodes within the P2P network.
제13항에 있어서,
상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 단계는,
상기 이웃 노드들 각각의 버퍼 맵 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 각각에 대한 상기 버퍼 맵 격차를 계산하는 단계
를 포함하고,
상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계는,
상기 이웃 노드들 각각의 상기 버퍼 맵 격차에 기반하여 상기 이웃 노드들 각각으로의 상기 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계
를 포함하는, 파일 공유 방법.
The method of claim 13,
Computing a buffer map gap based on the buffer map information of the neighbor nodes and the buffer map information of the node,
Calculating the buffer map gap for each of the neighbor nodes based on the buffer map of each of the neighbor nodes and the buffer map of the node.
Including,
The method of transmitting and receiving the one or more selected chunks of the one or more chunks based on the buffer map gap may include:
Determining a transmission / reception scheme of the one or more selected chunks to each of the neighbor nodes based on the buffer map gap of each of the neighbor nodes.
Including, file sharing method.
제19항에 있어서,
상기 이웃 노드들 각각의 상기 버퍼 맵 격차에 기반하여 상기 이웃 노드들 각각으로의 상기 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 단계는,
상기 이웃 노드들 중 제1 이웃 노드의 상기 버퍼 맵 격차가 제3 미리 정의된 값 이상인 경우 상기 제1 이웃 노드에 대해 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계; 및
상기 이웃 노드들 중 제2 이웃 노드의 상기 버퍼 맵 격차가 상기 제3 미리 정의된 값 미만인 경우 상기 제2 이웃 노드에 대해 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는 단계
를 포함하는, 파일 공유 방법.
20. The method of claim 19,
The method of transmitting and receiving the one or more selected chunks to each of the neighbor nodes based on the buffer map gap of each of the neighbor nodes may include:
Determining a pull scheme for the first neighbor node as a transmission / reception scheme of the one or more selected chunks when the buffer map gap of the first neighbor node of the neighbor nodes is equal to or greater than a third predefined value; And
Determining a push method as the transmission / reception scheme of the one or more selected chunks for the second neighbor node when the buffer map gap of the second neighbor node of the neighbor nodes is less than the third predefined value.
Including, file sharing method.
제19항에 있어서,
상기 이웃 노드들 각각에 대한 상기 버퍼 맵 격차는 하기의 수학식 2에 기반하여 결정되는, 파일 공유 방법.
[수학식 2]
Figure 112010081534613-pat00005

여기서, DCi(j)는 상기 하나 이상의 청크들 중 상기 노드가 소유하고, 상기 이웃 노드들 중 j번째 이웃 노드가 소유하지 않은 청크의 개수임.
20. The method of claim 19,
The buffer map gap for each of the neighbor nodes is determined based on Equation 2 below.
&Quot; (2) "
Figure 112010081534613-pat00005

Where DC i (j) is the number of chunks owned by the node of the one or more chunks and not owned by the j th neighbor node of the neighboring nodes.
이웃 노드들과 파일을 공유하는 피어-투-피어(Peer-to-Peer; P2P) 네트워크 내의 노드에 있어서,
상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보에 기반하여 버퍼 맵 격차를 계산하는 버퍼 맵 격차 계산부;
상기 버퍼 맵 격차에 기반하여 상기 하나 이상의 청크들 중 하나 이상의 선택된 청크들의 송수신 방식을 결정하는 송수신 방식 결정부; 및
상기 선택된 하나 이상의 청크들을 상기 결정된 송수신 방식에 따라 송수신하는 송수신부
를 포함하고, 상기 버퍼 맵 정보는 상기 이웃 노드가 상기 하나 이상의 청크들 각각을 소유하는지 여부에 대한 정보를 포함하고, 상기 버퍼 맵 격차는 상기 이웃 노드들의 버퍼 맵 정보 및 상기 노드의 버퍼 맵 정보 간의 격차를 의미하고, 상기 송수신 방식은 푸쉬 방식 또는 풀 방식인, 네트워크 노드.
In a node in a peer-to-peer (P2P) network that shares files with neighboring nodes,
A buffer map gap calculator configured to calculate a buffer map gap based on the buffer map information of the neighbor nodes and the buffer map information of the node;
A transmission / reception scheme determination unit determining a transmission / reception scheme of one or more selected chunks of the one or more chunks based on the buffer map gap; And
Transmitting and receiving unit for transmitting and receiving the selected one or more chunks according to the determined transmission and reception scheme
Wherein the buffer map information includes information about whether the neighbor node owns each of the one or more chunks, and the buffer map gap is between buffer map information of the neighbor nodes and buffer map information of the node. Means a gap, wherein the transmission and reception method is a push method or a pull method.
제22항에 있어서,
상기 버퍼 맵 격차 계산부는 상기 이웃 노드들 전체의 버퍼 맵들 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 전체에 대한 상기 버퍼 맵 격차를 계산하고,
상기 송수신 방식 결정부는 상기 버퍼 맵 격차가 제1 미리 정의된 값 이상일 경우 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하고, 상기 버퍼 맵 격차가 상기 제1 미리 정의된 값 미만일 경우 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는, 네트워크 노드
The method of claim 22,
The buffer map gap calculator calculates the buffer map gap for all of the neighbor nodes based on the buffer maps of all the neighbor nodes and the buffer map of the node.
The transmission / reception scheme determination unit determines a pull scheme as the transmission / reception scheme of the one or more selected chunks when the buffer map gap is greater than or equal to a first predefined value, and selects a push scheme when the buffer map gap is less than the first predefined value. A network node that determines the transmission and reception of the one or more selected chunks
제23항에 있어서,
상기 이웃 노드들의 버퍼 맵 정보에 기반하여 상기 파일이 포함하는 하나 이상의 청크들 각각의 희귀도를 계산하는 희귀도 계산부
를 더 포함하고,
상기 송수신 방식 결정부는 상기 하나 이상의 청크들 중 제1 청크의 상기 희귀도가 제2 미리 정의된 값 이상이고, 상기 노드가 상기 제1 청크를 소유한 경우 상기 제1 청크를 풀 방식으로 전송할 상기 선택된 청크로 결정하고.
상기 희귀도는 상기 P2P 네트워크 내에서 상기 노드 및 상기 이웃 노드들 간에 상기 하나 이상의 청크들 각각이 퍼진 정도를 나타내는, 네트워크 노드.
24. The method of claim 23,
A rareness calculator for calculating a rareness of each of the one or more chunks included in the file based on the buffer map information of the neighbor nodes.
Further comprising:
The transmission / reception scheme determining unit is configured to transmit the first chunk in a pull manner when the rareness of the first chunk of the one or more chunks is equal to or greater than a second predefined value and the node owns the first chunk. Decided in chunks.
And said rareness represents the extent to which each of said one or more chunks has spread between said node and said neighboring nodes within said P2P network.
제22항에 있어서,
상기 버퍼 맵 격차 계산부는 상기 이웃 노드들 각각의 버퍼 맵 및 상기 노드의 버퍼 맵에 기반하여 상기 이웃 노드들 각각에 대한 상기 버퍼 맵 격차를 계산하고,
상기 송수신 방식 결정부는 상기 이웃 노드들 각각의 상기 버퍼 맵 격차에 기반하여 상기 이웃 노드들 각각으로의 상기 하나 이상의 선택된 청크들의 송수신 방식을 결정하는, 네트워크 노드.
The method of claim 22,
The buffer map gap calculator calculates the buffer map gap for each of the neighbor nodes based on the buffer map of each of the neighbor nodes and the buffer map of the node,
The transmission / reception scheme determination unit determines a transmission / reception scheme of the one or more selected chunks to each of the neighbor nodes based on the buffer map gap of each of the neighbor nodes.
제25항에 있어서,
상기 송수신 방식 결정부는 상기 이웃 노드들 중 제1 이웃 노드의 상기 버퍼 맵 격차가 제3 미리 정의된 값 이상인 경우 상기 제1 이웃 노드에 대해 풀 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하고, 상기 이웃 노드들 중 제2 이웃 노드의 상기 버퍼 맵 격차가 상기 제3 미리 정의된 값 미만인 경우 상기 제2 이웃 노드에 대해 푸쉬 방식을 상기 하나 이상의 선택된 청크들의 송수신 방식으로서 결정하는, 네트워크 노드.
26. The method of claim 25,
The transmission / reception scheme determination unit determines a pull scheme as the transmission / reception scheme of the one or more selected chunks for the first neighbor node when the buffer map gap of the first neighbor node among the neighbor nodes is equal to or greater than a third predefined value, And determine a push method for the second neighbor node as a transmission / reception scheme of the one or more selected chunks when the buffer map gap of a second neighbor node of the neighbor nodes is less than the third predefined value.
KR1020100126250A 2010-12-10 2010-12-10 Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution KR101252947B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100126250A KR101252947B1 (en) 2010-12-10 2010-12-10 Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100126250A KR101252947B1 (en) 2010-12-10 2010-12-10 Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution

Publications (2)

Publication Number Publication Date
KR20120064969A KR20120064969A (en) 2012-06-20
KR101252947B1 true KR101252947B1 (en) 2013-04-15

Family

ID=46684883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100126250A KR101252947B1 (en) 2010-12-10 2010-12-10 Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution

Country Status (1)

Country Link
KR (1) KR101252947B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020082915A (en) * 2001-04-24 2002-11-01 김덕수 Processed Freshwater Prawn Food
WO2019235864A1 (en) * 2018-06-05 2019-12-12 주식회사 네트워크디파인즈 Method and apparatus for proving data delivery in untrusted network

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102148147B1 (en) * 2013-10-21 2020-08-26 에스케이텔레콤 주식회사 Method for distributing a content and apparatus thereof
KR101883282B1 (en) * 2016-07-07 2018-07-30 홍익대학교 산학협력단 P2p vod system, server and hibrid buffering method of the same
CN108429635B (en) * 2018-01-31 2021-01-05 昆明理工大学 Data transmission method used in distributed environment

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080081933A (en) * 2006-01-09 2008-09-10 톰슨 라이센싱 Multimedia content delivery method and system
KR20090073097A (en) * 2006-09-15 2009-07-02 톰슨 라이센싱 File repair method for a content distribution system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080081933A (en) * 2006-01-09 2008-09-10 톰슨 라이센싱 Multimedia content delivery method and system
KR20090073097A (en) * 2006-09-15 2009-07-02 톰슨 라이센싱 File repair method for a content distribution system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020082915A (en) * 2001-04-24 2002-11-01 김덕수 Processed Freshwater Prawn Food
WO2019235864A1 (en) * 2018-06-05 2019-12-12 주식회사 네트워크디파인즈 Method and apparatus for proving data delivery in untrusted network
KR20190138614A (en) * 2018-06-05 2019-12-13 주식회사 네트워크디파인즈 Method and Apparatus for Proof of Delivery in a Trustless Network
US11038958B2 (en) 2018-06-05 2021-06-15 Network Defines Inc. Method and apparatus for proving data delivery in untrusted network
KR102441087B1 (en) 2018-06-05 2022-09-07 주식회사 네트워크디파인즈 Method and Apparatus for Proof of Delivery in a Trustless Network

Also Published As

Publication number Publication date
KR20120064969A (en) 2012-06-20

Similar Documents

Publication Publication Date Title
Shen et al. Peer-to-peer media streaming: Insights and new developments
US9325786B2 (en) Peer-to-peer interactive media-on-demand
CN107223325B (en) Method and system for adaptive virtual broadcasting of digital content
Zhang et al. Understanding the power of pull-based streaming protocol: Can we do better?
Sweha et al. Angelcast: cloud-based peer-assisted live streaming using optimized multi-tree construction
KR20110026215A (en) Terminal, seed server and tracker server for reducing delay in streaming service
WO2010045511A2 (en) Methods and systems for delivering content
KR101231208B1 (en) Method for providing peering suggestion list, method for establishing p2p network, p2p application apparatus, terminal for establishing p2p network and network apparatus
KR101252947B1 (en) Method and apparatus for push-pull hybrid streaming adaptive to video chunk distribution
JP4475521B2 (en) Channel merge for video on demand
JP5724139B2 (en) P2P Internet live broadcast service system and method for forming a P2P tree structure according to the number of sessions
US20130275602A1 (en) Hop-By-Hop Bandwidth Consumption Measurements Control Cooperation Between Clients on a Data Network
Goh et al. A comparative study of tree-based and mesh-based overlay p2p media streaming
Sayit et al. Adaptive, incentive and scalable dynamic tree overlay for P2P live video streaming
Okada et al. A new approach for the construction of ALM trees using layered video coding
Balasubramanian et al. An improved delay resistant adaptive multicasting strategy for high definition video delivery in wireless overlay network
Bouten et al. An autonomic delivery framework for HTTP adaptive streaming in multicast-enabled multimedia access networks
Meskovic et al. Content delivery architectures for live video streaming: hybrid cdn-p2p as the best option
Kao et al. I2CC: Interleaving two-level cache with network coding in peer-to-peer VoD system
Riad et al. A framework for cloud P2P VoD system based on user's behavior analysis
Wang et al. SmartPeerCast: a Smart QoS driven P2P live streaming framework
Gazdar et al. Toward a full peer to peer MPEG-DASH compliant streaming system
Machado et al. Structured peer-to-peer real time video transmission over vehicular ad hoc networks
Erman On BitTorrent media distribution
Yang Deliver multimedia streams with flexible qos via a multicast dag

Legal Events

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

Payment date: 20160401

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee