BitTorrent — децентрализованный P2P-протокол, предназначенный для обмена файлами через интернет. BitTorrent был создан программистом Брэмом Коуэном Общие особенности
- Отсутствие очередей на закачку.
- Файлы закачиваются небольшими, случайным образом выбранными сегментами.
- Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты мне, я тебе».
- Закачанные сегменты становятся немедленно доступны другим клиентам.
- Контролируется целостность каждого сегмента.
- В качестве объекта закачки могут выступать несколько файлов (например, содержимое каталога).
Файл метаданных
Bittorrent не имеет системы поиска: для каждого распространяемого файла создаётся файл метаданных с расширением torrent, который содержит следующую информацию:
- URL трекера (см. ниже).
- общую информацию о закачиваемом файле (имя, длину и пр.)
- контрольные суммы (точнее, хэш-суммы SHA1) сегментов закачиваемого файла.
Файлы метаданных могут распространяться через любые каналы связи — например, эти файлы (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS.
Клиент начинает закачку, получив каким-либо образом файл с метаданными, в котором есть ссылка на трекер.
Трекер
Трекер (англ. tracker) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты из разных сетей могли найти друг друга. Фактически, на трекере хранятся IP-адреса клиентов и хэш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хэш-суммам нельзя. В практических реализациях, однако, трекер часто, помимо своей основной функции, выполняет и функцию небольшого веб-сервера. Такой сервер предоставляет статистику закачек по разным файлам, хранит файлы метаданных, показывает текущее количество подключенных пиров и пр.
Работа без трекера
В новых версиях протокола были разработанны безтрекерные системы (trackerless), которые решают некоторые из предыдущих проблем. Отказ трекера в таких системах не приводит к автоматическому отказу всей сети.
Начиная с версии 4.2.0 официального клиента в нем реализована функция безтрекерной работы, базирующаяся на протоколе Kademlia. В таких системах трекер доступен децентрально, на клиентах, в форме распределенной хеш-таблицы (Distributed Hash Table).
На данный момент еще не все клиенты используют совсемтимый друг с другом протокол. Совместимы BitComet, µTorrent, KTorrent и официальный клиент
Программы-клиенты
Интернет-браузер Opera поддерживает закачку торрентов непосредственно, для работы с другими браузерами нужен специальный клиент.
Некоторые популярные клиенты:
Azureus
BitComet
µTorrent
при подготовке использованы материалы Википедии