μTP or “micro-Transport Protocol” is a new protocol from BitTorrent, Inc. that is at the heart of the new major release of our popular BitTorrent clients “μTorrent” and “BitTorrent Mainline”. It is going to be available as the default transport mechanism in both μTorrent v2.0 and BitTorrent v7.0. So what’s the big deal? And why do we want this to be the centerpiece of our future software?
The fact is that our BitTorrent clients have become incredibly popular with users downloading large files over the internet. So much so that some observers claim that BitTorrent traffic accounts for 30%, 50%, or even more of all Internet traffic. Regardless of the actual numbers (which we have no way of knowing), it is clear that the popularity of BitTorrent is putting such a burden on ISP networks that they sometimes react by slowing down or interfering with that traffic.
Now there is a whole “net neutrality” debate, partly about whether ISPs should be allowed to interfere with internet traffic from one particular app simply because it is “too popular” – some argue that perhaps ISPs could invest more so that supply meets demand – but this debate is not the focus here. At BitTorrent we like to be a bit more pragmatic, to assert that there is responsibility on the part of both the ISPs and authors of popular applications like BitTorrent to make sure that the internet scales smoothly to meet demand.
Which brings us back to μTP:
News of μTP started to leak to the public late last year with some wild and totally untrue reporting that we were trying to make BitTorrent more greedy and were somehow “declaring war” on users of other applications. In fact completely the opposite is true, as was subsequently acknowledged by the initial author’s follow-up article.
μTP is a completely new implementation of the BitTorrent protocol with a major new design objective – μTP is designed to be network friendly – to not swamp network connections when there are other apps trying to send and receive – and to resolve the key problem that ISPs use to justify interference with BitTorrent traffic.
If BitTorrent traffic volume is so great that it overwhelms end-users’ connections (leading to service calls from consumers whose internet doesn’t work), then μTP eliminates this problem by being better at only using bandwidth when there is no other traffic competing, and automatically slowing or stopping BitTorrent transfers before network connections seize up.
Legacy BitTorrent traffic uses the standard internet “TCP” protocol to govern when it tries to go faster or slow down. The problem with TCP is that it can only detect a problem by waiting to see if packets are dropped. Unfortunately, by the time packets are being lost, the problem is already acute and the consumers connection has already drastically slowed or stopped. TCP is a lot like trying to drive with your eyes closed. You only notice something’s wrong when you hit something.
μTP is like driving with your eyes *open* – μTP is able to see problems coming and make much more modest adjustments to ensure the problems don’t cause a car wreck. It does this by being able to detect congestion on a network based on how long a packet takes to be sent from one peer to the next. If things start to take longer, then μTP adjusts the rate of sending accordingly.
As it happens, this trick has required some very deep engineering work – the way the client talks to other clients has had to be completely re-built. As a side effect, because the new protocol so different, it is practically invisible to some of the nasty traffic shaping techniques that some ISPs have been using. We doubt whether this happy result will last for long, and nor is it the point of the technology. The point is to reduce the need for such gear rather than to evade it.
Overall, when we get μTP stable, we’re excited about the potential benefits that this could bring to ISPs by reducing the effective burdens on their networks. Although we stand to gain nothing financially from them for implementing it, we hope to maintain the lead enjoyed by μTorrent and BitTorrent Mainline software as the most popular BitTorrent clients, and hopefully demonstrate how innovation from responsible stakeholders on a neutral internet can lead to winning outcomes all-around.
– Simon–

That is great news. I just updated uTorrent for mac to version 0.9.2 and it includes a few uTP fixes.
Uh wait, is it an application protocol or is it a network protocol? The name µCP makes me think you’re trying to replace TCP or UDP, but I bet that isn’t true. Aren’t you just making an improved bittorrent protocol that runs on UDP?
I mean, I’m sure it’s nontrivial and all, and the right way to do things, but the name seems like a reach.
As a matter of fact µTP is indeed a replacement for TCP, so we think the name is appropriate. You can check out standardization work which we’re chairing at the IETF called the LEDBAT working group
That’s never going to fly. The set protocol types are entrenched in all network equipment that deals above ip level (with connection tracking, for example). So tcp, udp, icmp, igmp it is for anything but a lan.
Another comment makes it looks like uTP works over UDP which is really your only chance of avoiding tcp. Is that correct?
I agree that replacing TCP is at best a very long shot (my original comment here was sincere but somewhat aspirational). Developing standards like this is certainly the realm of IETF work. But even then, the challenge of a general replacement or upgrade of TCP is daunting to say the very least…
And yes, uTP sits on top of UDP, meaning that we avoid TCP when client connect with uTP.
It’s not a TCP replacement, it’s a new application layer protocol that will indeed be used in conjunction with UDP.
Sure – I don’t mean to suggest that µTP is a general replacement for TCP. And yes, it is an app-layer protocol for use in conjunction with UDP. But for the isolated case of BitTorrent traffic, µTP replaces the function of congestion control that is normally performed by TCP.
lol I never expected what I just got.
I’m a Newsgroups fan but thought I’d test this out. I got download speed of 2 mbps and let it choose it’s own upload speed based on it’s own speed test.
I’m liking this a lot.
At first it looks like the reinvention of the Datagram Congestion Control Protocol which is already in the Linux kernel for some time.
Very fascinating information. I sent it to a couple of friends already! I even wish to advertise here… My site is about console sports games. Pls feel free to email me at: editor@ps3formoney.com
Should this app not perform to my liking, can it easily be removed through the control panel,”remove programs”?
i have been reading up on ways to get round the throttling of your BitTorrent traffic. Now will this still be relevant with this new protocol in place, or am i simply wasting my time ?
Nice information. I will try as well upgrading my uTorrent.
Now a days users downloading large files on internet via bittorrent
grt software …………
register follow-up article backpeddling his slating links to original article. Should be:
http://www.theregister.co.uk/2008/12/05/richard_bennett_bittorrent_udp/
HTH =]
Verry nice and helpfull work, congratulations
My blog about networking http://howdoesinternetwork.com it’s writing also about how exactly internet is working and about all the network fundamentials..
Hope you will enjoy learning from it and help me with some comments and maybe suggestions.
regards
could you tell more about structure of utp, how it’s working and the difference from udp.
thank you