Протокол Bit-Torrent. Доклад на семинаре по специальности. Студент гр. 4057/2 Леонид Машинский 15.11.11.

Презентация:



Advertisements
Похожие презентации
Trackers (трекер) Подготовил Павел Олейник Павел Олейник.
Advertisements

Файловые архивы «Можно собирать хлам, а можно коллекционировать вещи!»
ИНФОРМАЦИОННЫЕ КОМПЬЮТЕРНЫЕ СЕТИ 9 КЛАСС. КОМПЬЮТЕРНАЯ СЕТЬ (англ. Net) – это совокупность компьютеров и других устройств, соединенных линиями связи и.
Сложностные характеристики статистических скрытых каналов Автор: Свинцицкий Антон Игоревич Факультет вычислительной математики и кибернетики Московского.
Компьютерные сети. Клиент-серверная архитектура Локальные компьютерные сети «общая шина»«кольцо» «звезда» «дерево»
Наиболее популярные ресурсы Интернета это Всемирная паутина Электронная почта Файловые архивы Общение в Интернете Мобильный Интернет.
Пакеты передачи данных Виды сетевых протоколов. В локальной сети данные передаются от одной рабочей станции к другой блоками, которые называют пакетами.
Компьютерные сети и Интернет Локальные сети. Локальные сети. Для связи с внешним (периферийными)устройствами компьютер имеет порты, через которые он способен.
Сети peer-to-peer. Достоинства и недостатки. Виноградов Андрей ИТО-4-07.
Основы работы на ЭВМ Занятие 3: протоколы передачи данных Фенстер Александр Геннадьевич
Автор: Сергеенкова И.М., ГБОУ Школа 1191, г. Москва.
Коммуникационные технологии. Передача информации. Локальные компьютерные сети.
Тест по информатике. 1. Что называется файлом? 1.программа, которая переводит язык программирования в машинный код 2.программа, которая служит для подключения.
МБОУ СОШ 6 г. Реутов. МОУ СОШ 6 г. Реутов Компьютерная сеть – это система компьютеров, связанная каналами передачи информации.
Физические модели баз данных Файловые структуры, используемые для хранения информации в базах данных.
Выполняла студентки группы 19D-411: Макущенко Мария.
Компьютерные сети Адресация в Интернете План 1.URL: понятие, типы, структура. 2.Сетевой порт. 3.Практикум.
Учитель информатики Трашков О.Л.. Для оперативного обмена информацией и совместного использования общих ресурсов компьютеры объединяют в сеть. Ресурсами.
Передача информации. Отправитель информации Получатель информации Канал передачи информации.
Технические возможности. Наши цели Максимальная гибкость Максимальная скорость считывания и обработки данных Стабильность работы Максимальная простота.
Транксрипт:

Протокол Bit-Torrent Доклад на семинаре по специальности Студент гр. 4057/2 Леонид Машинский

Содержание Введение История Основные принципы работы o Файл метаданных o Трекер o Алгоритм обмена данными Элементы протокола Расширения Работа без трекера Классификация трекеров Вопросы легальности Программное обеспечение Заключение Л. Машинский, гр. 4057/22

Введение (1) Задача: передать один или несколько файлов от одного пользователя к другому через Интернет. Решение: HTTP или FTP сервер: файлы хранятся на сервере, пользователи одновременно скачивают файлы Проблемы: Пропускной канал сервера не бесконечен – чем больше пользователей, тем меньше скорость скачивания каждого Если сервер «упадет» - скачивание станет невозможно Вывод: нужна альтернатива, которой и стали пиринговые сети, и BitTorrent в частности. BitTórrent (англ. «битовый поток») пиринговый (p2p) сетевой протокол для кооперативного обмена файлами через Интернет Л. Машинский, гр. 4057/23

Введение (2) Пиринговая (от англ. peer-to-peer, P2P равный к равному) сеть - это компьютерная сеть, основанная на равноправии участников. выделенные серверы отсутствуют каждый узел (peer) – как клиент, так и сервер. файлы хранятся на каждом узле скачивание может производиться с любого количества узлов одновременно Л. Машинский, гр. 4057/24 Пиринговая сеть Децентрализованная Частично децентрализованная (гибридная) Существуют сервера для вспомогательной работы, сопутствующей файлообмену

История Napster – гг. – первый широко используемый сервис свободного обмена музыкой. Остановлен по решению суда. Kad – 2002г – децентрализованная сеть поиска, используется совместно с сетью обмена eDonkey. Основана на реализации распределенной хэш таблицы Kademlia. eDonkey – частично децентрализованная сеть обмена файлов, серверы используются только для координации клиентов. Отсутствует возможность модерации контента. Direct Connect – гибридная сеть, состоящая из серверов – хабов, и клиентов. Имеет развитый чат, наличие операторов, контролирующих соблюдение правил чата и файлообмена. Отсутствие шифрования данных. BitTorrent – гибридная сеть,состоящая из серверов – трекеров, и клиентов. Протокол BitTorrent разработан в 2001г. Бремом Коэном Л. Машинский, гр. 4057/25

Общий принцип работы сети BitTorrent (1) Задача: передать один или несколько файлов от одного пользователя к другому через Интернет. Решение при помощи сети BitTorrent: 1.Источник файла/ов создает файл метаданных. Это множество файлов теперь называется раздачей. 2.Источник передает пользователям файл метаданных, связывая его с сервером – трекером. 3.При помощи торрент клиента источник «встает на раздачу», и становится сидом. Сид, сидер (англ. seeder сеятель) пир, имеющий файл в полном объеме, источник раздачи. 4.Остальные пользователи начинают скачивать файлы, используя клиент, и становятся личерами Лич, личер (англ. leech пиявка) пир, не имеющий пока файлов целиком, т.е. продолжающий скачивание. 5.Личеры, полностью скачавшие файлы, становятся сидами Л. Машинский, гр. 4057/26

Общий принцип работы сети BitTorrent (2) Преимущества: Устранены проблемы решения «сервер-клиент» Эффективный распределенный обмен o Раздача делится на части одинакового размера – сегменты (англ. pieces). По умолчанию размер =256Кб o Сегменты делятся на части одинакового размера – блоки (англ. blocks). Размер Кб o Каждый пир скачивает каждый сегмент только один раз (при отсутствии ошибок) Проверка целостности скачанной раздачи и каждого сегмента в отдельности Отстутствие очередей и ограничений на скорость скачивания (в сравнении с eDonkey и DC сетей с квотами) Возможность создания сообщества на основе трекера o Контроль раздаваемого материала Л. Машинский, гр. 4057/27

Файл метаданных -словарь в bencode формате с расширением.torrent Содержит метаданные различного типа: информация о файлах в раздаче имена размер расположение хэш файлов и раздачи в целом ссылки на торрент трекеры данные используемые расширениями поддержка альтернативных протоколов обмена дополнительные опции Л. Машинский, гр. 4057/28

Кодирование bencode Использует числа и ASCII символы Прост в кодировании и декодировании Легко расширяется Поддерживаемые типы: Целое число o Синтаксис: i e o Примеры: i30e, i-42e, i0e Строка байтов o Синтаксис - : o Примеры: 6:primat, 0: Л. Машинский, гр. 4057/29

Кодирование bencode (2) Поддерживаемые типы: Список значений o Синтаксис – l e o - последовательность bencoded значений o Пример: li30e3:fooi0ee Словарь o синтаксис – d e o - список пар o Ключ - байтовая строка o Ключи располагаются в лексикографическом порядке o Пример: d3:bari30e3:fooi239ee Л. Машинский, гр. 4057/210

Структура файла метаданных announce – URL трекера info – словарь o name - имя файла/имя корневой директории o piece length - размер сегмента. Наиболее используемый 2 18 байт = 256 Кб o pieces - список хешей сегментов SHA-1 o length - размер файла в байтах, если файл один в раздаче o files - список словарей для каждого файла в раздаче. Структура каждого словаря: path - путь до файла относительно корневой директории length - размер файла в байтах Все строки кодируются в UTF Л. Машинский, гр. 4057/211

Примеры структуры файла метаданных Один файл Несколько файлов { 'announce': ' 'info': { 'name': Disk.iso', 'piece length': , 'length': , 'pieces': } { 'announce': ' 'info': { 'name': 'directoryName', 'piece length': , 'files': [ {'path': '111.txt', 'length': 111}, {'path': '222.txt', 'length': 222} ], 'pieces': } Л. Машинский, гр. 4057/212

BitTorrent-трекер веб-сервер, осуществляющий координацию клиентов BitTorrent. Чаще всего работает при поддержке веб-сайта для пользователей – форума или каталога. Роль и задачи: «связывает» клиентов друг с другом при отключении новые клиенты не могут друг друга «найти», при этом уже соединившиеся продолжают обмениваться файлами сохраняет в базе данных статистику раздач o объёмы переданных данных o количество узлов на каждой раздаче Л. Машинский, гр. 4057/213 Трекер никак не участвует в файлообмене и не хранит файлы из раздач! Трекер (англ. tracker) - от track – отслеживать

Этапы работы протокола Обновление (англ. announce) o Клиент подсоединяется к трекеру, сообщая информацию о файле o Трекер сообщает клиенту адреса других клиентов Основной этап o Клиенты обмениваются сегментами o Клиенты информируют трекер о ходе процесса и обновляют список адресов Завершение (режим End Game) Сидирование Л. Машинский, гр. 4057/214

Этап обновления (1) HTTP протокол между клиентом и трекером Параметры запроса Л. Машинский, гр. 4057/215 BitTorrent клиент Трекер GET запрос info_hash peer_id ip/dns port uploaded downloaded left event SHA-1 хэш уникальный ID клиента для данной раздачи адрес клиента (необязателен) порт, который слушает клиент. (обычно ) общее количество скачанных и отданных «данных» со старта закачки количество байт, оставшееся клиенту до завершения Тип события: пустой, started, stopped или completed. Started/stopped – клиент подключился/отключился от раздачи Completed – клиент завершил скачивание

Этап обновления (2) Л. Машинский, гр. 4057/216 Ответ трекера – bencoded словарь 1.Ошибка: o failure reason – строка с информацией 2.Успех : o interval - интервал времени в секундах до следующего запроса o peers – список словарей. Структура словаря каждого пира: peer_id – уникальный идентификатор пира ip – ip адрес пира port – порт пира

Протокол scrape -дополнительный протокол запроса клиента к трекеру, при котором трекер сообщает клиенту общее количество сидов и пиров на раздаче В отличие от announce, запрос scrape: не имеет прямого отношения к скачиванию раздачи является необязательным может запрашиваться и для остановленных в клиенте заданий отнимает меньше ресурсов у клиента и трекера может одним запросом получить информацию сразу по нескольким торрентам (multi-scrape) Л. Машинский, гр. 4057/217 Scrape – соскоб (от прагерм. skrapojan «скрести»)

Этап обмена данными На низком уровне используется протокол TCP Соединения между пирами симметричны Протокол оперирует сегментами и блоками по индексу Обмен ведется блоками Стадии обмена Приветствие - соединение пиров, обмен информации об имеющихся сегментах Обмен данными по специальному алгоритму Проверка скачанных данных Л. Машинский, гр. 4057/218 Пир

Алгоритм обмена данными (1) Входные данные: Соединение между 2-мя клиентами: «мы» и пир Параметры соединения с каждой стороны: choking – «мы» душим пира, т.е не желаем передавать ему данные interested – «мы» заинтересованы в пире, у него есть сегменты или блоки, которые «нам» нужны Изначально все друг друга душат, и не интересуются am_choking := 1, am_interested := 0 peer_choking := 1, peer_interested := Л. Машинский, гр. 4057/219 Сhoke – душить (cheek – заслонка)

Алгоритм обмена данными (2) Основная идея алгоритма: Л. Машинский, гр. 4057/220 Пока есть не все сегменты 1.Обновление параметров соединения обновление битов заинтересованности при появлении у пира требуемых сегментов (даже если он нас душит) обновление битов удушения по эвристикам и правилам 2.Передача данных 1.условие передачи от нас к пиру am_choking = 0, peer_interested = 1 2.выбор сегментов для обмена приоритет редким сегментам среди редких – выбор случаен

Обновление состояния удушения Каждый пир должен стремиться отдать столько же сколько и скачать – работает идиома «ты мне – я тебе» (англ. Tit-for-tat-ish) Если пир нарушает эту идиому – к нему применяется удушение – временная блокировка отдачи. Разблокировка происходит как только пир выравнивает отношение скачанного к отданному (англ. upload rate). Оптимистическая разблокировка (англ. optimistic unchoking) o Всегда есть пир разблокированный независимо от upload rate o Этот пир регулярно меняется каждые 30 сек Проблема «пренебрежения» (англ. anti-snubbing) - все пиры в состоянии choking с нами. o Если пир не передает нам данные больше минуты, он нами пренебрегает: прекращаем ему передавать в ответ o Мы получим хотя бы один optimistic unchoke и продолжим скачивание Л. Машинский, гр. 4057/221

Протокол обмена данными 1.Приветствие (англ. Handshaking – рукопожатие) o префикс – ASCII символ с кодом 19 o строка BitTorrent protocol o SHA-1 hash в bencoded форме из метафайла o peer id 2.Обмен сообщениями o Keepalives – сообщения длины 0, для поддержания соединения. Обычно посылаются с таймаутом 2 минуты o Non-keepalives – сообщения ненулевой длины. Состоят из типа и данных. Тип – число от 0 до 8, размер – байт. Размер данных зависит от типа Л. Машинский, гр. 4057/222

Типы сообщений 1.choke(0), unchoke(1), interested(2), not interested(3). Сопутствующие данные отсутствуют. 2.bitfield(4). Посылается единожды в начале. Данные – битовая маска сегментов, имеющихся у пира. 3.have(5) – информирует пира о новом полученном и проверенном сегменте. Данные – число, индекс сегмента. 4.request(6) – запрос блока. Данные – индекс сегмента, смещение и размер. 5.piece(7) – получение части сегмента. Данные – индекс сегмента, смещение, данные 6.cancel(8) – отмена запроса. Данные - индекс, смещение, размер 7. (9-255) – сообщения доступные расширениям Л. Машинский, гр. 4057/223

Режим End Game Специальный режим в конце скачивания Клиент запрашивает все оставшиеся блоки у всех подключенных пиров После получения блока отменяет запрос всем остальным пирам Условие входа не фиксировано спецификацией. Варианты: 1.Все сегменты запрошены 2.Кол-во оставшихся блоков меньше кол-ва передаваемых блоков, но не больше чем Л. Машинский, гр. 4057/224

Режим сидирования Режим клиента, когда он владеет всеми сегментами в раздаче. отдает данные производит обновление на трекере не делает choke по рейтингу Режим супер-сида (super-seed mode) Сид маскируется под пира, не имеющего никаких сегментов. При подключении пира, оповещает его о наличии единственного сегмента, которого еще ни у кого нет. Разные пиры получают разные сегменты Режим отлично подходит для старта большой раздачи с единственным источником Время первого скачивания раздачи уменьшается в 1,5-2 раза Л. Машинский, гр. 4057/225

Расширения протокола Расширения поддерживаются различными клиентами Определение поддерживаемых расширений во время приветствия – новое тип сообщения extended, данные – 64 бита – маска поддерживаемых расширений Официальные расширения – поддерживаются всеми клиентами o Fast Peers Добавляет сообщения: Have All (0x0E), Have None (0x0F), Suggest piece (0x0D), Reject Request (0x10), Allowed Fast (0x11) o Distributed Hash Table – расширение безтрекерного обмена o Шифрование соединения Неофициальные расширения o WebSeeding o Extension protocol o BitTorrent Location protocol o BitComet extension protocol o Azureus messaging protocol Л. Машинский, гр. 4057/226

Безтрекерный обмен Реализован при помощи расширений 1.DHT – Distributed Hash Table – механизм обнаружения и соединения пиров, в основе - реализация Kademlia 2.PEX – Peer exchange – расширение протокола для обмена списками известных пиров 3.Magnet links – ссылка на файлы, находящиеся у источника в p2p сети Л. Машинский, гр. 4057/227

Классификация трекеров Большая часть трекеров – с регистрацией по приглашениям Трекеры с регистрацией учитывают отношение скачанного к розданному – рейтинг. o Пользователям приходится находиться на раздаче o Почти нет мертвых раздач Пути окупаемости затрат на содержание трекера o Реклама o Продажа рейтинга o Продажа инвайтов Л. Машинский, гр. 4057/228 Трекеры Без регистрации С регистрацией Свободная регистрация Регистрация по приглашениям Большинство трекеров работают только благодаря энтузиазму владельцев и добровольным пожертвованиям пользователей!

Вопросы легальности Файлообмен в сетях BitTorrent трудноконтролируем, причем только через трекеры. Безтрекерный обмен неподвластен контролю. Дилемма: Разрешить трекеры – допустить пиратство и нарушение авторского права. Запретить трекеры – уничтожить очень удобный доступ обмена легальной информацией. Формально, протокол и трекеры НЕ нарушают никаких законов. Примеры: Закрытие Napster Судебный процесс над создателями ThePirateBay.org Перспективы развития трекеров в России Л. Машинский, гр. 4057/229

Программное обеспечение Торрент трекеры o XBT Tracker (XBTT) o OpenTracker o Bitstorm o MonoTracker Торрент клиенты o μTorrent o BitTorrent o Vuze/Azureus o BitComet o Transmission o Xunlei Л. Машинский, гр. 4057/230 Подробнее:

Заключение BitTorrent – очень перспективная технология файлообмена Плюсы o Поддержка избыточности данных o Большой кпд использования интернет канала, малый объем передаваемой служебной информации o Отсутствие очередей o Гибкость протокола, поддержка расширений o Возможность контроля раздаваемого материала Минусы o Отсутствие анонимности o Отсутствие поиска из клиента o Проблема личеров o Отсутствие точного учета трафика 90% мирового интернет трафика проходит через сети BitTorrent! Л. Машинский, гр. 4057/231

Литература 1.The BitTorrent Protocol Specification BitTorrent Protocol Specification Index of BitTorrent Enhancement Proposals Л. Машинский, гр. 4057/232

Спасибо за внимание! Л. Машинский, гр. 4057/233