Уютный трекер DM Torrent
Bit Torrent - особенности работы и протокола. Twitter RSS
Начать новую тему   Ответить на тему    Список форумов DM Torrent -> Работа трекера
Автор Сообщение
Аdmin
      
Респект: 0
Points: 4
Сообщение 16 Фев 2008 08:57 [Цитировать] 
BitTorrent (дословно «поток битов») — P2P-протокол, предназначенный для обмена файлами через интернет. BitTorrent был создан программистом Брэмом Коэном (англ. Bram Cohen).

Отличительные черты

Общие особенности

Отсутствие очередей на закачку.
Файлы закачиваются небольшими сегментами; чем менее доступен сегмент, тем чаще он будет передаваться. Таким образом, присутствие в сети «сидера» с полным файлом для загрузки необязательно — система распределяет сегменты между «пирами», чтобы в последующем они могли обмениваться недостающими сегментами.
Клиенты (peers) обмениваются сегментами непосредственно между собой, по принципу «ты — мне, я — тебе».
Закачанные сегменты становятся немедленно доступны другим клиентам.
Контролируется целостность каждого сегмента.
В качестве объекта закачки могут выступать несколько файлов (например, содержимое каталога).

Терминология

Раздача (англ. 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-файле).

Протоколы и порты

Клиенты соединяются с трекером по протоколу TCP. Входящий порт трекера: 6969.

Клиенты соединяются друг с другом, используя протокол TCP. Входящие порты клиентов: 6881—6889.

Номера портов не фиксированы в спецификации протокола и могут изменяться при необходимости. Более того, в данный момент большинство трекеров используют обычный HTTP порт 80, а для клиентов рекомендуется выбрать случайный входящий порт.

DHT-сеть в BitTorrent-клиентах использует протокол UDP.

Кроме того, протокол UDP используется UDP-трекерами (не поддерживается всеми клиентами и не является официальной частью протокола) и для соединения клиентов друг с другом через UDP NAT Traversal (используется только в клиенте BitComet и не является официальной частью протокола).

Файл метаданных

Bittorrent не имеет системы поиска: для каждого распространяемого файла создаётся файл метаданных с расширением .torrent, который содержит следующую информацию:

URL трекера;
общую информацию о закачиваемом файле (имя, длину и пр.);
контрольные суммы (точнее, хэш-суммы SHA1) сегментов закачиваемого файла.

Файлы метаданных могут распространяться через любые каналы связи — например, они (или ссылки на них) могут выкладываться на веб-серверах, размещаться на домашних страницах пользователей сети, рассылаться по электронной почте, публиковаться в блогах или новостных лентах RSS.

Клиент начинает закачку, получив каким-либо образом файл с метаданными, в котором есть ссылка на трекер.

Работа без трекера

В новых версиях протокола были разработаны бестрекерные (англ. trackerless) системы, которые решают некоторые из предыдущих проблем. Отказ трекера в таких системах не приводит к автоматическому отказу всей сети.

Начиная с версии 4.2.0 официального клиента, в нем реализована функция бестрекерной работы, базирующаяся на протоколе Kademlia. В таких системах трекер доступен децентрально, на клиентах, в форме распределенной хеш-таблицы.

На данный момент еще не все клиенты используют совместимый друг с другом протокол. Совместимы между собой BitComet, µTorrent, KTorrent и официальный клиент BitTorrent. Azureus также имеет режим бестреккерной работы, но его реализация отличается от официальной, вследствие чего он не может работать через DHT с вышеперечисленными клиентами.

Super seeding (cупер-сид)

Супер-сид (англ. super seeding) — метод, реализованный в тех клиентах BitTorrent, авторы которых пытаются минимизировать объем данных до первого завершения загрузки пира. Метод был задуман Джоном Хофманом и впервые был осуществлен в клиенте «BitTornado» в середине 2003 г.

Супер-сид является изменением в поведении сидеров и не может быть осуществлен без нарушения протокола BitTorrent. Тем не менее, это не утверждается ни разработчиком протокола, Брэмом Коэном, ни в официальном клиенте.

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

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

