Торренты - будущее P2Pсетей (обзор протокола BitTorrent)
Первоначально Интернет не был приспособлен для обмена файлами. Максимум, что могли себе позволить пользователи на заре развития Всемирной паутины, - это передача текстовых сообщений. Собственно, для этого он и создавался. Но Сеть и не думала топтаться на одном месте, развиваясь и эволюционируя. Совершенствовались способы доступа, прогрессировали технологии. Так, модемы сменились на выделенные линии и ADSL, появилась пакетная система обмена файлами. Интернет вырос в огромную сеть, охватывающую весь мир, и пользователи, конечно же, поняли, что могут обмениваться не только текстовой информацией, но и куда более крупными файлами: музыкой, видео, большими архивами и другим. Так Интернет стал настоящей «скатертью-самобранкой» в сетевом мире, а самые продвинутые пользователи начали задумываться о вопросе оптимального обмена файлами. FTPбыли удобны лишь до того момента, пока не изобрели программы для прямого подключения P2P без удаленного сервера как посредника. А затем настало время развития торрентов - новой ступени эволюции в среде обмена файлами между пользователями. P2P-сети - это компьютерные сети, основанные на равноправии участников.
Что такое торренты и откуда они родом? BitTorrent является P2P-протоколом, и его рождению мы обязаны программисту Брэму Коэну. Если обратиться к "Википедии", то можно узнать, что P2P-сети (от англ. peer-to-peer) - это компьютерные сети, основанные на равноправии участников. В таких сетях отсутствуют выделенные серверы, а каждый узел является как клиентом, так и сервером. В отличие от архитектуры «клиент - сервер» такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов. В нашем случае важен именно способ обмена файлами. Он происходит без прямого участия серверов, что позволяет исключить фактор недоступности ресурса. Процесс происходит сразу между несколькими пользователями с обеих сторон. Изначально существует лишь один «владелец» файла - Seeder. Он создает торрент и выкладывает специально сгенерированный файл на одном из серверов. В этом файле содержится информация, которая требуется клиенту (специальной программе) для начала процесса закачивания: адрес, размер блоков и т. п. Данный процесс называется раздачей. Человек, скачивающий файл у «сидера», называется Peer, что переводится с английского как «равный» или «соучастник». Количество одновременных «пиров» может быть ограничено разными условиями (например, настройки сервера). Первоначальная закачка торрента является самой медленной частью обмена, так как сидеру приходится делить свой upload-канал между несколькими пользователями. Но как только хоть один из них скачает файл, он также становится «сидером». Таким образом, постепенно количество пользователей, раздающих файл, растет и даже может превысить количество принимающих. Кроме того, учитывая то, что при создании торрента файлы разбиваются на несколько блоков, сидерами могут выступать и те, кто еще не скачал весь файл, но скачал его часть. Также важно то, что владелец файла, тот, который создал торрент, может уходить в офлайн, а раздавать файл будут оставшиеся «сидеры». Цепочка прервется лишь тогда, когда «сидеров» в онлайне не останется вообще.
Ближайший родственник торрентов - это сети eDonkey, Gnutella и другие аналогичные им. BitTorrent схож с ними по принципу действия, но различен по содержанию. Он не требует подключения к какой-либо сети. Для его работоспособности достаточно организовать небольшой, маломощный сервер с установленным трекером. Кроме того, BitTorrent фактически относится к сетям децентрализированного типа (в то время как eDonkey - централизированная сеть). Кстати, схема действия Direct connect «хабов» также аналогична вышеперечисленным сетям. Таким образом, можно сказать, что BitTorrent является наиболее независимой от сторонних условий протокол. Тем не менее для публикации информации о доступном файле требуются специальные серверы - трекеры (от англ. tracker), формально заменяющие центральный сервер. По сути, они представляют собой каталог доступных в данный момент торрентов, прикрепленных к этому серверу. Особенно такая структура полезна в локальных сетях, где все торренты являются приватными и не доступны для внешней сети. На всех трекерах действуют схожие правила. В первую очередь это касается негласного (хотя зачастую оно внесено в правила трекера) правила о том, что необходимо отдавать столько же, сколько и взял. Таким образом, рейтинг должен быть не отрицательным (больше единицы) или же выше определенного уровня (например 0,5). Рейтинг высчитывается путем простого деления количества скаченного (download) на количество отданного (upload). Пользователь, отдающий гораздо меньше, чем скачивающий, называется «личером» (от англ. leech - пиявка).
- клиенты соединяются с трекером по протоколу TCP. Входящий порт трекера: 6969;
- клиенты соединяются друг с другом, используя протокол TCP. Входящие порты клиентов: 6881-6889;
- номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт;
- DHT-сеть в BitTorrent-клиентах использует протокол UDP;
- протокол UDP также используется сторонними разработками в среде трекеров, не являющимися официальной частью протокола.
Для того чтобы скачать на том или ином трекере файл, требуется регистрация. После регистрации каждому пользователю присваивается личный идентификационный номер, на основе которого будет высчитываться рейтинг. Дальнейший процесс предельно прост. Пользователю требуется всего лишь найти нужную тему на форуме, скачать *.torrent-файл и запустить его в программе клиента. При желании каждый пользователь может опубликовать свой торрент. Не так сложно и создать свой собственный трекер. Для этого нужно иметь сервер (желательно работающий круглосуточно) и соответствующий движок. Последний можно бесплатно скачать из Интернета. Существует несколько способов реализации трекера: специально написанный для трекера движок, надстройка на уже существующий форум, а также отдельный веб-сервер в виде модуля для стороннего HTTP-сервера. В данный момент наибольшей популярностью пользуется TorrentPier, устанавливающийся на PHPbb. Примером отдельного движка для торрент-трекера является TBDev.
Стоит ли использовать BitTorrent или нет, решать каждому в отдельности. Эта сеть еще не стала мировым стандартом. Но она намного прогрессивнее многих других схожих технологий и имеет широкое будущее. Возможно, когда-нибудь она укрепится в сознании пользователей и вытеснит FTP. В любом случае, остановить ее развитие уже невозможно.
Новичкам рекомендую также сайт торрент трекеры
ОтветитьУдалить