BitTorrent (букв. англ. «битовый поток») — пиринговый (P2P) сетевой протокол Коэна для кооперативного обмена файлами через Интернет.
Файлы передаются частями, каждый torrent-клиент, получая (скачивая) эти части, в это же время отдаёт (закачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных.
Первый torrent-клиент «BitTorrent» был создан Брэмом Коэном на языке Python 4 апреля 2001 года, запуск первой версии состоялся 2 июля 2001 года.
Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.
Принцип работы протокола Перед началом скачивания клиент подсоединяется к трекеру, сообщает ему свой адрес и хеш-сумму запрашиваемого файла, на что в ответ клиент получает адреса других клиентов, скачивающих или раздающих этот же файл. Далее клиент периодически информирует трекер о ходе процесса и получает обновлённый список адресов.
Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера, который лишь регулярно обновляет информацию о подключившихся к обмену клиентах и другую статистическую информацию. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Неправильная настройка NAT или брандмауэра могут этому помешать.
При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Клиент, желающий скачать сегмент, посылает запрос и, если второй клиент готов отдавать, получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента и оповещает всех присоединённых пиров о наличии у него этого сегмента.
Каждый клиент имеет возможность временно блокировать отдачу другому клиенту (англ. choke). Это делается для более эффективного использования канала отдачи. Кроме того, при выборе — кого разблокировать, предпочтение отдаётся пирам, которые сами передали этому клиенту много сегментов. Таким образом, пиры с хорошими скоростями отдачи поощряют друг друга по принципу «ты — мне, я — тебе».
Обмен сегментами ведётся по принципу «ты — мне, я — тебе» симметрично в двух направлениях и в случайном порядке. Клиенты периодически сообщают друг другу об имеющихся у них сегментах. Обмен данными начинается, когда обе стороны в нём заинтересованы, то есть каждая из сторон имеет сегменты, которых нет у другой. Количество переданных сегментов подсчитывается, и если одна из сторон обнаруживает, что передаёт в среднем больше, чем принимает, она блокирует (англ. choke) отдачу. Таким образом, в протокол заложена защита от личеров.
При получении полного файла клиент переходит в специальный режим работы, в котором он только отдаёт данные (становится сидом).
Клиенты периодически информируют трекер об изменениях в состоянии закачек и обновляют списки IP-адресов.
Структура трафика Как и в других протоколах передачи файлов, трафик протокола BitTorrent можно разделить на служебный и собственно скачиваемые/отсылаемые данные.
Общие особенности - Отсутствие очередей на скачивание.
- Файлы закачиваются небольшими фрагментами; чем менее доступен фрагмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
- Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
- Скачанные фрагменты становятся немедленно доступны другим клиентам.
- Контролируется целостность каждого фрагмента.
- В качестве объекта раздачи могут выступать несколько файлов (например, содержимое каталога).
Протоколы и порты Клиенты соединяются с трекером по протоколу TCP. Входящий порт трекера: 6969. Клиенты соединяются друг с другом, используя протокол TCP. Входящие порты клиентов: 6881—6889. Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт. DHT-сеть в BitTorrent-клиентах использует протокол UDP. Кроме того, протокол UDP используется UDP-трекерами (поддерживается не всеми клиентами и не является официальной частью протокола) и для соединения клиентов друг с другом через UDP NAT Traversal (используется только в клиенте BitComet и не является официальной частью протокола).
Используйте порты отличные от этих:
411-413 | 6881-6889 | 6346-6347 | 1214 | 4662 | 6699 Файл метаданных Для каждого распространяемого файла создаётся файл метаданных с расширением .torrent, который содержит следующую информацию: * URL трекера; * общую информацию о закачиваемом файле (имя, длину и пр.); * Контрольные суммы (точнее, хеш-суммы SHA1) сегментов закачиваемого файла. Файлы метаданных могут распространяться через любые каналы связи: они (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS. Получив каким-либо образом файл с метаданными, клиент может начинать скачивание.
Программы-клиенты uTorrent — клиент BitTorrent для Windows и Mac OS X, отличающийся малым размером и высокой скоростью работы.
aria2(англ.) — поддерживает HTTP, FTP, BitTorrent; файлы Metalink 3.0
Vuze (старое название — Azureus) — написан на языке Java, поэтому является кроссплатформенным. Поддерживает Tor. Нужно учесть, используемая им библиотека Eclipse Standard Widget Toolkit использует системнозависимые модули и должна компилироваться для каждой платформы отдельно.
BitTyrant (en) — модифицированный вариант клиента Azureus 2.5
BitTornado — кроссплатформенный клиент, написанный на языке Python
Deluge — кроссплатформенный клиент, написанный на языке Python; использует GTK
FoxTorrent — расширение для браузера Mozilla Firefox, реализующее функции клиента BitTorrent
LeechCraft— кроссплатформенный клиент, существует плагин для поддержки BitTorrent
mlDonkey — кроссплатформенный клиент
Браузер Opera полностью поддерживает закачку торрентов, начиная с версии 9.0 (
запрещен к использованию на данном ресурсе)
TorrentFlux(en) — написан на PHP, работает на удалённом Web-сервере как PHP-скрипт, позволяя не держать свой компьютер включённым постоянно, но при этом качать и раздавать торренты
ABC — Yet Another Bittorrent Client, основан на BitTornado
GNU/Linux, UNIX BTPD — консольный клиент для Unix/GNU+Linux, написанный на C++; работает в режиме демона
CTorrent — консольный клиент для Unix/GNU+Linux, прекративший развитие в 2004 году
KTorrent — использует библиотеку Qt; работает в среде KDE
rTorrent — консольный клиент для UNIX/GNU+Linux, написанный на C++; использует библиотеки ncurses и libTorrent
Transmission — клиент для Mac OS X, FreeBSD, OpenBSD, NetBSD, GNU/Linux и BeOS, использующий GTK. Также может работать в консольном режиме и в режиме демона.
Bitflu — консольный клиент для Unix/GNU+Linux, написанный на Perl; работает в режиме демона, с поддержкой chroot окружения. Имеет веб-интерфейс, управляется через telnet.
Windows BitComet - менеджер закачек и клиент для p2p сетей BitTorrent и eDonkey2000. Работает в операционных системах семейства Windows. Содержит рекламу в виде баннеров.
BitSpirit- мощный и удобный в использовании клиент BitTorrent, который не только работает по этому протоколу, но также имеет ряд дополнительных возможностей
FlashGet - бесплатная компьютерная программа, менеджер закачек с закрытым исходным кодом для ОС Microsoft Windows. (запрещен к использованию на данном ресурсе)
GetRight- условно-бесплатный менеджер закачек для Windows, разработанный компанией «Headlight Software». (запрещен к использованию на данном ресурсе)
Shareaza — свободный файлообменный клиент для всех[уточнить!] версий Microsoft Windows с поддержкой протоколов Gnutella, Gnutella2, eDonkey2000 (сеть), BitTorrent, FTP и HTTP. Умеет работать с magnet-ссылками, ed2k-ссылками и piolet-ссылками, а также с Gnutella-ссылками. Переведён на 27 языков.
Free Download Manager- свободный менеджер закачек с открытыми исходными кодами. Поддерживает закачку FLV-видео с YouTube, Google Video и других сайтов. Поддерживает конвертирование FLV. Поддерживает BitTorrent. Оффлайн-браузер. (запрещен к использованию на данном ресурсе)
Mac OS XTorrent- продвинутый BitTorrent-клиент. Имеет удобный интерфейс и хороший набор функций, некоторые из которых не имеют аналогов в других менеджерах.
Transmission- свободный легковесный BitTorrent клиент. Свободное программное обеспечение, большей частью под лицензией GNU GPL с небольшими фрагментами под лицензией MIT. Transmission возможно запустить на Mac OS X (интерфейс Cocoa), других Unix-подобных операционных системах (интерфейс GTK+), а также на BeOS/ Zeta (нативный интерфейс).
BitRocket- замечательный open-source торрент-клиент.
Tomato Torrent-менеджер закачек файлов для Mac OS в файлообменных сетях Torrent.
Acquisition - торрент-клиент для Mac OS
Symbian OS SymTorrent for S60 - полноценный torrent клиент для смартфонов
Как избежать потери профиля?
Во избежание захвата ("угона") Вашего профиля: 1. Не давайте никому информацию о Вашем логине и пароле. 2. Делая скриншоты клиента, не забывайте закрашивать поле со ссылкой на раздачу, т.к. там отображается Ваш пасскей (Passkey), являющийся Вашим персональным идентификатором. Злоумышленники не преминут воспользоваться Вашей оплошностью и завладеть Вашим профилем. 3. Если Вас просят дать прямую ссылку на закачку, не делайте этого, т.к. к ссылке приписывается Ваш пасскей, т.е. получивший ее человек может качать информацию под Вашим аккаунтом.
Уважаемые Пользователи!
Не забывайте о существовании на данном ресурсе Правил поведения на трекере, которые Вы должны знать и придерживаться!