• We’re currently investigating an issue related to the forum theme and styling that is impacting page layout and visual formatting. The problem has been identified, and we are actively working on a resolution. There is no impact to user data or functionality, this is strictly a front-end display issue. We’ll post an update once the fix has been deployed. Thanks for your patience while we get this sorted.

BT Protocol: Faster Upload = Faster Download?

arh2o

Member
I recently observed this phenomenon. On a healthy and relatively new torrent (DHT and Peer Exchange enabled), the faster I upload, the faster I download. Why is this? For instance, if I cap my upload at 25 kB/s, my download will be around 1 MB/s. However if I increase my upload to 1.5 MB/s, the download shoots up to 4.0 MB/s. If I lower my upload speed again, the download speed drastically plummets. I always thought that upload speed did not affect my download speed. Have I been misinformed about the BT protocol all along? Why is it that faster upload makes my download faster? Thanks.
 
Last edited:
Check out how TCP works.

For every 2 "packets" that are sent downstream to your PC, your PC sends 1 acknowledgement packet back. Normally the maximum packet size is ~1500 bytes. An acknowledgement packet is 40 bytes. The sender transmits packets in a speed related to how fast it gets incoming acknowledgments. So if fewer acknowledgments get through, the sender will limit the amount of packets it sends to your PC.

2x1500 bytes = 3000 bytes. Ack = 40 bytes. So you need roughly 1.3% of your downstream speed for upstream. So when you limit your upstream to 25 kB/sec, your downstream can be a maximum of 2MB/sec.

You see 1 MB/sec. That could be true. It's only a factor 2 off from my first guess. The reason I can only give you very rough ballpoint numbers is that encapsulation matters too. Not so much for the large downstream data packets. But for the small upstream acknowledgements, and few more bytes will have much larger impacts. To do the exact math, we need to know the technology you use (ADSL, Cable, Ethernet over Fiber, etc). But also the exact encapsulation methods. (PPPoE or PPPoA, 802.3, SNAP, etc), does your ISP use VLANs, MPLS, etc.

But the main thing you should understand: the sender is clocking his speed relative to the rate of incoming acknowledgements. Less incoming acknowledgements means the downstream data rate will go slower.

Edit: maybe you are playing MMOs. And use the "latency fix" that is popular amongst gamers ? It is a registry hack to tell Window's TCP driver to not send an acknowledgment every 2 packets, but every single packet. That would make the numbers exactly correct according to expectations.
There is an example of such a latency fix. This fix does improve the performance of your games that use TCP (in stead of UDP). But it does degrade the performance of large file-transfers.
 
Last edited:
Depending on your ISP's provided bandwidth, optimal download speed can often be manually dialed in via limiting the upload data stream to something like 60% of the maximum upstream capability. At least: that's been my experience.
Each particular torrent file connection (as well as the torrent client software being used) is going to affect performance, however.
 
Many torrent clients use a variation of "credits" and will intentionally limit your download speed if you are not also sharing/uploading.
 
Back
Top