nanog mailing list archives

Re: uTorrent, IPv6


From: Nathan Ward <nanog () daork net>
Date: Thu, 21 Aug 2008 05:10:36 +1200

On 20/08/2008, at 4:42 PM, Nathan Ward wrote:
Teredo uses 3544/UDP to for Client<->Server communication. That is for relay discovery when needed, and the qualification procedure - not much traffic. Client<->Relay communication MAY use 3544/UDP, Client<->Client communication MAY use 3544/UDP.

In my experience (packets I have been analysing in the last 24 hours for example) suggests that not many actual data packets are on UDP/ 3544.
I'll get some exact numbers on that in a few hours if you like.


Over a 16 hour period, I captured Teredo encapsulated packets. I run my own Teredo server and so on, so I can statically set what my Teredo IPv6 address is. I'm running Azureus on this, and also on a 6to4 address on the same host. Running DHT so I talk to as many peers as possible. Azureus DHT uses lots of very small UDP over IPv6 packets (100b or so), so those are my "data" packets. The rest is just Teredo maintenance stuff. My numbers here are actually low, because of various 6to4 routing things that I don't really care to go in to in too much detail. I estimate that I'm missing 40-50% of the traffic that I'd normally see if I had IPv6 over only Teredo. I'll re-run this test properly when I get a chance, but it'll only make the numbers bigger.

I exchanged packets with a total of 4177 IPv6 hosts.
- 767 hosts were on Teredo.
- 2657 hosts were on 6to4.
- 753 hosts were on neither Teredo or 6to4.
(I have a whole other rant around these vs. IPv4 as well.)


The stats in the document produced by Arbor that was posted on Slashdot suggest 12Mbit/s of Teredo traffic. Their method for determining "Teredo" was to look for 3544/UDP and 3545/UDP.

Of my total 96,148 packets, 27,676 were UDP over IPv6 data packets (ie not teredo maintenance). They are all very small. - 24,175 (87%) of those 27,676 UDP over IPv6 data packets were on non- well known Teredo ports.
    o 18,436 (76%) of those 24,175 are going through a relay somewhere.

57,624 (59.9%) of the total 96,148 packets were on non-well known Teredo ports. (including Teredo maintenance stuff).
  - 34,766 (60%) of those 57,624 are going through a relay somewhere.


So, somewhere in the region of 60%-87% of Teredo packets were missed by the report.
60%-76% of those packets missed are going through relays.[1]

So, assuming that all Teredo users do small packets, and talk to a large number of hosts like I do (100b or so packets, lots and lots of Teredo maintenance packets), the report misses about 17.9Mbit of data.

If we go to the other end of the scale, and assume that most users do more data than I do (say, they load web pages, do file transfers and things), and talk to fewer hosts, we trend towards the 87% mark, in which case the report misses 80Mbit of data.


So:
1) The report misses 18-80Mbit of total Teredo traffic.
2) The report misses 11-61Mbit of Teredo traffic going through relays. (a sub-set of the total Teredo traffic).


The report observes approx 150Mbit/s peak IPv6 traffic.
18-80Mbit of data is not an insignificant error: 12% - 53%.


So, we know that Teredo is currently under-estimated.
This is when I'm talking IPv6 to other end hosts running an application that doesn't know how to talk to the Teredo stack on Windows hosts[2] (the majority of the remote ends). So, now that uTorrent 1.8 is out, with it's ability to use the Teredo stack, are we likely to see an increase in that 60-87% percentage, because of Teredo<->Teredo direct communication? Yes, Teredo<->Teredo communication always goes on non-well-known ports. This Arbor report is going to even more out of date, fast.

If you're deploying non-Teredo IPv6 service (native, 6to4, whatever), you're going to have your end users talking to Teredo users, and 6to4 users. This number is going to grow. Get some relays, because the publicly available ones are going to start hurting soon, and any traffic you push through them is going to go slow. Whether you are pushing bittorrent or not, other people will be, and your non- bittorrent traffic will suffer.


ps. maths might be broken, it's late in my part of the world.

--
Nathan Ward

[1] Because the packets I miss (the 40-50% that I estimate) are me -> 6to4 connected end host packets, they would go through a relay as well, so this number would be higher if I was catching all those packets. [2] My understanding is that Azureus can't talk to the Teredo stuff, I'll have to ask some Java coder friends to confirm that.



Current thread: