Изменения

Перейти к: навигация, поиск

Peer-to-peer

16 байт добавлено, 23:21, 26 января 2017
Как работает BitTorrent
Задача клиента --- получить от сервера информацию о пирах через HTTP соединение и далее, используя TCP соединение связываться с пирами для получения/передечи данных.
Рассмотрим пример последовательностидействий, следуя которой можно создать примитивный BitTorrent клиент.
Для начала, можете найти в интернете любой .torrent файл. В таком файле содержится закодированая информация о торренте. В данном случае используется Bencoding кодирование про которое можно подробнее прочитать [https://wiki.theory.org/BitTorrentSpecification#Bencoding здесь], для этого, например есть библиотека для питона bencode 3rd party library(pip install bencode).
* Сообщение Request стоить посылать после того, как получили разрешение у пира(Unchoke) на конкретный кусочек, хвост у этого типа сообщения состоит за 4 байтов для номера кусочка, 4 байта для смещения внутри кусочка в байтах, и 4 байта для размера блоков, которыми вы хотите получать данные (обычно это 2^14).
* Сообщение Piece является ответом на Request и содержит данные одного блока. Хвост состоит из 4 байтов на номер кусочка, 4 байтов на смещение (как в предыдущем типе) и последовательностью байтов описывающей данные блока.
Этого уже вполне хватает, чтобы обмениваться файлами с другими пирами.
==Friend-to-Friend==
41
правка

Навигация