KR20170103542A - 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치 - Google Patents

적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치 Download PDF

Info

Publication number
KR20170103542A
KR20170103542A KR1020160026589A KR20160026589A KR20170103542A KR 20170103542 A KR20170103542 A KR 20170103542A KR 1020160026589 A KR1020160026589 A KR 1020160026589A KR 20160026589 A KR20160026589 A KR 20160026589A KR 20170103542 A KR20170103542 A KR 20170103542A
Authority
KR
South Korea
Prior art keywords
data
terminal
available bandwidth
sessions
streaming
Prior art date
Application number
KR1020160026589A
Other languages
English (en)
Other versions
KR102399082B1 (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 삼성전자주식회사
Priority to KR1020160026589A priority Critical patent/KR102399082B1/ko
Priority to US16/082,183 priority patent/US11082474B2/en
Priority to EP17760350.3A priority patent/EP3416349B1/en
Priority to PCT/KR2017/002344 priority patent/WO2017150946A1/ko
Publication of KR20170103542A publication Critical patent/KR20170103542A/ko
Application granted granted Critical
Publication of KR102399082B1 publication Critical patent/KR102399082B1/ko

Links

Images

Classifications

    • 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
    • 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
    • H04L65/4007
    • 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/40Support for services or applications
    • H04L65/401Support for services or applications wherein the services involve a main real-time session and one or more additional parallel real-time or time sensitive sessions, e.g. white board sharing or spawning of a subconference
    • 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/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/2814
    • H04L67/2847
    • 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/5681Pre-fetching or pre-delivering data based on network characteristics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Landscapes

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

Abstract

본 개시의 실시예에 따른 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 방법은, 스트리밍 어플리케이션에서 발생되는 트래픽에 대하여, 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 측정하는 과정과, 상기 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 기반으로 멀티-세션의 수를 결정하는 과정과, 상기 스트리밍 어플리케이션의 캐쉬 히트 비율 (cache hit ratio)을 기반으로 데이터를 미리 저장할 버퍼 사이즈를 결정하는 과정과, 상기 멀티-세션의 수 및 상기 버퍼 사이즈를 기반으로 데이터를 요청하는 적어도 하나의 요청 메시지를 생성하여 서버로 송신하는 과정을 포함한다.

Description

적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치{METHOD AND APPARATUS FOR DATA BUFFERING IN ADAPTIVE STREAMING SERVICE}
본 발명은 적응적 스트리밍 서비스에 관한 것으로, 특히 적응적 스트리밍 서비스에서 멀티-세션 (session)을 기반으로 데이터 버퍼링을 수행하는 방법 및 장치에 관한 것이다.
비디오-온-디맨드 (video-on-demand : VOD) 서비스 또는 오디오-온-디맨드 (audio-on-demand : AOD) 서비스에 이용될 수 있는 스트리밍 (streaming) 서비스는 서비스를 제공하는 단말에서 서버로부터 비디오나 오디오 등의 파일을 모두 다운로드 받은 후 재생하는 것이 아니라, 다운로드 받으면서 실시간 (real-time)으로 재생해 주는 기법을 이용한다. 이에 따라, 단말은 파일이 모두 수신되기 전이라도 단말의 브라우저 또는 플러그인 (plug-in)을 통해 데이터의 표현을 시작하게 된다. 따라서, 사용자 입장에서는 재생을 시작하는 시점이 앞당겨지고 하드디스크 드라이브의 용량도 영향을 거의 받지 않으며, 사업자 입장에서는 요금의 부과가 용이하고 컨텐츠의 불법적인 복제를 최소화할 수 있다는 장점이 있다.
이러한 스트리밍 서비스는 불균형적인 디지털 가입자 망 (asymmetric digital subscriber line : ADSL), 초고속 디지털 가입자 망 (very high-data rate digital subscriber line : VDSL), 전력선 통신 (power line communication : PLC), 광통신 및 2.5세대 내지 3세대 이동통신 등의 빠른 전송 속도를 제공하는 유무선 광대역 통신이 도입되면서 활성화 되었다. 왜냐하면, 스트리밍 서비스가 가능해지기 위해서는 데이터를 전송하는 서버 측과 데이터를 수신하고 있는 단말 측은 끊임없이 대량의 멀티미디어 데이터를 전송 및 수신하고, 그 데이터를 비디오나 오디오로서 재생하는 어플리케이션 (application)에 공급할 수 있어야 하기 때문이다.
그러나, 비디오 또는 오디오를 포함한 멀티미디어 데이터는 점차 고해상도, 고음질화되어 가고 있기 때문에 데이터 량 또한 점차 증가하는 추세에 있을 뿐 아니라, 인터넷 통신 선로의 특성상 접속 사용자의 수가 집중되는 사용 시간대 등의 사용환경에 따라서 전송속도가 가변적인 경우가 많아지고 있다. 즉, 데이터의 불규칙한 전송속도에 의하여 비디오 및 오디오의 재생이 끊기는 현상이 빈번히 발생하게 된다. 예를 들면, 초당 16 킬로 비트 (Kb) 정도의 데이터가 유입되어야만 재생되는 컨텐츠가 있다고 가정을 했을 때, 통신선로가 제공 가능한 전송속도가 15kbps 내지 18kbps 정도라면 재생 중에 끊김 현상이 발생하게 된다. 이런 끊김 현상을 줄이기 위한 방법이 버퍼링 (buffering) 기술이다. 예컨대, 스트리밍 서비스를 개시하는 시점에서 10초간의 재생 데이터를 버퍼 (buffer)에 미리 저장해놓고 재생을 시작한다면 재생되는 데이터의 양보다 유입되는 데이터의 양이 특정 시점에서는 적어진다고 하더라도 10초간의 버퍼링된 데이터가 있기 때문에 끊김 현상은 현저히 줄어들게 될 것이다.
상기한 바와 같이, 종래 유선망과 달리 무선망의 경우 망 상태가 불안정하므로, 단말에서 스트리밍 서비스를 제공하는 경우 일정 데이터를 미리 저장하는 버퍼링 기술이 매우 중요하다. 따라서, 무선망의 망 상태에 따라 적응적으로 스트리밍 서비스를 제공하기 위해서는, 효과적으로 버퍼링 기술을 지원하여 데이터를 수신하는 방안이 요구된다.
본 개시의 일 실시예는 적응적 스트리밍 서비스에서 데이터 버퍼링을 위한 버퍼링 방식 및 크기를 결정하는 방법 및 장치를 제공한다.
또한 본 개시의 일 실시예는 적응적 스트리밍 서비스에서 버퍼링 방식 및 크기와 네트워크 대역폭을 기반으로 데이터를 수신하기 위한 멀티-세션을 결정하는 방법 및 장치를 제공한다.
또한 본 개시의 일 실시예는 적응적 스트리밍 서비스에서 멀티-세션을 기반으로 데이터 버퍼링을 수행하는 방법 및 장치를 제공한다.
본 개시의 일 실시예에서 제안하는 방법은; 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 방법에 있어서, 스트리밍 어플리케이션에서 발생되는 트래픽에 대하여, 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 측정하는 과정과, 상기 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 기반으로 멀티-세션의 수를 결정하는 과정과, 상기 스트리밍 어플리케이션의 캐쉬 히트 비율 (cache hit ratio)을 기반으로 데이터를 미리 저장할 버퍼 사이즈를 결정하는 과정과, 상기 멀티-세션의 수 및 상기 버퍼 사이즈를 기반으로 데이터를 요청하는 적어도 하나의 요청 메시지를 생성하여 서버로 송신하는 과정을 포함한다.
본 개시의 일 실시예에서 제안하는 장치는, 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 장치에 있어서, 스트리밍 어플리케이션에서 발생되는 트래픽에 대하여, 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 측정하고, 상기 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 기반으로 멀티-세션의 수를 결정하고, 상기 스트리밍 어플리케이션의 캐쉬 히트 비율 (cache hit ratio)을 기반으로 데이터를 미리 저장할 버퍼 사이즈를 결정하여, 상기 멀티-세션의 수 및 상기 버퍼 사이즈를 기반으로 데이터를 요청하는 적어도 하나의 요청 메시지를 생성하는 제어부와, 상기 생성된 적어도 하나의 요청 메시지를 서버로 송신하는 송수신부를 포함한다.
본 개시의 다른 측면들과, 이득들 및 핵심적인 특징들은 부가 도면들과 함께 처리되고, 본 개시의 바람직한 실시예들을 개시하는, 하기의 구체적인 설명으로부터 해당 기술 분야의 당업자에게 자명할 것이다.
하기의 본 개시의 구체적인 설명 부분을 처리하기 전에, 이 특허 문서를 통해 사용되는 특정 단어들 및 구문들에 대한 정의들을 설정하는 것이 효과적일 수 있다: 상기 용어들 "포함하다 (include)" 및 "포함하다 (comprise)"와 그 파생어들은 한정없는 포함을 의미하며; 상기 용어 "혹은 (or)"은 포괄적이고, "및/또는"을 의미하고; 상기 구문들 "~와 연관되는 (associated with)" 및 "~와 연관되는 (associated therewith)"과 그 파생어들은 포함하고 (include), ~내에 포함되고 (be included within), ~와 서로 연결되고 (interconnect with), 포함하고 (contain), ~내에 포함되고 (be contained within), ~에 연결하거나 혹은 ~와 연결하고 (connect to or with), ~에 연결하거나 혹은 ~와 연결하고 (couple to or with), ~와 통신 가능하고 (be communicable with), ~와 협조하고 (cooperate with), 인터리빙하고 (interleave), 병치하고 (juxtapose), ~로 가장 근접하고 (be proximate to), ~로 ~할 가능성이 크거나 혹은 ~와 ~할 가능성이 크고 (be bound to or with), 가지고 (have), 소유하고 (have a property of) 등과 같은 내용을 의미하고; 상기 용어 "제어기"는 적어도 하나의 동작을 제어하는 임의의 디바이스, 시스템, 혹은 그 부분을 의미하고, 상기와 같은 디바이스는 하드웨어, 펌웨어 혹은 소프트웨어, 혹은 상기 하드웨어, 펌웨어 혹은 소프트웨어 중 적어도 2개의 몇몇 조합에서 구현될 수 있다. 어떤 특정 제어기와 연관되는 기능성이라도 집중화되거나 혹은 분산될 수 있으며, 국부적이거나 원격적일 수도 있다는 것에 주의해야만 할 것이다. 특정 단어들 및 구문들에 대한 정의들은 이 특허 문서에 걸쳐 제공되고, 해당 기술 분야의 당업자는 많은 경우, 대부분의 경우가 아니라고 해도, 상기와 같은 정의들이 종래 뿐만 아니라 상기와 같이 정의된 단어들 및 구문들의 미래의 사용들에도 적용된다는 것을 이해해야만 할 것이다.
도 1은 본 개시의 실시예에 따른 적응적 스트리밍 서비스를 제공하는 스트리밍 시스템의 일 예를 간략히 나타낸 도면,
도 2는 본 개시의 실시예에 따른 단말에서 적응적 스트리밍 서비스를 제공하기 위하여 데이터 버퍼링을 수행하는 방법을 나타낸 도면,
도 3은 본 개시의 실시예에 따른 단말에서 스트리밍 어플리케이션이 초기 수행될 때 트래픽 모니터링을 수행하는 방법의 일 예를 나타낸 도면,
도 4는 본 개시의 실시예에 따른 단말에서 스트리밍 어플리케이션이 동작 중일 때 트래픽 모니터링을 수행하는 방법의 일 예를 나타낸 도면,
도 5는 본 개시의 실시예에 따라 데이터 버퍼링을 수행하는 단말의 내부 구성을 나타낸 도면,
도 6은 본 개시의 실시예에 따른 가용 대역폭의 활용에 대한 일 예를 나타낸 도면,
도 7은 본 개시의 실시예에 따라 데이터 버퍼링을 수행한 결과를 나타낸 도면,
상기 도면들을 통해, 유사 참조 번호들은 동일한 혹은 유사한 엘리먼트들과, 특징들 및 구조들을 도시하기 위해 사용된다는 것에 유의해야만 한다.
첨부되는 도면들을 참조하는 하기의 상세한 설명은 청구항들 및 청구항들의 균등들로 정의되는 본 개시의 다양한 실시예들을 포괄적으로 이해하는데 있어 도움을 줄 것이다. 하기의 상세한 설명은 그 이해를 위해 다양한 특정 구체 사항들을 포함하지만, 이는 단순히 예로서만 간주될 것이다. 따라서, 해당 기술 분야의 당업자는 여기에서 설명되는 다양한 실시예들의 다양한 변경들 및 수정들이 본 개시의 범위 및 사상으로부터 벗어남이 없이 이루어질 수 있다는 것을 인식할 것이다. 또한, 공지의 기능들 및 구성들에 대한 설명은 명료성 및 간결성을 위해 생략될 수 있다.
하기의 상세한 설명 및 청구항들에서 사용되는 용어들 및 단어들은 문헌적 의미로 한정되는 것이 아니라, 단순히 발명자에 의한 본 개시의 명료하고 일관적인 이해를 가능하게 하도록 하기 위해 사용될 뿐이다. 따라서, 해당 기술 분야의 당업자들에게는 본 개시의 다양한 실시예들에 대한 하기의 상세한 설명은 단지 예시 목적만을 위해 제공되는 것이며, 첨부되는 청구항들 및 상기 청구항들의 균등들에 의해 정의되는 본 개시를 한정하기 위해 제공되는 것은 아니라는 것이 명백해야만 할 것이다.
또한, 본 명세서에서 명백하게 다른 내용을 지시하지 않는 "한"과, "상기"와 같은 단수 표현들은 복수 표현들을 포함한다는 것이 이해될 수 있을 것이다. 따라서, 일 예로, "컴포넌트 표면 (component surface)"은 하나 혹은 그 이상의 컴포넌트 표현들을 포함한다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의해 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
또한, 별도로 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 이해되어야만 한다.
본 개시의 실시예는 적응적 스트리밍 서비스에서 효과적으로 데이터 버퍼링을 제공할 수 있는 방법 및 장치에 관한 것이다. 특히, 본 개시의 실시예는 상용 스트리밍 어플리케이션 (streaming application)을 수정하지 않고 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 기반으로 멀티-세션의 수를 결정하고, 스트리밍 어플리케이션에서 요청되는 데이터의 양을 기반으로 버퍼 사이즈를 결정한다. 그리고 상기 멀티-세션의 수 및 버퍼 사이즈를 기반으로 데이터를 요청 및 수신하는 방법에 관한 것이다. 따라서, 본 개시의 실시예는 멀티-세션의 수를 이용하여 데이터를 최대한 빠르게 수신할 수 있으므로 사용자의 체감 품질 (quality of experience, QoE)가 향상되며, 상용 스트리밍 어플리케이션과 서버 간의 기본 구조를 변경 없이 단말에서 적용될 수 있다. 여기서, 상기 사용자의 QoE는 초기 버퍼링 시간 (해당 VOD 서비스를 사용자가 선택 후 재생이 시작될 때까지의 시간)의 단축, 해상도 증가 (네트워크에서 빠르게 데이터를 수신하여 스트리밍 플레이어 (Streaming Player)에 전달, 높은 비디오 퀄리티 (Video Quality) 유지), 버퍼링 방지 (미리 호출 (pre-fetch)을 통한 적절한 사전 데이터 확보) 등이 있다.
이를 위해, 이하에서는 본 개시의 실시예에 따른 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 방법 및 장치에 대하여 상세히 설명하기로 한다.
도 1은 본 개시의 실시예에 따른 적응적 스트리밍 서비스를 제공하는 스트리밍 시스템의 일 예를 간략히 보이고 있다.
도 1을 참조하면, 스트리밍 시스템은 스트리밍 어플리케이션을 구동하는 단말 (110)과 상기 단말 (110)에 데이터를 전송하는 스트리밍 서버 (130)를 포함한다.
상기 단말 (110)은 스마트폰과 같이 무선으로 통신이 가능한 단말로, 스트리밍 어플리케이션을 구동할 수 있다. 여기서, 상기 스트리밍 어플리케이션은 VOD 서비스 또는 AOD 서비스와 같은 스트리밍 서비스를 사용자에게 제공하기 위한 어플리케이션으로, 일 예로 넷플릭스, 훌루, 아마존 재생기 (Netflix, Hulu, Amazon Player)가 있다. 그리고 상기 단말 (110)은 상기 스트리밍 어플리케이션에서 요청된 트래픽을 내부 프록시 (proxy) 프로그램으로 리다이렉트 (redirect)하고, 프록시 프로그램을 통해 데이터 버퍼링을 위한 파라미터들을 결정할 수 있다. 특히, 단말 (110)은 상기 스트리밍 어플리케이션의 트래픽 요청을 확인하여, 네트워크 상태를 측정하고 상기 측정된 네트워크 상태로부터 멀티-세션의 수 및 최적의 pre-fetch 사이즈를 결정할 수 있다. 여기서, 본 개시의 실시예에 따른 단말 (110)에서 데이터 버퍼링을 위하여, 파라미터들을 결정하는 방법은 이하 도 2 내지 도 4를 기반으로 상세히 설명하기로 한다.
그리고 상기 단말 (110)은 데이터 버퍼링을 위해 결정된 파라미터를 기반으로 스트리밍 서버 (130)에 데이터를 요청한다. 이때, 상기 단말 (110)은 하이퍼 텍스트 전달 프로토콜 (hyper text transfer protocol : HTTP)을 이용하여 스트리밍 서버 (130)에 데이터를 요청할 수 있다. 이에 상기 단말 (110)은 스트리밍 서버 (130)로부터 상기 데이터 요청에 대응하는 응답으로 HTTP를 이용하여 데이터를 수신할 수 있다. 여기서, 단말 (110)과 스트리밍 서버 (130) 간에 이용되는 HTTP는 프로토콜의 일 예이며, 본 개시의 실시예에서는 어플리케이션의 종류 및 송수신되는 데이터의 종류에 따라 다른 프로토콜이 적용될 수 있음은 물론이다.
상기에서는 본 개시의 실시예에 따른 적응적 스트리밍 서비스를 제공하는 스트리밍 시스템의 일 예를 간략히 설명하였으며, 이하에서는 도 2 내지 도 4를 참조하여 단말에서 적응적 스트리밍 서비스를 제공하기 위해 데이터 버퍼링을 수행하는 방법에 대하여 설명하기로 한다.
도 2는 본 개시의 실시예에 따른 단말에서 적응적 스트리밍 서비스를 제공하기 위하여 데이터 버퍼링을 수행하는 방법을 보이고 있다.
도 2를 참조하면, 단말 (110)은 사용자로부터 특정 스트리밍 어플리케이션의 구동에 관한 이벤트를 입력받으면, 특정 스트리밍 어플리케이션을 구동한다 (201). 여기서, 상기 단말 (110)에서 특정 스트리밍 어플리케이션을 구동하면, 상기 특정 스트리밍 어플리케이션으로부터 상기 특정 스트리밍 어플리케이션에 대한 아이디를 할당받게 된다. 이에 상기 단말 (110)은 내부적으로 상기 할당된 아이디 기반으로 상기 할당된 아이디가 생성하는 트래픽을 proxy 프로그램으로 리다이렉트 (redirect)한다 (203). 이러한 리다이렉트를 위해 데몬 (daemon)이 존재하며, 상기 데몬은 특정 스트리밍 어플리케이션이 발생하는 트래픽을 전달할 수 있도록 "iptables" 명령어를 설정한다.
그리고 상기 단말 (110)은 내부적으로 proxy 프로그램에서 트래픽을 수신하면, 수신된 트래픽이 스트리밍 서비스에 관한 트래픽을 요청하는 것인지를 확인한다 (205). 즉, 상기 단말 (110)은 수신된 트래픽이 오디오 서비스 또는 비디오 서비스에 관한 트래픽을 요청하는 것인지 확인한다. 만약, 상기 단말 (110)은 상기 수신된 트래픽이 스트리밍 서비스에 관한 트래픽을 요청하는 경우, 트래픽 모니터링을 수행한다 (230). 반면, 상기 단말 (110)은 상기 수신된 트래픽이 스트리밍 서비스에 관한 트래픽이 아닌 다른 트래픽을 요청하는 경우, 이후의 단계들을 바이패스 (bypass)한다.
상기 단말 (110)에서 수신된 트래픽이 스트리밍 서비스에 관한 트래픽을 요청하는 경우 수행되는 트래픽 모니터링은 스트리밍 어플리케이션이 초기 수행될 때와 스트리밍 어플리케이션이 동작 중일 때에 따라 다른 방법으로 실시될 수 있다. 이에 단말 (110)에서 스트리밍 어플리케이션이 초기 수행될 때 트래픽 모니터링을 수행하는 방법은 도 3을 참조하여 설명하고, 스트리밍 어플리케이션이 동작 중일 때 트래픽 모니터링을 수행하는 방법은 도 4를 참조하여 설명하기로 한다.
도 3은 본 개시의 실시예에 따른 단말에서 스트리밍 어플리케이션이 초기 수행될 때 트래픽 모니터링을 수행하는 방법의 일 예를 보이고 있다.
도 3을 참조하면, 단말 (110)은 미리 정해진 특정 시간 (a)이 경과할 때 까지 스트리밍 어플리케이션 자체에서 트리픽이 발생되는지의 여부를 모니터링한다 (301).
만약 상기 특정 시간 (a)이 경과하기 전에 스트리밍 어플리케이션에서 트래픽이 발생되는 경우, 요청된 트래픽에 대한 모니터링 과정을 종료하고 하나의 세션을 이용하여 스트리밍 어플리케이션에서 발생된 트래픽을 처리한다. 이와 같이, 단말 (110)에서 스트리밍 어플리케이션에서 발생된 트래픽을 처리하는 이유는, 상기 초기 측정이 스트리밍 어플리케이션 자체의 트래픽을 방해하여 사용자의 어플리케이션 사용성을 저해하지 않도록 하기 위함이다.
반면, 상기 특정 시간 (a) 내에 스트리밍 어플리케이션에서 트래픽이 발생되지 않은 경우, 측정할 측정 자원 위치 지정자 (uniform resource locator : URL)가 존재하는지를 확인한다 (303). 상기 측정 URL은 이전 어플리케이션의 정상 동작 과정 중에 저장된 값으로, 만약 어플리케이션이 이전에 실행된 적이 없다면, 측정 URL이 존재하지 않기 때문에 단말 (110)은 모니터링 과정을 종료하고 하나의 세션을 이용하여 데이터 다운로드를 수행한다. 그리고 상기 단말 (110)은 상기 측정 URL이 존재하는 경우, 상기 측정 URL에 대한 하나의 세션에 대한 처리량 (per-session-throughput : PST)을 측정한다 (305).
상기 단말 (110)은 상기 PST의 측정이 성공하였는지의 여부를 확인한다 (307). 만약, 상기 단말 (110)이 PST의 측정을 실패한 경우 (예, 측정 URL이 더 이상 유효하지 않은 경우), 가용 대역폭 (available bandwidth)에 대한 측정도 실패할 것이기 때문에 가용 대역폭에 대한 측정은 수행하지 않고 종료한다. 반면, 상기 단말의 PST의 측정을 성공한 경우, 가용 대역폭에 대한 측정을 수행한다 (309). 이때, 상기 단말 (110)은 다수의 세션을 기반으로 컨텐츠를 다운로드하여 네트워크의 가용 대역폭을 측정한다. 상기 단말 (110)에서 몇 개의 세션을 활용하여 컨텐츠를 다운로드할 것인지는 PST의 측정 결과 및 접속되어 있는 네트워크의 종류 등에 따라 다르게 설정될 수 있다. 그리고 다수의 세션을 이용한 컨텐츠의 다운로드 속도는 0에서부터 증가하며, 특정 시점에 이르면 가용 대역폭에 도달하여 더 이상 증가하지 않게 된다. 따라서, 가용 대역폭은 컨텐츠의 다운로드 속도가 특정 값에 수렴하여 더 이상 크게 변하지 않는 상태의 다운로드 속도로 정할 수 있다. 그러나, 이러한 방식은 다운로드 속도가 특정 값에 수렴하는데 걸리는 시간이 너무 길 수 있고, 구현이 복잡해 지기 때문에, 다운로드 시작 후 특정 시간이 지난 시점의 최고 다운로드 속도를 가용 대역폭으로 정하는 방식도 가능하다. 상기 가용 대역폭 측정이 완료되면 단말 (110)은 컨텐츠 다운로드를 종료하거나 정해진 컨텐츠의 다운로드가 완료될 때까지 다운로드를 유지할 수 있다.
도 4는 본 개시의 실시예에 따른 단말에서 스트리밍 어플리케이션이 동작 중일 때 트래픽 모니터링을 수행하는 방법의 일 예를 보이고 있다.
도 4를 참조하면, 단말 (110)은 어플리케이션에서 발생된 트래픽 요청을 탐지한다 (401). 그리고 단말 (110)은 상기 트래픽 요청이 탐지된 시간이 바로 직전에 PST의 측정 또는 가용 대역폭의 측정이 수행된 시간으로부터 미리 정해진 일정 시간 (b)이 경과하였는지의 여부를 판단한다 (403). 만약, 상기 트래픽 요청이 탐지된 시간이 바로 직전에 PST의 측정 또는 가용 대역폭의 측정이 수행된 시간으로부터 미리 정해진 일정 시간 (b)이 경과하지 않은 경우, 상기 단말 (110)은 바로 직전에 수행된 PST의 측정 결과 또는 가용 대역폭의 측정 결과를 확인한다.
반면, 상기 트래픽 요청이 탐지된 시간이 바로 직전에 수행된 PST의 측정 또는 가용 대역폭의 측정이 수행된 시간으로부터 미리 정해진 일정 시간 (b)이 경과한 경우, 상기 단말 (110)은 PST의 측정 또는 가용 대역폭의 측정을 수행한다. 상세하게, 상기 트래픽 요청이 탐지된 시간이 바로 직전에 PST의 측정 또는 가용 대역폭의 측정이 수행된 시간으로부터 미리 정해진 일정 시간 (b)이 경과한 경우, 상기 단말 (110)은 상기 PST의 측정 및 가용 대역폭의 측정 중 어떠한 측정을 수행할지의 여부를 참 (True) 또는 거짓 (False) 값만을 가질 수 있는 isBWEstimation 변수로부터 결정한다. 일 예로, 상기 단말 (110)은 상기 isBWEstimation 변수가 참 값을 가지는지의 여부를 판단하여 (407), 상기 isBWEstimation 변수가 참 값을 가지는 경우 가용 대역폭을 측정하고 (409), 상기 isBWEstimation 변수가 거짓 값을 가지는 경우 PST를 측정할 수 있다 (411). 그리고 단말 (110)은 상기 가용 대역폭의 측정 또는 PST의 측정이 완료되면, 상기 isBWEstimation 변수의 값을 반대의 값으로 설정한다 (413). 이로부터 상기 isBWEstimation 변수는 PST의 측정 또는 가용 대역폭의 측정이 실행될 때마다 반대의 값으로 바뀌므로, PST의 측정과 가용 대역폭의 측정이 번갈아 가면서 실행하도록 하는 역할을 한다. 도 4를 기반으로 설명한 트래픽 모니터링 과정은 특정 스트리밍 어플리케이션이 종료될 때까지 반복 수행된다.
상기에서는 도 3 및 도 4를 참조하여 도 2의 데이터 버퍼링을 수행하는 과정 중 트래픽 모니터링을 수행하는 과정 (207)에 대하여 설명하였으며, 이하에서는 다시 도 2를 참조하여, 단말 (110)이 트래픽 모니터링을 수행하는 과정 (207) 이후의 과정들에 대하여 설명하기로 한다.
다시 도 2를 참조하면, 상기 단말 (110)에서 혼잡 문제를 방지하기 위해서 적절한 멀티-세션의 수를 유지하는 것이 매우 중요하다. 이를 위해, 단말 (110)은 아래 <수학식 1>과 같이 도 3 또는 도 4에서 측정된 가용 대역폭을 측정된 PST로 나눈 값으로 멀티-세션의 수를 설정할 수 있다 (209).
<수학식 1>
#Session = 가용 대역폭/PST
여기서, PST는 하나의 세션이 획득할 수 있는 최대 속도이므로, 가용 대역폭을 PST로 나누면 가용 대역폭에 도달하지 않는 최대의 멀티-세션의 수를 계산할 수 있다.
이후, 단말 (110)은 스트리밍 서버 (130)로부터 수신하고자 하는 데이터에 대한 pre-fetch 사이즈를 결정한다 (211). 일반적으로 데이터 버퍼링 기술에서 단말 (110)이 요청하는 데이터 요청에 대해 앞 부분의 얼마나 많은 데이터를 수신 및 저장하는지의 여부에 따라서 사용자의 QoE가 결정된다. 일 예로, 단말 (110)에서 너무 적은 양의 데이터를 수신하는 경우 스트리밍 어플리케이션에서 버퍼링이 발생할 수 있으며, 너무 많은 양의 데이터를 수신하는 경우 전체 네트워크를 비효율적으로 사용하므로 네트워크 및 스토리지 (storage) 등의 자원 낭비를 발생시킬 수 있다.
이에 따라, 상기 단말 (110)은 스트리밍 어플리케이션에 의한 캐쉬 히트 비율 (cache hit ratio)를 기반으로 pre-fetch 사이즈를 결정한다. 이때, 상기 단말 (110)은 스트리밍 어플리케이션이 최초 실행되는 경우, 고정된 크기로 Pre-fetch를 수행한다. 그리고 단말 (110)은 어플리케이션이 최초 실행되었을 때의 고정된 크기로 데이터를 수신한 이후에는 스트리밍 어플리케이션의 요청에 따라 캐쉬 히트 비율 (cache hit ratio)을 기반으로 pre-fetch 사이즈를 결정한다. 상기 cache hit ratio에서 캐쉬 히트 (cache hit)는 단말 (110)이 스트리밍 어플리케이션의 요청에 따라 pre-fetch한 데이터를 전송한 경우를 의미하고, 캐쉬 히트 실패 (cache hit failure)는 단말 (110)이 스트리밍 어플리케이션이 데이터를 요청하지 않아 pre-fetch한 데이터를 폐기한 경우를 의미한다. 한편, 적응적 스트리밍 방식에서는 네트워크의 상황에 따라 해상도가 변하므로, pre-fetch한 데이터가 폐기될 수도 있다.
단말 (110)은 이러한 cache hit ratio의 특성을 기반으로 pre-fetch 사이즈를 결정한다. 즉, cache hit ratio가 증가함은 단말 (110)에서 pre-fetch한 데이터를 스트리밍 어플리케이션에서 지속적으로 가져가고 있다는 것을 의미한다. 이에 단말 (110)은 cache hit ratio가 증가하는 경우, 예측한 해상도가 스트리밍 어플리케이션에서 원하는 해상도와 일치하여 정상적으로 스트리밍 어플리케이션이 동작하고 있다고 판단하여 Pre-fetch size를 증가시킨다. 그리고 단말 (110)은 cache hit ratio가 감소하는 경우, 예측한 해상도가 스트리밍 어플리케이션에서 원하는 해상도와 일치하지 않아 폐기되는 데이터가 증가하고 있다고 판단하여 Pre-fetch size를 감소시킨다. 따라서, 상기 단말 (110)은 Pre-fetch size를 감소시킴에 따라서, cache hit ratio를 증가시켜 폐기되는 데이터의 양을 줄일 수 있으므로, 현재 네트워크를 효율적으로 사용할 수 있다.
다음으로, 단말 (110)은 상기 결정된 멀티-세션의 수와 pre-fetch 사이즈를 기반으로 스트리밍 서버 (130)로 데이터를 요청하기 위한 요청 메시지를 생성한다 (213). 이때, 상기 단말 (110)은 상기 결정된 pre-fetch 사이즈를 상기 결정된 멀티-세션의 수로 나누어 하나의 세션당 사이즈를 결정하고, 동시에 스트리밍 서버 (130)로 전송할 요청 메시지들을 생성할 수 있다. 그리고 상기 단말 (110)은 상기 생성된 요청 메시지들을 HTTP를 통해 스트리밍 서버 (130)로 전송한다 (215). 상기 HTTP는 기존에 사용하는 안드로이드 라이브러리 (android library)를 이용하여 생성할 수 있다.
일 예로, pre-fetch Size가 1MB이고, 멀티-세션의 수가 5인 경우, 요청 메시지는 다음 <표 1>과 같이 구성될 수 있다. 즉, 단말 (110)은 <표 1>과 같은 범위 (range)를 갖는 5개의 HTTP 요청 메시지를 생성하고, 5개의 스레드 (thread)를 이용하여 동시에 요청 메시지를 스트리밍 서버 (130)로 전송할 수 있다.
- Req1. Range : 0~209,714 bytes
- Req2. Range : 209.715 ~ 419,430 bytes
- Req3. Range : 419,431 ~ 629,146 bytes
- Req4. Range : 629,147 ~ 838,862 bytes
- Req5. Range : 838,862 ~ 1,048,576 bytes
이로부터 단말 (110)은 상기 요청 메시지에 대한 응답 메시지로 동시에 상기 결정된 멀티-세션의 수 만큼 분할된 세션들을 통해 동일한 크기의 데이터를 수신할 수 있다 (217). 따라서 본 개시의 실시예에 따른 단말 (110)은 동시에 N개의 세션이 동일한 크기의 데이터를 현재 네트워크를 최대한 활용하여 수신하므로, 네트워크를 효율적으로 활용할 수 있게 된다. 상기의 예는 HTTP를 사용하는 경우의 일 예로써 다른 통신 방식에도 동일하게 적용될 수 있음에 유의해야 할 것이다.
이후, 단말(110)은 데이터를 수신한 후, 스트리밍 어플리케이션의 트래픽 요청에 대한 응답을 스트리밍 어플리케이션으로 전달한다(219). 따라서 스트리밍 어플리케이션은 단말(110)에 버퍼링된 데이터를 이용하여 사용자에게 효율적으로 스트리밍 데이터를 제공할 수 있다.
상기에서는 도 2 내지 도 4를 참조하여 본 개시의 실시예에 따른 단말에서 적응적 스트리밍 서비스를 제공하기 위하여 데이터 버퍼링을 수행하는 방법에 대하여 설명하였으며, 이하에서는 도 5를 참조하여 상기 데이터 버퍼링을 수행하는 단말 (110)의 내부 구성에 대하여 설명하기로 한다.
도 5는 본 개시의 실시예에 따라 데이터 버퍼링을 수행하는 단말의 내부 구성을 보이고 있다.
도 5를 참조하면, 단말 (110)은 제어부 (501), 송신부 (503), 수신부 (505), 저장부 (507) 및 입출력부 (509)를 포함한다.
상기 제어부 (501)는 단말 (110)의 전반적인 동작을 제어하며, 특히 본 개시의 실시예에 따른 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 동작에 관련된 동작을 제어한다. 본 개시의 실시예에 따른 데이터 버퍼링을 수행하는 동작에 관련된 동작은 상기 도 2 내지 도 4에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다.
상기 송신부 (503)는 상기 제어부 (501)의 제어에 따라 스트리밍 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 송신부 (503)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 2 내지 도 4에서 설명한 바와 동일하므로 여기서 그 상세한 설명을 생략하기로 한다.
또한 상기 수신부 (505)는 제어부 (501)의 제어에 따라 스트리밍 시스템에 포함되는 다른 엔터티들로부터 각종 신호 및 각종 메시지들을 수신한다. 여기서, 상기 수신부 (505)가 수신하는 각종 신호 및 각종 메시지들은 상기 도 2 내지 도 4에서 설명한 바와 동일하므로 여기서는 그 상세한 설명을 생략하기로 한다.
상기 저장부 (507)는 상기 제어기 (501)의 제어에 따라 상기 단말 (110)이 수행하는 본 개시의 실시예에 따른 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 동작에 관련된 동작과 관련된 프로그램과 각종 데이터 등을 저장한다. 또한, 상기 저장부 (507)는 상기 수신부 (505)가 상기 다른 엔터티들로부터 수신한 각종 신호 및 각종 메시지들을 저장한다.
상기 입출력부 (509)는 상기 제어기 (501)의 제어에 따라 상기 단말 (110)이 수행하는 본 개시의 실시예에 따른 데이터 버퍼링을 수행하는 동작에 관련된 각종 신호 및 각종 메시지들을 입력 및 출력한다
한편, 도 5에는 상기 단말 (110)이 상기 제어부 (501), 송신부 (503), 수신부 (505), 저장부 (507) 및 입출력부 (509)와 같이 별도의 유닛들로 구현된 경우가 도시되어 있으나, 상기 단말 (110)은 상기 제어부 (501), 송신부 (503), 수신부 (505), 저장부 (507) 및 입출력부 (509) 중 적어도 두 개가 통합된 형태로 구현 가능함은 물론이다. 또한, 상기 단말 (110)은 1개의 프로세서로 구현될 수도 있음은 물론이다.
상기에서 설명한 바와 같이, 본 개시의 실시예에 따른 단말에서 데이터 버퍼링을 수행하는 방법을 적용하는 경우, 가용 네트워크 자원을 효율적으로 사용할 수 있다.
상세하게, 종래에는 미리 정해진 간격으로 탐지 (probe) 패킷을 단말에서 서버로 전송하며, 이때 탐지 패킷의 특성이 변화하는 시점을 기준으로 가용 대역폭을 추정한다. 더욱이 종래에서 측정된 가용 대역폭은 가용 대역폭 측정에 활용된 단말과 서버 사이의 가용 대역폭으로, 실제 단말에 설치된 어플리케이션이 직접적으로 통신할 어플리케이션 서버와 클라이언트 사이의 가용 대역폭이 아니다. 이에 비하여, 본 개시의 실시예에서는 스트리밍 어플리케이션 고유의 트래픽을 기반으로 PST와 가용 대역폭을 측정할 수 있다. 이로부터, PST와 가용 대역폭을 이용하여 멀티-세션의 수 (가용 대역폭/PST)를 계산할 수 있으므로, 도 6과 같이 네트워크 자원을 최대한 사용할 수 있게 된다.
도 6은 본 개시의 실시예에 따른 가용 대역폭의 활용에 대한 일 예를 보이고 있다.
도 6을 참조하면, 10Mbps 환경에서 시험결과 네트워크 환경이 좋을 때, 즉 지연 (delay), 지터 (jitter), 패킷 손실 (packet loss)가 낮을 때는 PST가 가용 대역폭을 충분히 활용할 수 있지만, 네트워크 환경이 좋지 않을 때는 PST가 가용 대역폭을 충분히 활용하지 못한다. 이러한 환경에서는 멀티-세션의 수를 2 ~ 3 정도로 증가시키면 가용 대역폭을 충분히 활용할 수 있음을 확인할 수 있다.
그리고 본 개시의 실시예에 따른 단말에서 데이터 버퍼링을 수행하는 방법을 적용하는 경우, 스트리밍 어플리케이션과 스트리밍 서버의 구성 및 동작을 변경을 하지 않아도, 네트워크를 통해 효율적으로 데이터를 수신할 수 있다. 즉, 종래 방식의 경우 데이터를 수신하는 성능을 높이기 위해서는 스트리밍 어플리케이션 및/또는 스트리밍 서버의 구성 및 동작에 대한 변경이 필요하였다. 그리고 상용 시스템의 경우 스트리밍 어플리케이션 및 스트리밍 서버의 구성 및 동작에 대한 변경이 불가능하므로 종래 데이터 버퍼링을 수행하는 방법이 적용될 수 없었다. 그러나, 본 개시의 실시예는 스트리밍 어플리케이션과 스트리밍 서버의 구성 및 동작을 변경하지 않고 단말 자체에서 데이터 버퍼링을 수행하는 방법을 제안하므로, 상용 시스템에서 이용되는 스트리밍 어플리케이션 및 스트리밍 서버의 구성 및 동작을 그대로 활용할 수 있다는 장점이 있다.
또한 본 개시의 실시예에 따른 단말에서 데이터 버퍼링을 수행하는 방법을 적용하는 경우, 효과적으로 pre-fetch size를 결정할 수 있다.
상세하게, 종래에는 고정된 pre-fetch size를 이용하여 데이터를 미리 수신하였다. 이러한 종래 방식은 고정 비트 레이트 (constant bit rate)의 경우, 즉 네트워크 상황에 관계없이 고정된 크기만큼 데이터를 수신하는 방식에서는 효과적인 방식이다. 그러나 적응적 스트리밍 서비스의 경우 네트워크 상태에 따라 수신해야 하는 데이터의 크기가 변화하므로 고정된 크기의 데이터를 수신하는 방식은 효율적이지 않다. 이에 비하여, 본 개시의 실시예에서는 HTTP 적응적 스트리밍 (HTTP adaptive streaming : HAS)을 기반으로 미리 필요한 데이터의 양을 계산하여 Pre-fetch한다. Pre-fetch size는 사용자의 QoE 및 효율적인 자원의 사용 측면에서 중요한 요소이며, 본 개시의 실시예에서는 초기에 정해지는 파라미터를 기반으로 최적의 pre-fetch size를 결정하므로 사용자의 QoE 와 자원의 효율적인 사용에 대한 두 가지 측면을 모두 만족시킬 수 있다.
또한 본 개시의 실시예에 따른 단말에서 데이터 버퍼링을 수행하는 방법을 적용하는 경우, 데이터 스트리밍에 대한 성능을 개선시킬 수 있다. 즉, 본 개시의 실시예에서는 멀티-세션을 기반으로 pre-fetch를 수행할 수 있다. 따라서 본 개시의 실시예는 종래 하나의 세션을 이용하여 데이터를 수신하는 방식에 비하여, 효율적으로 네트워크를 사용하여 미리 원하는 데이터를 수신할 수 있다. 일 예로, 본 개시의 실시예를 상용 재생기 및 서버에 적용하면, 도 7과 같이 네트워크의 상태가 측정됨을 확인할 수 있다.
한편 본 발명의 상세한 설명에서는 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허 청구의 범위뿐만 아니라 이 특허 청구의 범위와 균등한 것들에 의해 정해져야 한다.

Claims (10)

  1. 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 방법에 있어서,
    스트리밍 어플리케이션에서 발생되는 트래픽에 대하여, 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 측정하는 과정과,
    상기 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 기반으로 멀티-세션의 수를 결정하는 과정과,
    상기 스트리밍 어플리케이션의 캐쉬 히트 비율 (cache hit ratio)을 기반으로 데이터를 미리 저장할 버퍼 사이즈를 결정하는 과정과,
    상기 멀티-세션의 수 및 상기 버퍼 사이즈를 기반으로 데이터를 요청하는 적어도 하나의 요청 메시지를 생성하여 서버로 송신하는 과정을 포함하는 데이터 버퍼링 방법.
  2. 제 1 항에 있어서, 상기 가용 대역폭은,
    미리 정해진 개수의 세션을 기반으로 측정된 것임을 특징으로 하는 데이터 버퍼링 방법.
  3. 제 2 항에 있어서, 상기 멀티-세션의 수는,
    상기 가용 대역폭을 상기 하나의 세션에서 처리되는 처리량으로 분할한 값에 의해 결정됨을 특징으로 하는 데이터 버퍼링 방법.
  4. 제 1 항에 있어서, 상기 버퍼 사이즈는,
    상기 스트리밍 어플리케이션의 캐쉬 히트 비율이 증가되면, 미리 정해진 버퍼 사이즈보다 크도록 결정되고,
    상기 스트리밍 어플리케이션의 캐쉬 히트 비율이 감소되면, 미리 정해진 버퍼 사이즈보다 작도록 결정됨을 특징으로 하는 데이터 버퍼링 방법.
  5. 제 1 항에 있어서, 상기 요청 메시지의 수는,
    상기 멀티-세션의 수에 비례함을 특징으로 하는 데이터 버퍼링 방법.
  6. 적응적 스트리밍 서비스에서 데이터 버퍼링을 수행하는 장치에 있어서,
    스트리밍 어플리케이션에서 발생되는 트래픽에 대하여, 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 측정하고, 상기 하나의 세션에서 처리되는 처리량 및 가용 대역폭을 기반으로 멀티-세션의 수를 결정하고, 상기 스트리밍 어플리케이션의 캐쉬 히트 비율 (cache hit ratio)을 기반으로 데이터를 미리 저장할 버퍼 사이즈를 결정하여, 상기 멀티-세션의 수 및 상기 버퍼 사이즈를 기반으로 데이터를 요청하는 적어도 하나의 요청 메시지를 생성하는 제어부와,
    상기 생성된 적어도 하나의 요청 메시지를 서버로 송신하는 송수신부를 포함하는 데이터 버퍼링 장치.
  7. 제 6 항에 있어서, 상기 가용 대역폭은,
    미리 정해진 개수의 세션을 기반으로 측정된 것임을 특징으로 하는 데이터 버퍼링 장치.
  8. 제 7 항에 있어서, 상기 멀티-세션의 수는,
    상기 가용 대역폭을 상기 하나의 세션에서 처리되는 처리량으로 분할한 값에 의해 결정됨을 특징으로 하는 데이터 버퍼링 장치.
  9. 제 6 항에 있어서, 상기 버퍼 사이즈는,
    상기 스트리밍 어플리케이션의 캐쉬 히트 비율이 증가되면, 미리 정해진 버퍼 사이즈보다 크도록 결정되고,
    상기 스트리밍 어플리케이션의 캐쉬 히트 비율이 감소되면, 미리 정해진 버퍼 사이즈보다 작도록 결정됨을 특징으로 하는 데이터 버퍼링 장치.
  10. 제 6 항에 있어서, 상기 요청 메시지의 수는,
    상기 멀티-세션의 수에 비례함을 특징으로 하는 데이터 버퍼링 장치.
KR1020160026589A 2016-03-04 2016-03-04 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치 KR102399082B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160026589A KR102399082B1 (ko) 2016-03-04 2016-03-04 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치
US16/082,183 US11082474B2 (en) 2016-03-04 2017-03-03 Data buffering method and apparatus in adaptive streaming service
EP17760350.3A EP3416349B1 (en) 2016-03-04 2017-03-03 Data buffering method and apparatus in adaptive streaming service
PCT/KR2017/002344 WO2017150946A1 (ko) 2016-03-04 2017-03-03 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160026589A KR102399082B1 (ko) 2016-03-04 2016-03-04 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20170103542A true KR20170103542A (ko) 2017-09-13
KR102399082B1 KR102399082B1 (ko) 2022-05-17

Family

ID=59744298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160026589A KR102399082B1 (ko) 2016-03-04 2016-03-04 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치

Country Status (4)

Country Link
US (1) US11082474B2 (ko)
EP (1) EP3416349B1 (ko)
KR (1) KR102399082B1 (ko)
WO (1) WO2017150946A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048186A (ko) 2017-10-30 2019-05-09 광운대학교 산학협력단 적응적 스트리밍 서비스를 위한 다중 경로 기반 분할 전송 시스템 및 스트리밍 방법

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11520703B2 (en) * 2019-01-31 2022-12-06 EMC IP Holding Company LLC Adaptive look-ahead configuration for prefetching data in input/output operations
CN112804251B (zh) * 2021-02-01 2022-04-15 哈尔滨工业大学 一种基于userId的Android应用流量过滤方法与系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140297726A1 (en) * 2007-02-14 2014-10-02 Alcatel-Lucent Usa, Inc. Content rate control for streaming media servers
KR101524472B1 (ko) * 2014-10-30 2015-06-02 연세대학교 산학협력단 네트워크에서 다중 경로 설정 방법 및 장치
US20150199138A1 (en) * 2014-01-14 2015-07-16 Georgia Tech Research Corporation Multi-tiered storage systems and methods for adaptive content streaming

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6560674B1 (en) * 1998-10-14 2003-05-06 Hitachi, Ltd. Data cache system
US7054911B1 (en) * 2001-06-12 2006-05-30 Network Appliance, Inc. Streaming media bitrate switching methods and apparatus
EP1450514A1 (en) * 2003-02-18 2004-08-25 Matsushita Electric Industrial Co., Ltd. Server-based rate control in a multimedia streaming environment
US7146467B2 (en) * 2003-04-14 2006-12-05 Hewlett-Packard Development Company, L.P. Method of adaptive read cache pre-fetching to increase host read throughput
US20070067480A1 (en) * 2005-09-19 2007-03-22 Sharp Laboratories Of America, Inc. Adaptive media playout by server media processing for robust streaming
US7962146B2 (en) * 2005-12-02 2011-06-14 Elefonaktiebolaget L M Ericsson (Publ) Method and apparatus for allocating bandwidth in a wireless communication system
US8028081B2 (en) 2008-05-23 2011-09-27 Porto Technology, Llc System and method for adaptive segment prefetching of streaming media
KR101038645B1 (ko) 2009-03-26 2011-06-02 (주)필링크 스트리밍 시스템의 언더플로우/오버플로우 방지 방법 및 그시스템
KR102067990B1 (ko) 2012-10-30 2020-01-20 에스케이플래닛 주식회사 무선 데이터 네트워크의 스트리밍 서비스 장치 및 제어 방법
KR20150045317A (ko) 2013-10-18 2015-04-28 (주)스피치이노베이션컨설팅그룹 데이터 스트리밍 방법 및 이를 수행하는 전자 기기
US20150113389A1 (en) 2013-10-18 2015-04-23 Seungil Kim Apparatus and method for loading web page
US20150271072A1 (en) 2014-03-24 2015-09-24 Cisco Technology, Inc. Method and apparatus for rate controlled content streaming from cache

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140297726A1 (en) * 2007-02-14 2014-10-02 Alcatel-Lucent Usa, Inc. Content rate control for streaming media servers
US20150199138A1 (en) * 2014-01-14 2015-07-16 Georgia Tech Research Corporation Multi-tiered storage systems and methods for adaptive content streaming
KR101524472B1 (ko) * 2014-10-30 2015-06-02 연세대학교 산학협력단 네트워크에서 다중 경로 설정 방법 및 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190048186A (ko) 2017-10-30 2019-05-09 광운대학교 산학협력단 적응적 스트리밍 서비스를 위한 다중 경로 기반 분할 전송 시스템 및 스트리밍 방법

Also Published As

Publication number Publication date
US20200092346A1 (en) 2020-03-19
WO2017150946A1 (ko) 2017-09-08
EP3416349A4 (en) 2018-12-26
EP3416349B1 (en) 2020-06-17
EP3416349A1 (en) 2018-12-19
US11082474B2 (en) 2021-08-03
KR102399082B1 (ko) 2022-05-17

Similar Documents

Publication Publication Date Title
US11924263B2 (en) Methods and devices for efficient adaptive bitrate streaming
JP4273165B2 (ja) コンテンツのストリーミングに使用するための改善された起動方法および装置
EP2781070B1 (en) Media streaming in mobile networks with improved efficiency
JP6178523B2 (ja) 要求マネージャおよび接続マネージャの機能を実装するトランスポートアクセラレータ
KR101582371B1 (ko) 잉여 네트워크 용량을 사용한 점진적 다운로드 시스템 및 방법
US7640358B2 (en) Methods and systems for HTTP streaming using an intelligent HTTP client
EP2953319B1 (en) Method, system and various components of such a system for selecting a chunk identifier
WO2012171507A1 (zh) 向客户端传输数据文件的方法和装置
US20150271231A1 (en) Transport accelerator implementing enhanced signaling
EP2640083A2 (en) Multimedia data processing apparatus and method of terminal
KR102012528B1 (ko) 수신 비트율 및 연관된 수신기의 동적 적응 방법
WO2015066231A1 (en) Methods and systems for optimal delivery of internet video over wireless networks
KR102399082B1 (ko) 적응적 스트리밍 서비스에서 데이터 버퍼링 방법 및 장치
US20110185018A1 (en) Content delivery system, content delivery method and computer program
JPWO2017135181A1 (ja) クライアント、サーバ、受信方法及び送信方法
US9131251B2 (en) Use of a receive-window size advertised by a client to a content server to change a video stream bitrate streamed by the content server
US20160308924A1 (en) Method, apparatus, and system for delivering network video
TW202032948A (zh) 資料中繼裝置、方法、發送系統及程式
CN115604248A (zh) 文件传输方法及装置

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right