[go: up one dir, main page]

KR20180038188A - 스트리밍 서비스를 지원하는 방법 및 장치 - Google Patents

스트리밍 서비스를 지원하는 방법 및 장치 Download PDF

Info

Publication number
KR20180038188A
KR20180038188A KR1020160128956A KR20160128956A KR20180038188A KR 20180038188 A KR20180038188 A KR 20180038188A KR 1020160128956 A KR1020160128956 A KR 1020160128956A KR 20160128956 A KR20160128956 A KR 20160128956A KR 20180038188 A KR20180038188 A KR 20180038188A
Authority
KR
South Korea
Prior art keywords
streaming service
tcp
streaming
bit rate
server
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
KR1020160128956A
Other languages
English (en)
Other versions
KR102454470B1 (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 KR1020160128956A priority Critical patent/KR102454470B1/ko
Priority to PCT/KR2017/010945 priority patent/WO2018066920A1/ko
Priority to EP17858714.3A priority patent/EP3518488B1/en
Priority to US16/339,854 priority patent/US11025755B2/en
Publication of KR20180038188A publication Critical patent/KR20180038188A/ko
Application granted granted Critical
Publication of KR102454470B1 publication Critical patent/KR102454470B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • H04L65/608
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • 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
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/613Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for the control of the source by the destination
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/752Media network packet handling adapting media to network capabilities
    • 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/75Media network packet handling
    • H04L65/756Media network packet handling adapting media to device capabilities
    • 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/75Media network packet handling
    • H04L65/762Media network packet handling at the source 
    • 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/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/75Media network packet handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 개시는 LTE와 같은 4G 통신 시스템 이후 보다 높은 데이터 전송률을 지원하기 위한 5G 또는 pre-5G 통신 시스템에 관련된 것이다.
본 개시에 따른 단말의 스트리밍 서비스를 지원하는 방법은, 스트리밍 서비스를 서버에게 요청하는 과정과, 상기 서버로부터 상기 스트리밍 서비스와 관련된 메타데이터를 수신하는 과정과, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 수신하는 과정을 포함하고, 상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 한다.

Description

스트리밍 서비스를 지원하는 방법 및 장치 {Method and apparatus for supporting a streaming service}
본 개시는 TCP(transmission control protocol) 옵션을 이용한 스트리밍 서비스를 지원하는 방법 및 장치에 관한 것이다.
4G (4th-Generation) 통신 시스템 상용화 이후 증가 추세에 있는 무선 데이터 트래픽 수요를 충족시키기 위해, 개선된 5G (5th-Generation) 통신 시스템 또는 pre-5G 통신 시스템을 개발하기 위한 노력이 이루어지고 있다. 이러한 이유로, 5G 통신 시스템 또는 pre-5G 통신 시스템은 4G 네트워크 이후 (beyond 4G network) 통신 시스템 또는 LTE (long term evolution) 시스템 이후 (post LTE)의 시스템이라 불리고 있다.
높은 데이터 전송률을 달성하기 위해, 5G 통신 시스템은 초고주파 (mmWave) 대역 (예를 들어, 60기가 (60GHz) 대역과 같은)에서의 구현이 고려되고 있다. 초고주파 대역에서 전파의 경로 손실 완화 및 전파의 전달 거리를 증가시키기 위해, 5G 통신 시스템에서는 빔포밍 (beamforming), 거대 배열 다중 입출력 (massive MIMO), 전차원 다중입출력 (full dimensional MIMO: FD-MIMO), 어레이 안테나 (array antenna), 아날로그 빔형성 (analog beam-forming), 및 대규모 안테나 (large scale antenna) 기술들이 논의되고 있다.
또한 시스템의 네트워크 개선을 위해, 5G 통신 시스템에서는 진화된 소형 셀, 개선된 소형 셀 (advanced small cell), 클라우드 무선 액세스 네트워크 (cloud radio access network: cloud RAN), 초고밀도 네트워크 (ultra-dense network), 기기 간 통신 (device to device communication: D2D), 무선 백홀 (wireless backhaul), 이동 네트워크 (moving network), 협력 통신 (cooperative communication), CoMP (coordinated multi-points), 및 수신 간섭제거 (interference cancellation) 등의 기술 개발이 이루어지고 있다.
이 밖에도, 5G 시스템에서는 진보된 코딩 변조 (advanced coding modulation: ACM) 방식인 FQAM (hybrid FSK and QAM modulation) 및 SWSC (sliding window superposition coding)과, 진보된 접속 기술인 FBMC (filter bank multi carrier), NOMA (non-orthogonal multiple access), 및 SCMA (sparse code multiple access) 등이 개발되고 있다.
스트리밍(streaming) 서비스를 지원하는 방식에는 크게 세가지의 종류가 있다. 첫번째는 프로그래시브(progressive) 다운로드 방식이며, 두번째는 RTSP(real time streaming protocol)/RTMP(real time messaging protocol) 스트리밍 방식, 그리고 세번째는 적응적(adpative) HTTP(hyper text transfer protocol) 스트리밍 방식이다.
프로그래시브 다운로드 방식은 사용자가 URL(uniform resource locator)을 통해 파일에 접근하여 상기 파일을 다운로드 받으며 재생하는 방식이다. 이 방식은 일정 양을 다운로드 받을 때까지 재생되지 않기 때문에 네트워크의 전송속도가 빠를 경우 문제되지 않으나 그렇지 않을 경우 재생이 끊기는 문제가 발생할 수 있다. 이 방식의 다른 문제점은 재생하는 동영상의 화질을 사용자가 조정할 수 없다는 점이다.
RTSP/RTMP 스트리밍 방식은 재생할 동영상을 미리 다운받는 것이 아니라 사용자가 현재 시청하고 있는 비디오 프레임만을 전송받아 재생하는 방식이다. 이 방식의 경우 특별한 웹서버를 필요로 한다. 따라서 물리적인 하드웨어 및 추가적인 소프트웨어가 필요하다. 이로 인해 추가 비용이 발생할 뿐만 아니라 관리도 복잡하다. 그러나 이 방식은 사용자가 중간에 동영상의 품질을 변경하더라도 정상적인 재생이 가능하다는 장점을 가진다.
적응적 HTTP 스트리밍 방식은 프로그래시브 다운로드 방식과 RTSP/RTMP 스트리밍 방식의 장점을 결합한 방식이다. 서버에서 몇 초 단위의 동영상을 가지고 스트리밍하게 되고 사용자는 상기 몇 초 단위의 동영상을 다운로드 받아 재생한다. 또한 이 방식은 사용자의 bandwidth 환경을 인지하여 그에 맞는 bitrate로 스트리밍 서비스를 제공할 수 있다.
본 개시는 스트리밍 서비스를 지원하는 방법 및 장치를 제공한다.
본 개시에 따르면 스트리밍 서비스를 제공함에 있어 서버와 클라이언트 간에 다수의 시그널링이 생략될 수 있다.
본 개시에서는 TCP 및 HTTP를 이용한 라이브 스트리밍 메커니즘이 제공된다.
본 개시에 따른 단말의 스트리밍 서비스를 지원하는 방법은, 스트리밍 서비스를 서버에게 요청하는 과정과, 상기 서버로부터 상기 스트리밍 서비스와 관련된 메타데이터를 수신하는 과정과, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 수신하는 과정을 포함하고, 상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 한다.
본 개시에 따른 스트리밍 서비스를 지원하는 서버의 방법은, 단말로부터 상기 스트리밍 서비스를 요청받는 과정과, 상기 스트리밍 서비스와 관련된 메타데이터를 상기 단말에게 전송하는 과정과, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 전송하는 과정을 포함하고, 상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함하여 전송됨을 특징으로 한다.
본 개시에 따른 스트리밍 서비스를 지원하는 단말 장치는, 스트리밍 서비스를 서버에게 요청하고, 상기 서버로부터 상기 스트리밍 서비스와 관련된 메타데이터를 수신하고, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 수신하는 TCP (transmission control protocol) 에이전트를 포함하고, 상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 한다.
본 개시에 따른 스트리밍 서비스를 지원하는 서버 장치는, 단말로부터 상기 스트리밍 서비스를 요청받고, 상기 스트리밍 서비스와 관련된 메타데이터를 상기 단말에게 전송하고, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 전송하는 TCP (transmission control protocol) 에이전트를 포함하고, 상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 한다.
도 1은 HTTP 기반의 라이브 스트리밍 동작 시퀀스를 나타낸 도면,
도 2는 동영상을 촬영함과 동시에 스트리밍 서비스를 제공하는 RTMP 스트리밍 방식의 일 예를 나타낸 도면,
도 3은 HTTP 2.0 푸쉬(push) 방식을 이용한 스트리밍 서비스 제공 방법을 나타낸 도면,
도 4는 서버 푸쉬에서의 속도 평가 동작을 설명하는 도면,
도 5는 서버 푸쉬에서의 비트레이트 무조정의 일 예를 설명하는 도면,
도 6은 서버 푸쉬 중 캐시 인지를 설명하는 도면,
도 7은 스트리밍 서비스를 위한 데이터를 운반하는 패킷에 포함되는 TCP 헤더의 포멧을 나타낸 도면,
도 8은 본 개시의 일 실시예에 따른 클라이언트 장치와 스트리밍 서버의 장치 구성도,
도 9는 본 개시의 일 실시예에 따른 스트리밍 서버가 클라이언트 장치에게 스트리밍 서비스를 제공하는 순서도,
도 10은 본 개시의 일 실시예에 따른 데이터 관점에서 스트리밍 서버가 클라이언트 장치에게 스트리밍 서비스를 제공하는 순서도,
도 11은 본 개시의 일 실시예에 따른 스트리밍 서비스 중 비트레이트를 변경하기 위한 순서도,
도 12는 본 개시의 일 실시예에 따른 스트리밍 서비스 중 비트레이트를 변경하는 경우의 데이터 흐름을 나타낸 순서도이다.
이하 본 개시의 실시예를 첨부한 도면과 함께 상세히 설명한다. 또한 본 개시를 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
이하에서 설명되는 본 개시의 실시예들은 설명의 편의를 위하여 분리된 것이지만, 상호 충돌되지 않는 범위 내에서 적어도 둘 이상의 실시예는 결합되어 수행될 수 있다.
또한, 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 상기 구성요소들은 상기 용어들에 의하여 한정되지는 않는다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
또한, 본 개시에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 개시를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 스트리밍 서비스에 의해 제공될 수 있는 데이터는 영상, 음성, 음악, 영상과 함께 제공되는 자막(즉, 텍스트) 등 각종 다양한 데이터가 될 수 있다. 더 나아가 스트리밍 서비스에 의해 제공될 수 있는 데이터는 VR(virtual reality) 장치에 제공되는 가상 현실과 관련된 데이터도 포함될 수도 있다.
본 개시에서 클라이언트 장치는 스트리밍 서비스를 요구하는 장치를 지칭하며 스트리밍 서버는 스트리밍 서비스를 제공하는 장치를 지칭한다. 즉, 상기 클라이언트 장치, 상기 스트리밍 서버는 이름이 아닌 수행하는 기능에 의해 구별될 것이다. 예를 들어, 컴퓨터라는 장치가 사용자에 의해 스트리밍 서비스를 다른 장치에게 요구하면 클라이언트 장치가 될 수 있으며, 상기 컴퓨터가 다른 장치에게 스트리밍 서비스를 제공하게 되면 상기 컴퓨터는 스트리밍 서버도 될 수 있다.
도 1은 HTTP 기반의 라이브 스트리밍 동작 시퀀스의 일 예를 나타낸 도면이다. 여기에서는 VR 장치에 의한 스트리밍 서비스의 이용을 설명할 것이나, 본 개시의 실시예들이 이러한 예에 의해 한정되지 않음은 물론이다.
도 1을 참조하면, VR 장치(101)는 스트리밍 서버(103)에게 스트리밍 서비스에 대한 메타데이터(metadata)를 요청할 수 있다(111).
상기 스트리밍 서버(103)은 요청받은 스트리밍 서비스로 제공할 스트리밍 데이터에 대한 세그먼트들을 생성하여 상기 세그먼트들을 지시하는 적어도 하나의 URL을 포함하는 상기 메타데이터를 상기 VR 장치(101)에게 전송한다(113).
상기 VR 장치(101)는 상기 메타데이터에 포함된 제1 URL에 접속한다(115).
상기 VR 장치(101)는 상기 제1 URL로부터 스트리밍 데이터를 가져와 재생한다(117).
상기 VR 장치(101)는 상기 메타데이터에 포함된 제2 URL에 접속한다(119).
상기 VR 장치(101)는 상기 제2 URL로부터 스트리밍 데이터를 가져와 재생한다(121).
상기와 같은 절차를 통해 상기 VR 장치(101)는 순차적으로 스트리밍 데이터를 요청하고 가져와 재생한다.
도 2는 동영상을 촬영함과 동시에 스트리밍 서비스를 제공하는 RTMP 스트리밍 방식의 일 예를 나타낸 도면이다.
도 2를 참조하면, 360도 카메라(201)로 동영상을 촬영하면서 상기 동영상의 데이터를 스티칭(stitching) 및 엔코딩(encoding)하여 RTMP 서버(203)로 전송한다. 이때 상기 스티칭 및 엔코딩에 의해, 상기 RTMP 서버(203)가 동영상 데이터를 전송받은 시점과 상기 360도 카메라(201)가 동영상을 촬영한 시점 사이에는 시간상의 간격(211)이 생기게 된다. 상기 간격(211)은 상기 스티칭 및 엔코딩을 위해 소요되는 처리 시간을 의미한다.
상기 RTMP 서버(203)는 전송받은 상기 동영상 데이터를 스트리밍 서버(205)로 전송한다. 이때 전송에 의한 전송 시간(213)이 발생하게 된다.
스트리밍 서버(205)는 스트리밍 서비스를 제공하기 위해 HLS(http based live streaming) 방식을 사용할 수 있다. 상기 HLS는 HTTP 기반의 라이브 스트리밍을 위해 사용될 수 있는 프로토콜이다.
플레이어(207)가 스트리밍 서비스를 요구하면 상기 스트리밍 서버(205)는 상기 스트리밍 서비스를 제공하기전 HLS 메타데이터(또는 메타데이터)를 생성한다. 이때 메타메이터 생성에 의한 처리 시간(processing time)(215)이 발생하게 된다. 상기 플레이어(207)는 상기 메타데이터를 기반으로 해상도, 비트레이트 등을 결정하여 상기 스트리밍 서비스를 요청하게 된다. 마지막으로 상기 플레이어(207)가 상기 메타데이터를 확인한 후 스트리밍 서비스를 요청하기까지 시간상의 간격(217)이 발생하게 된다.
결과적으로, 상기 360도 카메라(201)의 동영상 촬영(즉, 캡쳐) 시작 시점과 상기 플레이어(207)의 동영상 플레이 시작 시점 사이에는 상기 시간상의 간격들(211, 213, 215, 217)이 모두 합쳐진 시간상의 간격(219)이 존재한다.
도 3은 HTTP 2.0 푸쉬(push) 방식을 이용한 스트리밍 서비스 제공 방법을 나타낸 도면이다. 여기서 푸쉬는 서버가 클라이언트에게 데이터를 전송하는 것을 의미한다. 클라이언트 장치(301)는 스트리밍 서버(303)에게 스트리밍 서비스를 제공하기 위한 데이터(즉, 세그먼트들)을 요청한다. 이때 상기 클라이언트 장치(301)는 전체 세그먼트들을 요청하거나 또는 일부 세그먼트들을 요청할 수 있다.
도 3(a)를 참조하면, 상기 클라이언트 장치(301)는 세그먼트들 전체인 n개를 한번에 상기 스트리밍 서버에 요청할 수 있다(311). 상기 스트리밍 서버(303)는 순차적으로 세그먼트들을 상기 클라이언트 장치(301)에게 푸쉬한다(313, 315, 317).
도 3(b)를 참조하면, 상기 클라이언트 장치(301)는 세그먼트들 전체인 n개 중 제1 내지 제k 세그먼트들을 상기 스트리밍 서버(303)에게 먼저 요청할 수 있다(321). 상기 스트리밍 서버(303)는 상기 제1 내지 제k 세그먼트들을 상기 클라이언트 장치(301)에게 순차적으로 푸쉬한다(323, 325, 327). 상기 제1 내지 제k 세그먼트들을 모두 수신하면 상기 클라이언트 장치(301)는 제n-k+1 내지 제n 세그먼트들을 요청할 수 있다(331). 상기 스트리밍 서버(303)는 상기 제n-k+1 내지 제n 세그먼트들을 상기 클라이언트 장치(301)에게 순차적으로 푸쉬한다(333, 335, 337).
그런데 상기 요청받은 세그먼트들 중 일부의 세그먼트들은 아직 상기 스트리밍 서버에서 생성되지 않은 것일 수도 있다. 상기 요청을 받은 상기 스트리밍 서버는 생성되어 있던 세그먼트들은 바로 상기 클라이언트 장치에게 푸쉬하며, 아직 생성되어 있지 않은 나머지 세그먼트들이 생성될 때까지 대기한 후, 상기 생성된 나머지 세그먼트들을 푸쉬한다.
상기 HTTP 2.0 푸쉬(push) 방식에 의하면 상기 클라이언트 장치는 상기 세그먼트들을 하나씩 요청하지 않아도 되어 상기 스트리밍 서버에게 전송할 요청이 줄어드는 장점이 있다.
도 4는 서버 푸쉬에서의 속도 평가 동작을 설명하는 도면이다.
도 4를 참조하면, 스트리밍 서버(401)가 데이터(즉, 세그먼트들)을 클라이언트 장치(403)에게 푸쉬하면 푸쉬된 세그먼트들은 상기 클라이언트 장치(403)의 캐쉬에 저장된다(411). 따라서 상기 클라이언트 장치(403) 내에서 스트리밍 서비스를 사용자에게 제공하는 스트리밍 어플리케이션(405)은, 세그먼트가 푸쉬되었는지 알지 못한다. 다만 상기 스트리밍 어플리케이션(405)은 스트리밍 서비스를 제공할 때 상기 푸쉬된 세그먼트들을 확인할 뿐이다(413). 따라서 상기 스트리밍 어플리케이션(405)은 세그먼트가 푸쉬된 시점과 다른 세그먼트가 푸쉬된 시점을 알 수가 없어 스트리밍 서비스에서 중요한 요소인 네트워크 속도를 계산할 수 없다.
도 5는 서버 푸쉬에서의 비트레이트 무조정의 일 예를 설명하는 도면이다.
도 5를 참조하면, 클라이언트 장치(503)가 스트리밍 서버(501)에게 3개의 세그먼트들(511, 513, 515)에 대한 푸쉬를 요청했을 때 상기 스트리밍 서버(501)는 네트워크 속도가 떨어지더라도 동일한 비트레이트로 상기 3개의 세그먼트들(511, 513, 515)를 푸쉬한다. 그러나, 실제로 네트워크 속도가 떨어지면, 상기 세그먼트들(511, 513, 515)을 푸쉬하는 비트레이트가 변경되어야 상기 클라이언트 장치(503)는 정상적으로 스트리밍 서비스를 사용자에게 제공할 수 있다.
도 6은 서버 푸쉬 중 캐시 인지를 설명하는 도면이다.
도 6을 참조하면, 스트리밍 서버(605)가 여러 개의 세그먼트들, 예를 들면 제2 세그먼트 내지 제4 세그먼트들(611, 613, 615)를 클라이언트 장치에게 푸쉬하면, 상기 클라이언트 장치는 상기 제2 세그먼트 내지 제4 세그먼트를 상기 클라이언트 장치의 캐시(603)에 저장한다. 이때 상기 클라이언트 장치가 제2 비트레이트로 변경하여 상기 스트리밍 서버로부터 상기 제4 세그먼트를 다시 전송받더라도 상기 클라이언트 장치의 스트리밍 어플리케이션(601)은 상기 캐시(603)의 상태를 인지할 수 없기 때문에 상기 제1 비트레이트로 전송받은 제4 세그먼트를 재생하게 된다는 문제가 발생할 수 있다.
그 외에도 상기 스트리밍 서버(605)는 상기 클라이언트 장치의 캐시 용량에 대한 고려없이 세그먼트들을 푸쉬하므로 상기 클라이언트 장치에 과부하가 걸릴 수 있다.
후술되는 본 개시의 실시예들에서는 TCP 및 HTTP를 이용한 상호 계층 동작을 통한 라이브 스트리밍 메커니즘을 제안한다. HTTP는 스트리밍을 시작, 일시 정지, 재개, 또는 중단하기 위한 애플리케이션으로부터의 요청을 전송하기 위해 사용된다. TCP에서는, 스트리밍 서비스를 위한 데이터를 운반하는 패킷의 TCP 헤더 내 TCP 옵션이 네트워크 속도 조정을 위해 전송 비트레이트를 제어하는데 사용된다. 또한, 수신 윈도우 사이즈, 혼잡 윈도우 사이즈, RTT, 두 패킷 간 간격과 같은 TCP 파라미터들이 적응 알고리즘을 최적화하는데 사용될 수 있다. 따라서, 높은 비트레이트 적응 성능 및 낮은 반복 메시지를 가진 저 레이턴시 라이브 스트리밍 프로토콜이 얻어질 수 있다.
도 7은 스트리밍 서비스를 위한 데이터를 운반하는 패킷에 포함되는 TCP 헤더의 포멧을 나타낸 도면이다.
도 7을 참조하면, 상기 TCP 헤더에는 출발지 포트(source port)(701), 목적지 포트(destination port)(703), 시퀀스 넘버(sequence number)(705), 확인응답번호(acknowledgement number)(707), 오프셋(offset)(709), 예약(reserved)(711), TCP 플래그(TCP flags)(713), 윈도우(window)(715), 체크섬(checksum)(717), urgent 포인터(urgent pointer)(719), 및 TCP 옵션(TCP option)(721)이 포함된다.
상기 TCP 옵션(721)은 하기의 세 개의 필드(field)를 포함한다. 첫번째 필드는 옵션의 타입을 나타내는 kind, 두번째 필드는 옵션의 길이를 나타내는 len, 마지막 필드는 옵션의 데이터를 나타내는 data이다. 구체적으로 스트리밍 서비스를 지원하는 경우 상기 kind 필드는 스트림(stream)을 지시할 수 있다. data 필드는 사용자 고유의 목적을 위해 사용될 수 있다. 예를 들면 스트리밍 서비스를 지원하는 비트레이트에 대한 정보가 data 필드에 포함될 수 있다. 또는 예비되어 있는 200개가 넘는 TCP 옵션이 이용될 수도 있다. 상기 data 필드의 길이가 가변이기 때문에 len 필드를 이용해 유효한 TCP 옵션 필드의 길이를 지시할 수 있다.
도 8은 본 개시의 일 실시예에 따른 클라이언트 장치와 스트리밍 서버의 장치 구성도를 나타낸 것이다. 설명의 편의를 위해 본 개시와 직접적이 관련이 없는 구성요소는 그 도시 및 설명을 생략한다.
도 8을 참조하면, 상기 클라이언트 장치(810)는 스트리밍 어플리케이션(812), TCP 에이전트(814), TCP 처리부(816)로 구성될 수 있다. 상기 스트리밍 어플리케이션(812)은 사용자에게 스트리밍 서비스를 제공한다. 상기 스트리밍 어플리케이션(812)은 상기 스트리밍 서비스의 비트레이트를 결정할 수 있다. 상기 스트리밍 어플리케이션(812)은 결정된 비트레이트를 API를 이용해 상기 TCP 에이전트(814)에게 알릴 수 있다. 상기 TCP 에이전트(814)는 송신할 TCP 옵션을 설정하거나 수신된 TCP 옵션을 검출할 수 있다. 상기 TCP 처리부(816)는 TCP 패킷을 전송하거나 수신한다. 여기서는 클라이언트 장치(810)가 다수의 구성들(812, 814, 816)으로 나누어지는 예를 도시하였으나, 필요에 따라서는 하나의 구성에 의해 이하의 동작들이 수행될 수 있다.
상기 스트리밍 서버(820)는 스트리밍 데이터 처리부(822), TCP 에이전트(824), TCP 처리부(826)로 구성될 수 있다. 상기 스트리밍 데이터 처리부(822)는 다른 장치에게 스트리밍 서비스로 제공할 데이터를 엔코딩할 수 있다. 상기 TCP 에이전트(824)는 송신할 TCP 옵션을 설정하거나 수신된 TCP 옵션을 검출할 수 있다. 상기 TCP 처리부(826)는 TCP 패킷을 전송하거나 수신한다. 상기 클라이언트 장치(810)와 마찬가지로 여기서는 스트리밍 서버(820)가 다수의 구성들(822, 824, 826)을 포함하는 경우를 도시하였으나, 필요에 따라서는 하나의 구성에 의해서 이하의 동작들이 모두 수행될 수 있다.
각 구성에 대한 자세한 설명은 이하의 도 9 내지 도 12에서 설명한다.
도 9는 본 개시의 일 실시예에 따른 스트리밍 서버가 클라이언트 장치에게 스트리밍 서비스를 제공하는 순서도를 나타낸 것이다.
도 9를 참조하면, 사용자에 의해 스트리밍 서비스를 요청받은 상기 클라이언트 장치는 상기 스트리밍 서버에게 스트리밍 서비스에 대한 요청을 전송한다(901).
상기 스트리밍 서버는 상기 스트리밍 서비스에 대한 요청의 응답을 상기 클라이언트 장치에게 전송한다(903). 이때 상기 응답에는 메타데이터(metadata)가 포함될 수 있다. 상기 메타데이터에는 스트리밍 서비스로 제공될 데이터에 대한 해상도, 비트레이트, 코덱(codec) ID 등이 포함될 수 있다. 예를 들면 상기 스트리밍 서버가 지원할 수 있는 다양한 비트레이트들이 포함될 수 있다.
이하에서는 비트레이트를 예로 설명하나, 해상도, 코덱 ID 등에 대해서도 아래의 설명 적용도 가능할 것이다.
상기 스트리밍 서비스로 제공될 데이터에 대한 비트레이트는 상기 스트리밍 서버의 설정(configuration)에 의해 정해질 수 있다(905). 또는 상기 비트레이트는 상기 클라이언트 장치의 요청에 의해 정해질 수 있다. 또는 상기 스트리밍 서버가 실시간으로 네트워크의 상태를 판단해 비트레이트를 결정할 수도 있다.
상기 스트리밍 서버는 데이터의 전송 이전에 결정된 비트레이트로 TCP 옵션의 data 필드를 설정한다(907). 상기 스트리밍 서버는 상기 TCP 옵션을 설정하기 위해 API(application programming interface)를 이용할 수 있다.
상기 메타데이터를 전송한 후, 상기 스트리밍 서버는 상기 스트리밍 서비스로 제공될 데이터를 상기 클라이언트 장치에게 전송한다(909). 이때 상기 스트리밍 서버는 TCP 세션을 새로 수립하지 않고 기존의 TCP 세션을 이용해 상기 데이터를 전송할 수 있다. 상기 스트리밍 서버는 대역폭(bandwidth)을 저장하기 위해 상기 동일한 TCP 옵션을 상기 스트리밍 서비스로 제공될 데이터 중 첫번째 데이터(세그먼트 or 패킷)에만 설정할 수 있다(911). 또는 상기 스트리밍 서버는 상기 동일한 TCP 옵션을 다수의 데이터(세그먼트 or 패킷)에 설정할 수 있다.
상기 클라이언트 장치는 상기 스트리밍 서버가 전송한 데이터 패킷을 수신하고 상기 데이터 패킷에 포함된 TCP 옵션을 검출한다(913). 상기 클라이언트 장치는 상기 TCP 옵션을 분석하고 필요에 따라 상기 TCP 옵션에 대한 정보를 저장할 수 있다. 상기 TCP 옵션에 대한 정보는 일 예로서 상기 데이터 패킷의 비트레이트를 포함할 수 있다.
상기 클라이언트 장치는 상기 TCP 옵션의 분석 결과로부터 상기 스트리밍 서버가 전송하는 데이터의 비트레이트를 획득 또는 알 수 있다(915).
상기 TCP 옵션에 대한 정보를 저장한 이후에, 상기 클라이언트 장치는 상기 스트리밍 서버가 전송한 데이터 패킷들을 계속하여 수신한다(917).
한편, 상기 클라이언트 장치와 상기 스트리밍 서버는 HTTP를 이용해 스트리밍 서비스의 시작, 일시정지, 재개, 또는 중단에 대한 요청을 전송하고 TCP 옵션을 이용해 비트레이트 변경에 대한 요청을 전송할 수 있다.
이상에서는 순서대로 동작되는 것처럼 설명하였으나 동시에 여러 동작이 동시에 수행될 수 있다. 예를 들면, 상기 클라이언트 장치는 상기 TCP 옵션을 검출함과 동시에 분석하여 상기 스트리밍 서버가 전송하는 데이터의 비트레이트를 알 수도 있다.
도 10은 본 개시의 일 실시예에 따른 데이터 관점에서 스트리밍 서버가 클라이언트 장치에게 스트리밍 서비스를 제공하는 순서도를 나타낸 것이다.
구체적으로 도 10에서는 상기 스트리밍 서버가 자신의 메모리에 저장된 데이터를 상기 클라이언트 장치에게 전송하는 것이 아니라 별도의 데이터 소스 예를 들어, 카메라로부터 수신하여 전송하는 예시적 동작을 나타낸 것이다.
도 10을 참조하면, 상기 카메라는 주기적 또는 비주기적으로 엔코딩된 스트리밍 데이터를 상기 스트리밍 서버로 전송할 수 있다(1001, 1021).
상기 클라이언트 장치는 상기 스트리밍 서버에게 스트리밍 서비스에 대한 요청을 전송한다(1003).
상기 스트리밍 서버는 상기 스트리밍 서비스에 대한 요청의 응답으로 메타데이터를 전송한다(1005).
상기 스트리밍 서버는 미리 설정된 비트레이트로 TCP 옵션을 설정하여 상기 클라이언트 장치에게 상기 요청한 스트리밍 서비스에 대한 데이터를 전송한다(1007). 예를 들면 상기 TCP 옵션에 설정되는 비트레이트는 미리 정해지는 디폴트 값이 될 수 있다.
상기 스트리밍 서버는 상기 스트리밍 서버에 저장되어 있는, 상기 요청한 스트리밍 서비스에 대한 데이터를 모두 전송한다(1009). 이때 상기 스트리밍 서버는 TCP 세션을 유지한다.
상기 클라이언트는 주기적으로 상기 스트리밍 서버에게 수신한 데이터에 대한 acknowledge 또는 negative acknowledge를 전송한다(1011).
이후 상기 스트리밍 서버가 상기 카메라로부터 엔코딩된 스트리밍 데이터를 추가로 수신하면, 상기 스트리밍 서버는 상기 유지된 TCP 세션을 이용하여 상기 클라이언트 장치에게 상기 추가로 수신한 엔코딩된 스트리밍 데이터를 전송한다.
따라서, 본 개시에 따른 실시 예에서는 TCP 세션을 유지함으로 인해 상기 클라이언트와 상기 스트리밍 서버 사이에 추가적인 요청/응답이 불필요하며 이로인해 RTT(round trip time) 레이턴시(latency)가 존재하지 않는다. 또한, TCP 세션을 새로 생성하거나 갱신할 필요가 없기 때문에 시작에 따른 레이턴시도 발생하지 않는다.
도 11은 본 개시의 일 실시예에 따라 스트리밍 서비스 중 비트레이트를 변경하기 위한 순서도를 나타낸 것이다.
도 11을 참조하면, 클라이언트 장치는 현재 제공받고 있는 상기 스트리밍 서비스에 대한 파라미터 정보를 확인한다(1101). 상기 파라미터는 기 수신한 패킷 내의 TCP 옵션에 의해 설정된 비트레이트 정보일 수 있다. 그외의 수신 윈도우 사이즈, 혼잡 윈도우 사이즈, RTT, 두 패킷 간 간격과 같은 파라미터들이 상기 TCP 옵션으로부터 획득될 수 있다.
상기 클라이언트 장치는 현재 제공받고 있는 스트리밍 서비스의 비트레이트를 변경하기로 결정할 수 있다(1103). 예를 들면, 상기 클라이언트 장치가 상기 스트리밍 서비스가 아닌 다른 기능을 동시에 수행하게 되는 경우 상기 클라이언트는 비트레이트를 낮추기로 결정할 수 있다. 또는 상기 클라이언트가 상기 스트리밍 서비스 외에 다른 동작을 동시에 수행 중 상기 다른 동작을 끝마친 경우 상기 클라이언트는 비트레이트를 높이기로 결정할 수 있다. 그 외에 상기 클라이언트 장치는 TCP 링크 속도, 네트워크의 상태를 자체적으로 평가하여 비트레이트를 변경하기로 결정할 수 있다. 예를 들어 상기 클라이언트 장치는 수신 윈도우 사이즈, 혼잡 윈도우 사이즈, RTT, 두 패킷 간 간격과 같은 TCP 파라미터들 중 적어도 하나를 이용해 변경할 비트레이트를 결정할 수 있다. 또한 상기 클라이언트 장치는 비트레이트를 변경할 시점도 결정할 수 있다.
상기 클라이언트 장치가 비트레이트를 변경하기로 결정한 경우, 변경할 비트레이트로 TCP 옵션을 설정한다(1105).
이때, 상기 클라이언트 장치는 비트레이트를 변경하기로 결정하는 경우에도 상기 스트리밍 서버로부터 변경하기 전의 비트레이트로 데이터를 계속하여 수신할 수 있다(1107).
상기 클라이언트 장치는 상기 설정한 TCP 옵션을 TCP ack 패킷 내에 설정한다(1109).
상기 클라이언트 장치는 비트레이트를 빠르게 변경하기 위해 상기 TCP ack 패킷을 전송하는 주기를 변경하여 상기 TCP ack 패킷을 전송할 수 있다(1111).
상기 TCP ack 패킷을 수신한 상기 스트리밍 서버는 상기 TCP 옵션을 검출한다(1113).
상기 스트리밍 서버는 상기 검출한 TCP 옵션으로부터 새로운 비트레이트를 확인한다(1115). 상기 스트리밍 서버는 API를 이용해 상기 새로운 비트레이트를 확인할 수 있다.
상기 스트리밍 서버는 상기 새로운 비트레이트로 TCP 옵션을 설정한다(1117).
상기 스트리밍 서버는 상기 새로운 비트레이트로 남은 데이터 패킷들 상기 클라이언트 장치에게 전송한다(1119).
상기 스트리밍 서버는 상기 TCP 옵션의 새로운 비트레이트를 상기 남은 데이터 패킷들 중 첫번째 데이터 패킷(혹은 소정 개수의 데이터 패킷들)에만 설정할 수 있다(1121). 이 경우 일 실시예로서, 상기 첫번째 데이터 패킷 이후의 데이터 패킷은 이전 비트레이트로 설정될 수 있다. 또는 상기 스트리밍 서버는 상기 새로운 비트레이트의 TCP 옵션을 상기 남은 데이터 패킷들에 설정할 수 있다.
상기 클라이언트 장치는 수신되는 데이터 패킷으로부터 상기 스트리밍 서버가 설정한 TCP 옵션을 검출한다(1123). 상기 클라이언트 장치는 상기 검출한 TCP 옵션을 확인해 비트레이트가 변경되었음을 확인할 수 있다. 상기 비트레이트가 변경되었음을 확인한 상기 클라이언트 장치는 TCP ack 패킷을 전송하는 주기를 원래대로 복원할 수 있다.
상기 클라이언트 장치는 변경된 비트레이트로 상기 스트리밍 서버로부터 데이터를 수신한다(1125).
도 12는 본 개시의 일 실시예에 따른 스트리밍 서비스 중 비트레이트를 변경하는 경우의 데이터 흐름을 나타낸 순서도이다.
도 12를 참조하면, 스트리밍 서버는 클라이언트 장치에게 제1 비트레이트로 설정하여 스트리밍 서비스를 제공한다(1201).
이후 상기 스트리밍 서버는 상기 제1 비트레이트로 계속하여 상기 스트리밍 서비스를 제공한다(1203).
상기 클라이언트 장치는 일정 주기로 TCP ack 패킷을 상기 스트리밍 서버에게 전송한다(1205).
상기 클라이언트 장치는 상기 제1 비트레이트를 제2 비트레이트로 변경하기로 결정할 수 있다. 상기 제2 비트레이트로 변경하기로 결정한 상기 클라이언트 장치는 상기 제2 비트레이트로 TCP 옵션을 설정할 수 있다. 이후 상기 클라이언트 장치는 TCP ack 패킷에 상기 TCP 옵션을 설정하여 전송한다(1207).
아직 상기 TCP 옵션이 설정된 TCP ack 패킷을 전송받지 못한 상기 스트리밍 서버는 상기 제1 비트레이트로 상기 클라이언트 장치에게 계속하여 상기 스트리밍 서비스를 제공한다(1209).
상기 클라이언트 장치는 상기 제1 비트레이트로 상기 스트리밍 서비스를 제공받기 때문에 상기 TCP ack 패킷을 자주 전송한다(1211).
상기 TCP 옵션이 설정된 TCP ack 패킷을 전송받으면 상기 스트리밍 서버는 제2 비트레이트로 상기 스트리밍 서비스를 제공한다는 것을 상기 클라이언트 장치에게 알리기 위해 TCP 옵션을 설정하여 상기 스트리밍 서비스를 제공한다(1213).
이후 상기 스트리밍 서버는 상기 제2 비트레이트로 계속하여 상기 스트리밍 서비스를 제공한다(1215).
상기 클라이언트 장치는 상기 스트리밍 서버가 설정한 TCP 옵션을 확인하여 상기 제2 비트레이트로 상기 스트리밍 서비스가 제공되고 있음을 알 수 있다. 상기 클라이언트 장치는 TCP ack 패킷을 이전의 주기로 전송한다(1217).
본 개시의 실시 예에 따르면, 스트리밍 서비스의 비트레이트를 변경하는 경우에도 TCP 세션을 유지함으로 인해 상기 클라이언트와 상기 스트리밍 서버 사이에 추가적인 요청/응답이 불필요하며 이로인해 RTT(round trip time) 레이턴시(latency)가 존재하지 않는다. 또한, TCP 세션을 새로 생성하거나 갱신할 필요가 없기 때문에 시작에 따른 레이턴시도 발생하지 않는다.
상술한 본 개시의 특정 측면들은 또한 컴퓨터 리드 가능 기록 매체(computer readable recording medium)에서 컴퓨터 리드 가능 코드(computer readable code)로서 구현될 수 있다. 컴퓨터 리드 가능 기록 매체는 컴퓨터 시스템에 의하여 리드될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 상기 컴퓨터 리드 가능 기록 매체의 예들은 리드 온니 메모리(Read-Only Memory: ROM)와, 랜덤-접속 메모리(Random-Access Memory: RAM)와, CD-ROM들과, 마그네틱 테이프(magnetic tape)들과, 플로피 디스크(floppy disk)들과, 광 데이터 저장 디바이스들, 및 캐리어 웨이브(carrier wave)들(상기 인터넷을 통한 데이터 송신과 같은)을 포함할 수 있다. 상기 컴퓨터 리드 가능 기록 매체는 또한 네트워크 연결된 컴퓨터 시스템들을 통하여 분산될 수 있고, 따라서 상기 컴퓨터 리드 가능 코드는 분산 방식으로 저장 및 실행된다. 또한, 본 개시를 성취하기 위한 기능적 프로그램들, 코드, 및 코드 세그먼트(segment)들은 본 개시가 적용되는 분야에서 숙련된 프로그래머들에 의하여 쉽게 해석될 수 있다.
또한 본 개시의 일 실시예에 따른 장치 및 방법은 하드웨어, 소프트웨어 또는 하드웨어 및 소프트웨어의 조합의 형태로 실현 가능하다는 것을 알 수 있을 것이다. 이러한 임의의 소프트웨어는 예를 들어, 삭제 가능 또는 재기록 가능 여부와 상관없이, ROM 등의 저장 장치와 같은 휘발성 또는 비휘발성 저장 장치, 또는 예를 들어, RAM, 메모리 칩, 장치 또는 집적 회로와 같은 메모리, 또는 예를 들어 CD, DVD, 자기 디스크 또는 자기 테이프 등과 같은 광학 또는 자기적으로 기록 가능함과 동시에 기계(예를 들어, 컴퓨터)로 읽을 수 있는 저장 매체에 저장될 수 있다. 본 개시의 일 실시예에 따른 방법은 제어부 및 메모리를 포함하는 컴퓨터 또는 휴대 단말에 의하여 구현될 수 있고, 상기 메모리는 본 개시의 실시 예들을 구현하는 지시들을 포함하는 프로그램 또는 프로그램들을 저장하기에 적합한 기계로 읽을 수 있는 저장 매체의 한 예임을 알 수 있을 것이다.
따라서, 본 개시는 본 명세서의 임의의 청구항에 기재된 장치 또는 방법을 구현하기 위한 코드를 포함하는 프로그램 및 이러한 프로그램을 저장하는 기계(컴퓨터 등)로 읽을 수 있는 저장 매체를 포함한다. 또한, 이러한 프로그램은 유선 또는 무선 연결을 통하여 전달되는 통신 신호와 같은 임의의 매체를 통하여 전자적으로 이송될 수 있고, 본 개시는 이와 균등한 것을 적절하게 포함한다.
또한 본 개시의 일 실시예에 따른 장치는 유선 또는 무선으로 연결되는 프로그램 제공 장치로부터 상기 프로그램을 수신하여 저장할 수 있다. 상기 프로그램 제공 장치는 상기 프로그램 처리 장치가 기 설정된 콘텐츠 보호 방법을 수행하도록 하는 지시들을 포함하는 프로그램, 컨텐츠 보호 방법에 필요한 정보 등을 저장하기 위한 메모리와, 상기 그래픽 처리 장치와의 유선 또는 무선 통신을 수행하기 위한 통신부와, 상기 그래픽 처리 장치의 요청 또는 자동으로 해당 프로그램을 상기 송수신 장치로 송신하는 제어부를 포함할 수 있다.
한편, 본 명세서와 도면에 개시된 본 발명의 실시예들은 본 발명의 기술 내용을 쉽게 설명하고 본 발명의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 즉 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 발명의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다.

Claims (20)

  1. 단말의 스트리밍 서비스를 지원하는 방법에 있어서,
    스트리밍 서비스를 서버에게 요청하는 과정과,
    상기 서버로부터 상기 스트리밍 서비스와 관련된 메타데이터를 수신하는 과정과,
    미리 정해진 설정 정보와 상기 스트리밍 서비스를 수신하는 과정을 포함하고,
    상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 하는 방법.
  2. 제1항에 있어서,
    상기 TCP 옵션은 kind, len, data임을 특징으로 하는 방법.
  3. 제1항에 있어서,
    상기 메타데이터를 기초로 변경하고자 하는 비트레이트 정보를 결정하는 과정과,
    상기 결정된 비트레이트 정보를 acknowlege와 함께 전송하는 과정을 더 포함하는 방법.
  4. 제3항에 있어서,
    TCP 옵션에 변경된 비트레이트 정보를 포함하는 스트리밍 서비스를 수신하는 과정을 더 포함하는 방법.
  5. 제1항에 있어서,
    상기 스트리밍 서비스를 요청하는 과정부터 상기 스트리밍 서비스를 수신하는 과정은 하나의 TCP 세션에 의해 이루어짐을 특징으로 하는 방법.
  6. 스트리밍 서비스를 지원하는 서버의 방법에 있어서,
    단말로부터 상기 스트리밍 서비스를 요청받는 과정과,
    상기 스트리밍 서비스와 관련된 메타데이터를 상기 단말에게 전송하는 과정과,
    미리 정해진 설정 정보와 상기 스트리밍 서비스를 전송하는 과정을 포함하고,
    상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함하여 전송됨을 특징으로 하는 방법.
  7. 제6항에 있어서,
    상기 TCP 옵션은 kind, len, data임을 특징으로 하는 방법.
  8. 제6항에 있어서,
    변경할 비트레이트 정보와 함께 acknowlege를 수신하는 과정을 더 포함하고,
    상기 변경할 비트레이트 정보는 상기 메타데이터를 기초로 결정된 것임을 특징으로 하는 방법.
  9. 제8항에 있어서,
    TCP 옵션에 변경할 비트레이트 정보를 포함하여 스트리밍 서비스를 전송하는 과정을 더 포함하는 방법.
  10. 제6항에 있어서,
    상기 스트리밍 서비스를 요청받는 과정부터 상기 스트리밍 서비스를 전송하는 과정은 하나의 TCP 세션에 의해 이루어짐을 특징으로 하는 방법.
  11. 스트리밍 서비스를 지원하는 단말 장치에 있어서,
    스트리밍 서비스를 서버에게 요청하고, 상기 서버로부터 상기 스트리밍 서비스와 관련된 메타데이터를 수신하고, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 수신하는 TCP (transmission control protocol) 에이전트를 포함하고,
    상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 하는 단말 장치.
  12. 제11항에 있어서,
    상기 TCP 옵션은 kind, len, data임을 특징으로 하는 단말 장치.
  13. 제11항에 있어서,
    상기 메타데이터를 기초로 변경하고자 하는 비트레이트 정보를 결정하고 상기 결정된 비트레이트 정보를 acknowlege와 함께 더 전송하는 상기 TCP 에이전트를 포함하는 단말 장치.
  14. 제13항에 있어서,
    TCP 옵션에 변경된 비트레이트 정보를 포함하는 스트리밍 서비스를 더 수신하는 상기 TCP 에이전트를 포함하는 단말 장치.
  15. 제11항에 있어서,
    하나의 TCP 세션에 의해 상기 스트리밍 서비스를 요청부터 상기 스트리밍 서비스를 수신이 이루어짐을 특징으로 하는 단말 장치.
  16. 스트리밍 서비스를 지원하는 서버 장치에 있어서,
    단말로부터 상기 스트리밍 서비스를 요청받고, 상기 스트리밍 서비스와 관련된 메타데이터를 상기 단말에게 전송하고, 미리 정해진 설정 정보와 상기 스트리밍 서비스를 전송하는 TCP (transmission control protocol) 에이전트를 포함하고,
    상기 미리 정해진 설정 정보는 TCP (transmission control protocol) 옵션에 포함됨을 특징으로 하는 서버 장치.
  17. 제16항에 있어서,
    상기 TCP 옵션은 kind, len, data임을 특징으로 하는 서버 장치.
  18. 제16항에 있어서,
    변경할 비트레이트 정보와 함께 acknowlege를 더 수신하는 상기 TCP 에이전트를 포함하고,
    상기 변경할 비트레이트 정보는 상기 메타데이터를 기초로 결정된 것임을 특징으로 서버 장치.
  19. 제18항에 있어서,
    TCP 옵션에 변경할 비트레이트 정보를 포함하여 스트리밍 서비스를 더 전송하는 상기 TCP 에이전트를 포함하는 서버 장치.
  20. 제16항에 있어서,
    하나의 TCP 세션에 의해 상기 스트리밍 서비스를 요청부터 상기 스트리밍 서비스를 전송이 이루어짐을 특징으로 하는 서버 장치.
KR1020160128956A 2016-10-06 2016-10-06 스트리밍 서비스를 지원하는 방법 및 장치 Active KR102454470B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020160128956A KR102454470B1 (ko) 2016-10-06 2016-10-06 스트리밍 서비스를 지원하는 방법 및 장치
PCT/KR2017/010945 WO2018066920A1 (ko) 2016-10-06 2017-09-29 스트리밍 서비스를 지원하는 방법 및 장치
EP17858714.3A EP3518488B1 (en) 2016-10-06 2017-09-29 Method and device for supporting streaming service
US16/339,854 US11025755B2 (en) 2016-10-06 2017-09-29 Method and device for supporting streaming service

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160128956A KR102454470B1 (ko) 2016-10-06 2016-10-06 스트리밍 서비스를 지원하는 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20180038188A true KR20180038188A (ko) 2018-04-16
KR102454470B1 KR102454470B1 (ko) 2022-10-14

Family

ID=61831153

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160128956A Active KR102454470B1 (ko) 2016-10-06 2016-10-06 스트리밍 서비스를 지원하는 방법 및 장치

Country Status (4)

Country Link
US (1) US11025755B2 (ko)
EP (1) EP3518488B1 (ko)
KR (1) KR102454470B1 (ko)
WO (1) WO2018066920A1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090046717A1 (en) * 2007-08-15 2009-02-19 Qing Li Methods to improve transmission control protocol (tcp) performance over large bandwidth long delay links
US20120221681A1 (en) * 2009-11-09 2012-08-30 Huawei Technologies Co., Ltd. Method, apparatus and system for hierarchically requesting contents in a http streaming system

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1395014B1 (en) * 2002-08-27 2006-06-14 Matsushita Electric Industrial Co., Ltd. A method of transmitting data streams with data segments of variable length
US7991904B2 (en) 2007-07-10 2011-08-02 Bytemobile, Inc. Adaptive bitrate management for streaming media over packet networks
US20090094374A1 (en) * 2007-10-04 2009-04-09 Hong Kong Applied Science And Technology Research Institute Co., Ltd. Systems and methods providing lists of available streaming content
EP2437458A1 (en) 2010-09-30 2012-04-04 British Telecommunications Public Limited Company Content delivery
KR101180540B1 (ko) 2010-10-20 2012-09-06 연세대학교 산학협력단 스트리밍 서비스 송/수신 장치 및 방법
CN105532013B (zh) * 2013-07-12 2018-12-28 佳能株式会社 利用推送消息控制的自适应数据流传输方法
WO2015110168A1 (en) 2014-01-24 2015-07-30 Nokia Solutions And Networks Oy Cooperative optimization of end-to-end content delivery
US9635077B2 (en) 2014-03-14 2017-04-25 Adobe Systems Incorporated Low latency live video streaming
KR101590707B1 (ko) 2014-06-02 2016-02-01 재단법인 씨윗코리아 적응형 스트리밍 제공방법
KR102174325B1 (ko) 2015-02-13 2020-11-04 에스케이텔레콤 주식회사 네트워크 적응형 컨텐츠 제공을 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록 매체 및 네트워크 적응형 컨텐츠 제공 장치

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090046717A1 (en) * 2007-08-15 2009-02-19 Qing Li Methods to improve transmission control protocol (tcp) performance over large bandwidth long delay links
US20120221681A1 (en) * 2009-11-09 2012-08-30 Huawei Technologies Co., Ltd. Method, apparatus and system for hierarchically requesting contents in a http streaming system

Also Published As

Publication number Publication date
EP3518488B1 (en) 2021-10-27
US11025755B2 (en) 2021-06-01
KR102454470B1 (ko) 2022-10-14
WO2018066920A1 (ko) 2018-04-12
EP3518488A4 (en) 2019-07-31
US20190306280A1 (en) 2019-10-03
EP3518488A1 (en) 2019-07-31

Similar Documents

Publication Publication Date Title
KR102119287B1 (ko) 이용가능한 대역폭에 따라 전송 프로토콜을 선택함으로써 콘텐츠를 획득하는 장치
EP3108639B1 (en) Transport accelerator implementing extended transmission control functionality
CN108063769B (zh) 一种内容服务的实现方法、装置及内容分发网络节点
JP7307211B2 (ja) クライアント、サーバ、受信方法及び送信方法
US20150271302A1 (en) Transport accelerator implementing client side transmission functionality
US9356985B2 (en) Streaming video to cellular phones
WO2012151865A1 (zh) 一种传输数据的方法和系统
JP2014520422A (ja) 受信ビットレートの動的適応方法および関連する受信機
KR102428194B1 (ko) 매니페스트리스 스트리밍 미디어 콘텐츠를 전달하기 위한 방법들, 시스템들, 및 매체들
EP3113442B1 (en) Method and server for improving quality in adaptive streaming delivery systems
WO2013185547A1 (zh) 一种缓存服务器的服务方法、缓存服务器及系统
KR102454470B1 (ko) 스트리밍 서비스를 지원하는 방법 및 장치
KR20190048186A (ko) 적응적 스트리밍 서비스를 위한 다중 경로 기반 분할 전송 시스템 및 스트리밍 방법
CN106936808A (zh) Http流媒体传输方法及装置
KR20160090521A (ko) 단말 협력 통신을 통한 스트리밍 제공 방법, 서버 및 시스템
KR20200018890A (ko) 무선 스트리밍 방법

Legal Events

Date Code Title Description
PA0109 Patent application

St.27 status event code: A-0-1-A10-A12-nap-PA0109

PG1501 Laying open of application

St.27 status event code: A-1-1-Q10-Q12-nap-PG1501

E13-X000 Pre-grant limitation requested

St.27 status event code: A-2-3-E10-E13-lim-X000

P11-X000 Amendment of application requested

St.27 status event code: A-2-2-P10-P11-nap-X000

P13-X000 Application amended

St.27 status event code: A-2-2-P10-P13-nap-X000

PA0201 Request for examination

St.27 status event code: A-1-2-D10-D11-exm-PA0201

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

P22-X000 Classification modified

St.27 status event code: A-2-2-P10-P22-nap-X000

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

St.27 status event code: A-1-2-D10-D22-exm-PE0701

PR0701 Registration of establishment

St.27 status event code: A-2-4-F10-F11-exm-PR0701

PR1002 Payment of registration fee

St.27 status event code: A-2-2-U10-U11-oth-PR1002

Fee payment year number: 1

PG1601 Publication of registration

St.27 status event code: A-4-4-Q10-Q13-nap-PG1601

P22-X000 Classification modified

St.27 status event code: A-4-4-P10-P22-nap-X000

PR1001 Payment of annual fee

St.27 status event code: A-4-4-U10-U11-oth-PR1001

Fee payment year number: 4

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-OTH-PR1001 (AS PROVIDED BY THE NATIONAL OFFICE)

Year of fee payment: 4