Показать сообщение отдельно
Циник
Сообщения: 4,416
Регистрация: 09.01.2006
Старый пост, нажмите что бы добавить к себе блог 14 декабря 2007, 10:24
ВКонтакте
  #46 (ПС)
BitTorrent (дословно «поток битов») — P2P-протокол, предназначенный для обмена файлами через интернет. BitTorrent был создан программистом Брэмом Коэном

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

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

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

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

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

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

Трекер

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

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

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

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


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

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

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

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

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

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

Кроссплатформенные:
aria2 — поддерживает HTTP, FTP, BitTorrent; файлы Metalink 3.0
Azureus — написан на языке Java, поэтому является кроссплатформенным;
BitTornado — кроссплатформенный клиент, написанный на языке Python;
FoxTorrent — расширение для браузера Mozilla Firefox, реализующее функции клиента BitTorrent;
mlDonkey — кроссплатформенный клиент;
Браузер Opera полностью поддерживает закачку торрентов, начиная с версии 9.0;
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, GNU/Linux и BeOS, использующий GTK.
Для Microsoft Windows и Windows NT:
µTorrent;
BitComet;
FlashGet;
GetRight.
Shareaza — поддерживает работу с несколькими файлообменными сетями, в том числе и BitTorrent
Для Mac OS:
XTorrent;
BitRocket.



Добавлено через 9 минут

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


Последний раз редактировалось Циник, 14 декабря 2007 в 10:36. Причина: Добавлено сообщение
offline
Ответить с цитированием