Please note that I am not a Transmission developer, just a contributor, and hence none of what I say is an official position of the Transmission team.
The problem with IPv4
IPv4, the protocol currently in use on the Internet, has served us well for 30 years now. Developed in the late 70s, IPv4 was not designed to scale beyond a hundred million nodes or so.
There are probably around one billion nodes on the Internet now. People have managed to get IPv4 to scale by using a trick known as NAT, which consists in hiding multiple nodes behind a single IP address.
While NAT is fine for client-server access, such as the web, it complicates peer-to-peer applications quite a bit. Because of NAT, we're losing our time developing hacks such as port forwarding, uPNP, and various other NAT traversal techniques.
What is more, ISPs have been speaking of putting an additional layer of NAT in the network. When they do that, you'll be unable to do port forwarding yourself.
The solution is to transition to a new protocol that is designed to scale to hundreds of billions of nodes. Such a new protocol, known as IPv6, has been finalised in 1996, and we've been busy implementing IPv6 support in software and hardware since then.
IPv6 and Transmission
Like most BitTorrent implementations, Transmission is able to speak both IPv4 and IPv6 at the same time: if you have IPv6 connectivity, Transmission will speak IPv4 to some peers, and IPv6 to others. The following are implemented over IPv6:
- peer-to-peer communication;
- PEX (improved in 1.80);
- DHT (new in 1.80);
- communication with trackers.
What's in it for you
If you currently have proper port forwarding set up, there's little or no advantage in using IPv6. If you're behind a NAT that you don't control, however, adding IPv6 connectivity to the machines running Transmission will make you reachable for other IPv6 peers.
How to set up IPv6
- If you're a customer of free.fr, just toggling the right switch in your FreeBox's configuration will enable IPv6 on your LAN;
- if you're using a recent Apple router, just togging "6to4" in your router's configuration will enable IPv6 on your LAN;
- if you're using a recent Unix system (Linux, FreeBSD, Mac OS X, etc.), installing Miredo will connect you to the IPv6 Internet (on Debian/Ubuntu systems, just apt-get install miredo);
- if you're using Windows XPSP2 or later, you get IPv6 as soon as an application requests it (but Transmission will not enable it automatically yet).
After enabling IPv6, you'll want to restart Transmission so that the IPv6 DHT can bootstrap.
--Juliusz
(Not a Transmission developer, just a contributor, and speaking for himself only)