How does port-forwarding help in torrents?

In short: for BitTorrent (p2p) protocol to work at least one peer has to have a publicly open port (be an active node).

You can run Transmission without port forwarding (stay a passive node) and you will connect, download and seed files with no problems. However your client would only be able to communicate with active nodes.

With port forwarding enabled on your side (becoming an active node) you are increasing the number of peers you can communicate with (you can then exchange data with passive nodes).

This influences the overall transfer rate as the file would be downloaded simultaneously from a larger number of nodes.

The document Analysis of BitTorrent and its use for the Design of a P2P based Streaming Protocol for a Hybrid CDN contains graphs comparing the transfer speed between "firewalled" and "open" peers (refer to page 8):

enter image description here


If uPnP/NAT-PMP was turned off on your torrent client, router, or both, then Inbound connections wouldn't work. You would then need to forward the port to your machine in your router's config or turn uPnP on. Since the forwarding/uPnP mapping is there for inbound connections, it could allow more peers through that previously couldn't connect to you. So if you had forwarding AND uPnP off, then enabled one of them, that might result in an increase.

Barring that, as far as I know, there are no large differences between uPnP vs. manual port forwarding in regards to speed. Maybe some other event happened around that time e.g. you were connected to more peers, your ISP does port based traffic shaping, interference from other programs, etc. but assuming that's not the case, there should be no difference.

(My original answer was not that clear, I'm sorry. Hopefully this is better.)


If you have port forwarding enabled, then incoming connections can find your torrent node. Otherwise, the only connections made will be outbound ones.

Of course, you can download using only outbound connections, but you will have a smaller pool of potential nodes to connect to (as other nodes without port forwarding cannot be connected to). As a result, you will likely get a slower overall download speed as you will have fewer active peers. You will also be less likely to find out about isolated peer pools via DHT.

This will affect you even more if you have encryption set and mandated as this further reduces your potential pool of peers.

If your router has uPNP enabled, then most torrent clients will take advantage of this to automatically set up port forwarding. Otherwise, you will need to set it up manually in the router configuration - the method to do this depends on your router, and the port range to forward depends on your client setup.