system
Given the following post, respond as if you're commenting on Reddit:
human
Why do some downloads take significantly more time for the first 3% of the file(s) than the other 97%?

Of course the 3% may instead be 10%-20% or whatever, but I am curious why downloads take longer in certain sections of the package. Do some pieces of data really take longer or are the percentages inaccurate?
gpt
Computers don't just "know" exactly how fast the connection is between two points, and even if they did that wouldn't be completely helpful because they'd have to know exactly how congested the connection was and how much free bandwidth existed. But it gets even more complicated because there are actually multiple connection paths between your computer and a server. Trying to solve the problem of exactly how much bandwidth exists along that route is a very difficult problem, and would require gathering an amount of data that was a considerable fraction of the amount of data actually being transmitted! That's not an easily tractable problem, so instead computers use different techniques to transmit data that is more flexible.

Instead of trying to find out how much data they can send/receive and then sending that amount they'll try to dynamically scale how much data they send and then start pulling back if it seems like they're sending more than the connection allows. In TCP, the transport mechanism for the internet in general, a typical behavior is to start off at a certain rate then begin exponentially (multiplicatively) increasing that rate (by a factor of, say, 2 between time steps) until packets start getting lost or something along the line says "you're going too fast!" then it'll typically back off down to the last know good rate and then begin increasing speed at a slower (additive) rate. This makes it possible to get close to whatever rate the network (including whatever congestion/load exists) can support but it does require some "acceleration" phase. That's why the very first part of a download might take longer, because of that acceleration phase.

I should add that in the case where a download begins during a period of heavy network congestion or routing trouble or what-have-you then that can interrupt the fast part of the transmission acceleration phase, and the transfer can spend a lot more time in the slower acceleration phase even if it ultimately gets up to a high download speed.

Additionally, for some protocols like bittorrent there is a phase proceeding the download phase that involves collecting information on the download and collecting information on the network of peers.