BitTorrent
Материал из VTK Wiki
BitTorrent (букв. англ. «битовый поток») — пиринговый (P2P) сетевой протокол Коэна для кооперативного обмена файлами через Интернет.
Файлы передаются частями, каждый torrent-клиент, получая (закачивая) эти части, в это же время отдаёт (подкачивает) их другим клиентам, что снижает нагрузку и зависимость от каждого клиента-источника и обеспечивает избыточность данных.
Первый torrent-клиент «BitTorrent» был создан программистом Брэмом Коэном на языке Python 4 апреля 2001 года, запуск первой версии состоялся 2 июля 2001 года. Существует множество других программ-клиентов для обмена файлами по протоколу BitTorrent.
Главные преимущества
- Отсутствие очередей на скачивание.
- Файлы закачиваются небольшими фрагментами; чем менее доступен фрагмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
- Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
- Скачанные фрагменты становятся немедленно доступны другим клиентам.
- Контролируется целостность каждого фрагмента.
- В качестве объекта раздачи могут выступать несколько файлов (например, содержимое каталога).
Протоколы и порты
Клиенты соединяются с трекером по протоколу TCP. Входящий порт трекера: 6969.
Клиенты соединяются друг с другом, используя протокол TCP. Входящие порты клиентов: 6881—6889.
Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт.
Файл метаданных
Для каждого распространяемого файла создаётся файл метаданных с расширением .torrent, который содержит следующую информацию:
* URL трекера; * общую информацию о закачиваемом файле (имя, длину и пр.); * Контрольные суммы (точнее, хэш-суммы SHA1) сегментов закачиваемого файла.
Файлы метаданных могут распространяться через любые каналы связи: они (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS. Получив каким-либо образом файл с метаданными, клиент может начинать скачивание.