[Bloat] BitTorrent and IPv6 [was: tackling torrent...]
Juliusz Chroboczek
jch at pps.univ-paris-diderot.fr
Sun Jun 21 11:32:07 EDT 2015
[Removed AQM from CC.]
> 4) *All* the traffic was udp. (uTP)
Yes, modern BitTorrent implementations prefer µTP to TCP. Unfortunately,
the implementation of µTP in Transmission doesn't perform PMTUD, and gets
packet sizes wrong most of the time. (Yes, I spoke about this to Arvid.
No, he wasn't particularly concerned.)
> Despite ipv6 being enabled (with two source specific ipv6 ips), I did
> not see any ipv6 peers connect. Bug? Death of torrent over ipv6?
> Blocking? What?
Please check that you allow incoming IPv6 to your peer, for both TCP and
UDP. Obviously, setting port forwarding for IPv4 is not enough for that —
you'll need to explicitly set up a hole in your IPv6 firewall. If using
OpenWRT:
config rule
option target 'ACCEPT'
option src 'wan'
option name 'Transmission-v6'
option family 'ipv6'
option dest '*'
option dest_port '12345'
for the right value of 12345.
If you set the logging level in Transmission to Debug and let it run for
twenty minutes or so, you should see periodic "Starting IPv6 DHT announce
(... good ...)". If you keep seeing "firewalled" instead of "good",
you've got an issue.
Once you're positive you don't have firewalling issues, the following
might be of interest.
I've done quite a bit of work a few years ago to improve IPv6 support in
Transmission. The main problem is how to learn the IPv6 addresses of
your peers:
1. Many trackers don't support IPv6.
2. IPv6 is supported by PEX (gossip, peer-exchange). I'm not sure if
other peers honour IPv6 PEX when connected over IPv4, but Transmission
certainly does.
3. I've implemented a protocol extension that allows peers connected over
IPv4 to exchange their IPv6 addresses. This is only marginally useful,
but can sometimes allow bootstrapping IPv6 PEX without tracker support.
4. Most importantly, I've implemented IPv6 support for the DHT (BEP-32) [1].
BEP-32 is now implemented by Transmission, Vuze, Tixati, KTorrent and
Shareaza.
Points (1) through (3) are interoperable with µTorrent/BitTorrent and
libtorrent, which constitute the vast majority of deployed BitTorrent
peers. Unfortunately, µTorrent and libtorrent do not implement BEP-32,
and since these implementations constitute the vast majority of deployed
BitTorrent peers outside China, this seriously limits the effectiveness of
the IPv6 DHT. (Yes, I've spoken to the µTorrent developers, and while
they reviewed BEP-32 favourably, they had no plans at the time to implement
it.)
[1] http://www.bittorrent.org/beps/bep_0032.html
-- Juliusz
More information about the Bloat
mailing list