KR20170021768A - 효율적인 피어 지원 스트리밍을 위한 캐시 매니페스트 - Google Patents

효율적인 피어 지원 스트리밍을 위한 캐시 매니페스트 Download PDF

Info

Publication number
KR20170021768A
KR20170021768A KR1020167032165A KR20167032165A KR20170021768A KR 20170021768 A KR20170021768 A KR 20170021768A KR 1020167032165 A KR1020167032165 A KR 1020167032165A KR 20167032165 A KR20167032165 A KR 20167032165A KR 20170021768 A KR20170021768 A KR 20170021768A
Authority
KR
South Korea
Prior art keywords
cache
content
segment
request message
asset
Prior art date
Application number
KR1020167032165A
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 KR20170021768A publication Critical patent/KR20170021768A/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/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/2842
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23106Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving caching operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/80Responding to QoS
    • H04L67/16
    • H04L67/2814
    • H04L67/2838
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • 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/56Provisioning of proxy services
    • H04L67/567Integrating service provisioning from a plurality of service providers
    • 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/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/288Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

통신 네트워크에서 컨텐트를 전송하는 방법은 제공될 컨텐트를 요청하는 요청 메시지를 캐시에 의해 수신하는 단계를 포함한다. 상기 방법은 복수의 캐시의 컨텐트 및 능력을 표시하는 단계에 대응하는 복수의 캐시 매니페스트를 저장하는 단계를 포함한다. 각각의 캐시 매니페스트는 캐시 각각의 컨텐트 및 능력을 표시하고 각각의 캐시에 저장된 컨텐트의 설명들을 나열한다. 상기 방법은 복수의 캐시 매니페스트의 정보를 기반으로 하여, 요청된 컨텐트를 제공할 캐시를 선택함으로써 요청된 컨텐트를 제공하기로 결정하는 단계를 포함한다. 상기 방법은 결정에 응답하여, 요청 메시지를 생성한 클라이언트 장치에 요청된 컨텐트를 전송하도록 선택된 캐시에 지시하는 단계, 및 대안적으로, 복수의 캐시 매니페스트의 정보를 기반으로 하여, 상기 요청된 컨텐트를 제공하지 않기로 결정하고, 상위 레벨 장치에 요청 메시지를 전송하는 단계를 포함한다.

Description

