Bit Torrent
BitTorrent — пиринговый сетевой протокол Коэна для кооперативного обмена файлами через Интернет.
Файлы передаются частями, каждый torrent-клиент, получая (закачивая) эти части, в это же время отдаёт (подкачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных.
Первый torrent-клиент «BitTorrent» был создан программистом Брэмом Коэном на языке Python 4 апреля 2001 года, запуск первой версии состоялся 2 июля 2001 года.
На сегодняшний день существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.
Принцип работы протокола
Перед началом скачивания клиент подсоединяется к трекеру (веб-сервер, осуществляющий координацию клиентов), сообщает ему свой адрес и хеш-сумму запрашиваемого файла, на что в ответ клиент получает адреса других клиентов, скачивающих или раздающих этот же файл. Далее клиент периодически информирует трекер о ходе процесса и получает обновлённый список адресов.
Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера, который лишь регулярно обновляет информацию о подключившихся к обмену клиентах и другую статистическую информацию.
Обмен сегментами ведётся по принципу «ты — мне, я — тебе» симметрично в двух направлениях и в случайном порядке. Клиенты периодически сообщают друг другу об имеющихся у них сегментах. Целостность закачанной информации проверяется по контрольным суммам (некоторое значение, рассчитанное по набору данных путём применения определённого алгоритма и используемое для проверки целостности данных при их передаче или хранении).
Основные качества протокола:
- Отсутствие очередей на скачивание.
- Файлы закачиваются небольшими фрагментами; чем менее доступен фрагмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
- Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
- Скачанные фрагменты становятся немедленно доступны другим клиентам.
- Контролируется целостность каждого фрагмента.
- В качестве объекта раздачи могут выступать несколько файлов (например, содержимое каталога).
Программы-клиенты:
Кроссплатформенные
- µTorrent — клиент BitTorrent для Windows и Mac OS X, отличающийся малым размером и высокой скоростью работы.
- Vuze — написан на языке Java, поэтому является кроссплатформенным. Поддерживает Tor и I2P. Нужно учесть, используемая им библиотека Eclipse Standard Widget Toolkit использует системнозависимые модули и должна компилироваться для каждой платформы отдельно.
- Deluge — кроссплатформенный клиент, написанный на языке Python; использует GTK
- Opera полностью поддерживает закачку торрентов, начиная с версии 9.0
- TorrentFlux (en) — написан на PHP, работает на удалённом Web-сервере как PHP-скрипт, позволяя не держать свой компьютер включённым постоянно, но при этом качать и раздавать торренты
GNU/Linux, UNIX
- KTorrent — использует библиотеку Qt; работает в среде KDE
- rTorrent — консольный клиент для UNIX/GNU+Linux, написанный на C++; использует библиотеки ncurses и libTorrent
- Transmission — клиент для Mac OS X, FreeBSD, OpenBSD, NetBSD, GNU/Linux и BeOS, использующий GTK,Qt, так же может работать через Web-интерфейс или вообще без GUI. Также может работать в консольном режиме и в режиме демона.
Windows
- uTorrent
- BitTorrent
- BitSpirit
- FlashGet
- Shareaza — поддерживает работу с несколькими файлообменными сетями, в том числе и BitTorrent
- Free Download Manager
Mac OS
- µTorrent
- Transmission