First off, none of this is actually a Steam thing, but just how network connections in general work.
Between the IP layer and the Application layer is something called TCP – Transmission Control Protocol. This layer is responsible for things like distinguishing which application the packet should be passed to, and making sure that you have received all the different segments of a message and can reassemble them in order.
TCP also handles making sure the connection doesn’t become congested. It does this by sending an initial small amount of data, and then waiting for the acknowledgement. If it gets an acknowledgement for everything in a certain time, then it knows there’s more capacity still, so it increases the size of the next amount of data it sends. It keeps doing this until either the receiving computer fails to acknowledge some of the message, or that acknowledgement takes too long. This is how it finds out how much capacity you have to download.
And this is why *every* download starts slow and then speeds up. Even after it finds the right size, it will be constantly monitoring and trying to balance up and down to keep the right size window, since your capacity might change with other network traffic.
Latest Answers