KR101359081B1 - 성능 인식 p2p 콘텐트 온 디맨드 - Google Patents
성능 인식 p2p 콘텐트 온 디맨드 Download PDFInfo
- Publication number
- KR101359081B1 KR101359081B1 KR1020087031636A KR20087031636A KR101359081B1 KR 101359081 B1 KR101359081 B1 KR 101359081B1 KR 1020087031636 A KR1020087031636 A KR 1020087031636A KR 20087031636 A KR20087031636 A KR 20087031636A KR 101359081 B1 KR101359081 B1 KR 101359081B1
- Authority
- KR
- South Korea
- Prior art keywords
- content
- subclips
- subclip
- downloading
- peer
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W92/00—Interfaces specially adapted for wireless communication networks
- H04W92/04—Interfaces between hierarchically different network devices
- H04W92/10—Interfaces between hierarchically different network devices between terminal device and access point, i.e. wireless air interface
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/16—Analogue secrecy systems; Analogue subscription systems
- H04N7/173—Analogue secrecy systems; Analogue subscription systems with two-way working, e.g. subscriber sending a programme selection signal
- H04N7/17309—Transmission or handling of upstream communications
- H04N7/17336—Handling of requests in head-ends
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1076—Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
- H04L67/1078—Resource delivery mechanisms
- H04L67/108—Resource delivery mechanisms characterised by resources being split in blocks or fragments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/239—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests
- H04N21/2393—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests
- H04N21/2396—Interfacing the upstream path of the transmission network, e.g. prioritizing client content requests involving handling client requests characterized by admission policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/25—Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
- H04N21/262—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
- H04N21/26208—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints
- H04N21/26233—Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists the scheduling operation being performed under constraints involving content or additional data duration or size, e.g. length of a movie, size of an executable file
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/47—End-user applications
- H04N21/472—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
- H04N21/47202—End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for requesting content on demand, e.g. video on demand
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1063—Discovery through centralising entities
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
스트리밍된 선두 콘텐트 서브클립을 수신하는 단계, 필요한 콘텐트 서브클립들의 세트를 결정하는 단계, 상기 필요한 콘텐트 서브클립들의 세트 중 하나의 콘텐트 서브클립을 찾는 단계 및 상기 찾아진 콘텐트 서브클립을 다운로딩하는 단계를 포함하는 방법이 설명된다. 피어, 서버 및 트래커를 갖는, 콘텐트 온 디맨드를 제공하는 시스템이 설명된다. 상기 트래커는 상기 서버와 같은 곳에 배치될 수 있다. 상기 피어는 스트리밍된 선두 콘텐트 서브클립을 수신하는 수단, 필요한 콘텐트 서브클립들의 세트를 결정하는 수단, 상기 필요한 콘텐트 서브클립들의 세트 중 하나의 콘텐트 서브클립을 찾는 수단 및 상기 찾아진 콘텐트 서브클립을 다운로딩하는 수단을 포함한다.
P2P(peer-to-peer), 콘텐트 온 디맨드, 스트리밍, 다운로딩, 서브클립
Description
본 발명은 P2P(peer-to-peer) 네트워킹에 관한 것으로, 특히, 시스템 성능을 고려하여 피어 비디오 다운로딩(P2P 네트워크에서 피어들에 의한 데이터/비디오의 다운로딩)을 제공하는 P2P 네트워크를 이용한 비디오 온 디맨드(video-on-demand)의 제공에 관한 것이다.
전통적으로, 스트리밍 서비스를 제공하기 위해 클라이언트-서버 서비스 모델이 이용되었다. 클라이언트는 서버에 요청을 보내고, 그 후, 서버가 클라이언트의 요청을 지원(serve)할 만큼의 충분한 리소스들을 갖고 있고 서버와 클라이언트 사이의 경로를 따라 충분한 대역폭이 있다면 서버는 클라이언트에 콘텐트를 스트리밍한다.
서버에서의 제한된 계산 및 저장 리소스 및 서버와 클라이언트들을 접속하는 네트워크에서의 제한된 대역폭으로 인해, 서버-클라이언트 스트리밍 서비스에서는 확장성(scalability)이 문제가 되었다. 근래, 스트리밍 서비스에 P2P 기법들이 도입되었다. 피어들은 클라이언트 및 서버의 능력을 갖도록 구현되어 콘텐트를 능동적으로 캐싱하고 다른 피어들을 지원함으로써 서버에 지워지는 작업 부하를 경감하 고 네트워크를 가로질러 대역폭 요건들을 분산시키도록 기여한다. 연구에 따르면 P2P 기법들은 시스템 확장성을 크게 개선하여, 시스템이 훨씬 더 많은 사용자들을 지원할 수 있게 한다는 것이 확인되었다.
P2P 네트워킹을 이용한 스트리밍 미디어 서비스에서 제기되는 확장성 문제를 해결하기 위한 상당한 노력들이 있었다. 이러한 노력들은 2개의 카테고리 특히 P2P 라이브 스트리밍 및 P2P 저장 비디오 스트리밍 또는 비디오 온 디맨드로 분류될 수 있다. 양쪽 서비스들은 P2P 기술을 이용하여 다수의 사용자들을 지원함과 동시에 사용자들에게 양질의 시청 품질(viewing quality)을 제공하려고 노력하지만, 그것들은 또한 서로 다른 기술적 난제들에 직면한다. P2P 라이브 스트리밍에서는, 시스템 확장성을 희생시키지 않고 시동 지연을 최소화하는 것이 난제이다. P2P 비디오 온 디맨드 서비스에서는, 비동기 사용자들이 공유할 수 있게 하는 것이 난제이다.
P2P 스크리밍 스킴들은 또한 서로 다른 데이터 보급 기법들에 의해 그들 자신을 구별한다. 2가지 데이터 보급 방법들이 연구되었다 - 특히 오버레이 기반 접근법(overlay-based approach) 및 데이터 구동 접근법(data-driven approach). 오버레이 기반 접근법에서는, 피어들은 그 피어들 사이에 부모-자식 관계가 형성되는 망 구조 또는 트리 구조를 형성한다. 자식 피어는 그의 부모로부터 데이터를 수신한다. 이와 대비하여, 데이터 구동 접근법에서의 피어들은 고정된 부모-자식 관계를 갖지 않는다. 피어들은 누락 데이터(missing data)를 찾고, 어디든지 이용가능한 곳에서 그 누락 데이터를 검색한다. 오버레이 기반 접근법은 초기 P2P 노력에 서 널리 사용되는 반면, 데이터 구동 접근법은 천(churn) 및 비대칭 대역폭 문제를 효과적으로 해결하기 때문에 더 많이 보급되고 있다.
대부분의 선행 기술 노력들은 양호한 확장성을 나타내고 전통적인 클라이언트-서버 서비스 모델에 비하여 더 많은 수의 사용자들을 지원하지만, 그 선행 기술 스킴들은 사실상 최선의 노력이고 시스템 성능 요건들의 지원이 완전히 연구되지는 않았다.
[발명의 개요]
본 발명은 성능 인식 P2P 비디오 온 디맨드 서비스에 관한 것이다. 본 발명은 전통적인 클라이언트-서버 비디오 온 디맨드 서비스 모델에 P2P 다운로딩을 통합한다. P2P 다운로딩은 대부분의 데이터 전송 부하를 감당하고, 따라서, 서버에 지워지는 작업부하를 상당히 감소시킨다. 따라서 서버는 성능 요건을 만족시키기 위해 그의 리소소들 대부분을 긴급한 데이터를 제공하는 데 바친다. 클라이언트 측에서의 인식된 성능이 개선된다. P2P 다운로딩 알고리즘은 성능 요건을 고려하여 설계된다.
비디오 온 디맨드 서비스는 사용자들이 그들이 원할 때는 언제나 네트워크를 통하여 비디오 콘텐트를 선택하고 시청할 수 있게 한다. 본 발명은 비디오 온 디맨트 환경에서 콘텐트 공유를 가능하게 하는 분할된(segmented) P2P 비디오 공유 모델을 포함한다. 성능 문제는 전통적인 클라이언트-서버 서비스 모델에 의해 제공되는 성능과 유사한 성능을 집합적으로 실현하지만 보다 많은 사용자들/요청들을 지원하는 성능 인식 P2P 데이터 다운로딩 알고리즘 및 서버를 이용한 보완적 스트 리밍(server-assisted complementary streaming)을 통합함으로써 해결된다.
본 발명의 방법 및 시스템은 사용자의 시청 경험을 개선하기 위해 데이터 구동 접근법을 이용하고 실시간 스케줄링 알고리즘을 P2P 데이터 보급 프로세스에 통합하는 P2P 비디오 온 디맨드 서비스에 관한 것이다. 시스템 성능, 특히 요청된 비디오의 사용자에 의한 적시의 수신은, 사용자의 전체적인 시청 경험이 개선되고 전체적인 비디오 품질이 개선되는 것을 의미한다는 것을 알아야 한다. 본 발명의 시스템 성능 인식 데이터 공유 및 보완적 서버 스트리밍은 클라이언트/사용자 측에서 시청 품질을 개선한다.
스트리밍된 선두 비디오 서브클립(streamed leading video sub-clip)을 수신하는 단계, 필요한 비디오 서브클립들의 세트를 결정하는 단계, 상기 필요한 비디오 서브클립들의 세트 중 하나의 비디오 서브클립을 찾는(locate) 단계 및 상기 찾아진 비디오 서브클립을 다운로딩하는 단계를 포함하는, 비디오 온 디맨드 서비스를 제공하는 방법이 설명된다. 피어, 서버 및 트래커(tracker)를 갖는, 비디오 온 디맨드를 제공하는 시스템이 설명된다. 상기 트래커는 상기 서버와 같은 곳에 배치될 수 있다. 상기 피어는 스트리밍된 선두 비디오 서브클립을 수신하는 수단, 필요한 비디오 서브클립들의 세트를 결정하는 수단, 상기 필요한 비디오 서브클립들의 세트 중 하나의 비디오 서브클립을 찾는 수단 및 상기 찾아진 비디오 서브클립을 다운로딩하는 수단을 포함한다.
본 발명은 다음의 상세한 설명을 첨부 도면들과 함께 읽었을 때 가장 잘 이 해된다. 도면들은 아래에서 간략히 설명되는 다음의 도들을 포함하고, 이 도들에서 유사한 번호들은 유사한 요소들을 나타낸다.
도 1은 본 발명에 따른 P2P 네트워크의 개략도이다.
도 2는 본 발명에 따른 P2P 네트워크를 나타내는 도이다.
도 3은 서버 측으로부터의 승인 제어 프로세스의 플로차트이다.
도 4는 사용자/클라이언트 측으로부터의 승인 제어 프로세스의 플로차트이다.
비디오 온 디맨드 서비스의 사용자들은 임의의 주어진 순간에 비디오의 서로 다른 부분들을 시청한다. 사용자들 사이에 콘텐트 공유를 가능하게 하고 P2P 네트워크를 통하여 전달되는 콘텐트의 양을 최대화하기 위하여, 각 사용자는 재생된 콘텐트의 부분 사본 및/또는 전체 사본을 캐싱할 저장 용량을 갖고 있다고 가정한다. 이것은 비디오 재생 장치들의 빠르게 증가하는 저장 용량을 가정했을 때 정당한 가정이다. 비디오 재생 장치는 비디오(저장 또는 라이브)를 수신하고 재생할 수 있는 임의의 장치이고, 이는 컴퓨터, 랩톱, PDA(personal digital assistant) 및 모바일 장치를 포함하지만 이에 제한되지는 않는다는 것을 알아야 한다. P2P 네트워크는 유선 네트워크에 제한되지 않고 무선 또는 유선 네트워크 또는 유선 및 무선 접속을 모두 채용하는 하이브리드 네트워크일 수 있다.
본 발명의 분할된 P2P 비디오 온 디맨드 방법 및 장치에서, 비디오 클립은 복수의 같은 길이 세그먼트들로 분할된다. 이 세그먼트는 서브클립(sub-clip)으로 명명된다. 서브클립의 시작의 재생 시간은 이 서브클립의 데드라인으로 정의된다. 사용자들이 바로 재생을 시작할 수 있도록 선두 서브클립들이 비디오 재생 장치에 스트리밍된다. 한편, 후속 서브클립들의 데이터를 프리페치(pre-fetch)하기 위하여 사용자들 사이에 P2P 네트워크가 확립된다. 본 발명의 시스템 성능 인식 스킴에 따르면, 서브클립의 데이터는 그의 데드라인 전에 프리페치되어야 한다. 일단 서브클립의 재생이 시작되면, 그 서브클립의 P2P 다운로딩은 허용되지 않는다. 그 이유는 새로이 다운로딩된 데이터는 구식이 될(outdated) 수 있기 때문이다. 오리지널 서버로부터의 보완적 스트리밍은 보다 나은 시스템 성능을 위하여 이 시점부터 개시된다. 보완적 스트리밍에 대해서는 후술한다.
본 발명의 분할된 P2P 비디오 온 디맨드가 수신 요청들(incoming requests)을 어떻게 지원하는지를 설명하기 위해 하나의 예가 이용된다. 이 예에서는, 사용자들이 비디오의 전체 사본을 캐싱할 수 있다고 가정한다. 비디오 사본의 일부만이 캐싱되더라도 동일한 기법이 적용된다. 또한 서버는 제1 서브클립만을 스트리밍하고 후속 서브클립들의 데이터는 P2P 네트워크를 이용하여 다운로딩된다고 가정한다. 스트리밍된 서브클립들의 수를 계산하는 알고리즘은 아래에서 제시되고 설명될 것이다.
이제 도 1을 참조하면, 클라이언트/사용자 1은 시간 t1에서 서버로부터 비디오에 대한 요청/요구를 행한다. 서버는 바로 서브클립 1(제1 비디오 서브클립)을 클라이언트 1에 스트리밍하여, 클라이언트 1이 즉시 재생을 시작할 수 있도록 한다. 이와 동시에 P2P 네트워크 내에서 서브클립 2를 갖는/캐싱하는 피어를 찾기 위한 시도가 행해진다. 이 순간, 서브클립 2를 갖는/캐싱하는 P2P 네트워크 내의 유일한 피어는, 피어로서 작용할 수 있는, 서버이다. 클라이언트 1과 서버(적어도)는 둘 다 P2P 네트워크의 멤버들이다. 시간 t2에서는, 클라이언트 1이 서브클립 1을 재생하고 있고, 한편 서브클립 2가 서버로부터 다운로딩(스트리밍이 아님)되고 있다. 클라이언트/사용자 2는 서버로부터 동일한 비디오에 대한 요청/요구를 행하고, 서버로부터 클라이언트 2로 스트리밍된 서브클립 1의 재생을 바로 시작한다. 서버와 클라이언트 1은 둘 다 서브클립 2를 클라이언트 2에 다운로딩(스트리밍이 아님)하기 시작한다. 이 순간, 서버, 클라이언트 1, 및 클라이언트 2는 P2P 네트워크 내의 피어들이다. 시간 t3에서는, 클라이언트 3이 서버로부터 동일한 비디오에 대한 요청/요구를 행하고, 서버로부터 스트리밍된 서브클립 1의 재생을 바로 시작한다. 지금쯤은 이미 클라이언트 1은 서브클립 3을 재생하고 있고 서브클립 4의 데이터/비디오를 다운로딩하고 있다. 클라이언트 2는 서브클립 2를 재생하고 있고 서브클립 3을 다운로딩하고 있다. 이 시간에, 서버, 클라이언트 1, 클라언트 2 및 클라이언트 3(적어도)은 P2P 네트워크의 멤버들이다. 클라이언트 3은 서버, 클라이언트 1, 및 클라이언트 2로부터 서브클립 2를 다운로딩할 수 있다. 시간이 지나면서, 피어 비디오 재생은 계속된다. P2P 다운로딩은, t4의 현재 시간과 함께 도 1에서 도시된 바와 같이, 현재 재생되고 있는 서브클립 다음에 오는 서브클립의 데이터를 프리페치한다. 시간 t5 무렵에는, 클라이언트 1은 이미 그의 비디오 재생을 완료하여 시스템에서 나갔다. 클라이언트 2는 마지막 서브클립을 재생하고 있고 클라이언트 3은 서브클립 4를 재생하고 있고 서브클립 5를 다운로딩하고 있다. 서버 및 제2 클라이언트는 서브클립 5를 다운로딩하기 위한 P2P 네트워크 내의 피어들이다. 마침내, 클라이언트 2도 비디오 재생을 완료한 후 시스템에서 나갔다. 클라이언트 3은 서브클립 5를 시청/재생하고 있고 서브클립 5의 종료시에 시스템에서 나갈 것이다.
도 2는 본 발명에 따른 P2P 네트워크를 나타내는 도이다. 서버(205)는 비디오의 전체 사본을 갖고 있고 비디오 서브클립들을 스트리밍하거나 P2P 네트워크에서 피어로서 작용하여 다른 피어들(210)에게 서브클립들을 다운로딩할 수 있다. 일단 피어(210)가 서버(205)로부터 비디오를 요청/요구하면, 그것은 P2P 네트워크에 가담(join)하였고 그 후 다른 피어들(210)로부터 후속 서브클립들을 다운로딩하고 및/또는 서브클립들을 다른 피어들(210)에 다운로딩할 수 있다. 서브클립들은 서버(205)로부터만 스트리밍된다. 통상적으로 선두 서브클립들만이 서버(205)로부터 비디오를 요청/요구하는 피어(210)에 스트리밍되고 나머지 서브클립들은 서버(205)로부터 다른 피어(210)에 다운로딩된다. 그러나, 다운로딩 레이트가 피어가 다운로딩된 서브클립을 데드라인 전에 수신하기에 충분하지 않다면 서버로부터 피어로 서브클립을 스트리밍하는 것이 가능하다. 트래커(215)는 개별 엔티티로서 구현될 수 있고 또는 서버(205)의 일부로서 구현될 수 있다. 만일 트래커(215)가 개별 엔티티로서 구현된다면 서버(205)와 트래커(215) 사이에 시그널링이 존재하고, 트래커(215)는 피어들이 P2P 네트워크에 가담하고 P2P 네트워크에서 나갈 때 P2P 네트워크에서 피어들을 계속 추적한다. 트래커는 또한 P2P 네트워크 내의 어느 피어가 어떤 다운로딩 가능한 서브클립들을 갖고 있는지와 다양한 피어들의 상태(피어가 다른 피어에 의한 다운로딩을 위해 이용 가능한 서브클립들을 갖고 있는지 여부 및 어느 서브클립들이 각 피어에 의해 다운로딩될 필요가 있는지)를 계속 추적한다. 일단 피어가 서브클립을 수신하면, 그 서브클립은 그 피어에 의한 그 서브클립을 필요로 하는 다른 피어들로의 다운로딩을 위해 이용 가능하다고 간주된다. 양쪽에 머리가 있는 화살표를 갖는 흐름 라인들은 서브클립 다운로딩을 나타낸다. 한쪽에 머리가 있는 화살표를 갖는 흐름 라인들은 서브클립 스트리밍을 나타낸다(서버만이 스트리밍할 수 있다). 대시선/파선 흐름 라인들은 시그널링을 나타낸다.
도 3은 서버 측으로부터의 승인 제어 프로세스의 플로차트이다. 비디오에 대한 새로운 요청/요구가 서버에 행해진다. 서버에 새로운 요청이 도달하면, 승인 제어 프로세스(305)가 호출되고 수집된 통계에 기초하여 진행된다. 310에서 요청이 승인되면, 315에서 서버로부터 직접 스트리밍되어야 하는 선두 서브클립들의 수가 계산된다. 스트리밍되는 서브클립들(선두)의 수는 N으로 명명된다. 서버는 320에서 요청하는 클라이언트/사용자에게 선두 서브클립들을 스트리밍하기 시작하고 325에서 요청하는 클라이언트/사용자에게 N의 값을 반환한다. 요청/요구가 승인되지 않으면 330에서 선두 서브클립들의 수가 초기화/리셋된다.
도 4는 사용자/클라이언트 측으로부터의 승인 제어 프로세스의 플로차트이다. 사용자/클라이언트 측에서, 일단 클라이언트가 서버로부터 응답을 수신하면, 405에서 N의 값(서버로부터 클라이언트로 스트리밍될 선두 서브클립들의 수)을 테스트함으로써 요청/요구가 승인되었는지를 결정하는 체크가 행해진다. N의 값이 0보다 크면 요청/요구는 수신되었고 사용자는 410에서 스트리밍된 N개의 서브클립들을 수신하기 시작한다. 서버 측에서 N = -1을 설정하고 사용자/클라이언트 측에서 N > 0에 대하여 테스트하는 것은 단지 하나의 가능한 구현일 뿐이라는 것을 알아야 한다. 요청 승인 테스트는, 예를 들면, 플래그 또는 다른 적합한 수단에 의하여 구현될 수 있다. 415에서 현재의 서브클립 수 Nc가 N + 1(다음 서브클립 - 다운로딩될 서브클립)으로 설정된다. 그 후 420에서 다운로딩할 서브클립들이 더 있는지를 결정하는 테스트가 수행된다. 요청/요구가 승인되지 않았거나 비디오의 모든 서브클립들이 사용자에 의해 수신되었다면 프로세스는 종료한다. 한편, 425에서 (N + 1)번째 서브클립을 갖는/캐싱하는 P2P 네트워크 내의 피어가 찾아지고 그 (N + 1)번째 서브클립을 그 (N + 1)번째 서브클립을 필요로 하는 피어에 업로딩하기 시작한다. 430에서 (현재 시간 t에 대하여 측정된) 다운로드에 대한 데드라인 d에 도달하지 않았다고 결정되면, 435에서 다운로딩이 계속된다. 430에서 (현재 시간 t에 대하여 측정될 때) 데드라인 d에 도달하였다고 결정되면, 440에서 누락 데이터 벡터(missing data vector)가 준비된다. 실제로 누락 데이터 벡터는 데드라인 약간 전에 또는 준비되거나 또는 데드라인 d 전에 다운로드가 완료될 수 없다가 결정될 때 준비된다. 데드라인 전에 다운로드가 완료될 수 없다면 445에서 보완적 스트리밍이 필요한지 여부를 결정하는 테스트가 수행된다. 보완적 스트리밍에 대해서는 아래에서 더 상세히 설명될 것이다. 한편, 455에서 현재의 서브클립 카운터가 증가된다. 시스템 성능(서브클립들이 데드라인 전에 사용자에 의해 도달함)이 만족되도록 하기 위해 보완적 스트리밍이 요구된다면 450에서 보완적 스트리밍이 호출된다. (N + 1)번째 서브클립을 다운로딩하기 위한 데드라인 d에 도달하면, 사용자는 (N + 1)번째 서브클립을 재생하기 시작하고 후속 서브클립을 갖는/캐싱하는 P2P 네트워크 내의 피어가 찾아지고 비디오 서브클립 다운로딩 프로세스를 시작한다.
다음으로, 서버에 의해 스트리밍될 서브클립들의 수의 계산에 대하여 설명한다.
요청/요구와 함께, 클라이언트/사용자는 추정된 다운링크 대역폭을 서버에 나타낸다. 사용자들은 그들 자신의 다운링크 대역폭을 더 잘 알고 있을 수 있다고 생각된다. 서버에 의한 비디오 스트리밍의 처음에, 다운링크 대역폭은 스트리밍 및 P2P 다운로딩 둘 다에 의해 소비된다. 사용자 i 에 대하여 서버에 의해 ni개 서브클립들이 스트리밍된다고 가정할 때, ( n i + 1)번째 서브클립의 사본이 그의 데드라인, 즉, L* n i 전에 다운로딩되어야 한다. 여기서, L 은 서브클립의 지속기간이다. r playback 을 비디오의 재생 레이트로 표시하고 r downlink 를 사용자의 다운링크 대역폭으로 표시할 때, (r downlink - r playback )n i L≥Lr playback 이다. "n i "는 정수이어야 하고(완전한 서브클립들만이 스트리밍된다), 따라서
위에서는 전통적인 서버-클라이언트 비디오 온 디맨드 서비스에 P2P 다운로딩을 통합하는 본 발명의 분할된 P2P 비디오 온 디맨드 서비스에 대하여 설명하였다. P2P 다운로딩은 데이터/비디오 전송 부하의 대부분을 감당하고, 따라서, 서버에 지워지는 작업부하를 상당히 감소시킨다. 전체적인 시스템 처리량을 최대화하는 것이 목표인, 종래의 P2P 파일 다운로딩과 대조적으로, 본 발명의 P2P 다운로딩은 시스템 성능(서브클립들이 그의 데드라인 전에 사용자에/에 의해 도달함)을 고려하고 서브클립들의 데드라인을 만족시키려고 노력한다. 다음으로 단일 서브클립에 대한 P2P 다운로딩에 대하여 설명한다. 그 후 모든 사용자들에게 데이터/비디오의 적시의 전달을 달성하기 위하여 복수의 서브클립들에 걸쳐서 P2P 다운로딩을 코디네이트하는 방법에 대하여 설명한다.
본 발명은 사용자들 사이에 서브클립 데이터를 교환하기 위해 데이터 구동 P2P 다운로딩을 이용한다. 본 발명의 서브클립들은 같은 사이즈의 블록들로 분할되고 사용자들은 복수의 사용자들로부터의 블록들을 동시에 다운로딩한다. 블록들은 시그널링 부담(signaling overhead)을 감소시키기 위하여 요청들의 파이프라이닝(pipelining)이 가능하도록 서브블록들로 더 세분된다. 각 서브클립에 대응하여, 현재 특정 서브클립의 P2P 다운로딩에 관여하는 사용자들을 계속 추적하는 서브트래커(sub-tracker)라 불리는 중앙 컴포넌트가 존재한다. 서브트래커는 사용자 들이 서브클립 P2P 네트워크에 가담하거나 서브클립 P2P 네트워크에서 떠날 때뿐만 아니라 주기적으로 사용자들로부터 업데이트들을 수신한다.
P2P 네트워크 내의 피어들은 2개의 카테고리: 시드들(seeds) 및 다운로더들(downloaders)로 분류된다. 시드들은 서브클립의 완전한/부분적인 사본을 갖고 있고 그 서브클립을 다른 사람들에게 기꺼이 공급/업로딩하는 사용자들이다. 시드들은 이미 서브클립 데이터를 갖고 있기 때문에 그들(시드들)이 다른 피어들에게 업로딩하고 있는 서브클립 데이터를 다운로딩하지 않는다. 다운로더들은 여전히 데이터를 다운로딩하고 있지만 동시에 그들이 이미 갖고 있는 블록들을 다른 사람들에게 기꺼이 공급하는 사용자들이다. 새로운 사용자가 서브클립을 다운로딩하기 시작할 때, 그 사용자는 대응하는 서브트래커에 연락하여 현재 P2P 네트워크에서 그 서브클립(또는 그 서브클립의 일부)을 갖고 있고 그 서브클립을 기꺼이 업로딩하는 사용자들(시드 및 다운로더 둘 다)의 목록을 획득한다. 그 후 그 새로운 사용자는 목록 상의 사용자들과의 접속을 확립하려고 하고, 그 후 그 사용자들은 그의 이웃들이 된다.
피어들은 피어가 어느 사용자들에게 데이터를 공급/업로딩하는지를 개별적으로 결정하는 분산된 알고리즘을 실행한다. 가장 많은(최대 수의) 사용자들이 서브클립 데이터를 그 각각의 데드라인이 만료되기 전에 수신하는 가능성을 최대화하기 위하여 선택 프로세스에서 몇 가지 팩터들이 고려된다.
이웃(피어)으로부터 데이터를 수신하도록 사용자가 선택되고, 이웃은 그 이웃이 다운로딩할 수 있는 몇 개의 블록을 선택할 수 있다고 가정하자. 이웃/피어 는 다운로딩할 블록을 선택함에 있어서 LRF(local rarest first) 정책을 이용한다. 피어는 다운로드를 위해 그의 이웃들 사이에서 가장 적게 복제되는 블록을 선택하려고 한다. 목표는 시스템 내의 콘텐트의 다양성을 최대화하는, 즉, 각 블록의 복제 수를 가능한 한 같게 만드는 것이다. 이는 찾기 어려운 진기한 블록들 때문에 시스템이 난항을 겪게 될 일이 일어날 것 같지 않게 한다. 사용자가 이웃이 갖고 있는 모든 데이터를 갖고 있는 경우, 이웃은 데이터를 공급/다운로딩할 다른 사용자를 선택한다.
종래의 P2P 네트워크들은 단일 파일을 분배하도록 설계되어 있다. 본 발명에서는, 비디오 클립이 복수의 서브클립들로 분할되고, 각 서브클립은 P2P 네트워크를 이용하여 분배된다. 그러므로, 본 발명의 스킴 방법에서는, 사용자가 동시에 복수의 P2P 네트워크에 가담할 수 있다. 예를 들면, 도 1에서, 시간 t4에서 클라이언트 3은 서브클립 2를 재생하고 있다. 클라이언트 3은 서브클립 2의 다운로딩을 완료하였고 서브클립 3을 다운로딩하고 있었다. 따라서 클라이언트 3은 서브클립들 1, 2, 및 3 각각에 대한 3개의 P2P 네트워크들에 관여한다. 클라이언트 3은 서브클립 1에 대한 P2P 네트워크에서 시드이고 서브클립 2에 대한 (다른) P2P 네트워크에서 시드이고 서브클립 3에 대한 또 다른 P2P 네트워크에 대하여 다운로더이다. 클라이언트 1 및 클라이언트 2는 서브클립 3에 대한 클라이언트 3의 시드들이다. 시간 t4에서 클라이언트 2는 서브클립 4를 다운로딩하고 있고, 클라이언트 1은 클라이언트 2에 대하여 서브클립 4에 대한 시드이다. 마지막으로 시간 t4에서, 클라이 언트 1은 서브클립 5를 다운로딩하고 있고 오리지널 서버가 서브클립 5에 대한 클라이언트 1에 대한 유일한 시드이다. 클라이언트 3은 클라이언트 1 및 2를 지원할 수 없을 것이다.
비디오 온 디맨드 서비스를 제공하기 위한 본 발명의 성능 인식 P2P 네트워크에서, 사용자는 복수의 P2P 네트워크에 가담할 수 있다(사용자는 각 서브클립에 대한 상이한 P2P 네트워크에 가담할 수 있다). 그러나, 다수의 개방 TCP 접속들을 가짐으로써 성능 열화를 피하기 위하여 업로드들의 전체 수는 소수이어야 한다. 그러면 전체적인 성능, 즉, 모든 사용자들이 콘텐트/서브클립들을 그 각각의 데드라인 전에 검색하는 가능성이 최대화될 수 있도록 복수의 P2P 네트워크들에 걸쳐서 업로딩 피어들을 어떻게 선택하는지가 문제가 된다. 다음은 시스템 성능에 영향을 준다고 생각되는 중요한 팩터들의 목록이다.
1. 데드라인이 얼마나 긴급한가. 데드라인이 긴박할수록, 더 높은 우선순위가 다운로더에 주어져야 한다.
2. 다운로딩이 스케줄대로인가? 모든 사용자들은 공평하게 취급되어야 한다. 다운로딩은 다운로딩이 시작된 이래 피어들이 시스템에 소비한 시간에 비례하여 진행되어야 한다.
3. 얼마나 많은 잠재적 시드들이 이용 가능한가? 사용자들이 피어 비디오 재생을 완료한 후 바로 떠난다고 가정할 때, 이용 가능한 시드들의 수는 상이한 시간에 상이한 서브클립들에 대하여 상이하다. 예를 들면, 도 1에서 클라이언트 4에 대한 서브클립 2에 대한 시드들의 수는 서브클립 3에 대한 것보다 크다. 이는 서 브클립 3에 대한 시드는 서브클립 2에 대한 시드도 되어야 하기 때문이다. 그럼에도 불구하고 서브클립 2에 대한 시드는 재생을 완료한 후 시스템에서 떠날 수 있으므로 서브클립 3에 대한 시드가 아닐 수 있다. 일반적으로, 클라이언트 도달 프로세스가 λ의 평균 도달률을 갖는 포아송(Poisson)이라면, 이용 가능한 시드들의 수는 다음의 수학식에 의해 좌우된다.
4. 높은 업로딩 속도는 시스템 처리량을 향상시키고 따라서 우선적이다.
S 는 서브클립의 사이즈를 나타내고, t 는 현재 시간을 나타낸다. 는 사용자 j 가 k번째 서브클립을 다운로딩하기 시작하는 시간이고, 는 시간 t 까지 검색된 콘텐트의 양이라고 하자. 또한, 는 사용자 j 의 k번째 서브클립에 대한 데드라인이라고 하자. 마지막으로, 는 클라이언트 j 의 k번째 서브클립에 대한 다운로딩 진행 표시자라고 하자. 따라서, 다음 수학식과 같이 된다.
의 값은 다운로딩 진행을 반영한다. 즉, 는 데이터/비디오 다운로딩이 스케줄대로인지를 나타낸다. 는 서브클립을 시간에 맞게(서브클립 데드라인까지) 검색하기 위하여 요구되는 다운로딩 레이트이다. 는 경과 시간이고, 는 여태까지 달성된 다운로딩 레이트이다. 다운로딩 진행 표시자는 요구되는 다운로딩 레이트와 달성된 다운로딩 레이트의 비율이다. = 1이라면, 다운로딩은 완벽히 스케줄대로이다. < 1이라면, 다운로딩은 스케줄보다 늦어 뒤처지고, > 1이라면, 다운로딩은 스케줄보다 앞선다.
이제 피어가 데이터를 보내야 하는 이웃을 결정하는 데 이용되는 메트릭에 대하여 설명한다. 는 피어 i 가 k번째 서브클립에 대하여 피어 j 에 데이터를 공급/다운로딩하는 업로딩 가중치를 나타낸다고 하자. 의 값이 클수록, 피어 i 가 피어 j 를 지원하기로 선택하는 가능성이 더 많다. 는 다음 수학식이라고 하자.
분자 r ij 이고, 이것은 피어 i 로부터 j 로의 업로딩 속도/레이트이다. 직관적으로, 더 큰/더 높은 업로딩 속도는 전체적인 시스템 처리량을 향상시킨다. 그러므로, 더 큰 업로딩 레이트가 더 낫다. 이것은 상기 팩터 4에 해당한다.
수학식 4의 분모에는 3개의 항이 있다. 수학식 3에서 정의된 바와 같이, 는 진행 표시자이고 작은 값의 는 피어 j 가 스케줄보다 늦다는 것을 나타낸다. 그러므로, 상기 팩터 2에 따라서 j 에 높은 우선순위가 주어져야 한다. 의 값은 데드라인까지의 시간이다. 의 값이 작을수록, 팩터 1에 따라서 데드라인은 더 긴박하다. 우선권은 가장 긴박한 데드라인을 갖는 요청에 주어져야 한다. 마지막으로, 피어 i 의 모든 서브클립들 k, 는 시간 t까지 시드들이다. 그러나, 수학식 2가 나타내는 바와 같이, 상이한 서브클립에 대한 요청은 상이한 수의 시드들을 갖는다. 우선권은 가장 적은 수의 시드들을 갖는 사용자 요청에 주어져야 한다. 시간이 더 길게 경과할수록, 더 많은 시드들이 이 요청에 대하여 이용 가능하고, 이는 분모의 마지막 항을 정당화한다(팩터 3에 따라서).
위에서 설명한 바와 같이, 성능 문제들(서브클립들이 사용자에/사용자에 의해 적시에 도달함)을 해결하기 위해 특별한 주의가 기울여지지만, P2P 다운로딩이 종료할 때 데드라인의 시간까지(또는 데드라인 직전에) 일부 데이터는 여전히 누락될 수 있다. 이하에서는 피어 비디오 재생 성능을 더 개선하기 위하여 서버를 이용하여 누락 데이터를 스트리밍하는 방법에 대하여 설명한다. 이것은 여기서 보완적 스트리밍(complementary streaming)이라 불린다. 데드라인에 접근할 때, 피어 클라이언트는 누락 데이터 벡터 V missing 을 준비한다. 이 누락 데이터 벡터는 제1 플래그, 예를 들면, 블록이 수신되는 것을 나타내는 "1", 및 제2 플래그, 예를 들면, 블록이 여전히 누락임을 나타내는 "0"을 이용하는 비트 맵이다. 누락 데이터 벡터는 서브클립이 사용자에 도달하는 데드라인과 함께 서버에 보내진다(시그널링). 서버는 데드라인에 접근할 때 누락 데이터를 스트리밍 출력하기 시작하여 누락 데이터/비디오가 피어 비디오 재생을 위해 때를 맞추어 채워질 수 있도록 한다.
본 발명의 서버는, (i) 즉시 재생을 지원하기 위해 초기/선두 서브클립들을 공급하고(스트리밍에 의해); (ii) 사용자의 시청 품질을 개선하기 위해 보완적 스트리밍을 제공하여 (서브클립들이 각 서브클립 데드라인 전에 사용자에 도달하도록 하고); (iii) P2P 데이터/비디오 다운로딩에서 시드로서 기능하는 3가지 작업에 대한 책임이 있다. 작업 1 및 2는 작업 3보다 더 높은 우선순위를 갖는다.
본 발명은 하드웨어, 소프트웨어, 펌웨어, 특수 목적 프로세서, 또는 그의 조합의 다양한 형태들로 구현될 수 있다는 것을 이해해야 한다. 바람직하게는, 본 발명은 하드웨어와 소프트웨어의 조합으로 구현된다. 더욱이, 소프트웨어는 바람직하게는 프로그램 저장 장치 상에 실체적으로 구체화된 애플리케이션 프로그램으로서 구현된다. 그 애플리케이션 프로그램은 임의의 적합한 아키텍처를 포함하는 머신에 업로딩되어 그 머신에 의해 실행될 수 있다. 바람직하게는, 머신은 하나 이상의 중앙 처리 장치(CPU), RAM(random access memory), 입출력(I/O) 인터페이스(들)와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현된다. 컴퓨터 플랫폼은 또한 운영 체제 및 마이크로명령 코드를 포함한다. 여기서 설명된 다양한 프로세스들 및 기능들은, 운영 체제를 통하여 실행되는, 마이크로명령 코드의 일부 또는 애플리케이션 프로그램의 일부(또는 그의 조합)일 수 있다. 또한, 추가 데이터 저장 장치 및 인쇄 장치와 같은 여러 가지 다른 주변 장치들이 컴퓨터 플랫폼에 접속될 수 있다.
또한, 첨부 도면들에서 도시된 구성 시스템 컴포넌트들 및 방법 단계들 중 일부는 바람직하게는 소프트웨어로 구현되기 때문에, 시스템 컴포넌트들(또는 프로세스 단계들) 사이의 실제 접속들은 본 발명이 프로그램되는 방법에 따라서 다를 수 있다는 것을 이해해야 한다. 여기서의 교시가 주어지면, 관련 기술분야의 통상의 기술을 가진 자라면 본 발명의 이들 및 유사 구현들 또는 구성들을 예상할 수 있을 것이다.
Claims (31)
- 피어가 콘텐트를 수신하기 위한 방법으로서,스트리밍된 선두 콘텐트 서브클립(streamed leading content sub-clip)을 수신하는 단계;필요한 콘텐트 서브클립들의 세트를 결정하는 단계;상기 필요한 콘텐트 서브클립들의 세트 중 하나를 찾는(locate) 단계;상기 찾아진 콘텐트 서브클립을 다운로딩하기 위한 데드라인을 계산하는 단계;상기 찾아진 콘텐트 서브클립을 다운로딩하기 위한 데드라인이 만족될지를 결정하는 단계; 및상기 찾아진 콘텐트 서브클립에 대한 데드라인이 만족될 경우에 다중의 피어로부터 상기 찾아진 콘텐트 서브클립을 동시에 다운로딩하는 단계를 포함하는 콘텐트 수신 방법.
- 제1항에 있어서,콘텐트의 유닛을 요청하는 단계를 더 포함하는 콘텐트 수신 방법.
- 제1항에 있어서,상기 필요한 콘텐트 서브클립들의 세트를 획득하기 위해 적어도 하나의 P2P(peer-to-peer) 네트워크에 합류(join)하는 단계를 더 포함하는 콘텐트 수신 방법.
- 삭제
- 제1항에 있어서,상기 찾아진 콘텐트 서브클립을 다운로딩하기 위한 데드라인이 초과될 경우에 누락 데이터 벡터(missing data vector)를 준비하는 단계; 및상기 데드라인이 초과될 상기 찾아진 콘텐트 서브클립의 블록들에 대한 보완적 스트리밍(complementary streaming)을 호출(invoke)하는 단계를 더 포함하는 콘텐트 수신 방법.
- 제1항에 있어서,필요한 콘텐트 서브클립들의 블록들을 서브블록들로 분할하는 단계;상기 서브블록들에 대한 요청들을 파이프라이닝(pipelining)하는 단계; 및상태를 전송하는 단계를 더 포함하는 콘텐트 수신 방법.
- 제6항에 있어서,상기 상태는 다운로딩 상태, P2P 네트워크 참여의 상태 및 캐싱된 콘텐트의 상태를 포함하는 콘텐트 수신 방법.
- 제1항에 있어서, 상기 찾는 단계는,상기 필요한 콘텐트 서브클립들의 위치 및 상태를 결정하도록 서브트래커(sub-tracker)를 시그널링하는 단계; 및상기 찾아진 콘텐트 서브클립들을 요청할 상기 위치를 선택하는 단계를 더 포함하는콘텐트 수신 방법.
- 제8항에 있어서,상기 선택하는 단계는 LRF(local rarest first) 스킴에 기초하는 콘텐트 수신 방법.
- 제1항에 있어서,다운로딩 진행 표시자를 계산하는 단계를 더 포함하는 콘텐트 수신 방법.
- 제10항에 있어서,상기 다운로딩 진행 표시자는 요구되는 다운로딩 레이트 및 달성된 다운로딩 레이트의 비율인 콘텐트 수신 방법.
- 제1항에 있어서,업로딩 가중치(weight)를 계산하는 단계; 및상기 업로딩 가중치에 기초하여 상기 찾아진 콘텐트 서브클립을 다운로딩하는 단계를 더 포함하는 콘텐트 수신 방법.
- 제1항에 있어서,다음으로 필요한 콘텐트 서브클립에 대해 포인터를 설정하는 단계를 더 포함하는 콘텐트 수신 방법.
- 제13항에 있어서,상기 포인터를 증분시키는 단계를 더 포함하는 콘텐트 수신 방법.
- 제13항에 있어서,상기 다음으로 필요한 콘텐트 서브클립을 획득하기 위해 P2P 네트워크에 합류하는 단계를 더 포함하는 콘텐트 수신 방법.
- 서버가 콘텐트를 제공하기 위한 방법으로서,콘텐트의 유닛에 대한 요청을 수신하는 단계;수집된 통계들에 기초하여 입장 제어(admission control)를 수행하는 단계;입장이 승인되는 경우에, 상기 콘텐트의 유닛을 복수의 콘텐트 서브클립으로 분할하는 단계;스트리밍될 선두 콘텐트 서브클립들의 수를 계산하는 단계;상기 선두 콘텐트 서브클립들을 스트리밍하는 단계;나머지 콘텐트 서브클립들을 다운로딩하기 위한 데드라인들이 만족될지 여부에 관한 정보를 수신하는 단계; 및상기 다운로딩하기 위한 데드라인들이 만족될 상기 나머지 콘텐트 서브클립들을 다운로딩하는 단계를 포함하는 콘텐트 제공 방법.
- 삭제
- 제16항에 있어서,상기 콘텐트 서브클립들은 동일한 사이즈를 갖는 콘텐트 제공 방법.
- P2P 시스템으로서,서버;하나 또는 복수의 피어; 및트래커 - 상기 트래커 및 상기 서버는 같은 곳에 배치될 수 있고, 상기 서버는 시드(seed)이며, 각각의 피어는 다운로더(downloader) 및 시드 중 적어도 하나임 -를 포함하고,상기 피어는,스트리밍된 선두 콘텐트 서브클립을 수신하는 수단;필요한 콘텐트 서브클립들의 세트를 결정하는 수단;상기 필요한 콘텐트 서브클립들의 세트 중 하나를 찾는 수단;상기 찾아진 콘텐트 서브클립을 다운로딩하기 위한 데드라인을 계산하는 수단;상기 찾아진 콘텐트 서브클립을 다운로딩하기 위한 데드라인이 만족될지를 결정하는 수단; 및상기 찾아진 콘텐트 서브클립에 대한 데드라인이 만족될 경우에 다중의 피어로부터 상기 찾아진 콘텐트 서브클립을 동시에 다운로딩하는 수단을 더 포함하는P2P 시스템.
- 삭제
- 삭제
- 삭제
- 삭제
- 제19항에 있어서,상기 피어는 콘텐트의 유닛을 요청하는 수단을 더 포함하는 P2P 시스템.
- 제19항에 있어서,상기 피어는 상기 필요한 콘텐트 서브클립들의 세트를 획득하기 위해 적어도 하나의 P2P 네트워크에 합류하는 수단을 더 포함하는 P2P 시스템.
- 삭제
- 제19항에 있어서, 상기 피어는,상기 찾아진 콘텐트 서브클립을 다운로딩하기 위한 데드라인이 초과될 경우에 누락 데이터 벡터를 준비하는 수단; 및상기 데드라인이 초과될 상기 찾아진 콘텐트 서브클립의 블록들에 대한 보완적 스트리밍을 호출하는 수단을 더 포함하는P2P 시스템.
- 제19항에 있어서, 상기 피어는,필요한 콘텐트 서브클립들의 블록들을 서브블록들로 분할하는 수단;상기 서브블록들에 대한 요청들을 파이프라이닝하는 수단; 및상태를 전송하는 수단을 더 포함하는P2P 시스템.
- 제19항에 있어서, 상기 찾는 수단은,상기 필요한 콘텐트 서브클립들의 위치 및 상태를 결정하도록 서브트래커를 시그널링하는 수단; 및상기 찾아진 콘텐트 서브클립들을 요청할 상기 위치를 선택하는 수단을 더 포함하는P2P 시스템.
- 제16항에 있어서,상기 다운로딩하기 위한 데드라인이 만족되지 않을 상기 나머지 콘텐트 서브클립들 각각에 대해 보완적 스트리밍을 제공하는 단계를 더 포함하는 콘텐트 제공 방법.
- 제19항에 있어서, 상기 피어는,LRF 스킴에 기초하여 상기 찾아진 콘텐트 서브클립을 다운로더 피어에 업로드하기 위한 시드 피어용 수단을 더 포함하는 P2P 시스템.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2006/024974 WO2008002295A1 (en) | 2006-06-27 | 2006-06-27 | Performance aware peer-to-peer video-on-demand |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090029741A KR20090029741A (ko) | 2009-03-23 |
KR101359081B1 true KR101359081B1 (ko) | 2014-02-05 |
Family
ID=38845926
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020087031636A KR101359081B1 (ko) | 2006-06-27 | 2006-06-27 | 성능 인식 p2p 콘텐트 온 디맨드 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8838823B2 (ko) |
EP (1) | EP2039158B1 (ko) |
JP (1) | JP5140666B2 (ko) |
KR (1) | KR101359081B1 (ko) |
CN (1) | CN101480050B (ko) |
BR (1) | BRPI0621786A2 (ko) |
WO (1) | WO2008002295A1 (ko) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008036086A1 (en) * | 2006-09-20 | 2008-03-27 | Ist International Inc. | Handoff and optimization of a network protocol stack |
WO2008043092A1 (en) * | 2006-10-05 | 2008-04-10 | Bittorrent, Inc. | Peer-to-peer streaming of non-live content |
US20080098123A1 (en) * | 2006-10-24 | 2008-04-24 | Microsoft Corporation | Hybrid Peer-to-Peer Streaming with Server Assistance |
US8019830B2 (en) * | 2007-04-16 | 2011-09-13 | Mark Thompson | Methods and apparatus for acquiring file segments |
US8996723B2 (en) * | 2007-06-04 | 2015-03-31 | Microsoft Technology Licensing, Llc | ISP-aware peer-to-peer content exchange |
CN101715650B (zh) * | 2007-06-28 | 2012-03-21 | 纽约市哥伦比亚大学信托人 | 机顶盒对等端辅助的视频点播 |
EP2077524B1 (en) * | 2008-01-07 | 2016-08-17 | Voddler Group AB | Push-pull based content delivery system |
CN101605242B (zh) * | 2008-06-13 | 2013-07-17 | 阿尔卡特朗讯公司 | 用于实现视频点播服务的方法、装置和系统 |
EP2136534A1 (en) * | 2008-06-17 | 2009-12-23 | THOMSON Licensing | System, sharing node, server, and method for content distribution |
US7996534B2 (en) * | 2008-10-09 | 2011-08-09 | Axiometric, Llc | File distribution in wireless networks |
US7961741B2 (en) * | 2008-10-23 | 2011-06-14 | Silver Spring Networks, Inc. | Rapid dissemination of bulk information to widely dispersed network nodes |
US8396004B2 (en) | 2008-11-10 | 2013-03-12 | At&T Intellectual Property Ii, L.P. | Video share model-based video fixing |
CN101465824B (zh) * | 2008-12-29 | 2012-05-16 | 腾讯科技(深圳)有限公司 | 即时通信文件多源传输系统及方法 |
US8099476B2 (en) | 2008-12-31 | 2012-01-17 | Apple Inc. | Updatable real-time or near real-time streaming |
US20110013775A1 (en) * | 2009-07-17 | 2011-01-20 | Chih-Lin Hu | System and method of mobile content sharing and delivery in an integrated network environment |
CN101610226A (zh) * | 2009-07-17 | 2009-12-23 | 阿里巴巴集团控股有限公司 | 一种插件下载的方法和系统 |
US8874694B2 (en) * | 2009-08-18 | 2014-10-28 | Facebook, Inc. | Adaptive packaging of network resources |
CN102075338B (zh) * | 2009-11-25 | 2015-05-13 | 突触计算机系统(上海)有限公司 | 基于分布式网络的直播方法和装置 |
US8832281B2 (en) * | 2010-01-08 | 2014-09-09 | Tangome, Inc. | Utilizing resources of a peer-to-peer computer environment |
US9094527B2 (en) * | 2010-01-11 | 2015-07-28 | Tangome, Inc. | Seamlessly transferring a communication |
US8560633B2 (en) * | 2010-01-11 | 2013-10-15 | Tangome, Inc. | Communicating in a peer-to-peer computer environment |
US8447875B2 (en) * | 2010-03-10 | 2013-05-21 | Thomson Licensing | Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks |
US20110225312A1 (en) * | 2010-03-10 | 2011-09-15 | Thomson Licensing | Unified cache and peer-to-peer method and apparatus for streaming media in wireless mesh networks |
US8805963B2 (en) | 2010-04-01 | 2014-08-12 | Apple Inc. | Real-time or near real-time streaming |
GB201105502D0 (en) | 2010-04-01 | 2011-05-18 | Apple Inc | Real time or near real time streaming |
TWI451279B (zh) | 2010-04-07 | 2014-09-01 | Apple Inc | 即時或接近即時串流傳輸之內容存取控制 |
KR101212366B1 (ko) * | 2010-11-25 | 2012-12-13 | 엔에이치엔비즈니스플랫폼 주식회사 | P2p 기반의 스트리밍 서비스에서 서버 사용량을 조절하는 시스템 및 방법 |
US8806049B2 (en) | 2011-02-15 | 2014-08-12 | Peerialism AB | P2P-engine |
CA2828489C (en) | 2011-02-28 | 2019-09-24 | Bittorrent, Inc. | Sharing content according to a protocol for peer-to-peer live streaming |
US9571571B2 (en) | 2011-02-28 | 2017-02-14 | Bittorrent, Inc. | Peer-to-peer live streaming |
US20120297405A1 (en) | 2011-05-17 | 2012-11-22 | Splendorstream, Llc | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network |
WO2012158161A1 (en) * | 2011-05-17 | 2012-11-22 | Splendorstream, Llc | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network |
US8856283B2 (en) * | 2011-06-03 | 2014-10-07 | Apple Inc. | Playlists for real-time or near real-time streaming |
MX2013014269A (es) * | 2011-06-08 | 2014-02-19 | Sling Media Pvt Ltd | Aparatos, sistemas y metodos para presentar un resumen de un evento de contenido de medios. |
US9049073B2 (en) * | 2011-06-28 | 2015-06-02 | Rovi Guides, Inc. | Systems and methods for initializing allocations of transport streams based on historical data |
US8898327B2 (en) * | 2011-10-05 | 2014-11-25 | Peerialism AB | Method and device for arranging peers in a live streaming P2P network |
US8713194B2 (en) | 2011-11-18 | 2014-04-29 | Peerialism AB | Method and device for peer arrangement in single substream upload P2P overlay networks |
US8799498B2 (en) | 2011-11-18 | 2014-08-05 | Peerialism AB | Method and device for peer arrangement in streaming-constrained P2P overlay networks |
US9042386B2 (en) * | 2012-08-14 | 2015-05-26 | International Business Machines Corporation | Data transfer optimization through destination analytics and data de-duplication |
US8973073B2 (en) * | 2013-05-20 | 2015-03-03 | Telefonaktiebolaget L M Ericsson (Publ) | Weighted ingest policy management in a content distribution network |
US9900384B2 (en) * | 2013-07-12 | 2018-02-20 | Adobe Systems Incorporated | Distributed caching in a communication network |
JP6470753B2 (ja) * | 2013-08-05 | 2019-02-13 | リソフトデフ, インコーポレイテッド | 拡張可能メディアフォーマットのシステムおよび使用方法 |
CN104580305B (zh) * | 2013-10-18 | 2018-11-06 | 腾讯科技(深圳)有限公司 | 网络上传调度和带宽检测方法、系统、客户端和服务器 |
CN107852604B (zh) * | 2015-04-07 | 2021-12-03 | 安博科技有限公司 | 用于提供全局虚拟网络(gvn)的系统 |
GB2549536B (en) * | 2016-04-22 | 2020-12-02 | Orbital Multi Media Holdings Corp | Media data streaming method and apparatus |
KR20190091290A (ko) | 2016-11-29 | 2019-08-05 | 리제너론 파아마슈티컬스, 인크. | Prlr 양성 유방암 치료 방법 |
CN108933949B (zh) * | 2017-05-27 | 2021-08-31 | 南宁富桂精密工业有限公司 | 多媒体控制方法、服务器和计算机存储介质 |
CN109347968B (zh) * | 2018-11-07 | 2021-09-24 | 网宿科技股份有限公司 | 一种下载资源文件的数据块的方法、设备和系统 |
CN110062280A (zh) * | 2019-04-23 | 2019-07-26 | 湖南快乐阳光互动娱乐传媒有限公司 | 一种面向p2p的视频缓存管理、播放方法、系统及介质 |
US11102272B2 (en) * | 2019-12-19 | 2021-08-24 | Wangsu Science and Technology Co., Ltd. | Method and device for downloading resource file |
US20230044756A1 (en) * | 2020-01-24 | 2023-02-09 | Hewlett-Packard Development Company, L.P. | Resource download in peer-to-peer networks |
JP7559437B2 (ja) * | 2020-09-01 | 2024-10-02 | ヤマハ株式会社 | 通信制御方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055718A1 (en) | 2003-09-05 | 2005-03-10 | Stone Christopher J. | Peer-to-peer architecture for sharing video on demand content |
US20060190615A1 (en) | 2005-01-21 | 2006-08-24 | Panwar Shivendra S | On demand peer-to-peer video streaming with multiple description coding |
US7644173B1 (en) | 2005-09-26 | 2010-01-05 | Roxbeam Media Network Corporation | System and method for facilitating expedited delivery of media content |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6415373B1 (en) * | 1997-12-24 | 2002-07-02 | Avid Technology, Inc. | Computer system and process for transferring multiple high bandwidth streams of data between multiple storage units and multiple applications in a scalable and reliable manner |
JP3714157B2 (ja) * | 2000-11-16 | 2005-11-09 | 日本電気株式会社 | ストリーム配信方法、ストリーム送受信機器及びストリーム配信システム |
GB0031157D0 (en) | 2000-12-20 | 2001-01-31 | Ncr Int Inc | Streaming of data |
CN1217543C (zh) * | 2002-06-28 | 2005-08-31 | 国际商业机器公司 | 对等视频点播系统中的设备和方法 |
JP4233328B2 (ja) * | 2003-01-08 | 2009-03-04 | 日立ソフトウエアエンジニアリング株式会社 | ピアツーピア技術を用いたファイルダウンロード方法及びシステム |
KR100427143B1 (ko) | 2003-01-17 | 2004-04-14 | 엔에이치엔(주) | 스트리밍 데이터 전송 및 다운로드 방법 |
US7467190B2 (en) | 2003-10-06 | 2008-12-16 | Hitachi, Ltd. | Method and apparatus for alert distribution and archive sharing |
US7593333B2 (en) | 2004-07-07 | 2009-09-22 | Microsoft Corporation | Efficient one-to-many content distribution in a peer-to-peer computer network |
JP4626395B2 (ja) * | 2004-08-30 | 2011-02-09 | オンキヨー株式会社 | センターサーバーおよびその動作方法 |
US7174385B2 (en) * | 2004-09-03 | 2007-02-06 | Microsoft Corporation | System and method for receiver-driven streaming in a peer-to-peer network |
US7664109B2 (en) * | 2004-09-03 | 2010-02-16 | Microsoft Corporation | System and method for distributed streaming of scalable media |
JP2006080659A (ja) * | 2004-09-07 | 2006-03-23 | Brother Ind Ltd | 情報配信システム、処理装置、処理方法及び処理プログラム等 |
US20060168012A1 (en) * | 2004-11-24 | 2006-07-27 | Anthony Rose | Method and system for electronic messaging via distributed computing networks |
JP4055776B2 (ja) * | 2005-01-26 | 2008-03-05 | オンキヨー株式会社 | コンテンツ配信システム、並びにこれに用いられるピア及びピアプログラム |
US7379967B2 (en) * | 2005-01-28 | 2008-05-27 | Grid Solutions, Inc. | Download method for file by bit torrent protocol |
US20060218620A1 (en) * | 2005-03-03 | 2006-09-28 | Dinesh Nadarajah | Network digital video recorder and method |
KR101275726B1 (ko) * | 2005-08-12 | 2013-06-17 | 노키아 지멘스 네트웍스 게엠베하 운트 코. 카게 | 피어-투-피어 가입자 공동체를 위한 다중-소스 및 내성 주문형 비디오 스트리밍 시스템 |
US7987368B2 (en) * | 2005-10-28 | 2011-07-26 | Microsoft Corporation | Peer-to-peer networks with protections |
US8707375B2 (en) * | 2006-04-05 | 2014-04-22 | At&T Intellectual Property I, L.P. | Peer-to-peer video on demand techniques |
US7925781B1 (en) * | 2006-05-26 | 2011-04-12 | The Hong Kong University Of Science And Technology | Distributed storage to support user interactivity in peer-to-peer video streaming |
-
2006
- 2006-06-27 BR BRPI0621786-9A patent/BRPI0621786A2/pt not_active IP Right Cessation
- 2006-06-27 WO PCT/US2006/024974 patent/WO2008002295A1/en active Application Filing
- 2006-06-27 EP EP06774100.9A patent/EP2039158B1/en not_active Ceased
- 2006-06-27 JP JP2009518063A patent/JP5140666B2/ja not_active Expired - Fee Related
- 2006-06-27 KR KR1020087031636A patent/KR101359081B1/ko active IP Right Grant
- 2006-06-27 US US12/227,954 patent/US8838823B2/en active Active
- 2006-06-27 CN CN2006800551648A patent/CN101480050B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050055718A1 (en) | 2003-09-05 | 2005-03-10 | Stone Christopher J. | Peer-to-peer architecture for sharing video on demand content |
US20060190615A1 (en) | 2005-01-21 | 2006-08-24 | Panwar Shivendra S | On demand peer-to-peer video streaming with multiple description coding |
US7644173B1 (en) | 2005-09-26 | 2010-01-05 | Roxbeam Media Network Corporation | System and method for facilitating expedited delivery of media content |
Non-Patent Citations (1)
Title |
---|
Sharma A et al: "dPAM: A distributed prefetching protocol for scalable asynchronous multicast in P2P systems" INFOCOM 2005. vol.2,13 March 2005, pages 1139-1150. * |
Also Published As
Publication number | Publication date |
---|---|
EP2039158B1 (en) | 2019-10-30 |
JP2009543182A (ja) | 2009-12-03 |
KR20090029741A (ko) | 2009-03-23 |
US20090177792A1 (en) | 2009-07-09 |
BRPI0621786A2 (pt) | 2011-12-20 |
US8838823B2 (en) | 2014-09-16 |
WO2008002295A1 (en) | 2008-01-03 |
CN101480050A (zh) | 2009-07-08 |
JP5140666B2 (ja) | 2013-02-06 |
EP2039158A4 (en) | 2009-11-11 |
EP2039158A1 (en) | 2009-03-25 |
CN101480050B (zh) | 2013-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101359081B1 (ko) | 성능 인식 p2p 콘텐트 온 디맨드 | |
US11503112B2 (en) | Selective access of multi-rate data from a server and/or peer | |
US6874015B2 (en) | Parallel CDN-based content delivery | |
JP5020316B2 (ja) | パフォーマンスを意識したピアツーピアビデオオンデマンドの許可制御 | |
US20070288638A1 (en) | Methods and distributed systems for data location and delivery | |
US20100281509A1 (en) | Prefix caching assisted quality of service aware peer-to-peer video on-demand | |
US20110131278A1 (en) | Systems and methods for peer-to-peer bandwidth allocation | |
US8010748B2 (en) | Cache structure for peer-to-peer distribution of digital objects | |
Wang et al. | Joint online transcoding and geo-distributed delivery for dynamic adaptive streaming | |
US20090202221A1 (en) | Support for Interactive Playback Devices for Performance Aware Peer-to-Peer Content-on Demand Service | |
CN101605242B (zh) | 用于实现视频点播服务的方法、装置和系统 | |
US20220191260A1 (en) | Method for playing on a player of a client device a content streamed in a network | |
Liang et al. | ipass: Incentivized peer-assisted system for asynchronous streaming | |
US9386056B1 (en) | System, method and computer readable medium for providing media stream fragments | |
CN102638704B (zh) | 性能感知的对等内容点播 | |
Cao et al. | P2P-based Video-on-Demand Service Using Multiple Cache Replacement Algorithm | |
Hoßfeld et al. | Investigation of chunk selection strategies in peer-assisted video-on-demand systems | |
Wang et al. | Joint online transcoding and geo-distributed delivery for |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20170102 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20180103 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20191226 Year of fee payment: 7 |