With over a 150 million users, μTorrent is easily the most popular BitTorrent client in the world. Although becoming increasingly sophisticated and feature-full over the years, μTorrent has managed that rare trick of remaining lightweight and without bloat (a lesson that competition such as Vuse would do well to take note of).
The latest update (version 3.4, released 20 February) marks a major development in BitTorrent client technology, implementing a new way of connecting to peers that addresses weaknesses in the existing method, and which promises to speed up downloads and counter DDOS attacks.
‘If [a BitTorrent client] chooses poorly, or if there are malicious actors in the swarm, the connections between clients are not well distributed through the swarm, leading to a large number of hops from node to node. That slows down the ability to each client to pass data on to the next.’
A report on the subject goes into more detail,
‘The barrier of entry to a swarm may be high when most peers (or at least most early peers with most of the data) are all fully connected at all times, never having a connection slot for new incoming connections. Peers are likely to attempt a new outgoing connection immediately when a peer is dropped, to reach the connection limit. This means that the number of connected peers + half-open outgoing connections always reaches the limit, resulting in new incoming connections being refused.’
The new peer section method, known as ‘Canonical Peer Priority’, prioritises peers who are closer (i.e. fewer hops away), so that even when a torrent has reached its maximum number of connections it will accept peers with a higher priority,
‘The solution to these problems is to come up with a formula that all peers agree on to prioritize certain IP addresses for peers over others. As long as this formula is correctly defined, and all (or at least most) peers agree on what it is, all peers have equal footing on joining swarms, and a DDoS attack is only as affective as the proportion of attackers to legitimate peers’
A detailed description of how Canonical Peer Priority improves swarm connectivity by removing bottlenecks for piece distribution can be found here, but the gist of it that instead of refusing all peers once the maximum number of connections has been reached, μTorrent will drop lower priority peers and swap them out for higher ones.
One of the great things about this new method is that in addition to increasing connection times and download speeds, it makes the network much more resilient to DDoS (Distributed Denial of Service) attacks.
‘One potential DDoS attack of a bittorrent swarm is to very rapidly make many connections to all peers in the swarm, and then pretend to not have any data and hold the connection slot for as long as possible. This narrows the number of paths in the network actually transferring data and could severly (sic) restrict the effectiveness of distribution…
With a global ordering function [i.e. Canonical Peer Priority], an attacker could not distrupt (sic) a swarm any more than the portion of IPs it has access to compared to the total number of peers in the swarm. This means as swarms grow, it becomes increasingly expensive to launch such attack. The reason for this is that the connection priority is tied to pairs of IPs, and each IP will only rank high with a small portion of other IPs. Any peer for which the attackers IPs rank low, would essentially be unaffected by the attack.’
How well the new system works depends on the number of people using it (i.e. how many people are using μTorrent 3.4), so it may be a while before the changes start to make a difference, but in time they should. Whether other BitTorrent clients will follow suit remains to be seen.
Other news is that following complains about the slowness of bug fixes and updates, parent company BitTorrent have expanded the development team, so hopefully these woes will become a thing of the past.