BitTorrent (дословно «поток битов») — P2P-протокол, предназначенный для обмена файлами через интернет. BitTorrent был создан программистом Брэмом Коэном (англ. Bram Cohen).
Принцип работы протокола
Перед началом закачки, клиент подсоединяется к трекеру, сообщает ему свой адрес и хэш-сумму запрашиваемого файла, на что в ответ, клиент получает адреса других клиентов, скачивающих или раздающих этот же файл. Далее клиент периодически информирует трекер о своем прогрессе и получает обновленный список адресов. Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Неправильная настройка NAT или файрвола могут этому помешать.
При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Клиент, желающий скачать сегмент, посылает запрос и, если второй клиент готов отдавать, получает этот сегмент. После этого клиент проверяет контрольную сумму сегмента и оповещает всех присоединенных пиров о наличии у него этого сегмента.
Каждый клиент имеет возможность временно блокировать отдачу другому клиенту (англ. choke). Это делается для более эффективного использования канала отдачи. Кроме того, при выборе кого разблокировать предпочтение отдается пирам, которые сами передали этому клиенту много сегментов. Таким образом, пиры с хорошими скоростями отдачи поощряют друг друга по принципу «ты — мне, я — тебе».
Терминология
Раздача (англ. seeding) — процесс распространения файла по протоколу BitTorrent.
Пир (англ. peer — соучастник) — клиент, участвующий в раздаче. Иногда пирами называют только скачивающих участников.
Сид (англ. seeder — сеятель) — пир, имеющий все сегменты распространяемого файла, то есть либо начальный распространитель файла, либо уже скачавший весь файл.
Личер(англ. leech — пиявка) — пир, не имеющий пока всех сегментов, то есть продолжающий скачивание. Термин часто употребляется и в негативном смысле, который он имеет в других файлообменных сетях: пользователь, который отдает гораздо меньше, чем скачивает, подробнее см. личер.
Рой(англ. swarm) — совокупность всех пиров, участвующих в раздаче.
Доступность (англ. availability) (также distributed copies) — количество полных копий файла, доступных клиенту. Каждый сид добавляет 1.0 к этому числу, личеры увеличивают доступность в зависимости от количества скачанного, которого нет у других личеров. К примеру, если на раздаче есть один сид и два личера с 50%, и скачанные части равны между собой, то доступность равна 1.50.
Рейтинг (англ. share ratio) — отношение отданного к скачанному.
AnnounceОбращение клиента к трекеру. При каждом announce клиент передаёт на трекер информацию об объёмах им скачанного и отданного, a трекер передаёт клиенту список адресов других клиентов. Обращение клиента к трекеру происходит через определённые интервалы времени, которые определяются настройками клиента и трекера.
Трекер
Трекер (англ. tracker) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса и входящие порты клиентов и хэш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хэш-суммам нельзя. В практических реализациях, однако, трекер часто, помимо своей основной функции, выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключенных пиров и пр.
Программы-клиенты
Менеджер закачек FlashGet поддерживает закачку торрентов начиная с версии 1.80 Beta 1
Браузер Opera поддерживает закачку торрентов начиная с версии 9.0
Azureus — написан на языке Java, поэтому является кроссплатформенным.
BitComet — клиент для Windows. Бесплатен для некоммерческого использования.
BitTornado — кроссплатформенный клиент. Написан на языке Python.
µTorrent — небольшой бесплатный клиент для Windows
mlDonkey — кроссплатформенный клиент.
Deluge — клиент для GNU/Linux, написанный на языке Python, использует GTK.
Shareaza — клиент для Windows, поддерживает работу с несколькими файлообменными сетями, в том числе и BitTorrent.
CTorrent — консольный клиент для Unix/GNU+Linux. С 2004 года не разрабатывается.
XTorrent — клиент для Mac OS X
BitRocket - клиент для Mac OS X
KTorrent — использует библиотеку Qt, работает в среде KDE в *nix-системах.
rTorrent — консольный клиент для Unix/GNU+Linux, написан на C++, использует библиотеки ncurses, libTorrent.
TorrentFlux — написан на PHP, работает на удаленном Web-сервере как PHP-скрипт, позволяет не держать свой компьютер включенным постоянно, и при этом качать и раздавать торренты.
FoxTorrent — расширение для браузера Firefox, реализующее функции BitTorrent-клиента.
Возможно я скоро стану модератором на сайте с торрентами.. помогу чем смогу.