KR20110095231A - 피어 투 피어 스트리밍을 위한 방법 및 장치 - Google Patents

피어 투 피어 스트리밍을 위한 방법 및 장치 Download PDF

Info

Publication number
KR20110095231A
KR20110095231A KR1020117003411A KR20117003411A KR20110095231A KR 20110095231 A KR20110095231 A KR 20110095231A KR 1020117003411 A KR1020117003411 A KR 1020117003411A KR 20117003411 A KR20117003411 A KR 20117003411A KR 20110095231 A KR20110095231 A KR 20110095231A
Authority
KR
South Korea
Prior art keywords
peer
transport protocol
time transport
real time
partial
Prior art date
Application number
KR1020117003411A
Other languages
English (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 노키아 코포레이션
Publication of KR20110095231A publication Critical patent/KR20110095231A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • 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
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network 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/63Control 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/643Communication protocols
    • H04N21/6437Real-time Transport Protocol [RTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

본 발명의 전형적 실시예에 따른 장치는 복수의 실시간 전송 프로토콜 데이터 유닛들 중 적어도 한 개를, 그 복수의 실시간 전송 프로토콜 데이터 유닛들 중 한 개와 관련된 적어도 한 타임스탬프에 적어도 일부 기초하여, 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들로 할당하도록 구성된 프로세서를 포함한다. 복수의 실시간 전송 프로토콜 유닛들은 실시간 전송 프로토콜 미디어 스트림과 관련된 것이다.

Description

피어 투 피어 스트리밍을 위한 방법 및 장치{Method and apparatus for peer to peer streaming}
본 출원은 일반적으로 통신 시스템의 데이터 또는 미디어에 관한 것이다.
피어-투-피어 (P2P, peer-to-peer)는 통신 네트워크에서의 콘텐츠 분산 솔루션이다. 이것은 전통적인 클라이언트-서버 기반 접근방식에 대한 대안적인 솔루션을 제공한다. 클라이언트-서버 기반 접근방식에서, 중앙 서버들은 각종 네트워크 개체들, 사용자 단말들 등등 간 미디어 콘텐츠 교환에 있어 중요한 역할을 수행한다. P2P 네트워크에서, 피어 (peer) 노드들 또는 참가자들은 동시에 클라이언트 및 서버들 둘 모두로서의 역할을 할 수 있다. P2P 네트워크에서, 피어 노드들은 애드 호크 (ad hoc) 접속을 이용해 연결될 수 있다. P2P 기술의 전형적 애플리케이션이 파일 공유이다.
통신 네트워크에서, 미디어 전달 방법에는 다운로드, 업로드, 스크리밍 등등이 포함된다. 다운로드나 업로드를 이용할 때, 수신하는 기기는 미디어 전송이 완료된 후에 미디어 콘텐츠를 디스플레이할 수 있다. 스트리밍의 경우, 수신된 미디어나 데이터는 보통, 미디어가 전송되고 있는 도중이나 전송이 완료되기 전에 최종 사용자 기기에서 디스플레이된다. 스트리밍 애플리케이션의 최종 사용자는 긴 시동 지연을 피할 수 있는데, 이는 스트리밍이 전체 콘텐츠가 사용자 기기상에 저장될 필요를 없애기 때문이다.
P2P 파일 공유 기술들에 의해 영감을 받아, 실시간 P2P 스트리밍 기술들이 멀티미디어 콘텐츠 스트리밍을 위한 새로운 체제로서 출현하고 있다.
본 발명의 다양한 양태들이 청구항들에 기술되어 있다.
본 발명의 전형적 실시예에 따른 장치는, 복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개와 결부된 적어도 한 개의 타임 스탬프에 적어도 일부 기초하여, 상기 복수의 실시간 전송 프로토콜 데이터 유닛들 중 적어도 하나를 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션에 할당하도록 구성된 프로세서를 포함한다. 복수의 실시간 전송 프로토콜 데이터 유닛들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있다.
본 발명의 또 다른 전형적 실시예에 따른 방법은, 복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개와 결부된 적어도 한 개의 타임 스탬프에 적어도 일부 기초하여, 상기 복수의 실시간 전송 프로토콜 데이터 유닛들 중 적어도 하나를 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션에 할당하는 단계를 포함한다. 복수의 실시간 전송 프로토콜 데이터 유닛들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있다.
본 발명의 전형적 실시예에 따른 장치는, 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 수신하도록 구성된 프로세서를 포함한다. 적어도 두 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있다. 이 프로세서는 또한 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개를 수신하도록 구성된다.
본 발명의 또 다른 전형적 실시예에 따른 방법은, 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 수신하는 단계를 포함한다. 적어도 두 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있다. 이 방법은 또한 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개를 수신하는 단계 역시 포함한다.
본 발명의 또 다른 전형적 실시예에 따른 컴퓨터 프로그램 제품은, 컴퓨터와 함께 사용할 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 매체를 포함하고, 상기 프로그램 코드는, 복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개와 결부된 적어도 한 개의 타임 스탬프에 적어도 일부 기초하여, 상기 복수의 실시간 전송 프로토콜 데이터 유닛들 중 적어도 하나를 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션에 할당하도록 하는 코드를 포함한다. 복수의 실시간 전송 프로토콜 데이터 유닛들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있다.
본 발명의 또 다른 전형적 실시예에 따른 컴퓨터 프로그램 제품은, 컴퓨터와 함께 사용할 컴퓨터 프로그램 코드를 포함하는 컴퓨터 판독가능 매체를 포함하고, 상기 프로그램 코드는, 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 수신하도록 하는 코드를 포함한다. 적어도 두 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있다. 컴퓨터 프로그램 코드는 또한, 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개를 수신하도록 하는 코드를 또한 포함한다.
본 발명의 전형적 실시예들에 대한 보다 완전한 이해를 돕기 위해, 지금부터 첨부된 도면들과 함께 이하의 상세 설명을 참조할 것이다.
도 1은 본 발명의 실시에들이 구현될 수 있는 전형적인 피어 투 피어 네트워크를 도시한 것이다.
도 2는 단일 소스 피어 아키텍처를 가진 전형적 피어 투 피어 네트워크의 개략도를 도시한 것이다.
도 3은 피어 투 피어 네트워크의 클러스터링 된 오버레이 아키텍처의 개략도를 보인 것이다.
도 4는 본 발명의 전형적 실시예에 따라 실시간 전송 프로토콜 미디어 스트림들을 복수의 부분 실시간 전송 프로토콜 미디어 스트림들로 분할하는 것을 예시한 블록도이다.
도 5는 본 발명의 전형적 실시예에 따라 실시간 전송 프로토코콜 미디어 스트림을 복수의 부분 실시간 전송 프로토콜 스트리밍 세션들로 분할하는 프로세스를 보인 다이어그램이다.
도 6은 본 발명의 전형적 실시예에 따라, 실시간 전송 프로토콜 미디어 스트림을 복수의 부분 실시간 전송 프로토콜 스트리밍 세션들로 분할하는 방법의 흐름도이다.
도 7은 본 발명의 전형적 실시예에 따라 한 개 이상의 부분 실시간 전송 프로토콜 스트리밍 세션들을 수신하는 방법의 흐름도이다.
도 8은 피어 투 피어 네트워크에서 부분 실시간 전송 프로토콜 스트림들을 여러 피어들로 전송하는 전형적 실시예를 도시한 개략도이다.
본 발명의 전형적 실시예와 그 가능한 이점들은 도 1 내지 8을 참조함으로써 가장 잘 이해될 수 있을 것이다.
도 1은 본 발명의 실시예들이 구현될 수 있는 전형적인 피어 투 피어 네트워크(100)를 도시한 것이다. 피어 투 피어 네트워크(100)는 복수의 피어들 또는 피어 노드들(110)을 포함한다. 피어(110)는 데스크 탑 컴퓨터, 랩 탑 컴퓨터, 서버, 모바일 기기 등등이 될 수 있다. 피어(100)는 한 개 이상의 다른 피어들(110)과 연결될 수 있다. 피어 투 피어 네트워크(100)에서 피어들(110)은 가령 로컬 영역 네트워크 (LAN), 인터넷(150), 무선 통신 네트워크 등을 포함하는 한 개 이상의 통신 네트워크들을 통해 서로와 연결될 수 있다. 피어(110), 또는 사용자 기기(UE)는 무선 로컬 영역 네트워크 액세스 포인트(102), 무선 네트워크 기지국(104), 유선 로컬 영역 네트워크 (LAN) 액세스 포인트 등등을 거쳐 인터넷(150)에 액세스할 수 있다. P2P 네트워크(100)에서 피어들 간 연결은 애플리케이션 계층에서 설정된다.
P2P 기술은 멀티미디어 콘텐츠의 실시간 스트리밍의 체제로서 인기를 얻고 있다. 실시간 P2P 스트리밍은 최종 사용자들, 네트워크 제공자들 등등을 위한 새로운 활용 케이스들 및 비즈니스 모델들을 가능하게 할 수 있다. P2P 스트리밍 기술은 최종 사용자에 의해, 가령 스트리밍 서버들 같은 전용 서버들을 필요로 하지 않고 실시간으로 하나 이상의 다른 사용자들로 멀티미디어 콘텐츠의 스트리밍을 가능하게 한다. 멀티미디어 콘텐츠는 하나 이상의 피어들(110)을 통해 최종 사용자 기기나 소비자 피어(110)에게 스트리밍 될 수 있다. 피어 투 피어 네트워크(100)에서, 가령 통신 채널들의 설정, 관리 및/또는 유지 및/또는 멀티미디어 스트리밍 애플리케이션과 관련된 데이터 전송 등을 하는 데 있어, 콘텐츠 전송은 전용 서버 없이 피어들(110)에 의해 관리될 수 있다.
P2P 네트워크(00)의 통신 자원들은 보통 여러 피어 노드들(110) 상에 분산되어 있다. 실시간 P2P 스트리밍 기술은, 이를테면 많은 양의 멀티미디어 콘텐츠와 많은 수의 콘텐츠 제공자들, 말하자면 최종 사용자들을 수용하면서 본질적으로 확장 가능 (scalable)하다. 실시간 P2P 스트리밍은 브로드캐스팅 애플리케이션들을 지원하기 위한 잠재능력을 가질 수도 있는데, 이는 피어 투 피어 네트워크(100) 내 어느 피어(110)라도 독립적인 브로드캐스터가 될 수 있기 때문이다.
도 2는 단일 소스 피어 아키텍처를 갖는 전형적 피어 투 피어 네트워크(100)의 개략도이다. 이 전형적 아키텍처는 기본 소스 피어 110'를 가지는 트리 구조를 포함한다. 기본 소스 피어 110'는 다른 피어들 110로 전달되는 미디어 콘텐츠의 오리지널 소스이다. 소비자 피어 110는 미디어 콘텐츠를 수신해, 가령 그것을 최종 사용자에게 디스플레이 하는 식으로 소비한다. 중간 혹은 전달자 피어 110는 미디어 콘텐츠를 수신해 그것을 다른 피어 110로 전달한다. 전달자 피어 110도 소비자 피어 110일 수 있다. 예를 들어, 전달자 피어가 미디어 콘텐츠를 다른 피어들 10로 전달하고, 그 미디어 콘텐츠를 해당 최종 사용자에게 디스플레이할 수도 있다. 도 2에서 나타낸 전형적 아키텍처에서, 각각의 피어 110는 단일 소스 피어로부터 미디어 콘텐츠를 수신한다. 소스 피어는 기본 소스 피어 110'이거나 전달자 피어 110일 수 있다.
단일 소스 피어를 특징으로 하는 아키텍처에서, 데이터 전송에 대한 인터럽션 (interruption)의 위험이 증가할 수 있다. 도 2에서, 가령 피어 A 및 피어 B 사이의 링크(120) 상에서의 데이터 전송 인터럽션은 피어 B와 관련된 피어들의 그룹 또는 서브트리(130)에 영향을 미친다. 달리 말해, 피어 B가 데이터 전송시 인터럽션을 경험하면, 피어 B에 종속되는 피어들 110, 이를테면 피어 B와 관련된 차일드 (child) 피어들 역시 인터럽션을 경험하게 된다.
P2P 스트리밍은 기존의 콘텐츠 배포 메커니즘 및 프로토콜들에 대한 새로운 과제를 제시할 수 있다. 예를 들어, 피어들 110이 P2P 네트워크(100)에 동적으로 참여하거나 이탈할 수 있다. 한 피어 110는 한 개 이상의 소스 피어들 110로부터 스트리밍 데이터를 수신할 수 있다. 한 개 이상의 소스 피어들이 P2P 네트워크(100)를 이탈하면, 수신하는 피어(110)는 자신의 대응 소스 피어들 110을 재선택해야 할 것이다. 피어 110는 미디어 콘텐츠를 한 개 이상의 다른 피어들 110로 전송하는데 사용되는 업링크 대역폭, 및/또는 한 개 이상의 다른 피어들 110로부터 미디어 콘텐츠를 수신하는데 사용되는 다운링크 대역폭을 가질 수 있다. 피어 110는 이를테면 업링크 대역폭과 다운링크 대역폭과는 다른 비대칭 액세스 네트워크 접속을 할 수 있다. 일부 피어들 110은, 예를 들어 비디오 스트림 등과 같은 완전 데이터 스트림을 가지고 다른 피어 110를 서비스하기 충분한 업링크 대역폭을 가지지 못할 수 있다. 실시간 P2P 스트리밍과 관련된 어려움의 또 다른 예가 세션 시동 시의 지연 제약 (delay constraint)이다. P2P 스트리밍 애플리케이션의 이용자들은 가령 일 분 이상을 아우르는 너무 긴 시동 지연을 견디지 못할 것이다. P2P 스트리밍 세션을 시작할 때, 긴 시간 지연이 사용자 체험의 질을 저하시킬 수 있다.
시동 지연은, 적어도 부분적으로 소스 피어 110' 및 소비자 피어 110 사이의 홉 (hop)이나 접속 링크들(120)의 수에 영향을 받을 수 있다. 소스 피어 110'와 소비자 피어 110 사이의 홉의 수는, 단일 소스 피어 아키텍처를 가진 P2P 네트워크(100) 등에서 커질 수 있다.
P2P 파일 공유 애플리케이션은 여러 소스 피어들을 이용한 콘텐츠 배포 접근방식을 활용한다. 파일이 우선, 가령 동일 사이즈의 부분들이나 덩어리들로 분할된다. 한 피어는 소스 피어들과 연결되고, 무작위적 순서로 파일의 빠진 부분들을 요구한다. 파일 부분들의 다운로드 프로세스는 느릴 것이고, 사용자들은 가령 사나흘의 긴 다운로드 지연을 경험할 수 있다. 스트리밍 애플리케이션들에서는 그러나 긴 지연이 허용될 수가 없을 것이다.
도 3은 피어 투 피어 네트워크(100)의 전형적 클러스터링 된 오버레이 (clustered overlay) 아키텍처의 개략도를 보인 것이다. 클러스터링 된 오버레이 아키텍처를 가진 P2P 네트워크(100)는 본 발명의 전형적 실시예들이 구현될 수 있는 전형적인 P2P 네트워크이다. 도 3의 전형적 오버레이 네트워크는 P2P 서비스와 관련해 세 개의 클러스터들(130), 이를테면 클러스터 1, 클러스터 2, 그리고 클러스터 3을 포함한다. 본 발명의 한 전형적 실시예에 따르면, 각각의 P2P 서비스, 또는 애플리케이션, 이를테면 실시간 전송 프로토콜 (RTP, real-time transport protocol) 미디어 스트리밍 세션에 대해 한 오버레이 네트워크가 독자적으로 유지된다. 서비스 디스커버리 서버 (SDS, service discovery server)(140)는 한 개 이상의 클러스터들(130)로 된 계층 (hierarchy)에 대한 정보를 포함할 수 있다. SDS(140)는 또한 통신 시스템에서 이용가능한 P2P 서비스들에 대한 정보 또한 포함할 수 있다. 한 전형적 실시예에서, SDS(140)는 실질적 P2P 오버레이 네트워크의 일부가 아닌 중앙 비-모바일 서버일 수 있다. 다른 대안적 실시예에서, SDS(140)는 가령 분산 해시 테이블들 (DHTs, Distributed Hash Tables)를 이용함으로써 분산 방식으로 구현될 수 있다.
한 클러스터(130)는 복수 개의 피어들(110)을 포함한다. 클러스터(130)는 클러스터 리더 (CL, cluster leader)(111)에 의해 감독 및/또는 관리될 수 있다. 한 전형적 실시예에서, 한 개의 CL(111)이 각각의 클러스터(130)에 할당된다. 한 개 이상의 백업 클러스터 리더들 (BCLs, backup cluster leaders)(112) 역시 각각의 클러스터에 할당될 수 있다. CL들(111)은 클러스터(130) 안에 있는 피어들(110)을 관리할 수 있다. 예를 들어, CL(111)은 새로 참여한 피어(110)를 클러스터(130) 안에 있는 한 개 이상의 다른 피어들(110)에 결합하거나 연결하는 일을 지원할 수 있다. CL(130)은 예를 들어, 높은 처리율의 액세스 네트워크 접속, 많은 메모리, 높은 CPU 파워, 장기 예상 배터리 수명 등과 같은 사양들을 가진 모바일 피어 노드일 수 있다. CL은 P2P 네트워크(100) 내 데스크 탑 컴퓨터 등과 같은 고정형 피어 노드일 수도 있다.
본 발명의 전형적 실시예에 따르면, 피어(110)는 예를 들어 RTP 패킷들을 수신하거나 수신했던 다른 피어들(110) 및 CL(111)과 주기적인 킵-얼라이브 (keep-alive) 메시징을 수행할 수 있다. 피어(110)는 킵-얼라이브 메시징을 이용해 다른 피어들(110)에게 자신의 존재에 대해 알릴 수 있다. 다시 말하면, 킵-얼라이브 메시징이 피어들로 하여금 다른 피어들의 상태, 이를테면 다른 피어들이 P2P 네트워크(100)를 이탈했는지, 여전히 연결되어 있는지 여부와 같은 것을 계속 추적할 수 있게 한다. RTP는 사용자 데이터그램 프로토콜 (UDP, user datagram protocol)을 사용할 수 있고, 소스 피어에게, 예를 들어 수신하는 피어, 가령 피어 110가 아직 P2P 네트워크(100) 안에 있는지 없는지 여부 등을 알리지 않을 수 있다. 그러나, 소스 피어는 예를 들어, 수신하는 피어(110)로부터의 킵-얼라이브 메시지들의 인터럽션에 기초해, P2P 네트워크(100)로부터 수신하는 피어(110)의 이탈을 검출할 수 있다. 그러면 소스 피어는 이를테면 P2P 네트워크(100)를 이탈한 수신하는 서버(110)로의 불필요한 데이터 전송을 피할 수 있게 된다.
본 발명의 전형적 실시예에 따르면, 클러스터링 된 오버레이 아키텍처를 가진 P2P 네트워크(100)는, 적어도 일부 클러스터들의 근접도에 기초해 피어들(110)을 그룹화한 클러스터들(130)로 확장될 수 있다. 예를 들어, P2P 네트워크(100)에 참여할 때, 한 피어(110)는 그 참여 피어(110) 등에 가장 가까운 CL(111)을 선택할 수 있다. 가장 가까운 CL(111)의 선택은 예를 들어 참여 피어(110) 및 한 개 이상의 CL들(111) 사이의 왕복 시간 (RTP)을 이용하는 등, 참여 피어(110)가 가진 국지성에 대한 최대한의 지식에 의거할 수 있다. 본 발명의 한 전형적 실시예에서, 클러스터들(130)은 클러스터 서치 성능을 향상시키기 위해, 특히 클러스터들의 수가 많을 때, 예를 들어 O(n)이 아닌 O(log(n))의 여러 레벨로 나눠질 수 있다. 본 발명의 한 전형적 실시예에 따르면, 한 클러스터(130) 안의 피어들(110)의 수는 제한되거나 상한 되어 있을 수 있다. 클러스터(130) 안의 피어들(110)의 개수를 제한하는 것은 CL들(111)에 대한 많은 처리 부담을 예방할 수 있다. P2P 서비스의 질을 저하시키지 않으면서 오버레이 P2P 네트워크의 확장성이 유지될 수 있다. 예를 들어, 클러스터링 된 오버레이 P2P 네트워크는 새 클러스터들(130)을 생성해 기존 클러스터들(130)이 한계 너머로 확장되지 않도록, 이를테면 각각의 클러스터(130) 내 피어들(110)의 수에 대한 상한 너머로 확장되지 않도록 방지하면서 확장될 수 있다.
본 발명의 한 전형적 실시예에 따르면, 한 P2P 멀티미디어 스트리밍 세션에서, 미디어 스트림과 결부된 미디어 콘텐츠는 실시간 전송 프로토콜 (RTP) 데이터 유닛들이나 패킷들로 압축된다. 미디어 스트림이나 RTP 세션은 예를 들어 기본 소스 피어(110')에서 적어도 두 개의 부분 RTP 스트림들로 구획, 또는 분할될 수 있다. 본 발명의 한 전형적 실시예에 따르면, RTP 세션을 부분 RTP 스트림들로 분할하는 일은 RTP 데이터 패킷 레벨에서 수행될 수 있다. 한 개 이상의 피어들(110)이 한 개 이상의 부분 RTP 스트림들을 수신하도록 요청할 수 있다. 부분 RTP 세션들은 부분 RTP 스트림들과 관련된 RTP 데이터 유닛들의 스트리밍을 위해 설정된다.
도 4는 본 발명의 일 실시예에 따라 실시간 전송 프로토콜 미디어 스트림(215)을 부분 실시간 전송 프로토콜 미디어 스트림들(216)로 분할하는 것을 보인 블록도이다. 한 멀티미디어 세션(210)은 한 개 이상의 RTP 세션들(215) 또는 미디어 스트림들을 포함할 수 있다. 도 4에서, 멀티미디어 세션(210)은 비디오 및 오디오 RTP 세션들을 포함한다. 도 4의 블록도에서, 두 RTP 세션들, 이를테면 오디오 및 비디오 (215) 각각은 복수의 부분 RTP 스트림들로 분할된다. 비디오 세션은 이를테면 N1 개의 부분 RTP 스트림들(216)로 분할되고, 오디오 세션은 N2 개의 부분 RTP 스트림들(216)로 분할된다. N1 및 N2는 1보다 크거나 같은 정수들이다. 본 발명의 전형적 실시예에서, 미디어 스트림들(215)을 복수의 부분 실시간 전송 프로토콜 미디어 스트림들(216)로 분할하는 일은 기본 소스 피어(110'), 또는 P2P 네트워크 내 또 다른 피어(110)에 의해 수행될 수 있다.
도 5는 본 발명의 전형적 실시에에 따라 실시간 전송 프로토콜 미디어 스트림(215)을 복수의 부분 RTP 스트리밍 세션들(216)로 분할하는 프로세스를 예시한 다이어그램이다. RTP 세션, 혹은 스트림(215), 예를 들어, 비디오, 오디오, 자막 등등의 스트림들이 예를 들어 시간 축을 따라 분할된 조각들(320)로 분할, 또는 나눠질 수 있다. 전형적 실시예에서, 분할된 조각들(320) 각각은 고정 시간 듀레이션 TP를 가질 수 있다. 요망되는 경우, 분할된 조각들(320)은 다른 시간 듀레이션들을 가질 수도 있다. 도 5의 전형적 실시예에서, 각각의 분할된 조각(320)은 한 개 이상의 RTP 데이터 패킷들이나 유닛들(310)에 대응할 수 있다. 본 발명이 전형적 실시예에서, 분할된 조각(320)의 시간 듀레이션 TP는, 평균적으로 적어도 하나의 RTP 패킷(310)을 포함하기 충분할 정도의 크기가 되도록 선택될 수 있다. 도 5의 전형적 실시예에서, 분할된 부분의 타임 듀레이션은 80 밀리초 (ms), 말하자면 TP = 80 ms와 같다. 각각의 분할된 조각(320)마다 두 개의 RTP 데이터 패킷들(310)을 포함한다. 초당 25 프레임들에 해당하는 프레임 레이트를 가진 비디오 스트림에 있어서, 각각의 분할된 조각(320)은 두 개의 픽처 프레임들에 상응하는 미디어 데이터를 포함한다. 예를 들어, 그 같은 비디오 스트림, 즉 400 ms에 해당하는 시간 듀레이션을 가진 분할된 조각(320)은 10 개의 픽처 프레임들에 상응하는 미디어 콘텐츠를 포함한다. RTP 세션(215)의 분할된 조각들(320)은 N 개의 부분 RTP 스트림들, 또는 세션들(216) 안에 디멀티플렉싱 된다 (demultiplexed). N은 부분 RTP 스트림들, 혹은 세션들(216)의 총 수이다. 도 5에서 N은 4이다.
도 5의 전형적 실시예에 따르면, 한 개의 분할된 조각(320)을 각각의 부분 RTP 스트림(216)에 할당하는 시간의 주기, 혹은 시간 사이클이 Tc = Ns Tp로서 규정될 수 있다. 한 전형적 실시예에서, 분할된 조각의 시간 듀레이션 Tp은 평균적으로 적어도 한 개의 RTP 데이터 패킷(310)을 포함할 만큼 충분한 길이가 되도록 선택될 수 있다. 시간 듀레이션 Tp가 아주 적으면, 어떤 분할 조각들(320)은 빈 것, 이를테면 아무 데이터도 갖지 않은 것이 될 수 있다. 비어 있는 복수의 분할 조각들(320)의 발생이 비어 있는 부분 스트림(216)을 파생할 수 있다. 그러나, 큰 사이클 시간들은 긴 시동 지연들을 파생할 수 있다. 소비자 피어(110)는 심리스 (seamless) 재생이 시작되기 전에 예를 들어 N 개의 분할된 부분들(320)의 한 온전한 사이클을 버퍼링할 수 있다. 전형적 실시예에서, 부분 RTP 스트림들의 총 수 N은 4와 10 사이에 있을 수 있다.
본 발명의 전형적 실시예에서, 모든 분할된 조각(320)은, 가령 부분 RTP 스트림(216)이 수신되지 못함에 따른 패킷 손실이 존재할 때, 부분 RTP 스트림들이나 세션들(216)의 독립적 디코딩을 돕기 위해, 인트라 코딩된 (intra-coded) 픽처로 시작할 수 있다. GOP (group-of-picture) 경계들에 맞춰 분할된 조각들(320)을 정렬함으로써, 각각의 분할된 조각(320)의 시작 부분에서 인트라 코딩된 픽처를 가지게 되는 결과를 얻을 수 있다.
RTP 데이터 유닛, 혹은 패킷(310)은 시간 정보, 이를테면 타임스탬프 (TRTP)를 포함하는데, 이것은 해당하는 RTP 세션(215) 내에서 해당 RTP 데이터 유닛(310)의 최초 옥텟 (octet, 8개 한 벌)의 샘플링 순간을 가리킨다. 전형적 실시예에서, 분할된 조각들(320)은 RTP 시간 기준에 맞춰 정렬된 시간 기준 t0, 혹은 RTP 타임 라인의 원점을 포함할 수 있다. RTP 타임 라인의 원점은, RTP 스트림(215) 내 최초 RTP 데이터 패킷(310)의 재생 시간, 혹은 타임스탬프일 수 있다. 달리 말해, 최초 분할된 조각(320)의 시작부분이 RTP 타임 라인의 원점에 위치할 수 있다. 대안적 실시예에서, 최초 분할된 조각(320)의 원점은 RTP 타임 라인 상의 임의의 임시 시점에 자리할 수도 있다. RTP 타임 라인의 원점과 최초 분할된 조각(320)의 원점 사이에 오프셋이 존재하는 경우, 가령 스트리밍 서비스가 개시될 때의 시간을 나타내는 시작 시간의 시그날링이 이용될 수 있다. 한 전형적 실시예에서, 스트림의 원점은, RTSP PLAY 응답 메시지의 RTP-Info 헤더를 사용해, 기본 소스 피어(110')로부터 다른 피어들(110)로 시그날링 될 수 있다. 또 다른 전형적 실시예에서, 스트림의 원점은 미디어 세션 설명, 이를테면 세션 설명 프로토콜 (SDP)이나 분류 (torrent) 파일 안에서 표시될 수 있다. 소스 피어는 연결된 피어들(110)로 오프셋 된 원점에 대해 시그날링 할 수 있다.
표 1은 도 5와 관련된 매개변수들의 집합을 나열한 것이다.
부분 RTP 스트림들이나 세션들과 관련된 매개변수들
매개변수 심볼 매개변수 이름 매개변수 설명
TP 분할 부분 크기/듀레이션 RTP 세션의 시간 관점에서 최소 분할 부분의 크기
t0 RTP 시간 원점 RTP 타임 라인의 원점을 나타냄
tRTP RTP 타임 스탬프 RTP 데이터 패킷에 vhga된 RTP 타임스탬프를 나타냄
N 부분적 스트림들의 개수 RTP 세션이 얼마나 많은 부분들로 세분되는지를 결정
i 부분적 스트림 인덱스 부분적 스트림의 인덱스
(0<=i<N)
도 5의 전형적 실시에에 따르면, 타임스탬프 값 tRTP를 가진 RTP 데이터 유닛, 혹은 패킷(310)이 아래의 식을 이용한 인덱스 i를 가진 부분 RTP 스트림들(216)에 할당될 수 있다;
Figure pct00001
연산자 "mod"는 수학적 모듈로 (modulo) 연산을 나타낸다. 본 발명의 전형적 실시예에서, TP 타임스탬프 tRTP, 분할된 부분(320)의 시간 듀레이션 TP, RTP 부분적 스트림들(216)의 총 개수 N, 및 매개변수 t0를 이용해, RTP 미디어 세션(215) 안의 모든 RTP 데이터 패킷(310)이 부분 RTP 스트림(216)에 할당된다.
시간 듀레이션, 이를테면 재생 시간 듀레이션에 기초하여 분할 조각들(320)을 규정하는 것의 이점들 가운데 하나가, 모든 패킷들이 RTP 계층에 그대로 유지될 수 있다는 데 있을 것이다. 예를 들어 비디오 스트리밍 시, 다른 RTP 데이터 패킷들(310)은 다른 픽처 프레임들과 관련된 콘텐츠에 대응할 수 있다. 분할 부분 듀레이션 TP가 한 픽처 프레임의 재생 듀레이션의 배수로서 세팅되는 한 전형적인 실시예에서, 각각의 분할 부분(320)은 RTP 데이터 패킷들의 정수 번호를 포함한다. 그런 다음 부분 RTP 스트림들(216)이 RTP 데이터 패킷들(310)의 레벨로 생성될 수 있으며, 그에 따라 RTP 데이터 패킷들(310)의 임의의 분절 (segmentation)을 피할 수 있게 된다. RTP 데이터 패킷들(310)의 분절은, 부분 RTP 스트림들(216)을 생성할 때 구현의 복잡도를 크게 높일 수 있다.
본 발명의 한 양태로서, 주요 RTP 패킷들(310)을 둘 이상의 부분 RTP 스트림들(216)에 할당함으로써 강화된 강건성 (robustness)이 얻어질 수 있다. 주요 RTP 패킷들은 예를 들어 비디오 콘텐츠 내 인트라 코딩 된 픽처 데이터나 에러 은닉을 도울 수 있는 다른 데이터에 해당하는 RTP 패킷들을 포함한다. 이중 RTP 패킷들은 수신 시 제거될 것이다.
피어(110)는 다른 피어(110)로부터 한 개 이상의 부분적 스트림들에 대한 전송을 요청할 수 있다. 전형적 실시예에서, 한 부분적 스트림은 미디어 스트리밍에 대한 가장 정교한 입자 (granularity)에 해당한다. 따라서 한 전형적 실시예에서, 피어는 부분 RTP 스트림(216)의 일부를 스트리밍할 수 없을 것이다. 다른 대안적 실시예에서는 부분 RTP 스트림의 일부가 스트리밍될 수도 있다. 부분 RTP 스트림들(216)의 개수는 한 부분 RTP 스트림의 타깃 비트레이트를 달성하도록 조정될 수 있다. P2P 네트워크(100)의 각각의 피어(110)가 적어도 한 개의 부분 RTP 스트림을 스트리밍하기 충분한 업링크 대역폭을 갖도록 하는 것이 바람직할 것이다. 압축된 비디오 콘텐츠는 보통 가변 비트레이트를 가지는데, 예를 들어 IDR (instantaneous decoder refresh), 즉 인트라-코딩된 픽처는 인터-코딩된 픽처보다 많은 비트들을 파생할 수 있다. 본 발명의 한 전형적 실시예에서, 분할 매개변수들, 즉 N 및/또는 TP에 대한 선택은 불균형적 분할을 피하는 방향으로 행해질 수 있다. 불균형적 분할은, 예를 들어 다른 픽처들보다 크기가 매우 큰 IDR 픽처들이 같은 부분 RTP 스트림(216) 안에 들어오는 경우에 일어날 수 있다. 원하는 경우, IDR 픽처들에 해당하는 RTP 데이터 패킷들이 같은 부분 RTP 스트림에 할당될 수 있다.
부분 RTP 스트림들(216)의 개수 N은 RTP 세션(215)에 따라 변할 수 있다. 예를 들어, RTP 오디오 세션(215)의 비트레이트가 대략 단일한 부분 RTP 비디오 스트림의 크기와 거의 같을 때, RTP 오디오 스트림(215)은 부분 RTP 스트림들(216)로 분할되지 않을 것이다.
부분 RTP 스트림들(216)의 개수 N이 어떤 P2P 서비스에 대해 P2P 네트워크(100) 전역을 통해 일정하지 않을 수 있다. 전형적 실시예에서 N은 네트워크 내 한 개 이상의 전달 피어들(110)에서 변경될 수 있다. N은 이용가능한 업링크 및 다운링크 대역폭들 같은 로컬 메트릭들에 좌우해 결정될 수 있다. 그러나, 네트워크 전역에 걸쳐 같은 N을 선택하는 것이 분할 기능의 설계를 단순화시킬 것이다.
본 발명의 전형적 실시예에 따르면, 단일 소스 피어는 여러 개의 부분 RTP 스트림들(216)을 특정 수신 피어로 전송할 수 있다. 여러 개의 부분 RTP 스트림들은 단일 RTP 세션(215)이나 별도의 RTP 세션들(216) 안에서 스트리밍 될 수 있다.
도 6은 본 발명의 한 전형적 실시예에 따라 실시간 전송 프로토콜 미디어 스트림(215)을 복수의 부분 RTP 스트리밍 세션들(216)로 분할하는 방법(400)의 흐름도이다. 블록 410에서, 미디어 RTP 스트림(215)과 관련된 적어도 두 개의 부분 RTP 세션들(216)이 기본 소스 피어(110') 같은 것을 통해 설정된다. 부분 RTP 세션들(215)을 설정하는 일은, 부분 RTP 세션들(215)의 개수, 즉 N을 결정하는 일, 한 개 이상의 다른 피어들(110)로 부분 RTP 세션들(216)과 관련된 매개변수들을 전송하는 일, 한 개 이상의 다른 피어들(110)로부터 적어도 한 개의 부분 RTP 세션이나 스트림(216)을 수신하도록 요청하는 요청들을 수신하는 일, 및 수신된 요청들에 대한 응답 메시지들을 전송하는 일 가운데 한 개 이상을 포함할 수 있다. 한 전형적 실시예에서, 한 개 이상의 피어들(110)은 기본 소스 피어(110')로 한 개 이상의 부분 RTP 스트림들(216)에 대한 요청을 전송할 수 있다. 그 요청들에는 요청된 부분 RTP 스트림들에 대한 표시, 즉 부분 RTP 스트림들의 인덱스들이 포함될 수 있다. 기본 소스 피어(110')는 그 요청들에 대한 확인 (acknoledgement)과 함께 응답을 할 수 있다.
블록 420에서, RTP 미디어 스트림(215)의 적어도 한 RTP 데이터 패킷(310)이 기본 소스 피어(110') 등에 의해 적어도 한 개의 부분 RTP 세션(216)에 할당된다. 본 발명의 전형적 실시예에 따르면, RTP 데이터 패킷들(310)의 할당은 도 4 및 5를 참조해 설명한 분할 프로세스 또는 절차에 따라 이행될 수 있다.
블록 430에서, 할당된 RTP 데이터 패킷들(310)은 그들이 해당하는 부분 RTP 세션(216) 안에서 전송된다. 예를 들어, P2P 네트워크(100) 내 한 피어(110)가 한 개 이상의 부분 RTP 스트림들(216)을 요청할 수 있다. 한 개 이상의 부분 RTP 스트림들(216)은 기본 소스 피어(110') 등에 의해 그 요청한 피어들로 전송된다.
본 발명의 전형적 실시예에 따르면, 장치, 즉 기본 소스 피어(110')는 멀티미디어 스트리밍 세션(210)의 한 개 이상의 RTP 스트리밍 세션들(15)과 관련된 미디어 데이터를 저장하는 메모리 유닛을 포함할 수 있다. 이 장치는 또한 도 6에서 나타낸 방법을 수행하도록 구성된 프로세서를 포함할 수 있다. 이 장치의 예들로는 모바일 기기, 랩 탑 컴퓨터, 데스크 탑 컴퓨터 등등이 포함될 수 있다. 이 장치는 미디어 콘텐츠를 압축 형식(들)으로 부호화하는 인코딩 모듈들 역시 포함할 수 있다.
본 발명의 전형적 실시예에 따르면, 도 6에 나타낸 방법은 컴퓨터 판독가능 매체에 수록되는 프로그램 컴퓨터 코드로서 구현될 수 있다.
도 7은 본 발명의 전형적 실시예에 따라 한 개 이상의 부분 RTP 스트리밍 세션들(216)을 수신하는 방법(500)의 흐름도이다. 블록 510에서, 피어 노드, 이를테면 피어 노드(110)가 P2P 스트리밍 서비스 또는 애플리케이션과 관련된 P2P 네트워크, 즉 P2P 네트워크(100)에 참여한다. 블록 520에서, 피어 노드(110)는 RTP 미디어 스트림 또는 세션(215)과 관련된 적어도 두 개의 부분 RTP 세션들(216) 관련 정보를 수신한다. 전형적 실시예에서, 이 정보는 부분 RTP 스트림들(216)과 관련된 한 개 이상의 매개변수들, 이를테면 부분 RTP 스트림들의 개수, 분할된 조각(320)의 듀레이션 등등을 포함하는 통지이다. 전형적 실시예에서, 이 통지는 소스 피어, 기본 소스 피어(110'), CL(111), SDS(140) 등등으로부터 수신된다. 블록 530에서, 피어 노드가 적어도 한 개의 다른 피어(110)로 적어도 하나의 부분 RTP 스트림 또는 세션(216)에 대한 적어도 한 요청을 전송한다. 요청하는 피어(110)는 그 요청(들)에 대한 응답을 수신할 수도 있다. 블록 540에서, 피어는 요청된 부분 RTP 세션(들)이나 스트림(들)(216)을 수신한다. 전형적 실시예에서, 피어는 한 개 이상의 다른 피어들(110)로부터 예를 들어 그 피어(110)에 의해 수신된 부분 RTP 세션들 중 한 개 이상에 대한 전달을 요청하는 메시지(들)을 수신할 수도 있다. 그 경우, 피어 노드는 요청된 부분 RTP 세션(들)이나 스트림(들)(216)을 그 한 개 이상의 요청한 피어들(110)로 전송 또는 전달할 수 있다. 피어 노드는 또, 수신된 부분 RTP 미디어 스트림들로부터 RTP 미디어 스트림을 재구성하여 그 재구성된 RTP 미디어 스트림을 소비할 수도 있다.
본 발명의 전형적 실시예에 따르면, 도 7에 나타낸 방법을 수행하는 피어(110)는 예를 들어 한 개 이상의 부분 RTP 스트리밍 세션들(216)과 관련된 RTP 데이터 패킷들(310)을 저장하기 위한 메모리 유닛을 구비한 장치이다. 이 장치는 도 7에 나타낸 방법을 수행하도록 구성된 프로세서를 또한 포함한다. 이 장치의 예로, 모바일 기기, 랩 탑 컴퓨터, 데스크 탑 컴퓨터 등등이 포함된다. 이 장치는 또 미디어 콘텐츠를 압축 형식(들)로 부호화하는 인코딩 모듈들을 포함할 수 있다.
본 발명의 전형적 실시예에 따르면, 도 7에 나타낸 방법은 컴퓨터 판독가능 매체에 수록되는 프로그램 컴퓨터 코드로서 구현될 수 있다.
도 8은 피어 투 피어 네트워크(100)의 여러 피어들(110)로 부분적 실시간 전송 프로토콜 스트림들(216)을 전송하는 전형적 실시예를 예시한 개략도이다. 도 8의 노드들은 피어들(210)을 나타내며, 에지들 (edges)은 부분 RTP 스트림들(216)을 나타낸다. 부분 RTP 스트림들의 인덱스 i가 각각의 에지 옆에 표시된다. 부분적 스트림들의 개수 N은 4로 세팅된다. 이 그래프에서 소스 피어 P0, 즉 스트리밍 서비스의 소스가 피어들 P1, P8 및 P10으로 데이터를 전송한다. 피어 P0는 부분 RTP 스트림들 1과 2를 P1으로 전하고, 부분 RTP 스트림들 2와 3을 P8으로 전함으로써, P0와 P2 사이의 업로드 비트 레이트를 효과적으로 배가시킬 수 있다.
본 발명의 전형적 실시예에서, 부분 RTP 스트림들(216)의 스트리밍을 설정하기 위해 RTSP의 특별한 익스텐션 (확장자)이 규정될 수 있다. 예를 들어, 이 익스텐션들은 한 피어(110)에서 다른 피어(110)로 부분 RTP 스트림 매개변수들을 시그날링하는데 사용될 수 있다. 부분 RTP 스트림(216)의 설정은 SETUP 및 PLAY 같은 RTSP 메소드들을 가지고 수행될 수 있다. SETUP 메소드는 "Require (요청)" 헤더 필드 내 부가적 "P2P-Extension" 피처 태그를 포함하도록 확장된다. 이 피처 태그는 수신하는 피어(110)가 P2P 익스텐션을 위한 지원이 요구될 수 있다는 것을 검출하는 것을 가능하게 한다. 그러한 메시지의 전형적 구문 구조가 아래에 보여진다:
Figure pct00002
RTSP PLAY 신택스는 다음과 같이 확장될 수 있다:
Figure pct00003
매개변수 t0는 옵션일 수 있으며, 따라서 상기 예 속의 RTP-Info 헤더 필드 역시 옵션일 수 있다.
본 발명의 전형적 실시예에 따르면, 클러스터링 된 오버레이 P2P 네트워크 동작들은 확장된 실시간 스트리밍 프로토콜 RTSP를 이용해 구현될 수 있다. RTSP 메소드들은 실제 P2P 익스텐션들과 관련된 한 개 이상의 추가 구성 태그들을 포함하도록 확장될 수 있다. 예를 들어, 한 태그, 즉 'RTP2P-v1'이 'Require' 헤더 필드 속에 사용되어, 실시간 P2P 애플리케이션들 및/또는 P2P 네트워크와 관련된 RTSP 익스텐션들에 대한 지원을 나타낼 수 있다. 전형적 실시예에서, 이 구성 태그, 즉 'RTP2P-v1'은 수신하는 피어가 실시간 P2P 익스텐션들에 대한 지원이 요망된다는 것을 검출하는 것을 가능하게 한다. RTSP 메시지들은 피어 식별자 (PID)와 관련된 헤더 필드, 즉 'Peer-Id' 헤더 필드를 또한 포함할 수 있다. PID와 관련된 헤더 필드는 PID와 관련된 헤더 필드를 포함하는 메시지의 소스, 즉 즉 소스 피어의 식별자를 나타낼 수 있다. 메시지 유형에 따라 다른 부가 헤더 필드들이 추가될 수 있다.
피어(110)가 P2P 오버레이 네트워크에 합류하고 싶어할 때, SDS(140)로부터 피어 식별자 (PID)가 요구될 수 있다. 피어 식별자(PID)에 대한 요청은 OPTIONS RTSP 메시지를 이용해 수행될 수 있다. OPTIONS RTSP 메시지는 OPTIONS RTSP 메시지의 헤더 필드, 즉 'Cluster' 헤더 필드 내 PID, 즉 'NewPeerId'를 가리키는 태그를 포함할 수 있다. PID를 수신하기 전에, 피어는 OPTIONS RTSP 메시지 안에서 PID의 값을 -1로 세팅할 수 있다. 고유 PID를 포함하는 응답 메시지가 SDS(140)에 의해 리턴 된다. 전형적 실시예에서, 응답 메시지는 PID와 관련된 헤더 필드, 즉 'New-Peer-Id' 헤더 필드를 가진 200 OK RTSP 메시지일 수 있다. 전형적 실시예에서, PID는 무부호 (unsigned)의 정수 값일 수 있다. 0의 값이 SDS(140)에 대해 예비될 수 있다. OPTIONS 및 200 OK RTSP 메시지들의 예들이 아래에 보여진다.
Figure pct00004
선택된 클러스터(130)에 참여할 때, 한 피어는 데이터가 획득될 수 있는 잠정적 소스 피어들, 즉 피어들(110)의 초기 리스트를 수신할 수 있다. 전형적 실시에에서, 초기 리스트는 선택된 클러스터(130)의 CL(111)로부터 수신된다. 본 발명의 전형적 실시예에 따르면, CL(111)은 예를 들어 클러스터(130) 내 피어들(110)의 개수가 많을 때에는 피어들(110)의 부분집합만을 전송할 수 있다. 원하는 경우, CL(111)이 선택된 클러스터(130) 내 피어들의 전체 리스트를 전송할 수도 있다. CL(111)은 클러스터(130)에 참여하는 새 피어들(110)을 자신의 피어 리스트에 추가할 수도 있다. 본 발명의 또 다른 전형적 실시예에 따르면, 소스 피어 선택 시, 가령 선택된 클러스터(130) 안에서의 근접도 테스트 (proximity testing)는 옵션일 수 있는 데, 이는 클러스터 선택 절차가 클러스터(130) 안의 피어들(110)이 서로 가까이 있다는 것을 보장할 것이기 때문이다. 원한다면, 합류하는 피어(110)가, 이를테면 적절한 것들이 발견될 때까지 선택된 소스 피어들을 테스트할 수 있다. 합류하는 피어는 또 주기적 킵-얼라이브 메시징을 수행하면서 잠정적 소스 피어들의 리스트 업데이트치들을 수신할 수도 있다. 따라서, 전형적 실시예에서, P2P 서비스를 소비하는 한 피어(110)를 위한 잠정적 소스 피어들의 리스트는 서비스 도중에 내내 최신의 것으로 유지될 수 있다.
본 발명의 전형적 실시예에 따르면, OPTIONS RTSP 메시지를 SDS(140)에 전송함으로써 SDS(140)는 CL(111) 생성, 이탈 및/또는 변경에 대한 정보를 받게 된다. OPTIONS RTSP 메시지는 가령 'Cluster' 헤더 필드 안에 'update' 같은 태그를 포함한다. 'update' 태그가 달린 OPTIONS RTSP 메시지는 SDS(140)에서 최신 클러스터(130) 리스트를 유지하는 것을 가능하게 한다. 전형적 실시예에서, CL(111)은 네트워크의 기능적 개체인데, 동시에, 미디어 데이터를 수신 및 송신하는 등에 의해 피어(110)로서 참여할 수도 있다. 이하에 있는 것은 클러스터 업데이트에 사용되는 OPTIONS 및 200 OK RTSP 메시지들의 예이다;
Figure pct00005
본 발명의 한 전형적 실시예에 따르면, 피어(110), 혹은 기본 소스 피어(110')는 SDS(140)로 ANNOUNCE RTSP 메시지를 전송함으로써 P2P 서비스를 생성할 수 있다. 실황 (live) 스트리밍 서비스를 나타내는 ANNOUNCE RTSP 메시지의 예가 아래에 보여진다;
Figure pct00006
Figure pct00007
전형적인 ANNOUNCE RTSP 메시지에서, 'Client-Port' 헤더 필드는 오버레이 통신에 사용될 포트 넘버를 가리킨다. 서비스는 세션 서술 프로토콜 (SDP)를 사용해 나타내진다. 두 개의 SDP 속성들, 'servoce-type' 및 'partial-info'가 서비스 정보를 시그날링 하는데 사용될 수 있다. 'service-type' 속성은 서비스의 타입을 규정한다. 'partial-info' 속성은 RTP 스트리밍 세션의 식별자 및 RTP 세션 분할과 관련된 매개변수들을 포함할 수 있다.
ANNOUNCE RTSP 메시지의 응답으로서, 200 OK RTSP 메시지가 SDS(140)에 의해 보내질 수 있다. 200 OK RTSP 메시지는 'Cluster-Id' 및/또는 'Service-Id' 헤더 필드들을 포함해, 각각 최초 클러스터와 새로 생성된 서비스의 ID들을 나타내도록 한다. SDS(140)가 다른 위치로 이동했을 경우, 301 Moved Permanently 응답 메시지가 가령 생성 피어 (creating peer)로 전송될 수도 있다. 재할당의 경우, 'Location' 헤더가 사용되어 생성 피어로 SDS(140)의 새 위치에 대한 정보를 알리도록 할 수 있다. 가령 200 OK RTSP 메시지가 아닌 어떤 다른 메시지 유형을 수신했다는 것은 실패한 P2P 서비스 생성이라고 해석될 수 있다. SDS(140)에 의해 전송된 200 OK RTSP 메시지는 P2P 서비스가 성공적으로 생성되었다고 해석될 수 있다. 세션 생성 요청에 대한 응답으로서 전송되는 전형적인 200 OK RTSP 메시지를 아래에서 보인다;
Figure pct00008
성공적으로 생성된 P2P 서비스에 대해, CL(111)을 선택함으로써 초기 클러스터(130)가 만들어질 수 있다. 전형적 실시예에서, 서비스에 합류하는 최초 피어가 SDS(140)에 의해 CL(111)이라고 지정될 수 있다. 다른 전형적 실시예에 따르면, 오리지널 데이터 소스, 즉 기본 소스 피어(110')가 서비스의 최초 CL(111)일 수 있다. CL(111)은 다른 피어들(110)이 서비스에 합류할 때까지 기다릴 수 있다. 새 피어들이 서비스에 합류하면서, CL(111)에 의해 BCL들(112)이 할당될 수 있다. 전형적 실시예에서, BCL들(112)의 할당은 'Cluster' 헤더 필드 내 'backup' 태그를 가진 OPTIONS RTSP 메시지를 통해 이행될 수 있다. 한 피어가 BCL 할당을 수용하면, 그 피어는 200 OK 메시지를 전송할 것이다. 피어가 BCL 할당을 수용하지 않으면, 그 피어는 403 Forbidden 메시지를 전송할 것이다. 성공적 BCL 할당시 전송되는 전형적 메시지들을 아래에서 보인다;
Figure pct00009
CL(111)이 P2P 네트워크를 이탈하면, 그 CL은 그 CL(111)과 같은 클러스터(130) 내 BLC들(112) 중 하나에 의해 대체된다. 전형적 실시예에서, 액티브 CL(111)이 없는 클러스터(130)에서, 새 피어들이 클러스터(130) 안에서 수용될 수 있다. 클러스터(130) 내 피어들(110)은 CL 변경 중에 그 클러스터(130)로 합류한 새 피어들(110)을 발견할 수가 없을 것이다. BCL(112)은 CL(111)로 GET_PARAMETER 요청 메시지를 전송할 수 있다. BCL이 CL(111)로부터 응답을 받지 못하면, 그 BCL은 CL(111)이 클러스터(130)를 떠났다고 결론 내릴 수 있다. BCL은 CL(111)을 교체하라고 요청하는 OPTIONS 메시지를 이용해 SDS(140)를 접촉할 수 있다. 클러스터 안에 한 개를 넘는 BCL(112)이 있는 경우, 가장 먼저 수신된 OPTIONS 메시지를 가진 BCL이 새 CL(111)로 할당될 것이다. 그 클러스터에 합류하는 피어들은 새로 할당된 CL(111)을 이용할 수 있다. 클러스터(130) 안의 다른 BCL들은 새로 할당된 CL(111)에 대한 정보를 포함하는 301 Moved Permanently 메시지를 수신할 수 있다. 다른 BCL들은 예를 들어, 'Cluster' 헤더 필드 안의 'join_bcl' 태그가 있는 OPTIONS 메시지를 새로 할당된 CL(111)로 전송하고 BCL 역할을 계속할 수 있다. 이전 (old) CL(111)이 클러스터(130)를 떠나지는 않았지만 접속 문제를 가지고 있다면, SDS(140)에 의해 OPTIONS 메시지가 새 CL(111)로 방향을 바꿔 전송될 수 있다. 이전 CL(111)은 한 전형적 실시예에 따라 BCL(112)이 될 수 있다. 대체 CL(111)로 전송되는 메시지들의 예가 이하에 보여진다;
Figure pct00010
Figure pct00011
Figure pct00012
Figure pct00013
Figure pct00014
전형적 실시예에서, CL(111)을 사용할 수 없다는 것을 알게 된 피어(110)는 같은 클러스터 내 BCL들과 연결을 시도할 수 있다. 한 BCL이 그 이전 CL을 대체했으면, 대체한 BCL이 200 OK 메시지로 응답을 할 수 있다. BCL이 그 CL을 대체하지 않았으면, 그 BCL은 예를 들어, 마지막으로 알려진 CL의 위치를 가리키는 'Location' 헤더를 가진 301 Moved Permanently 응답 메시지를 보낼 것이다. BCL들 중 어느 것도 피어에 응답하지 않는 경우, 그 피어는 SDS(140)로 질의를 보내 새 클러스터(130)를 요청할 수 있다.
클러스터(130)가 너무 커져서 한 개의 CL(111)로 관리되지 못할 수 있다. 그런 상황에서, 클러스터는 가령 두 개의 서로 다른 클러스터들로 분리될 수 있다. 전형적 실시예에서, 여럿으로 분리되는 클러스터의 CL이, 자신의 BCL들 중 하나가 그 각각의 클러스터들 중 하나의 새 CL이 되도록 할당할 수 있다. CL은 또 새로 할당된 CL로 여러 피어들(110)을 재할당할 수 있다. 전형적 실시예에서, 클러스터 분리는 예를 들어 'Cluster' 헤더 필드 안에 'split' 태그를 가진 OPTIONS 메시지를 사용해 수행될 수 있다. 한 BCL이 200 OK 메시지를 가지고 응답할 수 있다. 그 BCL이 새로 생성된 클러스터(130)의 CL이 될 수 있다. 여럿으로 분리되는 클러스터의 클러스터 리더가 새 클러스터로 할당된 피어들(110)에게 REDIRECT (재할당) 메시지를 전송할 수 있다. REDIRECT 메시지는 예를 들어 'Location' 헤더 필드 안에 새로 생성된 클러스터(130)의 CL의 위치를 포함하고, 'Cluster-Id' 헤더 필드 안에 새로 생성된 클러스터의 ID를 포함할 수 있다. 예를 들어 새 클러스터 리더에게 OPTIONS 메시지를 전송함으로써, 재할당된 피어들(110)이 새 클러스터에 합류할 수 있다. 재할당된 피어들(110) 역시 200 OK 메시지로 그 분리되는 CL에 응답할 수 있다. 클러스터 분리 절차 중에 전송되는 메시지들의 예가 아래에서 보여진다;
Figure pct00015
Figure pct00016
예를 들어 'Cluster' 헤더 필드 안에 'join_neighbor' 태그가 있는 OPTIONS 메시지를 전송하고 200 OK 응답 메시지를 수신함으로써, 서로 다른 클러스터들(130)의 CL들(111) 간 오버레이 (중첩) 연결이 만들어질 수 있다. CL에서 CL로의 연결은 이웃하는 클러스터들(130) 간 클러스터 정보 교환에 사용될 수 있다. CL 이웃 참여 절차 중에 전송되는 OPTIONS 및 200 OK 메시지들의 예가 이하에서 보여진다;
Figure pct00017
전형적 실시예에서, 가령 두 클러스터들 중 하나나 둘 모두가 작아지면, 즉 소수의 피어들(110)을 가지면, 두 클러스터들의 병합이 수행될 수 있다. 클러스터(130) 안의 피어들의 개수가 작으면, 같은 클러스터(130)에 참여하는 피어는 잠정적 소스 피어들의 매우 짧은 리스트를 가질 것이다. 한 클러스터(130) 내 작은 수의 잠정적 소스 피어들은 P2P 네트워크의 안정성을 저하할 수 있다. 예를 들어, 클러스터(130) 내 피어들 중 한 개 이상이 P2P 서비스를 이탈할 수 있고, 그에 따라 피어들 간 데이터 전송에 더 적은 자원들이 사용되게 된다. 전형적 실시에에서, 두 클러스터들의 병합을 개시하기 위해, REDIRECT 메시지가 제1클러스터의 피어들로 전송될 수 있다. REDIRECT 메시지는 제2클러스터의 ID와, 제클러스터의 CL(111)의 위치를 포함할 수 있다. 제1클러스터 내 피어들은 200 OK 메시지에 의해 클러스터 변화를 인정할 수 있다. 예를 들어 OPTIONS 메시지 같은 클러스터-참여 (cluster-join) 메시지들을 제2클러스터의 CL로 전송함으로써, 제1클러스터 내 피어들이 제2클러스터에 합류할 수 있다. 제1크러스터 내 피어들은 클러스터-참여 메시지들에 대한 응답, 즉 OK 200 메시지를 수신할 수 있다. 제1클러스터 내 한 피어가 제2클러스터의 CL로부터 아무 응답도 수신하지 못하거나, 403 Bad Request 메시지를 수신하면, 그 피어는 403 Bad Request 메시지를 제1클러스터의 CL로 전송하고 추가 지침을 기다릴 수 있다. 전형적 실시예에서, 제1클러스터의 CL이 한 BCL로서 제2클러스터에 참여할 수 있다. 예를 들어, 제1클러스터의 CL이 예를 들어 'Cluster' 헤더 필드 안에 'join_bcl' 태그가 있는 RTSP OPTIONS 메시지를 제2클러스터의 CL로 전송할 수 있다. 성공적 클러스터 병합 절차 중에 전송되는 메시지들의 예가 아래에 보여진다;
Figure pct00018
Figure pct00019
오버레이 네트워크 연결은, 피어들 사이에서 예를 들어 GET\_PARAMETER와 200 OK 메시지들을 사용해 유지될 수 있다. GET\_PARAMETER와 200 OK 메시지들은 킵-얼라이브 메시지들로 사용될 수도 있다. 이웃하는 클러스터들의 CL들 사이에서의 킵-얼라이브 메시지들은 이웃하는 클러스터들에 대한 정보를 교환하는데 사용될 수 있다. 클러스터(130)의 CL(111)과 같은 클러스터 내 BCL(112) 사이의 킵-얼라이브 메시지들은 CL(111)에서 BCL(112)로 클러스터 정보를 전달하는데 사용될 수 있다. 피어들(110) 사이에서 전송되는 GET_PARAMETER와 200 OK 킵-얼라이브 메시지들의 예가 아래에서 보여진다;
Figure pct00020
전형적 실시예에서, 이를테면 P2P 네트워크(100)에서 이용가능한 서비스들의 리스트를 얻기 위해, P2P 서비스에 참여한 한 피어(110)가 SDS(140)로 OPTIONS 메시지를 전송할 수 있다. SDS(140)는 서비스 리스트 정보를 포함하는 200 OK RTSP 메시지로 응답할 수 있다. 200 OK RTSP 메시지는 메시지의 크기를 줄이기 위해, 예를 들어 오직 서비스들의 일반 정보만을 포함할 수 있다. 한 전형적 실시예에서, 그 정보는 XML (Extensible Markup Language) 프래그먼트들로서 표현될 수 있다. 서비스 목록 검색 기능을 전송한 메시지들의 예가 이하에 보여진다;
Figure pct00021
Figure pct00022
P2P 서비스에 참여하기 위해, 피어(110)는 SDS(140)로부터 P2P 서비스를 검색할 수 있다. 전형적 실시예에서, 피어는 SDS(140)로 DESCRIBE 메시지를 전송한다. SDS(140)는 200 OK RTSP 메시지로 응답할 수 있다. 전형적 실시예에 따르면, 200 OK RTSP 메시지는 예를 들어, 이용가능한 클러스터들의 개수가 많은 경우에, 이용가능한 클러스터들의 부분적인 리스트를 포함할 수 있다. 원하는 경우, 응답 메시지가 이용하는 클러스터들의 전체 리스트를 포함할 수도 있다. 응답 메시지는 복수의 (multipart) MIME을 이용할 수 있는데, 이는 그것이 서비스의 SDP와 이용가능한 클러스터들의 리스트 둘 모두를 말하자면 XLM 포맷으로 전달할 수 있기 때문이다. DESCRIBE 및 200 OK 메시지들의 예가 아래에 보여진다;
Figure pct00023
Figure pct00024
전형적 실시예에 따르면, 피어는 예를 들어 이용가능한 클러스터들의 수신 리스트 안에 있는 한 클러스터와 관련된 모든 CL로 GET_PARAMETER 메시지를 보낼 수 있다. GET_PARAMETER 메시지는 RTT 산출 목적으로 사용될 수 있다. 피어는 200 OK RTSP 메시지가 수신될 때 RRT를 산출하는데 사용되는 카운터를 중지할 수 있다. 피어는 원하는 서비스를 위해 200 OK RTSP 메시지를 보냈던 CL과 관련된 클러스터를 선택한다. GET_PARAMETER 및 200 OK 메시지들의 예가 이하에서 보여진다;
Figure pct00025
전형적 실시예에서, 피어는 'Cluster' 헤더 필드 안에 'join_peer' 태그가 있는 OPTIONS 메시지를 그 클러스터의 CL로 전송할 수 있다. 클러스터 내 피어들에 대한 최초 리스트는 응답 메시지, 즉 200 OK RTSP 메시지를 통해 수신될 수 있다. 전형적 실시예에서, 최초 피어 리스트는 이를테면 클러스터 내 피어들의 수가 많은 경우 클러스터 내 피어들의 무작위 부분집합이 될 수 있다. 원하는 경우 초기 피어 리스트가 클러스터 내 모든 피어들을 포함할 수도 있다. 피어는 예를 들어 SETUP 메시지를 이용해, 수신한 초기 피어 리스트에 나열된 피어들로부터 데이터를 요청할 수 있다. SETUP 메시지는 'Transport' 헤더 필드를 이용해 RTP 수신을 위한 UDP 포트 넘버들을 설정하는 것을 처리한다. 요청된 데이터는 예를 들어 복수의 부분적 스트림들과 관련된 것일 수 있다. 전형적 실시예에서, 예를 들어 요청된 부분적 스트림들의 목표 개수보다 적은 수의 피어들이 데이터 요청을 수용해 응답을 할 수 있다. 부분적 스트림들의 목표 개수에 도달할 때까지, 피어는 예를 들어 그 요청을 전달하기로 수용했던 피어들로부터, 데이터를 요청하는 일을 반복할 수 있다. 예를 들어, 수신된 초기 피어 리스트 안에 있는 한 개 이상의 피어들이 한 피어 당 하나가 넘는 부분적 스트림을 전달하는 것을 수용할 수 있다. 전형적 실시예에서, 수신된 초기 피어 리스트 안에 있는 한 피어가 응답을 하고 있지 않은 경우, 그 피어는 내부의 '기존 피어' 리스트로부터 제거될 것이고, 아무런 반복 요청들도 그 응답없는 피어로는 전송되지 않는다. 피어는 또한 200 OK RTSP 메시지를 가지고 오디오 및/또는 비디오 스트림들 등과 같이 요청된 부분적 스트림들을 수신한 것에 대한 응답을 할 수 있다. 요청하는 피어, CL과 다른 피어들 사이에서 교환되는 메시지들에 대한 예가 아래에서 보여진다;
Figure pct00026
전형적 실시예에서, 피어(110)는 두 유형의 이탈, 즉 통제형 이탈이나 비통제형 이탈 중 한 유형에 따라 P2P 네트워크(100)를 벗어날 수 있다. 통제형 이탈의 경우, 피어는 CL과 다른 피어들 (그 떠나는 피어와 데이터 전송을 하던 다른 피어들)로 이탈에 대한 정보를 제공할 수 있다. 피어는 'Cluster' 헤더 필드 내 'leave' 태그를 가진 OPTIONS 메시지를 CL로 전송할 수 있다. 피어는 또한 그 이탈하는 피어와 데이터 전송을 하는 다른 피어들로 TEARDOWN 메시지를 전송할 수도 있다. 그에 따라, 이탈하는 피어로 데이터를 전송하는 피어들은 그 이탈하는 피어와 관련된 RTP 세션(들)을 중단할 것이다. 또 이탈하는 피어로부터 데이터를 수신하고 있던 피어들도 떠나는 피어 대신 다른 피어(들)을 선택할 수 있다. TEARDOWN 메시지는 한 피어가 어떤 부분적 스트림에 대한 데이터 전달시 루프 (loop)가 존재한다는 것을 알아차린 경우 보내질 수도 있다. 피어의 이탈과 관련된 메시지들의 예가 아래에 보여진다;
Figure pct00027
전형적 실시예에서, 비통제형 이탈은, 예를 들어 떠나는 피어에게 데이터를 전송하는 CL과 다른 피어들에 의해, 어떤 시간 인터벌 중에 그 떠나는 피어로부터 킵-얼라이브 메시지들이 수신되지 않는 경우에 인지될 수 있다. 떠나는 피어로부터 데이터를 수신하는 피어는, 어떤 시간 인터벌 중에 아무런 데이터 패킷들도 그 떠나는 피어로부터 수신되지 않는 경우에 비통제형 이탈을 인지할 수 있다. 시간 인터벌 값은 이를테면 수신하는 피어에서 규정될 수 있다. 수신하는 피어는, 인터럽션을 피하기 위해 가령 수신 버퍼와 관련된 한 듀레이션 동안, 이탈하는 피어를 다른 한 피어로 대체할 수 있다.
'join_bcl', 'join_neighbor', 'split', 'backup', 'Cluster' 등등과 같은 헤더 필드들, 태그들 등에 해당하는 명칭들은 예로서 나열된 것이다. 다른 명칭들 역시 사용될 수 있을 것이다. 그 명칭들은 한정의 의미로 해석되어서는 아니 될 것이다.
이하에서 보일 청구항들의 범위, 해석, 또는 적용을 어떤 식으로든 제한함이 없이, 여기 개시된 전형적 실시예들 중 한 개 이상의 기술적 결과는 양질의 체험을 제공하는 P2P 스트리밍 애플리케이션을 가능하게 하는 효과적인 확장형 피어 투 피어 스트리밍 시스템일 수 있을 것이다. 여기 개시된 전형적 실시예들 중 한 개 이상의 또 다른 기술적 결과는 안정적 실시간 피어 투 피어 스트리밍 기술이 될 수 있다. 여기 개시된 전형적 실시예들 중 한 개 이상의 또 다른 기술적 결과는 효율적인 실시간 피어 투 피어 스트리밍 시스템일 수 있다. 본 발명의 실시예들은 소프트웨어, 하드웨어, 애플리케이션 로직, 또는 소프트웨어, 하드웨어 및 애플리케이션 로직의 결합을 통해 구현될 수 있다. 소프트웨어, 애플리케이션 로직 및/또는 하드웨어는 컴퓨터, 모바일 기기 또는 모바일 칩셋에 상주할 수 있다. 원하는 경우, 일부 소프트웨어, 애플리케이션 로직 및/또는 하드웨어는 컴퓨터에 상주하고, 일부 소프트웨어, 애플리케이션 로직 및/또는 하드웨어는 모바일 기기에 상주할 수 잇다. 애플리케이션 로직, 소프트웨어 또는 명령어 세트는 다양한 일반 컴퓨터 판독가능 매체 중 어느 하나에 보유됨이 바람직하다. 이 명세서와 관련해, "컴퓨터-판독가능 매체"는 명령 실행 시스템, 장치 또는 기기에 의하거나 함께 사용하는 명령들을 포함하거나, 저장하거나, 통신하거나, 전파하거나 전송할 숭 lT는 임의의 매체나 수단일 수 있다.
원한다면, 이 명세서에서 논의된 여러 기능들이 임의의 순서로 혹은 서로 병발적으로 수행될 수 있다. 또, 원하는 경우 상술한 기능들 중 하나 이상이 옵션이거나, 합성될 수 있다.
본 발명의 다양한 양태들이 독립 청구항들 안에 기재되고 있지만, 본 발명의 다른 양태들은 청구항들에 명시적으로 개시된 조합들만이 아니라, 기술된 실시예들 및/또는 독립 청구항들의 특징을 가진 종속 청구항들로부터의 특징들의 임의의 조합을 포함할 것이다.
지금까지 본 발명의 전형적 실시예들을 기술하였지만, 그 내용들을 한정적 맥락으로 간주해서는 안 된다는 것을 주지해야 한다. 그보다, 첨부된 청구항들에 규정된 것과 같은 본 발명의 범주로부터 벗어나지 않고 여러 변경 및 수정 버전이 만들어 질 수 있다.

Claims (26)

  1. 장치에 있어서,
    프로세서; 및
    컴퓨터 프로그램 코드를 포함하는 메모리를 구비하고,
    상기 메모리 및 컴퓨터 프로그램 코드는, 상기 프로세서와 함께 동작하면서, 상기 장치로 하여금 적어도,
    복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개를, 상기 복수의 실시간 프로토콜 데이터 유닛들 중 상기 적어도 한 개와 관련된 적어도 한 타임스탬프에 적어도 일부 기초하여, 적어도 두 개의 피어 투 피어 (peer to peer) 부분 (partial) 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 하나로 할당하는 일을 수행하도록 구성되고,
    상기 복수의 실시간 전송 프로토콜 데이터 유닛들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있음을 특징으로 하는 장치.
  2. 제1항에 있어서, 상기 메모리 및 컴퓨터 프로그램 코드는 상기 프로세서와 함께 동작하면서, 추가로 상기 장치로 하여금, 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션을 설정하도록 함을 특징으로 하는 장치.
  3. 제2항에 있어서, 상기 메모리 및 컴퓨터 프로그램 코드는, 상기 프로세서와 함께 동작하면서, 추가로 상기 장치로 하여금,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들의 개수를 결정하고,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 전송하고,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개에 대한 적어도 한 번의 요청을 수신하는 동작들 중 적어도 한 가지를 수행하도록 함을 특징으로 하는 장치.
  4. 제1항에 있어서, 상기 메모리 및 컴퓨터 프로그램 코드는, 상기 프로세서와 함께 동작하면서, 추가로 상기 장치로 하여금, 상기 할당된 피어 투 피어 부분 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션 안에서, 하나 이상 할당된 실시간 전송 프로토콜 데이터 유닛들을 전송하도록 함을 특징으로 하는 장치.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서, 상기 할당은, 고정된 듀레이션 (duration)의 시간 인터벌에 적어도 일부 기초함을 특징으로 하는 장치.
  6. 제5항에 있어서, 상기 할당은 적어도 부분적으로
    Figure pct00028
    식에 의존하고, 여기서 상기 i는 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션의 인덱스이고, tRTP는 상기 복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개와 관련된 타임스탬프 값이고, TP는 상기 고정된 듀레이션의 시간 인터벌들의 시간 듀레이션이고, N은 상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들의 개수임을 특징으로 하는 장치.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서, 복수의 실시간 전송 프로토콜 데이터 유닛들 중 상기 적어도 하나의 데이터 유닛이, 한 개를 넘는 상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들에 할당됨을 특징으로 하는 장치.
  8. 제5항 또는 제6항에 있어서, 복수의 실시간 전송 프로토콜 데이터 유닛들 중 상기 적어도 한 개의 적어도 한 키 데이터 유닛이, 상기 고정된 듀레이션의 시간 인터벌들의 시작부에 할당됨을 특징으로 하는 장치.
  9. 복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개를, 상기 복수의 실시간 프로토콜 데이터 유닛들 중 상기 적어도 한 개와 관련된 적어도 한 타임스탬프에 적어도 일부 기초하여, 적어도 두 개의 피어 투 피어 (peer to peer) 부분 (partial) 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 하나로 할당하는 단계를 포함하고,
    상기 복수의 실시간 전송 프로토콜 데이터 유닛들은 실시간 전송 프로토콜 미디어 스트림과 관련되어 있음을 특징으로 하는 방법.
  10. 제9항에 있어서,
    적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션을 설정하는 단계를 더 포함함을 특징으로 하는 방법.
  11. 제10항에 있어서, 상기 설정하는 단계는,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들의 개수를 결정하는 단계;
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 전송하는 단계; 및
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션에 대한 적어도 한 번의 요청을 수신하는 단계들 중 적어도 한 단계를 포함함을 특징으로 하는 방법.
  12. 제9항에 있어서,
    상기 할당된 피어 투 피어 부분 전송 프로토콜 스트리밍 세션들 중 적어도 한 세션 안에서, 하나 이상 할당된 실시간 전송 프로토콜 데이터 유닛들을 전송하는 단계를 더 포함함을 특징으로 하는 방법.
  13. 제9항 내지 제12항 중 어느 한 항에 있어서, 상기 할당은, 고정된 듀레이션 (duration)의 시간 인터벌들에 적어도 일부 기초함을 특징으로 하는 방법.
  14. 제13항에 있어서, 상기 할당은 적어도 부분적으로
    Figure pct00029
    식에 의존하고, 여기서 상기 i는 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션의 인덱스이고, tRTP는 상기 복수의 실시간 프로토콜 데이터 유닛들 중 적어도 한 개와 관련된 타임스탬프 값이고, TP는 상기 고정된 듀레이션의 시간 인터벌들의 시간 듀레이션이고, N은 상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들의 개수임을 특징으로 하는 방법.
  15. 제9항 내지 제14항 중 어느 한 항에 있어서, 복수의 실시간 전송 프로토콜 데이터 유닛들 중 상기 적어도 하나의 데이터 유닛이, 한 개를 넘는 상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들에 할당됨을 특징으로 하는 방법.
  16. 제9항 또는 제15항에 있어서, 복수의 실시간 전송 프로토콜 데이터 유닛들 중 상기 적어도 한 개의 적어도 한 키 데이터 유닛이, 상기 고정된 듀레이션의 시간 인터벌들의 시작부에 할당됨을 특징으로 하는 방법.
  17. 컴퓨터와 함께 사용하기 위한 컴퓨터 프로그램 코드가 수록된 컴퓨터 판독가능 매체를 구비한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 코드는 프로세서에 의해 실행될 때 제9항 내지 제16항 중 어느 한 항의 방법들 중 어느 한 방법의 수행을 일으킴을 특징으로 하는 컴퓨터 프로그램 제품.
  18. 장치에 있어서,
    프로세서; 및
    컴퓨터 프로그램 코드를 포함하는 메모리를 구비하고,
    상기 메모리 및 컴퓨터 프로그램 코드는, 상기 프로세서와 함께 동작하면서, 상기 장치로 하여금 적어도,
    실시간 전송 프로토콜 미디어 스트림과 결부되는 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 수신하고,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 하나를 수신하고,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 한 개 이상과 결부된 데이터를 저장하도록 구성됨을 특징으로 하는 장치.
  19. 제18항에 있어서, 상기 메모리 및 컴퓨터 프로그램 코드는, 상기 프로세서와 함께 동작하면서, 상기 장치로 하여금 추가로,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 피어 투 피어 네트워크에 합류하고,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개에 대한 적어도 한 요청을 전송하도록 하는 동작 중 적어도 한 동작을 수행하도록 구성됨을 특징으로 하는 장치.
  20. 제18항 또는 제19항에 있어서, 상기 정보는,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들의 총 개수; 및
    상기 실시간 전송 프로토콜 미디어 스트림을 상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들로 분할하는 것과 관련된 시간 듀레이션 (duration) 값 중 적어도 한 개를 포함함을 특징으로 하는 장치.
  21. 제18항 내지 제20항 중 어느 한 항에 있어서, 상기 메모리 및 컴퓨터 프로그램 코드는, 상기 프로세서와 함께 동작하면서, 상기 장치로 하여금 추가로,
    다른 장치로, 상기 수신된 적어도 한 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 하나를 전송하고,
    상기 수신된 적어도 한 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들에 적어도 일부 기반하여 상기 실시간 전송 프로토콜 미디어 스트림을 재구성하고,
    상기 수신된 한 개 이상의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 미디어 콘텐츠를 소비하고,
    상기 수신된 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개를 더 많은 수의 새 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들로 분할하도록 하는 동작 중 적어도 한 동작을 수행하도록 구성됨을 특징으로 하는 장치.
  22. 실시간 전송 프로토콜 미디어 스트림과 결부되는 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 정보를 수신하는 단계; 및
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 하나를 수신하는 단계를 포함함을 특징으로 하는 방법.
  23. 제22항에 있어서,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 피어 투 피어 네트워크에 합류하는 단계; 및
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개에 대한 적어도 한 요청을 전송하는 단계 중 적어도 한 단계를 더 포함함을 특징으로 하는 방법.
  24. 제22항 또는 제23항에 있어서, 상기 정보를 수신하는 단계는,
    상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들의 총 개수를 수신하는 단계; 및
    상기 실시간 전송 프로토콜 미디어 스트림을 상기 적어도 두 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들로 분할하는 것과 관련된 시간 듀레이션 (duration) 값을 수신하는 단계 중 적어도 한 단계를 포함함을 특징으로 하는 방법.
  25. 제22항 내지 제24항 중 어느 한 항에 있어서,
    상기 수신된 적어도 한 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 하나를 전송하는 단계;
    상기 수신된 적어도 한 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들에 적어도 일부 기반하여 상기 실시간 전송 프로토콜 미디어 스트림을 재구성하는 단계;
    상기 수신된 적어도 한 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들과 관련된 미디어 콘텐츠를 소비하는 단계; 및
    상기 수신된 적어도 한 개의 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들 중 적어도 한 개를 더 많은 수의 새 피어 투 피어 부분 실시간 전송 프로토콜 스트리밍 세션들로 분할하는 단계 중 적어도 한 단계를 더 포함함을 특징으로 하는 방법.
  26. 컴퓨터와 함께 사용하기 위한 컴퓨터 프로그램 코드가 수록된 컴퓨터 판독가능 매체를 구비한 컴퓨터 프로그램 제품에 있어서, 상기 컴퓨터 프로그램 코드는 프로세서에 의해 실행될 때 제22항 내지 제25항 중 어느 한 항의 방법들 중 어느 한 방법의 수행을 일으킴을 특징으로 하는 컴퓨터 프로그램 제품.
KR1020117003411A 2008-07-16 2009-07-17 피어 투 피어 스트리밍을 위한 방법 및 장치 KR20110095231A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US8135908P 2008-07-16 2008-07-16
US61/081,359 2008-07-16

Publications (1)

Publication Number Publication Date
KR20110095231A true KR20110095231A (ko) 2011-08-24

Family

ID=41706892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020117003411A KR20110095231A (ko) 2008-07-16 2009-07-17 피어 투 피어 스트리밍을 위한 방법 및 장치

Country Status (6)

Country Link
US (1) US20100153578A1 (ko)
EP (1) EP2301218A4 (ko)
KR (1) KR20110095231A (ko)
CN (1) CN102217271A (ko)
MX (1) MX2011000476A (ko)
WO (1) WO2010020843A1 (ko)

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307487B1 (en) 1998-09-23 2001-10-23 Digital Fountain, Inc. Information additive code generator and decoder for communication systems
US7068729B2 (en) 2001-12-21 2006-06-27 Digital Fountain, Inc. Multi-stage code generator and decoder for communication systems
US9240810B2 (en) 2002-06-11 2016-01-19 Digital Fountain, Inc. Systems and processes for decoding chain reaction codes through inactivation
WO2004034589A2 (en) 2002-10-05 2004-04-22 Digital Fountain, Inc. Systematic encoding and decoding of chain reaction codes
CN101834610B (zh) 2003-10-06 2013-01-30 数字方敦股份有限公司 通过通信信道接收从源发射的数据的方法和装置
KR101161193B1 (ko) 2004-05-07 2012-07-02 디지털 파운튼, 인크. 파일 다운로드 및 스트리밍 시스템
WO2006020826A2 (en) * 2004-08-11 2006-02-23 Digital Fountain, Inc. Method and apparatus for fast encoding of data symbols according to half-weight codes
JP5550834B2 (ja) 2006-02-13 2014-07-16 デジタル ファウンテン, インコーポレイテッド 可変fecオーバヘッド及び保護期間を利用したストリーミング及びバッファリング
US9270414B2 (en) 2006-02-21 2016-02-23 Digital Fountain, Inc. Multiple-field based code generator and decoder for communications systems
WO2007134196A2 (en) 2006-05-10 2007-11-22 Digital Fountain, Inc. Code generator and decoder using hybrid codes
US9178535B2 (en) 2006-06-09 2015-11-03 Digital Fountain, Inc. Dynamic stream interleaving and sub-stream based delivery
US9380096B2 (en) 2006-06-09 2016-06-28 Qualcomm Incorporated Enhanced block-request streaming system for handling low-latency streaming
US9386064B2 (en) 2006-06-09 2016-07-05 Qualcomm Incorporated Enhanced block-request streaming using URL templates and construction rules
US9432433B2 (en) 2006-06-09 2016-08-30 Qualcomm Incorporated Enhanced block-request streaming system using signaling or block creation
US9209934B2 (en) 2006-06-09 2015-12-08 Qualcomm Incorporated Enhanced block-request streaming using cooperative parallel HTTP and forward error correction
US9419749B2 (en) 2009-08-19 2016-08-16 Qualcomm Incorporated Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
US9237101B2 (en) 2007-09-12 2016-01-12 Digital Fountain, Inc. Generating and communicating source identification information to enable reliable communications
US9281847B2 (en) 2009-02-27 2016-03-08 Qualcomm Incorporated Mobile reception of digital video broadcasting—terrestrial services
US8326992B2 (en) * 2009-05-27 2012-12-04 Ray-V Technologies, Ltd. Controlling the provision of resources for streaming of video swarms in a peer-to-peer network
US9912568B2 (en) 2009-06-24 2018-03-06 Provenance Asset Group Llc Method and apparatus for handling broken path in peer-to-peer network
US9288010B2 (en) 2009-08-19 2016-03-15 Qualcomm Incorporated Universal file delivery methods for providing unequal error protection and bundled file delivery services
US9917874B2 (en) 2009-09-22 2018-03-13 Qualcomm Incorporated Enhanced block-request streaming using block partitioning or request controls for improved client-side handling
US20110082902A1 (en) * 2009-10-01 2011-04-07 Apple Inc. Systems and methods for providing media pools in a communications network
US8516063B2 (en) 2010-02-12 2013-08-20 Mary Anne Fletcher Mobile device streaming media application
US8510562B2 (en) 2010-03-22 2013-08-13 At&T Intellectual Property I, L.P. Content distribution with mutual anonymity
US9338064B2 (en) * 2010-06-23 2016-05-10 Twilio, Inc. System and method for managing a computing cluster
US9049497B2 (en) 2010-06-29 2015-06-02 Qualcomm Incorporated Signaling random access points for streaming video data
US8918533B2 (en) 2010-07-13 2014-12-23 Qualcomm Incorporated Video switching for streaming video data
US9185439B2 (en) 2010-07-15 2015-11-10 Qualcomm Incorporated Signaling data for multiplexing video components
KR20120010089A (ko) 2010-07-20 2012-02-02 삼성전자주식회사 Http 기반의 멀티미디어 스트리밍 서비스의 품질 향상을 위한 방법 및 장치
US9596447B2 (en) 2010-07-21 2017-03-14 Qualcomm Incorporated Providing frame packing type information for video coding
US9456015B2 (en) 2010-08-10 2016-09-27 Qualcomm Incorporated Representation groups for network streaming of coded multimedia data
JP5529177B2 (ja) * 2011-01-19 2014-06-25 ネイバー ビジネス プラットフォーム コーポレーション P2p基盤のストリーミングサービスでバッファリングを行うシステムおよび方法、並びにクライアントでバッファリングを処理するアプリケーションを配布するシステム
US8958375B2 (en) 2011-02-11 2015-02-17 Qualcomm Incorporated Framing for an improved radio link protocol including FEC
US9270299B2 (en) 2011-02-11 2016-02-23 Qualcomm Incorporated Encoding and decoding using elastic codes with flexible source block mapping
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
CN102752669B (zh) * 2011-04-19 2015-09-16 中国电信股份有限公司 多通道实时流媒体文件的传送处理方法与系统、接收装置
US8443086B2 (en) * 2011-06-22 2013-05-14 National Chiao Tung University Decentralized structured peer-to-peer network and load balancing methods thereof
US9253233B2 (en) 2011-08-31 2016-02-02 Qualcomm Incorporated Switch signaling methods providing improved switching between representations for adaptive HTTP streaming
US9843844B2 (en) 2011-10-05 2017-12-12 Qualcomm Incorporated Network streaming of media data
EP2608558A1 (en) * 2011-12-22 2013-06-26 Thomson Licensing System and method for adaptive streaming in a multipath environment
US9294226B2 (en) 2012-03-26 2016-03-22 Qualcomm Incorporated Universal object delivery and template-based file delivery
US8965921B2 (en) * 2012-06-06 2015-02-24 Rackspace Us, Inc. Data management and indexing across a distributed database
BE1020639A3 (nl) * 2012-09-06 2014-02-04 Holybrain Bvba Een systeem voor het selecteren en het bekijken van programma-inhoud met behulp van gebruikersinterfaces.
BE1020637A3 (nl) * 2012-09-06 2014-02-04 Holybrain Bvba Een werkwijze voor verdeeld uploaden van inhoud.
BE1020638A3 (nl) * 2012-09-06 2014-02-04 Holybrain Bvba Een werkwijze voor gedistribueerde vertraagde streaming van inhoud.
BE1020636A3 (nl) * 2012-09-06 2014-02-04 Holybrain Bvba Een werkwijze voor verdeeld vertraagde streaming van inhoud.
KR101649562B1 (ko) * 2012-12-03 2016-08-19 네이버 주식회사 P2p 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법
US10491458B2 (en) * 2013-01-31 2019-11-26 Dell Products L.P. System and method for reporting peer-to-peer transfer events
US9226252B2 (en) * 2013-06-03 2015-12-29 King Fahd University Of Petroleum And Minerals Recursive time synchronization protocol method for wireless sensor networks
US9699236B2 (en) 2013-12-17 2017-07-04 At&T Intellectual Property I, L.P. System and method of adaptive bit-rate streaming
US10708328B2 (en) * 2014-03-17 2020-07-07 Intel Corporation Hardware assisted media playback and capture synchronization
CN106031202B (zh) * 2014-03-27 2019-08-02 宇龙计算机通信科技(深圳)有限公司 信息发送方法及装置和信息接收方法及装置
US10080124B2 (en) * 2015-06-29 2018-09-18 Qualcomm Incorporated Methods and apparatus for cluster management in DSRC cooperative safety systems
KR101695910B1 (ko) * 2016-08-12 2017-01-12 네이버 주식회사 P2p 기반의 스트리밍 서비스에서 데이터 스트림을 패킷타이징하는 시스템 및 방법
US10250486B2 (en) * 2016-10-14 2019-04-02 Gvbb Holdings S.A.R.L. System and method for isochronous switching of packetized media streams

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697365B1 (en) * 1999-06-10 2004-02-24 Charles Hayes Messenger Method of listener transmitted broadcasting
TWI265697B (en) * 2002-06-06 2006-11-01 Ibm Digital contents distribution system, digital contents distribution method, computer readable recording medium storing the program therein, and server and client therefor
KR101022471B1 (ko) * 2004-01-17 2011-03-16 삼성전자주식회사 멀티미디어 데이터를 기록한 정보저장매체, 그 재생방법및 재생장치
ATE476805T1 (de) * 2005-05-02 2010-08-15 Alcatel Lucent Verfahren zur verwaltung von gruppenkommunikationen in einem kommunikationsnetz
KR100655600B1 (ko) * 2005-12-06 2006-12-11 한국전자통신연구원 P2p기반 스트리밍 서비스 제공방법 및 장치
US20070266170A1 (en) * 2006-05-11 2007-11-15 Mockett Gregory P Interactive, rich-media delivery over an ip network using synchronized unicast and multicast
US20080098123A1 (en) * 2006-10-24 2008-04-24 Microsoft Corporation Hybrid Peer-to-Peer Streaming with Server Assistance
CN100568971C (zh) * 2006-11-22 2009-12-09 中兴通讯股份有限公司 一种mpeg-4的传输码流到互联网流媒体联盟流的实时转换方法
EP1931108B1 (en) * 2006-12-08 2011-02-09 Deutsche Telekom AG Method and system for peer-to-peer content dissemination
CN101207506B (zh) * 2006-12-18 2010-05-19 中兴通讯股份有限公司 无线流媒体关键参数统计及其传递的改进方法
US20080189429A1 (en) * 2007-02-02 2008-08-07 Sony Corporation Apparatus and method for peer-to-peer streaming
US20080256255A1 (en) * 2007-04-11 2008-10-16 Metro Enterprises, Inc. Process for streaming media data in a peer-to-peer network
US8316146B2 (en) * 2007-07-13 2012-11-20 Spotify Ab Peer-to-peer streaming of media content
US7844724B2 (en) * 2007-10-24 2010-11-30 Social Communications Company Automated real-time data stream switching in a shared virtual area communication environment
US8260952B2 (en) * 2008-01-31 2012-09-04 Microsoft Corporation Multi-rate peer-assisted data streaming

Also Published As

Publication number Publication date
EP2301218A4 (en) 2013-02-27
US20100153578A1 (en) 2010-06-17
EP2301218A1 (en) 2011-03-30
CN102217271A (zh) 2011-10-12
MX2011000476A (es) 2011-11-29
WO2010020843A8 (en) 2011-07-28
WO2010020843A1 (en) 2010-02-25

Similar Documents

Publication Publication Date Title
KR20110095231A (ko) 피어 투 피어 스트리밍을 위한 방법 및 장치
US8612621B2 (en) Method for constructing network topology, and streaming delivery system
US8386630B1 (en) Video-aware P2P streaming and download with support for real-time content alteration
Zhang et al. A survey of peer-to-peer live video streaming schemes–an algorithmic perspective
US20150350368A1 (en) Network-optimized content delivery for high demand non-live contents
Sweha et al. Angelcast: cloud-based peer-assisted live streaming using optimized multi-tree construction
WO2009021374A1 (fr) Système de réseau de pair à pair de service vidéo intégré
US10425458B2 (en) Adaptive bit rate streaming with multi-interface reception
US8316148B2 (en) Method and apparatus for obtaining media over a communications network
JP7259056B2 (ja) メディアストリーム送信方法、装置、システム、およびデバイス
US20130275602A1 (en) Hop-By-Hop Bandwidth Consumption Measurements Control Cooperation Between Clients on a Data Network
US20130166659A1 (en) Methods for distributing contents to peers by means of multicast connections within a p2p infrastructure, and associated control server
Thampi A review on P2P video streaming
Halder et al. FybrrStream: A WebRTC based efficient and scalable P2P live streaming platform
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
Muscat et al. A Hybrid CDN-P2P Architecture for Live Video Streaming
Peltotalo et al. RTSP‐based Mobile Peer‐to‐Peer Streaming System
Bellavista et al. Middleware-layer quality-aware collaborative re-casting of live multimedia in multi-hop spontaneous networks
Meskovic et al. Content delivery architectures for live video streaming: hybrid cdn-p2p as the best option
Ha et al. Topology and architecture design for peer to peer video live streaming system on mobile broadcasting social media
Mello et al. A Hybrid Peer-to-Peer and Client-Server Strategy for Multimedia Streaming
Favalli et al. Improved multicast algorithm for overlay multicast in P2P based video streaming
Guo et al. P cast: P2p patching scheme for vod service
Chang et al. A Novel Bandwidth Management System for Live Video Streaming on a Public-Shared Network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application