luckyea77 (luckyea77) wrote,
luckyea77
luckyea77

Как это работает? | BitTorrent



BitTorrent — это сетевой протокол для обмена файлами через Интернет. Он был создан американским программистом Брэмом Коэном, который написал первый torrent-клиент «BitTorrent» на языке Python в апреле 2001 года. Файлы по такому протоколу передаются частями, а каждый torrent-клиент, получая эти части, в то же время отдаёт их другим клиентам. Как же работает протокол BitTorrent — об этом в сегодняшнем выпуске!



Принцип работы протокола заключается в том, что нагрузка на распространителя файла уменьшается благодаря скачивающим клиентам. Они начинают обмениваться данными сразу же, даже если файл не докачан ими до конца.

Для работы BitTorrent, как правило, необходим трекер — специализированный сервер, работающий по протоколу HTTP. Он нужен, чтобы клиенты, именуемые пирами, могли найти друг друга. Перед началом скачивания клиент подсоединяется к трекеру по указанному в торрент-файле адресу, сообщает ему свой адрес и идентификатор файла, который требуется скачать (он именуется хеш-суммой). В ответ клиент получает адреса других клиентов, скачивающих или раздающих этот файл. Впоследствии клиент периодически информирует трекер о ходе процесса и получает обновлённые списки адресов. Пиры соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера. Он лишь хранит информацию, получаемую от клиентов. Существуют также и бестрекерные системы, в которых трекер доступен децентрализованно — на клиентах в форме распределённой хеш-таблицы.



При соединении клиенты сразу обмениваются информацией об имеющихся у них сегментах. Обмен данными начинается, когда каждая из сторон имеет сегменты, которых нет у другой. Пир, желающий скачать сегмент, именуемый также личем, посылает запрос, и получает его от соответствующего клиента. После этого он проверяет контрольную сумму сегмента. Если она совпала с той, что записана в торрент-файле, сегмент считается успешно скачанным, и клиент оповещает всех о наличии у него этого сегмента. Если же контрольные суммы различаются, то сегмент скачивается заново.

Количество переданных сегментов подсчитывается, и если одна из сторон обнаруживает, что передаёт в среднем больше, чем принимает, она блокирует на некоторое время отдачу другой стороне. Это делается для более эффективного использования канала отдачи. При выборе кого разблокировать, предпочтение отдаётся клиентам, которые передали много сегментов.

Порядок обмена выбирается таким образом, чтобы сначала клиенты обменивались наиболее редкими сегментами: таким образом повышается доступность файлов в раздаче. Сами сегменты делятся на блоки размером от 16 до 4000 килобайт. Одновременно могут запрашиваться блоки из разных сегментов.



Когда скачивание почти завершено, клиент входит в режим, именуемый end game. Он запрашивает все оставшиеся сегменты у всех раздающих клиентов, что позволяет избежать замедления почти завершенной закачки.

При получении полного файла клиент становится сидом, то есть переходит в специальный режим работы, в котором он только отдаёт данные. Далее сид периодически информирует трекер об изменениях в состоянии торрентов и обновляет списки IP-адресов.

Tags: технологии
Subscribe

Posts from This Journal “технологии” Tag

promo nemihail 11:01, yesterday 88
Buy for 20 tokens
И Даню бомбануло, он-то думал, что если он троллит российские власти, за что часто отхватывает от некоторых депутатов и прочих чиновников, которые, с его же слов, его ненавидят и при этом он держит нейтралитет в украинском вопросе, то проблем с пересечением границы у него быть не должно. А вот…
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 0 comments