Принцип работы протокола

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

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



Клиенты соединяются друг с другом и обмениваются сегментами файлов без непосредственного участия трекера. Для эффективной работы сети BitTorrent необходимо, чтобы как можно больше клиентов были способны принимать входящие соединения. Неправильная настройка NAT или файрвола могут этому помешать.

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

Каждый клиент имеет возможность временно блокировать отдачу другому клиенту (англ. choke). Это делается для более эффективного использования канала отдачи. Кроме того, при выборе — кого разблокировать, предпочтение отдается пирам, которые сами передали этому клиенту много сегментов. Таким образом, пиры с хорошими скоростями отдачи поощряют друг друга по принципу «ты — мне, я — тебе».

Программы-клиенты

Кроссплатформенные:

Azureus — написан на языке Java, поэтому является кроссплатформенным;
BitTornado — кроссплатформенный клиент, написанный на языке Python;
FoxTorrent — расширение для браузера Firefox, реализующее функции BitTorrent-клиента;
mlDonkey — кроссплатформенный клиент;
Браузер Opera полностью поддерживает закачку торрентов, начиная с версии 9.0;
Shareaza — клиент для Windows, поддерживает работу с несколькими файлообменными сетями, в том числе и BitTorrent;
TorrentFlux — написан на PHP, работает на удаленном Web-сервере как PHP-скрипт, позволяя не держать свой компьютер включенным постоянно, но при этом качать и раздавать торренты.

Для UNIX-подобных систем:

BTPD — консольный клиент для Unix/GNU+Linux, написанный на C++; работает в режиме демона;
CTorrent — консольный клиент для Unix/GNU+Linux, прекративший развитие в 2004 году;
Deluge — клиент для GNU/Linux, написанный на языке Python; использует GTK;
KTorrent — использует библиотеку Qt; работает в среде KDE;
rTorrent — консольный клиент для Unix/GNU+Linux, написанный на C++; использует библиотеки ncurses и libTorrent;
Transmission — клиент для Mac OS X, FreeBSD, OpenBSD, NetBSD, Linux и BeOS, использующий GTK.

Для семейства Microsoft Windows:

µTorrent;
BitComet;
Менеджер закачек FlashGet также поддерживает работу с BitTorrent.

Для Mac OS:

XTorrent;
BitRocket.

Трекер

Трекер (англ. tracker; /ˈtrækə(r)/) — специализированный сервер, работающий по протоколу HTTP. Трекер нужен для того, чтобы клиенты могли найти друг друга. Фактически, на трекере хранятся IP-адреса, входящие порты клиентов и хэш-суммы, уникальным образом идентифицирующие объекты, участвующие в закачках. По стандарту, имена файлов на трекере не хранятся, и узнать их по хэш-суммам нельзя. Однако на практике трекер часто помимо своей основной функции выполняет и функцию небольшого веб-сервера. Такой сервер хранит файлы метаданных и описания распространяемых файлов, предоставляет статистику закачек по разным файлам, показывает текущее количество подключенных пиров и пр.

Координация клиентов

Основная функция BitTorrent трекера — обработка запросов клиентов.

Каждый клиент периодически обращается к трекеру с запросом, в
котором указаны:
info_hash — уникальный хеш торрент файла
port — TCP порт, на котором клиент ждёт соединений от других клиентов
количество данных, которыми клиент успел обменяться с другими клиентами
и некоторая другая информация.

Такое обращение представляет собой обычный GET HTTP запрос, в котором информация закодирована с помощью специального протокола Bencode (en:Bencode).

Если в BitTorrent клиенте открыто несколько активных торрент файлов, то для каждого используется отдельный запрос, никак не связанный с другими. Интервалы между запросами по каждому отдельно взятому торренту зависят от настроек клиента и обычно составляют от 30 до 60 минут.

BitTorrent трекер, используя info_hash, составляет списки IP адресов и портов участвующих в каждой отдельной раздаче клиентов. Каждому клиенту в ответ на очередной запрос трекер возвращает такой список, и клиент использует его для установления соединений с другими клиентами.

