Beginners BitTorrent Guide

This article is aimed at the FrostWire new user, or any user that want's a little more insight into the nature of FrostWire and Peer to Peer (P2P) file sharing. 

The basic concept of P2P is that people share files that they have on their computers with other users.  There are many variations in file sharing, P2P being one of them, and there are many variations of P2P sharing.  FrostWire uses a BitTorrent protocol, one of the latest and more popular protocols. 

Traditional downloading involved connecting to the site that had the wanted file, and using a defined protocol, to download the file.  This is a one on one connection.  If the sending computer becomes overloaded, the connection can be lost or become very slow.  An interrupted connection often means that you have to start over when you get connected again. 

BitTorrent protocol takes a different approach.  To download a file, it is necessary to obtain the “torrent” that contains the structure of the file and provided access to computers that are online and have that data.

BitTorrent protocol is organized so that the program can download from multiple sources at the same time. It can download from anyone who is online and sharing. Since a torrent can contain many files and many people sharing may not have an entire data set, it's impossible to start at the beginning and proceed to the end.

A torrent defines a chunk size for the data and makes a map that indicates the precise location of each data chunk, relative to the start of the data structure. To permit downloading from multiple sources, the program allocates data for all that it will be downloading as null entries. As data becomes available, it is written into the appropriate chunk and is considered complete.

This means that the data, preallocated on your media ,is similar to an empty container that is filled as the data becomes available, and the order of obtaining that data is irrelevant.

A torrent has NO information about who has the file described. If someone decides to share files from a torrent, the torrent program will advertise the hash, a unique identifier, and those looking for that file will be so informed.

The key is that a torrent is NOT the data that you want. It is a description of the data you want. Torrents are created by torrent programs. They organized the data into chunks and provide a data map of the file structure, based on those chunks, so that data matching the torrent description can be read and written, randomly, from the disk.

Because the data can be read and written randomly you can send to and receive from multiple people at one time. This means that the data describe by a torrent MUST be and remain unchanged on the disk, once the torrent is made. If the data is changed, it will invalidate the torrent and cause errors, which the system will catch and attempt to deal with, usually by disabling the offending torrent.

Each torrent can be identified by a unique hash total of the data layout. The hash description is not so large as to be difficult to handle, but is large enough to make generation of the same hash from different data almost impossible.

The hash is considered a unique identifier for each torrent and is the mechanism that torrent programs use to exchange information about who has what torrent.

Here are some facts:
A torrent contains NO data from the files it describes. It only contains a mapping of the way the data is organized on disk.

A torrent has NO information about who has the file described. If someone decides to share files from a torrent, the torrent program will advertise the hash, and those looking for that file will be so informed.

Before continuing on the technical, consider the legal aspects of file sharing. As for legality, if you are sharing data that YOU own, it is perfectly legal. If you are sharing data that is public domain, it is legal. If you are sharing copyright data that you have permission to distribute, it's legal. If you are sharing copyright data that you do not have rights to, it is ILLEGAL!

Since copyright law varies from jurisdiction to jurisdiction, that can become a tangled web. In that area, you do what you feel is legal, or that you can get away with OR simply don't!!!!!  Life is never simple!

When you start FrostWire, or any P2P program, you'll see a display that shows you files that are being shared.  On that page, you'll see various column headings.  Some of the possible headings and their meanings are:

Status: seeding, Stopped, Downloading.
Seeds: The number of people in the swarm that have 100% of the data
Peers: The number of people that are downloading the data.

Seeding implies that you have 100% of the data and are sharing, or offering to share , with others.  A peer want's, but does not have, 100% of the data.

BitTorrent uses two methods of finding seeds and peers that are of particular interest.  One, is the tracker and the other is the distributed hash table. 

A tracker is a computer that accepts connections from a P2P program and registers them as sharing a particular torrent.  Anyone wanting that torrent can connect to the tracker, which is embedded in the torrent, and discover who is sharing that torrent and request data from it, directly to them, peer to peer.  If a tracker goes offline, no connections can be made and who has that torrent can no longer be discovered.  Many torrents will name and use several trackers to solve this problem. 

A different approach is DHT, the distributed hash table.  BitTorrent programs that support DHT allocate space do store and share hash information.  Periodically, the program will exchange hash data, which includes who is sharing that torrent, with other peers. When you want to download a torrent, your hash table is examined.  If you have that hash, peers from the table, can be contacted and data request.  If you do no have the hash, a request will be sent to peers in your swarm (peers that you are connected to) asking for that information. 

That DHT means that the torrent is no longer dependent on trackers, which may or may not be on line. 

That is a quick overview of BitTorrent P2P nuts and bolts.  The practical considerations include how to find the data you want and get the torrent that contains that data so you can request download from your peers.

If you wish to exchange data with someone you know, you'd make a torrent and email it to them or inform them of the magnet link.  A magnet link is a short string of data that provides the hash of the torrent, and optionally, other data.  It is much smaller than a torrent and can be copied and pasted into may chat programs and in simple email text. 

If you want to download a torrent from the general public, there are index sites that keep lists of torrents and provide search facilities to those torrents.  If I want to download a copy of UBUNTU, a Linux distribution, I could go to in index site and search for UBUNTU.  I would get a list, from which I'd select the distribution that I want, to download from. 

Torrents can contain many files and even folders, but has only one name.  Search strategy may require some creativity, which I've dealt with elsewhere.  It is possible and reasonably simple to download a single or several items from a torrent.