Bit Torrent Reference Guide

Thursday, December 07, 2006

µTorrent and BitTorrent Join Forces

This is Bram Cohen, the creator of the BitTorrent protocol, and Ludvig (Ludde) Strigeus, the writer of µTorrent.

Together, we are pleased to announce that BitTorrent, Inc. and µTorrent AB have decided to join forces. BitTorrent has acquired µTorrent as it recognized the merits of µTorrent's exceptionally well-written codebase and robust user community. Bringing together µTorrent's efficient implementation and compelling UI with BitTorrent's expertise in networking protocols will significantly benefit the community with what we envision will be the best BitTorrent client.

What does this mean for the µTorrent community? Not much, at least not at first. The intention is to maintain the website as it is, and keep the forums and community active. Moving forward behind the scenes, we will continue to develop µTorrent and will be using the codebase in other applications, especially ones where a fast, lightweight implementation is more suitable, such as embedded systems on TVs, cell phones, and other non-PC platforms.

The existent µTorrent and BitTorrent communities are immensely valuable to us, which is why we are announcing this here first to make sure you're all the first to know about the news. The plan is to continue to foster the health and growth of the community that has been critical to the success of µTorrent. Thank you in advance for your support.

Bram and Ludde

+++++

both Bram and Ludde are available now on IRC #utorrent and will be answering questions for the next few hours.

A new forum has been created - uTorrent/BitTorrent - please use this new forum for all topics related to the uTorrent acquisition

Saturday, July 29, 2006

Downloading torrents and sharing files

Using a web browser, users navigate to the site listing the torrent, download it, and open it in a BitTorrent client. After opening the torrent, the BitTorrent client connects to the tracker, which provides it with a list of clients currently downloading the file or files. A group of peers on a BitTorrent or P2P connected with each other to share a particular torrent is generally referred to as a swarm.

Initially, there may be no other peers in the swarm, in which case the client connects directly to the initial seeder and begins to request pieces. The BitTorrent protocol breaks down files into a number of much smaller pieces, typically a quarter of a megabyte (256 KB) in size. Larger file sizes typically have larger pieces. For example, a 4.37 GB file may have a piece size of 4 MB (4096 KB). Pieces are checked as they are received using a hash algorithm to ensure that they are error free.

As peers enter the swarm, they begin sharing pieces with one another, instead of downloading directly from the seeder. Clients incorporate mechanisms to optimize their download and upload rates, for example using a tit for tat scheme. Peers download pieces in a random order, to increase the opportunity to exchange data, which is only possible if two peers have a different subset of the file.

The effectiveness of the peer-to-peer data exchange depends largely on the policies used by clients to determine whom to send data to. Clients will prefer to send data to peers that send data back to them, which encourages fair sharing, but strict policies often result in suboptimal situations, where newly joined peers are unable to receive any data (because they don't have any pieces yet to share themselves) and two peers with a good connection between them do not exchange data simply because neither of them wants to take the initiative.

To counter these effects, the official BitTorrent client uses a mechanism called “optimistic unchoking”, where the client will reserve a portion of its available bandwidth for sending pieces to random peers (not necessarily known-good partners, so called prefered peers), in hopes of discovering even better partners and to ensure newcomers get a chance to join the swarm.

Friday, July 28, 2006

Creating and publishing torrents

To share a file or group of files through BitTorrent, clients first create a "torrent". This is a small file which contains meta information about the files to be shared, and about the host computer that coordinates the file distribution. The exact information contained in the tracker file depends on the version of the BitTorrent protocol. However, a torrent file always has the extension .torrent. Torrent files contain an "announce" section, which specifies the URL of the tracker, and an "info" section which contains (suggested) names for the files, their lengths, the piece length used, and a SHA-1 hash code for each piece, which clients should use to verify the integrity of the data they receive. Clients who have finished downloading the file may also choose to act as seeders, providing a complete copy of the file. After the torrent file is created, a link to it is placed on a website or elsewhere, and it is registered with a tracker. BitTorrent trackers maintain lists of the clients currently participating in the torrent. The computer with the initial copy of the file is referred to as the initial seeder.