Роль трекера

Таким образом, трекер «связывает» клиентов друг с другом, но напрямую не участвует в обмене данными раздаваемых файлов. Более того, в принципе трекер может работать, не имея никакой информации об этих файлах, поскольку клиенты сообщают ему только info_hash.

Трекер считается «слабым» местом системы BitTorrent, поскольку при его отключении новые клиенты просто не могут друг друга «найти». При этом уже участвующие в раздаче клиенты могут некоторое время продолжать файлообмен, постепенно теряя тех, кто отключился или у кого поменялся динамический IP адрес.

Для разрешения этой проблемы могут использоваться резервные трекеры или специальный бестрекерный протокол DHT.

Приемущества используемого протокола обмена данными над аналогичными P2P

Первое, наверное, одно из самых важных - максимальная скорость обмена данными и простота в обращении. Второе, удобное и красочное оформление релизов. Удобный поиск, всегда можно видеть все данные по нужным файлам, кол-во раздающих, качающих, скорости. Отсутствие очередей на закачку, чем больше качающих-раздающих, тем выше скорость. В третьих - безопасность ваших данных. Подробнее о протокалах и сравнение.
Аdmin
      
Респект: 0
Points: 4
Сообщение 18 Мая 2008 23:41 [Цитировать] 
Пример работы протокола где присутствуют 6 сидов и 2 лича. Как видно нагрузка по сегментам распространяется ровно, не дает завалить определенный канал. При этом лич, благодаря распеделению по сегментам получает максимальную скорость, а также умудряется еще раздавать с весьма немалой скоростью...

Аdmin
      
Респект: 0
Points: 4
Сообщение 25 Сен 2008 16:02 [Цитировать] 
При подключении к сети Интернет через некоторых провайдеров, предоставляющий неограниченную скорость передачи файлов внутри локальной сети (100 MB\s) и ограничение на скорость скачки из "внешки" (в зависимости от тарифа), скачивание файлов с использованием BitTorrent позволяет "обойти" ограничения на скачку из "внешки". При одновременном скачивании одного файла несколькими пользователями (локалки) скорость скачки увеличивается пропорционально количеству качающих, т.к. одновременно скачивается из нескольких источников, в том числе и из "локалки" (блоки, уже скачанные из "внешки" другими пользователями).
Аdmin
      
Респект: 0
Points: 4
Сообщение 25 Апр 2010 01:30 [Цитировать] 
Magnet Link

Это новое слово в BitTorrent протоколе. Формируется хэш с помощью специальной функции при этом трекер вовсе не нужен. Прошу не путать с магнетами DC++ где необходим сервер (хаб) и по сути представляет из себя FTP, файло-обмен в BitTorrent magnet происходит полностью децентрализованно. При этом используются все прелести BiTorrent - передача частями, мгновенный поиск пиров и т.д, за счет чего достигаются максимальные скорости. Весь функционал передачи данных осуществляется программой - клиентом.
Заголовок новой темы
Форум для новой темы
 
Страница 1 из 1
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов DM Torrent -> Работа трекера Часовой пояс: GMT + 4



Пользовательское соглашение  |  Для правообладателей  |  Реклама на сайте

Роwered bу рhрВВ © 2001, 2005 рhрВВ Grоup
ТоrrеntРiеr bу Mеithаr © Mоdifiеd Cаmа

!ВНИМАНИЕ!
Ресурс не предоставляет электронные версии произведений, а занимается лишь коллекционированием и каталогизацией ссылок, присылаемых и публикуемых на форуме нашими читателями. Любая информация на форуме размещается пользователем самостоятельно, без какого-либо контроля с чьей-либо стороны, что соответствует общепринятой мировой практике размещения информации в сети интернет. Если вы являетесь правообладателем какого-либо представленного материала и не желаете чтобы ссылка на него находилась в нашем каталоге, свяжитесь с нами и мы незамедлительно удалим её. Файлы для обмена на трекере предоставлены пользователями сайта, и администрация не несёт ответственности за их содержание.