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.
Enjoy!!!
~~~
|