BitTorrent net meltdown delayed
But is UTP the best approach?
The internet's TCP/IP protocol doesn't work very well. As the internet's traffic cop, it's supposed to prevent applications from overloading the network, but it's at a loss when it comes to managing P2P applications. This deficiency, generally known to network engineers but denied by net neutrality advocates, has been a central issue in the net neutrality debate. BitTorrent Inc has now weighed in on the side of the TCP/IP critics.
The next official release of the uTorrent client – currently in alpha test – replaces TCP with a custom-built transport protocol called uTP, layered over the same UDP protocol used by VoIP and gaming. According to BitTorrent marketing manager Simon Morris, the motivation for this switch (which I incorrectly characterized in The Register earlier this week as merely another attempt to escape traffic shaping) is to better detect and avoid network congestion.
Morris also told the media this week that TCP only reduces its sending rate in response to packet loss, a common but erroneous belief. Like uTP, Microsoft’s Compound TCP begins to slow down when it detects latency increases. Even though TCP is capable of being just as polite as BitTorrent wants uTP to be, the fact that it hides its delay measurements from applications makes it troublesome for P2P clients with many paths to choose from. But it’s sensible to explore alternatives to TCP, as we’ve said on these pages many times, and we’re glad BitTorrent finally agrees.
It remains to be seen whether uTP is the best approach. The company has touted its close relationships with ISPs and the IETF’s LEDBAT task group, but has so far shared none of the specifics of uTP operation in public fora. The PowerPoints they’ve shared with the IETF are encouraging, but they’re a long way from the source code, simulations, and hard data from impartial sources that are prerequisite to any new protocol standard.
One thing that is certain is that uTP will not reduce the volume of traffic that P2P moves across the internet, something that would be commercial suicide for a company that depends heavily on aggressive file sharers, and pirates, for its popularity. But it does try to find the nooks and crannies of the internet where its content, legal and otherwise, can be gathered with the least impact on other users. If successful, this will make the internet more stable.
The stakes in the competition to replace TCP are considerable for a struggling company that recently had to lay off half its staff. BitTorrent lives at the intersection of three groups with sharply opposing interests: P2P users, most of them pirates; internet service providers with traffic and legacy equipment issues; and major television and movie studios who want wide distribution but no piracy. These interests have clashed in the past, particularly when a licensing deal with the MPAA raised the shackles of private P2P trackers, causing them to temporarily ban uTorrent clients until they could be satisfied that the privacy of those trafficking in stolen content wouldn't be compromised.
One way of dealing with these clashing interests is the standard marketing practice of controlling messages heard by different groups. While BitTorrent protested to the mainstream media and tech blogs this week that uTP was not intended to escape network management, they were missing in action on P2P message boards such as DSL Reports (“New UDP uTorrent Takes Aim At Throttling”) and their own uTorrent Forum where users touted uTP’s evasive properties in messages like this one:
Wow this is awesome. Prevents my sandvine using isp from throttling.
We presume they’ll get around to this shortly.
The overall picture suggests that uTP has a serious flaw. If it simply relies on latency measurements to find preferred paths, it’s likely to favor paths where it’s successfully circumventing management. When a path is managed to give UDP priority over TCP (as is apparently the case in the Bell Canada network,) uTP will see that path as uncongested even as it's struggling to deliver TCP. In this case, uTP will in fact impair other applications, as we suggested in our previous piece.