[go: up one dir, main page]

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 PDF

Info

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
Application number
PCT/IL2016/051103
Other languages
French (fr)
Inventor
Yoel ZANGER
Offer Atzitz
Rotem Epelbaum
Inbal YEFET
Keren SIMON
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GIRAFFIC TECHNOLOGIES Ltd
GIRAFFIC Tech Ltd
Original Assignee
GIRAFFIC TECHNOLOGIES Ltd
GIRAFFIC Tech Ltd
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 GIRAFFIC TECHNOLOGIES Ltd, GIRAFFIC Tech Ltd filed Critical GIRAFFIC TECHNOLOGIES Ltd
Publication of WO2017081673A1 publication Critical patent/WO2017081673A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • 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/0882Utilisation of link capacity
    • 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
    • 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/2866Architectures; Arrangements
    • H04L67/289Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-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/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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
    • 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/0852Delays
    • H04L43/0864Round 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.
PCT/IL2016/051103 2015-11-12 2016-10-10 Download acceleration using dynamic number of connections and dynamic chunk size Ceased WO2017081673A1 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (3)

* Cited by examiner, † Cited by third party
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