효율적인 피어 지원 스트리밍을 위한 캐시 매니페스트{CACHE MANIFEST FOR EFFICIENT PEER ASSISTED STREAMING}
본 개시는 일반적으로 비디오 컨텐트 전송 시스템, 보다 구체적으로, 효율적인 피어 지원 스트리밍(peer assisted streaming)을 위한 캐시 매니페스트(cache manifest)에 관한 것이다.
사용자들은 인터넷을 통해 고해상도(high definition, HD) 또는 초고해상도(ultra-high definition, UHD) 비디오 컨텐트를 수신하기를 요구한다. 현재의 인터넷 상태는 HD 또는 UHD 품질 비디오의 스트리밍을 지원하지만, 제한된 종단간(end-to-end) 대역폭, 처리량의 불확실성, 및 지연의 불확실성에 의해 많은 문제들이 발생한다. 인터넷 네트워크는 네트워크의 다양한 장소에서 캐시(cache)를 포함하고 캐시 호스트의 대역폭을 이용함으로써 비디오 컨텐트 전송을 가속화시킨다. 혼잡하지 않은 오버레이 경로들을 탐색하고 가능할 때 트래픽을 로컬화함으로써 다수의 사용자들에게 인기 프로그램(예를 들어, 월드컵 축구 게임 및 중국 신년 경축 행사)들을 생방송으로 전달하기 위해 쿨스트림과 같은 초기 시스템들이 사용되었다.
제1 실시예에서, 통신 네트워크에서 컨텐트를 전송하는 방법은 제공될 컨텐트를 요청하는 요청 메시지를 캐시에 의해 수신하는 단계를 포함한다. 상기 방법은 복수의 캐시의 능력 및 컨텐트를 지시하는 단계에 대응하는 복수의 캐시 매니페스트를 저장하는 단계를 포함한다. 각각의 캐시 매니페스트는 캐시 각각의 능력 및 컨텐트를 지시하고 각각의 캐시에 저장된 컨텐트의 설명들을 목록화(list)한다. 상기 방법은 복수의 캐시 매니페스트의 정보를 기반으로 하여, 요청된 컨텐트를 제공하기로 결정하는 단계를 포함하고, 제공하기로 결정하는 단계는 복수의 캐시로부터 요청된 컨텐트를 제공할 캐시를 선택하는 단계를 포함한다. 또한, 방법은 상기 결정에 응답하여, 요청 메시지를 생성한 클라이언트 장치에 요청된 컨텐트를 전송하도록 선택된 캐시에 지시하는 단계를 포함한다. 대안적으로, 방법은 복수의 캐시 매니페스트의 정보를 기반으로 하여, 요청된 컨텐트를 제공하지 않기로 결정하는 단계 및 상위 레벨 장치에 요청 메시지를 전송하는 단계를 포함한다.
제2 실시예에서, 통신 네트워크에서 사용하기 위한 장치가 제공된다. 장치는 제공될 컨텐트를 요청하는 요청 메시지를 수신하고, 복수의 캐시의 컨텐트 및 능력을 표시하는 단계에 대응하는 복수의 캐시 매니페스트를 저장하도록 구성된 처리 회로를 포함한다. 각각의 캐시 매니페스트는 캐시 각각의 캐시의 컨텐트 및 능력을 표시하고, 각각의 캐시에 저장된 컨텐트의 설명들을 나열한다. 또한, 처리 회로는 복수의 캐시 매니페스트의 정보를 기반으로 하여, 요청된 컨텐트를 제공하기로 결정하도록 구성되고, 제공하기로 결정하는 단계는 복수의 캐시로부터 요청된 컨텐트를 제공할 캐시를 선택하는 단계를 포함한다. 또한, 처리 회로는 결정에 응답하여 요청 메시지를 생성한 클라이언트 장치에 요청된 컨텐트를 전송하도록 선택된 캐시에 지시하도록 구성된다. 대안적으로, 처리 회로는 복수의 캐시 매니페스트의 정보를 기반으로 하여, 요청된 컨텐트를 제공하지 않기로 결정하고, 상위 레벨 장치에 요청 메시지를 전송하도록 구성된다.
제3 실시예에서, 통신 네트워크에서 사용하기 위한 클라이언트 장치가 제공된다. 클라이언트 장치는 컨텐트를 저장하도록 구성된 재생 버퍼를 포함한다. 클라이언트 장치는 재생 버퍼의 컨텐트 및 능력을 표시하고 재생 버퍼에 저장된 컨텐트의 설명들을 나열하는 캐시 매니페스트를 생성하도록 구성된 처리 회로를 포함한다. 설명들은 자산 식별자들의 목록을 포함하고, 각각의 자산 식별자(ID)는 재생 버퍼에 적어도 하나의 세그먼트가 저장되어 있는 자산을 식별한다. 요청 메시지는 자산 식별자(ID)를 포함한다. 처리 회로는 통신 네트워크에서 컨텐트 전송 서비스 서버(CDSS)로의 업데이트 메시지의 전송을 개시하도록 구성된다. 업데이트 메시지는 CDSS에 캐시 매니페스트를 제공한다.
아래의 상세 설명을 착수하기 전에, 본 특허 문서 전반에 걸쳐서 사용되는 특정 단어 및 구문들의 정의를 규정하는 것이 유리할 수 있다. 용어 "커플" 및 그의 파생어들은 서로 물리적으로 접촉하든 아니든 두 개 이상의 요소 간의 직접 또는 간접 통신을 의미한다. 용어 "전송하다", "수신하다", "통신하다" 및 이들의 파생어는 직접 및 간접 통신 모두를 포함한다. 용어 "포함하다(include)", "포함하다(comprise)" 및 이들의 파생어는 제한없는 포함을 의미한다. 용어 "또는"은 "및/또는"을 의미하는 포함이다. 구분 "~와 관련된" 및 이의 파생어들은 포함하다, ~내에 포함되다, ~와 상호 연결하다, 포함하다, ~ 내에 포함되다, ~와 또는 ~에 연결하다, ~와 또는 ~에 결합하다, ~와 통신할 수 있다, ~와 협력하다, 인터리브하다, 나란히 놓다, ~에 인접하다, ~에 또는 ~와 바인딩하다, 갖다, ~의 속성이 있다, ~에 또는 ~와 관계가 있다 등을 의미한다. 용어 "제어기"는 적어도 하나의 동작을 제어하는 모든 장치, 시스템 또는 이들의 일부를 의미한다. 이러한 제어기는 하드웨어, 또는 하드웨어와 소프트웨어 및/또는 펌웨어의 조합으로 구현될 수 있다. 임의의 특정 제어기와 관련된 기능은 국부적으로든 원격으로든 중앙 집중화되거나 분산될 수 있다. 항목들의 목록과 함께 사용될 때 "~의 적어도 하나"라는 구문은 나열된 항목들 중 하나 이상의 상이한 조합들이 사용될 수도 있고, 목록에서 단지 하나의 항목만이 요구될 수도 있다는 것을 의미한다. 예를 들어, "A, B 및 C 중 적어도 하나"는 다음의 조합, 즉 A, B, C, A와 B, A와 C, B와 C, 및 A와 B와 C 중 어느 하나를 포함한다.
또한, 후술되는 다양한 기능들은 하나 이상의 컴퓨터 프로그램에 의해 구현되거나 지원될 수 있고, 각각의 컴퓨터 프로그램은 컴퓨터 판독 가능한 프로그램 코드로부터 형성되고 컴퓨터 판독 가능한 매체에 내장된다. 용어 "어플리케이션" 및 "프로그램"은 적합한 컴퓨터 판독 가능한 프로그램 코드로 구현을 위해 구성된 하나 이상의 컴퓨터 프로그램, 소프트웨어 구성 요소, 지시들의 집합, 절차, 함수, 오브젝트, 클래스, 인스턴스, 관련 데이터, 또는 이들의 일부를 의미한다. 구문 "컴퓨터 판독 가능한 프로그램 코드"는 소스 코드, 오브젝트 코드 및 실행 가능한 코드를 포함하여 모든 유형의 컴퓨터 코드를 포함한다. 구문 "컴퓨터 판독 가능한 매체"는 읽기 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 하드 디스크 드라이브, 콤팩트 디스크(CD), 디지털 비디오 디스크(DVD), 또는 다른 유형의 메모리와 같이 컴퓨터에 의해 액세스될 수 있는 모든 유형의 매체를 포함한다. "비-일시적" 컴퓨터 판독 가능한 매체는 유선, 무선, 광, 또는 일시적인 전기 또는 다른 신호들을 전송하는 다른 무선 링크들을 제외한다. 비-일시적 컴퓨터 판독 가능한 매체는 데이터가 영구적으로 저장될 수 있는 매체 및 재기록이 가능한 광 디스크 또는 소거 가능한 메모리 장치와 같이 데이터가 저장될 수 있고 나중에 덮어쓰기 할 수 있는 매체를 포함한다.
다른 특정 단어 및 구문들에 대한 정의는 본 특허 문서 전반에 걸쳐서 제공된다. 당업자들은 대부분은 아니지만 많은 경우에 이러한 정의들이 이러한 정의된 단어 및 구문들의 이전뿐만 아니라 미래의 사용에도 적용됨을 이해해야 한다.
본 발명의 보다 완전한 이해를 위해, 첨부 도면들과 함께 제공되는 다음의 설명을 참조한다.
도 1은 본 발명에 따른 예시적인 컴퓨팅 시스템을 도시한다.
도 2 및 도 3은 본 발명에 따른 컴퓨팅 시스템에서의 예시적인 장치들을 도시한다.
도 4는 본 발명의 실시예들에 따른 인터넷을 하여 방송되는 캐시 비디오 전송을 위한 데이터 경로들의 네트워크를 포함하는 시스템을 도시한다.
도 5는 본 발명의 실시예들에 따른 캐시 상태의 타임라인을 도시한다.
도 6a는 본 발명의 실시예들에 따른 MMT 캐시 매니페스트를 도시한다.
도 6b는 세그먼트에 대한 다양한 RDOp에 대응하는 도 6a의 캐시 매니페스트에서 세그먼트의 예시적인 버전들을 도시한다.
도 7은 본 발명의 실시예들에 따라 MMT 캐시 매니페스트 방식을 구현하는 방법을 도시한다.
후술되는 도 1 내지 도 7, 및 본 특허 문서에서 본 발명의 원리들을 설명하기 위해 사용된 다양한 실시예들은 단지 예시를 위한 것으로, 본 발명의 범위를 한정하는 방식으로 해석되어서는 안된다. 당업자들은 본 발명의 원리들이 모든 적절하게 배치된 통신 장치에서 구현될 수 있음을 이해할 것이다.
다음의 문서 및 표준 설명들은 이로써 본 명세서에 완전히 명시된 것처럼 본 발명에 포함된다: (i) Bo Li, Susu Xie, Gabriel Yik Keung, Jiangchuan Liu, Ion Stoica, Hui Zhang, Xinyan Zhang: 쿨스트리밍 + 시스템의 실증 연구. IEEE Journal on Selected Areas in Communications 25(9): 1627-1639 (2007) (이하, "REF1"); (ii) Ying Li, Zhu Li, Mung Chiang, A. Robert Calderbank: 피어 투 피어 라이브 스트리밍 시스템을 위한 비디오 전송 스케줄링. ICME 2008: 653-656 (이하, "REF2"); (iii) ISO/IEC 23008-1, 2014, "정보 기술 -- 이기종 환경에서의 고 효율 코딩 및 미디어 전송 -- Part 1: MPEG 미디어 전송(MMT)" (이하, "REF3"); (iv) ISO/IEC JTC1/SC29/WG11/MPEG2014/m33237, Z. Li, I. Bouazizi, 및 K. Park, MMT Amd1: MMT ADC에서의 다중 QoE 운영 지점 시그널링(이하, "REF4"); (v) ISO/IEC JTC1/SC29/WG11/MPEG2014/m33239, Z. Li, 및 I. Bouazizi, FF: ISO 기반 미디어 파일 포맷에서의 시간적 품질 시그널링(이하, "REF5"); 및 (vi) ISO/IEC JTC1/SC29/WG11/MPEG2013/N13992 , Y. Reznik, A. Giladi, O. Oyman, D. Singer, 및 S. Zhang, "ISO/IEC XXXXX-Y의 WD: ISO 기반 미디어 파일 포맷에서의 품질 관련 정보 운송" (이하, "REF6"). REF1은 다수의 사용자에게 (월드컵 축구 및 중국 신년 경축 행사와 같은) 인기 프로그램들을 생방송으로 전달하기 위해 사용된 쿨스트림 시스템을 설명한다. REF2는 스트리밍 시간 스케줄링 간격들을 설명한다. REF3는 MPEG(moving picture experts group) 미디어 전송(MMT) 시스템을 설명한다.
도 1은 본 발명에 따른 예시적인 컴퓨팅 시스템(100)을 도시한다. 도 1에 도시된 컴퓨팅 시스템(100)의 실시예는 단지 예시를 위한 것이다. 본 발명의 범위에서 벗어나지 않고 컴퓨팅 시스템(100)의 다른 실시예들이 사용될 수 있다.
도 1에 도시된 바와 같이, 시스템(100)은 시스템(100)에 포함된 다양한 구성 요소들 간의 통신을 가능하게 만드는 네트워크(102)를 포함한다. 예를 들어, 네트워크(102)는 인터넷 프로토콜(internet protocol, IP) 패킷, 프레임 중계 프레임들, 비동기식 전송 모드(Asynchronous Transfer Mode, ATM) 셀, 또는 다른 네트워크 주소들(addresses) 간 정보를 통신할 수 있다. 네트워크(102)는 하나 이상의 근거리 네트워크(local area networks, LANs), 대도시 네트워크(metropolitan area networks, MANs), 광역 네트워크(wide area networks, WANs), 인터넷과 같은 글로벌 네트워크의 전부 또는 일부, 또는 한 곳 이상의 위치에 있는 모든 다른 통신 시스템 또는 시스템들을 포함할 수 있다.
네트워크(102)는 적어도 하나의 서버(104)와 다양한 클라이언트 장치들(106 내지 114) 간의 통신을 용이하게 한다. 서버(104)는 하나 이상의 클라이언트 장치에 컴퓨팅 서비스를 제공할 수 있는 모든 적합한 컴퓨팅 또는 처리 장치를 포함한다. 예를 들어, 서버(104)는 하나 이상의 처리 장치, 지시 및 데이터를 저장하는 하나 이상의 메모리, 및 네트워크(102)를 통한 통신을 용이하게 하는 하나 이상의 네트워크 인터페이스를 포함할 수 있다.
각각의 클라이언트 장치(106 내지 114)는 네트워크(102)를 통해 적어도 하나의 서버 또는 다른 컴퓨팅 장치(들)과 상호작용(interact)하는 모든 적합한 컴퓨팅 또는 처리 장치를 나타낸다. 본 예에서, 클라이언트 장치들(106 내지 114)은 데스크톱 컴퓨터(106), 휴대 전화 또는 스마트 폰(108), 개인 휴대용 정보 단말기(personal digital assistant, PDA)(110), 랩톱 컴퓨터(112), 및 태블릿 컴퓨터(114)를 포함한다. 그러나, 다른 또는 추가적인 클라이언트 장치들(예를 들어, TV)이 컴퓨팅 시스템(100)에서 사용될 수 있다.
본 예에서, 일부 클라이언트 장치들(108 내지 114)은 네트워크(102)와 간접적으로 통신한다. 예를 들어, 클라이언트 장치들(108 내지 110)은 셀룰러 기지국 또는 eNodeB와 같은 하나 이상의 기지국(116)을 통해 통신한다. 또한, 클라이언트 장치들(112 내지 114)은 IEEE 802.11 무선 액세스 지점과 같은 하나 이상의 무선 액세스 포인트(118)을 통해 통신한다. 이들은 단지 예시를 위한 것으로 각각의 클라이언트 장치는 네트워크(102)와 직접적으로 또는 모든 적합한 중간 장치(들)이나 네트워크(들)을 통해 네트워크(102)와 간접적으로 통신할 수 있음을 유의해야 한다.
보다 상세히 후술되는 바와 같이, 콤팩트 캐시 매니페스트 방식은 주문(on-demand) 및 분배 방식으로 캐시 컨텐트의 검색 및 스트리밍을 지원한다.
도 1은 컴퓨팅 시스템(100)의 일 예를 도시하지만, 다양한 변경이 도 1에서 이루어질 수 있다. 예를 들어, 시스템(100)은 모든 적합한 배치에서 각각의 구성 요소를 얼마든지 포함할 수 있다. 일반적으로, 컴퓨팅 및 통신 시스템은 다양한 구성으로 제공되고, 도 1은 임의의 특정 구성으로 본 발명의 범위를 한정하지 않는다. 도 1은 본 특허 문서에 개시된 다양한 특징들이 사용될 수 있는 하나의 운영 환경을 도시하지만, 이들 특징은 모든 다른 적합한 시스템에서 사용될 수 있다.
도 2 및 도 3은 본 발명에 따른 컴퓨팅 시스템에서의 예시적인 장치들을 도시한다. 특히, 도 2는 예시적인 서버(200)를 도시하고, 도 3은 예시적인 클라이언트 장치(300)를 도시한다. 서버(200)는 도 1의 서버(104)를 나타낼 수 있고, 클라이언트 장치(300)는 도 1의 클라이언트 장치들(106 내지 114) 중 하나 이상을 나타낼 수 있다.
도 2에 도시된 바와 같이, 서버(200)는 버스 시스템(205)을 포함하고, 버스 시스템(205)는 적어도 하나의 처리 장치(210), 적어도 하나의 저장 장치(215), 적어도 하나의 통신 유닛(220), 및 적어도 하나의 입력/출력(I/O) 유닛(225) 간의 통신을 지원한다.
처리 장치(210)는 메모리(230)으로 로딩될 수 있는 명령어들(instructions)을 실행한다. 처리 장치(210)는 적절한 배치에서 적절한 개수(들) 및 유형(들)의 프로세서 또는 다른 장치들을 포함할 수 있다. 예시적인 처리 장치(210)의 유형들은 마이크로프로세서, 마이크로제어기, 디지털 신호 프로세서, 필드 프로그래밍 가능한 게이트 어레이, 주문형 집적 회로, 및 이산 회로를 포함한다.
메모리(230) 및 영구(persistent) 저장 장치(235)는 데이터, 프로그램 코드, 및/또는 다른 일시적 또는 영구적 기반의 정보와 같은 정보의 검색을 용이하게 하고 정보를 저장할 수 있는 구조(들)을 나타내는 저장 장치(215)의 예이다. 메모리(230)는 랜덤 액세스 메모리 또는 모든 다른 적합한 휘발성 또는 비휘발성 저장 장치(들)을 나타낼 수 있다. 영구 저장 장치(235)는 읽기 전용 메모리, 하드 드라이브, 플래시 메모리, 또는 광 디스크와 같이 데이터의 장기 저장을 지원하는 하나 이상의 구성 요소 또는 장치들을 포함할 수 있다.
통신 유닛(220)은 다른 시스템 또는 장치들과의 통신을 지원한다. 예를 들어, 통신 유닛(220)은 네트워크(102)를 통한 통신을 용이하게 하는 무선 송수신기 또는 네트워크 인터페이스 카드를 포함할 수 있다. 통신 유닛(220)은 모든 적합한 물리적 또는 무선 통신 링크(들)을 통해 통신을 지원할 수 있다.
I/O 유닛(225)은 데이터의 입력 및 출력을 허용한다. 예를 들어, I/O 유닛(225)은 키보드, 마우스, 키패드, 터치 스크린, 또는 다른 적합한 입력 장치를 통해 사용자 입력을 위한 연결을 제공할 수 있다. 또한, I/O 유닛(225)은 디스플레이, 프린터, 또는 다른 적합한 출력 장치에 출력을 전송할 수 있다.
도 2는 도 1의 서버(104)를 나타내는 것으로 기술되지만, 동일하거나 유사한 구조가 클라이언트 장치들(106 내지 114) 중 하나 이상에서 사용될 수 있다는 것을 유의해야 한다. 예를 들어, 랩톱 또는 데스크톱 컴퓨터가 도 2에 도시된 구조와 동일하거나 유사한 구조를 가질 수 있다.
도 3에 도시된 바와 같이, 클라이언트 장치(300)는 안테나(305), 무선 주파수(radio frequency, RF) 송수신기(310), 송신(transmit, TX) 처리 회로(315), 마이크로폰(320), 및 수신(receive, RX) 처리 회로(325)를 포함한다. 또한, 클라이언트 장치(300)는 스피커(330), 메인 프로세서(340), 입력/출력(I/O) 인터페이스(IF)(345), 키패드(350), 디스플레이(355), 및 메모리(360)를 포함한다. 메모리(360)는 기본 운영 체계(OS) 프로그램(361) 및 하나 이상의 어플리케이션(362)을 포함한다.
RF 송수신기(310)는 시스템에 포함된 또 다른 구성 요소에 의해 전송된 입력 RF 신호를 안테나(305)로부터 수신한다. RF 송수신기(310)는 중간 주파수(intermediate frequency, IF) 또는 기저대역 신호를 생성하기 위해 입력 RF 신호를 다운컨버팅(down-convert)한다. IF 또는 기저대역 신호는 RX 처리 회로(325)에 전송되고, RX 처리 회로(325)는 기저대역 또는 IF 신호를 필터링, 디코딩, 및/또는 디지털화하여 처리된 기저대역 신호를 생성한다. RX 처리 회로(325)는 처리된 기저대역 신호를 추가 처리를 위하여 메인 프로세서(340)로 전송(예를 들어, 웹 브라우징 데이터와 같은 추가 처리를 위하여)하거나, 스피커(330)로 전송(예를 들어, 음성 데이터 처리를 위하여)한다.
TX 처리 회로(315)는 마이크로폰(320)으로부터 아날로그 또는 디지털 음성 데이터를 수신하거나, 메인 프로세서(340)로부터 다른 출력 기저대역 데이터(웹 데이터, 이메일, 또는 대화형 비디오 게임 데이터와 같은)를 수신한다. TX 처리 회로(315)는 처리된 기저대역 또는 IF 신호를 생성하기 위해 출력 기저대역 데이터를 인코딩, 멀티플렉싱, 및/또는 디지털화한다. RF 송수신기(310)는 TX 처리 회로(315)로부터 출력되는 처리된 기저대역 또는 IF 신호를 수신하고, 안테나(305)를 통해 전송되는 RF 신호로 기저대역 또는 IF 신호를 업컨버팅(up-converts)한다.
메인 프로세서(340)는 하나 이상의 프로세서 또는 다른 처리 장치들을 포함할 수 있고, 클라이언트 장치(300)의 전반적인 동작을 제어하기 위하여 메모리(360)에 저장된 기본 OS 프로그램(361)을 실행할 수 있다. 예를 들어, 메인 프로세서(340)는 잘 알려진 원리들에 따라 RF 송수신기(310), RX 처리 회로(325) 및 TX 처리 회로(315)에 의한 순방향 채널 신호들의 수신 및 역방향 채널 신호들의 전송을 제어할 수 있다. 일부 실시예들에서, 메인 프로세서(340)는 적어도 하나의 마이크로프로세서 또는 마이크로제어기를 포함한다.
또한, 메인 프로세서(340)는 주문 및 분배 방식으로 캐시 컨텐트의 검색 및 스트리밍을 지원하는 콤팩트 캐시 매니페스트 방식에 대한 동작들과 같이 메모리(360)에 저장되는 다른 프로세스 및 프로그램들을 실행할 수 있다. 메인 프로세서(340)는 실행하는 프로세스의 필요에 따라 메모리(360)의 안으로 또는 밖으로 데이터를 이동시킬 수 있다. 일부 실시예들에서, 메인 프로세서(340)는 작동자 또는 외부 장치들로부터 수신된 신호들에 응답하여, 또는 OS 프로그램(361)을 기반으로 하여 어플리케이션(362)들을 실행하도록 구성된다. 또한, 메인 프로세서(340)는 클라이언트 장치(300)에 랩톱 컴퓨터 및 핸드헬드 컴퓨터와 같은 다른 장치들에 연결하는 능력을 제공하는 I/O 인터페이스(345)와 결합된다. I/O 인터페이스(345)는 메인 프로세서(340)와 이들 부속 장치 간의 통신 경로이다.
또한, 메인 프로세서(340)는 키패드(350) 및 디스플레이 유닛(355)에 결합된다. 클라이언트 장치(300)의 작동자는 클라이언트 장치(300)에 데이터를 입력하기 위해 키패드(350)를 사용할 수 있다. 디스플레이(355)는 웹 사이트로부터와 같이 텍스트 및/또는 적어도 제한된 그래픽들을 랜더링할 수 있는 액정 디스플레이 또는 다른 디스플레이일 수 있다.
메모리(360)는 메인 프로세서(340)에 결합된다. 메모리(360)의 일부는 랜덤 액세스 메모리(random access memory, RAM)를 포함할 수 있고, 메모리(360)의 또 다른 일부는 플래시 메모리 또는 다른 읽기 전용 메모리(read only memory, ROM)를 포함할 수 있다.
보다 상세히 후술되는 바와 같이, 콤팩트 캐시 매니페스트 방식은 주문 및 분배 방식으로 캐시 컨텐트의 검색 및 스트리밍을 지원한다.
도 2 및 도 3은 컴퓨팅 시스템의 장치들의 예를 도시하지만, 다양한 변경들이 도 2 및 도 3에 대해 이루어질 수 있다. 예를 들어, 도 2 및 도 3의 다양한 구성 요소들은 결합되거나, 더 세분화되거나, 생략될 수 있고, 추가 구성 요소들이 특정 요구에 따라 추가될 수 있다. 특정 예로서, 메인 프로세서(340)는 하나 이상의 중앙 처리 유닛(central processing units, CPU) 및 하나 이상의 그래픽 처리 유닛(graphics processing units, GPU)과 같이 복수의 프로세서로 나뉠 수 있다. 또한, 도 3은 휴대 전화 또는 스마트폰으로서 구성된 클라이언트 장치(300)를 도시하지만, 클라이언트 장치들은 다른 유형의 모바일 장치 또는 고정 장치들로서 동작하도록 구성될 수 있다. 또한, 컴퓨팅 및 통신 네트워크에 대해 말하자면, 클라이언트 장치 및 서버들은 다양한 구성으로 제공될 수 있고, 도 2 및 도 3은 어떤 특정 클라이언트 장치 또는 서버로 본 발명을 한정하지 않는다.
비디오 컨텐트 전송을 가속화하기 위한 하나의 솔루션은 종단간 링크 용량을 증가시키는 브루트 포스(brute force) 접근 방법이다. 또한, 피어 지원 다중 경로 스트리밍을 지원하기 위하여 네트워크 내 캐시를 이용하는 방법은 효과적인 비디오 컨텐트 전송 가속화 솔루션이다. 본 발명의 콤팩트 캐시 매니페스트 방식은 네트워크 내 캐시에서 구현될 수 있다. 콤팩트 캐시 매니페스트 방식은 MPEG(moving picture experts group) 미디어 전송(MMT), 시스템 하드웨어를 위한 MPEG 데스크톱 및 모바일 아키텍처(Desktop and mobile Architecture for System Hardware, DASH), 및 인터넷 엔지니어링 태스크 포스 어플리케이션 계층 트래픽 최적화(Internet Engineering Task Force Application Layer Traffic Optimization, IETF ALTO) 같은 표준들로 구현될 수 있다.
본 개시는 캐시 관리 및 캐시 지원 전송 가속화를 지원하기 위한 MMT 캐시 매니페스트 방식의 실시예들을 기술한다. MMT 캐시 매니페스트 방식은 캐시에서 단편화된 컨텐트를 구성할 수 있고, 서로 다른 서비스 품질(Quality of Service, QoS) 및 이용 가능한 경험의 품질(Quality of Experience, QoE) 옵션을 시그널링할 수 있다. 매니페스트는 매우 콤팩트하고, 컨텐트를 요청하는 클라이언트들(클라이언트 장치(300)와 같은)로부터 쉽게 검색될 수 있다. 매우 콤팩트한 매니페스트는 캐시 컨텐트 목록의 비용이 많이 드는 방송을 방지한다. 또한, 매우 콤팩트한 매니페스트는 일반적으로 캐시 매니페스트 업데이트 시간 스케일보다 훨씬 적은 스트리밍 시간 스케줄링 간격으로 더욱 쉬운 정렬을 허용한다.
본 발명의 실시예들에 따르면, MMT 캐시 매니페스트는 이용 가능한 컨텐트("자산", "멀티미디어 자산" 또는 "MMT 자산"으로도 지칭되는) 및 컨텐트의 다른 표현 및 결과의 품질 및 QoS 매개 변수를 갖는 컨텐트의 서브 표현들을 지시한다. 특정 실시예들에서, 매니페스트는 이진 포맷으로 매우 콤팩트하고, 캐시 지원 전송 가속화를 가능하도록 하기 위한 정보의 중앙 조각일 수 있다.
도 4는 본 개시의 실시예들에 따라 인터넷을 통해 방송되는 캐시 비디오 전송을 위한 데이터 경로들의 네트워크(402)를 포함하는 시스템(400)을 도시한다. 도 4에 도시된 바와 같은 시스템(400)의 실시예는 단지 예시를 위한 것이다. 본 발명의 범위에서 벗어나지 않고 다른 실시예들이 사용될 수 있다.
예를 들어, 시스템(400)은 도 1의 시스템(400)으로 사용될 수 있다. 도 4의 구성 요소들(402, 404, 406 및 408)은 도 1의 해당 구성 요소들(102,104, 106 및 108)과 동일하거나 유사할 수 있음을 유의해야 한다. 이들 도 4의 구성 요소는 도 1의 해당 구성 요소들과 동일하거나 유사한 방식으로 작동할 수 있다.
네트워크(402) 이외에도, 시스템(400)은 인터넷 서비스 제공자(Internet Service Provider, ISP) 서브 네트워크(403a, 403b), 컨텐트 전송 네트워크(content delivery network, CDN) 서버(404), 및 클라이언트 장치(406, 408)를 포함한다. CDN 서버(404)는 비디오 컨텐트의 소스이고, 직접 데이터 경로(410)를 사용하여 네트워크(402)를 통해 최종 사용자의 클라이언트 장치(406)를 직접 지원할 수 있다. 유사한 방식으로, CDN 서버(404)는 또 다른 클라이언트 장치(408)를 직접 지원하기 위해 또 다른 데이터 경로(412)를 사용한다. 직접 데이터 경로(410,412)는 각각 CDN 서버(404)로부터 네트워크(402)를 통해 및 각각의 ISP 서브 네트워크(403a, 403b)를 통해 각각의 클라이언트 장치(406, 408)로 연결(run)된다. 특정 실시예들에서, CDN 서버(404)는 발신(out-going) 대역폭의 초당 16 메가비트(즉, 16 mbps)를 포함한다.
CDN 서버(404)는 제한된 컴퓨팅 연산력(computing power), 발신 대역폭, 및 종단간 불확실성을 포함하여 여러 가지 이유로 인해 직접 모든 클라이언트 장치를 실행 가능하게 지원할 수 없다. 보다 구체적으로, CDN 서버(404)의 컴퓨터 연산력은 제한되며, 제한된 수의 동시 접속만을 지원할 수 있다. 또한, 오리진 CDN 서버(404)는 비트율(bit rate) B에서 비디오를 사용하는 n명의 사용자를 지원하기 위하여 n x B의 발신 대역폭이 필요하다. UHD(예를 들어, B=16mbps)와 같은 고 대역폭 어플리케이션의 경우, 천(1000)명의 사용자를 지원하기 위해 필요한 대역폭의 양은 16G의 발신 대역폭 또는 초당 16 기가비트(즉, 16 Gbps)가 될 것이다. UHD의 경우, 필요한 대역폭의 양은 CDN 서버(404)에 속하는 기존 대역폭의 양(예를 들어, B=16mbps)을 쉽게 초과하고 다 써버릴 수 있다. 본 예에서, CDN 서버(404)는 UHD 어플리케이션을 실행하는 한 명의 사용자만을 지원하기에 충분한 대역폭을 갖는다. 또한, 일단 패킷이 오리진 CDN 서버(404)로부터 전송되면, 인터넷 네트워크(402)의 현재 상태는 처리량도 지연도 보장할 수 없다. 이러한 보장의 부족은 불확실성을 만들며, 이러한 불확실성은 오랫동안 인터넷 네트워크의 특징으로 남을 수 있다.
시스템(400)은 네트워크(402)의 다양한 장소에서 하나 이상의 상위 레벨 캐시(414)를 포함한다. 또한, 시스템(400)은 각각의 ISP 서브 네트워크(403a, 403b)와 관련된 하위 레벨 캐시(416, 418)를 포함한다. 각각의 클라이언트 장치(406, 408)는 캐시(420, 422)를 포함한다. 오리진 CDN 서버(404)로부터 최종 사용자 클라이언트 장치(406, 408)를 지원하는 대신에, 상위 레벨 캐시(414)가 데이터 경로(424)를 통해 클라이언트 장치(408)를 직접 지원할 수 있다. 상위 레벨 캐시(414)는 CDN 서버(404)의 RTT와 비교하여, 일반적으로 훨씬 짧은 RTT로 클라이언트 장치들을 지원할 수 있다. 또한, 대안적인 전송 경로(424)는 CDN 서버(404)로부터의 데이터 경로(412)보다 덜 혼잡할 수 있다.
CDN 서버(404)는 데이터 경로(426)를 통해 상위 레벨 캐시(414)에게 컨텐트를 직접 제공할 수 있다. CDN 서버(404)는 네트워크(402) 및 ISP 서브 네트워크(403a)를 통해 연결된 데이터 경로(428)를 통하여 하위 레벨 캐시(416)에게 컨텐트를 직접 제공할 수 있다. 마찬가지로, CDN 서버(404)는 데이터 경로(430)를 통해 하위 레벨 캐시(418)를 직접 지원한다. 또한, CDN 서버(404)는 대안적인 데이터 경로(432)를 통해 하위 레벨 캐시(416)에게, 대안적인 데이터 경로(434)를 통해 클라이언트 장치(408)에게 컨텐트를 제공할 수 있다(대안적인 데이터 경로들은 점선으로 도시됨).
상위 레벨 캐시(414)는 대안적인 데이터 경로(436)(점선으로 도시됨)를 통해 클라이언트 장치(408)에게, 대안적인 데이터 경로(438)(점선으로 도시됨)를 통해 클라이언트 장치(406)의 캐시(420)에게 컨텐트를 제공할 수 있다.
하위 레벨 캐시(418)는 동일한 ISP 네트워크(403b)와 관련된 클라이언트 장치(408)에게 컨텐트를 제공하기 위하여 직접 데이터 경로(440)를 사용할 수 있다.
본 개시는 컨텐트 전송을 가속화하고, 혼잡을 방지하며, 재생 멈춤(playback freeze)을 방지하기 위하여, 데이터 경로들을 이용하고 다양한 캐시(414, 416, 418, 420, 422)를 관리하는 방법들(도 7를 참조하여 기술됨)을 제공한다. 보다 구체적으로, 각각의 캐시(414, 416, 418, 420, 422)는 캐시가 콤팩트 캐시 매니페스트 방식을 구현할 수 있도록 만드는 매니페스트(450a 내지 450d)를 포함한다. 매니페스트(450a 내지 450d)는 도 6a 및 도 6b를 참조하여 보다 상세히 후술된다.
특정 실시예들에서, 시스템(400)은 도 1의 서버(104)와 동일하거나 유사할 수 있는 컨텐트 발견 서비스 서버(content discovery service server, CDSS)(460)를 포함한다. CDSS(460)는 다양한 캐시(414, 416, 418, 420, 422)를 관리하기 위한 방법들을 구현한다. 예를 들어, 각각의 캐시(414, 416, 418, 420, 422)는 매니페스트(450a 내지 450d)를 생성하여 업데이트 메시지(462a 내지 462d)로서 CDSS(460)에게 전송한다. 업데이트 메시지(462a 내지 462d)는 매니페스트(450a 내지 450d) 및 유효 타임 스탬프를 CDSS(460)에게 제공하여, CDSS(460)가 통신 네트워크(402)에서 중앙 집중화된 노드로부터 다양한 캐시 (414, 416, 418, 420, 422)를 관리하는 것을 가능하게 만든다.
예를 들어, 클라이언트 장치(408)는 클라이언트 장치(408) 내의 재생 버퍼(422)의 컨텐트들을 기반으로 하여 매니페스트(450d)(예를 들어, 매니페스트(450d)의 복사본)를 포함하는 업데이트 메시지(462d)를 생성한다. 업데이트 메시지(462d)를 수신하는 단계에 응답하여, CDSS(460)는 참조의 목적으로 매니페스트(450d)를 저장하고, 클라이언트 장치(408)의 주소와 매니페스트를 연결하고, 업데이트 메시지(462d) 내의 유효 타임스템프를 사용하여 매니페스트(450d)가 유효할 때를 결정한다. 클라이언트 장치(408)가 후속 업데이트 메시지(462d)를 전송할 때, CDSS(460)는 이를 수신하여 업데이트된 매니페스트(450d)(또는 매니페스트에 대한 변경)을 저장하고, 매니페스트(450d) 내의 업데이트(예를 들어, 변경 또는 변경 없음)에 후속 유효 타임스탬프를 연결한다. 클라이언트 장치(408)는 주기적으로(예를 들어, 일정한 간격을 두고) 또는 재생 버퍼(422) 내에 저장된 컨텐트가 변경될 때마다 업데이트 메시지(462)를 전송할 수 있다. 캐시 매니페스트를 갖는 네트워크(402)에서 각각의 캐시(414, 416, 420, 422)는 클라이언트 장치(408)의 재생 버퍼(422)와 유사한 프로세스를 사용하여 CDSS(460)에게 업데이트 메시지(460a 내지 460d)를 전송할 수 있다. 즉, CDSS(460)는 시스템(400) 내에 있고 네트워크(402)에 결합되는 복수의 캐시에 대한 복수의 업데이트된 캐시 매니페스트를 유지한다.
통신 네트워크(402)에서 중앙 집권화된 노드로부터 다양한 캐시(414, 416, 418, 420, 422)를 관리하는 또 다른 예로서, CDSS(460)는 데이터 경로들로부터 원래의 컨텐트 CDS 서버(404)로 향하는 컨텐트 요청 메시지들을 인터셉트할 수 있다. 또한, CDSS(460)는 클라이언트 장치(408)로부터 CDSS(460)로 향하는 컨텐트 요청 메시지들을 수신할 수 있다. 컨텐트 요청 메시지(464)를 수신하는 단계에 응답하여, CDSS(460)는 요청된 컨텐트를 클라이언트 장치(408)에게 제공할지 여부를 결정한다. 즉, CDSS(460)는 컨텐트 요청 메시지(464) 내의 정보에 부응하기 위해 정보를 검색하는 CDSS(460) 내에 저장된 복수의 캐시 매니페스트를 참조한다. 요청된 컨텐트를 제공하기 위해 네트워크(402)의 다양한 캐시로부터 하나의 캐시를 선택하는 것을 기반으로 하여, CDSS(460) 내에 저장된 어떠한 캐시 매니페스트도 컨텐트 요청 메시지(464)에 부응하지 않는 경우, CDSS(460)는 요청된 컨텐트를 제공하지 않기로 결정한다. CDSS(460)가 컨텐트 요청 메시지(464)에 부응하는 유효한 캐시 매니페스트(450b)를 발견하는 경우, CDSS(460)는 요청된 컨텐트를 제공하기로 결정한다. 부응하는 캐시 매니페스트(450b)를 발견함으로써, CDSS(460)는 부응하는 캐시 매니페스트(405d)가 수신된 캐시(416)의 연결된 주소를 또한 발견한다. CDSS(460)는 클라이언트 장치(408)에 요청된 컨텐트를 제공하기 위한 캐시로서 부응하는 캐시 매니페스트(450d)에 연결된 캐시(416)를 선택한다. 요청된 컨텐트를 제공하기로 결정하는 동작에 응답하여, CDSS(460)는 요청 메시지(464)를 생성한 클라이언트 장치(408)에 요청된 컨텐트를 전송하도록 선택된 캐시(416)에게 지시(466)를 전송한다. 지시(466)는 선택된 캐시(416)의 식별자(identification)(예를 들어, 주소) 및 요청된 컨텐트가 전송될 클라이언트 장치(408)의 목적지 주소 또는 식별자를 포함할 수 있다. 지시(466)를 수신하는 단계에 응답하여, 캐시(416)는 네트워크(402 및 403b)를 통해 클라이언트 장치(408)에게 요청된 컨텐트(468)를 전송한다.
CDSS(460)는 클라이언트 장치(408)에게 요청된 컨텐트를 제공하기로 결정하는 다양한 프로세스들을 구현할 수 있다. 예를 들어, CDSS(460)는 다음의 프로세스, 즉 요청 메시지(464)에 포함된 자산(asset) ID에 복수의 캐시 매니페스트의 자산 식별자(ID)를 매칭하는 프로세스; 요청 메시지(464)에 포함된 세그먼트 식별자(예를 들어, 세그먼트의 지문(fingerprint) 또는 타임스탬프)에 복수의 캐시 매니페스트의 세그먼트 식별자를 매칭하는 프로세스; 또는 복수의 캐시 매니페스트 내의 속도 왜곡 동작점(rate-distortion operating point, RDOp)의 서비스 품질(QoS) 매개변수가 요청 메시지(464)에 포함된 비트율과 같거나 초과하는 지를 결정하는 프로세스에 의해 요청된 컨텐트를 제공하기로 결정한다.
도 5는 본 발명의 실시예들에 따른 캐시 상태의 타임라인을 도시한다. 예시적인 타임라인(500)에는 컨텐트의 단편화(fragmentation)가 존재하지 않는다. 도 5에 도시된 캐시 상태의 타임라인(500)은 단지 예시를 위한 것이다. 본 발명의 범위에서 벗어나지 않고 타임라인들의 다른 실시예들이 사용될 수 있다.
오리진 CDN 서버(404)에서의 컨텐트는 예측 가능한 방식으로 시간이 지남에 따라 선형적으로 사용 가능해진다. 즉, 컨텐트에 대한 요청을 수신하는 단계에 응답하여, CDN 서버(404)는 선형 방식으로 요청하는 클라이언트 장치에게 요청된 컨텐트를 전송할 수 있다. 그에 비해, 컨텐트 가용성은 캐시(414, 416, 418, 420, 422)에서 예측할 수 없다. 서로 다른 캐시들은 서로 다른 스트리밍의 시작 시간 및 사용자 행동으로 인하여 서로 다른 품질 및 QoS 요건들을 가지는 서로 다른 서브-리프리젠테이션(sub-representation)들(DASH 용어로)을 가지는 컨텐트의 서로 다른 세그먼트들을 포함한다. 즉, 서브 네트워크(430b)에 연결된 클라이언트 장치(408)는 클라이언트(406)가 요청하는 컨텐트와 동일한 컨텐트를 요청하기 위해 클라이언트(406)의 QoS 요구보다 높은 QoS 요구를 사용할 수 있고, 결과적으로, 클라이언트(408)에 가장 가까운 캐시(418)는 클라이언트(406)에 가장 가까운 캐시(416)에 저장된 컨텐트의 QoS보다 높은 QoS에서 요청된 컨텐트를 저장할 수 있다. 마찬가지로, 어느 한 시점에서, 복수의 클라이언트 장치들에게 특정 컨텐트를 제하였던 캐시(416)는 해당 컨텐트에 대한 복수의 세그먼트를 저장할 수 있지만, 해당 특정 컨텐트에 대한 요청을 수신하지 못한 캐시(418)는 해당 컨텐트의 어떠한 세그먼트도 포함할 수 없다.
캐시 지원 스트리밍을 용이하게 하기 위해, 컨텐트 현재 재생 타임스탬프(tk) 및 컨텐트 시작 및 종료 타임스탬프 {sk,ek}가 시그널링되어야 한다. 동일한 세그먼트에 대해, 서로 다른 서브 리프리젠테이션들이 이용 가능한 경우, 다음과 같은 정보 즉, 관련 MFU 인덱스, 결과에 의한 품질, 및 QoS 정보가 각각의 서브 리프리젠테이션에 대하여 시그널링되어야 한다. 서브 리프리젠테이션 정보의 시그널링은 스트리밍에서 복수의 동작점 ADC 케이스와 관련하여 REF4에 기술된 시그널링과 유사한 방식으로 시그널링될 수 있다.
도시된 예시적인 타임라인(500)에 대해, 네트워크(네트워크(400)와 같은)는 단편화되지 않은 방식으로 비디오 컨텐트(505) 전체를 저장하는 CDN 서버(서버(404)와 같은)를 포함한다. 컨텐트(505)는 sCONTENT의 시작 타임스탬프 및 eCONTENT의 종료 타임스탬프를 갖는다. 또한, 네트워크는 N개의 캐시(캐시1.... 캐시 k...... 캐시 N)를 포함하고, 각각의 캐시는 컨텐트(505)의 서로 다른 부분들을 나타내는 세그먼트를 저장한다. 예를 들어, 제1 캐시는 타임스탬프의 집합 {s0,t1,e1}을 갖는 컨텐트의 세그먼트(515)를 저장한다. 유사한 방식으로, k번째 캐시는 타임스탬프 {sk,tk,ek}를 갖는 세그먼트(525)를 저장하고, N번째 캐시는 타임스탬프 {sN,tN,eN}을 갖는 세그먼트(535)를 저장한다. 본 예에서, 세그먼트들(515, 525, 535)의 컬렉션(캐시 1 내지 캐시 N)은 누락된 컨텐트의 펀치(punches) 또는 시간의 갭(gap)을 제공하지 않기 때문에 타임스탬프 {sk,e1} 사이에서 컨텐트(505)를 단편화하지 않는다. 본 예에서, 어떠한 캐시도 타임 스탬프 {sCONTENT,sk} 사이 또는 타임스탬프 {e1,eCONTENT} 사이에서 컨텐트(505)의 부분을 나타내는 세그먼트를 저장하지 않는다.
도 6a는 본 발명의 실시예들에 따른 MMT 캐시 매니페스트(600)를 도시한다. 도 6a에 도시된 MMT 캐시 매니페스트(600)의 실시예는 단지 예시를 위한 것이다. 본 발명의 범위에서 벗어나지 않고 다른 실시예들이 사용될 수 있다.
도 6a에 도시된 MMT 캐시 매니페스트(600)는 도 4의 해당 매니페스트(405a 내지 405d)와 동일하거나 유사할 수 있다. 도 6a의 이들 구성 요소들은 도 4의 해당 구성 요소들과 동일하거나 유사한 방식으로 작동할 수 있다.
편의를 위한 일 예로서, 본 발명은 캐시(418)에 속하는 것처럼 매니페스트(600)를 기술하지만, 콤팩트 캐시 매니페스트 방식에서 각각의 캐시는 매니페스트를 포함할 수 있다. MMT 캐시 매니페스트(600)는 자산 식별자(자산 ID)에 의해 정리된다. 즉, 각각의 자산(605)(예를 들어, 컨텐트(505))은 자산 ID(610)에 의해 식별된다. 자산 ID(610)는 전체 세그먼트화되지 않은 컨텐트(605)의 위치를 식별하는 URL(uniform resource locator)일 수 있다.
자산(605)은 일련의 세그먼트(615a 내지 615d)(S1, S2, S3 및 S4)를 포함한다. 각각의 자산(605)에 대해, 캐시(418)에 존재하는 해당 세그먼트(615a 내지 615d)는 타임스탬프에 의해 나열된다. 타임스탬프(수평 분할선으로 도시된)는 제2 세그먼트(615b)(S2)와 제1 세그먼트(615a)(S1)를 분리하는 경계를 묘사한다. 일반적으로, 타임스탬프들은 연속된 세그먼트들을 분리한다. 예를 들어, 자산(605)은 100개의 비디오 컨텐트 프레임을 포함할 수 있고, 세그먼트(615a)(S1)는 프레임 1 내지 프레임 20을 포함하고, 세그먼트(615b)(S2)는 프레임 25 내지 프레임 35를 포함하고, 세그먼트(615c)(S3)는 프레임 50 내지 프레임 55를 포함하고, 세그먼트(615d)(S4)는 세그먼트 75 내지 95를 포함한다. 특정 실시예들에서, 타임스탬프가 세그먼트를 식별한다. 특정 실시예들에서, 지문이 세그먼트를 식별한다.
각각의 세그먼트(615a 내지 615d)에 대해, 매니페스트(600)는 해당 세그먼트 매니페스트(SegMf)(620a 내지 620d) 데이터 구조를 포함한다. 각각의 세그먼트 매니페스트(620a) 데이터 구조는 하나 이상의 속도 왜곡 동작점(RDOp)을 포함한다. RDOp의 수는 캐시가 제공할 수 있는 세그먼트의 버전 수를 표시한다. 보다 구체적으로, 세그먼트 매니페스트(620a) 데이터 구조는 복수의 RDOp(622, 624, 626)(RDOp1, RDOp2, 및 RDOp3)를 포함한다. 세그먼트 매니페스트(620a)는 캐시(418)가 세그먼트(615a)의 서로 다른 세 가지 버전 즉, RDOp(622)에 대응하는 제1 버전, RDOp(624)에 대응하는 제2 버전, 및 RDOp(626)에 대응하는 제3 버전을 저장한다는 것을 표시한다. 세그먼트(615a)의 세 가지 버전이 도 6b를 참조하여 보다 구체적으로 기술된다.
각각의 RDOp(622, 624, 626)는 미디어 데이터 유닛(media data unit, MDU)(예를 들어, 미디어 단편화 유닛(media fragmentation unit, MFU) 인덱스), 세그먼트(615a)(S1)와 관련된 QoS 매개변수들, 및 세그먼트(615a)(S1)와 관련된 QoE 매개변수들을 포함한다. 즉, MDU 인덱스, QoS 매개변수들, 및 QoE 매개변수들은 각각의 RDOp를 집합적으로 나타낸다. MDU 인덱스는 컨텐트 파일(640)(예를 들어, 플랫 기계 데이터(mdat) 바이트 파일)에 있는 세그먼트(615a)의 위치를 참조한다(이러한 참조 관계는 mdat 바이트 파일에 있는 인덱스에서 주소 위치로 향하는 화살표에 의해 도시된다). 캐시(418)는 내부적으로 컨텐트 파일(640)에 대한 각각의 MDU 인덱스를 생성한다. 보다 구체적으로, 캐시(418)는 제1 세그먼트(615a)(S1)의 RDOp1 리프리젠테이션에 대한 MDU 인덱스(630)를 생성하고, RDOp2에 대한 MDU 인덱스(632)를 생성하며, RDOp3에 대한 MDU 인덱스(634)를 생성한다. 관련된 QoS 매개변수들은 세그먼트(615a)(S1)가 캐시(418)로부터 전송될 수 있는 평균 비트율 및 피크 비트율을 표시한다. QoE 매개변수들은 REF4에 기술된 국제 표준화 기구(ISO) 기반 미디어 파일 포맷(ISOBMFF) 품질 기준에 부합하는 세그먼트의 시공간 품질을 표시한다. QoE는 해당 RDOp를 사용하는 경우 세그먼트(615a) 내에서의 왜곡(distortion)의 양을 표시한다. 캐시(418)는 REF4에 기술된 시그널링과 유사한 방식으로 QoE 매개변수 정보를 지시하는 신호들을 전송할 수 있다. 캐시(418)는 캐시 호스트로부터 관련 MFU들을 검색하기 위해 어플리케이션 프로그래밍 인터페이스(application programming interface, API)를 전송한다.
도 6b는 세그먼트(615a)에 대한 다양한 RDOp에 대응하는 도 6a의 캐시 매니페스트의 세그먼트(615a)(S1)의 예시적인 버전들을 도시한다. 도 6b에 도시된 세그먼트(615a)의 예시적인 버전들은 단지 예시를 위한 것이다. 본 발명의 범위에서 벗어나지 않고 다른 실시예들이 사용될 수 있다.
일 예로서, 세그먼트(615a)는 타임스탬프 {s1=0, e1=10}의 10초에 걸쳐 있고, 프레임(1 내지 20)을 포함한다. RDOp1(622)은 클라이언트 장치에 전달될 컨텐트의 부분들이 저장되어 있는 컨텐트 파일(640)에서의 위치를 참조하는 MDU를 포함한다. RDOp1(622)은 1 메가바이트(MB)의 파일 크기에 대응한다. QoS 매개변수들은 초당 1.0 메가바이트(MBps)의 고품질 비트율을 표시한다. QoE 매개변수들(예를 들어, 1.0)은 왜곡 없음 즉, 세그먼트의 모든 프레임들이 전송되고, 프레임들 중 어느 하나의 프레임도 제거되지 않거나, 그렇지 않으면 클라이언트 장치에 제공된 컨텐트에서 제외되지 않음을 표시한다.
RDOp2(624)는 800 킬로바이트(KB)의 파일 크기에 대응한다. QoS 매개변수들은 초당 800 킬로바이트(0.8 MBps)의 낮은 품질 비트율을 표시한다. QoE 매개변수들(예를 들어, 0.8)은 낮은 왜곡, 즉, 세그먼트의 프레임들의 큰 부분이 전송되고, 특정 프레임들의 작은 부분이 제거되거나 그렇지 않으면 클라이언트 장치에 제공된 컨텐트에서 제외됨을 표시한다. 프레임의 제거된 부분은 전체 프레임(단방향 대각선 빗금으로 도시됨)이거나 전체 프레임보다 작을 수 있다(양방향 대각선 빗금으로 도시됨). 본 예에 도시된 바와 같이, 세그먼트(615a)의 제거된 부분들은 RDOp2가 사용되는 경우에는 전송되지 않은 200KB의 데이터를 나타내지만, 그에 비해 RDOp1이 사용되는 경우에는 전송된다.
RDOp2(626)는 640 킬로바이트(KB)의 파일 크기에 대응한다. QoS 매개변수들은 초당 600 킬로바이트(KBps)의 더욱 감소된 품질 비트율을 표시한다. QoE 매개변수들은 더 낮은 왜곡, 즉, 세그먼트의 프레임들의 큰 부분이 전송되고, 특정 프레임들의 작은 부분이 제거되거나 그렇지 않으면 클라이언트 장치에 제공된 컨텐트에서 제외됨을 나타낸다. 프레임의 제거된 부분은 전체 프레임(단방향 대각선 빗금으로 도시됨)이거나 전체 프레임보다 작을 수 있다(양방향 대각선 빗금으로 도시됨). 본 예에 도시된 바와 같이, 세그먼트(615a)의 제거된 부분들은 RDOp3가 사용되는 경우에는 전송되지 않은 360KB의 데이터를 나타내지만, 그에 비해 RDOp1이 사용되는 경우에는 전송된다.
캐시 매니페스트는 단편화된 컨텐트 식별을 가능하게 한다. 예를 들어, 요청된 컨텐트는 어느 하나의 캐시에 함께 저장되지 않는 t0 내지 t10에 대한 비디오 컨텐트를 포함할 수 있지만, 요청된 컨텐트의 다양한 단편들은 단편들의 조합이 전체 요청된 컨텐트와 동등하도록 서로 다른 캐시에 존재한다. 캐시는 서로 다른 QoS 및 QoE 트레이드오프에 대한 캐시 컨텐트의 복수의 리프리젠테이션을 표시하는 매니페스트를 포함한다.
표 1은 MMT 캐시 매니페스트 신택스(syntax)의 일 예를 제공한다. 표 2는 MMT 캐시 매니페스트 신택스에서 사용된 용어들에 대한 의미(semantics)를 제공한다.
Figure pct00001
Figure pct00002
도 7은 본 개시의 실시예들에 따라 MMT 캐시 매니페스트 방식을 구현하는 방법을 도시한다. 방법(700)은 원래의 컨텐트 서버(404)보다 더 신뢰할 수 있는 요청된 컨텐트의 대안적인 소스에 가까운 것으로서, 네트워크 캐시(418)가 요청하는 클라이언트에게 고품질 비디오 컨텐트를 제공할 수 있도록 만든다. 방법(700)은 시스템(400)에 의해 구현된다. 도 7에 도시된 방법(700)의 실시예는 단지 예시를 위한 것이다. 본 발명의 범위에서 벗어나지 않고 다른 실시예들이 사용될 수 있다.
블록 705에서, 최종 사용자 클라이언트 장치는 요청된 컨텐트의 자산 ID, 클라이언트 장치에 수용할 수 있는 비트율, 및 요청된 컨텐트의 세그먼트를 포함하는 컨텐트 요청 메시지를 전송함으로써 특정 컨텐트를 요청한다. 특정 실시예들에서, 컨텐트 요청 메시지는 자산 ID 및 요청된 세그먼트를 표시하는 타임스팸프들의 집합 {s,e}을 포함한다. 특정 실시예들에서, 컨텐트 요청 메시지는 자산 ID 및 요청된 세그먼트를 표시하는 지문을 포함한다. 컨텐트 요청 메시지는 CDN 서버(404)의 의도된 목적지 주소를 포함할 수 있다.
블록 710에서, 네트워크(402)의 캐시가 컨텐트 요청 메시지를 인터셉트한다. 캐시는 컨텐트 요청 메시지로부터 요청된 자산, 요청된 세그먼트, 및 요청된 비트율을 결정한다. 캐시는 CDN 서버(404)와 클라이언트 장치 사이의 데이터 경로를 따르는 캐시, 예를 들어, ISP 서브 네트워크(403a, 403b)의 캐시일 수 있다. CDN 서버(404)는 요청된 컨텐트를 저장하고, 전술한 제한된 대역폭 및 불확실성으로 클라이언트 장치(406, 408)에 요청된 컨텐트를 전송할 수 있다. 또한, 요청된 컨텐트를 저장하는 시스템(400) 전체에 분산된 캐시(414, 416, 418)는 CDN 서버(404)와 비교하여 높은 대역폭 및 증가된 확실성으로 요청된 컨텐트를 전송할 수 있다. 또한, 블록 710에서, 캐시는 요청된 자산이 캐시에 저장되어 있는 지 여부를 결정한다. 예를 들어, 캐시는 요청된 자산의 자산 ID와 매니페스트(600)의 자산 ID들의 목록을 비교한다. 요청된 자산의 자산 ID가 캐시의 매니페스트에 존재하는 경우, 프로세스는 블록 715로 진행한다. 요청된 자산의 자산 ID가 캐시의 매니페스트에 존재하지 않는 경우, 방법(700)은 블록 720을 진행한다.
블록 715에서, 캐시는 예를 들어, 컨텐트 요청 메시지의 타임스탬프들과 캐시의 매니페스트의 타임스탬프들을 비교함으로써 요청된 자산의 요청된 세그먼트가 캐시에 저장되어 있는 지 여부를 결정한다. 특정 실시예들에서, 캐시는 컨텐트 요청 메시지의 지문들과 매니페스트의 지문들을 비교함으로써 요청된 자산의 요청된 세그먼트가 캐시에 저장되어 있는 지 여부를 결정한다. 요청된 타임스탬프 또는 요청된 지문이 캐시의 세그먼트(620a 내지 620d)(예를 들어, 세그먼트들의 목록)에 존재하는 경우, 방법(700)은 블록 725으로 진행하고, 그렇지 않은 경우, 방법은 블록 720으로 진행한다.
블록 720에서, 캐시는 네트워크(402)의 상위 레벨의 장치에 컨텐트 요청 메시지를 전송한다. 예를 들어, 하위 레벨 캐시(416, 418)는 상위 레벨 캐시(414)에게 컨텐트 요청 메시지를 전송할 수 있다. 상위 레벨 개시(414)는 요청된 세그먼트를 요청하는 클라이언트 장치에게 전송하는 상위 레벨 CDN 서버(404)에게 컨텐트 요청 메시지를 전송할 수 있다. 상위 레벨 캐시(414)는 방법(700)을 수행(프로세스 블록 705에서 시작함으로써)하고, 필요한 경우, CDN 서버(404)는 요청된 컨텐트를 클라이언트 장치에게 제공한다.
블록 725에서, 캐시는 클라이언트 장치에게 전송할 세그먼트를 선택한다. 예를 들어, 캐시는 컨텐트 요청 메시지의 타임스탬프 또는 지문과 일치하는 매니페스트로부터 세그먼트(615a 내지 615d)(S1, S2, S3 및 S4)를 선택한다. 예를 들어, 컨텐트 요청 메시지가 {5 내지 7}의 타임스탬프를 포함하는 경우, 캐시는 요청된 부분 {5 내지 7}을 포함하는 타임스팸프 {s1=0, e1=10}의 10초에 걸쳐 있는 세그먼트 615a(S1)를 전송하기 위해 선택할 것이다.
블록 730에서, 캐시는 컨텐트 요청 메시지의 요청된 비트율이 매니페스트의 비트율들 중 어느 비트율과 일치하는 지 여부를 결정한다. 즉, 캐시는 캐시가 요청된 세그먼트를 클라이언트 장치에게 적어도 요청된 비트율의 속도로 전송할 수 있도록 요청된 세그먼트가 충분히 단편화된 방식으로 캐시에 저장되어 있는 지 여부를 결정한다. 보다 구체적으로, 캐시는 컨텐트 요청 메시지의 QoS의 요청된 비트율과 매니페스트의 다양한 RDOp의 각각의 QoS를 비교한다. 매니페스트의 RDOp들 중 적어도 하나가 컨텐트 요청 메시지의 비트율 요건들을 충족시키는 경우, 방법(700)은 블록 735로 진행하고, 그렇지 않은 경우, 방법(700)은 블록 720로 진행한다.
블록 735에서, 캐시는 가장 가깝게 일치하고, 또한 요청된 QoS의 최소 비트율을 제공하는 RDOp를 선택한다. RDOp들 중 하나를 선택함으로써, 캐시(418)는 가장 일치하는 RDOp(즉, 요청의 컨텐트들에 가장 가까운 매개변수들을 포함하는) 및 요청의 컨텐트를 기반으로 하여 요청하는 클라이언트 장치에게 제공할 세그먼트(615a)의 버전을 선택한다. 일 예로서, RDOp1은 요청된 세그먼트(예를 들어, S1(615a))의 가장 높은 품질 버전을 제공하고, 가장 큰 대역폭(CDN 서버(404)의 대역폭 요건들과 동등한)을 필요로 하고, RDOp2는 요청된 세그먼트의 중간 범위의 품질 버전을 제공하고, CDN 서버(404)보다 작은 대역폭을 필요로 하고, RDOp3는 요청된 세그먼트의 낮은 범위 품질 버전을 제공하고, RDOp2보다 더 감소된 대역폭을 필요로 한다.
블록 740에서, 캐시는 컨텐트 요청 메시지의 비트율을 총족하기 위하여 클라이언트 장치에게 전송할 단편들(fragments)의 컬렉션을 선택한다. 즉, 각각의 RDOp의 미디어 데이터 유닛(MDU)은 RDOp의 비트율을 기반으로 하여 전송되거나 전송에서 제외될 프레임들 및 프레임들의 부분에 대응한다. 블록 735에서 RDOp를 선택하는 단계에 응답하여, 캐시는 선택된 RDOp의 MDU에 대응하는 단편들을 선택한다. 예를 들어, 세그먼트 S1(615a)에 대한 RDOp3를 선택함으로써, 캐시는 도 6b의 세그먼트 S1(615a)의 빗금친 부분들로 표시된 전체 프레임 및 부분 프레임들을 전송하지 않는다.
블록 745에서, 캐시는 블록 735에서 선택된 MDOp에 대응하는 요청된 세그먼트의 단편들을 (클라이언트 장치에게) 전송한다.
블록 750에서, 컨텐트 요청 메시지를 전송하는 단계에 응답하여, 요청하는 클라이언트 장치는 콤팩트 캐시 매니페스트 방식을 구현하는 시스템(400)의 캐시로부터 요청된 최소 비트율로 요청된 자산의 요청된 세그먼트를 수신한다.
특정 실시예들에서, 컨텐트 요청 메시지를 전송하는 단계에 응답하여, 클라이언트 장치는 네트워크(402, 403a, 403b)의 캐시들로부터 복수의 매니페스트를 동시에 수신한다. 클라이언트 장치는 어떤 캐시가 요청된 컨텐트를 클라이언트 장치에게 가장 잘 제공할 수 있는 지를 결정할 수 있다. 예를 들어, 시스템(400)에서 각각의 캐시는 CDN 서버(404)에 저장된 표를 동시에 업데이트할 수 있고, 클라이언트 장치로부터 컨텐트 요청 메시지를 수신하는 단계에 응답하여, CDN 서버(404)는 클라이언트 장치에게 복수의 매니페스트(시스템(400)에서 다양한 캐시들의 컨텐트를 각각 나타내는)를 동시에 전송할 수 있다.
예시적인 실시예로 본 개시를 설명하였지만, 다양한 변경예 및 수정예들이 당업자에게 제안될 수 있다. 본 개시는 첨부된 청구 범위 내에 속하는 이러한 변경예 및 수정예들을 포함하도록 의도된다.

