KR20100037032A - 피어-투-피어 라이브 스트리밍을 위한 큐-기반 적응성 청크 스케줄링 - Google Patents

피어-투-피어 라이브 스트리밍을 위한 큐-기반 적응성 청크 스케줄링 Download PDF

Info

Publication number
KR20100037032A
KR20100037032A KR1020097025893A KR20097025893A KR20100037032A KR 20100037032 A KR20100037032 A KR 20100037032A KR 1020097025893 A KR1020097025893 A KR 1020097025893A KR 20097025893 A KR20097025893 A KR 20097025893A KR 20100037032 A KR20100037032 A KR 20100037032A
Authority
KR
South Korea
Prior art keywords
peer
queue
content
peers
message
Prior art date
Application number
KR1020097025893A
Other languages
English (en)
Other versions
KR101471226B1 (ko
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 KR20100037032A publication Critical patent/KR20100037032A/ko
Application granted granted Critical
Publication of KR101471226B1 publication Critical patent/KR101471226B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/6215Individual queue per QOS, rate or priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/62Establishing a time schedule for servicing the requests

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (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)

Abstract

피어로부터 메시지를 수신하고, 수신된 메시지를 분류하고, 분류에 기초하여 복수의 큐 중의 하나에 분류된 메시지를 저장하고, 분류된 메시지가 저장된 큐의 우선 순위에 기초하여 메시지들에 대한 응답을 생성하고, 피어-투-피어 네트워크 내의 모든 피어들에 콘텐츠를 송신하는 단계를 포함하는, 피어-투-피어 네트워크 내의 콘텐츠 전달 스케줄링을 위한 방법 및 장치가 설명된다. 또한, 콘텐츠 소스 서버 및 피어 중의 하나로부터 메시지 및 콘텐츠 중의 하나를 수신하는 단계, 수신된 메시지를 분류하는 단계, 분류된 메시지를 분류에 기초하여 복수의 큐 중의 하나에 저장하는 단계, 수신된 콘텐츠를 저장하는 단계, 분류된 메시지가 저장되는 큐의 우선 순위에 기초하여 메시지들에 대한 응답을 생성하는 단계, 및 피어-투-피어 네트워크 내의 다른 모든 피어들에 콘텐츠를 송신하는 단계를 포함하는, 피어-투-피어 네트워크에서의 콘텐츠 전달을 스케줄링하기 위한 방법 및 장치가 기술된다.
피어, P2P 네트워크, 콘텐츠, 풀 신호, 재생 버퍼

Description

피어-투-피어 라이브 스트리밍을 위한 큐-기반 적응성 청크 스케줄링{QUEUE-BASED ADAPTIVE CHUNK SCHEDULING FOR PEER-TO-PEER LIVE STREAMING}
본 발명은 피어-투-피어 네트워크에서의 콘텐츠의 전달을 스케줄링하는 것에 관한 것이며, 좀더 구체적으로는 피어-투-피어 네트워크에서 라이브 스트리밍 레이트를 최대화하는 큐-기반 스케줄링 방법 및 장치에 관한 것이다.
이전의 작업은, 피어-투-피어(P2P) 라이브 스트리밍 시스템에서의 비디오 스트리밍의 최대 레이트가 비디오 소스 서버의 용량, 시스템 내의 피어들의 수, 및 모든 피어들의 업로딩 용량의 총합에 의해서 결정된다는 것을 보여줬다.
종래 기술의 집중된 스케줄링 방법에서, 코디네이터는 시스템을 관리한다. 코디네이터는 피어들의 업로드 용량 및 소스의 업로드 용량에 관한 정보를 모은다. 그 후, 코디네이터는 집중화된 스케줄링 방법에 기초하여 소스로부터 각 개별 피어로의 송신 레이트를 계산한다.
높은 스트리밍 레이트를 달성하기 위한 성능이 P2P 라이브 스트리밍을 위해서 바람직하다. 보다 높은 스트리밍 레이트는 시스템이 보다 나은 품질로 브로드캐스팅할 수 있도록 한다. 또한 CBR(constant bit rate) 비디오가 브로드캐스팅되는 경우 보다 높은 스트리밍 레이트는 피어 변동(peer churn) 및 네트워크 혼잡에 의해 발생되는 대역폭 변화를 흡수하도록 보다 많은 쿠션을 제공한다. 높은 스트리밍 레이트를 얻기 위한 관건은 리소스들을 보다 잘 사용하는 것이다.
P2P 네트워크에 참여하는 새로운 피어들, 분실한 콘텐츠의 복구 및 부가적인 콘텐츠에 대한 요청을 다루기 위한 우선순위 스킴을 포함하는 P2P 네트워크 내의 콘텐츠를 스케줄링하기 위한 방법 및 장치를 갖는 것이 유리할 것이다.
본 발명은 콘텐츠의 P2P 라이브 스트리밍 시스템을 위한 큐-기반 스케줄링 방법에 관한 것이다. 본 명세서에 사용된 바와 같이, 콘텐츠는 비디오, 오디오 또는 임의의 다른 멀티미디어 형태 데이터/정보일 수 있다. 본 명세서에 사용된 바와 같이, "/"는 동일하거나 유사한 컴포넌트들에 대한 대안적인 명칭을 표시한다. 본 발명의 큐-기반 스케줄링 방법은 집중화된 코디네이터를 사용하지 않고 최대의 스트리밍 레이트를 달성할 수 있다.
이상적으로는, P2P 시스템/네트워크에서, 피어들은 다른 피어들과 정보를 교환하고 국부적으로 결정할 뿐이다. 따라서, 이상적으로, 어떠한 중앙 코디네이터도 요구되지 않고 어떠한 전체적인(global) 정보도 수집되지 않는다. 더욱이, 실제 이용가능한 업로드 용량은 시간에 따라서 변한다. 이것은 중앙 코디네이터가 각 피어들의 업로드 용량을 지속적으로 모니터링하고 개별 피어들로의 서브-스트림 레이트를 지속적으로 다시 계산할 것을 요구한다. 그러므로, 분산된 스케줄링 방법이 바람직하다. 여전히 전체적인 최적조건, 즉 시스템의 최대 스트리밍 레이트를 얻을 수 있는 분산된 (국부적인) 스케줄링 방법을 어떻게 설계하느냐가 어려운 점이다.
본 발명의 큐-기반 스케줄링 방법에서, 각 피어는 서버로부터 직접 얻어진 콘텐츠를 시스템 내의 다른 모든 피어로 업로드한다. 피어는 피어-투-피어 시스템 내의 노드이다. 모든 피어들의 100% 업로딩 용량 사용을 달성하기 위해서, 상이한 피어들은 서버로부터 상이한 콘텐츠를 다운로드하고 피어가 콘텐츠 소스 서버로부터 콘텐츠를 다운받는 레이트는 그 업로딩 용량에 비례한다. 피어는 컴퓨터/프로세서, 랩톱, PDA, 이동 단말기 또는 셋톱 박스와 같은 임의의 재생 디바이스를 포함하는 노드일 수 있다. 콘텐츠 소스 서버는 또한 본 명세서에서는 대안적으로 소스 및 서버로 불리고, 피어-투-피어 시스템/네트워크 내의 피어들에 콘텐츠를 공급하는 임의의 장치 또는 시스템을 포함한다.
본 명세서에서 용어 "업로드"의 사용은 액팅 노드로부터 멀리 떨어진 흐름을 표시하는데 사용되며, 여기서 액팅(acting) 노드는 서버, 또는 피어-투-피어 네트워크 내의 피어들 중의 하나일 수 있다. 그에 따라서, 본 명세서에서 용어 "다운로드"는 액팅 노드를 향한 흐름을 나타내는데 사용되며, 여기서 액팅 노드는 서버, 또는 피어-투-피어 네트워크 내의 피어들 중의 하나일 수 있다.
본 발명은, 피어들과 소스가, 소스와 피어들 사이에서 교환되는 정보에 기초하여 결정하는 로컬 스케줄링 방법을 실행하는 분산된 스케줄링 방법에 관한 것이다. 어떠한 중앙 코디네이터도 요구되지 않으며, 어떠한 글로벌 정보도 수집될 필요가 없다. 본 발명의 큐-기반의 스케줄링 방법은 P2P 라이브 스트리밍 시스템에서의 스트리밍 레이트의 이론적인 상한을 달성할 수 있다.
피어로부터 메시지를 수신하고, 수신된 메시지를 분류하고, 분류에 기초하여 복수의 큐 중의 하나에 분류된 메시지를 저장하고, 분류된 메시지가 저장되는 큐의 우선순위에 기초하여 메시지에 대한 응답들을 생성하고 피어-투-피어 네트워크 내의 모든 피어들에 콘텐츠를 송신하는 단계를 포함하는, 피어-투-피어 네트워크에서의 콘텐츠 전달을 스케줄링하기 위한 방법 및 장치가 설명된다. 또한, 콘텐츠 소스 서버 및 피어 중의 하나로부터 메시지 및 콘텐츠 중의 하나를 수신하는 단계, 수신된 메시지를 분류하는 단계, 분류에 기초하여 복수의 큐 중의 하나에 분류된 메시지를 저장하는 단계, 수신된 콘텐츠를 저장하는 단계, 분류된 메시지가 저장되는 큐의 우선순위에 기초하여 메시지들에 대한 응답들을 생성하는 단계, 콘텐츠를 피어-투-피어 네트워크 내의 다른 모든 피어들에 송신하는 단계를 포함하는, 피어-투-피어 네트워크에서의 콘텐츠 전달을 스케줄링하기 위한 방법 및 장치가 설명된다.
본 발명은 첨부하는 도면들과 결부하여 읽는 경우, 이하의 상세한 설명으로부터 가장 잘 이해된다. 도면들은 이하에 간단하게 설명된 도면들을 포함한다.
도 1A는, 데이터의 상이한 부분들이 종래 기술의 집중화된 스케줄링 방법에서의 3개의 이종 노드들 사이에서 스케줄링되는 방법을 나타내는 예시적인 도면.
도 1B는, 1개의 소스 서버와 3개의 피어들을 이용한 큐-기반 청크 스케줄링을 이용하는 피어-투-피어 스트리밍 시스템을 도시하는 도면.
도 2는, 본 발명의 원리에 따른 큐-기반 스케줄링 방법에서의 피어들을 위한 큐잉 모델을 도시하는 도면.
도 3은 본 발명의 원리에 따른 큐-기반 스케줄링 방법의 서버 측 큐잉 모델을 도시하는 도면.
도 4는 본 발명의 원리에 따른 피어 전달 큐 모델의 신호 임계값을 도시하는 도면.
도 5는 본 발명의 원리에 따른 콘텐츠 소스 서버의 아키텍처를 도시하는 도면.
도 6은 본 발명의 원리에 따른 4개의 큐를 갖는 예시적인 출력 유닛(out-unit)을 도시하는 도면.
도 7은 본 발명의 원리에 따른 피어의 아키텍처를 도시하는 도면.
도 8은 본 발명의 원리에 따른 피어 측 출력-유닛의 구조를 도시하는 도면.
도 9는 본 발명의 원리에 따른 피어 내의 재생 버퍼를 도시하는 도면.
도 10은 본 발명의 원리에 따른 P2P 네트워크에 조인하는 피어를 위한 예시적인 방법의 흐름도.
도 11A 및 도 11B는 함께 콘텐츠 소스 서버의 관점에서 본 발명의 큐-기반 스케줄링 방법을 나타낸 플로우차트.
도 12A 및 도 12B는 함께 피어들/노드들의 관점에서 본 발명의 큐-기반 스케줄링 방법을 나타낸 흐름도.
종래 기술에서는, 콘텐츠 소스 서버 및 공지된 업로드 용량을 갖는 피어의 한 세트가 주어지는 경우, 최대 스트리밍 레이트, rmax는 이하의 공식에 의해서 조절된다는 것이 나타나 있다.
Figure 112009076556765-PCT00001
여기서 us는 콘텐츠 소스 서버의 업로드 용량이고, ui는 피어 i의 업로드 용량이며, 시스템 내에는 n개의 피어가 있다. 종래 기술에서는 상기 스트리밍 레이트 최대/상한을 얻을 수 있는 집중화된 스케줄링 방법을 제안하였다. 종래 기술의 스케줄링 방법은 시스템을 관리하는 코디네이터를 이용하는 집중화된 접근을 채용한다. 코디네이터는 각 피어의 업로드 용량 및 콘텐츠 소스의 업로드 용량에 관한 정보를 모은다. 그 후, 집중화된 스케줄링 방법에 기초하여 코디네이터는 콘텐츠 소스로부터 개별 피어들로의 송신 레이트를 계산한다. 각 피어는 수신된 스트리밍 콘텐츠의 일부를 다른 모든 피어들에 중계한다.
본 발명의 맥락에서, 콘텐츠 소스로부터 피어들로의 스트리밍 레이트를 계산하는 방법이 먼저 논의된다. 그 후, 본 발명의 큐-기반 스케줄링 방법이 설명된다. 본 발명의 큐-기반 스케줄링 방법은 중앙 코디네이터를 요구하지 않고, 여전히 최대 스트리밍 레이트를 달성할 수 있다.
P2P 시스템에서의 최대 스트리밍 레이트는 수학식 1에 의해서 결정된다. 수 학식의 우변의 두 번째 항,
Figure 112009076556765-PCT00002
은 피어에 대한 평균 업로드 용량이다. 집중화된 스케줄링 방법은 콘텐츠 소스의 업로드 용량과 피어에 대한 평균 업로드 용량 사이의 관계에 기초하여 달리 작동한다(behave).
2개의 예시적인 경우들/시나리오들을 취하면: 첫 번째 경우, 콘텐츠 소스 서버의 업로드 용량은 피어들의 업로드 용량의 평균보다 작고, 두 번째 경우, 콘텐츠 소스 서버의 업로드 용량은 피어들의 업로드 용량의 평균보다 훨씬 크다. 첫 번째 시나리오에서, 콘텐츠 소스 서버는 리소스가 부족하고, 두 번째 시나리오에서 콘텐츠 소스 서버는 리소스가 풍부하다.
경우 1:
Figure 112009076556765-PCT00003
최대 스트리밍 레이트는 rmax=us이다. 콘텐츠 스트림은
Figure 112009076556765-PCT00004
의 레이트를 갖는 i 번째 서브-스트림으로, n개의 서브-스트림(각 피어에 대해서 하나의 서브-스트림)으로 나뉜다. n개의 서브-스트림의 총 레이트(aggregate rate)는 최대 스트리밍 레이트, 즉,
Figure 112009076556765-PCT00005
과 같다.
코디네이터는 서버가 i 번째 서브-스트림을 i 번째 피어로 보낼 것을 요청한다. 더욱이, (n-1)si≤ui이므로, i 번째 피어는 이 서브-스트림을 다른 n-1 개의 피어들 각각에 송신한다. 따라서, 각 피어는 서버로부터 서브-스트림을 직접 수신 하고 또한 다른 n-1개의 피어들로부터 부가적인 n-1 서브-스트림을 수신한다. 피어 i가 전체 스트림들(n개의 서브-스트림 모두)을 수신하는 전체 레이트는
Figure 112009076556765-PCT00006
이다. 그러므로, 최대 레이트 rmax=us가 지지될 수 있다.
경우 2:
Figure 112009076556765-PCT00007
여기서,
Figure 112009076556765-PCT00008
. 콘텐츠 스트림은 n+1개의 서브-스트림으로 나뉘며, i 번째 서브-스트림(i=1,2,...,n)은 레이트 si=ui/(n-1)를 갖고 (n+1)번째 서브-스트림은 레이트
Figure 112009076556765-PCT00009
를 갖는다.
명백하게, 모든 i=1, 2,..., n+1에 대해서 si≥0이다. 여기서 서버는 2개의 서브-스트림, 즉, i 번째 서브-스트림 및 (n+1) 번째 서브스트림을 각 피어 i에 보낸다.
Figure 112009076556765-PCT00010
이므로, 서버는 이것을 할 수 있다. 또한, 피어 i는 i 번째 서브-스트림의 사본을 n-1개의 다른 피어들 각각으로 스트리밍한다. (n-1)si=ui이므로, 각 피어 i는 이것을 할 수 있다. 피어 i가 전체 스트림(n개의 모든 서브-스트림들)을 수신하는 전체 레이트는
Figure 112009076556765-PCT00011
이다. 그러므로, 최대 레이트
Figure 112009076556765-PCT00012
가 지지될 수 있다.
도 1A는, 종래 기술의 집중화된 스케줄링 방법에서 데이터의 상이한 부분들이 3개의 이종 노드들 사이에서 스케줄링되는 방법의 설명적인 예시이다. 시스템 내에 3개의 피어가 있다. 서버는 6의 용량을 갖는다. a, b, 및 c의 업로드 용량은 각각 2, 4, 및 6이다. 모든 피어들이 충분한 다운로드 용량을 갖는다고 가정하면, 시스템에서 지원될 수 있는 최대 콘텐츠 라이브 스트리밍 레이트는 6이다. 그 레이트에 도달하기 위해서, 서버는 콘텐츠 청크들을 6개의 그룹으로 나눈다. 피어 a는 각 그룹으로부터 1개의 청크를 다른 각각의 피어들로 업로딩할 책임이 있는 한편, b 및 c는 각 그룹 내의 2 및 3개의 청크를 다른 각 피어들 각각에 업로딩할 책임이 있다. 이런 식으로, 모든 피어들의 전체 다운로드 레이트는 서버의 다운로드 용량인, 최대 레이트 6이다. 이러한 스케줄링 방법을 구현하기 위해서, 중앙 코디네이터는 업로드 용량 정보를 수집하고 스케줄링 방법을 실행할 것이 요구된다. 더욱이, 각 피어는 커넥션을 유지하고 시스템 내의 다른 모든 피어들과 콘텐츠를 교환할 것을 필요로 한다. 부가적으로, 서버는 각 피어에 대해서 상이한 레이트로 비디오 스트림을 다수의 서브-스트림으로 나눌 필요가 있다.
다음으로 본 발명의 큐-기반 스케줄링 방법이 설명된다. 최대 스트리밍 레이트는 집중화된 코디네이터를 사용하지 않고 달성될 수 있다. 본 발명의 분산화된 스케줄링 방법은 큐-기반 적응성 청크 스케줄링 방법이다.
이상적으로는, P2P 시스템에서, 피어들은 다른 피어들과 정보를 교환하여 국부적으로 결정할 뿐이다. 따라서, 이상적으로는, 어떠한 중앙 코디네이터도 요구되지 않으며 어떠한 글로벌 정보도 수집되지 않는다. 더욱이, 실제 이용가능한 업 로드 용량은 시간에 따라서 변한다. 이것은 중앙 코디네이터가 지속적으로 각 피어의 업로드 용량을 모니터링하고 개별 피어들에 대한 서브-스트림 레이트를 지속적으로 다시 계산할 것을 요구한다. 그러므로, 분산된 스케줄링 방법이 바람직하다. 여전히 글로벌 최적화, 즉 시스템의 최대 스트리밍 레이트를 달성할 수 있는 분산된(로컬) 스케줄링 방법을 어떻게 설계하느냐가 난제다. 본 발명의 큐-기반의 분산된 스케줄링 방법은 상기 목적들을 충족한다.
도 1B는, 1개의 소스 서버 및 3개의 피어들을 이용한 큐-기반의 청크 스케줄링을 이용하는 피어-투-피어 스트리밍 시스템을 도시한다. 각 피어는 순방향 큐를 포함하는 수개의 큐들을 보유한다. 피어 a를 일 예로서 사용하여, 신호 및 데이터 흐름이 다음에 기술된다. 단계들/액트들은 숫자 주위를 원으로 둘러싼 숫자로 표시된다. '풀(pull)' 신호들은 피어 a의 큐가 비게 있게 될(empty) 때마다(임계값 아래로 떨어질 때마다) 피어 a로부터 서버로 보내진다(단계 1). 서버는 3개의 데이터 청크들을 피어 a로 다시 보냄으로써 '풀' 신호에 응답한다(단계 2). 이들 청크는 피어 a의 순방향 큐에 저장되고(단계 3), 피어 b 및 피어 c로 중계/전달/송신될 것이다(단계 4). 서버가 그 '풀' 신호 큐 상의 모든 '풀' 신호들에 응답한 경우, 서버는 하나의 복제된 데이터 청크를 모든 피어들에 전달/송신한다(단계 5). 이들 데이터 청크는 피어들의 순방향(forward) 큐에 저장되지 않을 것이고, 더 중계되지 않을 것이다.
도 2는 본 발명의 큐-기반 스케줄링 방법에서의 피어들에 대한 큐잉 모델을 도시한다. 피어는 소스 서버 및 다른 피어들로부터 수신된 모든 스트리밍 콘텐츠 를 저장하는 재생 버퍼를 유지한다. 상이한 노드들로부터 수신된 콘텐츠는 재생 버퍼에서 재생 순서로 조립된다. 피어의 미디어 플레이어는 이 버퍼로부터의 컨텐츠를 렌더링/디스플레이한다. 한편, 피어는 콘텐츠를 다른 모든 피어들에 전달하는데 사용되는 전달 큐를 보유한다. 수신된 콘텐츠는, F 마킹된 콘텐츠 및 NF 마킹된 콘텐츠의 2개의 클래스들로 분할된다. F(forwarding)는 다른 피어들로 중계/전달되어야 하는 콘텐츠를 나타낸다. NF(non-forwarding)는 이 피어에 대해서만 의도되며 전달은 요구되지 않는 콘텐츠를 나타낸다. 이웃 피어들에 의해서 전달된 콘텐츠는 항상 NF로 마킹된다. 소스 서버로부터 수신된 콘텐츠는 F 또는 NF로 마킹될 수 있다. NF 콘텐츠는 걸러진다(filtered out). F 콘텐츠는 전달 큐에 저장되고 다른 피어들로 전달될 것이다. 피어의 업로드 용량을 완전히 사용하기 위해서, 피어의 전달 큐는 비어 있지 않도록(non-empty) 유지되어야 한다. 전달 큐가 비어 있을 때마다 신호는 소스 서버로 보내져서 보다 많은 콘텐츠를 요청한다. 본 명세서에서 이것은 '풀' 신호로 불린다. 콘텐츠 소스 서버에서 콘텐츠를 마킹하기 위한 규칙이 다음에 설명된다.
도 3은, 본 발명의 큐-기반 스케줄링 방법의 서버 측 큐잉 모델을 도시한다. 소스 서버는, 콘텐츠 큐 및 신호 큐의 2개의 큐를 갖는다. 콘텐츠 큐는, F 마킹된 콘텐츠 디스패처(dispatcher) 및 전달 디스패처의 2개의 디스패처를 갖는 멀티-서버 큐이다. 야기되는 디스패처는 '풀' 신호 큐의 제어/상태에 따라 달라진다. 특히, 신호 큐에 '풀' 신호가 있는 경우, 콘텐츠의 작은 청크가 콘텐츠 버퍼로부터 취해진다. 콘텐츠의 이 청크는 F로 마킹되고 F 마킹된 콘텐츠 디스패처에 의해서 '풀' 신호를 발행한 피어에 디스패칭된다. 그 후, '풀' 신호는 '풀' 신호 큐로부터 제거된다. 신호 큐가 비어 있는 경우, 서버는 콘텐츠 버퍼로부터 콘텐츠의 작은 청크를 취하고 콘텐츠의 그 청크를 전달 큐에 두어서 디스패칭되도록 한다. 전달 디스패처는 청크를 NF로서 마킹하여 시스템 내의 모든 피어들로 보낸다.
다음으로, 본 발명의 큐-기반 데이터 청크 스케줄링 방법의 최적성이 도시된다. 즉, 피어 측 및 서버 측 양쪽 모두에 대한 큐-기반 스케줄링 방법은 수학식 1에 의해 표시되는 바와 같이 시스템의 최대 P2P 라이브 스트리밍 레이트를 달성한다.
정리(Theorem): 피어와 서버 간의 신호 전달 지연이 무시할만하고 데이터 콘텐츠가 임의의 소량으로 송신될 수 있다고 가정하면, 상술한 바와 같이 큐-기반 분산화된 스케줄링 알고리즘은 시스템에서 가능한 최대 스트리밍 레이트를 달성한다.
증명: 콘텐츠가 작은 청크들로 나뉜다고 가정한다. '풀' 신호를 서비스할 때마다 콘텐츠 소스 서버는 하나의 청크를 내보낸다. 피어의 전달 큐가 비어있을 때마다 피어는 '풀' 신호를 서버에 발행한다. δ는 청크 사이즈를 표시한다.
피어 i에 대해서, 하나의 데이터 청크를 모든 피어들에 전달하는데 (n-1)·δ/ui 시간이 걸린다. ri는 '풀' 신호가 피어 i에 의해서 발행되는 최대 레이트로 설정한다. 그러므로, ri=ui/(n-1)δ이다.
서버에 의해 수신된 '풀' 신호의 최대 총 레이트, r은
Figure 112009076556765-PCT00013
이다. 서버가 '풀' 신호를 서비스하는데에 δ/us 시간이 걸린다. 그러므로, 서버가 수용할 수 있는 최대 '풀' 신호 레이트는 us/δ이다. 여기서, 이하의 두 개의 시나리오/경우들을 고려해보자.
경우 1:
Figure 112009076556765-PCT00014
이 시나리오에서, 서버는 최대 '풀' 신호 레이트를 제어할 수 없다. 그러므로, 서버 측에서의 신호 큐는 절대 비지 않고, 전체 서버 대역폭은 F 마킹된 콘텐츠를 피어들에게 송신하는데 사용된다. 반대로, 소스 서버로부터의 새로운 데이터 콘텐츠를 기다리는 동안, 피어의 전달 큐는 아이들(idle)이 된다. 각 피어는 (서버로부터 수신된) F 마킹된 콘텐츠를 다른 모든 피어들에 중계하는데 충분한 업로드 대역폭을 가지므로, 피어들은 최대 레이트로 서버에 의해 내보내진 콘텐츠를 수신한다.
지원할 수 있는 스트리밍 레이트는 서버의 업로드 용량과 같다. 조건
Figure 112009076556765-PCT00015
Figure 112009076556765-PCT00016
과 동등하며, 즉 상술한 바와 같이 서버가 리소스가 부족한 시나리오와 동등하다. 그러므로, 스트리밍 레이트는 수학식 1과 일치하고 최대 스트리밍 레이트에 도달된다.
경우 2:
Figure 112009076556765-PCT00017
이 시나리오에서, 서버는 최대 레이트로 '풀' 신호들을 서비스하기 위한 업로드 용량을 갖는다. '풀' 신호 큐가 비어 있는 기간 동안, 서버는 복제 NF 마킹된 콘텐츠를 모든 피어들에 송신한다. F 마킹된 콘텐츠를 서비스하는데 사용된 업로드 용량의 양은
Figure 112009076556765-PCT00018
이다.
그러므로, NF 마킹된 콘텐츠를 서비스하는데 사용된 서버의 업로드 대역폭은,
Figure 112009076556765-PCT00019
이다. 각 개별적인 피어에 대해서, 서버로부터 NF 마킹된 콘텐츠를 수신하는 레이트는
Figure 112009076556765-PCT00020
이다. 시스템 내에는 n개의 피어가 있기 때문에, 피어들에 대해서 지원가능한 스트리밍은,
Figure 112009076556765-PCT00021
이다.
조건
Figure 112009076556765-PCT00022
Figure 112009076556765-PCT00023
과 동일하며, 즉 상술한 바와 같이 서버의 리소스가 풍부한 시나리오와 동등하다. 다시, 스트리밍 레이트는 수학식 1에 나타나는 바와 같이 상한에 도달한다.
전체 '풀' 신호 도달 레이트가 서버의 서비스 레이트보다 작은 경우 2에서, 피어들은 '풀' 신호를 발행한 후 즉시 F 마킹된 콘텐츠를 수신한다고 가정한다는 것에 유의한다. 상기 가정은 '풀' 신호가 임의의 큐잉 지연에 직면하지 않고 콘텐 츠 소스 서버에 의해서 즉시 서비스될 수 있는 경우에만 참이다. 이것은 (ⅰ) 어떠한 2개의 '풀' 신호들도 정확히 같은 시간에 도착하지 않고, (ⅱ) '풀' 신호는 다음의 인입(incoming) '풀' 신호의 도달 전에 서비스될 수 있음을 의미한다. 가정 (ⅰ)은 일반적으로 큐잉 이론에 사용되며 P2P 시스템이 '풀' 신호들을 생성하는 피어들에 대해서 분배된 시스템이므로 적당하다. 2개의 '풀' 신호들이 정확하게 같은 시간에 도착할 가능성은 낮다. 가정 (ⅱ)는 데이터가 임의의 작은 양으로 송신될 수 있는, 즉 데이터 청크의 사이즈, δ가 임의의 소량일 수 있다는 것을 의미한다. 실제로, 데이터 청크의 사이즈는 데이터 전달과 관련된 오버헤드를 감소시키기 위해서 제한된다.
이제 실제로 상기 스킴을 실현하는데 있어서의 고려 사항을 구현하는 것이 논의된다. 본 발명의 큐-기반 데이터 청크 스케줄링 방법을 이용하는 콘텐츠 소스 서버 및 피어들의 아키텍처가, 청크 사이즈의 임팩트, 네트워크 혼잡 및 피어 변동을 포함하는 실질적인 구현 고려사항들에 대한 관점으로 설명된다.
최적성 증명에서, 청크 사이즈는 임의의 작은 것일 수 있고, 전달 지연(propagation delay)은 무시할 만했다고 가정되었다. 실제로, 청크 사이즈는 프로토콜 헤더들에 의해 야기된 과도한 송신 오버헤드를 피하기 위해서 수 킬로 바이트 정도이다. 전달 지연은 수십 밀리세컨드에서 수백 밀리세컨드 정도이다. 그러므로, 피어들에 의해서 '풀' 신호들을 발행하는 타이밍을 조정하고 콘텐츠 소스 서버에서 서빙된 F 마킹된 청크의 수를 증가시켜서 본 발명의 큐-기반 스케줄링 방법이 최대 라이브 스트리밍 레이트에 가까운 레이트를 달성하도록 할 필요가 있다.
서버 측에서, K F 마킹된 청크들은 요청 피어로부터의 '풀' 신호에 응답하여(F 마킹된 콘텐츠 큐를 통해서) 배치(batch)로서 송신된다. K의 보다 큰 값은 '풀' 신호 주파수를 감소시키므로, 시그널링 오버헤드를 감소시킬 것이다. 그러나, 이것은 피어들의 시동 지연(startup delay)을 증가시킨다. '풀' 신호 큐가 비어있는 경우, 서버의 전달 큐는 하나의 청크를 시스템 내의 모든 피어들로 한번에 전달한다. 새로운 '풀' 신호의 도달은 전달 큐 활동을 선점하고(preempt) F 마킹된 콘텐츠 큐는 K 청크들을 즉시 서비스한다.
여기서 도 4를 참조하면, 피어 측에서, 피어는 전달 큐에 대한 Ti의 임계값을 설정한다. 큐 내의 콘텐츠의 청크들의 수가 Ti 이하인 경우 '풀' 신호가 발행된다. 서버로부터 F 마킹된 콘텐츠를 검색하는데는 적어도 전달 지연의 2배가 걸린다. 전달 큐들이 완전히 비기 전에 '풀' 신호들을 발행하는 것은 업로드 용량을 낭비하는 것을 막는다.
Ti의 값을 적절하게 설정하는 방법이 다음에 고려된다. Ti개의 청크를 갖는 전달 큐를 비우는 데 걸리는 시간은,
Figure 112009076556765-PCT00024
이다. 한편, '풀' 신호를 발행한 후 피어 i가 K개의 청크를 수신하는데에는
Figure 112009076556765-PCT00025
이 걸린다. 여기서 tsi는 콘텐츠 소스 서버와 피어 i 사이의 전달 지연이고, kδ/us는 서버가 K개의 청크들을 송신하는데 필요한 시간이고, tq는 서버 '풀' 신호 큐에서 '풀' 신호에 의해서 보여지는 큐잉 지연이다. 전달 큐가 완전히 소모되기 전에 청크들을 수 신하기 위해서,
Figure 112009076556765-PCT00026
이다. 이것은,
Figure 112009076556765-PCT00027
를 도출한다.
tq를 제외한 모든 양들은 알려져 있고, 큐잉 지연은 서버 측 '풀' 신호 큐에서 초래되었다. 콘텐츠 소스 서버가 걸림돌(bottleneck)(콘텐츠 소스 서버가 리소스 부족임)인 경우 1에서, 서버가 항상 바쁜 동안 Ti의 선택은 스트리밍 레이트에 영향을 주지 않을 것이다. 경우 2에서, 신호 큐의 서비스 레이트는 '풀' 신호 레이트보다 빠르기 때문에, tq는 매우 작다. 그러므로, tq는 0, 즉
Ti≥(2tsi + Kδ/us)ui/(n-1)δ
으로 설정될 수 있다.
피어들의 시동 지연이 다음에 계산된다. τ는 시동 지연을 나타낸다. 피어가 마킹된 청크들의 수 Ti를 전체 큐로 갖는 것으로 주어지면, 다른 모들 피어들에 청크들을 보내는데에,
Figure 112009076556765-PCT00028
가 걸린다. 큐를 정리하는데 필요한 시간은 모든 피어에 대해서 동일하다는 것에 유의한다. 이 기간 동안, 피어는 다른 피어들로부터 캐싱된 청크들을 수신할 수 있다. 그러므로, 시동 지연은 τ= 2tsi + Kδ/us이다.
콘텐츠 소스 서버는 피어들로부터 '풀' 신호들에 응답하여 NF 마킹된 콘텐츠를 순향적으로(proactively) 피어들에 푸싱한다. 콘텐츠 소스 서버는 또한 부트스트랩(bootstrap) 노드이다. 부트스트랩 노드로서, 콘텐츠 소스 서버는 또한 피어 정보(예컨대, 피어 id, IP 어드레스, 포트 번호 등)를 관리하고, 새로 인입되는 피어들로부터의 피어 리스트에 대한 요청에 대답한다.
도 5는 콘텐츠 소스 서버의 아키텍처를 도시한다. 큐-기반 적응성 P2P 라이브 스트리밍에서, 서버 및 모든 피어들은 전이중(full-duplex) TCP(transmission control protocol) 커넥션으로 완전히 연결된다. 피어들과의 커넥션을 모니터링하는데 '선택 호출(select call)' 메커니즘(또는 콘텐츠가 모니터링되거나 모니터링될 수 있는 임의의 수단)을 이용하여, 서버는 수신된 데이터를 저장하도록 입력 버퍼들의 한 세트를 보유한다. 서버 측에는, 관리 메시지, '풀' 신호, 및 손실 청크 복구 요청의 3가지 형태의 인입 메시지가 있다. 그에 따라서, 메시지들에 대해서 각각 3개의 독립적인 큐들이 형성된다. 이들 메시지들을 제어하는(handling) 출력이 원격 피어들로 송신될 필요가 있는 경우, 출력은 퍼-피어 출력-유닛(per-peer out-unit) 상에서 보내지도록 한다.
데이터 송신 프로세스를 제어하기 위해 각 목적 피어에 대한 하나의 출력-유닛이 있다. 도 6은 주어진/특정 피어를 위한 4개의 큐: 관리 메시지 큐, F 마킹된 콘텐츠 큐, NF 마킹된 콘텐츠 큐, 및 손실 청크 복구 큐를 갖는 예시적인 출력-유닛을 도시한다. 관리 메시지 큐는 관리 요청들에 대한 응답들을 저장한다. 관리 요청의 일 예는 새로운 피어가 P2P 시스템에 바로 조인하여 피어 리스트를 요청하는 경우이다. 서버는 피어 리스트를 반환함으로써 응답할 것이다. F/NF 마킹된 콘텐츠 큐는 이 피어를 위해 의도된 F/NF 마킹된 콘텐츠를 저장한다. 마지막으로, 청크 복구 큐는 피어에 의해서 요청된 손실 청크들을 저장한다.
상이한 큐들이 상이한 유형의 트래픽에 사용되어 트래픽 유형들에 유선 순위를 부여한다. 특히, 관리 메시지들은 F 마킹된 콘텐츠 및 NF 마킹된 콘텐츠가 뒤따르는 최고 우선 순위를 가진다. 복구 청크들의 우선 순위는 설계 요건에 기초하여 조정될 수 있다. 관리 메시지들은, 시스템이 원활하게 실행되도록 하는데에 있어 중요하기 때문에 가장 높은 우선 순위를 갖는다. 예를 들면, 관리 메시지들에 최고 우선 순위를 부여함으로써, 시스템에 조인(join)하는 새로운 피어에 대한 지연은 단축된다. 새로운 피어가 콘텐츠 소스 서버에게 P2P 시스템에 조인하라는 요청을 발행하는 경우, 피어 리스트는 새로운/조인하는 피어에 재빨리 보내질 수 있다. 또한, 관리 메시지들은 일반적으로 콘텐츠 메시지들과 비교하여 사이즈가 작다. 관리 메시지에 보다 높은 우선 순위를 부여하는 것은 전체 평균 지연을 감소시킨다. 콘텐츠 소스 서버는 각 '풀' 신호에 K F 마킹된 청크로 응답한다. F 마킹된 청크들은 또한 피어를 수신함으로써 다른 피어들로 중계된다. '풀' 신호 큐가 비어 있는 경우 콘텐츠 소스 서버는 NF 마킹된 청크를 모든 피어들로 내보낸다. NF 마킹된 청크들은 목적 피어에 의해서만 사용되고 더 이상 중계되지 않을 것이 다. 그러므로, F 마킹된 청크를 제공하는 것은, 피어들의 업로드 용량의 사용을 즉시 향상시키고 전체 P2P 시스템 라이브 스트리밍 레이트를 증가시킨다. 복구 청크들을 찾아내어 제공하는 것은, 손실 청크들이 뷰잉(viewing) 품질에 상당히 영향을 주기 때문에 NF 마킹된 청크 전달보다 더 높은 우선 순위여야 한다. 복구 청크들을 전달하는 것의 우선 순위가 F 마킹된 청크들의 우선 순위보다 높은 것으로 설정되는 경우, 뷰잉 품질은 시스템 효율보다 우위의 대우(preferential treatment)를 얻는다. 반대로, F 마킹된 청크들이 보다 높은 우선 순위를 받는 경우, 시스템 효율은 보다 높은 우선 순위가 주어진다. 선택된 우선 순위 스킴은 시스템 설계 목적에 따라 달라진다.
개별적인 큐들을 이용하는 다른 이유는, 네트워크 내의 대역폭 변동 및 혼잡을 다루는 것이다. 다수의 P2P 연구자들은 서버/피어들의 업로드 용량이 걸림돌이라고 간주한다. PlanetNet을 통한 최근의 실험에서, 일부 피어들은 혼잡으로 인해 상당히 느려질 수 있음이 관찰되었다. 모든 피어들이 동일한 큐를 공유하는 경우, 가장 느린 피어로 업로딩하는 것은 남아있는 피어들에 업로딩하는 것을 블로킹할 것이다. 서버의 업로드 대역폭이 낭비될 것이다. 이것은 입력-큐잉된 스위치 설계에서의 HOL 블로킹(head-of-line blocking) 문제와 유사하며: 입력 큐는 혼잡한 출력 포트로 향하는 패킷에 의해서 블로킹될 것이다. 스위칭 문제는 상이한 출력 포트로 향하는 패킷들을 상이한 가상 출력 큐들 내에 위치시킴으로써 해결되었다. 여기서 유사한 해결책은 상이한 피어들에 대해 개별 큐들을 이용함으로써 적용된다. 개별 큐들은 느린 피어들에 의해서 야기된 비효율적인 블로킹을 피한다. 개 별 큐들은 또한 큐잉된 콘텐츠 양의 보다 정확한 추정을 허용한다. 이것은 피어들이 '풀' 신호들을 발행할 때를 판정하는 데에 있어 중요하다.
여기서, 피어의 아키텍처를 묘사하는 도 7을 참조한다. 본 명세서에 설명된 P2P 시스템 내의 피어의 아키텍처는 콘텐츠 소스 서버의 아키텍처와 유사하다. 서버 및 모든 피어들은 전이중 TCP 커넥션으로 완전히 연결된다. 피어는 수신된 청크들을 재생 버퍼에 저장한다. 서버(예컨대, 피어 리스트) 또는 다른 피어들(손실 청크 복구 메시지)로부터의 관리 메시지들은 관리 메시지 큐에 저장된다. 청크 프로세스 모듈은 NF 마킹된 청크들을 걸러낸다. F 마킹된 청크들은 다른 모든 피어들의 출력-유닛으로 복제된다.
도 8은 피어 측 출력-유닛의 구조를 도시한다. 이것은, 관리 메시지 큐, 순방향 큐, 및 복구 청크 큐의 3개의 큐를 갖는다. 순방향 큐 내의 청크들은 NF로 마킹될 것이며, 피어들을 수신할 때 더 중계되지 않을 것이다. '풀' 신호 발행자는 출력-유닛들을 모니터링하고 수학식 2에 설명된 바와 같이 큐 임계값을 판정하여 언제 '풀' 신호들을 콘텐츠 소스 서버에 발행할지를 결정한다. 수학식 2에 따라 '풀' 신호 임계값을 계산할 때, 기본이 되는 가정은 원격 피어들이 단일 큐를 이용하는 라운드-로빈(round-robin) 방식으로 서빙된다는 것이다. 실제로, 네트워크 내의 대역폭 변동 및 혼잡으로 인해서, 하나의 목적 피어로의 임의의 슬로우다운(slowdown)은 전체 프로세스에 영향을 준다. 그러므로, 피어당 하나의 큐(one-queue-per-peer) 설계가 사용된다. 순방향 큐 사이즈의 평균은 수학식 2에 사용된다. 피어가 항상 느린 커넥션을 경험하는 경우, 일부 청크들은 드롭되도록 강요될 수 있다. 피어들은 손실로부터 회복하기 위해서 손실 청크 복구 메커니즘을 사용하여야 한다.
피어 변동 및 네트워크 혼잡은 청크 손실을 유발할 수 있다. 노드 또는 커넥션 실패와 같은 갑작스런 피어 이탈(peer departure)은, 시스템에 피어의 출력-유닛에서 여전히 버퍼링되는 청크들을 재스케줄링할 시간을 남겨두지 않는다. 네트워크 루트들이 일부 목적지에 대해서 혼잡한 경우, 송신되기를 기다리는 청크들은 출력-유닛 내의 큐를 오버플로우할 수 있으며, 이는 수신 단부에서 청크 손실을 가져온다. 본 발명의 손실 청크 복구 스킴은 피어들이 손실 청크들을 복구하여 뷰잉 품질의 열화를 막을 수 있도록 한다.
도 9를 참조하여, 재생 버퍼를 도시한다. 각 피어는 서버 및 다른 피어들로부터 수신된 비디오 청크들을 저장하기 위한 재생 버퍼를 보유한다. 재생 버퍼는 3개의 윈도우, 즉 재생 윈도우, 복구 윈도우, 및 다운로드 윈도우를 보유한다. Wp, Wr 및 Wd는 각각, 재생 윈도우, 복구 윈도우, 및 다운로드 윈도우의 사이즈(청크의 수의 관점임)를 나타낸다. 미디어 플레이어는 재생 윈도우로부터의 콘텐츠를 렌더링/디스플레이한다. 복구 윈도우에서의 손실 청크들은 후술하는 방법을 이용하여 복구된다. 마지막으로, 다운로딩 윈도우에서의 청크들은 서버 및 다른 피어들사이에서 풀링 및 푸싱된다. 다운로드 윈도우의 사이즈, Wd는 다음과 같이 추정될 수 있다.
Figure 112009076556765-PCT00029
여기서 R은 수학식 1에 나타난 바와 같이 시스템의 스트리밍 레이트이고, τ는 시동 지연이다. 상기 수학식에서의 제1항은 모든 피어들에서 캐싱된 모든 F 마킹된 청크들의 총합이다. 제2항은 서버에 의해 보내진 NF 마킹된 청크들의 수이다. 다운로드 윈도우 사이즈는 시동 지연의 함수이다. 직관적으로, 다운로드 윈도우에서 모든 청크들을 수신하는데에 시동 지연 시간이 걸린다. 청크들이 각 피어에서의 출력-유닛들로부터 동시에 내보내지기 때문에 다운로드 윈도우에서의 청크들은 순서가 뒤바뀌어서 도달한다. 이것은 적어도 τ인 시동 지연 시간의 원인이 된다. 실제로, 시동 지연은 재생 윈도우 및 복구 윈도우에 의해서 유발된 시간 기간을 수용하도록 증가되어야 한다.
손실 청크들을 복구하는데 휴리스틱스(heuristics)가 채용된다. 피어들이 얌전하게(gracefully) 떠나는 경우, 서버에 통지되고 출력-유닛에서 대기중인 F 마킹된 청크들은 다른 피어들에 할당될 것이다. 복구 윈도우로 빠져드는 손실 청크들은 다음과 같이 복구된다. 먼저, 복구 윈도우는 또한 4개의 서브 윈도우로 나뉜다. 이 청크들이 급하게 필요하거나 또는 콘텐츠 품질이 이들 청크들이 제때에 수신되지 않는 경우 영향받을 것이므로, 피어들은 손실 청크들이 제때에 재생 윈도우에 시간적으로 가장 가까운 윈도우 내에 있는 경우 청크 복구 메시지들을 소스 서 버에 직접 보낸다. 다른 3개의 서브 윈도우에서 다른 피어들로부터 손실 청크들을 복구하려는 시도를 한다. 피어는 피어 리스트로부터 3개의 복구 피어들을 임의로 선택하고, 하나를 각 서브 윈도우와 결합한다. 피어 요구 복구 청크들은, 청크 복구 메시지들을 대응하는 복구 피어들에 보낸다. 복구 피어를 임의로 선택함으로써, 복구 작업 부하(workload)는 모든 피어들 사이에 고르게 분산된다.
도 10은 P2P 네트워크에 조인하는 피어를 위한 예시적인 방법의 흐름도이다. 1005에서, 새로운/조인하는 피어는 콘텐츠 소스 서버를 콘택트하고 P2P 시스템/네트워크에 조인하도록 허용할 것을 요청한다. 조인하는 피어의 요청의 수신 및 조인하는 피어의 콘텐츠 소스 서버의 수용시, 콘텐츠 소스 서버는 네트워크 내의 모든 피어들의 리스트인 조인하는 피어를 피어 리스트에 보낸다. 피어 리스트는 또한 네트워크 내의 다른 피어들과의 커넥션들을 확립하기 위하여 조인하는 피어가 요구하는 임의의 다른 정보를 포함한다. 1010에서, 조인하는 피어는 콘텐츠 소스 서버로부터 피어 리스트를 수신한다. 조인하는 피어는 1015에서 네트워크/시스템 내의 다른 모든 피어들/노드들과의 커넥션을 확립한다. 일단 커넥션들이 확립되면, 조인하는 피어는 콘텐츠 수신을 시작하기 위해서 1020에서 콘텐츠 소스 서버로 '풀' 신호를 발행한다. 조인하는 피어는 콘텐츠를 수신하고 1025에서 그 재생 버퍼에 수신된 콘텐츠를 저장한다. 1030에서, 새로운 피어는 충분한 콘텐츠가 수신된 후 재생 버퍼로부터 수신된 콘텐츠를 렌더링/디스플레이하기 시작한다.
도 11A 및 11B는 함께, 콘텐츠 소스 서버의 관점으로부터 본 발명의 큐-기반 스케줄링 방법을 나타낸 흐름도이다. 1105에서, 콘텐츠 소스 서버는 P2P 네트워크 /시스템 내의 피어들로부터 인입 메시지를 수신한다. 그 후, 1110에서 콘텐츠 소스 서버는 수신된 메시지를 분류하고, 3개의 큐 중의 하나에 그것을 저장한다. 3개의 큐들은 MSG 큐, RECOV REQ 큐 및 풀 신호 큐이다. MSG 큐는 관리 메시지를 위한 것이다. RECOV REQ 큐는 손실 콘텐츠 청크 복구 요청을 위한 것이다. PULL SIG 큐는 '풀' 신호들을 위한 것이다. 1115에서, 응답은 MSG 큐 내의 다음 관리 메시지를 위해 생성되고 생성된 응답은 대응하는 피어(관리 메시지 요청을 발행한 피어)를 위한 출력-유닛에 저장된다. 1120에서 MSG 큐가 비어있는지를 판정하는 테스트가 실행된다. MSG 큐가 비어있지 않으면, 1115가 반복된다. MSG 큐가 비어있으면, 콘텐츠 소스 서버는 1125로 진행하여 PULL SIGN 큐로부터 다음 메시지를 제거하고 K F 마킹된 콘텐츠 청크들을 찾아내어 '풀' 신호를 발행한 피어의 출력-유닛에 저장함으로써 응답한다. 1130에서 PULL SIGN 큐가 비어있는지를 판정하는 테스트가 실행된다. PULL SIG 큐가 비어있지 않으면, 1125가 반복된다. PULL SIG 큐가 비어있으면, 콘텐츠 소스 서버는 1135로 진행하고, RECOV REQ 큐로부터 다음 메시지를 제거하고 요청된 손실 콘텐츠 청크들을 찾아내어 손실 콘텐츠 청크 복구 메시지를 발행한 피어의 출력-유닛에 저장함으로써 응답한다. 1140에서 RECOV REQ 큐가 비어 있는지를 판정하는 테스트가 실행된다. RECOV REQ 큐가 비어 있지 않으면, 1135가 반복된다. RECOV RE 큐가 비어 있으면, 콘텐츠 소스 서버는 NF 마킹된 콘텐츠 청크를 제거하고 매 피어에 대해서 출력-유닛에 NF 마킹된 콘텐츠 청크를 저장한다(1145). 그 후 (콘텐츠 소스 서버에 대한) 본 발명의 큐-기반 스케줄링 방법은 전체 방법을 재실행하도록 진행한다. 이것은 P2P 네트워크가 더 이상 존재 하지 않을 때까지 계속된다.
도 12A 및 12B는 함께, 피어들/노드들의 관점에서 본 발명의 큐-기반 스케줄링 방법의 흐름도이다. 1205에서, 피어는 P2P 네트워크/시스템 내의 서버 또는 다른 피어들로부터 인입 메시지를 수신한다. 그 후, 피어는 수신된 메시지를 분류하여 3개의 위치 중의 하나에 저장한다(1210). 3개의 위치는 MSG 큐, RECOV REQ 큐 및 전달 큐이다. MSG 큐는 관리 메시지를 위한 것이다. RECOV REQ 큐는 손실 콘텐츠 청크 복구 요청을 위한 것이다. 전달 큐는, 피어가 발행하고 네트워크 내의 다른 피어들로 전달되어야 하는 '풀' 신호의 결과로서 피어/노드가 수신된 콘텐츠이다. 수신된 임의의 콘텐츠는 또한 적절한 위치에서 재생 버퍼 내에 위치된다. 1215에서, 응답은 MSG 큐 내의 다음 관리 메시지를 위해 생성되고 생성된 응답은 대응하는 피어(관리 메시지 요청을 발행한 피어)에 대한 출력-유닛에 저장된다. 1220에서 테스트가 행해져서 MSG 큐가 비었는지를 판정한다. MSG 큐가 비어있지 않으면, 1215는 반복된다. MSG 큐가 비어있으면 피어는 1225로 진행하여 요청된 손실 콘텐츠 청크(들)를 찾아내어 복구 요청 메시지를 발행한 피어의 출력-유닛에 저장한다. 1230에서 RECOV REQ 큐가 비어있는지를 판정하는 테스트가 실행된다. RECOV REQ 큐가 비어있지 않으면, 1225는 반복된다. RECOV REQ 큐가 비어있으면, 피어는 1235로 진행하여 F 마킹된 콘텐츠 청크들을 찾아내고/검색하여 디스패칭을 위한 모든 피어 출력-유닛들을 위한 전달 큐에 저장한다. 1240에서, '풀' 신호 발행자는 피어에 의해서 보유된 모든 출력-유닛들에 걸쳐서 평균 큐 사이즈를 컴퓨팅 /계산한다. 1245에서 평균 큐 사이즈가 임계값 Ti 이하인지를 판정하기 위한 테스트가 실행된다. 평균 큐 사이즈가 Ti 이하이면, 새로운 '풀' 신호가 생성되어 콘텐츠 소스 서버의 출력-유닛에 놓인다(1250). 평균 큐 사이즈가 임계값 Ti보다 크면, (피어에 대한) 본 발명의 큐-기반 스케줄링 방법은 전체 방법을 재실행하도록 진행한다. 이것은 P2P 네크워크가 더 이상 존재하지 않을 때까지 또는 피어가 자발적으로 네트워크에 존재하거나/네트워크를 떠날 때까지 또는 피어 또는 하나 이상의 커넥션의 실패를 통해 계속된다.
본 발명은 다양한 형태의 하드웨어, 소프트웨어, 펌웨어, 특정 목적의 프로세서들, 또는 이들의 조합으로 구현될 수 있다는 것이 이해될 것이다. 바람직하게는, 본 발명은 하드웨어와 소프트웨어의 조합으로 구현된다. 또한, 소프트웨어는 바람직하게는 프로그램 저장 디바이스에 명백하게 구체화된 애플리케이션 프로그램으로서 구현된다. 애플리케이션 프로그램은 임의의 적절한 아키텍처를 포함하는 머신으로 업로드되어, 그 머신에 의해 실행될 수 있다. 바람직하게는, 머신은 하나 이상의 CPU(central preocessing unit), RAM(rancom access memory), 및 I/O(input/output) 인터페이스(들)와 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에서 구현된다. 컴퓨터 플랫폼은 운영 시스템 및 마이크로 명령어(microinstruction) 코드를 더 포함한다. 본 명세서에 개시된 다양한 프로세스 및 함수들은 마이크로 명령 코드의 일부 또는 애플리케이션 프로그램의 일부 (또는 그들의 조합)일 수 있으며, 여기서 이들은 운영 시스템을 통해서 실행된다. 더욱이, 다른 다양한 주변 디바이스들은 부가적인 데이터 저장 디바이스 및 프린팅 디바이스와 같은 컴퓨터 플랫폼에 연결될 수 있다.
구성하는 시스템 컴포넌트들 및 첨부하는 도면에 도시된 방법의 단계들의 일부는 바람직하게는 소프트웨어에서 구현되기 때문에, 시스템 컴포넌트들(또는 프로세스 단계들) 사이의 실제 커넥션들은 본 발명이 프로그램되는 방식에 따라서 다를 수 있다는 것이 또한 이해될 것이다. 본 명세서에 교시들이 주어지면, 관련 기술의 당업자들은 본 발명의 이러한 구현들 및 유사한 구현들 또는 구성들을 고려해볼 수 있을 것이다.

Claims (34)

  1. 피어-투-피어 네트워크(peer-to-peer network)에서의 콘텐츠 전달을 스케줄링하기 위한 방법으로서,
    피어로부터 메시지를 수신하는 단계와,
    상기 수신된 메시지를 분류하는 단계와,
    상기 분류에 기초하여 복수의 큐 중의 하나에 상기 분류된 메시지를 저장하는 단계와,
    상기 분류된 메시지가 저장되는 상기 큐의 우선 순위에 기초하여 메시지들에 대한 응답들을 생성하는 단계와,
    상기 피어-투-피어 네트워크 내의 모든 피어들에 콘텐츠를 송신하는 단계
    를 포함하는 콘텐츠 전달 스케줄링 방법.
  2. 제1항에 있어서,
    적어도 3개의 큐가 있는 콘텐츠 전달 스케줄링 방법.
  3. 제2항에 있어서,
    상기 큐들은 제1 큐, 제2 큐 및 제3 큐를 포함하는 콘텐츠 전달 스케줄링 방법.
  4. 제3항에 있어서,
    상기 제1 큐 내의 메시지들은 상기 피어-투-피어 네트워크에 조인(join)하라는 요청을 포함하고, 상기 제1 큐는 최고 우선 순위 큐인 콘텐츠 전달 스케줄링 방법.
  5. 제4항에 있어서,
    상기 피어-투-피어 네트워크에 조인하라는 상기 요청에 대한 응답은, 상기 조인하는 피어에, 피어 리스트 및 이미 상기 피어-투-피어 네트워크 내에 있는 피어들에 대한 컨택트 정보를 송신하는 것을 포함하는 콘텐츠 전달 스케줄링 방법.
  6. 제3항에 있어서,
    상기 제2 큐 내의 메시지들은 부가적인 콘텐츠에 대한 요청들을 포함하고, 또한 부가적인 콘텐츠에 대한 상기 요청들에 대한 응답들은 상기 요청된 부가적인 콘텐츠를 송신하는 것을 포함하는 콘텐츠 전달 스케줄링 방법.
  7. 제3항에 있어서,
    상기 제3 큐 내의 메시지들은 손실된 콘텐츠를 복구하라는 요청들을 포함하고, 또한 손실된 콘텐츠를 복구하라는 상기 요청들에 대한 응답들은 상기 요청된 손실 콘텐츠를 송신하는 것을 포함하는 콘텐츠 전달 스케줄링 방법.
  8. 제3항에 있어서,
    상기 제2 큐의 우선 순위 및 상기 제3 큐의 우선 순위는 설계 요건들에 기초하는 콘텐츠 전달 스케줄링 방법.
  9. 피어-투-피어 네트워크에서의 콘텐츠 전달을 스케줄링하기 위한 장치로서,
    피어로부터 메시지를 수신하기 위한 수단과,
    상기 수신된 메시지를 분류하기 위한 수단과,
    상기 분류에 기초하여 복수의 큐 중의 하나에 상기 분류된 메시지를 저장하기 위한 수단과,
    상기 분류된 메시지가 저장되는 상기 큐의 우선 순위에 기초하여 메시지들에 대한 응답들을 생성하기 위한 수단과,
    상기 피어-투-피어 내의 모든 피어들에 콘텐츠를 송신하기 위한 수단
    을 포함하는 콘텐츠 전달 스케줄링 장치.
  10. 제9항에 있어서,
    적어도 3개의 큐가 있는 콘텐츠 전달 스케줄링 장치.
  11. 제10항에 있어서,
    상기 큐들은 제1 큐, 제2 큐 및 제3 큐를 포함하는 콘텐츠 전달 스케줄링 장치.
  12. 제11항에 있어서,
    상기 제1 큐 내의 메시지들은 상기 피어-투-피어 네트워크에 조인하라는 요청들을 포함하고, 상기 제1 큐는 최고 우선 순위 큐인 콘텐츠 전달 스케줄링 장치.
  13. 제12항에 있어서,
    상기 피어-투-피어 네트워크에 조인하라는 상기 요청에 대한 응답은 상기 조인하는 피어에, 피어 리스트 및 이미 상기 피어-투-피어 네트워크에 있는 피어들에 대한 컨택트 정보를 송신하기 위한 수단을 포함하는 콘텐츠 전달 스케줄링 장치.
  14. 제11항에 있어서,
    상기 제2 큐 내의 메시지들은 부가적인 콘텐츠에 대한 요청들을 포함하고, 또한 부가적인 콘텐츠에 대한 상기 요청들에 대한 응답들은 상기 요청된 부가적인 콘텐츠를 송신하기 위한 수단을 포함하는 콘텐츠 전달 스케줄링 장치.
  15. 제11항에 있어서,
    상기 제3 큐 내의 메시지들은 손실 콘텐츠를 복구하라는 요청들을 포함하고, 또한 손실 콘텐츠를 복구하라는 상기 요청들에 대한 응답들은 상기 요청된 손실 콘텐츠를 송신하기 위한 수단을 포함하는 콘텐츠 전달 스케줄링 장치.
  16. 제11항에 있어서,
    상기 제2 큐의 우선 순위 및 상기 제3 큐의 우선 순위는 설계 요건에 기초하는 콘텐츠 전달 스케줄링 장치.
  17. 피어-투-피어 네트워크에서의 콘텐츠 전달을 스케줄링하기 위한 방법으로서,
    콘텐츠 소스 서버 및 피어 중의 하나로부터 메시지 및 콘텐츠 중의 하나를 수신하는 단계와,
    상기 수신된 메시지를 분류하는 단계와,
    상기 분류에 기초하여 복수의 큐 중의 하나에 상기 분류된 메시지를 저장하는 단계와,
    상기 수신된 콘텐츠를 저장하는 단계와,
    상기 분류된 메시지가 저장되는 상기 큐의 우선 순위에 기초하여 메시지들에 대한 응답들을 생성하는 단계와,
    상기 피어-투-피어 네트워크 내의 다른 모든 피어들에 콘텐츠를 송신하는 단계
    를 포함하는 콘텐츠 전달 스케줄링 방법.
  18. 제17항에 있어서,
    적어도 3개의 큐가 있는 콘텐츠 전달 스케줄링 방법.
  19. 제18항에 있어서,
    상기 큐들은 제1 큐 및 제2 큐를 포함하는 콘텐츠 전달 스케줄링 방법.
  20. 제19항에 있어서,
    상기 제1 큐 내의 메시지들은 피어 리스트 및 이미 상기 피어-투-피어 네트워크에 있는 피어들에 대한 콘택트 정보를 포함하고, 상기 제1 큐는 최고 우선 순위 큐인 콘텐츠 전달 스케줄링 방법.
  21. 제20항에 있어서,
    상기 피어 리스트에 대한 응답 및 상기 컨택트 정보는 이미 상기 피어-투-피어 네트워크 내에 있는 피어들과의 커넥션을 확립하는 것을 포함하는 콘텐츠 전달 스케줄링 방법.
  22. 제19항에 있어서,
    상기 제2 큐 내의 메시지들은 손실 콘텐츠를 복구하라는 요청들을 포함하고, 상기 제2 큐는 상기 제1 큐보다 낮은 우선 순위 큐이고, 또한 손실 콘텐츠를 복구하라는 상기 요청들에 대한 응답들은 상기 요청된 손실 콘텐츠를 송신하는 것을 포함하는 콘텐츠 전달 스케줄링 방법.
  23. 제19항에 있어서,
    상기 피어-투-피어 네트워크 내의 다른 피어들로 전달될 콘텐츠를 제3 큐에 저장하는 단계를 더 포함하며, 상기 제3 큐는 최저의 우선 순위를 갖는 콘텐츠 전달 스케줄링 방법.
  24. 제17항에 있어서,
    평균 큐 사이즈를 판정하는 단계와,
    상기 평균 큐 사이즈가 임계값보다 작거나 같은 것 중의 하나인지 판정하는 단계와,
    상기 평균 큐 사이즈가 상기 임계값보다 작거나 같은 것 중의 하나인 경우, 신호 메시지를 생성하여 콘텐츠 소스 서버에 송신하는 단계
    를 더 포함하며, 상기 신호 메시지는 부가적인 콘텐츠가 요구되는 것을 나타내는 콘텐츠 전달 스케줄링 방법.
  25. 제17항에 있어서,
    상기 저장된 콘텐츠를 렌더링하는 단계를 더 포함하는 콘텐츠 전달 스케줄링 방법.
  26. 피어-투-피어 네트워크에서의 콘텐츠 전달을 스케줄링하는 장치로서,
    콘텐츠 소스 서버 및 피어 중의 하나로부터 메시지 및 콘텐츠 중의 하나를 수신하기 위한 수단과,
    상기 수신된 메시지를 분류하기 위한 수단과,
    상기 분류에 기초하여 복수의 큐 중의 하나에 상기 분류된 메시지를 저장하기 위한 수단과,
    상기 수신된 콘텐츠를 저장하기 위한 수단과,
    상기 분류된 메시지가 저장되는 상기 큐의 우선 순위에 기초하여 메시지들에 대한 응답들을 생성하기 위한 수단과,
    상기 피어-투-피어 네트워크 내의 다른 모든 피어들에 콘텐츠를 송신하기 위한 수단
    을 포함하는 콘텐츠 전달 스케줄링 장치.
  27. 제26항에 있어서,
    적어도 3개의 큐가 있는 콘텐츠 전달 스케줄링 장치.
  28. 제27항에 있어서,
    상기 큐들은 제1 큐 및 제2 큐를 포함하는 콘텐츠 전달 스케줄링 장치.
  29. 제28항에 있어서,
    상기 제1 큐 내의 메시지들은 피어 리스트 및 이미 상기 피어-투-피어 네트워크에 있는 피어들에 대한 컨택트 정보를 포함하고, 상기 제1 큐는 최고 우선 순위 큐인 콘텐츠 전달 스케줄링 장치.
  30. 제29항에 있어서,
    상기 피어 리스트에 대한 응답 및 상기 콘택트 정보는 이미 상기 피어-투-피어 네트워크 내에 있는 피어들과의 커넥션을 확립하기 위한 수단을 포함하는 콘텐츠 전달 스케줄링 장치.
  31. 제28항에 있어서,
    상기 제2 큐 내의 메시지들은, 손실 콘텐츠를 복구하라는 요청들을 포함하고, 상기 제2 큐는 상기 제1 큐보다 낮은 우선 순위 큐이고, 또한 손실 콘텐츠를 복구하라는 상기 요청들에 대한 응답들은 상기 요청된 손실 콘텐츠를 송신하기 위한 수단을 포함하는 콘텐츠 전달 스케줄링 장치.
  32. 제28항에 있어서,
    상기 피어-투-피어 네트워크 내의 다른 피어들에 전달될 콘텐츠를 제3 큐에저장하기 위한 수단을 더 포함하며, 상기 제3 큐는 최저 우선 순위를 갖는 콘텐츠 전달 스케줄링 장치.
  33. 제26항에 있어서,
    평균 큐 사이즈를 판정하기 위한 수단과,
    상기 평균 큐 사이즈가 임계값보다 작거나 동일한 것 중의 하나인지를 판정 하기 위한 수단과,
    상기 평균 큐 사이즈가 상기 임계값보다 작거나 상기 임계값과 동일한 것 중의 하나인 경우, 신호 메시지를 생성하여 콘텐츠 소스 서버에 송신하기 위한 수단
    을 더 포함하며, 상기 신호 메시지는 부가적인 콘텐츠가 요구되는 것을 나타내는 콘텐츠 전달 스케줄링 장치.
  34. 제26항에 있어서,
    상기 저장된 콘텐츠를 렌더링하기 위한 수단을 더 포함하는 콘텐츠 전달 스케줄링 장치.
KR1020097025893A 2007-06-28 2007-06-28 피어-투-피어 라이브 스트리밍을 위한 큐-기반 적응성 청크 스케줄링 KR101471226B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2007/015246 WO2009002325A1 (en) 2007-06-28 2007-06-28 Queue-based adaptive chunk scheduling for peer-to-peer live streaming

Publications (2)

Publication Number Publication Date
KR20100037032A true KR20100037032A (ko) 2010-04-08
KR101471226B1 KR101471226B1 (ko) 2014-12-09

Family

ID=39156326

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097025893A KR101471226B1 (ko) 2007-06-28 2007-06-28 피어-투-피어 라이브 스트리밍을 위한 큐-기반 적응성 청크 스케줄링

Country Status (7)

Country Link
US (1) US20100138511A1 (ko)
EP (1) EP2171940B1 (ko)
JP (1) JP4951706B2 (ko)
KR (1) KR101471226B1 (ko)
CN (1) CN101690022A (ko)
BR (1) BRPI0721603A2 (ko)
WO (1) WO2009002325A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048034A1 (ko) * 2014-09-23 2016-03-31 삼성전자 주식회사 전자 장치 및 전자 장치의 정보 처리 방법

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892761B1 (en) * 2008-04-04 2014-11-18 Quickplay Media Inc. Progressive download playback
US8015311B2 (en) * 2007-09-21 2011-09-06 Polytechnic Institute Of New York University Reducing or minimizing delays in peer-to-peer communications such as peer-to-peer video streaming
WO2009145748A1 (en) * 2008-05-28 2009-12-03 Thomson Licensing Multi-head hierarchically clustered peer-to-peer live streaming system
US8452886B2 (en) * 2008-12-04 2013-05-28 Microsoft Corporation Peer-to-peer packet scheduling algorithm
US7970932B2 (en) * 2008-12-16 2011-06-28 Polytechnic Institute Of New York University View-upload decoupled peer-to-peer video distribution systems and methods
GB201005031D0 (en) 2010-03-25 2010-05-12 Magnesium Elektron Ltd Magnesium alloys containing heavy rare earths
EP2375680A1 (en) * 2010-04-01 2011-10-12 Thomson Licensing A method for recovering content streamed into chunk
JP5429024B2 (ja) * 2010-04-28 2014-02-26 ブラザー工業株式会社 情報通信システム、ノード装置、情報通信方法及びプログラム
US8479219B2 (en) 2010-06-30 2013-07-02 International Business Machines Corporation Allocating space in message queue for heterogeneous messages
US9191438B2 (en) * 2010-09-30 2015-11-17 Alcatel Lucent Methods and apparatus for identifying peers on a peer-to-peer network
US9589254B2 (en) 2010-12-08 2017-03-07 Microsoft Technology Licensing, Llc Using e-mail message characteristics for prioritization
CN102035888B (zh) * 2010-12-15 2012-10-31 武汉大学 一种基于调度期限和带宽感知的数据调度方法
JP2013258525A (ja) * 2012-06-12 2013-12-26 Hitachi Ltd 無線通信システム、ゲートウェイ装置、及びデータ配信方法
US9092502B1 (en) * 2013-02-25 2015-07-28 Leidos, Inc. System and method for correlating cloud-based big data in real-time for intelligent analytics and multiple end uses
CN104426746A (zh) * 2013-09-05 2015-03-18 北大方正集团有限公司 客户端消息的推送方法、装置和服务器
TWI500315B (zh) 2013-12-25 2015-09-11 Ind Tech Res Inst 串流分享方法、串流分享裝置與串流分享系統
KR101791208B1 (ko) * 2016-01-12 2017-10-31 네이버 주식회사 생중계 데이터를 공유하는 방법 및 시스템
CN107818056B (zh) * 2016-09-14 2021-09-07 华为技术有限公司 一种队列管理方法及装置
US10771524B1 (en) * 2019-07-31 2020-09-08 Theta Labs, Inc. Methods and systems for a decentralized data streaming and delivery network
WO2021072417A1 (en) * 2019-10-11 2021-04-15 Theta Labs, Inc. Methods and systems for decentralized data streaming and delivery network
JP7481934B2 (ja) 2020-07-17 2024-05-13 日本放送協会 配信経路決定装置およびそのプログラム

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991302A (en) * 1997-04-10 1999-11-23 Cisco Technology, Inc. Technique for maintaining prioritization of data transferred among heterogeneous nodes of a computer network
US6094435A (en) * 1997-06-30 2000-07-25 Sun Microsystems, Inc. System and method for a quality of service in a multi-layer network element
US20030236861A1 (en) 2000-03-03 2003-12-25 Johnson Scott C. Network content delivery system with peer to peer processing components
EP1413119B1 (en) * 2001-08-04 2006-05-17 Kontiki, Inc. Method and apparatus for facilitating distributed delivery of content across a computer network
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
JP2004260278A (ja) * 2003-02-24 2004-09-16 Nippon Telegr & Teleph Corp <Ntt> 意味情報ネットワークにおける優先制御方法およびスイッチ端末並びにプログラム
JP2005149040A (ja) * 2003-11-14 2005-06-09 Hitachi Ltd ピアツーピア通信システム
US7174385B2 (en) * 2004-09-03 2007-02-06 Microsoft Corporation System and method for receiver-driven streaming in a peer-to-peer network
US20080098123A1 (en) * 2006-10-24 2008-04-24 Microsoft Corporation Hybrid Peer-to-Peer Streaming with Server Assistance

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016048034A1 (ko) * 2014-09-23 2016-03-31 삼성전자 주식회사 전자 장치 및 전자 장치의 정보 처리 방법

Also Published As

Publication number Publication date
EP2171940B1 (en) 2014-08-06
WO2009002325A1 (en) 2008-12-31
CN101690022A (zh) 2010-03-31
JP2010533321A (ja) 2010-10-21
JP4951706B2 (ja) 2012-06-13
EP2171940A1 (en) 2010-04-07
US20100138511A1 (en) 2010-06-03
BRPI0721603A2 (pt) 2013-04-02
KR101471226B1 (ko) 2014-12-09

Similar Documents

Publication Publication Date Title
KR101471226B1 (ko) 피어-투-피어 라이브 스트리밍을 위한 큐-기반 적응성 청크 스케줄링
US10009396B2 (en) Queue-based adaptive chunk scheduling for peer-to-peer live streaming
JP3321043B2 (ja) Tcpネットワーク内のデータ端末
KR0150275B1 (ko) 멀티캐스트 통신의 폭주 제어방법
US9306757B2 (en) Method and apparatus for distributing routing instructions over multiple interfaces of a data router
US7526564B2 (en) High quality streaming multimedia
US20090254659A1 (en) Delayed Downloading Video Service Using Peer-to-Peer (P2P) Content Distribution Network
US20050141429A1 (en) Monitoring packet flows
WO2004073269A1 (ja) 伝送システム,配信経路制御装置,負荷情報収集装置および配信経路制御方法
WO2012081823A1 (ko) 피어링 제의 리스트를 제공하는 방법, p2p 네트워크를 형성하는 방법, p2p 어플리케이션 장치, p2p 네트워크를 형성하는 단말 및 네트워크 장치
US20110047215A1 (en) Decentralized hierarchically clustered peer-to-peer live streaming system
EP1806870B1 (en) Method for providing data and data transmission system
US20020080780A1 (en) Buffering system for use in a communication switch that includes a multiprocessor control block and method therefore
WO2011024930A1 (ja) コンテンツ配信システム、コンテンツ配信方法及びコンテンツ配信用プログラム
US7385965B2 (en) Multiprocessor control block for use in a communication switch and method therefore
US7233598B2 (en) System and method for speculatively issuing memory requests while maintaining a specified packet order
JP2901947B2 (ja) Atmバックボーンネットワークを利用したビデオサーバ
JP3540835B2 (ja) ビデオメモリ装置及びビデオサーバシステム
JP4104756B2 (ja) 電気通信網においてデータパケットをスケジューリングする方法およびシステム
Yang Deliver multimedia streams with flexible qos via a multicast dag
CN118200265A (zh) 一种区别监听和交换数据的交换机缓存管理方法
JP2003229904A (ja) ディジタルコンテンツ配信システム
JPH11346247A (ja) データ中継方法
JP2002344507A (ja) データ中継装置およびその方法
JP2002124983A (ja) メディア通信システム

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
J201 Request for trial against refusal decision
E90F Notification of reason for final refusal
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee