KR20150093153A - 통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법 - Google Patents

통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법 Download PDF

Info

Publication number
KR20150093153A
KR20150093153A KR1020157012785A KR20157012785A KR20150093153A KR 20150093153 A KR20150093153 A KR 20150093153A KR 1020157012785 A KR1020157012785 A KR 1020157012785A KR 20157012785 A KR20157012785 A KR 20157012785A KR 20150093153 A KR20150093153 A KR 20150093153A
Authority
KR
South Korea
Prior art keywords
download
strategy
session
sessions
current
Prior art date
Application number
KR1020157012785A
Other languages
English (en)
Inventor
열 잰저
길 갓
오퍼 아트지즈
스타니슬라프 툴친
샤론 맬키엘
Original Assignee
지래픽 테크놀로지스 엘티디.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지래픽 테크놀로지스 엘티디. filed Critical 지래픽 테크놀로지스 엘티디.
Publication of KR20150093153A publication Critical patent/KR20150093153A/ko

Links

Images

Classifications

    • 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
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • 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/12Avoiding congestion; Recovering from congestion
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • H04L47/365Dynamic adaptation of the packet size
    • H04L65/4084
    • H04L65/601
    • 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/75Media network packet handling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • 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/14Multichannel or multilink protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • H04N21/23439Processing of video elementary streams, e.g. splicing of video streams, manipulating MPEG-4 scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements for generating different versions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/262Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists
    • H04N21/26258Content or additional data distribution scheduling, e.g. sending additional data at off-peak times, updating software modules, calculating the carousel transmission frequency, delaying a video stream transmission, generating play-lists for generating a list of items to be played back in a given order, e.g. playlist, or scheduling item distribution according to such list
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44245Monitoring the upstream path of the transmission network, e.g. its availability, bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6373Control signals issued by the client directed to the server or network components for rate control, e.g. request to the server to modify its transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64723Monitoring of network processes or resources, e.g. monitoring of network load
    • H04N21/64738Monitoring network characteristics, e.g. bandwidth, congestion level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • 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/36Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
    • 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/38Flow control; Congestion control by adapting coding or compression rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources

Abstract

통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 시스템 및 방법이 제시된다. 본 방법은 링크 용량의 변동을 최대화하기 위해 하나 이상의 URL로부터 가변 스트림 수 및 각각의 다운로드 조각 사이즈를 모니터링하고 관리하는 것을 수반한다. 참가하는 스트림의 수는 총 링크 혼잡 상태에 따라 조절된다.

Description

통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법{A CONGESTION CONTROL METHOD FOR DYNAMICALLY MAXIMIZING COMMUNICATION LINK THROUGHPUT}
본 발명은 컴퓨터 네트워크 분야에 관한 것으로, 보다 상세하게는, 이러한 네트워크에서 데이터 파일을 스트리밍하는 것에 관한 것이다.
관련 특허 출원에 대한 상호 참조
본 특허 출원은 2012년 10월 18일에 출원된 미국 가특허 출원 번호 61/715,322의 우선권을 주장하고 이에 관한 것이며, 이 미국 가특허 출원은 그 전체 내용이 본 명세서에 병합된다.
많은 인터넷 사용자들이 직면하는 공통적인 문제는 비디오 스트리밍 동안 리버퍼링(re-buffering)으로 인한 일시 중지이다. 이런 현상은 특히 실제 최종 사용자의 인터넷 연결 용량/처리량이 소비되는 스트림 품질의 것에 매우 근접할 때 또는 비디오 소스가 최종 사용자로부터 멀리 떨어져 있어 여러 네트워크에 걸쳐 횡단할 것을 요구하는 경우 자주 발생하며, 이러한 예는 다음과 같다:
- 공유 Wi-Fi 연결
- 3G 모바일 네트워크.
- 크라우드(Crowded) 고속 링크(케이블)
- 개발 도상국의 저품질(높은 패킷 손실) 링크
- 로컬 ISP 연결이 외부 ISP 연결보다 더 강하고, 충분히 사용할 수 없는 경우(예를 들어, 최종 사용자에게 5Mbps ADSL 회선이 있지만, 실제로 2Mbps 속도로 다운로드되는 경우).
- 라우팅 성능이 불량하지만, 서버와 클라이언트의 연결성은 실제로 강력한 경우.
스트리밍 프로토콜 혼잡 제어 메커니즘을 조절하거나, 압축률을 조절하거나, 링크의 변동 상태에 따라 스트림 비트율을 동적으로 변경(예를 들어, Adobe Http Dynamic Streaming)하는 것에 의해 버퍼링을 감소시키기 위한 많은 시도가 있었다.
파일을 다운로드하기 위해 여러 스트림을 사용하는 방안이 이전에 제시되어 있었다. 하지만 이러한 시도는 전체 파일을 다운로드하는 것에 집중하거나 또는 조각(fragment) 다운로드를 계산을 위해 플레이 비트율(playing bitrate)을 고려하며 매체 파일을 스트리밍하는 것에 집중되었다(US8224981 및 이 문헌에 포함된 인용 문헌 참조)
애플사의 HLS, 아도브사의 HDS, 마이크로스프트사의 Smooth Streaming 또는 MPEG-DASH와 같은 적응적 스트리밍(adaptive streaming) 프로토콜은 동일한 파일의 여러 버전(통상적으로 상이한 품질 레벨을 구비함)을 사용하여 링크 대역폭의 변동에 적응한다. 다양한 품질 레벨 간 원활한 전이를 위해 통상 파일들은 청크(chunk)로 분할된다. 플레이어는 임의의 특정 품질(해상도) 레벨에 대한 조각 목록(및 이를 검색하는 방법(예: URL/URL 패턴))을 설명하는 매니페스트 파일(manifest file)을 수신한다. 일반 플레이어는 성능/대역폭을 측정하는 동안, 연속적으로 조각을 다운로드하기 시작하고, 그에 따른 품질 레벨의 변동을 결정한다.
본 발명의 일 측면에 따라, 통신 링크 다운로드 처리량을 동적으로 최대화하는 혼잡 제어 방법으로서, 하나 이상의 URL로부터 동시 다운로드 세션을 동적으로 생성하고 삭제하는 단계, 및 상기 링크의 전체 혼잡 상태를 지속적으로 모니터링하는 것에 의해 각 세션에 대한 데이터 청크 사이즈를 동적으로 변경하는 단계를 포함하는 혼잡 제어 방법이 제공된다.
상기 모니터링하는 것은 동시 다운로드 세션의 수 및 각 세션의 지속시간을 한정하는 현재 전략(current strategy)을 선택하는 단계; 상기 현재 전략을 사용하여 상기 하나 이상의 URL로부터 데이터를 다운로드하는 단계; 상기 한정된 수의 동시 다운로드 세션이 활성 상태인지 여부 및 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 단계; 및 상기 체크하는 단계가 상기 다운로드 처리량을 더 잘 사용할 수 있는 전략을 나타내는 경우, 새로운 현재 전략을 선택하는 단계를 포함할 수 있다.
상기 한정된 수의 동시 다운로드 세션이 활성 상태인지 여부를 주기적으로 체크하는 단계는, a. 첫 번째 활성 세션이 종료된 경우, 그 다음 데이터 청크의 다운로드를 시작할지 또는 세션을 폐기(discard)할지 여부를 결정하는 단계; b. 그 다음 다운로드 세션이 보류 중(pending)인 경우, 이 세션을 활성 상태로 한정하고 단계 (a)를 반복하는 단계; 및 c. 세션의 현재 수가 상기 현재 전략에 의해 한정된 상기 동시 다운로드 세션의 총 수보다 더 작은 경우, 보류 중인 다운로드 세션을 추가하는 단계를 포함할 수 있다.
상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 단계는, 현재 측정된 총 다운로드 속도가 이전의 기간에서 측정된 상기 총 다운로드 속도보다 더 큰 경우, 타깃 동시 세션의 수를 증가시키는 단계; 및 새로운 데이터 청크 사이즈를 계산하는 단계를 포함하는, 전략 변경이 이전의 기간 동안 수행되었을 때 다운로드 처리량을 체크하는 단계를 포함할 수 있다.
상기 증가시키는 단계는 상기 현재 측정된 총 다운로드 속도와 상기 이전의 기간에서 측정된 상기 총 다운로드 속도 간 차이에 따라 타깃 동시 세션의 수를 증가시키는 단계를 포함할 수 있다.
상기 주기적으로 체크하는 단계는, 현재 측정된 총 다운로드 속도가 현재 전략에 대해 측정된 최대 다운로드 속도보다 기껏해야 미리 한정된 퍼센트 차이만큼 더 작은 경우, 최고, 최악으로 측정된 다운로드 속도를 가지는 새로운 전략을 선택하는 단계; 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 계산된 최상의 다운로드 속도보다 적어도 미리 한정된 퍼센트 차이만큼 더 큰 경우, 최고 최상으로 미리 한정된 다운로드 속도를 가지는 새로운 전략을 선택하는 단계; 및 새로운 데이터 청크 사이즈를 계산하는 단계를 포함하는, 전략 변경이 상기 이전의 기간 동안 수행되지 않았을 때 상기 다운로드 처리량을 체크하는 단계를 포함할 수 있다.
본 발명의 다른 측면에 따라, 통신 링크 다운로드 처리량을 동적으로 최대화하는 혼잡 제어 시스템으로서, 하나 이상의 URL로부터 병렬 데이터 스트림을 동적으로 생성하고 삭제하는 동작과, 상기 링크의 전체 혼잡 상태를 지속적으로 모니터링하는 것에 의해 각 스트림에 대한 데이터 조각의 사이즈를 동적으로 변경하는 동작을 수행하도록 구성된 다운로드 세션 제어기를 포함하는 혼잡 제어 시스템이 제공된다.
상기 다운로드 세션 제어기는, 동시 다운로드 세션의 수 및 각 세션의 지속 시간을 한정하는 현재 전략을 선택하는 동작; 상기 현재 전략을 사용하여 상기 하나 이상의 URL로부터 데이터를 다운로드하는 동작; 상기 한정된 수의 동시 다운로드 세션이 활성 상태인지 여부 그리고 상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 동작; 상기 체크하는 동작이 상기 다운로드 처리량을 더 잘 사용할 수 있는 전략을 나타내는 경우 새로운 현재 전략을 선택하는 동작을 수행하도록 더 구성될 수 있다.
상기 한정된 수의 동시 다운로드 세션이 활성 상태인지 여부를 주기적으로 체크하는 동작은, a. 첫 번째 활성 세션이 종료된 경우, 그 다음 데이터 청크의 다운로드를 시작할지 또는 세션을 폐기할 것인지 여부를 결정하는 동작; b. 그 다음 다운로드 세션이 보류 중인 경우, 이 세션을 활성 상태로 한정하고 단계 (a)를 반복하는 동작; 및 c. 세션의 현재 수가 상기 현재 전략에 의해 한정된 상기 동시 다운로드 세션의 총 수보다 더 작은 경우, 보류 중인 다운로드 세션을 추가하는 동작을 포함할 수 있다.
상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 동작은 현재 측정된 총 다운로드 속도가 이전의 기간에서 측정된 총 다운로드 속도보다 더 큰 경우, 타깃 동시 세션의 수를 증가시키는 동작; 및 새로운 데이터 청크 사이즈를 계산하는 것을 포함하는, 전략 변경이 상기 이전의 기간 동안 수행되었을 때 상기 다운로드 처리량을 체크하는 동작을 포함할 수 있다.
증가시키는 동작은 상기 현재 측정된 총 다운로드 속도와 상기 이전의 기간에서 측정된 상기 총 다운로드 속도 간 차이에 따라 타깃 동시 세션의 수를 증가시키는 동작을 포함할 수 있다.
상기 주기적으로 체크하는 동작은, 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 측정된 최대 다운로드 속도보다 기껏해야 미리 한정된 퍼센트만큼 더 작은 경우, 최고 최악으로 측정된 다운로드 속도를 가지는 새로운 전략을 선택하는 단계; 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 계산된 최상의 다운로드 속도보다 적어도 미리 한정된 퍼센트만큼 더 큰 경우, 최고 최상으로 미리 한정된 다운로드 속도를 가지는 새로운 전략을 선택하는 단계; 및 새로운 데이터 청크 사이즈를 계산하는 단계를 포함하는, 전략 변경이 상기 이전의 기간 동안 수행되지 않았을 때 상기 다운로드 처리량을 체크하는 동작을 포함할 수 있다.
본 발명의 또 다른 측면에 따라, 컴퓨터 프로그램 제품이 제공되고, 본 컴퓨터 프로그램 제품은 컴퓨터 판독가능한 프로그램을 저장한 컴퓨터 판독 가능 저장 매체를 포함하고, 상기 컴퓨터 판독가능한 프로그램은 하나 이상의 URL로부터 병렬 데이터 스트림을 동적으로 생성하고 삭제하는 동작과, 링크의 전체 혼잡 상태를 지속적으로 모니터링하는 것에 의해 각 스트림에 대한 데이터 사이즈를 동적으로 변경하는 동작을 수행하도록 구성된다.
상기 컴퓨터 프로그램 제품은 동시 다운로드 세션의 수와 각 세션의 지속 시간을 한정하는 현재 전략을 선택하는 동작; 상기 현재 전략을 사용하여 상기 하나 이상의 URL로부터 데이터를 다운로드하는 동작; 상기 한정된 수의 동시 다운로드 세션이 활성 상태인지 여부 그리고 상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 동작; 및 상기 체크하는 동작이 상기 다운로드 처리량을 보다 잘 사용할 수 있는 전략을 나타내는 경우 새로운 현재 전략을 선택하는 동작을 수행하도록 더 구성될 수 있다.
상기 컴퓨터 프로그램 제품은, a. 첫 번째 활성 세션이 종료된 경우, 그 다음 데이터 청크의 다운로드를 시작할지 또는 세션을 폐기할 것인지 여부를 결정하는 동작; b. 그 다음 다운로드 세션이 보류 중인 경우, 이 세션을 활성 상태로 한정하고 단계 (a)를 반복하는 동작; 및 c. 세션의 현재 수가 상기 현재 전략에 의해 한정된 상기 동시 다운로드 세션의 총 수보다 더 작은 경우, 보류 중인 다운로드 세션을 추가하는 동작을 포함하는, 상기 한정된 수의 동시 다운로드 세션이 활성 상태에 있는지 여부를 주기적으로 체크하는 동작을 수행하도록 더 구성될 수 있다.
상기 컴퓨터 프로그램 제품은, 현재 측정된 총 다운로드 속도가 이전의 기간에서 측정된 총 다운로드 속도보다 더 큰 경우, 타깃 동시 세션의 수를 증가시키는 동작, 새로운 데이터 청크 사이즈를 계산하는 동작을 포함하는, 전략 변경이 상기 이전의 기간 동안 수행되었을 때 상기 다운로드 처리량을 체크하는 동작을 포함하는, 상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 동작을 수행하도록 더 구성될 수 있다.
상기 증가시키는 동작은 상기 현재 측정된 총 다운로드 속도와 상기 이전의 기간에서 측정된 총 다운로드 속도 간 차이에 따라 타깃 동시 세션의 수를 증가시키는 동작을 포함할 수 있다.
상기 주기적으로 체크하는 동작은 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 측정된 최대 다운로드 속도보다 기껏해야 미리 한정된 퍼센트만큼 더 작은 경우, 최고 최악으로 측정된 다운로드 속도를 가지는 새로운 전략을 선택하는 동작; 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 계산된 최상의 다운로드 속도보다 적어도 미리 한정된 퍼센트만큼 더 큰 경우, 최고 최상으로 미리 한정된 다운로드 속도를 가지는 새로운 전략을 선택하는 동작; 및 새로운 데이터 청크 사이즈를 계산하는 동작을 포함하는, 전략 변경이 상기 이전의 기간 동안 수행되지 않았을 때 상기 다운로드 처리량을 체크하는 동작을 포함할 수 있다.
본 발명의 실시예를 보다 잘 이해하고 본 발명을 실시하는 방식을 보다 잘 보여주기 위해 이제 예로서 동일한 참조 부호가 대응하는 요소나 부분을 나타내는 첨부 도면을 참조한다.
도 1a는 가변하는 수의 다운로드 세션과 혼잡 제어기를 포함하는 일반적인 다중-세션 다운로드 제어기를 포함하는 2개의 주요 개체를 개략적으로 도시하는 도면.
도 1b는 보류 중인 조각의 버퍼 목록을 개략적으로 도시하는 도면.
도 2는 예시적인 세션 제어기에 의해 수행되는 결정 프로세스의 흐름도.
도 3은 도 4의 프로세스에 의해 선택된 전략을 구현하는 프로세스의 흐름도.
도 4는 회선 이용율(line utilization)을 최적화하기 위해 최상의 전략을 결정하는 혼잡 제어기의 다른 프로세스의 흐름도.
도 5는 보다 나은 성능을 제공하는 다수의 스트림을 사용하는 방법을 보여주는 개략 그래프.
도 6은 단일 스트림을 사용하여 얻어진 실제 결과를 보여주는 그래프.
본 발명은 효과적인 방식으로 다중 연결의 처리량을 최대화함으로써 단일 스트림과 관련된 문제를 최소화하는 혼잡 제어 메커니즘을 사용하는 방법을 설명한다. 다음 두문자어들은 이후에 나오는 설명과 첨부 도면 전반에 사용된다:
CDS - 현재 다운로드 세션 수
TSC - 타깃 다운로드 세션 수 = 현재 총 링크 용량
PSC - 이전 세션 수
CDS - 현재 다운로드 속도
PDS - 이전 다운로드 속도
다음 용어들은 이후에 나오는 설명 전반에 사용된다:
청크 - 시작 및 종료 오프셋에 의해 지정된 가변 길이 데이터 섹션;
조각 - 미리 한정된 길이를 가지는 데이터 섹션이고; 조각은 하나의 청크를 포함하거나 또는 프로세스에 의해 다수의 청크로 분할될 수 있다.
각 청크는 하나 이상의 범위 요청을 사용하여 하나 이상의 세션에 의해 다운로드될 수 있다. 또한 여러 개의 청크가 병렬로 다운로드될 수도 있다.
현재 조각(CF) - 현재 요청된 조각;
활성 조각(Active Fragment, AF) - 다운로드되고 있는 조각;
보류 중인 조각(Pending Fragment, PF) - 플레이어가 요청하기 전에 다운로드된 조각;
타깃 완료 조각(TCF) - 완료될 것으로 예상되는 다음 조각의 순차적 번호(시퀀스 번호);
보류 중인 조각 수(PFC) - 보류 중인 조각 수;
보류 중인 활성 조각 수(APC);
보류 중인 마지막 조각(LPF).
다운로드 세션 - URL(Uniform Resource Locator)로부터 클라이언트로의 청크 데이터의 전송을 제어하는 논리적 개체. 예를 들어, 클라이언트와 http://www.youtube.com/ 간 HTTP 연결. 다운로드 세션은 연결 및 지속 시간에 의해 한정된다.
적응적 세션(adaptive session) - 미리 한정된 조각의 가변 길이 청크나 전체 조각을 다운로드하는 세션;
점진적 세션(progressive session) - 미리 한정된 조각이 없는 파일의 가변 길이 청크를 다운로드하는 세션;
총 다운로드 속도 - 시간 간격 동안 있는 모든 세션을 이 시간 간격으로 나누어 얻어진 총 데이터(바이트 수).
전략 - 동시 다운로드 세션 수와 타깃 다운로드 지속 시간.
[0044] 각 전략에는 다음 특성이 포함된다:
a. 다음으로 한정된 currentStrategyBest:
If (currentDownloadSpeed > currentStarategyBest){
currentStarategyBest = currentDownloadSpeed;}Else{currentStrategyBest = currentStrategyBest - (currentStrategyBest - currentAverageSpeed)/20);}
b. 다음으로 한정된 currentStrategyWorse:
If(currentDownloadSpeed <currentStarategyWorse){currentStarategyWorse = currentDownloadSpeed;}Else{currentStarategyWorse = currentStarategyWorse + (currentAverageSpeed - currentStarategyWorse)/20;}
c. 현재 전략 치대값(currentStrategyMax)은 마지막으로 활성 상태로 선택된 이후 현재 전략에서 측정된 최대 다운로드 속도에 의해 한정된다.
d. 현재 전략 최소값(currentStrategyMin)은 마지막으로 활성 상태로 선택된 이후 현재 전략에서 측정된 최소 다운로드 속도에 의해 한정된다.
본 발명은 링크 처리량을 항상 최대화하기 위해 가변 스트림 수를 병렬로 사용하는, 플레이 속도(play rate)나 다운로드되는 콘텐츠와 독립적인 일반적인 메커니즘을 제공한다.
도 1a는 본 발명의 예시적인 실시예의 주요 개체를 개략적으로 도시한다. 클라이언트 기기 제조사가 공급하는 운영 체제/펌웨어의 일부인 소프트웨어 부분 또는 클라이언트 애플리케이션에 통합된 소프트웨어 모듈일 수 있는 세션 제어기(100)는 URL(130)로부터 다운로드 세션(110)의 가변 수를 관리하고 모니터링하는 일을 수행하며, 여기서 동시 세션 수, 각 세션의 지속 시간 및/또는 조각 사이즈를 결정하기 위한 전략이 혼잡 제어기(120)에 의해 결정된다.
세션 제어기는 도 1b에서 개략적으로 도시된 바와 같이 버퍼에 현재 조각은 물론 보류 중인 조각 목록(이 목록은 처음에 비어 있음)을 보유한다.
도 2는 예시적인 세션 제어기에 의해 수행되는 결정 프로세스의 흐름도이다. 이 흐름도는 지정된 파일을 다운로드하라는 플레이어의 요청을 수신하는 단계에서 시작된다(200). 이 프로세스는 먼저 요청된 파일이 (즉, 파일이 주어진 사이즈의 조각으로 미리 분할된 경우) 파일 유형에 따라 점진적 세션으로 다운로드해야 할지 또는 적응적 세션으로 다운로드해야 할지 여부를 체크한다(205). 여기서 제어기는 매니페스트/플레이리스트 파일을 알고 있고 현재 품질 레벨을 검색하는 방법을 알고 있다고 가정된다.
다운로드 모드가 적응적인 것, 즉 미리 한정된 조각 사이즈인 것으로 결정된 경우 프로세스는 첫 번째 활성 조각에 대해 가속이 시작되지 않았는지 여부, 그리고 남은 다운로드 시간이 특정 임계값보다 더 큰지 여부를 체크한다(210). 두 조건이 모두 충족된 경우, 활성 조각에 대한 조각 가속이 시작된다(220)(도 3).
세션 제어기는 타깃 완료 조각, 즉 프로세스가 다운로드의 완료를 현재 기다리고 있는 조각이 다운로드 완료되었는지 여부를 병렬로 체크한다(230). 이 동작이 완료되면 프로세스는 다음 수식에 따라 단일 조각의 다운로드 속도를 방해함이 없이 다운로드될 수 있도록 허용된 동시 조각 수를 계산한다:
허용된 동시 조각 수 = (마지막으로 완료된 조각 다운로드 시간/마지막으로 완료된 조각 지속 시간)*(보류 중인 조각 수 + 1).
TCF, 즉 프로세스가 현재 기다리고 있는 조각이 1만큼 증가된다(250). 프로세스는 다음 조건이 참인 경우 보류 중인 조각을 추가해야 할지 여부를 체크한다(260):
(LPF가 100ms를 초과하여 실행되고 있고 || LPF가 완료되었다) 및 (PFC < 최대 보류 중인 조각(MaxPendingFragment)) 및 (허용된 동시 조각 수 > APC+1) ||(APC < 허용된 동시 조각 수 +1) 및 (LPF 남은 시간 < LPF 조각 지속 시간/(PFC + 보장 계수(Assurance factor)) || (LPF 진척도 % > 100-100/(PC+3)), 여기서 이 최대 보류 중인 조각은 보류 중인 최대 조각 수이다. 이 데이터는 사용가능하지 않기 때문에 최대치를 초과하여 검색할 필요가 없다.
이런 조건들은 현재 다운로드가 (랜덤 변동에 기초하여 결정하는 것을 피하기 위해 보장 계수를 추가하는) 현재 전략에 의해 한정된 적어도 특정 비율의 지속 시간을 달성하였을 때 또는 조각 사이즈에 의해 한정된 특정 비율의 바이트 수를 달성하였을 때에만 그 다음 다운로드가 시작되는 것을 보장한다.
보류 중인 조각이 활성 상태로 한정되고(추가되고)(270), 프로세스는 유지보수 간격을 기다리고(280) 나서 단계(210)로 복귀한다.
TCP 프로토콜(또는 HTTP)을 사용할 때 총 다운로드 속도는 손실로 인해 재전송된 패킷의 양에 따라 TCP의 내부 혼잡 제어에 의해 영향을 받을 수 있다.
다운로드 모드가 점진적인 방식인 것으로 결정된 경우 첫 번째 세션은 무한 지속 시간의 1개 조각을 가지는 디폴트 전략에 의해 한정된다(225).
도 3은 도 4의 프로세스에 의해 선택된 전략을 구현하는 흐름도이다.
도 3의 프로세스는 미리 한정된 각 시간 간격마다 호출되고, CSC(현재 세션 수)가 도 4의 프로세스에 의해 결정된 것과 동일한 것을 보장하고, 임의의 주어진 순간에 이용가능한 대역폭을 사용하기 위해 도 4의 프로세스를 호출한다. 프로세스는 현재 다운로드 속도를 측정하고, 이를 이전에 측정된 다운로드 속도와 비교하고 나서, 동시 세션이 실행해야 하는 횟수와 각 세션의 지속 시간을 결정한다.
단계(305)에서 프로세스는 바이트 오프셋을 가지고 다운로드되는 것이 URL에 의해 지원되는지 여부(범위 요청)를 체크한다. 부분 다운로드가 지원되는 경우 프로세스는, 활성 세션의 상태를 모니터링하고, 혼잡 제어기에 의해 설정된 파라미터에 따라 CSC에서 세션을 더하거나 제하는 루프를 실행한다. 세션 제어기는 활성 세션 목록에서 첫 번째 세션을 가져와서(315) 이 세션이 종료되었는지 여부를 체크한다(317). 이 세션이 종료된 경우 프로세스는 현재 세션 카운트(CSC)가 타깃 세션 카운트(TSC)보다 큰지 여부를 체크한다(320). 만약 그렇다면, 프로세스는 하나의 세션을 폐기(discard)하고(325), 그 다음 세션이 이용가능한지 여부를 체크하고(335), 만약 이용가능하다면 이를 활성 상태(342)로 선택한다. 프로세스는 단계(317)로 되돌아가서 첫 번째 활성 세션이 종료되었는지 여부를 체크한다. 그렇지 않고, 그 다음 세션이 이용가능하지 않다면 프로세스는 CSC가 TSC보다 작은지 여부를 체크하고(340), 만약 그렇다면 CSC가 TSC와 같아질 때까지 그 다음 청크를 새로운 세션에 추가한다(345). 프로세스는 도 4로 이동하여 현재 전략의 성능을 체크한다.
단계(320)에서 CSC가 타깃 세션 수(TSC) 이하인 것으로 결정된 경우, 즉 세션이 추가될 수 있는 것으로 결정된 경우, 프로세스는 그 다음 청크를 현재 세션에 할당하고(330) 단계(335)로 이동한다.
도 4는 회선 이용률을 최적화하기 위해 최상의 전략을 결정하는 혼잡 제어기의 프로세스의 흐름도이다. 도 4의 프로세스는 도 3의 프로세스에 의해 더 이상 활성 세션을 찾을 수 없을 때 호출된다. 이 흐름도는 외부 변경(예를 들어, 회선 변경)이나 내부 변경(시스템에 의해 수행된 마지막 전략 변경) 측면에서 가장 적절한 전략을 선택하는 프로세스를 설명한다.
프로세스는 CSC에서 마지막 변경 이후 경과된 시간이 허용된 시간 제한 범위 내에 있는지 여부를 체크한다(400). 만약 그렇지 않다면 타이머가 리셋된다(460). 이 체크 작업을 하는 목적은 전략 변경과 그 결론을 체크하는 것 간에 충분한 시간을 허용하여 시스템을 안정화시키려는 것이다.
충분한 시간이 경과한 경우 프로세스는 현재 전략이 첫 번째 전략, 즉 하나의 무한 지속 시간 세션을 가지는 디폴트 시스템 전략인지 여부를 체크한다(402). 만약 그렇다면 종료 오프셋이 첫 번째 세션에 대해 설정되고(403), 미리 한정된 세션 수를 가지는 두 번째 디폴트 전략이 선택되고(404), 프로세스는 수식 청크사이즈(chunkSize) = CDS*시간간격(TimeInterval)/TSC에 따라 새로운 청크 사이즈를 계산(450)하는 것으로 진행하는데, 여기서 이 시간간격은 일반적으로 수 초이고, TSC는 선택된 전략에 의해 결정된다.
현재 전략이 첫 번째 전략이 아닌 경우 프로세스는 마지막으로 체크된 이후로 전략이 변경되었는지 여부를 체크한다(405). 전략 변경을 찾을 수 없는 경우 프로세스는 진행하여 외부 변경이 통신 회선에 영향을 주어 전략 변경이 필요한지 여부를 체크한다. 프로세스는 현재 총 다운로드 속도(CDS)가 현재전략Max*CONST1 (여기서 CONST1은 퍼센트를 나타내는 상수임)보다 작은지 여부를 체크한다(410). 예를 들어, CONST1이 0.8인 경우 단계(410)는 현재 전략의 최대 처리량과 비교하여 적어도 20%의 성능 감소가 있었는지 여부를 체크한다. 만약 그러한 경우 전략을 변경하는 결정이 이루어지고, 최고, 최악 상태를 갖는 전략이 선택된다(415). 프로세스는 진행되어 새로운 청크 사이즈를 계산한다(450).
만약 그렇지 않은 경우, 현재 총 다운로드 속도(CDS)가 현재전략최대값(currentStrategyMax)*CONST1보다 작지 않은 경우 프로세스는 현재 총 다운로드 속도(CDS)가 현재전략최상값(currentStrategyBest)*CONST2 (여기서 CONST2는 퍼센트를 나타내는 상수임)보다 큰지 여부를 체크한다(420). 예를 들어, CONST2가 0.9이면 단계(420)는 현재 성능이 현재 전략의 상한값의 10%에 근접했는지 체크하고, 프로세스는 존재하는 경우 성능이 더 높은 전략을 선택할 필요가 있다. 만약 그러한 경우 전략을 변경하는 결정이 이루어지고, 성능이 최고, 최상인 전략이 선택된다(425).
전략이 변경되었는지 또는 변경되지 않았는지 여부에 상관 없이 프로세스는 진행되어 새로운 청크 사이즈를 계산한다(450).
단계(405)에서 마지막으로 체크된 이후에 전략 변경이 수행된 경우 프로세스는 진행되어 전략 변경이 통신 회선에 영향을 주어 다른 전략 변경이 필요한지 여부를 체크한다. 프로세스는 CDS가 PDS*하부임계값(미리 한정된 낮은 임계값)보다 큰지 여부, 즉 다운로드 속도가 개선되었는지 여부를 체크한다(430). 만약 그렇다면 프로세스는 CDS가 PDS*상부임계값(미리 한정된 높은 임계값)보다 큰지 여부, 즉 다운로드 속도가 획기적으로 개선되었는지 여부를 체크한다(435). 총 세션 수(TSC)는 다운로드 속도 변경 크기에 따라 1만큼 증가되거나(445) 또는 2로 승산된다(multiplied)(440). 새로운 청크 사이즈가 계산(450)되고, 타이머가 재설정(460)된다.
단계(430)에서 마지막 전략 변경 이후 다운로드 속도가 개선되지 않았다고 결정된 경우 프로세스는 단계(450)로 이동하여 최적의 청크 사이즈를 재계산하고 나서 타이머가 리셋된다.
도 5는 본 발명의 방법에 따라 다수의 동적 스트림을 사용하여 얻어진 실제 결과를 보여주는 그래프이다.
도 6은 단일 스트림을 사용하여 얻어진 실제 결과를 보여주는 그래프이다. 단일 스트림 속도는 순간적인 높은 패킷 손실로 인해 상당히 떨어질 수 있지만, 다수의 스트림을 사용하면 전체 속도에 미치는 영향이 상당하지 않다(실제로는 스트림 수에 따라 속도가 감소한다). 총 처리량을 모니터링함이 없이 스트림을 추가하고 조각 사이즈를 조절하면 모든 스트림이 패킷 손실을 가지고 총 처리량이 매우 불량하게 될 수 있다.
이 기술 분야에 통상의 지식을 가진 자라면 이해할 수 있는 바와 같이 본 발명의 측면은 시스템, 방법 또는 컴퓨터 프로그램 제품으로 구현될 수 있다. 따라서 본 발명의 측면은 완전히 하드웨어인 구현, 완전히 소프트웨어인 구현(펌웨어, 상주 소프트웨어, 마이크로-코드 등을 포함하는) 또는 소프트웨어와 하드웨어 측면을 결합한 실시예의 형태를 취할 수 있으며, 이들 모두는 일반적으로 본 명세서에서"회로," "모듈" 또는 "시스템"으로 언급될 수 있다. 나아가, 본 발명의 측면은 컴퓨터 판독 가능 프로그램 코드가 내장된 하나 이상의 컴퓨터 판독 가능 매체(들)에 구현된 컴퓨터 프로그램 제품의 형태를 취할 수 있다.
하나 이상의 컴퓨터 판독 가능 매체(들)를 임의로 조합한 것이 사용될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 신호 매체 또는 컴퓨터 판독 가능 저장 매체일 수 있다. 컴퓨터 판독 가능 저장 매체는 전자, 자기, 광학, 전자기, 적외선 또는 반도체 시스템, 장치 또는 기기 또는 이들의 임의의 적절한 조합일 수 있으나 이들로 제한되는 것은 아니다. 컴퓨터 판독 가능 저장 매체의 보다 특정한 예(모두 다 나열한 것은 아닌 목록)로는 하나 이상의 와이어를 가지는 전기적 연결, 휴대용 컴퓨터 디스켓, 하드 디스크, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 소거 가능한 프로그래밍가능한 판독 전용 메모리(EPROM 또는 플래시 메모리), 광섬유, 휴대용 콤팩트 디스크 판독 전용 메모리(CD-ROM), 광학 저장 장치, 자기 저장 장치 또는 이들의 임의의 적절한 조합을 포함할 수 있다. 본 문서의 상황에서 컴퓨터 판독 가능한 매체는 명령 실행 시스템, 장치 또는 기기에 의해 사용되거나 이에서 사용하기 위한 프로그램을 포함하거나 또는 이 프로그램을 저장할 수 있는 임의의 유형적인 매체일 수 있다.
컴퓨터 판독 가능한 신호 매체로는 예를 들어 기저 대역 또는 반송파의 일부로 구현된 컴퓨터 판독 가능한 프로그램 코드가 내장된 전파되는 데이터 신호를 포함할 수 있다. 이와 같이 전파되는 신호는 전자기, 광학 또는 이들의 임의의 적절한 조합을 포함하지만 이들로 제한되지 않는 다양한 형태 중 어느 것을 취할 수 있다. 컴퓨터 판독 가능한 신호 매체는, 컴퓨터 판독 가능한 저장 매체가 아닌 임의의 컴퓨터 판독 가능한 매체로서, 명령 실행 시스템, 장치 또는 기기에 의해 사용되거나 이에서 사용하기 위한 프로그램을 전달하거나, 전파하거나 또는 전송할 수 있는 컴퓨터 판독가능한 매체일 수 있다.
컴퓨터 판독 가능한 매체에 내장된 프로그램 코드는 무선, 유선, 광섬유 케이블, RF 등 또는 이들의 임의의 적절한 조합을 포함하지만 이들로 제한되지 않는 임의의 적절한 매체를 통해 전송될 수 있다.
본 발명의 측면에 대한 동작을 실행하기 위한 컴퓨터 프로그램 코드는 객체 지향 프로그래밍 언어, 예를 들어, Java, Smalltalk, C++ 등 및 기존의 절차적 프로그래밍 언어, 예를 들어, "C" 프로그래밍 언어 또는 이와 유사한 프로그래밍 언어를 포함하는 하나 이상의 프로그래밍 언어를 임의로 조합하여 작성될 수 있다. 프로그램 코드는 사용자의 컴퓨터에서 전적으로 실행되거나, 사용자의 컴퓨터에서 독립형 소프트웨어 패키지로 부분적으로 실행되거나,
일부는 사용자의 컴퓨터에서 부분적으로 실행되고 일부는 원격 컴퓨터에서 부분적으로 실행되거나, 또는 원격 컴퓨터나 서버에서 전적으로 실행될 수 있다. 마지막 시나리오의 경우 원격 컴퓨터는 근거리 통신망(LAN)이나 광역 통신망(WAN)을 포함하는 임의의 네트워크 유형을 통해 사용자의 컴퓨터에 연결되거나, 외부 컴퓨터(예를 들어, 인터넷 서비스 제공자를 사용하는 인터넷을 통해)에 연결이 이루어질 수 있다.
본 발명의 측면은 본 발명의 실시예에 따른 방법, 장치(시스템) 및 컴퓨터 프로그램 제품의 흐름도 및/또는 부분 그래프를 참조하여 전술되었다. 흐름도 및/또는 부분 도표의 각 부분과 흐름도 및/또는 부분 그래프의 부분 조합은 컴퓨터 프로그램 명령에 의해 구현될 수 있다. 이 컴퓨터 프로그램 명령은 일반 목적 컴퓨터, 특수 목적 컴퓨터 또는 다른 프로그래밍가능한 데이터 처리 장치의 프로세서에 제공되어, 컴퓨터나 다른 프로그래밍가능한 데이터 처리 장치의 프로세서를 통해 실행될 때 흐름도 및/또는 블록도의 블록 또는 블록들에 지정된 기능/동작을 구현하는 수단을 형성하는 기계를 생성할 수 있다.
컴퓨터, 다른 프로그래밍가능한 데이터 처리 장치 또는 다른 디바이스를 특정 방식으로 기능시킬 수 있는 컴퓨터 프로그램 명령이 컴퓨터 판독가능한 매체에 저장되어, 컴퓨터 판독가능한 매체에 저장된 명령을 통해 흐름도 및/또는 블록도의 블록 또는 블록들에 지정된 기능/동작을 구현하는 명령을 포함하는 제조 물품을 생성할 수 있다.
컴퓨터 프로그램 명령은, 또한 컴퓨터, 다른 프로그래밍가능한 데이터 처리 장치 또는 다른 디바이스로 로딩되어, 이 컴퓨터, 다른 프로그래밍가능한 장치 또는 다른 디바이스에서 수행될 수 있는 일련의 단계를 실행시키는 것에 의해 흐름도 및/또는 블록도의 블록 또는 블록들에 지정된 기능/동작을 구현하는 프로세스를 제공하는 컴퓨터로 구현된 프로세스를 생성할 수 있다.
상기 흐름도와 그래프는 본 발명의 다양한 방식에 따라 시스템, 방법 및 컴퓨터 프로그램 제품을 구현할 수 있는 아키텍처, 기능 및 동작을 예시한다. 이런 점에서 흐름도 또는 부분 그래프의 각 부분은 특정 논리 기능(들)을 구현하기 위한 하나 이상의 실행 가능한 명령을 포함하는, 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또한 일부 대안적인 구현예에서 이 부분에 언급된 기능은 도면에 언급된 순서와는 다르게 실행될 수 있는 것으로 이해된다. 예를 들어, 연속으로 도시된 2개의 부분은 실제로는 실질적으로 동시에 실행되거나, 또는 이들 부분은 수반되는 기능에 따라 종종 역순으로 실행될 수 있다. 또한 부분 그래프 및/또는 흐름도의 각 부분과 이 부분 그래프 및/또는 흐름도의 부분 조합은 지정된 기능이나 동작을 수행하는 특수 목적의 하드웨어 기반의 시스템이나 특수 목적의 하드웨어 및 컴퓨터 명령의 조합에 의해 구현될 수 있는 것으로 이해된다.

Claims (15)

  1. 통신 링크 다운로드 처리량을 동적으로 최대화하는 혼잡 제어 방법으로서, URL로부터 동시 다운로드 세션(concurrent download session)을 동적으로 생성하고 삭제하는 단계 및 상기 링크의 전체 혼잡 상태를 지속적으로 모니터링하는 것에 의해 각 세션에 대한 데이터 청크(data chunk)의 사이즈를 동적으로 변경하는 단계를 포함하는, 상기 혼잡 제어 방법에 있어서, 상기 모니터링하는 것은,
    동시 다운로드 세션의 수 및 각 세션의 지속시간을 한정하는 현재 전략(current strategy)을 선택하는 단계;
    상기 현재 전략을 사용하여 상기 URL로부터 데이터를 다운로드하는 단계;
    상기 한정된 수의 동시 다운로드 세션이 활성 상태에 있는지 여부 및 상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 단계로서, 상기 현재 전략이 대체되어야 할지 여부를 주기적으로 체크하는 단계는 전략 변경이 이전의 기간 동안 수행되었는지 여부를 체크하는 단계 및 이에 따라 상기 다운로드 처리량을 체크하는 단계를 포함하는 것인, 상기 주기적으로 체크하는 단계; 및
    상기 체크하는 단계가 상기 다운로드 처리량을 더 잘 이용할 수 있는 전략을 나타내는 경우 새로운 현재 전략을 선택하는 단계를 포함하는 것을 특징으로 하는 방법.
  2. 제1항에 있어서, 상기 한정된 수의 동시 다운로드 세션이 활성 상태에 있는지 여부를 주기적으로 체크하는 단계는,
    a. 첫 번째 활성 상태의 세션이 종료된 경우, 그 다음 데이터 청크의 다운로드를 시작할지 또는 세션을 폐기할지 여부를 결정하는 단계;
    b. 그 다음 다운로드 세션이 보류 중(pending)인 경우, 이 세션을 활성 상태로 한정하고 단계 (a)를 반복하는 단계; 및
    c. 세션의 현재 수가 상기 현재 전략에 의해 한정된 상기 동시 다운로드 세션의 총 수보다 더 작은 경우, 보류 중인 다운로드 세션을 추가하는 단계를 포함하는 것을 특징으로 하는 방법.
  3. 제1항에 있어서, 전략 변경이 상기 이전의 기간 동안 수행되었을 때 상기 다운로드 처리량을 체크하는 단계는,
    - 현재 측정된 총 다운로드 속도가 상기 이전의 기간에서 측정된 상기 총 다운로드 속도보다 더 큰 경우, 증가된 수의 타깃 동시 세션을 포함하는 새로운 전략을 선택하는 단계; 및
    - 새로운 데이터 청크 사이즈를 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  4. 제3항에 있어서, 상기 타깃 동시 세션의 증가된 수는 상기 현재 측정된 총 다운로드 속도와 상기 이전의 기간에서 측정된 상기 총 다운로드 속도 간의 차이에 따라 계산되는 것을 특징으로 하는 방법.
  5. 제1항에 있어서, 전략 변경이 상기 이전의 기간 동안 수행되었지 않았을 때 상기 다운로드 처리량을 체크하는 단계는,
    - 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 측정된 최대 다운로드 속도보다 기껏해야 미리 한정된 퍼센트 만큼 더 작은 경우, 최고 최악으로 측정된 다운로드 속도를 가지는 새로운 전략을 선택하는 단계;
    - 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 계산된 최상의 다운로드 속도보다 적어도 미리 한정된 퍼센트만큼 더 큰 경우, 최고 최상으로 미리 한정된 다운로드 속도를 가지는 새로운 전략을 선택하는 단계; 및
    - 새로운 데이터 청크 사이즈를 계산하는 단계를 포함하는 것을 특징으로 하는 방법.
  6. 통신 링크 다운로드 처리량을 동적으로 최대화하는 혼잡 제어 시스템으로서, URL로부터 병렬 데이터 스트림을 동적으로 생성하고 삭제하는 동작과, 상기 링크의 전체 혼잡 상태를 지속적으로 모니터링하는 것에 의해 각 스트림에 대해 데이터 조각(data fragment)의 사이즈를 동적으로 변경하는 동작을 수행하도록 구성된 다운로드 세션 제어기를 포함하는, 상기 혼잡 제어 시스템에 있어서, 상기 다운로드 세션 제어기는,
    - 동시 다운로드 세션의 수 및 각 세션의 지속시간을 한정하는 현재 전략을 선택하는 동작;
    - 상기 현재 전략을 사용하여 상기 URL로부터 데이터를 다운로드하는 동작;
    - 상기 한정된 수의 동시 다운로드 세션이 활성 상태에 있는지 여부 및 상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 동작으로서, 상기 현재 전략이 대체되어야 할지 여부를 주기적으로 체크하는 동작은 전략 변경이 이전의 기간 동안 수행되었는지 여부를 체크하는 동작 및 이에 따라 상기 다운로드 처리량을 체크하는 동작을 포함하는 것인, 상기 주기적으로 체크하는 동작; 및
    - 상기 체크하는 동작이 상기 다운로드 처리량을 더 잘 이용할 수 있는 전략을 나타내는 경우 새로운 현재 전략을 선택하는 동작을 수행하도록 구성된 것을 특징으로 하는 시스템.
  7. 제6항에 있어서, 상기 한정된 수의 동시 다운로드 세션이 활성 상태에 있는지 여부를 주기적으로 체크하는 동작은,
    a. 첫 번째 활성 상태 세션이 종료된 경우, 그 다음 데이터 청크의 다운로드를 시작할지 또는 세션을 폐기할지 여부를 결정하는 동작;
    b. 그 다음 다운로드 세션이 보류 중인 경우, 이 세션을 활성 상태로 한정하고 단계 (a)를 반복하는 동작; 및
    c. 세션의 현재 수가 상기 현재 전략에 의해 한정된 상기 동시 다운로드 세션의 총 수보다 더 작은 경우, 보류 중인 다운로드 세션을 추가하는 동작을 포함하는 것을 특징으로 하는 시스템.
  8. 제6항에 있어서, 전략 변경이 상기 이전의 기간 동안 수행되었을 때 상기 다운로드 처리량을 체크하는 동작은,
    - 현재 측정된 총 다운로드 속도가 상기 이전의 기간에서 측정된 총 다운로드 속도보다 더 큰 경우, 증가된 수의 타깃 동시 세션을 포함하는 새로운 전략을 선택하는 동작; 및
    - 새로운 데이터 청크 사이즈를 계산하는 동작을 포함하는 것을 특징으로 하는 시스템.
  9. 제8항에 있어서, 상기 증가된 수의 타깃 동시 세션은 상기 현재 측정된 총 다운로드 속도와 상기 이전의 기간에서 측정된 상기 총 다운로드 속도 간의 차이에 따라 계산되는 것을 특징으로 하는 시스템.
  10. 제6항에 있어서, 전략 변경이 상기 이전의 기간 동안 수행되지 않았을 때 상기 다운로드 처리량을 체크하는 동작은,
    - 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 측정된 최대 다운로드 속도보다 기껏해야 미리 한정된 퍼센트만큼 더 작은 경우, 최고 최악으로 측정된 다운로드 속도를 가지는 새로운 전략을 선택하는 동작;
    - 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 계산된 최상의 다운로드 속도보다 적어도 미리 한정된 퍼센트만큼 더 큰 경우, 최고 최상으로 미리 한정된 다운로드 속도를 가지는 새로운 전략을 선택하는 동작; 및
    - 새로운 데이터 청크 사이즈를 계산하는 동작을 포함하는 것을 특징으로 하는 시스템.
  11. 컴퓨터 프로그램 제품으로서,
    컴퓨터 판독가능한 프로그램을 저장한 컴퓨터 판독가능한 저장 매체를 포함하고, 상기 컴퓨터 판독가능한 프로그램은 URL로부터 병렬 데이터 스트림을 동적으로 생성하고 삭제하는 동작과, 링크의 전체 혼잡 상태를 지속적으로 모니터링하는 것에 의해 각 스트림에 대한 데이터의 사이즈를 동적으로 변경하는 동작을 수행하도록 구성되고; 상기 컴퓨터 프로그램은,
    동시 다운로드 세션의 수 및 각 세션의 지속시간을 한정하는 현재 전략을 선택하는 동작;
    상기 현재 전략을 사용하여 상기 URL로부터 데이터를 다운로드하는 동작;
    상기 한정된 수의 동시 다운로드 세션이 활성 상태인지 여부 및 상기 현재 전략이 새로운 전략으로 대체되어야 할지 여부를 주기적으로 체크하는 동작으로서, 상기 현재 전략이 대체되어야 할지 여부를 주기적으로 체크하는 동작은 전략 변경이 이전의 기간 동안 수행되었는지 여부를 체크하는 동작 및 이에 따라 상기 다운로드 처리량을 체크하는 동작을 포함하는, 상기 주기적으로 체크하는 동작; 및
    상기 체크하는 동작이 상기 다운로드 처리량을 더 잘 이용할 수 있는 것을 나타내는 경우 새로운 현재 전략을 선택하는 동작을 수행하도록 구성된 것을 특징으로 하는 컴퓨터 프로그램 제품.
  12. 제11항에 있어서,
    e. 첫 번째 활성 상태의 세션이 종료된 경우, 그 다음 데이터 청크의 다운로드를 시작할지 또는 세션을 폐기할지 여부를 결정하는 동작;
    f. 그 다음 다운로드 세션이 보류 중인 경우, 이 세션을 활성 상태로 한정하고 단계 (a)를 반복하는 동작; 및
    g. 세션의 현재 수가 상기 현재 전략에 의해 한정된 상기 동시 다운로드 세션의 총 수보다 더 작은 경우, 보류 중인 다운로드 세션을 추가하는 동작을 포함하는,
    상기 한정된 수의 동시 다운로드 세션이 활성 상태에 있는지 여부를 주기적으로 체크하는 동작을 수행하도록 더 구성된 것을 특징으로 하는 컴퓨터 프로그램 제품.
  13. 제11항에 있어서, 전략 변경이 상기 이전의 기간 동안 수행되었을 때 상기 다운로드 처리량을 체크하는 동작은,
    - 현재 측정된 총 다운로드 속도가 상기 이전의 기간에서 측정된 총 다운로드 속도보다 더 큰 경우, 증가된 수의 타깃 동시 세션을 포함하는 새로운 전략을 선택하는 동작; 및
    - 새로운 데이터 청크 사이즈를 계산하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.
  14. 제13항에 있어서, 상기 증가된 수의 타깃 동시 세션은 상기 현재 측정된 총 다운로드 속도와 상기 이전의 기간에서 측정된 상기 총 다운로드 속도 간의 차이에 따라 계산된 것을 특징으로 하는 컴퓨터 프로그램 제품.
  15. 제11항에 있어서, 전략 변경이 상기 이전의 기간 동안 수행되지 않았을 때 상기 다운로드 처리량을 체크하는 동작은,
    - 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 측정된 최대 다운로드 속도보다 기껏해야 미리 한정된 퍼센트만큼 더 작은 경우, 최고 최악으로 측정된 다운로드 속도를 가지는 새로운 전략을 선택하는 동작;
    - 상기 현재 측정된 총 다운로드 속도가 상기 현재 전략에 대해 계산된 최상의 다운로드 속도보다 적어도 미리 한정된 퍼센트만큼 더 큰 경우, 최고 최상으로 미리 한정된 다운로드 속도를 가지는 새로운 전략을 선택하는 동작; 및
    - 새로운 데이터 청크 사이즈를 계산하는 동작을 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품.


KR1020157012785A 2012-10-18 2013-10-14 통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법 KR20150093153A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201261715322P 2012-10-18 2012-10-18
US61/715,322 2012-10-18
PCT/IB2013/059334 WO2014060927A2 (en) 2012-10-18 2013-10-14 A congestion control method for dynamically maximizing communication link throughput

Publications (1)

Publication Number Publication Date
KR20150093153A true KR20150093153A (ko) 2015-08-17

Family

ID=49680055

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157012785A KR20150093153A (ko) 2012-10-18 2013-10-14 통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법

Country Status (7)

Country Link
US (1) US9306860B2 (ko)
EP (1) EP2910001A4 (ko)
JP (1) JP6310925B2 (ko)
KR (1) KR20150093153A (ko)
CN (1) CN104969534B (ko)
GB (1) GB2508498B (ko)
WO (1) WO2014060927A2 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9661106B2 (en) * 2013-12-04 2017-05-23 Facebook, Inc. Uploading and transcoding media files
US11570114B2 (en) 2014-03-04 2023-01-31 Mobophiles, Inc. System and method of adaptive rate control and traffic management
CN107113248B (zh) * 2014-09-05 2021-03-19 摩博菲乐有限公司Dba摩博莱 自适应速率控制和业务管理的系统和方法
JP6485173B2 (ja) * 2015-04-02 2019-03-20 富士通コネクテッドテクノロジーズ株式会社 無線通信装置、無線通信プログラムおよび無線通信方法
US10433023B1 (en) * 2015-10-27 2019-10-01 Amazon Technologies, Inc. Heuristics for streaming live content
US10554761B2 (en) * 2015-12-12 2020-02-04 At&T Intellectual Property I, Lp Methods and apparatus to improve transmission of a field data set to a network access point via parallel communication sessions
IL245860A0 (en) 2016-05-25 2016-07-31 Giraffic Tech Ltd A system for stabilizing playback in hdr adaptive video protocols
JP6924952B2 (ja) * 2017-02-13 2021-08-25 株式会社日立製作所 計算機システムおよびリストア方法
JP6857103B2 (ja) * 2017-08-08 2021-04-14 日本電信電話株式会社 ファイル配信システム及び方法
US10747729B2 (en) * 2017-09-01 2020-08-18 Microsoft Technology Licensing, Llc Device specific chunked hash size tuning
FR3081274B1 (fr) * 2018-05-17 2020-08-21 Orange Gestion du telechargement progressif adaptatif d'un contenu numerique au sein d'un terminal de restitution d'un reseau de communication local.
US10862942B2 (en) 2018-05-24 2020-12-08 Netflix, Inc. Techniques for evaluating a video rate selection algorithm based on a greedy optimization of total download size over a completed streaming session
CN109412959B (zh) * 2018-09-10 2022-08-16 广州小鹏汽车科技有限公司 一种车辆ota升级限流控制方法、系统和装置
US10855745B2 (en) * 2018-11-29 2020-12-01 Dell Products L.P. Systems and methods for downloading data chunks using a varying number of simultaneous connections
CN110247985B (zh) * 2019-06-28 2022-06-03 北京奇艺世纪科技有限公司 一种资源下载方法、装置、电子设备及介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6049892C1 (en) * 1997-02-24 2002-06-04 Ethos Software Corp Process and apparatus for downloading data from a server computer to a client computer
US6339785B1 (en) * 1999-11-24 2002-01-15 Idan Feigenbaum Multi-server file download
US6377974B1 (en) * 2000-01-19 2002-04-23 Speedbit Ltd. Methods and apparatus for downloading a file from a server
US7272645B2 (en) * 2001-05-25 2007-09-18 Sbc Technology Resources, Inc. Method of improving the reliability of peer-to-peer network downloads
US20020188728A1 (en) * 2001-06-07 2002-12-12 Acceleration Softwave International Corporation Adaptive file transfer acceleration
EP1415232B1 (en) * 2001-08-08 2015-01-14 Flash Networks Ltd. System and method for accelerating communication of tcp/ip based content
US7391722B2 (en) * 2004-02-17 2008-06-24 Alcatel Lucent Method and system for determining link congestion
US8868772B2 (en) * 2004-04-30 2014-10-21 Echostar Technologies L.L.C. Apparatus, system, and method for adaptive-rate shifting of streaming content
US7631098B2 (en) * 2004-06-08 2009-12-08 International Business Machines Corporation Method, system and program product for optimized concurrent data download within a grid computing environment
KR100717712B1 (ko) * 2005-11-07 2007-05-11 중앙대학교 산학협력단 다양한 단말기환경에 대한 효과적인 엔브이오디 서비스방법
US8224981B2 (en) * 2006-11-30 2012-07-17 Speedbit Ltd. Accelerated multimedia file download and playback
CN101656751B (zh) * 2008-08-18 2012-05-30 北京数码大方科技有限公司 加速上传与下载文件的方法及其系统
EP2362651A1 (en) * 2010-02-19 2011-08-31 Thomson Licensing Multipath delivery for adaptive streaming
US8386621B2 (en) * 2010-03-12 2013-02-26 Netflix, Inc. Parallel streaming
CA2737107C (en) * 2010-04-13 2019-08-27 Jingyuan Wang Tcp congestion control for heterogeneous networks
US8825886B2 (en) * 2010-07-28 2014-09-02 Hong Kong Applied Science and Technology Research Institute Company Limited System and method for evaluating network transport effects on delivery of media content
JP5640649B2 (ja) * 2010-10-27 2014-12-17 ソニー株式会社 データ通信方法及び情報処理装置
EP2477397A1 (en) * 2011-01-12 2012-07-18 Nxp B.V. Handling the initialization for HTTP streaming of multimedia files via parallel TCP connections
US20120198079A1 (en) * 2011-02-01 2012-08-02 Benjamin Spink Parallel transmissions over http connections
KR101231294B1 (ko) * 2011-05-31 2013-02-07 삼성에스디에스 주식회사 데이터의 병렬 수신을 위한 스트림 제어 방법 및 장치
CN102625412B (zh) * 2012-03-30 2015-07-22 电信科学技术研究院 一种拥塞控制的方法和设备
CN103369002B (zh) * 2012-03-30 2018-03-27 腾讯科技(深圳)有限公司 一种资源下载的方法及系统
CN102811258B (zh) * 2012-07-27 2015-11-25 北京星网锐捷网络技术有限公司 数据并发下载方法、装置和网络设备

Also Published As

Publication number Publication date
WO2014060927A4 (en) 2014-07-31
GB2508498A (en) 2014-06-04
US9306860B2 (en) 2016-04-05
WO2014060927A3 (en) 2014-06-12
EP2910001A4 (en) 2016-04-20
EP2910001A2 (en) 2015-08-26
JP6310925B2 (ja) 2018-04-11
US20150207743A1 (en) 2015-07-23
GB201318209D0 (en) 2013-11-27
GB2508498B (en) 2015-05-27
WO2014060927A2 (en) 2014-04-24
JP2016502774A (ja) 2016-01-28
CN104969534B (zh) 2018-07-24
CN104969534A (zh) 2015-10-07

Similar Documents

Publication Publication Date Title
KR20150093153A (ko) 통신 링크 처리량을 동적으로 최대화하기 위한 혼잡 제어 방법
US10911506B2 (en) Methods for quality-aware adaptive streaming over hypertext transfer protocol and reporting quality of experience
WO2019038738A1 (en) SYSTEM AND METHOD FOR PROVIDING RAPID ABR START WITH SELECTIVE ABR SEGMENT DISTRIBUTION
WO2019038735A1 (en) SYSTEM AND METHOD FOR PERFORMING SELECTIVE ABR SEGMENT DISTRIBUTION FOR ABR BANDWIDTH WIDTH CONTROL
Mansy et al. Characterizing client behavior of commercial mobile video streaming services
JP7307211B2 (ja) クライアント、サーバ、受信方法及び送信方法
KR102355325B1 (ko) 적응형 스트리밍 클라이언트에 대해 대역폭을 예약하기 위한 방법 및 디바이스
KR20130101585A (ko) 적응적 스트리밍을 위한 가변 비트 비디오 스트림
WO2007130695A2 (en) Method and apparatus for streaming media to a plurality of adaptive client devices
CN112511871B (zh) 用于分段器流动性的打包器
Wang et al. Design and analysis of QoE-aware quality adaptation for DASH: A spectrum-based approach
KR102314839B1 (ko) 예측 버퍼링 및 네트워크 형상화를 위한 시스템 및 방법
KR102304476B1 (ko) 적응적 스트리밍 서비스를 위한 다중 경로 기반 블록 전송 시스템 및 스트리밍 방법
Nguyen et al. An evaluation of segment duration effects in HTTP adaptive streaming over mobile networks
US20120246269A1 (en) Data processing apparatus, data processing method, and computer program product
Mushtaq et al. Regulating QoE for adaptive video streaming using BBF method
Wisniewski et al. On optimizing adaptive algorithms based on rebuffering probability
Laine et al. Network Capacity Estimators Predicting QoE in HTTP Adaptive Streaming
Mushtaq et al. HTTP rate adaptive algorithm with high bandwidth utilization
Al-mufti et al. HTTP/2, Server Push and Branched Video: Evaluation of using HTTP/2 Server Push in Dynamic Adaptive Streaming over HTTP with linear and non-linear prefetching algorithms

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid