Tuesday, May 6, 2008

Comparison of Popular Torrent Clients

i have read the Comparison of Popular Torrent Clients in www.techtree.com
this is for you i hope it will be useful for you also.
http://www.techtree.com/India/Reviews/Comparison_of_Popular_Torrent_Clients/551-74105-609-1.html

In June 1999, a program called Napster was released and it completely revolutionized the internet usage. Napster was the first widely used peer-to-peer (P2P) music sharing service. It enabled the user to share and download audio files directly from other users; with the help synchronization provided by the server. But, it led to massive copyright violations and accusations by the music industry. Soon, Napster was forced to shut down the free service and then later resurrected as a paid model service.

But, Napster laid the foundation for many free file sharing applications such as iMesh, Kazaa, Morpheus, and many more. All these applications took a step further and provided the option of sharing any kind of files such as videos, executables, zips, etc. But, most P2P network technologies had limitations such as download speed, availability, and authenticity of the file.

The moment you start the P2P client, the client indexes the shared files list and sends it to the central server, which is stored as long as the user is connected to it. This indexed file list is used to find information about the availability of the file. Suppose, computer A has a shared file called ABC , this file information will be sent to the server. Now, traditionally when a user will search a particular file, the file name is passed on to the centralized server, which will search the entire indexed files list on the server. Consider, the user who wants to get access to the file ABC is computer B . The server then sends a list back to the computer B containing the information of the user who has the files, which in this case is computer 'A'.

Now, the user can start downloading the file from computer 'A'. This method works perfectly until other user, namely C, starts downloading the file at the same time. Since only computer 'A' has the complete file, computer 'C' will also start downloading from computer 'A' that consequently splits the upload speed of computer 'A' into two parts, which in turn reduces the download speed of computer 'B' and 'C'.

Now, for some reason computer 'A' logs off from the network, with computer 'B' and 'C' having downloaded half way. Only the availability of computer 'A' will allow them to resume their download.

Another problem was the reliability and authenticity of the file. Any user can rename a file and format it to something else, and end up downloading something unwanted. All these problems were foreseen by a skilled programmer "Bram Cohen".

In the summer of 2002, Bram Cohen launched the beta version of the Bit Torrent network. It used a different approach in sharing the files. The files shared over the network were first broken down into smaller chunks. These chunk files information is passed on to the other clients with the help of a central server called, Tracker. The tracker retains the information of the client uploading the file. Considering the earlier example, computer 'B' is downloading the file 'ABC'. The Bit Torrent client will now update the tracker about the information of computer 'B'. Now, computer 'C' also starts downloading the same file. But, now he has the ability to download not only from computer 'A' but also from computer 'B'. This is possible even if computer 'B' has not downloaded the complete file; since every file is divided into smaller chunks. This not only reduces the load on computer 'A' in terms of uploading, it also makes downloads faster. Now, if computer 'A' logs off the network, the tracker still has the information of computer 'B' and computer 'C' and they can start transferring the file with each other. So, even with the absence of the main uploader (also known as seed in bit torrent terminology) files can still be downloaded as long as the tracker is up.

Unlike conventional P2P networks, you can't search the Bit Torrent network because of its decentralized nature. The file search is based on ".torrent" file format which contains the necessary information like the file list, single or multiple trackers IP addresses. This file format is sourced from various locations such as web sites, search engines, IRC networks, and all the other means which can be used to transfer files. Due to legal issues, we won t be providing the names of popular torrents sites. But, there are few totally legal ones such as:
www.gameupdates.org
www.linuxtracker.org

There's good news for Bit Torrent Technology that now the film and music industry have started utilizing this technology for the legal distribution of movies and TV shows.

Sourced from Wikipedia

Availability: (also known as distributed copies)
It denotes the number of full copies of the file available to the client. Each seed adds 1.0 to this number, as they have one complete copy of the file. A connected peer with a fraction of the file available adds that fraction to the availability if no other peer has this part of the file. (i.e. a peer with 65.3% of the file downloaded increases the availability by 0.653, when two peers who both have the same 50% of the file downloaded and there is one seeder the availability is 1.5)

Choked:
Describes an uploader to whom the client does not wish to upload. An uploading client 'chokes' another client in several situations:
The second client is a seed, in which case it does not want any pieces (i.e. it is completely uninterested.)
The uploading client is already uploading at its full capacity (ie. the value for max_uploads has been reached.)

Interested:
Describes a downloader who wishes to obtain pieces of a file the client has. For example, the uploading client would flag a downloading client as 'interested' if that client did not possess a piece that it did, and wished to obtain it.

Leech:
A leech is usually a peer who has a negative effect on the swarm by having a very poor share ratio - in other words, downloading much more than they upload. Most leeches are users on asymmetric internet connections who do not leave their BitTorrent client open to seed the file after their download has completed. However, some leeches intentionally avoid uploading by using modified clients or excessively limiting their upload speed. The term leech, however, can be used simply to describe a peer - or any client that does not have 100% of the data.

Peer:
A peer is one instance of a Bit Torrent client running on a computer with the Internet on that you connect to and transfer data. Usually, a peer does not have the complete file, but only parts of it, however, 'peer' can be used to refer to any participant in the swarm (in this case, also known as a 'client.') Note that the "colloquial" definition of peer is anybody, leech or seed, involved in a torrent.

Scrape:
This is when a client sends a request to the tracking server for information about the statistics of the torrent, like who to share the file with and how well those other users are sharing.

