Это цитата сообщения
Roderichko Оригинальное сообщениеЧто такое Битторрент (BitTorrent) и с чем его едят?

Всем привет! Сегодня попытаюсь подробно рассказать об очень популярном способе обмене файлами в международной помойке - поведаю о торентах.
BitTorrent (дословно «поток битов») — P2P-протокол, предназначенный для обмена файлами через интернет. BitTorrent был создан программистом Брэмом Коэном, на языке Python 4 апреля 2001 года, запуск первой версии состоялся 2 июля 2001 года. Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.
Файлы передаются частями, каждый torrent-клиент, получая (закачивая) эти части, в это же время отдаёт (подкачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных.
Терминология
• Раздача (англ. seeding) — процесс распространения файла по протоколу BitTorrent.
• Пир (англ. peer — соучастник) — клиент, участвующий в раздаче. Иногда пирами называют только скачивающих участников.
• Сид, иногда сидер (англ. seeder — сеятель) — пир, имеющий все сегменты распространяемого файла, то есть либо начальный распространитель файла, либо уже скачавший весь файл.
• Личер (англ. leech — пиявка) — пир, не имеющий пока всех сегментов, то есть продолжающий скачивание. Термин часто употребляется и в негативном смысле, который он имеет в других файлообменных сетях: пользователь, который отдает гораздо меньше, чем скачивает.
• Рой (англ. swarm) — совокупность всех пиров, участвующих в раздаче.
Доступность (англ. availability), или distributed copies — количество полных копий файла, доступных клиенту. Каждый сид добавляет 1,0 к этому числу; личеры увеличивают доступность в зависимости от количества скачанного, которого нет у других личеров. К примеру, если на раздаче есть один сид и два личера, скачавшие по 50% файла (скачанные части равны между собой), то доступность равна 1,50.
• Рейтинг (англ. share ratio) — отношение отданного к скачанному.
• Анонс (англ. announce) — обращение клиента к трекеру. При каждом анонсе клиент передаёт на трекер информацию об объёмах им скачанного и отданного, a трекер передаёт клиенту список адресов других клиентов. Обращение клиента к трекеру происходит через определённые интервалы времени, которые определяются настройками клиента и трекера.
• URL анонса (англ. announce URL) — адрес трекера, к которому клиент делает анонс. Во многих клиентах называется «Tracker URL». Может включать «passkey» — уникальный код, назначаемый трекером для аккаунта пользователя, помогающий идентифицировать его на трекере (добавляется к URL анонса в самом *.torrent-файле).
Общие особенности
• Отсутствие очередей на закачку.
• Файлы закачиваются небольшими сегментами; чем менее доступен сегмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
• Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
• Закачанные сегменты становятся немедленно доступны другим клиентам.
• Контролируется целостность каждого сегмента.
• В качестве объекта закачки могут выступать несколько файлов (например, содержимое каталога).
Протоколы и порты
Клиенты соединяются с трекером по протоколу TCP.
Клиенты соединяются друг с другом, используя протокол TCP.
Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт.
DHT (Distributed hash table) — это протокол, позволяющий битторрент клиентам находить друг друга без использования трекера.
Клиенты с поддержкой DHT образуют общую DHT сеть, и помогают друг другу найти участников одних и тех же раздач. DHT использует UDP протокол.
Файл метаданных
Для каждого распространяемого файла создаётся файл метаданных с расширением .torrent, который содержит следующую информацию:
• URL трекера;
• общую информацию о закачиваемом файле (имя, длину и пр.);
• контрольные суммы (точнее, хэш-суммы SHA1) сегментов закачиваемого файла.
Файлы метаданных могут распространяться через любые каналы связи — например, они (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS.
Клиент начинает закачку, получив каким-либо образом файл с метаданными, в котором есть ссылка на трекер.
Трекер
Трекер (англ. tracker) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере
Читать далее...