Subject: More on bittorrent

From: Nathan Ward <[email-masked]>
Date: Thu, 31 Jan 2008 19:27:25 +1300

Hi,

A few months back I had some stats I'd obtained from looking at packet  
traces when running Bittorrent.

I'm doing a bit more looking in to that to attempt to give some  
insights about how one might transition customers to using an IPv6  
service, in a world where there are no public IPv4 addresses  
available. I expect that I can prove that service provider NAT+IPv6 is  
sufficient. Let's park whatever religious debate happens on that topic  
to /dev/null for the moment. I'm also looking in to whatever other  
interesting Teredo and 6to4 things I see, and this is a pretty good  
way to talk to a large number of IPv6 hosts.

Recent versions of Azureus (bittorrent client) have a distributed hash  
tables (DHT) feature, which enables a sort of tracker-less mode of  
operation. As azureus has some kind of content distribution network on  
the back of it (Vuze, I think they call it), the DHT system is started  
even if the client is not fetching torrents. Again, I'm not moving any  
download data, I am meerly joining the DHT cloud.

So, my setup is;
- 1 IPv4 interface
- 1 Teredo interface (set up in such a way that my Teredo address  
won't change)
- 1 6to4 interface

I'm capturing packets on each of these, and am looking at how to  
process the packets to find the following:
- How many hosts am I talking to on each interface? (ie. I send a  
packet and they respond, indicating open connectivity)
- How many 6to4 hosts am I also talking to on IPv4 (assumption made by  
looking at bits 17-48 of the IPv6 address)
- How many Teredo hosts am I also talking to on IPv4 (very rough  
assumption made by looking at bits 97-128 of the IPv6 address.
- Figure out how many 6to4 hosts are Windows machines with public IPv4  
addresses.
- See if I can figure out how many of those Windows 6to4 machines are  
behind some kind of filtering that is preventing them from responding.

If anyone has any other bits of data that would be useful for me to  
pull out, please let me know!

I'm currently stuck trying to force azureus to bring up DHT with two  
IPv6 addresses, it currently only seems to want to do one for some  
reason - but I'll figure that out. (Jeroen, do you have any ideas  
there?)

So far (in 24 hours) I've sent data to about 75k IPv4 hosts, and  
received data from 50k.
In 6to4 I have sent data to 27k hosts, and received data from 12k hosts.
Teredo - nothing of note yet, as I'm not advertising my Teredo address  
with DHT.

I think that's a pretty decent sample size. These numbers looked quite  
different last year when I was last talking about this stuff, I think.

Interesting note, uTorrent (a Windows-only client) enables Teredo on  
installation. It has it's own DHT system that doesn't (as far as I am  
aware) interact with azureus. I might look in to seeing if I can trick  
Windows in to bringing up Teredo /and/ 6to4, and do some tests with it.

Cheers.

--
Nathan Ward

---

From: Fred Baker <[email-masked]>
Date: Thu, 31 Jan 2008 10:39:46 -0800

very interesting. So I gather that you didn't have to modify BT to  
make it use IPv6 directly, you simply used it. That's interesting if  
only because it suggests an obvious generator for IPv6 traffic.

Does it appear to prefer one or the other, or simply try both? Do you  
have to do something specific to trigger IPv6 usage?

On Jan 30, 2008, at 10:27 PM, Nathan Ward wrote:

> Hi,
>
> A few months back I had some stats I'd obtained from looking at  
> packet traces when running Bittorrent.
>
> available. I expect that I can prove that service provider NAT+IPv6  
> is sufficient. Let's park whatever religious debate happens on that  
> topic to /dev/null for the moment. I'm also looking in to whatever  
> other interesting Teredo and 6to4 things I see, and this is a  
> pretty good way to talk to a large number of IPv6 hosts.
>
> Recent versions of Azureus (bittorrent client) have a distributed  
> hash tables (DHT) feature, which enables a sort of tracker-less  
> mode of operation. As azureus has some kind of content distribution  
> network on the back of it (Vuze, I think they call it), the DHT  
> system is started even if the client is not fetching torrents.  
> Again, I'm not moving any download data, I am meerly joining the  
> DHT cloud.
>
> So, my setup is;
> - 1 IPv4 interface
> - How many 6to4 hosts am I also talking to on IPv4 (assumption made  
> by looking at bits 17-48 of the IPv6 address)
> - Figure out how many 6to4 hosts are Windows machines with public  
> IPv4 addresses.
> - See if I can figure out how many of those Windows 6to4 machines  
> are behind some kind of filtering that is preventing them from  
> responding.
>
> I'm currently stuck trying to force azureus to bring up DHT with  
> two IPv6 addresses, it currently only seems to want to do one for  
> some reason - but I'll figure that out. (Jeroen, do you have any  
> ideas there?)
>
> Teredo - nothing of note yet, as I'm not advertising my Teredo  
> address with DHT.
>
> I think that's a pretty decent sample size. These numbers looked  
> quite different last year when I was last talking about this stuff,  
> I think.
>
>
> Interesting note, uTorrent (a Windows-only client) enables Teredo  
> on installation. It has it's own DHT system that doesn't (as far as  
> I am aware) interact with azureus. I might look in to seeing if I  
> can trick Windows in to bringing up Teredo /and/ 6to4, and do some  
> tests with it.
>
>
> Cheers.
>
> --
> Nathan Ward
>
>
>
>
>