Seeder:
A seeder is a peer that has a complete copy of the torrent and still offers it for upload. The more seeders there are, the better the chances are for completion of the file.

Snubbed:
An uploading client is flagged as snubbed if the downloading client has not received any data from it in over 60 seconds.

Superseed:
When a file is new, lot of time can be wasted because the seeding client might send the same file piece to many different peers, while other pieces have not yet been downloaded at all. Some clients, like ABC, Azureus, BitTornado, TorrentStorm, and uTorrent have a "superseed" mode, where they try to only send out pieces that have never been sent out before, making the initial propagation of the file much faster. This is generally used only for a new torrent, or one which must be re-seeded because no other seeds are available.

Swarm:
Together, all peers (including seeders) sharing a torrent are called a swarm. Six ordinary peers and two seeders make a swarm of eight.

Torrent:
A torrent can mean either a .torrent metadata file or all files described by it, depending on the context. The torrent file contains metadata about all the files it makes downloadable, including their names and sizes and checksums of all pieces in the torrent. It also contains the address of a tracker that coordinates communication between the peers in the swarm.

Tracker:
A tracker is a server that keeps track of which seeds and peers are in the swarm. Clients report information to the tracker periodically and in exchange receive information about other clients that they can connect to. The tracker is not directly involved in the data transfer and does not have a copy of the file.

Now, that we have discussed the Bit Torrent in depth; let s check out three of the most popular Bit Torrent clients. Though there are many other clients available, they have been eliminated from the round up due to various issues discussed below.

1) Discontinuation of Development and Support
2) Client is based upon the core technology of other clients (eg. Bit Lord is based on a older Bit Commet Engine)
3) Hybrid Clients (Shareaza, Opera)

Besides, we have included the clients that majority of Bit Torrent users utilize. Few users (Mac OS/Linux users) will be disappointed.

Azureus 2.4.0.2

Azureus is a multiple platform Bit Torrent client that utilizes Java. If your operating system is capable of running the Java Runtime Environment (JRE), then you can run Azureus. However, it can be a resource hog. You will need the JRE runtime along with it. The download links to the client and the runtimes have been provided at the bottom of the page. It is also the oldest existing client of all the three. This once used to be the best Bit Torrent client; now that has changed with the advent of more user friendly clients. But, it is still considered to be a serious contender by many as the best performing Bit Torrent client.

Don't get fooled by the simple looks as it is one of the most configurable clients. It has all advanced settings you can think of. But, then the control panel is extremely clustered with different options and certainly not recommended for a new user.

The functionality of this client can be further enhanced with installation of additional plug ins. The best plug in I found was remote access through HTML web interface.

Pros: Cross Platform client, Feature rich, Allows advanced configuration, Plug ins support, Open source.

Cons: Memory and CPU Intensive, Requires additional JRE runtime to be pre installed, Configuration menu can be confusing to the first time user.

Bit Comet 0.68
This client gained popularity due to easy-to-use feature and really good download speeds. This client was banned for sometime on many trackers as it was cheating the tracker of proper U:D ratio with the help of a third party software. Soon, a newer version was released removing the hack, and soon the client was able to access the trackers. This client is semi-adware type as you can clearly see from the client screenshot. This client is programmed in C++.

uTorrent
Well, many people, by mistake, call it 'U' + 'Torrent'; it is in fact known as Micro Torrent. The name is given so due to being very small in size. Weighing at around 150KB, this is a very resource friendly client, yet it supports all the advanced features such as protocol encryption, peer exchange (DHT), etc. The client is built on user friendliness of Bit Comet and the features of Azureus.

This client is programmed very tightly on C++ and maintains a very small file size. It has features of providing static graph and ability to see which country you are downloading from.

Pros: User Friendly, Small in size, Supports all advanced features, Resource friendly
Cons: None
Well, checking the client for download speeds depends purely on the type of file, availability, tracker reliability, and lot more network related terminology. However, we had tested the every client with the torrent of Prey Demo. You can get the torrent link over here.

The clients were provided 64 Kbps line. The Prey Demo weighs in at around 449 MB. All the clients were able to complete the download in the range of 14-15 hours. I won't be comparing it in terms of minutes or seconds because it makes no logical sense.

However, I will compare it in terms of memory and CPU usage. The following Test Bench was utilized.

Processor: AMD Athlon 64 3200+
Motherboard: MSI K8NGM2-FID
RAM: 512 * 2 DDR 400 Transcent Memory (2.5-3-3-7)
HDD: Segate Barracuda 7200.7 160 GB
Ethernet: Onboard Nvidia 1 GBps Lan Card

The rest of the system won't be necessary to be mentioned here.

Benchmarks
*CTU - CPU Time Utilization

**MU - Memory Utilization

On starting the client with no torrent loaded.
On the torrent link being loaded.
After 10 hours of torrent link being loaded.
The client was still in process of downloading.
The numbers mentioned above can do most of the talking. uTorrent wins in most categories, but it came second in CPU Utilization in the 10 hours load test by 2 seconds.

Conclusion

All the clients had their own advantages and disadvantages. However, I found uTorrent to be the best of all the three. The extremely low resource utilization makes it a clear winner. Those looking forward to work with really advanced features can look up to Azureus. Bit Comet is appealing to those who want the Media Preview feature.

No comments:

How to Get files from the directory - One more method

 import os import openpyxl # Specify the target folder folder_path = "C:/Your/Target/Folder"  # Replace with the actual path # Cre...