Claims (15)

  1. 통신 네트워크에서 컨텐트를 전송하기 위한 동작 방법에 있어서,
    제공될 컨텐트를 요청하는 요청 메시지를 수신하는 과정과,
    다수의 캐시의 능력 및 상기 컨텐트을 지시하는 단계에 대응하는, 상기 캐시 각각의 컨텐트 및 능력을 표시하고 상기 각각의 캐시에 저장된 상기 컨텐트의 설명들을 나열하는 다수의 캐시 매니페스트를 저장하는 과정과,
    상기 다수의 캐시 매니페스트의 정보에 기반하여 , 상기 요청된 컨텐트를 제공하기로 결정하고, 상기 다수의 캐시 중에서 상기 요청된 컨텐트를 제공할 캐시를 선택하는 과정과,
    상기 결정에 응답하여, 상기 클라이언트 장치에게 상기 요청된 컨텐트를 송신하도록 지시하는 메시지를 상기 선택된 캐시에게 송신하는 과정과,
    대안적으로, 상기 복수의 캐시 매니페스트의 정보를 기반으로 하여, 상기 요청된 컨텐트를 제공하지 않기로 결정하고, 상위 레벨 장치에게 상기 요청 메시지를 송신하는 과정을 포함하는 방법.
  2. 통신 네트워크에서 사용하기 위한 장치로서, 상기 장치는
    제공될 컨텐트를 요청하는 요청 메시지를 수신하고;
    복수의 캐시의 컨텐트 및 능력을 표시하는 단계에 대응하는, 상기 캐시 각각의 컨텐트 및 능력을 표시하고 각각의 캐시에 저장된 상기 컨텐트의 설명들을 나열하는 복수의 캐시 매니페스트를 저장하고;
    상기 복수의 캐시 매니페스트의 정보를 기반으로 하여, 상기 요청된 컨텐트를 제공하기로 결정하고, 상기 복수의 캐시 매니페스트 중에서 상기 요청된 컨텐트를 제공할 캐시를 선택하고;
    상기 결정에 응답하여, 상기 요청 메시지를 생성한 클라이언트 장치에 상기 요청된 컨텐트를 전송하도록 상기 선택된 캐시에 지시하고;
    대안적으로, 상기 복수의 캐시 매니페스트의 정보를 기반으로 하여, 상기 요청된 컨텐트를 제공하지 않기로 결정하고, 상위 레벨 장치에 상기 요청 메시지를 전송하도록 구성된 처리 회로를 포함하는 장치.
  3. 제1 항 또는 제2 항에 있어서, 상기 캐시에 저장된 컨텐트의 상기 캐시 매니페스트 설명들은
    상기 캐시에 적어도 하나의 세그먼트가 저장되어 있는 자산을 식별하는 자산 식별자(ID)들의 목록;
    상기 자산 ID에 의해 식별된 상기 자산의 세그먼트를 식별하는, 각각의 자산 ID에 대한 세그먼트 ID들의 목록;
    각각의 세그먼트 ID에 대한 속도 왜곡 동작점(RDOp)들의 목록을 포함하고,
    각각의 RDOp는
    상기 캐시의 컨텐트 파일에 저장된 상기 세그먼트 컨텐트의 단편들에 대응하는 미디어 데이터 유닛(MDU) 인덱스 및
    경험의 품질(QoE) 매개변수를 포함하는 방법 또는 장치.
  4. 제1 항에 있어서, 상기 요청된 컨텐트를 제공하기로 결정하는 단계는 상기 요청 메시지에 포함된 세그먼트 식별자에 대해 상기 캐시 매니페스트의 세그먼트 식별자, 및 상기 요청 메시지에 포함된 자산 식별자에 대해 상기 캐시 매니페스트의 자산 식별자(ID) 중 하나를 매칭하는 단계를 포함하는 방법.
  5. 제2 항에 있어서, 상기 처리 회로는 상기 요청 메시지에 포함된 세그먼트 식별자에 대해 상기 복수의 캐시 매니페스트의 세그먼트 식별자, 및 상기 요청 메시지에 포함된 자산 식별자에 대해 상기 복수의 캐시 매니페스트의 자산 식별자(ID) 중 하나를 매칭하여 상기 요청된 컨텐트를 제공하기로 결정하도록 더 구성되는 장치.
  6. 제4 항 또는 제5 항에 있어서, 상기 요청 메시지에 포함된 상기 세그먼트 식별자는 상기 요청된 컨텐트의 지문 및 상기 요청된 컨텐트의 타임스탬프 중 하나를 포함하는 방법 또는 장치.
  7. 제1 항에 있어서, 상기 요청된 컨텐트를 제공하기로 결정하는 단계는 상기 캐시 매니페스트의 속도 왜곡 동작점(RDOp)의 서비스 품질(QoS) 매개변수가 상기 요청 메시지에 포함된 비트율과 같은 지 또는 초과하는 지를 결정하는 단계를 포함하는 방법.
  8. 제7 항에 있어서, 상기 RDOp를 선택하는 단계를 더 포함하고, 상기 RDOp는
    상기 요청된 컨텐트의 왜곡을 표시하는 경험의 품질(QoE) 매개변수들 및
    상기 캐시의 컨텐트 파일에 저장된 상기 요청된 컨텐트의 단편들에 대응하는 미디어 데이터 유닛(MDU) 인덱스를 더 포함하고,
    상기 요청된 컨텐트는 상기 단편들을 포함하는 방법.
  9. 제1 항에 있어서, 요청 메시지를 수신하는 단계는 상기 클라이언트 장치와 컨텐트 전송 네트워크(CDN) 서버 사이의 데이터 경로를 따르는 캐시에 의해 상기 요청 메시지를 인터셉트하는 단계를 포함하는 방법.
  10. 제2 항에 있어서, 상기 처리 회로는 상기 복수의 캐시 매니페스트의 속도 왜곡 동작점(RDOp)의 서비스 품질(QoS) 매개변수가 상기 요청 메시지에 포함된 비트율과 같은 지 또는 초과하는 지를 결정하여 상기 요청된 컨텐트를 제공하기로 결정하도록 더 구성되는 장치.
  11. 제10 항에 있어서, 상기 처리 회로는 상기 RDOp를 선택하도록 더 구성되고, 상기 RDOp는
    상기 요청된 컨텐트의 왜곡을 표시하는 경험의 품질(QoE) 매개변수들 및
    상기 캐시의 컨텐트 파일에 저장된 상기 요청된 컨텐트의 단편들에 대응하는 미디어 데이터 유닛(MDU) 인덱스를 더 포함하고,
    상기 요청된 컨텐트는 상기 단편들을 포함하는 장치.
  12. 제2 항에 있어서, 상기 처리 회로는 상기 클라이언트 장치와 컨텐트 전송 네트워크(CDN) 서버 사이의 데이터 경로로부터 상기 요청 메시지를 인터셉트하여 상기 요청 메시지를 수신하도록 더 구성되는 장치.
  13. 통신 네트워크에서 사용하기 위한 클라이언트 장치로서, 상기 클라이언트 장치는
    컨텐트를 저장하도록 구성된 재생 버퍼; 및
    상기 재생 버퍼의 컨텐트 및 능력을 표시하고 상기 재생 버퍼에 저장된, 상기 재생 버퍼에 적어도 하나의 세그먼트가 저장되어 있는 자산을 식별하는 자산 식별자(ID)들의 목록을 포함하는, 상기 컨텐트의 설명들을 나열하는 캐시 매니페스트를 생성하고,
    상기 통신 네트워크에서 컨텐트 검색 서비스 서버(CDSS)에, 상기 CDSS에 캐시 매니페스트를 제공하는 업데이트 메시지를 전송하기 시작하도록 구성된 처리 회로를 포함하는 클라이언트 장치.
  14. 제13 항에 있어서, 상기 재생 버퍼에 저장된 컨텐트의 캐시 매니페스트 설명들은
    상기 자산 ID에 의해 식별된 상기 자산의 세그먼트를 식별하는, 각각의 자산 ID에 대한 세그먼트 ID들의 목록; 및
    각각의 세그먼트 ID에 대한 속도 왜곡 동작점(RDOp)들의 목록 중 적어도 하나를 더 포함하고,
    각각의 RDOp는
    상기 캐시의 컨텐트 파일에 저장된 상기 세그먼트 컨텐트의 단편들에 대응하는 미디어 데이터 유닛(MDU) 인덱스 및
    경험의 품질(QoE) 매개변수를 포함하고,
    상기 업데이트 메시지는 상기 캐시 매니페스트가 유효할 때를 표시하는 유효 타임스탬프를 포함하는 클라이언트 장치.
  15. 제13 항 및 제14 항 중 하나의 장치를 작동시키는 방법.

