Generally speaking, Bittorrent is a symbol of internet freedom, allowing anyone to download pretty much whatever they want. But I suspect that freedom is only skin-deep. What follow are the conclusions I have arrived at from my experiences as a user of various bittorrent clients, as well as doing some development in that area. Put simply, it seems that we may very well have an open protocol being monopolized in a surprisingly successful manner. This is possible because (1) even an open protocol can be 'controlled' by extending it in a nonstandard way, and (2) in certain circumstances even an open protocol can be implemented in an 'unfair' manner.
In all my experience (which amounts to simply looking at the peers I am connected to as I download) there are only two clients which are widely-used:
Azureus and
µtorrent (so perhaps I should have said 'duopoly', or 'cartel', and not 'monopoly'). Most of the time I see about 40% or so of peers using Azureus, a similar number using µtorrent, and the remainder split up among the various other clients (BitComet deserves an honorable mention as a noticeable third).
Why are there only two bittorrent clients in wide use? After all, there are several open-source bittorrent libraries out there (the original Mainline; Sourceforge libtorrent; Rakshasa's libtorrent; etc.). Anyone can make their own client; all you need to do is write a frontend. I worked on such a project myself recently (to refrain from self-advertising, its name won't appear anywhere in this document). So, the ease of creating a bittorrent client might make you think that it is easy to enter that market. But, as it turns out, that is not the case.
Recently I have done a lot of testing of various clients. Now, on a very healthy torrent (plenty of peers, good seed/peer ratio, etc.), most bittorrent implementations will do reasonably well. But on more difficult torrents, that is no longer true. In some cases standard backends simply stall - no connections or very few, and no actual downloading. More advanced clients like KTorrent do a little better, managing to connect to a few peers and get some data, albeit slowly. But run Azureus or µtorrent, and you suddenly see what bittorrent is meant to be:
fast. It should be no wonder, therefore, that the vast majority of people use one of those two clients. But why are they so good at what they do? After all, the bittorrent protocol is open: anyone is free to implement it, and get the same excellent performance, aren't they?
Yes and no. While it is true that the basic protocol is open and well-known, it has some extensions which are not used by everyone. For example, protocol encryption was first devised by Azureus and µtorrent; later on, other clients adopted it as well - in particular KTorrent, which may account for its relative success in comparison to some other minority clients. Another feature is Peer Exchange, which allows exchanging lists of peers without a tracker. There is no single standard for Peer Exchange; µtorrent and Azureus each use their own (as does BitComet). Distributed Hash Table (DHT) capability is also useful, allowing trackerless torrents. This feature is steadily becoming commonplace, but it should be noted that Azureus use their own version of DHT, incompatible with all the rest.
So, what does all of this mean? Well, when you run µtorrent, you have the numerous other µtorrent peers that you can use Peer Exchange with. And when you run Azureus, you can utilize the large network of other Azureus peers using the Azureus DHT. Thus, both Azureus and µtorrent have advantages beyond a brand-new client. In both cases the only reason for the advantage is the sizable pre-existing client base.
µtorrent warrants further discussion. Since µtorrent is closed-source, there is no way to tell whether or not it gives peers running the same client 'preferential treatment': for all we know, it may be that when µtorrent gets connection requests from several peers, it responds first to those of them that are also running µtorrent, and so forth. I am not accusing µtorrent of anything - I don't have enough evidence - but I do have a few reasons to suspect this. First, it is not uncommon for me to see, when running µtorrent, that most of my downloading is from other µtorrent clients; likewise uploading (I am of course taking into account the large proportion of peers running µtorrent when I say this; the phenomenon seems large even when taking that matter into consideration). A second issue is that, in my experience, µtorrent consistently sees more peers than any other client, Azureus included. There seem to be peers that only µtorrent can see; it may be that those peers are only reachable via µtorrent's Peer Exchange. Does µtorrent, in some cases, not report itself to the trackers on purpose, thus effectively creating a 'µtorrent-only' section? I don't know, but it does seem like that might be true. I'll say it again: both of these observations can be contested and/or explained away in various ways. Still, I have my suspicions. Perhaps people reading this document have further information from their own experience.
It is possible that Azureus and µtorrent simply have better implementations of the bittorrent protocol. But I don't believe that is the only reason for their performing far better than the competition. Part of it is probably due to the unique advantages each has - µtorrent's Peer Exchange, and Azureus's DHT, each of which leverage their enormous existing client bases to boost performance (and I mention only these two features so as not to complicate the discussion: the real picture is even more complicated). Sadly, this makes entering the market difficult for new clients. Note that this is true even though e.g. Azureus's DHT is 'open', because (1) other clients will need to catch up and implement those extensions, (2) with several competing extensions, it becomes confusing to decide which to implement, and (3) while open, the specification may change, thus becoming a 'moving target'. (See, for example,
this.)
What is ironical is that this 'monopolization' of the market is done on a protocol that is open. But despite it being open, some find ways to utilize it in which they gain a special advantage, whether by extending the protocol in a nonstandard way (even if that way is still 'open'), or by (perhaps) writing closed-source code that implements the protocol in an 'unfair' manner.
If these things sound familiar, they should: Microsoft were accused of both of them in the past (in particular, a nonstandard extension of an open standard is part of what has been called their 'Embrace, Extend and Extinguish' tactic). Hopefully Microsoft are not currently doing either one, yet if in fact they are not, one reason for that must be the risk of legal action. However, with bittorrent, no regulation exists (
Neelie Kroes, we need you!). In such extreme 'free market' conditions, it appears that freedom may have, in fact, been lost.