KR102469659B1 - 데이터 전송 장치, 데이터 전송 제어 방법, 및 데이터 스트림 - Google Patents

데이터 전송 장치, 데이터 전송 제어 방법, 및 데이터 스트림 Download PDF

Info

Publication number
KR102469659B1
KR102469659B1 KR1020160039034A KR20160039034A KR102469659B1 KR 102469659 B1 KR102469659 B1 KR 102469659B1 KR 1020160039034 A KR1020160039034 A KR 1020160039034A KR 20160039034 A KR20160039034 A KR 20160039034A KR 102469659 B1 KR102469659 B1 KR 102469659B1
Authority
KR
South Korea
Prior art keywords
throughput
parameter
data
data transmission
window
Prior art date
Application number
KR1020160039034A
Other languages
English (en)
Other versions
KR20170022851A (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 US15/240,558 priority Critical patent/US10164893B2/en
Publication of KR20170022851A publication Critical patent/KR20170022851A/ko
Application granted granted Critical
Publication of KR102469659B1 publication Critical patent/KR102469659B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/14Network analysis or design
    • H04L41/145Network analysis or design involving simulating, designing, planning or modelling of a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0075Transmission of coding parameters to receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 개시는 통신 네트워크를 통한 데이터 전송의 파라미터들을 추정하는 서버로서 동작하는 장치를 제공한다. 서버 장치는 데이터 전송 동작을 수행하는 트랜시버및 데이터 전송 동작의 파라미터들 중 하나로서 처리율을 추정하는 추정기를 포함한다. 상기 추정기는 데이터 트래픽 측정치들로부터 산출되는 추정된 병목 대역폭에 대응하는 처리율의 지시 값을 더 결정한다. 상기 지시 값은 데이터 트래픽과 관련된 측정치들로부터 산출되는 데이터 전송 동작의 최적 파라미터들에 기인한 것으로, 그러한 최적 파라미터들을 지시한다. 특히, 상기 지시 값은 데이터 전송 동작이 일어나는 통신 네트워크의 혼잡 상태에 따라, 병목 대역폭에 대한 추정치를 업데이트하는데 사용될 수 있다. 서버 장치는 또한, 트랜시버 및 추정기들과 통신하며, 추정기가 결정한 병목 대역폭 추정치에 기반하여, 통신 네트워크를 통해 클라이언트 장치로의 다음 데이터 전송 동작을 준비하도록 구성되는 프로세서를 포함한다.

Description

데이터 전송 장치, 데이터 전송 제어 방법, 및 데이터 스트림{DATA TRANSFER DEVICE, DATA TRANSFER CONTROLLING METHOD AND DATA STREAM}
본 개시는 일반적으로, 통신 네트워크를 통해 데이터를 클라이언트 장치로 전송하는 서버로서 동작하는 데이터 전송 장치에 관한 것이다. 특히 본 개시는 데이터 전송 동작의 파라미터들을 추정하는 장치 및 이와 관련된 방법에 관한 것이다.
서버 장치에서 클라이언트 장치로의 데이터 전송을 돕는 통신 네트워크의 동작 대역폭 사양에 따라 비트레이트 품질을 가변하는 것이 데이터 전송 동작에 대한 분야의 관례였다. 상기 동작에서 서버 장치는, 통상적으로 배포할 미디어 세그먼트들 및 관련 설정사항들을 포함하는 메니페스트(manifest) 파일을 통해, 이용 가능한 스트림 품질을 위해 요구되는 동작 대역폭(이하, '대역폭')을 결정한다. 한편 클라이언트 장치는 대역폭 추정치와 같은 데이터 전송 동작의 추정 파라미터에 기반하여 어떤 미디어 세그먼트를 다운로드 받을지를 선택한다. 많은 상황들에서, 부정확한 대역폭 추정은 여러 가지 문제를 야기할 수 있다. 예컨대, 대역폭 추정치가 실제 대역폭보다 클 경우 재생 중단을 일으키고, 그렇지 않고 대역폭 추정치가 실제 대역폭보다 작을 경우 최적화되지 않은 재생 품질을 가져온다. 그러한 상황들에 있어서, 통신 네트워크의 현재 대역폭 사양으로 다운로드될 수 있는 최고 가용 품질로의 재생이나 데이터 스트리밍 시의 장애들을 방지하기 충분하도록 정확한 데이터 전송 동작의 추정 파라미터를 제공하는 것이 크게 요망된다.
2007년 5월 24일에 공개된 캘리포니아 대학 이사회의 미국 특허 공개 제20070115814는 실시예들 중 하나에서, 대역폭 추정치와 같은 레이트(rate) 추정치 및 상기 레이트 추정치에 기반하는 레이트 샘플의 생성을 야기하도록 구성된 데이터 프로세싱 장치를 개시하며, 상기 레이트 샘플은 시간 가변 계수들을 가진 필터를 이용하여 완만한 레이트 추정치를 도출하기 위해 이전 레이트와 기하급수적으로 평균되고, 상기 필터는 필터 이득을 결정하고, RTT(rount-trip time) 및 기타 네트워크 상태들에 적응함으로써 시간에 따라 가변하도록 구성된 윈도우 함수의 한 형식인 EWMA(exponentially-weighted moving average, 지수 가중 이동 평균) 필터로 구현된다.
윈도우 함수는 조작, 처리, 및 분석되어야 할 시계열(time series) 상의 여러 데이터 포인트들(순시적 측정)의 스냅샷이나 부분집합을 취하는 수학적 방법이다. 상기 윈도우 함수에 의해 규정된 윈도우 범위 안의 값들은 그 자체로서 선택되거나, 소정 이득 요소와 곱해져 선택될 수 있다. 한편 상기 윈도우 범위 밖의 값들은 0이다. 상기 윈도우 범위 안의 값들의 가중 요소들이 윈도우 함수가 도출하는 추정치에 소정의 영향을 미칠 수 있다. 상기 가중 요소들에 영향을 받는 데이터의 특징들은 평탄도(smoothness)와 버스트(burst)에 대한 응답성등이 될 수 있다. 상기 공개 특허의 상기 데이터 처리 장치는 EWMA 필터를 적용하는 방법을 통해 재생 또는 데이터 스트리밍 시의 장애들을 방지하도록 기능하는 데이터 프로세싱 장치를 제공할 것으로 추정된다. 그러나, 상기 EWMA 필터의 역할을 하는 각각의 윈도우 함수가 특정 응용예들과 신호 유형들 및 특성들과 관련하여 서로 다르게 작용한다는 사실은 무시하기가 어렵다.
일 예로, HTTP(Hypertext Transfer Protocol) 기반 스트리밍 시의 데이터에서 기본 패턴들은 급속히 변화한다. HTTP를 통해 이루어진, 한 컴퓨터로부터의 데이터 전송 요구들은 그 기본 통신 프로토콜로서 TCP(Transmission Control Protocol)를 이용한다. 상기 TCP는 자체적인 혼잡 회피, 재전송, 및 대역폭 제어 알고리즘들을 가진다. 하나의 관련된 TCP의 특징이 그것의 스퓨리어스 처리율 변동(spurious throughput fluctuations)이다. 상기 변동은 순시적 처리율 측정치들로부터 추정된 동작 대역폭을 결정하기 위한 프로세스의 정확도에 영향을 미친다. 하나의 윈도우 함수만을 상술한 EWMA와 같은 필터로서 사용하는 시계열적 분석 프로세스는 급속히 변화하는 데이터로부터 기본 패턴들을 캡처하거나 그 패턴들에 대해 반응함에 있어 충분치 않을 수 있다. 이와 관련하여, 상기 공개 특허의 상기 데이터 프로세싱 장치와 관련된 문제는, 시계열적 윈도우 함수의 한 종류를 평탄화된 레이트 추정치, 즉 대역폭 추정치를 도출하기 위한 필터로서 사용하는 것이 항상 유효하지 않을 수 있다는 것이다. 그 이유는 최선의 윈도우 함수 종류와 시간 도메인 표현과 관련한 그 주기적 양태가 각각의 특정 응용예 및 급속히 변경되는 데이터로부터의 기본 패턴들에 좌우되기 때문이다.
따라서, 데이터 전송 동작을 제공하고, 처리율을 포함하는, 통신 네트워크를 통한 데이터 전송의 파라미터들을 추정할 수 있는 데이터 전송 장치 및 관련된 컴퓨터 구현 방법 및 데이터 스트림이 필요하다. 본 개시에서는 처리율과 관련된 값들이 의사 처리율 변동 및 내재적 가변 네트워크 상태들에도 불구하고 항상 정확하게 시계열적으로 추정되는 방법 및 장치에 대해 제공한다.
본 개시는 통신 네트워크를 통한 데이터 전송의 파라미터들을 추정하는 서버로서 동작하는 데이터 전송 장치를 제공한다. 서버 장치는 데이터 전송 동작을 수행하는 트랜시버 및 데이터 전송 동작의 파라미터들 중 하나로서 처리율을 추정하는 추정기를 포함한다. 추정기는 또한, 추정된 병목 대역폭에 대응하는 처리율의 지시 값을 더 결정한다. 지시 값은 통신 네트워크 상의 데이터 트래픽과 관련된 측정치들로부터 산출되는 데이터 전송 동작의 최적 파라미터들에 기인한 것으로, 그러한 최적 파라미터들을 지시한다. 특히, 지시 값은 데이터 전송 동작이 일어나는 통신 네트워크의 혼잡 상태에 따라, 병목 대역폭에 대한 추정치를 업데이트하는데 사용될 수 있다.
트랜시버는 통신 네트워크를 통해 서버 장치와 통신하는 클라이언트 장치로/로부터 데이터 전송 동작을 수행하도록 구성된다. 추정기는 데이터 전송 동작의 파라미터(즉, 처리율)을 측정하도록 구성된다. 추정기는 또한, 데이터 전송 동작의 측정된 처리율이나 처리율 측정치들을 시계열로 변환하고(즉, 데이터 전송 동작의 처리율이 시계열의 특징으로서 순차적으로 측정됨), 시계열로 변환된 데이터 전송 동작의 처리율의 지시 값을 결정하도록 구성된다.
추정기는 특히, 윈도우 함수들의 어레이를 이용하여 시계열로 변환된 데이터 전송 동작의 파라미터들 중 하나로서 처리율의 값들에 대해 필터링, 또는 필터를 적용함으로써 지시 값을 결정한다. 필터들을 통해 그 값들을 통과시키는 프로세스는 결과적으로, 윈도우 함수의 모양에 따라 시계열을 형상화한다. 필터링된 값들 중에서, 추정기가 최대 값을 결정한다. 따라서 지시 값은 처리율 측정치들의 윈도우 내 최대 처리율 측정치에 해당한다. 프로세서는 추정기가 결정한 지시 값에 기반하여, 통신 네트워크를 통해 클라이언트 장치로 이어지는 데이터 전송 동작을 준비하도록 구성된다.
처리율 측정치는 단기 측정치임이 바람직하다. 윈도우 함수들의 어레이에 포함된 처리율 측정치들의 윈도우로부터 단기 최대 처리율 측정치는, 데이터 전송 동작의 미드스트림(mid-stream) 제로 트래픽 상태들의 효과를 둔화시키기 위해 추정된 병목 대역폭에 대해 계산하기 위해 사용된다. 윈도우 함수들의 어레이는 이하의 윈도우 함수들 중 둘 이상을 포함할 수 있다: 단순 이동 평균, 직사각 이동 평균, 삼각 윈도우 함수, 한(Hann) 윈도우 함수, 가우스(Gaussian) 윈도우 함수, 선형 가중 이동 평균, 및 지수함수적 가중 이동 평균.
데이터 처리 동작의 파라미터 및 최대 처리율 측정치를 나타내는 처리율 측정치들에 적용되는 필터를 특징짓는 윈도우 함수들의 어레이의 제공은, 추정된 파라미터(즉, 데이터가 통신 네트워크를 통해 전송될 수 있는 최대 달성가능 처리율과 부합하는 병목 대역폭)가 다양한 윈도우 함수들의 다양한 동향들이 추정된 파라미터의 정확도에 영향을 미치지 않도록 하는 것을 보장한다. 이러한 제공은, 추정된 파라미터, 즉 추정된 병목 대역폭이, 급속히 바뀌는 데이터의 시간 도메인 표현과 관련하여 윈도우 함수들의 어레이에 포함된 윈도우 함수들 중 각각의 것의 주기적 동향의 변화에도 불구하고, 서버 장치의 추정기에 의해 정확하게 수행되도록 보장한다.
추정기는 기본적으로, 네트워크 측정 샘플링 모듈, 윈도우 함수 평탄화 모듈, 및 병목 대역폭 추정 모듈을 포함할 수 있다. 네트워크 측정 샘플링 모듈은 이어지는 데이터 전송 동작의 처리율, 패킷 손실율, 및 왕복 시간(RTT)을 포함할 수 있는 순간 네트워크 측정치들을 제공한다. 윈도우 함수 평탄화 모듈은 네트워크 트래픽 측정치들을 시계열 상의 포인트들로서 확인하고, 데이터 전송 동작의 추정된 병목 대역폭을 도출하기 위해 다수의 네트워크 트래픽 측정치들에 정형화(shaping) 필터들과 같은 다양한 윈도우 함수들을 적용한다. 병목 대역폭 추정 모듈은 타깃 값과 관련하여 최소 에러율을 가진 출력 값을 도출하는 윈도우 함수에 기반하여, 병목 대역폭 측정치의 추정기로서 윈도우 함수들의 어레이에 포함된 최적 윈도우 함수를 결정한다. 출력 값은 혼잡 지시 값이 현재의 추정치가 업데이트되면 안된다고 제안하지 않는 한, 업데이트된 병목 대역폭 추정치의 역할을 할 수 있다. 상기 지시 값 외에, 혼잡 지시 값은 업데이트된 병목 대역폭 추정치에 마찬가지로 영향을 미친다.
본 개시의 다른 양태는 데이터 전송 동작의 추정된 파라미터들에 기반하여 통신 네트워크를 통해 데이터 전송 동작을 제어하는 컴퓨터 구현 방법을 제공한다. 이 방법은 (i) 통신 네트워크의 동작 상태들을 모니터링하는 단계; (ii) 상기 모니터링된 동작 상태들과 관련된 파라미터를 측정하는 단계; (iii) 상기 측정된 파라미터를 시계열 안에 변환하는 단계; (iv) 윈도우 함수들의 어레이를 이용하여 상기 시계열 안에 변환된 적어도 하나의 파라미터의 값들을 필터링하고, 상기 필터링된 적어도 하나의 파라미터의 값들로부터 최대값을 결정함으로써, 상기 적어도 하나의 파라미터의 적어도 하나의 지시 값을 결정하는 단계; 및 (v) 상기 모니터링된 동작 상태들과 관련된 다른 파라미터들의 함수로서 적어도 하나의 지시 값에 기반하여 데이터 스트림을 선택적으로 트랜스코딩하는 단계를 포함한다.
본 개시의 또 다른 양태는 프로세서에 의해 실행될 때, 상기 프로세서가 적어도 하나의 다음과 같은 동작을 수행하도록 하는 명령어들을 가진 컴퓨터 프로그램을 나타내는 데이터 스트림을 제공한다: (i) 클라이언트 장치로/로부터의 데이터 전송 동작을 수행하는 단계; (ii) 상기 데이터 전송 동작의 파라미터를 측정하는 단계; (iii) 상기 데이터 전송 동작의 상기 측정된 파라미터를 시계열 상으로 변환하는 단계; (iv) 윈도우 함수들의 어레이를 사용하여 상기 시계열 상으로 변환된 상기 데이터 전송 동작의 파라미터의 값들을 필터링하는 단계; (v) 상기 데이터 전송 동작의 파라미터의 필터링된 값들에서 최대 값을 결정하는 단계; 및 (vi) 상기 지시 값에 기반하여, 통신 네트워크를 통한 상기 클라이언트 장치로의 이어지는 데이터 전송 동작을 준비하는 단계.
본 개시의 보다 나은 이해를 위해, 본 개시가 어떻게 수행될지를 보이기 위한 본 개시의 바람직한 실시예들이, 첨부된 도면들을 참조하여 비한정적인 예들을 들어 이하에서 기술될 것이다.
도 1은 본 개시의 일 실시예에 따라, 데이터 전송 동작의 파라미터들을 추정하는데 사용할 데이터 전송 장치의 구성을 도시한 블록도이다.
도 2는 본 개시의 일 실시예에 따라, 데이터 전송 동작을 제어하는 방법을 도시한 흐름도이다.
도 3은 본 개시의 일 실시예에 따라, 네트워크 측정 샘플링 모듈에 의해 수행되는 프로세스를 도시한 흐름도이다.
도 4는 본 개시의 일 실시예에 따라, 윈도우 함수 평탄화 모듈에 의해 수행되는 프로세스를 도시한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 윈도우 함수 평탄화 모듈의 개략도이다.
도 6은 본 개시의 일 실시예에 따라, 병목 대역폭 추정 모듈에 의해 수행되는 프로세스를 도시한 흐름도이다.
이하 본 개시의 실시 예를 첨부한 도면과 함께 상세히 설명한다. 또한 본 개시를 설명함에 있어서 관련된 공지 기능 혹은 구성에 대한 구체적인 설명이 본 개시의 요지를 불필요하게 흐릴 수 있다고 판단된 경우 그 상세한 설명은 생략한다. 그리고 후술되는 용어들은 본 개시에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 개시의 일 실시 예에 따라, 데이터 전송 동작의 파라미터들을 추정하는데 사용할 데이터 전송 장치의 구성을 도시한 블록도이다.
상기 데이터 전송 장치는 서버로서 동작하며, 본 개시의 바람직한 실시예들에 대한 이어지는 설명 전체에서 참조 부호 100으로 일관되게 표기될 것이다. 상기 서버 장치(100)는 통신 네트워크(104)를 통해 클라이언트 장치(102)와 통신한다.
메니페스트(manifest) 파일이나 미디어 플레이 리스트(106)는 보다 작은 플레이 리스트들(106c) 및 그런 다음 미디어 세그먼트들(106d)로 분할될 수 있는 마스터 플레이 리스트(106a)를 포함한다. 상기 메니페스트 파일이나 미디어 플레이 리스트(106)는 서버 장치(100)에 의해 제공되고, 저장된 미디어 세그먼트들 및 미디어 세그먼트들의 다양한 메타데이터의 위치를 나타낼 수 있다. 상기 미디어 플레이 리스트(106) 안에 나열될 수 있는 정보는 세그먼트의 길이(초 단위로 측정가능), 및 스트림 품질 안에서 그 미디어 세그먼트를 재생하는데 요구되는 대역폭(bps 또는 초 당 비트, 또는 임의의 단위로 측정가능) 등이 있다.
상기 미디어 플레이 리스트(106)는 콘텐츠 데이터베이스(108)에 저장될 수 있고 서버 장치(100)에 의해 액세스될 수 있다. 또한, 상기 미디어 플레이 리스트(106)는, 통신 네트워크(104)를 통해 서버 장치(100)와 통신하는 클라이언트 장치(102)로의 전송을 위해 구성된다. 서버 장치(100)는 일반적으로, 미디어 플레이 리스트(106)와 관련된 콘텐츠를 서버 장치(100)의 프로세서(110)에 의해 여러 비트레이트 품질들로 인코딩되게 하고, 상기 인코딩된 콘텐츠는 통신 네트워크(104)를 통해 클라이언트 장치(102)와 통신하도록 구성된다.
통신 네트워크(104)는 본 개시에 따른 서버 장치(100)의 일부 또는 전체 및 클라이언트 장치(102)의 일부 또는 전체에 의해 수행되거나 이행될 수 있도록 한다. 통신 네트워크(104)는 예를 들어, 가변 사이즈의 패킷들 및 프레임들의 교환을 돕는 IP(Internet Protocol) 네트워크나 이더넷을 포함하는 패킷 네트워크, 비동기 시분할 다중화의 결과로서 고정 사이즈의 패킷들의 교환을 돕는 ATM(asynchronous transfer mode) 네트워크, 특히 작은 사이즈의 패킷들의 교환을 돕는 LTE(Long Term Evolution) 네트워크와 같은 4G 무선 브로드밴드 네트워크 등과 같은 전기 통신 분야에 알려져 있는 타입의 것일 수 있다. 당업자라면, 통신 네트워크(104)가 이 명세서에서는 데이터 통신을 특징으로 하는 것들로서 구현되어 있지만, 본 개시의 구성요소들의 일부나 전부를 수행하거나 이행하는 데 있어, 예컨대 PSTN(public switched telephone network)을 통한 통신 분야의 패킷 교환 또한 대안적으로 사용될 수 있다는 것을 알 수 있다.
본 개시에서, 통신 네트워크(104)는 일 예로TCP/IP(Transmission Control Protocol/Internet Protocol) 네트워크이다. IP는 인터넷을 통한 서버 장치(100) 및 클라이언트 장치(102) 사이의 데이터 패킷들의 송신 및 수신을 돕는다. TCP는 서버 장치(100)에서 클라이언트 장치(102)로 데이터를 전송하기 전에, 그 데이터를 보다 작은 패킷들로 분해하는 것을 돕는다. TCP는 또한, 패킷들이 클라이언트 장치(102)에 도달했으면, 분해된 패킷들의 구성을 돕는다.
서버 장치(100)는 트랜시버(112), 전송 버퍼(114), 및 메모리(116)를 포함한다. 하나 이상의 메모리는 서버 장치(100)에서 어떤 적절한 위치들 상에서 데이터 및 컴퓨터 실행가능 프로그램 명령어들을 저장할 수 있도록 구성될 수 있다. 메모리(116)는 프로세서(110)에 의해 액세스되도록 허용하여 전송할 데이터를 준비하고 프로세서(110)에 의해 명령어들이 실행될 수 있도록 한다. 메모리(116)는 RAM (random access memory), ROM (read-only memory), FRAM (Ferroelectric RAM), DRAM (Dynamic random access memory), SDRAM(synchronous DRAM) 등 중 하나 이상을 포함할 수 있다.
메모리(116)로부터 데이터를 가져와 처리할 수 있을 뿐 아니라, 메모리(116)로부터 명령어들을 실행할 수 있는 프로세서(110)는 단일 프로세서이거나, 효율적인 데이터 프로세싱을 위해 다중 프로세서들로서 구현될 수 있다. 프로세서(110)는 트랜스코딩 동작 또는, 특히 서버 장치(100)로/로부터 보내고/수신된 데이터의 인코딩이나 디코딩을 수행할 수 있다. 프로세서(110)는 서버 장치(100)와 관련하여 국지적으로 배치될 수 있다. 또는, 클라우드 기반 컴퓨팅을 통해 서버 장치(100)에서 원격으로 배치될 수 있다. 선택적으로, 서버 장치(100)는 국지적이고 원격으로 위치하는 프로세서들을 적절히 조합하여 사용할 수 있다. 예컨대, 서버 장치(100)는 웹 서버이거나 HTTP 서버일 수 있다.
트랜시버(112)는 통신 네트워크(104)를 통해 클라이언트 장치(102)와의 데이터 통신을 수행하도록 구성되는 인터페이스 장치이다. 트랜시버(112)는 통신 패킷들이 라우팅될 수 있는 송신기 및 수신기로서 동작할 수 있는 단일 통신 인터페이스 장치일 수 있다. 그러나, 별도의 구성이 아닌 프로세서(110)가 네트워크 트래픽을 수신 및/또는 전송할 수 있다. 일반적으로 트랜시버(112)는 클라이언트 장치(102)로/로부터의 데이터 전송 동작을 이행한다. 특히 트랜시버(112)는 프로세서(110)나, 클라이언트 장치(102)와 데이터 통신을 수행하는 매개자 역할을 하는 어떤 적절한 액세스 포인트로부터 데이터 패킷들을 나타내는 정보를 수신하도록 구성될 수 있다.
전송 버퍼(114)는 다양한 크기의 여러 비트 데이터 프레임들로 분할될 수 있는 통신 데이터를 버퍼링하기 위한, 서버 장치(100)와 관련된 회로일 수 있다. 트랜스코더 역할을 하는 프로세서(110)에 의해 변환되는 디지털 데이터 비트레이트는 전송 버퍼(114)에 의해 처리된다. 프로세서(110)는 통신 네트워크(104)의 통신 속도, 즉 대역폭 변경을 검출하기 위해, 전송 버퍼(114)에 의해 처리되는 데이터량의 변화를 모니터하도록 한다. 통신 속도 또는 대역폭의 변화를 검출되면, 프로세서(110)는 통신 데이터를 포함하는 데이터 전송 동작의 비트레이트가 소정 레벨로 스위칭되도록 통신 데이터의 트랜스코딩을 수행한다. 단순히 말하면, 비트레이트는 통신 네트워크(104)의 소정 대역폭이 처리할 수 있는 소정 품질이 되도록 조정된다.
한편 클라이언트 장치(102)는 서버 장치(100)의 프로세서(110)에 의해 트랜스코딩되고, 서버 장치(100)의 트랜시버(112)를 통해 전송되는 데이터 패킷들을 수신한다. 클라이언트 장치(102)는 통신 네트워크(104)를 통해 서버 장치(100)와의 통신을 가능하게 하는 트랜시버(118), 트랜시버(118)로부터 데이터 패킷들을 수신하는 수신 버퍼(120), 메모리(124)로/로부터 데이터 및/또는 명령어들을 저장 및/또는 가져오기 위한 프로세서(122), 및 프로세서(122)에 의해 디스플레이하도록 실행되는 데이터를 그래픽으로 나타내기 위한 디스플레이(126)를 포함할 수 있다. 프로세서(122)는 서버 장치(100)로부터 송신된 데이터 패킷들을 디코딩하기 위한 디코더로서 동작할 수 있다.
클라이언트 장치(102)는 통신 네트워크(104)를 통해 서버 장치(100)와 통신할 수 있는 데스크탑 컴퓨터, 랩탑 컴퓨터, 태블릿 퍼스널 컴퓨터, 스마트폰, 및 다른 적절한 데이터 통신 장치들일 수 있다. 클라이언트 장치(102)는 통신 네트워크(104)를 통해 서버 장치(100)로 데이터 스트림에 대한 요청을 전송할 수 있다. 예를 들어, 서버 장치(100)로 전송되는 데이터 스트림에 대한 요청은 클라이언트 장치(102)의 프로세서(122)에 의해, 클라이언트 장치(102) 상에서 실행되는 미디어 브라우징 애플리케이션에 의해 생성될 수 있다. 상기 데이터 스트림에 대한 요청에 응답하여, 서버 장치(100)의 프로세서(110)는 요청된 데이터 스트림을 준비하여 클라이언트 장치(102)로 보낼 수 있다. 상기 미디어 브라우징 애플리케이션은 서버 장치(100)에 의해 전송되는 데이터 스트림에 대한 링크나 하이퍼링크를 포함할 수 있다.
본 개시는 일 실시 예에 따라 통신 네트워크(104)를 통해 서버 장치(100) 및 클라이언트 장치(102) 사이의 데이터 전송 동작의 파라미터들을 측정하도록 구성되는 서버 장치(100)를 제공한다. 서버 장치(100)는 데이터 전송 동작의 파라미터들(130) 중 적어도 하나를 측정하도록 구성된 추정기(128)를 포함하거나, 별도로 구성될 수 있다. 또한, 서버 장치(100)가 추정기(128)을 포함하는 경우 내부의 별도의 구성이 아닌 프로세서(110)에 의해 추정기(128)의 기능이 실행될 수 있다. 서버 장치(100)의 추정기(128)에 의해 수행되도록 구성된 측정 동작은 데이터 전송 동작에 대한 순간적(instant) 측정, "순간적 트래픽 측정" 또는 "순간적 네트워크 측정"이다. 추정기(128)에 의해 주로 측정되는 파라미터(130)는 데이터 전송 동작의 처리율(throughput), 패킷 손실율(packet loss rate, PLR), 및 왕복 시간(return trip time, RTT)(130) 등과 같은 네트워크 트래픽 파라미터들이다. 또한, 혼잡 상태 지시 값(congestion state indicator value)(134)은 추정기(128)에 의해 제공될 수 있는 순간적 네트워크 측정치 중 하나일 수 있다.
추정기(128)는 데이터 전송 동작의 측정된 파라미터(130)를 시계열(time-series)(132)로 변환하도록 더 구성된다. 즉, 더 구체적으로, 추정기(128)는 처리율을 측정하거나 데이터 전송 동작의 처리율 측정치들을 순차적으로 시계열의 특징으로서 제공하도록 구성된다. 이 경우, 처리율(130)의 시계열(132) 데이터는 추정기(128)에 의해 도출될 수 있다. 그 순서로, 처리율(130) 데이터를 포함하는 네트워크 트래픽 측정치들이 시계열(132) 상의 포인트들로서 다뤄질 수 있다.
처리율의 추정에는 두 가지 방법이 있다. 첫 번째 방법은 수동적인(passive) 방법이며, 두 번째 방법은 능동적인(active) 방법이다. 상기 수동적인 방법은 네트웍 트래픽(RTT, loss), 네트웍 특성, 경계(boundaries) 등의 측정된 변수들을 기초로 수학식의 계산을 통해 구하는 것이다. 상기 능동적인 방법은 현재의 실제 트래픽에서 네트웍의 반응을 측정하여 구하는 것이다. 즉, 프로빙(probing) 신호를 보내거나 실제 트래픽을 분석하여 얻을 수 있다.
전송률을 구하는 기본적인 수학식은 다음과 같다.
Figure 112016031027677-pat00001
여기서, T는 전송률, Datasize는 전송할 데이터의 크기, Datatransfer -time는 데이터를 전송하는데 소요된 시간을 의미한다.
추정기(128)는 또한, 네트워크 전송 파라미터(130), 즉 시계열(132)로 변환된 데이터 전송 동작의 처리율, 패킷 손실율, 및 왕복 시간(130)의 지시 값(134)을 결정하도록 구성된다. 혼잡 상태(134)의 지시 값은 네트워크 전송 파라미터들(130) 복수의 값들로부터, 서버 장치(100)의 추정기(128)에 의해 측정됨이 바람직한 파라미터로 선택된다. 상기 혼잡 상태 지시 값은 처리율, 패킷 손실율, 및 왕복 시간 등과 같은 네트워크 전송 파라미터들로부터 산출된다. 상기 혼잡 상태 지시자가 어떤 임계값(threshold)에 도달하면 병목 대역폭 추정치가 업데이트되며, 다음에 의해 결정되는 값으로 업데이트한다: (i) 처리율(130)의 값들을, 시계열로 변환된 데이터 전송 동작의 측정됨이 바람직한 파라미터로서 필터링; 및 (ii) 상기 필터링된 값들로부터 최대 값을 결정. 윈도우 함수들의 어레이(136), 즉 둘 이상의 윈도우 함수들(136)은 처리율(130) 값들을 필터링하는데 사용될 수 있다.
서버 장치(100)의 프로세서(110)는 서버 장치(100)의 추정기(128)에 의해 결정된 지시 값(134)에 기반하여, 통신 네트워크(104)를 통해 클라이언트 장치(102)로 이어지는 데이터 전송 동작을 준비하도록 구성된다. 윈도우 함수들(136)의 어레이를 사용하여 필터링된 처리율(130) 측정치들은 단기간(가령, 2 초 미만)에 샘플링됨이 바람직하다. 처리율 측정치들(가령, 10 개의 처리율 측정치들)의 윈도우 내에서, 최대 처리율(130) 측정치가 결정된다. 본 개시의 바람직한 실시예들에 대한 이하의 개시에서 보다 상세히 논의하는 바와 같이, 상기 결정된 최대 처리율(130) 측정치는 10 개의 처리율 측정치들(130)의 윈도우로부터의 최대 처리율(130) 측정치가 결정되는 데이터 전송 동작에 이어지는 추가 데이터 전송 동작에서의 추정된 병목 대역폭(또는 병목 대역폭의 추정치)를 업데이트하는데 사용될 수 있다.
병목 대역폭 추정치(134)의 지시 값(즉, 10 개의 처리율(130) 측정치들로부터 도출된 최대 처리율(130) 측정치)는 추가 데이터 전송 동작의 최적 파라미터(즉, 병목 대역폭)에 기인하는 것으로 최적 파라미터를 가리킨다.
병목 대역폭은 네트워크의 가장 느린 세그먼트에 의해 제약되는 대역폭의 값으로 정의된다. 사실상, 상기 병목 대역폭은 데이터가 통신 네트워크(104)를 통해 서버 장치(100)로부터 클라이언트 장치(102)로 전송될 수 있는 최대 달성가능 처리율(130)에 부합한다. 추정된 병목 대역폭은 바람직하고도 온전하게 사용되도록 설정될 수 있다. 이상적으로, 충분히 활용되는 대역폭은 추정된 병목 대역폭과 같은 레벨을 가지며, 이것은 다시, 측정된 처리율이 실제 병목 대역폭에 도달했음을 의미한다. 병목 대역폭은 혼잡 지시 값이 병목 대역폭 추정치를 최적으로 업데이트하기 위한 임계치에 도달하고, 추정기(128)가 서버 장치(100)와 관련하여 클라이언트 장치(102)로/로부터 모니터링한 네트워크 트래픽 흐름에 기반하여 계산되도록 설정되는 병목 대역폭 추정치 지시 값(134)에 해당한다.
추가 데이터 전송 동작에서의 연결이 도달할 수 있는 처리율(130)의 상한이 현재의 데이터 전송 동작에서의 병목 대역폭과 동일하다는 가정에 따라, 최대 달성가능 처리율(130)로 표현되는 지시 값(134)은 추가 데이터 전송 동작의 병목 대역폭을 산출하는데 사용될 수 있다. 최대 달성가능한 처리율(130)은 아래의 일련의 수학적 함수들을 이용하여 추정기(128)에 의해 산출된다.
Figure 112016031027677-pat00002
Figure 112016031027677-pat00003
Figure 112016031027677-pat00004
여기서,
Wmax는 윈도우 안에 들어가는 데이터 패킷의 최대값,
MTU(maximum transmission unit)는 패킷의 최대 전송 단위 또는 최대 사이즈,
RTT(round-trip time)는 왕복 시간, 또는 패킷이 한 위치에서 다른 위치로 이동하는데 요구되는 시간,
Receivedwindow -size는 수신 윈도우의 크기,
MSS(maximum segment size)는 TCP가 전송하는 최대 세그먼트 사이즈 또는 최대 사이즈 패킷들을 일컫고,
Ploss(packet loss)는 패킷 손실 또는 패킷(들)이 특정 목적지 도달에 실패한 것일 수 있다.
추정된 병목 대역폭을 계산하는데 사용될 수 있는 상기 수학적 함수들은 1997년 Mathis의 ACM SIGCOMM의 "TCP 혼잡 회피 알고리즘의 매크로스코픽 동향"으로부터 도출되며, 그 내용은 본 명세서에 참조의 형태로 전체가 포함된다.
데이터 처리 동작의 파라미터 및 최대 처리율(130) 측정치를 나타내는 처리율(120) 측정치들에 적용되는 필터를 특징짓는 윈도우 함수들(136)의 어레이의 제공은, 추정된 파라미터(즉, 데이터가 통신 네트워크(104)를 통해 전송될 수 있는 최대 달성가능 처리율(130)과 부합하는 병목 대역폭)는 다양한 윈도우 함수들(136)의 다양한 동향들이 추정된 파라미터의 정확도에 영향을 미치지 않도록 하는 것을 보장한다. 그 이유는 그들 중 어느 것이 정확하고 신뢰성 있는 병목 대역폭의 추정치를 산출하는지를 판단하기 위해 그들이 평가될 수 있기 때문이다. 이러한 제공은, 추정된 파라미터, 즉 병목 대역폭 추정치가, 급속히 바뀌는 데이터의 시간 도메인 표현과 관련하여 윈도우 함수들(136)의 어레이에 포함된 윈도우 함수들(136) 각각이 주기적 동향의 변화에도 불구하고, 서버 장치(100)의 추정기(128)에 의해 정확하게 수행되도록 보장한다.
추정기(128)는 측정된 처리율(130)의 타깃 지시 값을 결정하도록 더 구성된다(미도시). 상기 타깃 지시 값은 구체적으로, 추정기(128)에 의해, 윈도우 함수들(136)의 어레이에 포함되는 하나의 윈도우 함수(136)를 선택하기 위해 그것을 지시 값(134)과 비교함으로써 사용될 수 있다. 타깃 지시 값은 본 개시의 바람직한 실시예들에 대한 이어지는 내용에서 모두 논의될 수 있는 추가 측정 처리율, 데이터 전송 동작과 관련된 미디어 세그먼트의 처리율, 및 직사각 이동 평균치 중 어느 하나에 해당할 수 있다.
본 개시에 따르면, 서버 장치(100)는 개선된 데이터 전송 동작, 및 상기 데이터 전송 동작과 관련된 파라미터의 추정을 통신 네트워크(104)를 통해 제공할 수 있다. 서버 장치(100)는 상기 파라미터(130) 중 하나 이상과 관련된 값들을 의사 처리율 변동 및 고유한 가변 네트워크 상태에도 불구하고 항상 시계열(132)로 정확히 추정한다.
도 2는 본 개시의 일 실시 예에 따라, 서버 장치가 데이터 전송 동작의 추정된 파라미터에 기반하여, 통신 네트워크를 통해 데이터 전송 동작을 제어하는 방법을 도시한 흐름도이다.
본 개시에서 기술된 데이터 전송 동작의 제어 방법은 HTTP 적응 스트리밍 시 데이터 전송을 가속하는 데 사용하기 적합할 수 있다. 다른 적절한 미디어 스트리밍 프로토콜을 이용한 스트리밍 또한, 본 개시의 가속화된 데이터 전송이 사용될 수 있는 응용예들을 형성할 수 있다. 다른 미디어 스트리밍 프로토콜은 비한정적으로, HLS(HTTP live streaming), SS(smooth streaming), MPEG-DASH(dynamic adaptive streaming over HTTP), MPEG(motion picture experts group), HDS(HTTP dynamic streaming), RTMP(real time messaging protocol), 및 RTSP(real-time streaming protocol) 등을 포함할 수 있다.
상기 흐름도는 상기 서버 장치가 통신 네트워크의 동작 상태을 모니터링하는 것부터 시작한다(200). 상기 모니터링되는 통신 네트워크의 동작 상태에는 예컨대, 실질적 병목 대역폭, 이용가능 대역폭 및 현재의 처리율 등이 포함될 수 있다. 상기 서버 장치는 상기 통신 네트워크의 동작 상태와 관련된 하나 이상의 파라미터를 측정하고(202), 상기 측정된 파라미터 중 하나를 시계열로 변환한다(204).
상기 통신 네트워크의 동작 상태들의 파라미터와 관련된 시계열 데이터가 설정되었으면, 상기 서버 장치는 상기 파라미터의 지시 값을 결정한다. 상기 지시 값은, 윈도우 함수들의 어레이를 이용하여 시계열로 변환된 파라미터의 값을 필터링하고(206), 상기 필터링된 파라미터의 값 중에서 최대 값으로 결정될 수 있다(208). 상기 모니터링된 동작 상태의 일부를 형성하는 다른 파라미터의 함수로서 상기 지시 값에 기반하여 데이터 스트림이 선택적으로 트랜스코딩된다(210). 상기 데이터 스트림은 비디오 스트림, 오디오 스트림, 파일 전송 스트림, 메시징 스트림, 및 그래픽 스트림 중 어느 하나나 적절한 조합으로부터 선택된 미디어 스트림일 수 있다.
상기 지시 값에서 데이터 전송 동작의 파라미터는 처리율이 바람직하고, 상기 처리율의 지시 값은 추정된 병목 대역폭에 해당한다. 상기 병목 대역폭은 혼잡 윈도우(여기서 패킷 손실율이 관찰될 수 있다) 및 왕복 시간 중 하나 이상을 포함할 수 있다. 상기 지시 값은 데이터 전송 동작이 일어나는 통신 네트워크의 혼잡 상태에 기반하여 결정될 수 있다.
상기 데이터 전송 방법들의 제어 방법은, 다음의 사항을 더 포함할 수 있다: (i) 추정된 병목 대역폭, 및 데이터 전송 동작과 관련된 현재의 처리율에 기반하여, 통신 네트워크를 통해 클라이언트 장치로 데이터 스트림을 전송하기 위한 이용 가능 대역폭을 추정함; (ii) 추정된 이용 가능 대역폭에 기반하여 데이터 스트림의 비트레이트를 가변함; (iii) 가변된 비트레이트에 따라 데이터 스트림과 관련된 콘텐츠를 분할하여 제공함.
언급한 바와 같이 본 개시는 적응적 비디오 스트리밍을 위해 데이터 전송을 가속화할 때 적절히 사용될 수 있다. 가속화된 데이터 전송은 HTTP 기반의 적응적 스트리밍 또는 HAS(HTTP-Based Adaptive Streaming)의 최고 가능 품질 및 중단없는 재생을 보장하는 네트워크 가속 해법이다. 상기 해법은 네트워크 가속을 위한 다양한 방법들을 다루는 프록시를 제공한다. 상기 해법에서 필수적인 것은 네트워크의 실질적 동작 대역폭(즉, 현재의 처리율) 및 나머지 미사용 대역폭(즉, 이용 가능 대역폭)을 포착하는 네트워크 처리율 추정치이다. 예시된 데이터 전송 제어 방법은 TCP에 있어 내재적으로 변동하는 단기 측정치로부터 강인하면서 유효한 대역폭 변화를 가능하게 할 수 있을 것이다.
도 1의 서버 장치의 일부를 형성할 수 있는 기본 모듈들로는, 네트워크 측정 샘플링 모듈, 윈도우 함수 평탄화 모듈, 및 병목 대역폭 추정 모듈이 포함될 수 있다. 상기 기본 모듈들은 데이터 전송을 가속화하기 위해 데이터 전송 동작을 제어하는데 필요한 모듈일 수 있다. 도 1의 서버 장치의 일부를 형성할 수 있는 다른 모듈들로는, 데이터 스트림의 비트레이트 품질 스위칭을 위한 비트레이트 적응 모듈, TCP 연결을 설정하기 위한 TCP 연결 스케줄러, 및 미디어 세그먼트들을 보다 작은 데이터 청크(chunk)로 분할하기 위한 동적 하위 분할 모듈이 포함될 수 있다. 상기 다른 모듈들은 상기 데이터 전송 동작을을 제어하기 위해 필요한 모듈일 수 있다. 에러가 포함된 추정치들은 최적화되지 않은 스트리밍 품질(과소 추정의 경우)이나 재생 중단(과대 추정의 경우)으로 이어질 수 있다. 상기 네트워크 가속 해법은 클라이언트 장치에서의 HAS 재생을 개선하고, 그러한 에러를 포함하는 추정치들을 방지한다.
상기 방법은 처리율의 타깃 지시 값을 결정하는 단계, 및 지시 값 및 상기 타깃 지시 값의 비교에 기반하여 윈도우 함수들의 어레이에 포함되는 윈도우 함수들 중 하나를 선택하는 단계를 더 포함한다. 상기 타깃 지시 값은 추가 측정 처리율, 데이터 전송 동작과 관련된 미디어 세그먼트의 처리율, 및 사각 이동 평균치 중 어느 하나에 해당할 수 있다.
상기 방법 및 도 1의 서버 장치와 관련된 상기 모듈들은 그들이 구성되는 방식에 따라 소프트웨어 코드들의 개개 블록들에 상응하거나 상응하지 않을 수 있다는 것을 알아야 한다. 상기 모듈들 각각에 대해 기술된 기능들은 소정 시간 간격으로 도 1의 서버 장치의 일시적이지 않은 하나 이상의 비휘발성 컴퓨터 판독가능 메모리에 저장되는 다양한 코드 부분들을 실행함으로써 수행될 수 있다는 것을 쉽게 알 수 있을 것이다.
또한, 도 1의 비휘발성 메모리로부터의 프로그램 코드들이 적절한 컴퓨팅 자원들 상에서 실행될 수 있다는 것과, 상기 모듈들이 무엇보다 본 개시의 도 1의 서버 장치 및 상기 방법의 하나 이상의 실시예들의 구현과 어떻게 관련되는지를 예시하기 위해 그들의 의도된 기능들에 기반하여 단지 차별적인 형식으로 제시되어 있음을 알아야 한다. 상기 모듈들은 그 개수가 더 적거나 더 많을 수 있으며, 이는 다양한 모듈들의 다양한 기능들을 나타내는 그러한 프로그램 코드들이 소프트웨어 실행에 관한 한 어떤 적절하고도 효율적인 방식으로 결합되거나 개별화될 수 있기 때문이다.
도 3은 본 개시의 일 실시예에 따라, 네트워크 측정 샘플링 모듈에 의해 수행되는 프로세스를 도시한 흐름도이다.
상기 서버 장치는 샘플링 모듈이 샘플링할 시점인지를 판단한다(300). 샘플링할 시간으로 결정되면, 상기 결정된 샘플링 시간에 의해 커버되는 시간동안 네트워크 트래픽이 존재하는지를 판단한다(302).
상기 네트워크 트래픽이 존재하면, 네트워크 모니터링 값들을 업데이트한다(304). 상기 업데이트된 네트워크 모니터링 값들에 기반하여 순시적 네트워크 측정치들에 대해 계산한다(306). 상기 계산된 순시적 네트워크 측정치들은 병목 대역폭, 이용 가능 대역폭, 및 현재의 처리율 등을 포함할 수 있다. 상기 샘플링 시간 동안 네트워크 트래픽이 존재하지 않는다면, 이전에 측정한 순시적 네트워크 측정치들을 제공한다. 상기 이전에 측정한 순시적 네트워크 측정치들도 병목 대역폭, 이용 가능 대역폭, 및 현재의 처리율 등을 포함할 수 있다.
본 개시는 전체적으로 데이터 기반이다. "데이터 기반(data-driven)"이라는 용어에 따르면, 전체적으로 본 개시는 네트워크 트래픽이 존재하는 전치 상태(precondition)를 가지고 네트워크 샘플링 모듈에 의해 계산되는 데이터(즉, 네트워크 트래픽 측정치들)에 의존한다. 그러나 상기 전치 상태가 만족될 수 없는 두 가지 경우들이 존재한다. 첫 번째 경우는 데이터 스트림의 초기 단계이고, 두 번째 경우는 HTTP 적응 스트리밍의 내재적 동향으로 인한 네트워크 트래픽의 불연속성이 존재하는 미드스트림 중이다.
데이터 스트림 시작 상태(초기 단계)에서, 데이터는 아직 불충분하다. 따라서, 연결의 초기 단계에서, 신뢰할 수 없는 추정은 당연하다. 상기 단계를 회피할 수는 없지만, 네트워크 측정 샘플링 모듈을 구성하는 알고리즘이 시작 상태에서 가능한 빠르게 정상 상태로 전환하도록 설계될 수 있다. 앞서 설명한 바와 같이, 데이터 전송 동작에 필요한 파라미터들 중 하나인 병목 대역폭의 추정치가 처리율의 시계열 데이터에 기반하여 산출될 수 있다. 상기 처리율이 아직 측정되지 못한 시작 단계에서, 상기 추정치들을 이용하는 네트워크 샘플링 모듈은 디폴트 값들을 제공함으로써 제로 처리율의 경우를 다뤄야 한다. 계산될 최종 값이 예컨대 연결 횟수인 경우, 시작 단계에서 TCP 연결 횟수는 디폴트인 값으로 설정될 수 있다.
또한, 패킷 손실율(packet loss rate, PLR)도 전송된 많은 양의 데이터 패킷들로부터 산출할 것을 요한다. 전송된 데이터 패킷이 많지 않은 데이터 스트림 시작 상태에서 추정한 PLR은 정밀도 이슈에 따른 문제를 야기할 수 있다. 본 개시에 따른 실시 예에서는, 패킷 전송의 최소 갯수는 2,000 개의 패킷들로 설정될 수 있다. 이는2,000 개 중 하나의 패킷 손실은 0.0005 또는 0.05% PLR의 정밀도를 가져올 수 있음을 의미한다.
한편, RTT(왕복 시간)는 시작 상태 도중 데이터 전송 시 측정되는 평균 RTT를 얻음으로써 산출될 수 있다. 상기 설정들을 통해, 어떤 데이터 전송도 혼잡 요소를 0으로 만드는 제로 RTT를 파생한다고 기대될 수 없다. 상기 혼잡 요소는 일차 도함수 형식(즉, 현재 및 이전 혼잡 요소들의 차이)으로 사용될 수 있다.
미드스트림 상태로 진행하면서도, 제로 트래픽이 역시 발생할 수 있다. 상기 제로 트래픽은 송수신할 데이터가 없는 것, 즉 데이터의 부재를 말한다. HTTP 스트리밍의 특징은, 스트림의 송수신 중에 데이터에 대한 다수의 요청들이 존재한다는 것이다. 미드스트림 제로 트래픽 상태는 기본적으로, 이전 세그먼트 다운로드가 끝나고 다음 데이터에 대한 요청이 이뤄지기 전에 발생한다. 상기 미드스트림 상태에서 처리율 측정치는 0이다. 데이터 부재의 효과는, 현재의 데이터 전송 동작의 경우에는 지난 측정치들의 윈도우 안으로부터, 그리고 다음 데이터 전송 동작의 경우에는 현재의 측정치들의 윈도우 안으로부터의 처리율을 이용함으로써 완화될 수 있다. 미드스트림 제로 트래픽 상태에서 PLR 및 RTT은 최소한으로 영향을 받는데,, 그 이유는 사용될 수 있는 측정치가 지난 측정치들의 평균이기 때문이다. 상기 PLR 및 RTT는 단지 혼잡 요소를 계산하는데 사용되므로, 이들은 단지 혼잡이 존재하지 않는 상태를 고려해야 한다.
샘플링 시간은 새로운 측정 샘플이 만들어지기 전의 듀레이션으로 정의될 수 있다. 네트워크 상태의 변화를 캡처하면서도 네트워크 트래픽의 잡음이나 지터에 대한 강건성을 유지하도록, 적절한 샘플링 시간이 설정됨이 바람직하다. 바람직한 샘플링 시간을 선택할 때, 네트워크 측정 샘플링 모듈을 개발할 때 등 몇 가지 고려사항들이 필요할 수 있다. 첫째, 샘플링 시간은 네트워크의 작은 변화들이 해소될 수 있을 만큼 충분히 적어야 한다. 둘째, 샘플링 시간은 시작 상태에서 정상 상태로의 과도 단계가 최소화될 수 있도록 적게 유지되어야 한다. 셋째, 샘플링 시간은 너무 불안정하거나 잡음에 취약하다는 점에서 너무 짧으면 안된다. 본 개시의 이어지는 개시 사항에서 보여지듯이, 윈도우 함수 평탄화 모듈이 이러한 안정성의 문제를 다룰 수 있다. 마지막으로, 샘플링 시간은 너무 많은 진동이나 링잉(ringing)이 존재할 수 있다는 점에서, 너무 짧아서는 안 된다.
도 4는 본 개시의 일 실시들에 따라, 윈도우 함수 평탄화 모듈에 의해 수행되는 프로세스를 도시한 흐름도를 나타낸다.
먼저, 처리할 순시적 처리율 측정치 샘플링 할 수 있다(400). 윈도우 함수 평탄화 모듈은 상기 순시적 처리율 측정 샘플에 기반하여 처리될 충분한 데이터가 존재하는지 여부를 판단한다(402). 상기 처리될 충분한 데이터가 존재하면, 윈도우 함수들의 어레이가 적용된다(404). 순시적 처리율 측정 샘플에 대한 여러 윈도우 함수들의 적용은 처리율 추정치들의 정확한 생성을 가져온다.
여러 윈도우 함수들의 적용에 이어서 처리율 추정치들이 결정되었으면, 상기 추정치들의 에러 값을 산출한다(406). 상기 산출된 에러 값에 기반하여 에러가 최소인 추정치가 선택된다(408).
그러나, 상기 처리될 충분한 데이터가 존재하지 않으면, 불충분한 데이터는 윈도우 함수 평탄화 모듈이 최선의 추측에 따른 처리율 측정치를 제공하게 할 수 있다. 상기 처리율 측정치에 대한 최선의 추측은 윈도우 함수가 적용되지 않을 수 있는, 이용 가능한 순시적 측정치로부터 도출될 수 있다(410).
상기 윈도우 함수 평탄화 모듈은 네트워크 트래픽 측정치들을 시계열 상의 포인트들로서 확인하고, 상기 네트워크 트래픽 측정치들이 도출되는 데이터 전송 동작의 추정된 파라미터를 생성하기 위해 다수의 네트워크 트래픽 측정치들에 필터들과 같은 다양한 윈도우 함수들을 적용한다. 상기 파라미터는 처리율이고, 상기 파라미터의 값들은 처리율 측정치들에 해당함이 바람직하다. 처리율 측정치들에 해당하는 값들은 단기간(2초 미만임이 바람직함)에 샘플링된다. 상기 측정치들(가령, 현재의 10 개의 측정치들)이 포함된 윈도우 안의 값들 중 최대 값이 다음 데이터 전송 동작에서 병목 대역폭의 추정치를 업데이트하는데 사용될 수 있다. 이에 상응하여, 측정치들(가령, 이전 10 개의 측정치들)이 포함된 윈도우 안의 값들로부터의 최대 값이 현재의 데이터 전송 동작에서의 병목 대역폭의 추정치를 업데이트하는데 사용되었을 수 있다.
시계열 분석은 추세, 종속성, 패턴, 및 기타 시스템과 데이터를 지배하는 특징들과 같은 의미 있는 정보를 내놓기 위해, 데이터의 시퀀스를 처리하는 일을 수반한다. 시계열은 보통, 선 그래프 및 차트를 통해 그려진다. 시간 도메인 분석은 시간 상에서의 데이터의 진행 및 시간 상에서 서로 근접하는 데이터의 관계를 보여주기 위해 사용된다. 한편, 주파수 도메인 분석은 그 주파수 성분들과 관련하여(히스토그램, 스펙트럼 등) 데이터를 분석하기 위해 사용된다.
샘플링과 관련하여, 처리율 측정은 단기 인터벌들 안에서 규칙적으로 수행된다. 샘플링은 순시적 측정치가 얼마나 자주 취해지는지를 다룬다. 샘플링의 기본 단위는 한 시점의 추정치 역할을 하는 "순시적" 측정치이다. 처리율은 단지 필요에 따라(즉, 필요할 때에만, 또는 특정 세그먼트가 다운로드를 종료할 때) 측정치들을 결정하는 것과는 달리, 정기적으로 특정될 수 있다. 순시적 측정과 관련하여, 처리율 측정치들은 통상적으로 2초 미만인 시간의 한 짧은 순간을 커버하는 단기 측정치들이다. 패킷들, 데이터 하위 세그먼트의 블록, 또는 각각의 소정 시간 인터벌 동안의 전체 미디어 세그먼트에 대해, 한 시점에서 가능한 최소 처리율 측정치가 취해질 수 있다.
한 시점에서 가능한 최소 처리율 측정치가 패킷 단위로 취해지는 경우, 아래와 같은 수학적 함수가 TCP 연결에 의해 사용될 수 있는 대역폭 측정(즉, 순시적 측정)의 샘플로서 사용될 수 있다.
Figure 112016031027677-pat00005
여기서
Figure 112016031027677-pat00006
은 이전 ACK가 수신되었던 시간,
Figure 112016031027677-pat00007
은 마지막 인터벌 시간.
상기 수학적 함수는 가장 작은 쓰루풋(throughput) 측정식이다. 상기 수학적 함수는 미리 정해진 데이터 정크(data chunk)가 특정 시점 i에서 얼마나 빨리 수신될 수 있는지로부터 유도해 낼 수 있다.
상기 수학적 함수와 별도로, 각각의 패킷에서 발견되는 정보를 사용하여 처리율 추정치들이 만들어질 수 있다. 1997년, ACM SIGCOMM의 Mathis에 의한 "TCP 혼잡 회피 알고리즘의 매크로스코픽 동향"에 상기 함수나 식이 논의된다.
한 시점에서 가능한 최소 처리율 측정치가 하위 세그먼트 데이터 블록에 기반하여 취해지는 경우, HTTP 바이트 범위 요청을 이용하는 하위 세그먼트들에 의해 미디어 세그먼트들이 다운로드될 수 있다. 그렇게 함으로써, 추정치가 계산될 수 있는 보다 작은 데이터 청크를 얻는 것이 가능하게 된다. 이하의 수학적 함수는 데이터 하위 세그먼트의 블록에 기반한 처리율 측정치를 제공한다.
Figure 112016031027677-pat00008
한 시점에서 가능한 최소 처리율 측정치가 시간 인터벌 당 데이터의 단위로 취해지는 경우, 처리율은 규칙적 시간 인터벌로 측정될 수 있다. 특정 시간 인터벌 안에 도달된 총 데이터가 카운트될 수 있다. 예를 들어, 일 초 안에 도착한 모든 패킷들의 합이 10 메가바이트이면, 그 순간에 대한 처리율은 이하의 수학적 함수를 사용하여 초 당 10 메가바이트로 산출될 수 있다.
Figure 112016031027677-pat00009
윈도윙된 처리율 측정치들과 관련하여, 평탄화 윈도우 함수들이 순시적 측정치들에 대해 사용된다. 다수의 윈도우 함수들의 적용은 여기 개시된 데이터 전송 동작의 파라미터들 중 하나로서 병목 대역폭의 추정치를 개선하기 위한 전치 처리(pre-processing) 방법이다. 개시의 배경에서 기술한 바와 같이, 윈도윙은 조작, 처리, 및 분석되어야 할 시계열 상의 여러 데이터 포인트들(순시적 측정)의 스냅샷이나 부분집합을 취하는 프로세스이다. 윈도우 범위 안의 값들은 그 자체로서 취해지거나, 소정 이득 요소와 곱해질 수 있고, 윈도우 밖의 값들은 0이다. 윈도우 안의 값들의 가중 요소들은 함수가 도출하는 추정치에 소정의 영향을 미친다. 영향을 받는 특성들 중에는 평탄화 및 버스트에 대한 응답이 있다. 상기 가중 요소들은 또한, 주파수 도메인에서 분석되는 경우에도 소정의 특성을 가진다.
전치 상태들이 만족되지 않는 경우(시작의 경우나 미드스트림 제로 트래픽의 경우), 이전 시점들로부터의 측정치들이나 디폴트 값들이 병목 대역폭 추정치로서 사용될 수 있다. 아직 다운로드된 미디어 세그먼트들이 존재하지 않는 경우, 윈도우 함수 평탄화 모듈로 제공될 충분한 데이터 포인트들이 존재하지 않는다. 충분한 데이터 포인트들이 존재해야 하는 것은 다운로드할 어떤 시작 비트레이트 품질을 선택하기 위해 초기 추정치가 있어야 하기 때문에 중요하다. 보통의 클라이언트측 구현예에서, 상기 클라이언트는 다운로드할 최저 이용 가능 대역폭을 선택한다. 하나 이상의 실시예들에 따른 본 개시의 경우, 이전 트랜잭션들(가령, 재생 리스트들의 다운로딩)로부터 측정된 순시적 처리율로부터 초기 처리율 추정치가 설정될 수 있다. 그러나 재생 리스트는 텍스트 파일로서 크기가 매우 작기 때문에, 정확한 추정치들이 아직은 얻어질 수 없다. 그러나, 상기 추정치는 단순히 최저 이용 가능 대역폭을 선택하는 것보다 더 나은 성능을 보일 것이다. 초기 추정기에 있어 다운로딩 시 재생 리스트가 사용될 수 있는 두 가지 방법들이 있다.
첫째, 이하의 수학적 함수에서 보여지는 바와 같이, 재생 리스트의 사이즈가 상기 재생 리스트를 다운로드할 시간으로 분할될 수 있다.
Figure 112016031027677-pat00010
상기 수학적 함수는 초기 쓰루풋 추정에 대한 함수이다. 상기 수학적 함수는 재생 리스트(playlist)를 다운로드받는데 걸리는 시간을 기초로 한다. 재생될 미디어를 포함하는 재생 리스트는 작은 파일이다. 상기 작은 파일은 초기에 추정하기 적합한 크기로 나뉘어진 파일일 수 있다.
둘째, 이하의 일련의 수학적 함수들에서 보여지는 바와 같이, 초기 처리율 추정치를 산출 시, 1997년 ACM SIGCOMM의 Mathis에 의한 "TCP 혼잡 회피 알고리즘의 매크로스코픽 동향"으로부터 도출된 함수나 수식을 이용하는 것 역시 바람직할 수 있다.
Figure 112016031027677-pat00011
Figure 112016031027677-pat00012
도 5는 본 개시의 일 실시예에 따른 윈도우 함수 평탄화 모듈의 개략도를 나타낸다.
상기 윈도우 함수 평탄화 모듈(503)은 다수의 윈도우 함수들의 적용 예들이 각각, 네트워크 동작 상태들을 모니터링하는 네트워크 모니터링부(501) 및 최적의 처리율 추정치를 선택하는 처리율 추정치 선택 모듈(503)과 연결된다.
상기 네트워크 모니터링부(501)는 순시적 측정 샘플(T(i)) 하나를 상기 다수의 윈도우 함수 평탄화 모듈(503)으로 전송한다.
상기 다수의 윈도우 함수 평탄화 모듈(503)은 상기 하나의 샘플을 다수의 윈도우 함수에 적용하여 처리율 측정치를 계산한다.
상기 처리율 추정치 선택 모듈(503)은 상기 다수의 윈도우 함수에 적용된 처리율 측정치 중에 최적의 처리율 측정치를 선택한다.
본 개시의 데이터 전송 장치 및 데이터 전송을 제어하는 방법은 윈도우 함수들의 어레이, 보다 상세하게는 윈도우 평탄화 함수를 활용한다. 상기 윈도우 함수들의 어레이에 포함된 각각의 윈도우 함수는 다른 것들과 비교할 때, 버스트들에 대한 상이한 응답 및 상이한 정상 상태 과도 시간을 가진다. 함수의 형태와 수학적 특징에 따라, 윈도우 함수들의 어레이에 포함된 윈도우 함수는 정상 상태 보다 긴 과도 시간 대신, 단기 변화들에 대해 강건할 수 있다. 한편, 윈도우 함수들의 어레이에 포함된 매우 반응이 빠른 함수는 불안정한 경향을 가지며 지터와 잡음에 취약할 수 있다.
상기 윈도우 함수들의 어레이는 이하의 윈도우 함수들 중 둘 이상을 포함할 수 있다: 단순 이동 평균, 직사각 이동 평균, 삼각 윈도우 함수, 한(Hann) 윈도우 함수, 가우스(Gaussian) 윈도우 함수, 선형 가중 이동 평균, 및 지수함수적 가중 이동 평균. 그 외에도, 다른 수학적 특징들을 가지는 다른 타입의 윈도우 함수들이 상기 언급한 윈도우 함수들의 비한정적 리스트에 추가될 수 있다.
윈도우 함수 추정기 역할을 할 수 있는 단순 이동 평균 또는 직사각 이동 평균은 윈도우 안의 각각의 샘플의 가중치들이 동일하다. 상기 단순 이동 평균 또는 직사각 이동 평균은 윈도우 안의 각각의 샘플의 가중치들이 동일하며 시각적으로 직사각형을 닮아 있기 때문에 직사각형이라 칭할 수 있다. 상기 단순 이동 평균 또는 직사각 이동 평균이 이하의 수학적 함수를 이용하여 적용될 수 있다.
Figure 112016031027677-pat00013
상기 수학적 함수는 간단한 이동 평균 공식을 이용한 쓰루풋 추정에 관한 함수이다. 상기 수학적 함수는 특정 시간 구간 i 동안 수신한 데이터의 히스토리와 관련된 쓰루풋에 대한 정보를 제공한다.
윈도우 함수들의 어레이는 처리율 측정치들을 필터링하는데 사용될 수 있다. 일반 가중 윈도우 함수들 또한 윈도우 함수들의 어레이 안에 포함될 수 있다. 일반 가중 윈도우 함수들에 있어서, 이하의 수학적 함수가 사용될 수 있다.
Figure 112016031027677-pat00014
특정 시간 구간 i 에서 측정치는 우선순위(priority)를 고려하기 위한 수단으로써 윈도우 함수를 이용하여 필터링된다. 특정 필터에 기초하여 가중된 추정치를 얻기 위해 상기 수학적 함수가 이용될 수 있다. 상기 윈도우 밖의 데이터는 0이 된다.
윈도우 안의 샘플들은 윈도우의 특징들에 좌우되는 해당 가중치들을 가진다. 이하의 수학적 함수들을 이용하여 삼각, Hann, 및 가우스 윈도우들이 계산될 수 있다.
Figure 112016031027677-pat00015
, L은 N, N+1 또는 N-1일 수 있다.
상기 삼각 윈도우 함수는, 큰 N으로 수렴하는, Bartlett 윈도우로써 알려져 있다. 상기 삼각 윈도우 함수는 2 N/2 너비사각 윈도우의 컨벌루션(convolution) 결과이다.
Figure 112016031027677-pat00016
상기 Hann 윈도우 함수는 Hanning으로도 알려져 있다. 상기 Hann 윈도우 함수는 Hamming 윈도우 함수와 비슷한 형태이다.
Figure 112016031027677-pat00017
상기 가우시안 윈도우 함수는 가우시안 수학식으로부터 유래되었다. 상기 가우시안 수학식은 일반적인 분포를 설명한다.
선형 가중 이동 평균(linearly weighted moving average, LWMA) 또한 윈도우 함수들의 어레이 안에 포함될 수 있다. 처리율 추정치와 관련하여, 선형 가중 이동 평균은 다음과 같은 수학식으로 표현될 수 있다.
Figure 112016031027677-pat00018
상기 선형 가중 이동 평균은 단순 이동 평균에 한 것보다 최근 데이터에 좀 더 높은 가중을 부과한다. 상기 선형 가중 이동 평균은 각 샘플 포인트와 데이터 시리즈에서 대응되는 위치의 값이 각각 곱해져 계산될 수 있다. 상기 선형 가중 이동 평균은 쓰루풋 추정에 사용될 수 있다.
또한, 지수 가중 이동 평균(exponential weighted moving average, EWMA)이 윈도우 함수들의 어레이의 일부를 형성할 수 있다. 상기 지수 가중 이동 평균은 수학적으로 다음과 같이 표현될 수 있다.
Figure 112016031027677-pat00019
Figure 112016031027677-pat00020
Figure 112016031027677-pat00021
T(i): 순시적 처리율
상기 지수 가중 이동 평균은 데이터 시리즈에서 개별 엘리먼트에 가중치를 준다는 점에서 리니어(linear)와 유사하다. 상기 지수 가중 이동 평균은 어떻게 가중치가 분포되었는지를 설명하는 스무딩 수학식 알파(smoothing equation alpha)를 소개한다.
윈도우 함수 평탄화 모듈이 수행하는 프로세스와 연계하는 데이터 전송 동작의 추정 파라미터들에 기반하는 통신 네트워크를 통한 데이터 전송 동작의 제어 방법은 윈도우 함수들의 어레이로부터 한 윈도우 함수를 선택하는 단계를 또한 포함할 수 있다. 여러 윈도우들의 출력 값들로부터의 선택은, 데이터 전송 동작의 파라미터들 중 하나를 나타내는 처리율 측정치의 타깃 지시 값을 결정하고, 상기 결정된 타깃 지시 값에 가장 근접하는, 윈도우 함수들의 어레이 안에 포함된 각각의 윈도우 함수의 출력과 관련된 값을 선택함으로써 수행될 수 있다. 상기 선택은 상기 지시 값과 상기 타깃 지시 값을 비교함으로써 수행될 수 있다. 도 1에 도시된 서버 장치(100)에 의해서도 동일한 선택이 수행될 수 있다.
다수의 처리율 추정치들이 다수의 윈도우 함수들로부터 도출될 수 있으나, 결정된 타깃 지시 값에 가장 근접하는 단 하나의 도출 가능한 함수만이 최적이라 간주될 수 있다. 상기 가장 근접한 단 하나의 도출 가능한 함수만이 최적이라고 간주하는 경우, 중단 없는 재생 및 최적의 비트레이트 품질이라는 목적을 달성함에 있어 도움이 되는 최선의 추정치가 선택될 수 있다. 언급한 바와 같이, 윈도우 함수들의 어레이 안에 포함되는 윈도우 함수들은 "타깃" 지시 값에 기반하여 그들이 도출하는 추정치들의 에러를 산출함으로써 평가될 수 있다. 윈도우 함수들을 평가하기 위해 사용되는 타깃 지시 값은 다음과 같은 하나 이상의 것들 중 어느 것을 포함함이 바람직하다: (i) 가장 최근의 순시적 측정치(T(i)); (ii)가장 최근의 미디어 세그먼트 처리율(다운로드 시간 동안의 이전 미디어 세그먼트의 사이즈); 및 (iii) 사각 이동 평균값.
피드백의 형식으로, 상술한 윈도우 함수들의 평가가 도 1의 서버 장치 및 도 2의 데이터 전송 동작의 제어 방법에 의해 구현될 수 있으며, 추정기들로서의 윈도우 함수들 각각은 i번째 및 i-N+ 1번째 의 범위 안에 있는 N 개의 순시적 측정치들에 기반하여 i+1번째에서의 값을 추정하거나 예상하는 그 능력에 기반하여 평가된다. 예컨대, i+1번째에 대한 처리율 추정치는 입력들 {i-4, i-3, i-2, i-l, i}로부터의 출력에 기반할 수 있다. 이 경우, 이하의 수학적 함수를 이용하여 추정기 에러가 계산될 수 있다.
Figure 112016031027677-pat00022
상기 수학적 함수는 추정기가 추정치를 통해 주어진 가능한 것들 중에서 실제 쓰루풋과 좀 더 가까운 것을 결정하는 것을 돕는데 사용된다.
윈도우 함수들의 출력 값들이 수집된 후, 데이터 전송 동작에 대해 측정된 파라미터들 중 하나인 처리율의 추정기로서의 최적 윈도우 함수는 이제, 타깃 지시 값과 관련하여 최소 에러율을 가진 출력 값을 도출하는 윈도우 함수에 기반하여 결정될 수 있다. 상기 출력 값은 혼잡 지시 값이 현재의 추정치가 업데이트되면 안된다고 제안하지 않는 한, 업데이트된 병목 대역폭 추정치의 역할을 할 수 있다. 본 개시에 기술된 데이터 전송 동작의 적어도 하나의 파라미터에서의 지시 값 외에, 혼잡 지시 값도 마찬가지로, 업데이트된 병목 대역폭 추정치에 영향을 미친다.
결과적으로, 병목 대역폭 추정 모듈에 의해 사용될 수 있는 하나의 처리율만이 요구 될 수 있다. 그러므로, 병목 대역폭 추정 모듈이 최적의 추정기라고 간주되는 윈도우 함수의 출력 값을 이용하는 것이 매우 바람직하다. 이러한 목적을 위해, 이하의 특정 구성들이 이용될 수 있다: (i) 주파수 추정은 고정된 규칙적 인터벌로 행해진다; (ii) 에러 함수를 계산하기 위한 타깃 지시 값은 사각 이동 평균이다.
그러나 윈도우 함수 평탄화 모듈에 의해 최적의 추정기로서 간주되는 윈도우 함수의 출력 값을 결정하기 위해 다른 구성들도 사용될 수 있다. 일 예로, 도 1의 서버 장치의 프로세싱 능력을 보존하기 위해, 결정된 순간으로부터 최적 윈도우 함수 추정기가 임의의 주어진 시간 인터벌 안에서 다음의 모든 데이터 전송 동작에 사용될 수 있다. 이는 추정기들의 역할을 하는 여러 윈도우 함수들의 출력 값들에 대한 반복적 계산의 필요성을 피할 수 있게 한다. 이 경우, 결정되어 소정 시간 안에 이어서 사용된 뒤, 최적 윈도우 함수 추정기를 업데이트할 필요성이 있을 때, 윈도우 함수 추정기를 선택하는 프로세스가 인터럽트나 언더플로우(underflow)와 같은 소정 이벤트들에 의해 트리거되도록 설정될 수 있다. 대안적으로, 상기 윈도우 함수 추정기를 선택하는 프로세스가 고정된 규칙적 인터벌로 개시되도록 사전 설정될 수 있다.
최적이자 최선의 성능을 가진 것으로 간주될 수 있는 윈도우 함수 추정기는 최소의 에러를 가진 것이므로, 윈도우 함수의 추정 능력은 이하의 수학적 함수에서 보여진 바와 같이 평균 제곱 에러(MSE)의 공식을 이용하여 액세스될 수 있다.
Figure 112016031027677-pat00023
여기서,
선택적 윈도우 함수 추정기= min
Figure 112016031027677-pat00024
;
Winj은 윈도우 함수들 중 어느 하나일 수 있다(가령, EWMA, LWMA, Hann 등);
TWin은 특정 추정기를 이용한 추정/예상된 처리율이다;
Target은 타깃 측정치이다.
추정기의 품질을 평가하기 위해, 상기 윈도우 함수에 의해 측정된 쓰루풋과 수신된 실제 쓰루풋의 평균 제곱 오차식인 위험 함수(risk function)가 사용될 수 있다.
도 6은 본 개시의 일 실시예에 따라, 병목 대역폭 추정 모듈에 의해 수행되는 프로세스를 도시한 흐름도를 나타낸다.
상술한 바와 같이, 병목 대역폭은 단기 처리율 측정치들을 사용하여 추정될 수 있다. 추정치들의 스냅샷이나 윈도우에서 최대 측정 처리율은 병목 대역폭 추정치를 업데이트하는데 사용될 수 있다. 단기 최대 처리율 측정치는 현재의 데이터 전송 동작에 대한 이전 측정치들(가령, 이전의 10 개의 측정치들)의 윈도우나 스냅샷, 또는 현재의 측정치들(가령, 다음 데이터 전송 동작에 대한 현재의 10 개의 특정치들)의 윈도우에서의 최대치이다. 측정된 단기 최대 처리율은, 임의의 데이터 전송 동작의 미드스트림 제로 트래픽 상태의 효과를 완화하기 위해, 추정된 병목 대역폭(eBnBW)에 대해 계산하는데 사용될 수 있다.
흐름도는 처리율 측정치들 및 순시적 네트워크 측정치들(예컨대, PLR, RTT)가 각각 병목 대역폭 추정 모듈에 의해 처리된다(600). 처리율 측정치들 및 순시적 네트워크 측정치들이 처리 및 분석을 위해 정렬되면, 병목 대역폭 추정 모듈은 혼잡 요소를 산출한다(602). 상기 산출된 혼잡 요소를 기초로 병목 대역폭 모듈이 데이터 전송 동작의 현재 상태가 좀 더 혼잡한지를 판단하게 한다(604). 덜 혼잡하다고 판단되면, 병목 대역폭 추정 모듈은 병목 대역폭(eBnBW)을 자동 업데이트한다(606). 그렇지 않으면, 병목 추정 모듈은 이전 병목 대역폭 추정치(eBnBW(i-2))를 폴백(fallback)으로 사용한다.
상술한 바와 같이, 병목 대역폭 추정치는 1997년에 ACM SIGCOMM의 Mathis에 의한 "TCP 혼잡 회피 알고리즘의 매크로스코픽 동향"에 개시된 함수 또는 수식을 이용하여 결정될 수 있다. 데이터 전송 동작을 수반하는 여러 TCP 연결들에 대해, Mathis 함수 또는 수식의 변형인 이하의 수학적 함수가 병목 대역폭 추정에 사용될 수 있다.
Figure 112016031027677-pat00025
여기서,
k = TCP 연결의 개수
상기 BB 수학적 함수는, TCP 연결에 있어 최대 달성할 수 있는 쓰루풋에 대한, Mathis의 워크(work)로부터 개시되어 얻어졌다.TCP 연결의 모든 가능한 경우의 합하는 것은 파이프(pipe)에서 가능한 전체 병목 대역폭을 얻기 위함이다. 상기 Mathis의 워크를 사용함으로부터 승계된 근본적인 추축은 여전히 적용될 수 있다(즉, 스몰 로스 레이트(small loss rate) 등).
결과적으로, 병목 대역폭(eBnBW)의 값은 n 개의 가장 최근의 최대 처리율 측정치들에 기반하여 업데이트될 수 있다. 두 개의 가장 최근의 샘플들이 병목 대역폭(eBnBW)의 값을 업데이트하는데 사용됨이 바람직하다. 이 경우, 이하의 수학적 함수가 사용될 수 있다.
Figure 112016031027677-pat00026
Figure 112016031027677-pat00027
이와 달리, 이하의 수학적 함수에서 보여지는 바와 같이, 시간을 기준으로 최대 처리율 측정치들을 통한 여러 샘플들의 효과에 가중치가 주어질 수 있다.
Figure 112016031027677-pat00028
Figure 112016031027677-pat00029
추정된 병목 대역폭은 최근 쓰루풋 측정의 평균이다. 샘플의 이산 개수를 갖는 단순 이동 평균이 쓰루풋에서 가장 최근의 변화를 고려하기 위해 사용되거나 스무딩 함수(smoothing function)
Figure 112016031027677-pat00030
를 제공하는데 사용될 수 있다. 상기 스무딩 함수는 중요하다고 여겨지는 샘플 포인트에 가중치를 지시할 수 있다.
도시된 서버 장치, 및 관련된 본 개시의 방법 및 프로세스들을 이용하여 데이터 전송을 가속화한다는 목적에 있어서, 데이터 전송 동작의 적어도 세 개의 파라미터들, 즉 이용 가능 대역폭(available bandwidth, AB), 병목 대역폭(bottleneck bandwidth, BB), 및 현재의 데이터 전송 동작의 현재의 처리율(current throughput, CT)이 측정될 수 있다. 상기 현재의 처리율은 순시적 네트워크 측정치들로부터 바로 얻어질 수 있고, 상기 이용 가능 대역폭은 상술한 바와 같이 최대 처리율 측정치들을 사용하여 얻어질 수 있다. 한편 같은 TCP 연결들에서 수반되는 데이터 전송 동작을 가속화한다는 점에 비춰, 상기 이용 가능 대역폭은 단말과의 TCP 연결들을 다루는데 필요한 데이터 전송 동작의 파라미터이다.
상기 이용 가능 대역폭의 값, 추가되거나 생성될 연결 횟수에 따라, 상기 이용 가능 대역폭은 상기 병목 대역폭 추정치 및 현재의 데이터 전송 동작의 상기 현재의 처리율로부터 산출된 남은 미사용 대역폭이다. 그러므로, 수식 이용 가능 대역폭(AB)= 병목 대역폭(BB) - 현재의 처리율(CT)이다. 달리 말하면, 상기 이용 가능 대역폭은 현재의 데이터 전송 동작과 관련하여 이전 데이터 전송 동작에서 아직 사용되지 않은 대역폭의 크기에 해당한다. 최적화된 네트워크는 최소화된 상기 이용 가능 대역폭을 의미하며, 이러한 이유로 목적은 상기 병목 대역폭 및 상기 현재의 처리율의 값들에 기반하여 가능한 한 최소인 상기 이용 가능 대역폭의 값을 가지는 것이다. 따라서 상기 병목 대역폭의 정확한 추정치는 상기 이용 가능 대역폭의 값을 최소로 설정한다.
또한 상기 병목 대역폭 추정치의 정확도를 보장하기 위해, 본 개시의 서버 장치 및 관련 방법과 프로세스들은 상기 병목 대역폭을 추정하는 적응적 혹은 반응적 윈도우 함수를 제공하도록 설정될 수 있다. 이 경우, 윈도우 함수의 어레이에 포함되는 각각의 윈도우 함수의 출력 값은 데이터 전송 동작이 일어나는 네트워크의 혼잡 상태에 따라 상이하게 계산될 수 있다. 따라서 상기 병목 대역폭 추정치를 업데이트하기 위한 프로세스는 혼잡 요소 및 그와 관련된 변화들로 표현되는 네트워크의 혼잡 상태에 좌우되는 것으로 만들어질 수 있다. 혼잡 요소(Ci)는 이하의 수학적 함수에서 보여지는 바와 같이 처리율을 산출하기 위한 Mathis 수식에 기반하는 변수이다.
Figure 112016031027677-pat00031
Figure 112016031027677-pat00032
최대 쓰루풋 식과 관련된 Mathis의 워크는 사용될 수 있는 단순한 형태를 갖는다. MSS가 네트워크의 아키텍쳐와 MTU의 결합에 의해 시스템에서 결정된다는 가정아래, 상기 MSS를 상수로써 생각하는 것은 합리적이다. 쓰루풋에 영향을 줄 수 있는 요소는 혼잡을 위해 결정요인으로 사용될 수 있는 것 중 하나일 수 있다.
네트워크가 혼잡하게 되면, RTT 및 PLR이 증가한다고 알려져 있으며, 그에 따라 혼잡 요소에 영향을 준다. 이와 관련하여, 본 개시의 서버 장치, 데이터 전송 동작의 제어 방법 및 관련 프로세스들에 의해 제공되는 추정치들은 다양한 혼잡 상태들 및 그러한 혼잡 상태들 각각의 추정 프로세스들의 동향을 참작할 수 있다. 다시 말해, 추정 프로세스들은 네트워크가 혼잡 상태인지 비혼잡 상태인지 여부에 따라 다르게 동작한다. 혼잡 요소의 이전 값들과 관련하여 혼잡 상태를 참작할 때, 상대적 혼잡 상태에 이를 수 있다.
비혼잡 상태에서, 병목 대역폭 상태는 네트워크가 혼잡하지 않을 때 업데이트될 수 있다. 이 경우, 혼잡이 발생하지 않으면, PLR 및 RTT는 안정된 값을 가진다고 추정될 수 있다. 비혼잡 상태에서의 추정 동작과 관련하여, 시작부터 안정 상태까지의 추정 과도 시간은, 상술한 바와 같이 상기 병목 대역폭 추정치를 산출 시 단기 최대 처리율 측정치들을 이용함으로써 최소화될 수 있다. 비혼잡 상태에서, eBnBW 값은 가장 최근의 n 개의 최대 처리율 측정치들에 기반할 수 있다. 언급한 대로, eBnBW 추정치를 결정 시, 두 개의 가장 최근의 샘플들 또는 시간을 기준으로 그 서로 다른 샘플들의 영향과 관련된 가중치가 사용될 수 있다.
증가하는 혼잡 상태에 있을 때, 병목 대역폭 추정치는 이전 산출치로 리셋되어, 혼잡 발생 이전의 상태로 돌아갈 수 있다. 이 경우, 점점 더 많은 혼잡이 발생될 때, PLR 및 RTT와 관련된 두 개의 값들 중 적어도 하나가 증가될 가능성이 있고, 사실상 혼잡 요소를 감소시킨다. 혼잡 상태의 추정 동작과 관련하여, 서버 장치 및 데이터 전송 동작의 제어 방법과 그와 관련된 프로세스들은 eBnBW가 혼잡 상태 이전의 값으로 떨어지게 할 수 있다. 그 이유는, 이전의 병목 대역폭 추정치가 현재의 데이터 전송 동작에서의 증가된, 혹은 증가되고 있는 혼잡 상태를 야기했다고 믿기 때문이다.
증가되고 있는 혼잡 상태 중에, 비혼잡 상태의 경우와 같이 두 개의 가장 최근의 실질적 최대 처리율 측정치들에 기반하여 eBnBW를 업데이트하는 것은 치명적일 수 있는데, 이는 그러한 최근의 측정치들이 현재의 혼잡 상태로 이어질 수 있기 때문이다. 또한, 이미 혼잡한 상태의 네트워크의 eBnBW를 증가시키는 것은 치명적이다. 따라서, 현재의 데이터 전송 동작에 있어서의 혼잡 상태에 대한 적절한 접근은, 이전 데이터 전송 동작 중이나 현재의 데이터 전송 동작에 있어서의 혼잡 상태에 이르게 하는 시점 이전에 산출된 eBnBW로 떨어지게 하는 것이다. 그러한 점에서, 서버 장치, 데이터 전송 동작의 제어 방법 및 관련 프로세스에 의해 다음과 같은 로직이 적용될 수 있다.
Figure 112016031027677-pat00033
이미 계산된 혼잡 요인이 주어질 때 현재 데이터 전송 동작에서 이전 추정된 병목 대역폭에 혼잡 상태가 야기된다면, 같은 데이터 동작에서 사용하였던 추정이 이전 추정으로 하는 것을 적절하고 바람직하다. 실질적으로 반으로 다운로드 속도를 줄이는 TCP의 곱셈 감소와는 달리, 본 개시의 추정 프로세스는 n+1 상태로 돌아감으로써 불리하게 되는 것을 막을 수 있어 바람직하다. 즉, n이 2이면 i-2로 돌아가 3이 된다.
이전의 eBnBW가 현재의 데이터 전송 동작에서의 혼잡 상태를 일으켰을 수 있으므로, 같은 데이터 전송 동작에 사용될 추정치가 그 상태 이전의 추정치임이 적절하고 또한 바람직하다. 다운로드 속도를 사실상 절반으로 불리하게 만드는 TCP의 복합적 감소와는 달리, 본 개시의 추정 프로세스들은 n+1 상태로 떨어지게 함으로써(가령, n=2이면 i-2인 3 값들 뒤를 의미함) 크게 불리해지는 것이 방지되도록 하는 것이 바람직하다.
본 개시의 또 다른 양태는 프로세서에 의해 실행될 때, 상기 프로세서가 다음과 같은 동작을 수행하도록 하는 명령어들을 가진 컴퓨터 프로그램을 나타내는 데이터 스트림을 제공한다: (i) 클라이언트 장치로/로부터의 데이터 전송 동작을 수행하는 단계; (ii) 상기 데이터 전송 동작의 파라미터를 측정하는 단계; (iii) 상기 데이터 전송 동작의 상기 측정된 파라미터를 시계열 상으로 변환하는 단계; (iv) 윈도우 함수들의 어레이를 사용하여 상기 시계열 상으로 변환된 상기 데이터 전송 동작의 파라미터 값들을 필터링하는 단계; (v) 상기 필터링된 상기 데이터 전송 동작의 파라미터의 값들에서 최대 값을 결정하는 단계; 및 (vi) 상기 지시 값에 기반하여, 통신 네트워크를 통한 상기 클라이언트 장치로의 이어지는 데이터 전송 동작을 준비하는 단계.
데이터 스트림을 통한 데이터 전송 동작의 파라미터는 추정된 병목 대역폭에 해당하는 지시 값을 가지는 처리율이다. 데이터 스트림의 프로세서는 처리율의 타깃 지시 값을 결정하는 단계, 및 지시 값 및 타깃 지시 값의 비교에 기반하여 윈도우 함수들의 어레이에 포함되는 윈도우 함수들 중 하나를 선택하는 단계를 더 수행한다. 타깃 지시 값은 추가 측정 처리율, 데이터 전송 동작과 관련된 미디어 세그먼트의 처리율, 및 사각 이동 평균치 중 어느 하나에 해당한다. 데이터 스트림을 통한 지시 값은 데이터 전송 동작이 일어나는 통신 네트워크의 혼잡 상태에 기반하여 결정될 수 있다.
한편, 본 명세서와 도면에 개시된 본 개시의 실시예들은 본 개시의 기술 내용을 쉽게 설명하고 본 개시의 이해를 돕기 위해 특정 예를 제시한 것일 뿐이며, 본 개시의 범위를 한정하고자 하는 것은 아니다. 즉 본 개시의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은 본 개시의 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한 상기 각각의 실시 예는 필요에 따라 서로 조합되어 운용할 수 있다.

Claims (19)

  1. 통신 네트워크를 통한 데이터 전송의 파라미터들을 추정하기 위한 장치에 있어서,
    메모리;
    송수신기; 및
    상기 메모리 및 상기 송수신기에 연결된 적어도 하나의 프로세서를 포함하고,
    상기 적어도 하나의 프로세서는,
    데이터 전송에 필요한 적어도 하나의 파라미터를 측정하고,
    상기 측정된 적어도 하나의 파라미터를 시계열로 변환하고,
    윈도우 함수들의 어레이를 이용하여 상기 시계열로 변환된 적어도 하나의 파라미터를 필터링된 파라미터 값들로 필터링하고,
    상기 필터링된 파라미터 값들 중에서 최대값을 상기 적어도 하나의 파라미터의 지시 값으로 결정하고 - 상기 지시 값은 상기 윈도우 함수들의 어레이에 포함된 상기 적어도 하나의 파라미터의 최대 값을 나타냄-,
    상기 적어도 하나의 파라미터의 지시 값에 기반하여 데이터 스트림을 선택적으로 트랜스코딩하고, 그리고
    상기 트랜스코딩된 데이터 스트림을 전송하도록 구성되는,
    장치.
  2. 제1항에 있어서,
    상기 윈도우 함수들의 어레이는 단순 이동 평균, 직사각 이동 평균, 삼각 윈도우 함수, 한(Hann) 윈도우 함수, 가우스(Gaussian) 윈도우 함수, 선형 가중 이동 평균, 및 지수함수적 가중 이동 평균 중 적어도 두 개 이상을 포함하는 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 파라미터는 처리율인 장치.
  4. 제3항에 있어서,
    상기 처리율은 추정된 병목 대역폭에 대응하는 장치.
  5. 제4항에 있어서,
    상기 추정된 병목 대역폭은 혼잡 윈도우 및 왕복(roundtrip) 시간 중 하나 이상을 포함하는 장치.
  6. 제3항에 있어서,
    상기 적어도 하나의 프로세서는 상기 처리율의 적어도 하나의 타깃 지시 값을 결정하는 장치.
  7. 제6항에 있어서,
    상기 윈도우 함수들의 어레이에 포함된 윈도우 함수들 중 하나가, 상기 적어도 하나의 파라미터의 지시 값 및 상기 적어도 하나의 타깃 지시 값의 비교에 기반하여 상기 적어도 하나의 프로세서에 의해 선택되는 장치.
  8. 제7항에 있어서,
    상기 적어도 하나의 타깃 지시 값은 추가 측정 파라미터, 상기 데이터 전송과 관련된 미디어 세그먼트의 처리율, 및 사각 이동 평균치 중 어느 하나에 대응하는 장치.
  9. 제1항에 있어서,
    상기 적어도 하나의 파라미터의 지시 값은 상기 데이터 전송이 일어나는 통신 네트워크의 혼잡 상태에 기반하여 결정되는 장치.
  10. 서버 장치에 의해 수행되는 데이터 전송 동작의 추정된 파라미터에 기반하여 통신 네트워크를 통한 데이터 전송 동작을 제어하는 방법에서,
    상기 통신 네트워크의 동작 상태를 모니터링하는 과정과;
    상기 모니터링된 동작 상태와 관련된 적어도 하나의 파라미터를 측정하는 과정과;
    상기 측정된 적어도 하나의 파라미터를 시계열로 변환하는 과정과;
    윈도우 함수들의 어레이를 이용하여 상기 시계열로 변환된 적어도 하나의 파라미터를 필터링된 파라미터 값들로 필터링하는 과정과;
    상기 필터링된 파라미터 값들 중에서 최대값을 상기 적어도 하나의 파라미터의 지시 값으로 결정하는 과정과 - 상기 지시 값은 상기 윈도우 함수들의 어레이에 포함된 상기 적어도 하나의 파라미터의 최대 값을 나타냄-;
    상기 적어도 하나의 파라미터의 지시 값에 기반하여 데이터 스트림을 선택적으로 트랜스코딩하는 과정과; 그리고
    상기 트랜스코딩된 데이터 스트림을 전송하는 과정을 포함하는,
    방법.
  11. ◈청구항 11은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 적어도 하나의 파라미터는 처리율인 방법.
  12. ◈청구항 12은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 처리율은 추정된 병목 대역폭에 대응하는 방법.
  13. ◈청구항 13은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 추정된 병목 대역폭은 혼잡 윈도우 및 왕복(roundtrip) 시간 중 하나 이상을 포함하는 방법.
  14. ◈청구항 14은(는) 설정등록료 납부시 포기되었습니다.◈
    제12항에 있어서,
    상기 추정된 병목 대역폭 및 다음 데이터 전송 동작과 관련된 처리율에 기반하여, 상기 통신 네트워크를 통해 적어도 하나의 클라이언트 장치로 상기 데이터 스트림을 전송하기 위한 이용 가능 대역폭을 추정하는 과정과;
    상기 추정된 이용 가능 대역폭에 기반하여 상기 데이터 스트림의 비트레이트를 가변하는 과정과; 그리고
    상기 가변된 비트레이트에 따라 상기 데이터 스트림과 관련된 콘텐츠를 분할하여 제공하는 과정을 더 포함하는 방법.
  15. ◈청구항 15은(는) 설정등록료 납부시 포기되었습니다.◈
    제11항에 있어서,
    상기 처리율의 적어도 하나의 타깃 지시 값을 결정하는 과정을 더 포함하는 방법.
  16. ◈청구항 16은(는) 설정등록료 납부시 포기되었습니다.◈
    제15항에 있어서,
    상기 적어도 하나의 파라미터의 지시 값 및 상기 적어도 하나의 타깃 지시 값의 비교에 기반하여, 상기 윈도우 함수들의 어레이에 포함된 윈도우 함수들 중 하나를 선택하는 과정을 더 포함하는 방법.
  17. ◈청구항 17은(는) 설정등록료 납부시 포기되었습니다.◈
    제16항에 있어서,
    상기 적어도 하나의 타깃 지시 값은 추가 측정 파라미터, 상기 데이터 전송 동작과 관련된 미디어 세그먼트의 처리율, 및 사각 이동 평균치 중 어느 하나에 대응하는 방법.
  18. ◈청구항 18은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 적어도 하나의 파라미터의 지시 값은 상기 데이터 전송 동작이 일어나는 상기 통신 네트워크의 혼잡 상태에 기반하여 결정되는 방법.
  19. ◈청구항 19은(는) 설정등록료 납부시 포기되었습니다.◈
    제10항에 있어서,
    상기 데이터 스트림은 비디오 스트림, 오디오 스트림, 파일 전송 스트림, 메시징 스트림, 및 그래픽 스트림 중 어느 하나나 상기 비디오 스트림, 상기 오디오 스트림, 상기 파일 전송 스트림, 상기 메시징 스트림, 및 상기 그래픽 스트림의 조합으로부터 선택된 미디어 스트림인 방법.
KR1020160039034A 2015-08-19 2016-03-31 데이터 전송 장치, 데이터 전송 제어 방법, 및 데이터 스트림 KR102469659B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US15/240,558 US10164893B2 (en) 2015-08-19 2016-08-18 Data transfer apparatus, data transfer controlling method and data stream

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
PH12015000269A PH12015000269A1 (en) 2015-08-19 2015-08-19 Data transfer apparatus, method of controlling data transfer, and a data stream
PH12015000269 2015-08-19

Publications (2)

Publication Number Publication Date
KR20170022851A KR20170022851A (ko) 2017-03-02
KR102469659B1 true KR102469659B1 (ko) 2022-11-23

Family

ID=58191820

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160039034A KR102469659B1 (ko) 2015-08-19 2016-03-31 데이터 전송 장치, 데이터 전송 제어 방법, 및 데이터 스트림

Country Status (2)

Country Link
KR (1) KR102469659B1 (ko)
PH (1) PH12015000269A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116208788B (zh) * 2023-05-04 2023-07-21 海马云(天津)信息技术有限公司 提供网络应用服务的方法及装置、服务器设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130128735A1 (en) * 2010-12-17 2013-05-23 Microsoft Corporation Universal rate control mechanism with parameter adaptation for real-time communication applications

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2566172A1 (en) * 2011-09-02 2013-03-06 Thomson Licensing Method and apparatus for adaptive transcoding of multimedia stream

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130128735A1 (en) * 2010-12-17 2013-05-23 Microsoft Corporation Universal rate control mechanism with parameter adaptation for real-time communication applications

Also Published As

Publication number Publication date
KR20170022851A (ko) 2017-03-02
PH12015000269A1 (en) 2017-02-27

Similar Documents

Publication Publication Date Title
US10164893B2 (en) Data transfer apparatus, data transfer controlling method and data stream
KR101942208B1 (ko) Dlna http 스트리밍 클라이언트들을 위한 서버측 적응형 비트 레이트 제어
US8619602B2 (en) Capacity/available bandwidth estimation with packet dispersion
US10178037B2 (en) Deadline driven content delivery
US11159834B2 (en) Managing congestion response during content delivery
JP4309185B2 (ja) ストリーミング・メディアの輻輳制御メカニズム
US8417829B2 (en) Flow-rate adaptation for a connection of time-varying capacity
US20140215085A1 (en) System and method for robust adaptation in adaptive streaming
US20140281000A1 (en) Scheduler based network virtual player for adaptive bit rate video playback
US20140108495A1 (en) Adaptive streaming client
CN104581422B (zh) 一种用于处理网络数据传输的方法和装置
US9357273B2 (en) Method and client apparatus for receiving an http adaptive streaming video
EP2928145A1 (en) Method for estimating a bandwidth associated with a connection between a client terminal and at least one server, corresponding client terminal
KR102469659B1 (ko) 데이터 전송 장치, 데이터 전송 제어 방법, 및 데이터 스트림
US20160050243A1 (en) Methods and devices for transmission of media content
US8218452B2 (en) Network detection of real-time applications using incremental linear regression
Kesavan et al. Effective client-driven three-level rate adaptation (TLRA) approach for adaptive HTTP streaming
GB2577610A (en) Improved congestion response
Tunali et al. Adaptive available bandwidth estimation for internet video streaming
Yanev et al. Retracted on December 7, 2023: Does TCP new congestion window validation improve HTTP adaptive streaming performance?
Laine et al. Network Capacity Estimators Predicting QoE in HTTP Adaptive Streaming
Kesavan et al. Improvement of adaptive HTTP streaming using advanced real-time rate adaptation
Fraga et al. A non-intrusive estimation for high-quality Internet TV services
GB2572357A (en) Congestion response for timely media delivery
Jäger et al. How dia-shows turn into video flows: adapting scalable video communication to heterogeneous network conditions in real-time

Legal Events

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