KR1020167032165A 2014-06-30 2015-06-29 효율적인 피어 지원 스트리밍을 위한 캐시 매니페스트 KR20170021768A (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462019089P 2014-06-30 2014-06-30
US62/019,089 2014-06-30
US14/546,933 2014-11-18
US14/546,933 US10033824B2 (en) 2014-06-30 2014-11-18 Cache manifest for efficient peer assisted streaming
PCT/KR2015/006639 WO2016003136A1 (en) 2014-06-30 2015-06-29 Cache manifest for efficient peer assisted streaming

Publications (1)

Publication Number Publication Date
KR20170021768A true KR20170021768A (ko) 2017-02-28

Family

ID=54931883

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167032165A KR20170021768A (ko) 2014-06-30 2015-06-29 효율적인 피어 지원 스트리밍을 위한 캐시 매니페스트

Country Status (5)

Country Link
US (1) US10033824B2 (ko)
JP (1) JP6606516B2 (ko)
KR (1) KR20170021768A (ko)
CN (1) CN106664435B (ko)
WO (1) WO2016003136A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10298653B1 (en) * 2014-11-12 2019-05-21 F5 Networks, Inc. Methods for monitoring streaming video content quality of experience (QOE) and devices thereof
US9858195B2 (en) 2014-12-10 2018-01-02 International Business Machines Corporation Near-cache distribution of manifest among peer applications in in-memory data grid (IMDG) non structured query language (NO-SQL) environments
US20160226790A1 (en) * 2015-01-30 2016-08-04 Comcast Cable Communications, Llc Provisioning and managing resources
KR102494266B1 (ko) * 2016-06-02 2023-02-02 삼성전자주식회사 방송 시스템에서 방송 서비스 정보 제공 방법 및 장치
WO2017212931A1 (ja) * 2016-06-08 2017-12-14 ソニー株式会社 受信装置および受信方法、再生装置および再生方法、供給装置および供給方法、並びにプログラム
US10397286B2 (en) * 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
US10382517B2 (en) 2017-06-09 2019-08-13 At&T Intellectual Property I, L.P. Estimating network data encoding rate
CN109309643B (zh) * 2017-07-26 2021-03-30 中国电信股份有限公司 直播时移处理方法、系统及源站
US10757453B2 (en) 2017-09-13 2020-08-25 Amazon Technologies, Inc. Distributed multi-datacenter video packaging system
WO2021066445A1 (en) * 2019-10-01 2021-04-08 Samsung Electronics Co., Ltd. Method, apparatus and computer-readable recording medium for transmitting or receiving vpcc data
WO2023107647A1 (en) * 2021-12-10 2023-06-15 Topia Interactive, Inc. Client authoritative state distribution system

Family Cites Families (47)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6954456B2 (en) * 2001-12-14 2005-10-11 At & T Corp. Method for content-aware redirection and content renaming
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US7631081B2 (en) * 2004-02-27 2009-12-08 International Business Machines Corporation Method and apparatus for hierarchical selective personalization
US8667175B2 (en) * 2008-03-13 2014-03-04 Cisco Technology, Inc. Server selection for routing content to a client using application layer redirection
US8046432B2 (en) * 2009-04-17 2011-10-25 Microsoft Corporation Network caching for multiple contemporaneous requests
JPWO2011024949A1 (ja) * 2009-08-31 2013-01-31 日本電気株式会社 コンテンツ配信装置、コンテンツ配信方法、およびプログラム
US10003851B2 (en) * 2009-11-24 2018-06-19 Imagine Communications Corp. Managed multiplexing of video in an adaptive bit rate environment
KR101636108B1 (ko) * 2010-01-18 2016-07-04 텔레폰악티에볼라겟엘엠에릭슨(펍) 에이치티티피 미디어 스트림 분배를 위한 방법과 배열
GB2477513B (en) * 2010-02-03 2015-12-23 Orbital Multi Media Holdings Corp Redirection apparatus and method
WO2011139305A1 (en) * 2010-05-04 2011-11-10 Azuki Systems, Inc. Method and apparatus for carrier controlled dynamic rate adaptation and client playout rate reduction
KR101702562B1 (ko) * 2010-06-18 2017-02-03 삼성전자 주식회사 멀티미디어 스트림 파일의 저장 파일 포맷, 저장 방법 및 이를 이용한 클라이언트 장치
BR112013001376A8 (pt) * 2010-07-20 2017-10-17 Sharp Kk dispositivo de distribuição de conteúdo, dispositivo de reprodução de conteúdo, sistema de distribuição de conteúdo, método de controle de um dispositivo de distribuição de conteúdo, programa de controle, e meio de gravação
EP2410743A1 (en) * 2010-07-23 2012-01-25 Alcatel Lucent Method for transferring video chunks, server entity, client entity and intermediate network entity realizing such a method
US8849899B1 (en) * 2011-01-30 2014-09-30 Israel L'Heureux Accelerated delivery of media content via peer caching
US20120194534A1 (en) * 2011-02-02 2012-08-02 Alcatel-Lucent Usa Inc. System and Method for Managing Cache Storage in Adaptive Video Streaming System
EP2487609A1 (en) * 2011-02-07 2012-08-15 Alcatel Lucent A cache manager for segmented multimedia and corresponding method for cache management
CN103384994B (zh) * 2011-02-11 2016-07-06 交互数字专利控股公司 用于内容分配和接收的方法和装置
US8849950B2 (en) * 2011-04-07 2014-09-30 Qualcomm Incorporated Network streaming of video data using byte range requests
US8812621B2 (en) * 2011-05-03 2014-08-19 Cisco Technology, Inc. Reducing fetching load on cache servers in adaptive streaming
HUE042122T2 (hu) * 2011-06-08 2019-06-28 Koninklijke Kpn Nv Szegmens tartalom lokalizálása és visszakeresése
JP5720786B2 (ja) 2011-07-05 2015-05-20 日本電気株式会社 コンテンツ配信システムおよびコンテンツ配信方法
JP2013069073A (ja) * 2011-09-21 2013-04-18 Nec Corp 配信ネットワークとサーバ及び配信方法
WO2013066465A1 (en) * 2011-11-02 2013-05-10 Seven Networks, Inc. Strategically timed delivery of advertisements or electronic coupons to a mobile device in a mobile network
US8903955B2 (en) * 2011-12-02 2014-12-02 Cisco Technology, Inc. Systems and methods for intelligent video delivery and cache management
US9723047B2 (en) 2011-12-29 2017-08-01 Koninklijke Kpn N.V. Network-initiated content streaming control
US10225306B2 (en) 2011-12-29 2019-03-05 Koninklijke Kpn N.V. Controlled streaming of segmented content
US8909728B2 (en) * 2012-02-16 2014-12-09 Verizon Patent And Licensing Inc. Retrieving content from local cache
CN103297840A (zh) * 2012-03-01 2013-09-11 阿里巴巴集团控股有限公司 一种基于视频移动焦点的附加信息展现方法及系统
US20130275618A1 (en) * 2012-04-17 2013-10-17 Alcatel-Lucent Bell Labs France Method and apparatus for reducing content redundancy in content-centric networking
IN2015DN00630A (ko) 2012-06-28 2015-06-26 Azuki Systems Inc
BR112014004057A2 (pt) * 2012-07-02 2017-03-07 Sony Corp dispositivo e método de transmissão, e, aparelho de rede
US10616297B2 (en) * 2012-07-09 2020-04-07 Futurewei Technologies, Inc. Content-specific identification and timing behavior in dynamic adaptive streaming over hypertext transfer protocol
WO2014011848A2 (en) * 2012-07-12 2014-01-16 Huawei Technologies Co., Ltd. Signaling and processing content with variable bitrates for adaptive streaming
KR101964927B1 (ko) * 2012-07-17 2019-04-03 삼성전자 주식회사 캐싱 프록시 방법 및 장치
US9607132B2 (en) 2012-10-22 2017-03-28 Koninklijke Kpn N.V. Token-based validation method for segmented content delivery
WO2014158264A1 (en) * 2013-03-29 2014-10-02 Intel IP Corporation Quality-aware rate adaptation techniques for dash streaming
GB2513617A (en) * 2013-05-01 2014-11-05 Openwave Mobility Inc Caching of content
US10313478B2 (en) * 2013-05-16 2019-06-04 Telefonaktiebolaget Lm Ericsson (Publ) Redirection in a content delivery network
US10834161B2 (en) * 2013-09-17 2020-11-10 Telefonaktiebolaget Lm Ericsson (Publ) Dash representations adaptations in network
US9253231B2 (en) * 2013-12-19 2016-02-02 Verizon Patent And Licensing Inc. Retrieving and caching adaptive bitrate stream segments based on network congestion
AU2014377337B2 (en) * 2014-01-07 2019-08-01 Interdigital Vc Holdings, Inc. Method for providing a content part of a multimedia content to a client terminal, corresponding cache
US20160330500A1 (en) * 2014-01-10 2016-11-10 Thomson Licensing Method for obtaining network information by a client terminal configured for receiving a multimedia content divided into segments
US20150207846A1 (en) * 2014-01-17 2015-07-23 Koninklijke Kpn N.V. Routing Proxy For Adaptive Streaming
US10015251B2 (en) * 2014-01-31 2018-07-03 Nbcuniversal Media, Llc Fingerprint-defined segment-based content delivery
US9788078B2 (en) * 2014-03-25 2017-10-10 Samsung Electronics Co., Ltd. Enhanced distortion signaling for MMT assets and ISOBMFF with improved MMT QoS descriptor having multiple QoE operating points
US10523723B2 (en) * 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
EP2963894A1 (en) * 2014-07-04 2016-01-06 Thomson Licensing Method for operating a cache arranged along a transmission path between client terminals and at least one server, and corresponding cache.

Also Published As

Publication number Publication date
WO2016003136A1 (en) 2016-01-07
US20150381755A1 (en) 2015-12-31
US10033824B2 (en) 2018-07-24
CN106664435A (zh) 2017-05-10
JP6606516B2 (ja) 2019-11-13
JP2017525213A (ja) 2017-08-31
CN106664435B (zh) 2019-10-18

Similar Documents

Publication Publication Date Title
JP6606516B2 (ja) 効率的なピア支援ストリーミングのためのキャッシュマニフェスト
US11601372B2 (en) Network flow control
JP6698755B2 (ja) セグメント化コンテンツのストリーミング
US10771527B2 (en) Caching and streaming of digital media content subsets
EP2897340B1 (en) Routing proxy for adaptive streaming
US9838724B2 (en) Media distribution network for live streaming
US9615113B2 (en) Video content delivery over wireless access networks with quality of service (QOS) guarantees
US20160182668A1 (en) Acceleration nodes for improving web traffic quality of service
CN108668146B (zh) 一种调整流媒体码率的方法及设备
US10511533B2 (en) Systems and methods for adjusting a congestion window value of a content delivery network
WO2017125017A1 (zh) 缓存内容的调整方法、装置及系统
US20180205802A1 (en) Cache Aware Streaming
US20240048792A1 (en) System and method for storing multimedia files using an archive file format
KR20160134802A (ko) 클라이언트 단말기들과 적어도 하나의 서버 사이의 전송 경로를 따라 배열된 캐시를 동작시키기 위한 방법, 및 대응하는 캐시
CN108632680B (zh) 一种直播内容的调度方法、调度服务器及终端
CN110036607B (zh) 用于在内容分发网络中动态汇集资源的方法和请求路由器
KR20180058826A (ko) 도메인 네임 시스템들을 사용하는 멀티캐스트/브로드캐스트 리소스들의 주소 결정을 위한 방법 및 장치

Legal Events

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