| By Basil Voronkov at 2008-10-28 |
As you could notice many download managers claim that they can speed up your downloads up to 400% or even 500% by using such a feature as download acceleration. It may seems like a magic - you install a small program and it makes your internet connection several times faster. But what actually a download accelerator does?
When you downloading a file from a certain server a speed of your download is a tradeoff between two basic parameters - the speed of your internet connection (let's call it X) and a speed with which a target server is actually fetching your desired file (let's call it Y). If X is smaller than Y than your maximum download speed is X. If X is greater than Y than in a normal situation your maximum download speed is Y. Also bear in mind that all these calculations are correct only for a case when you downloading one file at a time.
In the first case (when X is smaller than Y) there is no known technology to speed up your download. I can't think of one even theoretically. It means that if you have a slow internet connection (like dial-up) or you normally download from fast servers download acceleration won't help you at all (in fact it may even slow down your downloads - I'll explain why a little bit later).
In the second case (when X is greater than Y) there is a method to make your download faster. How it works? When Y is lower than your internet connection speed it means that the bandwidth of a target server is limited (which may be done by a number of reasons) - but it is limited per connection and not totally. Even a server with limited bandwidth allows to download several users at a time. So the recipe is pretty simple. Instead of opening a single connection to this server we open multiple connections that download different parts of a file.
In many cases this will really increase your download speed. Of course it's not a matter of straightforward arithmentics and if your connection speed is 10 Mbs and server bandwidth is only 1 Mbs you will never achieve 10 Mbs speed even if you open 10 simaltenous connections - as soon as service routines required to serve all these connections will also require some bandwidth. But still it will be much faster than an old-fashioned single connection style.
So download acceleration may seem like a perfect solution for certain cases but there are still several important disadvantages:
- First of all ask yourself - why server bandwidth is limited? Probably a server can't handle a greater bandwidth and by opening several simultaneous connections you are taking all "vacant" places for download - so other users won't be able to connect to this server. It may not be a problem for you (when you're a guy who have taken all the connections) but still it's a problem. That's the reason why most of the servers limit a number of simultaneous connections from one IP.
- It works when you want to download only one file at a time. If you want to download several files (like multi file archive) it's not reasonable to use download acceleration - it won't help you at all.
- As stated above it works only when your internet connection speed is greater than a speed of a target server - and it shouldn't be just greater it should be considerably greater in order to notice a serious difference when using download acceleration.
- Video streaming is not fully supported. Download manager will report that say 50% of a file is downloaded but this 50% includes data from different parts of a file - and in best cases your video streaming enabled player will be able to play only first 10 minutes of a movie instead of a half.
And all these disadvantages face with a single advantage - that download acceleration does make your downloads faster in certain cases.
Please, understand this post correctly. I am not trying to say that download acceleration is evil and is not needed at all in your download manager. However a poor implementation of download acceleration is much worse than no download acceleration at all.
Download acceleration should use what we can call a smart approach. Smart download acceleration should always control how many connections it is reasonable to open to the concrete server. If you want to download several files at a time - even if you first added one file and then in a couple minutes other three - it should drop unneccessary connections or start them again if other downloads have finished. Smart download acceleration should allow you to always control when you want and when you don't want to use it.
WideStream doesn't support download acceleration in the upcoming Beta 1 release. However it is considered as a possible feature for one of the next releases (probably even Beta 2). But only if we can make it smart. |
| By Basil Voronkov at 2008-10-02 |
I'd like to announce changes to the roadmap. The upcoming release that was planned to be the first WideStream Beta now becomes Alpha 4. It doesn't mean that this release is not stable enough to be called Beta but it is still lacking a lot of important functionality that I suppose to be mandatory for a project to enter the Beta stage.
Beta 1 appears to be a really unlucky release. I was initially planning to release the first Beta right after the Alpha 2 but at the end we will likely have at least 4 alphas.
I analyzed how much time it will take to fully finish all the functionality that should be in place for Beta 1 and decided that it is better to make an early release then to wait a month or two until I will be really ready to call a project a Beta. This functionality includes such features as:
- New algorithm for managing saving download queue definition - now it is incorporated in the program configuration file which is really really wrong. I am planning to store a definition of a download queue as a separate XML file and also to give a user an ability to work with several saved queues - to save and load queue defintions at a run-time.
- Configurable autosave feature for the download queue definition. Now if a program crashes you will loose all information about current downloads.
- Support for continue download feature (pause and resume) for FTP downloads. Currently you can't pause an FTP download - you can only stop and start from the begging which is not good.
Of course nobody will probably use an Aplha version of download manager and I could name this release Beta just because of that but I believe this will be unfair.
Still take into consideration that Alpha 4 is a much more stable release than Alpha 3. A lot of bugs with HTTP and FTP downloads were fixed and for the moment there are no known major issues.
And yes - I hope there will be a Beta soon. Beta 1 will include most part of the features planned for the Murray milestone. |