Recent coverage of uTP on the popular Torrentfreak blog yielded some interesting feedback in the comments section.
There are a couple of misconceptions that I’d like to address here:
First is the idea that we designed uTP *for* the ISPs. It was not.
While we think there are substantial advantages for ISPs in the broad adoption of uTP, the protocol was actually built from the start as a way to help consumers themselves. The fact remains that when using TCP, a poorly tuned BitTorrent client may well result in an internet connection that habitually gets congested and then drops packets, then recovers and repeats the process. This is not good for anyone.
The second misconception is that uTP will somehow slow uTorrent down. This is also not true. It will certainly result in less headaches for everyone and it may even speed things up.
Our design objectives were always to leave transfer rates unchanged, and we’re still confident this is achieveable. The fact that you don’t have to manually “manage” your client or limit it to some arbitrary % of your connection should mean that in practice it will be reliably faster. What’s more, we may actually be able to make it go faster than an unlimited TCP BitTorrent client. The way to picture this is to consider cars on a highway: you can only drive at 90 mph if there’s not much other traffic. But if there’s a lot of traffic then quickly the whole system will snarl up. uTP is designed to make clients transfer at an optimal speed *without* causing a snarl up. The thrill of speeding along at 90 mph is rather lost if you keep having to slow to a crawl until things recover. By avoiding this “stop/start” we felt that uTP *should* make things go faster overall.
Early evidence is starting to come out now from researchers at the University of Washington who are performing some independent tests on uTP performance. (These results are NOT conclusive at this point, but the early indications are quite good…)
From the first graph below you can see the interaction of uTP traffic (green) with some other application competing to use the connection (red). As expected, the uTP traffic backs off immediately and is replaced by traffic from the competing application – upon completion of the competing transfer, the uTP BitTorrent traffic quickly resumes. The blue data points represent the uTP traffic holding steady against the (right vertical axis) target delay of 100ms (I’d note this is vastly lower than anything achievable with TCP BitTorrent transfers).
The uTP controller is clearly doing its job, spotting a different application trying to use bandwidth and getting out of the way, only to recover just a fast.
But in many ways the more important graphs are the following…. These show you that uTP BitTorrent is just as fast as best-case TCP BitTorrent, and may even be faster…
Now one likely explanation for this is that the uTP overhead (a few % of the traffic which is not actual content) is included, but the TCP measurement excludes it. If this were true then probably uTP and TCP are almost identical.
But if we find that uTP traffic is indeed faster than TCP BitTorrent traffic, there are a couple of reasons why this slightly surprising conclusion might indeed be true –
Either the stop-start nature of TCP-based BitTorrent creates inefficiencies that are being optimized away using uTP.
Or else there were ISP network management measures in place which were discriminating against TCP-based BitTorrent.
Or possibly the UDP NAT-traversal techniques introduced along with uTP were resulting in far more good peers with uTP.
Or possibly something else?
Whatever the reason, this is early evidence that uTP is an even bigger win for consumers than anticipated, as well as being a positive contribution to ISPs.
Much more work remains to be done, but this is exactly the type of result we’re hoping to see more of.