WO2017081673A1 - Download acceleration using dynamic number of connections and dynamic chunk size - Google Patents
Download acceleration using dynamic number of connections and dynamic chunk size Download PDFInfo
- Publication number
- WO2017081673A1 WO2017081673A1 PCT/IL2016/051103 IL2016051103W WO2017081673A1 WO 2017081673 A1 WO2017081673 A1 WO 2017081673A1 IL 2016051103 W IL2016051103 W IL 2016051103W WO 2017081673 A1 WO2017081673 A1 WO 2017081673A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- connections
- download
- server
- content
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0882—Utilisation of link capacity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
Definitions
- communication with the server and downloading content is being done via TCP protocol or protocols similar to TCP.
- the congestion window tries not to exceed the capacity of the network (congestion control) and the receive window tries not to exceed the capacity of the receiver to process data (flow control).
- Each TCP segment contains the current value of the receive window. If, for example, a sender receives an ACK which acknowledges byte 4000 and specifies a receive window of 10000 (bytes), the sender will not send packets after byte 14000, even if the congestion window allows it. Therefore, a single TCP connection does not fully use the capacity of the network.
- accelerating a download comprising: a requester configured to request content download; a server configured to store content; and an acceleration module connected with the requester and the server and configured to receive from the requester at least one request for content, start downloading the content with a downloading connection and receive from the server and send to the requester the content received via the downloading connection while gradually increasing the number of downloading connections.
- the device may comprise one of a computer, a set-top box, a tablet, a smartphone, a smart TV and a game console.
- the acceleration module may comprise a buffer configured to store the content.
- a method of accelerating a download comprising: receiving by an acceleration module, from a requester at least one request for content download from a server storing the requested content; starting to download, by the acceleration module, from the server, the requested content via a first connection; checking whether the server supports multiple connections; and if the server supports multiple connections receiving by the acceleration module, from the server, and sending by the acceleration module to the requester, the content for fulfilling the at least one request using a gradually increasing number of downloading connections.
- the method may further comprise if the server does not support multiple connections receiving by the acceleration module, from the server, and sending by the acceleration module to the requester, the content for fulfilling the at least one request using the first connection.
- the checking whether the server supports multiple connections may comprise opening a new connection and trying to download part of the content using the new connection.
- the gradually increasing may comprises checking whether the number of downloading connections is smaller than a determined number of connections and if so increasing the number of downloading connections.
- the calculating may comprise multiplying a time to first byte value by a coefficient and by a connection throughput value.
- the calculating may comprise multiplying a round trip time value by a coefficient and by a connection throughput value.
- Fig. 1 is a schematic representation of the system for carrying out the present invention.
- Fig. 2 demonstrates the state machine for download acceleration according to embodiments of the present invention.
- the invention's guideline is to open several connections that joined together attempting to use the maximum communication abilities.
- the present invention In order to accelerate a download from a server storing content, the present invention:
- Fig. 2 demonstrates the state machine 200 for download acceleration according to embodiments of the present invention.
- the 'ActiveConn' is larger than the changed 'NumOfConn', it goes to state 7 - Limit Acceleration state and limits the number of connections to an allowed number of connections (less than the predetermined number of connections and at least one). If the 'ActiveConn' is smaller than 'NumOfConn', it goes back to state 4 - Handle Startup, and gradually increases the number of connections till the 'ActiveConn' equals the 'NumOfConn'.
- the Limitation Window and Co are calculated the same as in the 1 st option.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Security & Cryptography (AREA)
- Information Transfer Between Computers (AREA)
Abstract
A system for accelerating a download comprising a requester configured to request content download, a server configured to store content and an acceleration module connected with the requester and the server and configured to receive from the requester at least one request for content and to download the requested content from the server using a dynamic number of connections and a dynamic chunk size calculated for each connection.
Description
DOWNLOAD ACCELERATION USING DYNAMIC NUMBER OF CONNECTIONS AND DYNAMIC CHUNK SIZE
FIELD OF THE INVENTION The present invention generally relates to file streaming and specifically to improvement of download speed by using several download connections.
BACKGROUND
A common problem encountered by many internet users is insufficient usage of bandwidth.
This usually happens when the network capacity is close to or lower than the connection being consumed. For example, players that do not manage to fill the buffer as necessary and a video is getting into a buffering mode without playing. Reasons for this phenomenon may be:
1 . Shared Wi-Fi connections.
2. Low quality (high packet loss) links in developing countries.
3. Crowded High speed links (Cable).
In addition, communication with the server and downloading content is being done via TCP protocol or protocols similar to TCP.
Besides the above, the throughput of a TCP Protocol is also limited:
communication is limited by two windows: a congestion window and a receive window. The congestion window tries not to exceed the capacity of the network (congestion control) and the receive window tries not to exceed the capacity of the receiver to process data (flow control). Each TCP segment contains the current value of the receive window. If, for example, a sender receives an ACK which acknowledges byte 4000 and specifies a receive window of 10000 (bytes), the sender will not send packets after byte 14000, even if the congestion window allows it.
Therefore, a single TCP connection does not fully use the capacity of the network.
SUMMARY
According to an aspect of the invention there is provided a system for
accelerating a download comprising: a requester configured to request content download; a server configured to store content; and an acceleration module connected with the requester and the server and configured to receive from the requester at least one request for content, start downloading the content with a downloading connection and receive from the server and send to the requester the content received via the downloading connection while gradually increasing the number of downloading connections.
The content may comprise one of a video file and a text file.
The requester may be comprised in a device.
The device may comprise one of a computer, a set-top box, a tablet, a smartphone, a smart TV and a game console.
The acceleration module may comprise a buffer configured to store the content. According to another aspect of the invention there is provided a method of accelerating a download comprising: receiving by an acceleration module, from a requester at least one request for content download from a server storing the requested content; starting to download, by the acceleration module, from the server, the requested content via a first connection; checking whether the server supports multiple connections; and if the server supports multiple connections receiving by the acceleration module, from the server, and sending by the acceleration module to the requester, the content for fulfilling the at least one request using a gradually increasing number of downloading connections.
The method may further comprise if the server does not support multiple connections receiving by the acceleration module, from the server, and sending by the acceleration module to the requester, the content for fulfilling the at least one request using the first connection.
The checking whether the server supports multiple connections may comprise opening a new connection and trying to download part of the content using the new connection.
The gradually increasing may comprises checking whether the number of downloading connections is smaller than a determined number of connections and if so increasing the number of downloading connections.
The method may further comprise checking whether the number of downloading connections is bigger than a determined number of connections and if so decreasing the number of downloading connections to the determined number of connections.
The method may further comprise calculating a data chunk size for each downloading connection.
The calculating may comprise multiplying a time to first byte value by a coefficient and by a connection throughput value.
The calculating may comprise multiplying a round trip time value by a coefficient and by a connection throughput value.
BRIEF DESCRIPTION OF THE DRAWINGS
For better understanding of the invention and to show how the same may be carried into effect, reference will now be made, purely by way of example, to the accompanying drawings.
With specific reference now to the drawings in detail, it is stressed that the particulars shown are by way of example and for purposes of illustrative discussion of the preferred embodiments of the present invention only, and are presented in the cause of providing what is believed to be the most useful and readily understood description of the principles and conceptual aspects of the invention. In this regard, no attempt is made to show structural details of the invention in more detail than is necessary for a fundamental understanding of the invention, the description taken with the drawings making apparent to those
skilled in the art how the several forms of the invention may be embodied in practice. In the accompanying drawings:
Fig. 1 is a schematic representation of the system for carrying out the present invention; and
Fig. 2 demonstrates the state machine for download acceleration according to embodiments of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
Before explaining at least one embodiment of the invention in detail, it is to be understood that the invention is not limited in its application to the details of construction and the arrangement of the components set forth in the following description or illustrated in the drawings. The invention is applicable to other embodiments or of being practiced or carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein is for the purpose of description and should not be regarded as limiting.
The present invention solves a common problem encountered by many internet users of unutilized network capacity.
The invention's guideline is to open several connections that joined together attempting to use the maximum communication abilities.
By opening several connections in parallel, e.g. Transmission Control Protocol (TCP) connections, the maximal usage of the network bandwidth is achieved. The several connections allow, statistically, a significantly improved download speed.
In order to accelerate a download from a server storing content, the present invention:
• Checks whether the server allows multiple connections.
• Checks whether the server supports range requests.
• Opens several connections till it reaches its limit.
• Gathers all data arriving from several connections and sends it to the requester.
• Reaches buffer fullness (if necessary, e.g. for video streaming).
· Calculates the best chunk size according to
o Current download speed.
o Server's response time / RTT (Round-Trip Time)
• Reuses connection, e.g. by using HTTP persistent connection. It will be appreciated that the content may be any type of file, such as for example, a video file, a text file, etc. or a set of files (like in adaptive streaming) which may be allowed, by a server storing it, to be downloaded in parts.
Fig. 1 is a schematic representation of a system 100 for carrying out the present invention, comprising a device 110 comprising a requester 115 (e.g. a native player) requesting content download and an acceleration module 120 of the present invention configured to maximize the communication abilities. The system also comprises a server or data source 130 storing the content to be downloaded.
The device 110 may be a computer, set-top box, tablet, smartphone, smart TV, game console or any other device that can connect to a network.
The acceleration module 120 uses at least a buffer 124 and may be installed in the device 110 or in any device that transfers the requested data from the device 110 to the server 130, such as for example, a router. When multiple connections are allowed, the acceleration module 120 of the present invention opens several connections each downloads an optimal calculated range of bytes (chunk) from the requested content.
The present invention provides a state machine configured to determine how and when to react to network changes and server's limitations. Each state contains a different behavior and a different reaction.
There are two obstacles that may prevent the present invention from accelerating the download:
1 . If the server, storing the content, does not support range request.
2. If the server, storing the content, does not support a number of
predetermined connections.
In both cases, the present invention continues downloading the content in a single connection. Otherwise, the present invention gradually opens new connections till it reaches a predetermined number of connections
('NumOfConn') or till it finishes downloading the content.
Fig. 2 demonstrates the state machine 200 for download acceleration according to embodiments of the present invention.
In the initial state 1 , the file is downloaded with one connection and a range request of 0 to oc. In this state, the active connections are limited to one connection. When the initial state timeout has expired or a predetermined amount of data has been received (e.g. 300 bytes), the acceleration module goes to state 2.
In state 2 - verify range request state, the accelerator checks whether the server, storing the content, supports range requests. The acceleration module opens a connection with a range request. The request attempts to download e.g. 100 bytes. If the request fails or if the data does not arrive as expected, the
acceleration module concludes that the server does not support range requests. Therefore, the acceleration module goes to state 3 - No Range Request state and limits the number of connections to a single connection (the initial connection that was opened in state 1 ). Otherwise, the acceleration module continues to state 4 - Handle Startup state.
In state 4, the acceleration module knows that the server supports range requests hence the number of active connections ('ActiveConn') gradually
increases. The acceleration module increases the number of active connections until it reaches the predetermined number of connections ('NumOfConn'), e.g. 10 connections. When the number of predetermined connections ('NumOfConn') equals the number of active connections ('ActiveConn'), the acceleration module goes to state 5 - Acceleration Support state. If in state 4 or 5, the acceleration module receives a signal indicating that the ('NumOfConn') has changed, (e.g. other higher priority data has to be downloaded), then if the 'ActiveConn' is larger than the changed 'NumOfConn', it goes to state 7 - Limit Acceleration state and limits the number of connections to an allowed number of connections (less than the predetermined number of connections and at least one). If the 'ActiveConn' is smaller than 'NumOfConn', it goes back to state 4 - Handle Startup, and gradually increases the number of connections till the 'ActiveConn' equals the 'NumOfConn'.
If in state 4 or 5, at least one of the active connections fails to download its chunk, the acceleration module goes to state 6 - Multiple Connection Failure state and limits the number of active connections to at least one connection or to the number of downloading connection (the ones that download more than 0 bytes).
In state 7, once the 'ActiveConn' equals the 'NumOfConn', it goes back to state 5.
Acceleration Logic
Reaching buffer fullness:
In streaming a file, in order to avoid re-buffering mode, it is best to have the buffer as full as possible close to the reading position.
Therefore, the present invention calculates the recommended buffer size, the recommended chunk size and in addition, when a connection finishes
downloading a chunk, the next chunk to be downloaded would be the chunk that is in the highest priority according to its position.
Chunk size calculation 1 Option:
The chunk size for each connection is: TTFB * Co * Connection Throughput (per second),
where
TTFB: The time that has passed from sending the request till the first byte has arrived. The TTFB is based on the average TTFB of all or some of the downloads performed via a current connection.
Co - a coefficient number that improves the download time. For example, a coefficient of 5 means that the download time of the chunk will be significantly larger (x5) than the TTFB.
It will be appreciated that the Co is not limited to this number.
Connection Throughput: The average throughput of this connection.
The average throughput is calculated during a predetermined time period (e.g. the last 2 minutes).
If the resulting chunk size is smaller/larger than the Limitation window, the result is rounded up or down, in order to fit the limitation window size, where
Limitation window: TCS: Time of Chunk Size. This is the time frame for the connection to download the next chunk. TCS = TTFB * Co; according to embodiments of the invention, the TCS value is limited to be between a minimum value of 0.5-5 seconds, and a maximum value of 3-20 seconds.
It will be appreciated that the minimum and maximum values are not limited to these specific values. The first chunk size value is not based on TTFB of this new connection, but is set to a default size, e.g. 4 MB or calculated from parameters of different
connections.
It will be appreciated that the first chunk size value is not limited to this number. Chunk size calculation 2nd Option:
The chunk size for each connection is the RTT * Co * Connection Throughput,
where
RTT: is measured as the average Round Trip Time (RTT) measured by the TCP of this connection.
The Limitation Window and Co are calculated the same as in the 1 st option.
Claims
1. A system for accelerating a download comprising:
a requester configured to request content download;
a server configured to store content; and
an acceleration module connected with said requester and said server and configured to receive from said requester at least one request for content and to download said requested content from said server using a dynamic number of connections and a dynamic chunk size calculated for each connection.
2. The system of claim 1 , wherein said content comprises one of a video file and a text file.
3. The system of claim 1 , wherein said requester is comprised in a device.
4. The system of claim 3, wherein said device comprises one of a computer, a set-top box, a tablet, a smartphone, a smart TV and a game console.
5. The system of claim 1 , wherein said acceleration module comprises a
buffer configured to store said content.
6. A method of accelerating a download comprising:
- receiving by an acceleration module, from a requester at least one request for content download from a server storing said requested content;
- starting to download, by said acceleration module, from said server, said requested content via a first connection;
- checking whether said server supports multiple connections; and
- if said server supports multiple connections:
- downloading said requested content from said server using a dynamic number of connections and a dynamic data chunk size calculated for each connection.
7. The method of claim 6, further comprising
if said server does not support multiple connections:
- receiving by said acceleration module, from said server, and sending by said acceleration module to said requester, said content for fulfilling said at least one request using said first connection.
8. The method of claim 6, wherein said checking whether said server supports multiple connections comprises:
- opening a new connection and trying to download part of said
content using said new connection.
9. The method of claim 6, wherein said using a dynamic cumber of
connections comprises gradually increasing the number of download connections.
10. The method of claim 9, wherein said gradually increasing comprises:
- checking whether said number of downloading connections is smaller than a determined number of connections and if so increasing said number of downloading connections.
1 1. The method of claim 6, further comprising:
- checking whether said number of downloading connections is bigger than a determined number of connections and if so decreasing said number of downloading connections to said determined number of connections.
12. The method of claim 6, wherein said calculating a dynamic data chunk size for each download connection comprises:
- multiplying a time to first byte value by a coefficient and by a
connection throughput value.
13. The method of claim 6, wherein said calculating a dynamic data chunk size for each download connection comprises:
- multiplying a round trip time value by a coefficient and by a
connection throughput value.
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| IL242566 | 2015-11-12 | ||
| IL24256615 | 2015-11-12 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2017081673A1 true WO2017081673A1 (en) | 2017-05-18 |
Family
ID=58694790
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/IL2016/051103 Ceased WO2017081673A1 (en) | 2015-11-12 | 2016-10-10 | Download acceleration using dynamic number of connections and dynamic chunk size |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2017081673A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020188728A1 (en) * | 2001-06-07 | 2002-12-12 | Acceleration Softwave International Corporation | Adaptive file transfer acceleration |
| US20140325024A1 (en) * | 2013-04-24 | 2014-10-30 | International Business Machines Corporation | Maximizing throughput of streaming media by simultaneously connecting to streaming media server over multiple independent network connections |
| US20150271232A1 (en) * | 2014-03-18 | 2015-09-24 | Qualcomm Incorporated | Transport accelerator implementing request manager and connection manager functionality |
-
2016
- 2016-10-10 WO PCT/IL2016/051103 patent/WO2017081673A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20020188728A1 (en) * | 2001-06-07 | 2002-12-12 | Acceleration Softwave International Corporation | Adaptive file transfer acceleration |
| US20140325024A1 (en) * | 2013-04-24 | 2014-10-30 | International Business Machines Corporation | Maximizing throughput of streaming media by simultaneously connecting to streaming media server over multiple independent network connections |
| US20150271232A1 (en) * | 2014-03-18 | 2015-09-24 | Qualcomm Incorporated | Transport accelerator implementing request manager and connection manager functionality |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP2810421B1 (en) | System and method to reduce stream start-up delay for adaptive streaming | |
| US9438653B2 (en) | Method for providing an adaptive streaming service | |
| US8775658B2 (en) | Apparatus and method for transparent communication architecture in remote communication | |
| EP2997707B1 (en) | Enhancing performance of rapid channel changes and other playback positioning changes in adaptive streaming | |
| KR20190033048A (en) | Systems and methods for improving integrated throughput of concurrent connections | |
| CN103733589B (en) | Method for transmitting video content as a stream, realizes the fringe node and clients entities of the method | |
| EP2410743A1 (en) | Method for transferring video chunks, server entity, client entity and intermediate network entity realizing such a method | |
| WO2013101942A1 (en) | Tcp congestion control for large latency networks | |
| CN102457486A (en) | Method and device for transmitting media content | |
| CN106612284B (en) | Streaming data transmission method and device | |
| WO2012129922A1 (en) | Packet handling method, forwarding device and system | |
| US20110185018A1 (en) | Content delivery system, content delivery method and computer program | |
| US9553814B2 (en) | Method and apparatus for controlling data flow by using proxy server | |
| KR20230002784A (en) | Methods and servers for transmitting audio and/or video content | |
| KR102399082B1 (en) | Method and apparatus for data buffering in adaptive streaming service | |
| US9130843B2 (en) | Method and apparatus for improving HTTP adaptive streaming performance using TCP modifications at content source | |
| WO2017081673A1 (en) | Download acceleration using dynamic number of connections and dynamic chunk size | |
| CN109274704B (en) | TCP acceleration method and device, acceleration effect judgment controller and gateway | |
| US20200162384A1 (en) | Network switching device and method for performing marking using the same | |
| GB2588930A (en) | Multimedia system & method | |
| CN112823527A (en) | Method implemented at a device capable of running an adaptive streaming session and corresponding device | |
| JP6766817B2 (en) | Data communication equipment, data communication control methods and programs | |
| CN114726730A (en) | Congestion control method, electronic device, medium and product applied to CDN | |
| CN112640373A (en) | Improved congestion response | |
| HK1199779B (en) | Method, medium and system for reducing buffer usage for tcp proxy session based on delayed acknowledgment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 16863775 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 16863775 Country of ref document: EP Kind code of ref document: A1 |