KR20190049072A - 적응형 스트리밍 서비스 제공 장치 및 그 제공 방법 - Google Patents
적응형 스트리밍 서비스 제공 장치 및 그 제공 방법 Download PDFInfo
- Publication number
- KR20190049072A KR20190049072A KR1020170144517A KR20170144517A KR20190049072A KR 20190049072 A KR20190049072 A KR 20190049072A KR 1020170144517 A KR1020170144517 A KR 1020170144517A KR 20170144517 A KR20170144517 A KR 20170144517A KR 20190049072 A KR20190049072 A KR 20190049072A
- Authority
- KR
- South Korea
- Prior art keywords
- data chunk
- content
- offset value
- offset
- value corresponding
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/70—Information retrieval; Database structures therefor; File system structures therefor of video data
- G06F16/74—Browsing; Visualisation therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/44—Browsing; Visualisation therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 통신망을 통해 컨텐츠 스트리밍 서비스를 제공하는 경우에 있어서, 재생 지점 변경에 따라 발생되는 스트리밍 성능 저하를 감소시키고 탐색 응답 속도를 개선할 수 있는 적응형 스트리밍 서비스 제공 장치 및 이의 제공 방법에 관한 것이다. 본 발명의 일 실시예에 따른 전송 노드 및 컨텐츠 저장소와 연동하는 적응형 스트리밍 서비스 제공 장치는, 상기 전송 노드로부터 데이터 청크 요청을 수신하는 제1 통신부; 상기 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하는지 확인하는 탐색부; 상기 확인 결과, 상기 오프셋 테이블이 존재하면, 상기 오프셋 테이블로부터 상기 요청된 데이터 청크에 대응하는 오프셋 값을 추출하는 추출부; 및 상기 확인 결과에 기반하여 상기 컨텐츠 저장소에 접속하여 상기 데이터 청크를 수신하고, 상기 수신된 데이터 청크를 상기 전송 노드로 전송하는 제2 통신부를 포함하고, 상기 컨텐츠 저장소는 컨텐츠 별로 n(n>1)개의 순차적인 데이터 청크(Data Chunk)를 유지하고, 상기 추출된 오프셋 값을 기준으로 상기 요청된 데이터 청크를 탐색하며, 상기 오프셋 값은 상기 데이터 청크의 시작 주소일 수 있다.
Description
본 발명은 통신망을 통해 컨텐츠 스트리밍 서비스를 제공하는 경우에 있어서, 재생 지점 변경에 따라 발생되는 스트리밍 성능 저하를 감소시키고 탐색 응답 속도를 개선할 수 있는 적응형 스트리밍 서비스 제공 장치 및 이의 제공 방법에 관한 것이다.
네트워크 기술이 발달하고 스마트폰, 태블릿 PC와 같은 모바일 기기의 보급으로 인터넷을 통해서 멀티미디어 스트리밍(streaming) 서비스를 이용하는 사용자가 증가하고 있다. 스트리밍(streaming) 기술은 대용량의 비디오, 오디오 등과 같은 컨텐츠를 실시간으로 송신/수신하여 네트워크와 CPU 자원을 최적으로 사용하는 기술을 의미한다. 스트리밍 기술은 인터넷의 성장과 함께 더욱 더 중요해지고 있는데, 그 이유는 대부분의 사용자가 대용량 멀티 미디어 파일들을 즉시 다운로드할 만큼 빠른 접속회선을 가지고 있지 못하기 때문이다. 이에 따라 멀티미디어 스트리밍의 서비스 품질(QoS; Quality of Service)과 사용자 체감 품질(QoE; Quality of Experience)에 대한 사용자 관심이 증가하고 있다. 여기서, 멀티미디어 스트리밍의 QoS는 패킷 손실 보다 지연에 민감한 특성을 가진다.
일반적으로 컨텐츠 전체를 수신 측에서 모두 다운로드 받은 후 컨텐츠 서비스를 제공받는 방법은 사용자에게 긴 대기시간을 요구하지만, 스트리밍 기술을 이용하는 경우 컨텐츠 전체를 모두 다운로드 받기 전이라도 클라이언트 브라우저 또는 플러그인을 통해 현재의 재생 지점에 대한 데이터만을 다운로드 하여 컨텐츠 서비스를 실시간으로 제공할 수 있게 된다. 이와 같이, 스트리밍 서비스는 사용자가 컨텐츠를 선택하는 즉시 컨텐츠 서비스를 받을 수 있는 장점을 가진다.
한편, 컨텐츠 스트리밍 서비스 제공 방법의 단점으로서, 비디오 컨텐츠 스트리밍 서비스의 제공 시 사용자로부터 재생 지점의 이동 요청 내지 재생 속도의 변경 요청과 같은 VCR 동작 요청이 발생하는 경우, 이동될 재생 지점의 스트리밍 데이터가 일정량 수신되어야 하므로 비디오 컨텐츠를 처음부터 재생하게 될 때 발생하는 Startup-Delay와 같은 Seeking Delay 내지 Seeking Latency가 발생하는 문제점-즉, 컨텐츠 스트리밍에서 VCR 기능을 지원함에 의해 스트리밍 성능이 저하되는 문제점-이 있다.
이에 본 발명은 통신망을 통해 컨텐츠 스트리밍 서비스를 제공하는 경우에 있어서, 재생 지점 변경에 따라 발생되는 스트리밍 성능 저하를 감소시키고 탐색 응답 속도를 개선할 수 있는 적응형 스트리밍 서비스 제공 장치 및 그 제공 방법을 제공하는데 그 목적이 있다.
본 발명에서 이루고자 하는 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급하지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
상기와 같은 과제를 해결하기 위해 본 발명의 일 실시예에 전송 노드 및 컨텐츠 저장소와 연동하는 적응형 스트리밍 서비스 제공 장치는, 상기 전송 노드로부터 데이터 청크 요청을 수신하는 제1 통신부; 상기 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하는지 확인하는 탐색부; 상기 확인 결과, 상기 오프셋 테이블이 존재하면, 상기 오프셋 테이블로부터 상기 요청된 데이터 청크에 대응하는 오프셋 값을 추출하는 추출부; 및 상기 확인 결과에 기반하여 상기 컨텐츠 저장소에 접속하여 상기 데이터 청크를 수신하고, 상기 수신된 데이터 청크를 상기 전송 노드로 전송하는 제2 통신부를 포함하고, 상기 컨텐츠 저장소는 스트리밍 컨텐츠 별로 n(n>1)개의 순차적인 데이터 청크(Data Chunk)를 유지하고, 상기 추출된 오프셋 값을 기준으로 상기 요청된 데이터 청크를 탐색하며, 상기 오프셋 값은 상기 데이터 청크의 시작 주소일 수 있다.
또한, 상기와 같은 과제를 해결하기 위해 본 발명의 일 실시예에 따른 통신망을 통해 종단 단말에 스트리밍 컨텐츠를 전송하는 전송 노드 및 컨텐츠 저장소와 연동하는 장치의 적응형 스트리밍 서비스 제공 방법은, 상기 전송 노드로부터 데이터 청크(Data Chunk) 요청을 수신하는 단계; 상기 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하는지 확인하는 단계; 상기 확인 결과, 상기 오프셋 테이블이 존재하면, 상기 오프셋 테이블로부터 상기 요청된 데이터 청크에 대응하는 오프셋 값을 추출하는 단계; 상기 확인 결과에 기반하여 상기 컨텐츠 저장소에 접속하여 상기 데이터 청크를 수신하는 단계; 및 상기 수신된 데이터 청크를 상기 전송 노드로 전송하는 단계를 포함하고, 상기 컨텐츠 저장소는, 스트리밍 컨텐츠 별로 n(n>1)개의 순차적인 데이터 청크(Data Chunk)를 유지하고, 상기 추출된 오프셋 값을 기준으로 상기 요청된 데이터를 탐색할 수 있다.
본 발명의 적어도 일 실시예에 의하면, 다음과 같은 효과가 있다.
통신망을 통해 컨텐츠 스트리밍 서비스를 제공하는 경우에 있어서, 컨텐츠의 재생 지점이 변경되는 경우에 발생할 수 있는 스트리밍 성능 저하를 감소시키고, 탐색 응답 속도를 개선할 수 있다.
본 발명에서 얻은 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른, 적응형 스트리밍 서비스 제공 장치를 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른, 중계 노드의 개략적인 구성을 도시한 블록도이다.
도 3은 본 발명의 중계 노드로 인하여 컨텐츠 저장소가 수행하는 데이터 청크의 탐색 동작 및 그에 따른 응답 속도 증가에 관한 일례를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른, 적응형 스트리밍 서비스 제공 방법을 설명하기 위한 순서도이다.
도 2는 본 발명의 일 실시예에 따른, 중계 노드의 개략적인 구성을 도시한 블록도이다.
도 3은 본 발명의 중계 노드로 인하여 컨텐츠 저장소가 수행하는 데이터 청크의 탐색 동작 및 그에 따른 응답 속도 증가에 관한 일례를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른, 적응형 스트리밍 서비스 제공 방법을 설명하기 위한 순서도이다.
이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예를 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 이하의 설명에서 사용되는 구성요소에 대한 접미사 "모듈" 및 "부"는 명세서 작성의 용이함만이 고려되어 부여되거나 혼용되는 것으로서, 그 자체로 서로 구별되는 의미 또는 역할을 갖는 것은 아니다.
또한, 본 명세서에 개시된 실시 예를 설명함에 있어서 관련된 공지기술에 대한 구체적인 설명이 본 명세서에 개시된 실시 예의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 실시 예를 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 본 명세서에 개시된 기술적 사상이 제한되지 않으며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
본 발명의 일 실시예에서는 통신망을 통해 컨텐츠 스트리밍 서비스를 제공하는 경우에 있어서, 재생 지점이 변경되는 경우에 발생할 수 있는 응답 속도 저하를 개선할 수 있도록 전송 노드와 컨텐츠 저장소 사이에 스트리밍 대상 컨텐츠 별로 분할된 데이터 청크(Data Chunk)의 오프셋(offset) 테이블이 저장된 중계 노드를 둘 것을 제안한다.
이하, 첨부된 도면을 참조하여 본 실시예에 따른 적응형 스트리밍 서비스 제공 방법 방법 및 이를 위한 장치를 보다 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른, 적응형 스트리밍 서비스 제공 장치(100)를 설명하기 위한 도면이다.
도 1을 참조하면, 본 발명에 따른 적응형 스트리밍 서비스 제공 장치(100)는 전송 노드(120), 중계 노드(130) 및 컨텐츠 저장소(140)를 포함하여 구성될 수 있다.
적응형 스트리밍 서비스(DASH; Dynamic Adaptive Streaming over HTTP)는 all-IP 환경에서 실시간 멀티미디어 서비스를 지원하는 시스템 표준으로 정의할 수 있고, HTTP(HyperText Transfer Protocol)를 기반으로 하는 client-driven control로 동작한다.
종단 단말(110)은 스트리밍 대상 컨텐츠의 재생 지점을 변경하고자 하는 경우, 변경된 재생 지점에 존재하는 데이터 청크(Data Chunk)를 전송 노드(120)의 분산된 호스트(host; 122-1, 122-2, 122-3) 중 어느 하나에 요청하게 된다.
전송 노드(120)는 스트리밍 대상 컨텐츠를 컨텐츠 저장소(140)로부터 종단 단말(110)로 효율적으로 전달하기 위하여 분산된 호스트(122-1, 122-2, 122-3)에 데이터를 저장하여 전달할 수 있다.
여기서, 전송 노드(120)는 통신망(미도시)을 통해 종단 단말(110)에 스트리밍 대상 컨텐츠를 전송할 수 있다. 통신망(미도시)은 다양한 형태로 구현될 수 있다. 예컨대, WLAN(Wireless LAN), 와이파이(Wi-Fi), 와이브로(Wibro), 와이맥스(Wimax), HSDPA(High Speed Downlink Packet Access) 등의 무선 통신 방식 또는 이더넷(Ethernet), xDSL(ADSL, VDSL), HFC(Hybrid Fiber Coaxial Cable), FTTC(Fiber to The Curb), FTTH(Fiber To The Home) 등의 유선 통신 방식을 이용할 수 있다. 또한, 상술한 통신 방식 이외에도 기타 널리 공지되었거나 향후 개발될 모든 형태의 통신 방식을 포함할 수 있다.
한편, 전송 노드(120)는 CDN(Contents Delivery Network) 캐시 서버(Cache Server)를 포함할 수 있다. CDN 캐시 서버는 종단 단말(110)과 가까운 곳에 위치하고, 컨텐츠 저장소(140)의 컨텐츠를 캐싱하여 사용자에게 전달해 주기 때문에 전송속도가 현저히 향상될 수 있다. 캐시(Cache)는 보조 기억 장치인 하드디스크나 SSD(Solid State Drive)에서 파일을 읽어 전송하지 않고 메모리에서 직접 입출력을 처리하는 기술을 말한다.
컨텐츠 저장소(140)는 스트리밍 대상 컨텐츠 별로 분할된 n(n>1)개의 데이터 청크(Data Chunk)를 순차적으로 저장 및 유지하는 오리진 서버(Origin Server)를 포함할 수 있다. 오리진 서버(Origin Server)로 인하여, 종단 단말(110)은 모든 스트리밍 대상 컨텐츠를 데이터 청크(Data Chunk) 단위로 요청하고 내려 받을 수 있다.
여기서, 데이터 청크(Data Chunk)란 스트리밍 대상 컨텐츠를 미리 여러 개의 조각으로 잘라 놓은 세그먼트(segment)를 의미하며, 종단 단말(110)이 컨텐츠를 재생하기 위하여 필요한 최소한의 단위를 말한다. 적응형 스트리밍 서비스 제공 장치(100)는 HTTP를 기반으로 데이터 청크(Data Chunk) 단위의 영상 재생이 가능하다.
중계 노드(130)는 요청 받은 데이터 청크(Data Chunk)를 전송 노드(120)로부터 컨텐츠 저장소(140)로 전달하기 위하여 컨텐츠 별로 분산된 호스트(host; 132-1, 132-2, 132-3)를 포함할 수 있다.
본 발명의 일 실시예에 따른 중계 노드(130)는, 전송 노드(120) 및 컨텐츠 저장소(140)와 연동하여 중계(relay) 역할을 할 수 있다. 전송 노드(120)로부터 요청 받은 데이터 청크(Data Chunk)에 대한 시작 주소를 탐색하고, 컨텐츠 저장소(140)에 접속하여 데이터 청크(Data Chunk)를 수신할 수 있다.
이러한 본 실시예에 따른 중계 노드의 구성은 도 2를 참조하여 보다 상세히 설명하기로 한다.
도 2는 본 발명에 따른 중계 노드의 개략적인 구성을 도시한 블록도이다.
도2를 참조하면, 본 발명의 일 실시예에 따른 중계 노드(200)는 제1 통신부(210), 탐색부(220), 데이터 베이스(230), 추출부(240) 및 제2 통신부(250)를 포함할 수 있다.
제1 통신부(210)는 변경된 재생 지점에서 컨텐츠를 재생하기 위하여 필요한 데이터 청크(Data Chunk)의 요청을 전송 노드로부터 수신한다.
탐색부(220)는 제1 통신부(210)로부터 요청된 데이터 청크(Data Chunk)에 대응하는 오프셋(offset) 값이 존재하는지를 오프셋 테이블을 통해 확인하고, 데이터 베이스(Data Base, DB; 230)는 스트리밍 대상 컨텐츠 별로 오프셋 테이블을 저장할 수 있다.
여기서, 오프셋 테이블은 스트리밍 대상 컨텐츠 별로 컨텐츠 식별자, 데이터 청크 식별자 및 데이터 청크에 대응하는 오프셋 값 중 적어도 어느 하나를 포함하는 항목으로 구성된 테이블일 수 있다.
컨텐츠 식별자는 복수의 컨텐츠를 식별하기 위한 정보를 포함하고, 데이터 청크 식별자는 동일한 컨텐츠에 있어서 분할된 n(n>1)개의 데이터 청크(Data Chunk) 각각을 식별하기 위한 정보를 포함할 수 있다.
오프셋(offset) 값은 각각의 데이터 청크 및/또는 데이터 청크 식별자에 대응하고, 컨텐츠의 시작 위치로터 오프셋(offset)만큼 떨어진 데이터 청크(Data Chunk)의 시작 주소를 말한다. 컨텐츠의 시작 위치에 해당하는 오프셋 값은 0일 수 있으나, 이는 예시적인 것으로 구체적인 컨텐츠의 시작 위치에 해당하는 오프셋 값의 범위는 이에 한정되지 아니함은 통상의 기술자에게 자명하다.
추출부(240)는 탐색부(220)의 확인 결과에 기반하여, 요청된 데이터 청크(Data Chunk)에 대응하는 오프셋 값 또는 기 설정된 조건이 성립된 데이터 청크(Data Chunk)에 대응하는 오프셋 값 중 적어도 어느 하나를 추출할 수 있다. 여기서, 기 설정된 조건이 성립된 데이터 청크(Data Chunk)에 대응하는 오프셋 값에 관한 설명은 후술하기로 한다.
제2 통신부(250)는 컨텐츠 저장소에 접속하여 데이터 청크(Data Chunk)를 수신하고, 수신된 데이터 청크(Data Chunk)를 전송 노드로 전송할 수 있다.
다시 도 1로 돌아와서, 중계 노드(130)가 전송 노드(120)로부터 요청 받은 데이터 청크(Data Chunk)를 컨텐츠 저장소(140)에 접속하여 탐색하는 일련의 과정을 보다 상세히 설명하기로 한다.
중계 노드(130)의 데이터 베이스(134)에 저장된 오프셋 테이블(136)은 스트리밍 대상 컨텐츠 별로 컨텐츠 식별자(KEY; 136-1), 데이터 청크 식별자(SEQuence; 136-2) 및 데이터 청크에 대응하는 오프셋 값(OFFSET; 136-3) 중 적어도 어느 하나를 포함하는 항목으로 구성된 테이블일 수 있다.
컨텐츠 식별자(136-1)는 복수의 컨텐츠를 식별하기 위한 정보를 포함하고, 데이터 청크 식별자(136-2)는 동일한 컨텐츠에 있어서 분할된 n(n>1)개의 데이터 청크(Data Chunk) 각각을 식별하기 위한 정보를 포함할 수 있다.
오프셋 값(136-3)은 각각의 데이터 청크 및/또는 데이터 청크 식별자(136-2)에 대응하고, 컨텐츠의 시작 위치로터 오프셋(offset)만큼 떨어진 데이터 청크의 시작 주소를 말한다. 컨텐츠의 시작 위치에 해당하는 오프셋 값은 0일 수 있으나, 이는 예시적인 것으로 구체적인 컨텐츠의 시작 위치에 해당하는 오프셋 값의 범위는 이에 한정되지 아니함은 통상의 기술자에게 자명하다.
오프셋 테이블(136)은 컨텐츠 별로 컨텐츠 식별자에 대응하는 오프셋 값을 더 포함할 수 있다. 여기서, 컨텐츠 식별자에 대응하는 오프셋 값은 각 컨텐츠의 시작 위치에 해당하는 오프셋 값일 수 있다.
한편, 전송 노드(120)로부터 변경된 재생 지점에 존재하는 데이터 청크(Data Chunk)를 요청 받은 컨텐츠 저장소(140)는 탑 다운(Top-Down) 방식을 통해 요청 받은 데이터 청크(Data Chunk)를 찾을 때까지 순차적으로-예컨대, 상위 계층인 선순위 데이터 청크로부터 하위 계층인 후순위 데이터 청크까지- 이동하여 탐색을 수행한다.
이하에서는 설명의 편의를 위해, 종단 단말(110)은 n개의 데이터 청크 중 제1, 제2 및 제5 데이터 청크(142-1, 142-2, 142-3)를 요청한다고 가정한다. 이때, 컨텐츠의 시작 위치에 해당하는 오프셋 값은 0이고, 제1 데이터 청크(142-1)는 종단 단말(110)로부터 요청 받은 최초의 데이터 청크라고 가정한다.
종단 단말(110) 및 전송 노드(120)로부터 제1 데이터 청크를 요청 받은 중계 노드(130)는 컨텐츠 저장소(140)에 접속한다. 컨텐츠 저장소(140)는 컨텐츠의 시작 위치-예컨대, 오프셋 값은 0임-로부터 제1 데이터 청크(142-1)가 존재하는 위치까지 순차적으로 이동하여 제1 데이터 청크(142-1)를 탐색하고, 중계 노드는(130)는 데이터 베이스(134)에 제1 데이터 청크에 대한 오프셋 값인 100을 저장한다.
이후, 종단 단말(110) 및 전송 노드(120)로부터 제2 데이터 청크를 요청 받은 중계 노드(130)는 데이터 베이스(134)에 제2 데이터 청크에 대응하는 오프셋 값이 존재하는지 확인한다.
확인 결과, 제2 데이터 청크에 대응하는 오프셋 값이 존재하면, 데이터 베이스(134)에 저장된 오프셋 테이블(136)로부터 제2 데이터 청크에 대응하는 오프셋 값을 추출하고, 컨텐츠 저장소(140)에 접속할 수 있다.
반면에, 제2 데이터 청크에 대응하는 오프셋 값이 존재하지 아니하면, 중계 노드(130)는 기 설정된 조건이 성립된 데이터 청크에 대응하는 오프셋 값을 추출하고, 컨텐츠 저장소(140)에 접속할 수 있다.
여기서, 기 설정된 조건이 성립된 데이터 청크란 데이터 베이스(134)에 저장된 데이터 청크 식별자(136-2) 중 요청된 데이터 청크 식별자보다 선순위이며 가장 인접한 데이터 청크 식별자에 대응하는 데이터 청크를 말한다.
예를 들어, 데이터 베이스(134)에는 제1, 제2 및 제7 데이터 청크 식별자가 저장된 상태이고, 중계 노드(130)는 제5 데이터 청크를 요청 받았다고 가정하면, 요청된 제5 데이터 청크 식별자보다 선순위이며 가장 인접한 데이터 청크 식별자는 제2 데이터 청크 식별자이므로, 기 설정된 조건이 성립된 데이터 청크는 제2 데이터 청크일 수 있다.
이어서 설명하면, 컨텐츠 저장소(140)는 기 설정된 조건이 성립된 제1 데이터 청크(142-1)에 대응하는 오프셋 값인 100을 기준으로 제2 데이터 청크(142-2)가 존재하는 위치까지 순차적으로 이동하여 제2 데이터 청크(142-2)를 탐색하고, 중계 노드(130)는 데이터 베이스(134)에 제2 데이터 청크에 대한 오프셋 값인 1000을 갱신하고 저장한다.
마지막으로, 종단 단말(110) 및 전송 노드(120)로부터 제5 데이터 청크를 요청 받은 중계 노드(130)는 데이터 베이스(134)에 제5 데이터 청크에 대응하는 오프셋 값이 존재하는지 확인한다.
확인 결과, 제5 데이터 청크에 대응하는 오프셋 값이 존재하면, 데이터 베이스(134)에 저장된 오프셋 테이블(136)로부터 제5 데이터 청크에 대응하는 오프셋 값을 추출하고, 컨텐츠 저장소(140)에 접속할 수 있다.
반면에, 제5 데이터 청크에 대응하는 오프셋 값이 존재하지 아니하면, 중계 노드(130)는 기 설정된 조건이 성립된 제2 데이터 청크에 대응하는 오프셋 값을 추출하고, 컨텐츠 저장소(140)에 접속할 수 있다.
컨텐츠 저장소(140)는 기 설정된 조건이 성립된 제2 데이터 청크(142-2)에 대응하는 오프셋 값인 1000을 기준으로 제5 데이터 청크(142-3)가 존재하는 위치까지 순차적으로 이동하여 제5 데이터 청크(142-3)를 탐색하고, 중계 노드(130)는 데이터 베이스(134)에 제5 데이터 청크에 대한 오프셋 값인 4000을 갱신하고 저장한다.
상술한 바와 같이, 전송 노드(120) 및 컨텐츠 저장소(140)와 연동하는 중계 노드(130)가 요청된 데이터 청크의 오프셋 테이블(136)을 갱신 및 저장하여 탐색하는 경우, 컨텐츠의 재생 지점이 변경되는 경우에 발생할 수 있는 스트리밍 성능 저하를 감소시키고, 탐색 응답 속도를 개선할 수 있다. 이에 관한 자세한 설명은 도 3을 참조하여 설명하기로 한다.
도 3은 본 발명의 중계 노드로 인하여 컨텐츠 저장소가 수행하는 데이터 청크의 탐색 동작 및 그에 따른 응답 속도 증가에 관한 일례를 나타내는 도면이다.
설명의 편의를 위해, 종단 단말은 n개의 데이터 청크 중 제5 데이터 청크(322-6)를 요청하고, 제1 및 제2 데이터 청크(322-2, 322-4)는 데이터 베이스에 저장된 상태라고 가정한다. 다만 이는 예시적인 것으로 종단 단말로부터 요청된 데이터 청크 및 데이터 베이스에 저장된 데이터 청크의 구체적인 범위는 이에 한정되지 아니함은 통상의 기술자에게 자명하다.
일반적으로, 종단 단말로부터 변경된 재생 지점에 존재하는 데이터 청크(Data Chunk)를 요청 받은 컨텐츠 저장소는 탑 다운(Top-Down) 방식을 통해 요청 받은 데이터 청크(Data Chunk)를 찾을 때까지 순차적으로-예컨대, 상위 계층인 선순위 데이터 청크로부터 하위 계층인 후순위 데이터 청크까지- 이동하여 탐색을 수행한다. 이때, 컨텐츠 저장소는 이전에 데이터 청크를 요청 받은 이력이 있는지 여부와 무관하게, 현재 요청 받은 데이터 청크를 탐색한다.
예를 들어, 종단 단말로부터 변경된 재생 지점에 존재하는 제5 데이터 청크(322-6)를 요청 받은 컨텐츠 저장소는 컨텐츠의 시작 위치인 0(310)으로부터 순차적으로 이동하여 제5 데이터 청크(322-6)를 탐색한다(330).
반면에, 본 발명의 일 실시예에 따르면, 종단 단말로부터 변경된 재생 지점에 존재하는 데이터 청크(Data Chunk)를 요청 받은 컨텐츠 저장소(300)는 중계 노드로부터 추출된 가장 인접한 데이터 청크에 대응하는 오프셋 값을 기준으로 탑 다운(Top-Down) 방식을 통해 요청 받은 데이터 청크(Data Chunk)를 찾을 때까지 순차적으로 이동하여 탐색을 수행한다.
예를 들어, 종단 단말로부터 변경된 재생 지점에 존재하는 제5 데이터 청크(322-6)를 요청 받은 컨텐츠 저장소(300)는 중계 노드로부터 추출된 제2 데이터 청크(322-4)-예컨대, 데이터 베이스에 저장된 제1 및 제2 데이터 식별자 중 요청된 제5 데이터 청크 식별자보다 선순위이며 가장 인접한 데이터 청크 식별자인 제2 데이터 청크 식별자-에 대응하는 오프셋 값인 1000(320-4)을 기준으로 순차적으로 이동하여 제5 데이터 청크(322-6)를 탐색한다(340).
컨텐츠의 시작 위치(310)로부터 탐색하는 일반적인 경우(330)와 달리, 요청된 데이터 청크에 가장 인접한 데이터 청크의 위치(320-4)로부터 탐색하는 본 발명(340)에 따르면, 요청된 데이터 청크를 탐색하는 횟수가 감소됨에 따라 응답 속도-예컨대, Seeking Delay 내지 Seeking Latency-가 개선될 수 있다. 이러한 효과는 컨텐츠 저장소(300)에 분할된 데이터 청크(322-2, 322-4, 322-6, 322-8) 및 데이터 베이스에 저장된 오프셋 값(320-2, 320-4, 320-6, 320-8)의 수가 많을수록 향상될 수 있다.
이하에서는 본 발명에 따른 적응형 스트리밍 서비스 제공 방법을 보다 상세히 설명하기로 한다.
도 4는 본 발명의 일 실시예에 따른, 적응형 스트리밍 서비스 제공 방법을 설명하기 위한 순서도이다.
이하에서는 설명의 편의를 위해, 컨텐츠 저장소는 스트리밍 컨텐츠 별로 분할된 n(n>1)개의 순차적인 데이터 청크를 유지 및 저장한다고 가정한다.
종단 단말은 변경된 재생 지점에서 스트리밍 컨텐츠 재생에 필요한 데이터 청크(Data Chunk)를 통신망을 통해 전송 노드에 요청한다(S410).
데이터 청크의 요청을 수신한 전송 노드는 중계 노드에 데이터 청크를 요청한다(S420).
전송 노드로부터 데이터 청크 요청을 수신한 중계 노드는 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하는지 확인한다(S430).
여기서, 오프셋 테이블은 중계 노드에 저장될 수 있고, 스트리밍 대상 컨텐츠 별로 컨텐츠 식별자, 데이터 청크 식별자, 데이터 청크에 대응하는 오프셋 값 및 컨텐츠 식별자에 대응하는 오프셋 값 중 적어도 어느 하나를 포함하는 항목으로 구성된 테이블일 수 있다.
컨텐츠 식별자는 복수의 컨텐츠를 식별하기 위한 정보를 포함하고, 데이터 청크 식별자는 동일한 컨텐츠에 있어서 분할된 n(n>1)개의 데이터 청크(Data Chunk) 각각을 식별하기 위한 정보를 포함할 수 있다.
데이터 청크에 대응하는 오프셋 값은 각각의 데이터 청크 및/또는 데이터 청크 식별자에 대응하고, 컨텐츠의 시작 위치로터 오프셋(offset)만큼 떨어진 데이터 청크의 시작 주소를 말한다. 컨텐츠 식별자에 대응하는 오프셋 값은 컨텐츠 별로 존재할 수 있고, 각 컨텐츠의 시작 위치에 해당하는 오프셋 값일 수 있다.
이어서 설명하면, 확인 결과, 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하면, 중계 노드는 오프셋 테이블로부터 요청된 데이터 청크에 대응하는 오프셋 값을 추출하고(S432), 컨텐츠 저장소에 접속하여 요청된 데이터 청크를 요청한다(S442).
컨텐츠 저장소는 추출된 오프셋 값을 기준으로 요청된 데이터 청크를 탐색하고(S452), 중계 노드로 요청된 데이터 청크를 전송한다(S462).
중계 노드는 수신된 데이터 청크를 전송 노드로 전송하고(S472), 전송 노드는 종단 단말에 데이터 청크를 전송한다(S482).
만약, 확인 결과 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하지 않으면, 중계 노드는 기 설정된 조건이 성립된 데이터 청크에 대응하는 오프셋 값을 추출하고(S434), 컨텐츠 저장소에 접속하여 요청된 데이터 청크를 요청한다(S444).
여기서, 기 설정된 조건이 성립된 데이터 청크란 중계 노드에 저장된 데이터 청크 식별자 중 요청된 데이터 청크 식별자보다 선순위이며 가장 인접한 데이터 청크 식별자에 대응하는 데이터 청크를 말한다.
컨텐츠 저장소는 추출된 오프셋 값을 기준으로 순차적으로-예컨대, 상위 계층인 선순위 데이터 청크로부터 하위 계층인 후순위 데이터 청크까지- 이동하여 요청된 데이터 청크를 탐색하고(S454), 중계 노드로 요청된 데이터 청크 및 오프셋 값을 전송한다(S464).
중계 노드는 수신된 오프셋 값을 오프셋 테이블에 갱신하고, 저장할 수 있다(S436). 그리고 수신된 데이터 청크를 전송 노드로 전송하고(S474), 전송 노드는 종단 단말에 데이터 청크를 전송한다(S484).
전술한 본 발명은, 프로그램이 기록된 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 매체의 예로는, HDD(Hard Disk Drive), SSD(Solid State Disk), SDD(Silicon Disk Drive), ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있다.
따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다.
Claims (10)
- 전송 노드 및 컨텐츠 저장소와 연동하는 적응형 스트리밍 서비스 제공 장치에 있어서,
상기 전송 노드로부터 데이터 청크 요청을 수신하는 제1 통신부;
상기 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하는지 확인하는 탐색부;
상기 확인 결과, 상기 오프셋 테이블이 존재하면, 상기 오프셋 테이블로부터 상기 요청된 데이터 청크에 대응하는 오프셋 값을 추출하는 추출부; 및
상기 확인 결과에 기반하여 상기 컨텐츠 저장소에 접속하여 상기 데이터 청크를 수신하고, 상기 수신된 데이터 청크를 상기 전송 노드로 전송하는 제2 통신부를 포함하고,
상기 컨텐츠 저장소는 스트리밍 컨텐츠 별로 n(n>1)개의 순차적인 데이터 청크(Data Chunk)를 유지하고, 상기 추출된 오프셋 값을 기준으로 상기 요청된 데이터 청크를 탐색하며,
상기 오프셋 값은 상기 데이터 청크의 시작 주소인, 적응형 스트리밍 서비스 제공 장치. - 제1 항에 있어서,
상기 컨테츠 별로 상기 오프셋 테이블을 저장하는 데이터 베이스(Data Base)를 더 포함하고,
상기 오프셋 테이블은,
상기 컨텐츠 별로 컨텐츠 식별자, 데이터 청크 식별자 및 데이터 청크에 대응하는 오프셋 값 중 적어도 어느 하나를 포함하는, 적응형 스트리밍 서비스 제공 장치. - 제2 항에 있어서,
상기 추출부는,
상기 확인 결과, 상기 오프셋 테이블이 존재하지 않으면, 상기 데이터 베이스에 저장된 데이터 청크 식별자 중 상기 요청된 데이터 청크 식별자보다 선순위이며 가장 인접한 데이터 청크 식별자에 대응하는 오프셋 값을 추출하는, 적응형 스트리밍 서비스 제공 장치. - 제3 항에 있어서,
상기 컨텐츠 저장소는, 상기 추출된 오프셋 값을 기준으로 순차적으로 이동하여 상기 요청된 데이터 청크를 탐색하고,
상기 제2 통신부는, 상기 컨텐츠 저장소에 접속하여 상기 요청된 데이터 청크에 대응하는 오프셋 값을 수신하고,
상기 데이터 베이스는, 상기 수신된 오프셋 값을 상기 오프셋 테이블에 저장하는, 적응형 스트리밍 서비스 제공 장치. - 제2 항에 있어서,
상기 오프셋 테이블은,
상기 컨텐츠 별로 상기 컨텐츠 식별자에 대응하는 오프셋 값을 더 포함하는, 적응형 스트리밍 서비스 제공 장치. - 통신망을 통해 종단 단말에 스트리밍 컨텐츠를 전송하는 전송 노드 및 컨텐츠 저장소와 연동하는 장치의 적응형 스트리밍 서비스 제공 방법에 있어서,
상기 전송 노드로부터 데이터 청크(Data Chunk) 요청을 수신하는 단계;
상기 요청된 데이터 청크에 대응하는 오프셋 테이블이 존재하는지 확인하는 단계;
상기 확인 결과, 상기 오프셋 테이블이 존재하면, 상기 오프셋 테이블로부터 상기 요청된 데이터 청크에 대응하는 오프셋 값을 추출하는 단계;
상기 확인 결과에 기반하여 상기 컨텐츠 저장소에 접속하여 상기 데이터 청크를 수신하는 단계; 및
상기 수신된 데이터 청크를 상기 전송 노드로 전송하는 단계를 포함하고,
상기 컨텐츠 저장소는,
스트리밍 컨텐츠 별로 n(n>1)개의 순차적인 데이터 청크(Data Chunk)를 유지하고, 상기 추출된 오프셋 값을 기준으로 상기 요청된 데이터를 탐색하는, 적응형 스트리밍 서비스 제공 방법. - 제6 항에 있어서,
상기 컨테츠 별로 상기 오프셋 테이블을 저장하는 단계를 더 포함하고,
상기 오프셋 테이블은,
상기 컨텐츠 별로 컨텐츠 식별자, 데이터 청크 식별자 및 데이터 청크에 대응하는 오프셋 값 중 적어도 어느 하나를 포함하는, 적응형 스트리밍 서비스 제공 방법. - 제7 항에 있어서,
상기 확인 결과, 상기 오프셋 테이블이 존재하지 않으면, 상기 저장된 데이터 청크 식별자 중 상기 요청된 데이터 청크 식별자보다 선순위이며 가장 인접한 데이터 청크 식별자에 대응하는 오프셋 값을 추출하는 단계를 더 포함하는, 적응형 스트리밍 서비스 제공 방법. - 제8 항에 있어서,
상기 컨텐츠 저장소에 접속하여 상기 요청된 데이터 청크에 대응하는 오프셋 값을 수신하는 단계; 및
상기 수신된 오프셋 값을 상기 오프셋 테이블에 저장하는 단계를 더 포함하고,
상기 컨텐츠 저장소는, 상기 추출된 오프셋 값을 기준으로 순차적으로 이동하여 상기 요청된 데이터 청크를 탐색하는, 적응형 스트리밍 서비스 제공 방법. - 제7 항에 있어서,
상기 오프셋 테이블은,
상기 컨텐츠 별로 상기 컨텐츠 식별자에 대응하는 오프셋 값을 더 포함하는, 적응형 스트리밍 서비스 제공 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170144517A KR20190049072A (ko) | 2017-11-01 | 2017-11-01 | 적응형 스트리밍 서비스 제공 장치 및 그 제공 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020170144517A KR20190049072A (ko) | 2017-11-01 | 2017-11-01 | 적응형 스트리밍 서비스 제공 장치 및 그 제공 방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20190049072A true KR20190049072A (ko) | 2019-05-09 |
Family
ID=66546760
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020170144517A KR20190049072A (ko) | 2017-11-01 | 2017-11-01 | 적응형 스트리밍 서비스 제공 장치 및 그 제공 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20190049072A (ko) |
-
2017
- 2017-11-01 KR KR1020170144517A patent/KR20190049072A/ko not_active Application Discontinuation
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9860658B2 (en) | Media content playback system and method | |
US9390200B2 (en) | Local caching device, system and method for providing content caching service | |
US9794618B2 (en) | Media content playback system and method | |
CN100484069C (zh) | 一种文件数据分发方法及相关设备 | |
US9386099B2 (en) | Local caching device, system and method for providing content caching service | |
EP2263208B1 (en) | Content delivery in a network | |
US20070192797A1 (en) | Method of and apparatus for managing distributed contents | |
KR20130088774A (ko) | 분할 콘텐트 전달 시스템 및 방법 | |
US20120303905A1 (en) | Method and apparatus for implementing cache | |
EP3417384A1 (en) | System and method for client-initiated playlist shuffle in a media content environment | |
EP2779585B1 (en) | An apparatus, system and method of content transferring | |
CN104506493A (zh) | 一种实现hls内容回源和缓存的方法 | |
EP3057010B1 (en) | Media content playback system and method | |
US8806051B2 (en) | Multimedia file sharing method and system thereof | |
JP6302597B2 (ja) | リアルタイム放送コンテンツ伝送方法及びそのための装置 | |
CN103945259A (zh) | 一种在线视频播放方法及装置 | |
CN102006500B (zh) | 一种应用于缓存服务器的视频拖拽方法及装置 | |
CN102857547A (zh) | 分布式缓存的方法及设备 | |
US7849163B1 (en) | System and method for chunked file proxy transfers | |
EP3866027B1 (en) | Communicating shuffled media content | |
KR20190049072A (ko) | 적응형 스트리밍 서비스 제공 장치 및 그 제공 방법 | |
KR20150011087A (ko) | 컨텐츠 전송 서비스를 위한 분산 캐싱 관리 방법 및 이를 위한 중앙 관리 장치 | |
KR102195516B1 (ko) | 방송 서비스 제공 장치, 방송 서비스 수신 장치 및 이를 이용한 방송 서비스 송수신 시스템 | |
KR20130134911A (ko) | 적응형 컨텐츠 제공을 위한 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치 | |
CN114124971B (zh) | 一种基于边缘缓存的cdn-p2p网络的内容副本放置方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E601 | Decision to refuse application |