开发者

Download Managers increase download speed [closed]

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question 开发者_运维问答will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance. Closed 9 years ago.

How does the download managers like IDM work? What techniques do they employ to increase the download speed?


Checkout this artcle. It explains what you are looking for.

Source: http://www.httprevealer.com/usage_accelerator.htm

When it comes to downloading files, the situation is essentially the same. Say, you are going to download a file whose size is 100 MB (Mega Bytes). If you use a regular browser to download the file, it will take 100 seconds to download the file if the server delivers a maximum download bandwidth of 1MB per second per connection. However, if you can somehow break up the file into 2 halves and download them simultaneously, you can cut the download time to 50 seconds. That is a 100% increase in speed! By doing the math, you know that the more pieces you break up the file into, the more time you will save.


As Krunal point out, the concept of splitting the download into multiple parts and downloading them in parallel is the most common solution. It is filled with some issues

  • The server must accept and work with content ranges. Otherwise the client can't get each part individually
  • The HTTP spec has some limitations on number of connections, the server may enforce these or a different number which can limit it.

Other ways to improve download performance

  • Compression (GZIP) can be enabled on the client and server and the content compressed and sent across. It is minor for binaries but for HTML this can help a lot.
  • Fine grain control of packets. Passed on the network speed and type of network attributes of the packets can be adjusted (TTL, size etc...) these may give an improvement.
  • Checking if download is really needed, HTTP supports eTags and Last Modified header values. The client can do a request with the HTTP method set to HEAD to get this (this maybe < 1K in data round trip) and if the eTag/lastmodified has changed then do the HTTP GET request for the actual data.
  • Content Caching. It may be faster to get it from a closer cache server than the actual server. A CDN is an example of this. An alternative spin is to download using P2P where you are getting multiple parts from multiple "servers" which may be closer than the actual server.
  • DNS caching, if you pulling lots of files from a single hostname you could cache the IP once and use it.


If the server delivers 1MB per connection, it's a rare situation. When a server has no such options enabled, you won't download files faster. Also usually the server bandwidth is bigger than yours, so you wont notice the change.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