BitTorrent is popular peer-to-peer sharing communication protocol used for transferring all kind of files over the Internet. Two of the most popular BitTorrent clients for Linux are Azureus and KTorrent. If you're looking for a robust, fast, simple, and powerful BitTorrent client, you will probably go with KTorrent. If you want a Java-based client that runs on every platform and allows you to configure every detail for BitTorrent transfer, consider Azureus.
Both Azureus and KTorrent are feature-rich and powerful BitTorrent clients with powerful file transfer management GUIs, statistics, and highly configurable settings menus. Azureus is written in Java and therefore can be run on practically all platforms, while KTorrent is written in C/C++ using Trolltech's Qt toolkit, and can be run only on Linux and Unix-like systems (including Mac OS X).
Both clients are available for installation from software repositories in all modern distributions. If they're not there, you can install Azureus by downloading it, extracting it from the tarball, and running the binary:
tar xvjf Azureus_x.x.x.x_linux...tar.bz2
You will also need to have Sun's Java Runtime Environment installed.
KTorrent's installation and compilation uses the standard ./configure, make, make install process.
Now that we know how to install them, let's have a look at some of the features that Azureus and KTorrent provide.
When you choose to download specific BitTorrent file, both programs let you choose only the files you want from a specific torrent archive. For example, if you're downloading an openSUSE10.torrent file that contains all five ISO images of openSUSE Linux, but you need only the first one, you can uncheck the other four files in the download dialog and download only the desired one.
Both clients can generate statistics for you, including average transfer rates, share ratio, what peers are you connected to, file availability (also per-host), and file chunks. You can also view how many peers are connected, what their IP address and port number, on which BitTorrent they're running, their BitTorrent client, where are they from (this is a extra feature with Country Locator plugin), what is the transfer speed between you and a peer, and what file chunks are available from them.
Both Azureus and BitTorrent allow you to download and upload as many files as you like simultaneously. You can configure desired maximum and minimum file transfer speed for both upload and download globally, and limit transfer speed per-file as well.
Both client supports IP address blocking via plugins. If you feel that some host is not welcome on your torrent ride, you can list its IP address in the IP blocking menu to prevent it from connecting to you.
Both clients support BitTorrent protocol encryption, which makes BitTorrent traffic harder to identify by third party. For example, you would use this if you were worried that your ISP was sniffing network traffic for peer-to-peer connections and possibly blocking it. With this feature, an ISP probably wouldn't even know that you're using any peer-to-peer programs. Protocol encryption doesn't provide anonymity, however; it only makes peer-to-peer traffic harder to identify.
You can expand both programs' functionality via plugins. For example, Azureus can send you SMS for every finished torrent with its SMS notifications plugin, or alter you to torrent status changes using Google Talk (Jabber protocol) with it Instant Messaging Notifications plugin. You can see a full plugin list for Azureus and for KTorrent online.
You can control Azureus remotely via a Web interface with the help of the Swing Web plugin. KTorrent provides the same feature with the WebGUI plugin, which is included in the program by default. You need to specify a username and password in the plugin's settings before you can use this service.
Both clients support Universal Plug and Play (UPnP), which allow devices to connect seamlessly, meaning zero network configuration for user. BitTorrent clients need this for peer-to-peer transfers. The other option is to turn on and configure port forwarding on your router, but this requires some network knowledge, so it's not the best choice for all users.
Both clients let you create your own torrents. However, KTorrent requires you to upload your torrent content to a torrent tracker before you can start seeding. By contrast, Azureus is capable of serving as its own tracker, allowing you to start seeding to users right away.
A full list of differences between the torrent clients is available on wikipedia.
I had a lot of problems with the Azureus client and my Linksys WRT54GS v2 wireless router. When I was using Azureus for a few hours at a time, my network connection would drop consistently, and before that, it was so slow it took my Web browser five minutes to open any Web page. I reconfigured Azureus to use UPnP and directly mapped ports on the router, but still saw the same problem. I limited the number of connections -- still the same problem. Upgrading the router's firmware didn't help. It took me quite some time to figure out that it's the router's problem; read this short FAQ about Linksys WRT54G/GS routers and the BitTorrent protocol.
I liked the look and feel on Azureus client, but because of my router at home, I was forced to make a switch. Although I'm not using KDE at home, I found KTorrent to be a great piece of software. Both clients are feature-rich and extensible via plugins. The choice is yours, but if you're a Linksys router owner, you might just go with KTorrent.