BitTorrent, What The Heck is a BitTorrent? (Dark Tips)
Published August 20th, 2004 in Dark TipsWell in the ongoing to push to keep my content fresh and new and because I get bored easily I’m changing yet another day’s theme here at migraineheartache. Friday, will now be (And I hesitate to call it this, but…) Dark Tips. Now I’ve honestly stolen that term straight from my good friend Kev Rose from G4TechTv’s TSS. But nonetheless, I’m using it, there’s honestly no other way I can think of to describe these tips. Well, off we go:
Today’s Dark Tip is going to be on BitTorrent. For those of you who have already been indulged into the world of BitTorrent, good for you, go grab get yourself a cookie and feel free to skip this article. Anyways here’s a quick and (hopefully) simple explanation of what BitTorrent is (Pics courtesy of the fine official BitTorrent Site, and a big thanks to the author of BitTorrent - Bram Cohen):
Normal Download Situation: Poor Server, Its Tired

The BitTorrent Solution: Users Help To Distribute The Content

As you can see in the second situation the file(s) is/are downloaded from everyone. Not just a single server, greatly lightening the load and in the long run increasing download speed.
(If at anytime you see a word or term that you don’t understand refer to the bottom of this article in the section labeled “BitTorrent Glossary”)
Overview
BitTorrent is a protocol for transferring files. It is peer-to-peer in nature, as users connect to each other directly to send and receive portions of the file. However, there is a central server (known as a ‘tracker’) which coordinates the action of all downloaders (called ‘peers’). The tracker only manages the connections, it does not have any knowledge of the contents of the files being distributed, and therefore a large number of users can be supported with relatively limited tracker bandwidth ( I run one occasionally on my home pc). The philosophy of BitTorrent is that users should upload (transmit out) at the same time they are downloading. This way, network bandwidth is utilized as efficiently as possible. BitTorrent is designed so that as the number of people getting a certain file increases, the overall speed available will increase. (And trust me it works like a charm.)
Helpful Analogy
Visualize a group of people sitting at a table. Each person at the table can both talk and listen to any other person at the table. These people are each trying to get a complete copy of a book. Person A announces that he has pages 1-10, 23, 42-50, and 75. Persons C, D, and E are each missing some of those pages that A has, and so they coordinate such that A gives them each copies of the pages he has that they are missing. Person B then announces that she has pages 11-22, 31-37, and 63-70. Persons A, D, and E tell B they would like some of her pages, so she gives them copies of the pages that she has. The process continues around the table until everyone has announced what they have (and hence what they are missing.) The people at the table coordinate to swap parts of this book until everyone has everything. There is also another person at the table, who we’ll call ‘S’. This person has a complete copy of the book, and so that person doesn’t need anything sent to him. He responds with pages that no one else in the group has. At first, when everyone has just arrived, they all must talk to him to get their first set of pages. However, the people are smart enough to not all get the same pages from him. After a short while they all have most of the book amongst themselves, even if no one person has the whole thing. In this manner, this one person can share a book that he has with many other people, without having to give a full copy to everyone that’s interested. He can instead give out different parts to different people, and they will be able to share it amongst themselves. This person who we’ve referred to as ‘S’ is referred to as a ‘Seed.’
Dark Tip?! This is no Dark Tip!
If you’ve read this far, your’re probably wondering what’s so Dark about this Dark Tip. Well BitTorrent has been adopted by MANY people as an alternative to P2P clients such as Kazaa. Sites like SuprNova.org have even spawned applications to allow users to quickly grab pretty much ANY .torrent file they wish. Basically, if there’s some sort of media or content out there that you wish to have. With BitTorrent, you can- Its just that simple. And unlike Kazaa and many other P2P services, there are no “fake” or “corrupt” files. Everything is kosher and (usually) presented in the best quality available.
.Torrent to the rescue!
The way it works is that the user (You) goto a site or some other source and download a small metadata file with the extension ‘.torrent’ You then use a BitTorrent client to open that file and begin downloading it. The client will connect to the tracker and get the list of seeds/peers. It will then begin asking them what pieces of the file(s) they all have and then compare that to the pieces you have. If they have a piece that you don’t then your client will begin downloading it from them.
Client on Line 2
There are ALOT of BitTorrent clients out there for you to choose from. If you don’t want to listen to me, just go google for “bittorrent client” and watch the results pour in. I will tell you right now that I’ve used many and hands down my favorite and the one that is most respected in the “scene” is called Azureus and you can get it here.
Now here’s a quick glossary of some terms that you’ll likely hear thrown around when discussing BitTorrent (Courtesy of Brian’s BitTorrent Guide & FAQ) (You’re welcome Tyler).
BitTorrent Glossary
torrent
Usually this refers to the small metadata file you receive from the web server (the one that ends in .torrent.) Metadata here means that the file contains information about the data you want to download, not the data itself. This is what is sent to your computer when you click on a download link on a website. You can also save the torrent file to your local system, and then click on it to open the BitTorrent download. This is useful if you want to be able to re-open the torrent later on without having to find the link again.
In some uses, it can also refer to everything associated with a certain file available with BitTorrent. For example, someone might say “I downloaded that torrent” or “that server has a lot of good torrents”, meaning there are lots of good files available via BitTorrent on that server.
peer
A peer is another computer on the Internet that you connect to and transfer data. Generally a peer does not have the complete file, otherwise it would be called a seed. Some people also refer to peers as leeches, to distinguish them from those generous folks who have completed their download and continue to leave the client running and act as a seed.
seed
A computer that has a complete copy of a certain torrent. Once your client finishes downloading, it will remain open until you click the Finish button (or otherwise close it.) This is known as being a seed or seeding. You can also start a BT client with a complete file, and once BT has checked the file it will connect and seed the file to others. Generally, it’s considered good manners to continue seeding a file after you have finished downloading, to help out others. Also, when a new torrent is posted to a tracker, someone must seed it in order for it to be available to others. Remember, the tracker doesn’t know anything of the actual contents of a file, so it’s important to follow through and seed a file if you upload the torrent to a tracker.
reseed
When there are zero seeds for a given torrent (and not enough peers to have a distributed copy), then eventually all the peers will get stuck with an incomplete file, since no one in the swarm has the missing pieces. When this happens, someone with a complete file (a seed) must connect to the swarm so that those missing pieces can be transferred. This is called reseeding. Usually a request for a reseed comes with an implicit promise that the requester will leave his or her client open for some time period after finishing (to add longevity to the torrent) in return for the kind soul reseeding the file.
swarm
The group of machines that are collectively connected for a particular file. For example, if you start a BitTorrent client and it tells you that you’re connected to 10 peers and 3 seeds, then the swarm consists of you and those 13 other people.
tracker
A server on the Internet that acts to coordinate the action of BitTorrent clients. When you open a torrent, your machine contacts the tracker and asks for a list of peers to contact. Periodically throughout the transfer, your machine will check in with the tracker, telling it how much you’ve downloaded and uploaded, how much you have left before finishing, and the state you’re in (starting, finished download, stopping.) If a tracker is down and you try to open a torrent, you will be unable to connect. If a tracker goes down during a torrent (i.e., you have already connected at some point and are already talking to peers), you will be able to continue transferring with those peers, but no new peers will be able to contact you. Often tracker errors are temporary, so the best thing to do is just wait and leave the client open to continue trying.
downloading
Receiving data FROM another computer.
uploading
Sending data TO another computer.
share rating
Most clients will show you this stat. This is simply the ratio of your amount uploaded divided by your amount downloaded. The amounts used are for the current session only, not over the history of the file. If you achieve a share ratio of 1.0, that would mean you’ve uploaded as much as you’ve downloaded. The higher the number, the more you have contributed. If you see a share ratio of “oo”, this means infinity, which will happen if you open a BT client with a complete file (i.e., you seed the file.) In this case you download nothing since you have the full file, and so anything you send will cause the ratio to reach infinity. Note: The share rating is just a number that is displayed for your convenience. It does not directly affect any aspect of the client at all. In general, out of courtesy to others you should strive to keep this ratio as high as possible, of course.
distributed copies
In some clients, you will see the text “Connected to X seeds; also seeing X.XXX distributed copies.” A seed is a machine with the complete file. However, the swarm can collectively have a complete copy (or copies) of the file, and that is what this is telling you. Referring again to the “people at a table” analogy, consider the case where the book has 10 pages, and person A has pp.1-5 and B has pp.6-10. Collectively, A and B have a complete copy of the book, even though no one person has the whole thing. In other words, even if there are no seeds, as long as there is at least one distributed copy of the file everyone can eventually get a complete file. Meditate on this, the Zen of BitTorrent, grasshopper.
choked
This is a term used in the description of the BitTorrent protocol. It refers to the state of an uploader, i.e. the thread that sends data to another peer. When a connection is choked, it means that the transmitter doesn’t currently want to send anything on that link. A BT client signals that it’s choked to other clients for a number of reasons, but the most common is that by default a client will only maintain –max_uploads active simultaneous uploads, the rest will be marked choked. (The default value is 4 and this is the same setting that experimental client GUI lets you adjust.) A connection can also be choked for other reasons, for example a peer downloading from a seed will mark his connection as choked since the seed is not interested in receiving anything. Note that since each connection is bidirectional and symmetrical, there are two choked flags for each connection, one for each Tx endpoint.
interested
Another term used in the protocol specification. This is the corollary to the choked flag, in that interested refers to the state of a downloader with respect to a connection. A downloader is marked as interested if the other end of the link has any pieces that the client wants, otherwise the connection is marked as not interested.
snubbed
If your client has not received anything after a certain period of time, it will likely mark a connection as snubbed, in that the peer on the other end has chosen not to send in a while. See the definition of choked for reasons why an uploader might mark a connection as choked. The real function of keeping track of this variable is to improve download speeds. Occasionally the client will find itself in a state where even though it is connected to many peers, it is choked by all of them. The client uses the snubbed flag in an attempt to prevent this situation. It notes that a peer with whom it would like to trade pieces with has not sent anything in a while, and rather than leaving it up to the optimistic choking to eventuall select that peer, it instead reserves one of its upload slots for sending to that peer.
optimistic unchoking
Periodically, the client shakes up the list of uploaders and tries sending on different connections that were previously choked, and choking the connections it was just using. You can observe this action every 10 or 20 seconds or so, by watching the “Advanced” panel of one of the experimental clients.
Well that was a long tip, but I hope you liked it, and again if you have any ideas for future tips please send them my way and I’ll gladly add them to my queue. Thanks for reading and peace out-
-b

























Keep working, great job with this useful blog!
I am a newbie blogger and am looking around for ideas, really like some of yours.
Thanks for this! I’ve been looking all over the internet for this.