Дата:   18.11.2017 г.
Время:
 
 
Профессионалам и любителям
ПРОСТО * ДОСТУПНО * ИНТЕРЕСНО
01796
Подписной
индекс
Опрос
Читаете журнал
Погода
 
Архив - Из сети файлы бьют ключом - Журнал «Компьютер»
Из сети файлы бьют ключом
№ 7-8'2006     Владислав Демьянишин   сайт автора    Тема: Сеть     ( Прочитано 6392 раз )
 
За поразительно короткое временя пиринговая сеть BitTorrent приобрела армию поклонников и высокую популярность. Фанатов BitTorrent вряд ли можно сравнить с массами пользователей Kazaa или eDonkey/eMule, однако и принципы работы этого проекта не требуют максимально возможного числа участников.
 
Еще один пиринговый клиент? Но зачем?
 
Создатель BitTorrent программист Брэм Коэн (Bram Cohen) с самого начала заложил в свою разработку несколько принципиальных отличий от других пиринговых сетей: нацеленность на распространение крупных файлов и не совсем децентрализованная структура сети.
  
В службе Napster (до ее закрытия) центральный сервер хранил имена пользователей и названия файлов, которыми те желали обменяться. В сетях FastTrack и eDonkey подобных серверов нет, и архитектура сети предполагает максимальную децентрализацию. Архитектура BitTorrent предусматривает наличие у файла, выкладываемого в сеть, единственного владельца, который и заинтересован в его распространении.
Именно первоначальный обладатель файла генерирует серию хэш-кодов, впоследствии используемую клиентами BitTorrent для проверки его целостности. Пользователь пиринговой сети, чтобы получить искомый файл, должен загрузить набор данных с расширением .torrent. В нем содержится информация о имени файла, его размере, хэш-коды сегментов (по умолчанию размером 256 КВ) и адрес распространителя, у которого, в свою очередь, должен быть запущен tracker-сервер для отслеживания количества загрузок файла в сети peer-to-peer. Архитектура BitTorrent предполагает пиринговый обмен с использованием центрального tracker-сервера для учета статистики. По мере того как файл по частям уходит с компьютера первоначального владельца в сеть, пользователи начинают загружать его фрагменты друг у друга. В то же время протокол BitTorrent требует фиксирования каждой такой загрузки на tracker-сервере, даже если сервер распространителя в транзакции не участвует.
Здесь скрыта еще одна особенность протокола BitTorrent, которая одновременно является и его ахиллесовой пятой – в случае отсутствия в сети tracker-сервера файл загрузить нельзя. При попытке копирования torrent-файла клиентом BitTorrent пользователю выдается стандартная ошибка Tracker is down.
Безусловно, через некоторое время каждый, у кого есть полная копия файла, сможет сгенерировать собственный torrent-файл и запустить новый tracker-сервер. Сгенерированный torrent-файл будет отличаться от первоначального (адрес tracker-сервера является составной частью torrent-файла), и подключившимся клиентам придется начать загрузку с нуля.
 
Централизация как способ уменьшить загрузку сети
 
Не нарушит ли это стабильность сети?
Во-первых, Коэн стремился, чтобы упростить легальную передачу файлов. Во-вторых, внедрение tracker-сервера позволяет проследить за статистикой загрузок (что немаловажно для софтверных компаний). В-третьих, если по каким-то причинам распространение файла необходимо прекратить, то для этого достаточно приостановить работу трэкера, хотя есть и возможности обхода такого ограничения.
Услугами BitTorrent уже воспользовались такие компании, как Red Hat и Mandrake, выложив в сеть новые версии своих ОС с одновременной публикацией на сайте torrent-файлов. Дистрибутивы были в виде трёх ISO-файлов по 700 МВ, то есть в итоге любители Linux были вынуждены загружать около 2 GB, что “убило” бы FTP-сервер. По словам представителей Red Hat, после запуска дистрибутивов в сеть BitTorrent нагрузка на центральный FTP-сервер компании упала на 99%!. Более того, tracker-сервер позволил Red Hat отследить статистику загрузок в режиме реального времени. Подробная информация редко доступна или невозможна в других пиринговых сетях.
Клиент BitTorrent (http://bitconjurer.org/BitTorrent/download.html или www.bittorrent.com/download.html), представляет собой лишь серое окно с кнопкой Cancel и ссылкой About. Неприхотливый в работе пакет запускается при щелчке по torrent-файлу. В BitTorrent Коэн внедрил только самое необходимое – возможность соединения с tracker-сервером и собственно загрузку. Все другие функции, присущие сегодняшним пиринговым сетям, выполняются на более высоком уровне. Torrent-файлы стоит поискать на специальных сайтах, там же их можно оценить или расспросить других пользователей об их качестве. Это сделано для того, чтобы BitTorrent не перегружал собственную сеть запросами и ответами о наличии файлов, поскольку вся статистика ведется tracker-сервером, а вся необходимая информация содержится в .torrent.
 
Пиринговые сети: проблемы и варианты решения
 
В списке причин, побудивших Коэна и команду его единомышленников заняться разработкой нового клиента, можно увидеть немало проблем, присущих сегодняшним пиринговым сетям.
Некоторые из проблем детально рассмотрены Коэном в работе “Устойчивость за счет системы поощрений в сети BitTorrent” (“Incentives Build Robustness in BitTorrent”, (http://bitconjurer.org/BitTorrent/bittorrentecon.pdf). Давайте заглянем в эти проблемы.
Файлы-пустышки. Поскольку львиную долю контента в большинстве популярных сегодня пиринговых сетей составляют файлы, права на распространение которых принадлежат звукозаписывающим концернам и кинокомпаниям, последние прилагают немало усилий для саботажа работы этих самых сетей. Так, ассоциация RIAA не раз признавала факт сотрудничества с малоизвестной компанией OverPeer, зарабатывающей на жизнь умышленным искажением и снижением качества цифровой музыки и видео. OverPeer генерирует аудио- и видеофайлы неприемлемого качества (заниженный битрейт, изменение содержания, прерывание музыкальной композиции рекламным роликом), после чего выкладывает их в пиринговые сети. Разместив свои файлы на высокоскоростных каналах, OverPeer практически гарантирует их попадание в списки результатов поиска, так как в сетях FastTrack и других на вершине рейтинга оказываются продукты, доступные на высокоскоростных каналах.
На ранней стадии развития Internet основным источником информации о файле было его имя (взглянув на Alanis Morissette - Ironic.mp3, можно догадаться о его содержании). Сегодня ввиду причин, описанных выше, на это полагаться не следует. Системы рейтинга файлов (применяемые в сети FastTrack) также нельзя назвать эффективными, в основном, из-за нежелания большинства пользователей лишний раз после загрузки предоставлять свои файлы. В BitTorrent эта проблема решается на более высоком уровне, а именно за содержание файла отвечает его распространитель. Таким образом, информацию о его подлинности надежней всего получать на форумах, где публикуются как ссылки на новые torrent-файлы, так и мнения пользователей об их качестве. За такую структуру оценки в свое время высказались и создатели сети eDonkey/eMule.
Пользователи-эгоисты. Залогом успеха любой пиринговой сети является правило, требующее от пользователей не только загружать файлы на домашний ПК, но и предоставлять их другим. Между тем, по разным причинам (часто связанным с оплатой каналов), часто пользователи предпочитают побыстрее загрузить файл и отключиться. Это снижает количество доступных источников для других, из-за чего страдают стабильность и качество сети. Используемые сегодня методы борьбы с “эгоистами” зачастую предполагают рейтинг пользователей, где самые “щедрые” получают приоритет на чужих серверах, а те, кто “делиться” не желают, при загрузке популярного файла уходят в конец очереди.
Пиринговые сети часто ведут учет “щедрости” пользователя и начисляют баллы за предоставленные широкие каналы. Проблема весьма банальна: информация о баллах хранится у клиента, и ничто не мешает ему нарочно увеличить их количество. Похожий трюк есть в Kazaa Lite, где при подключении к сети FastTrack все клиенты имеют неизменный рейтинг в 1000 баллов. В BitTorrent эта проблема решена своеобразно – оценки за более широкие каналы растут, однако информация об этом хранится у клиента, который загружает файл. Делает ли это справедливой систему обмена? Нет, не очень, так как баллы начисляются за качество пирингового соединения между двумя клиентами. Если компьютер А предложил компьютеру Б весьма широкий канал, то по правилам BitTorrent единственным вознаграждением для А станет возможность приоритетных загрузок с компьютера Б. При условии, что и А, и Б содержат интересную друг для друга информацию. Система работает идеально, ведь два “щедрых” компьютера по максимуму используют канал связи между собой. Однако если на жестком диске Б ничего ценного нет, то щедрость А остается невознагражденной.
Неполные файлы. Допустим, у вас на диске находится редкая копия ценного файла, который вы решили выложить в пиринговую сеть. Спустя какое-то время вы можете отследить процесс загрузки частей файла клиентами системы, и, скажем, понаблюдав за процессом 24 ч, посчитать свою миссию выполненной и выключить компьютер. Здесь кроется весьма очевидная проблема: несмотря на то, что многочисленные клиенты теперь могут похвастаться наличием некоторых сегментов ценного файла, полной версии не имеет никто. Более того, даже если пройтись по всем подключенным к сети клиентам, становится очевидным, что полную версию файла не собрать при всем желании – у всех имеется, скажем, первая половина файла, но никто не загрузил несколько сегментов из его второй половины.
Ввод в систему обмена tracker-сервера дало возможность внедрить алгоритм, предотвращающий появление неполных файлов. Поскольку tracker хранит информацию о сегментах, успешно загруженных на каждую машину, то загрузка файла новыми клиентами принудительно начнется с наиболее редкого сегмента, то есть с того сегмента, который ещё ни разу не был роздан, либо был роздан наименьшее количество раз. Таким образом, если клиент BitTorrent загружает крупный файл, разбитый на 200 частей, то это совсем не означает, что процесс начнется с сегмента # 1 и закончится сегментом # 200 (как это в иных пиринговых сетях). Клиент всегда получает сегмент, занимающий последнее место по распространенности, что в идеале после 200 подключений к центральному серверу даст возможность выложить в пиринговую сеть файл целиком.
Как видно из выше изложенного, архитектура BitTorrent предлагает интересные пути решения. Следует заметить, что вряд ли какую-то из стратегий можно назвать идеальной, и, скорее всего, в дальнейшем мы станем свидетелями эволюционного процесса.
 
Практическое применение новой архитектуры
 
Поскольку BitTorrent является open source, то на данный момент существует множество клиентов для данной пиринговой сети. Например, пользователи Интернет в Москве и Санкт-Петербурге взяли на вооружение клиент BitComet (www.torrents.ru). У сетян Киева популярен клиент uTorrent.
 
 BitTorrent, Torrent, FastTrack, eDonkey, Napster, Брэм Коэн, Bram Cohen, tracker, eMule, BitComet, uTorrent, трекер, торрент, сидер, личер, сид, пир
 
 
 
 
 
Чтобы подключиться к файлообменной сети необходимо иметь выделенную линию, поскольку по модему такая сеть преимущества не даст.
1. Загрузить на свой компьютер и установить клиент. На данный момент достаточно корректно работают версии 1.4.1 Beta (http://plan.volia.org/misc/uTorrent_1_4_1_Volia_Russian.exe, 460 Кб), хотя уже есть версия 1.5.
2. На сайте, например, http://tracker.volia.org/forum в интересующей вам рубрике выбираете нужный torrent-файл (обычно 30-40 КБ) и скачиваете его и сохраняете на диск. Далее открываете этот torrent-файл, и тотчас же должен загрузиться в память uTorrent (окно).
 
 BitTorrent, Torrent, FastTrack, eDonkey, Napster, Брэм Коэн, Bram Cohen, tracker, eMule, BitComet, uTorrent, трекер, торрент, сидер, личер, сид, пир
 
3. В появившемся окне указать место сохранения файла. При этом на диске должно быть достаточно места для этого. uTorrent поначалу создает папку с тем самым файлом (файлами) – пустышкой, сразу же резервируя место на диске. Это займет некоторое время и потребует определенных ресурсов компьютера. C последними версиями это уже не так актуально.
4. Теперь вы начнете закачку. Главное – это терпение. Как только вы скачаете первые блоки и начнете их отдавать, ваш share rating пойдет вверх, и увеличится скорость закачки.
5. Важно помнить, что не следует закрывать сразу же окно uTorrent после окончания закачки, а дать другим скачать от вас – это называется сидинг (seeding). Это считается правилом хорошего тона. Именно на этом и держится сеть.
 
Терминология
 
Сид – пользователь с полным файлом, дающий upload.
Пир/Личер – пользователь с неполным файлом, качающий и дающий upload неполного файла.
Трекер – сервер, связывающий пользователей.
 
Частые вопросы и ответы
 
Можно ли возобновить закачку (resume)? – Да. Откройте снова torrent-файл и укажите на ту же самую папку, где вы уже начали закачку. Клиент проверит целостность скачанного вами файла и затем возобновит закачку.
Почему теряю соединение с Интернет после нескольких часов работы BItTorrent? – Проблема характерна для обладателей динамических IP адресов (DSL и Cabel соединения), по-видимому, из-за кучи одновременных соединений. Решение установка uploada на 85-90% от пропускной способности и ограничение количества одновременных соединений в настройках uTorrent-клиента.
Можно ли сделать предпросмотр с помощью AVI Preview? - И да, и нет: все зависит от того, какие блоки уже скачены. Если несколько блоков подряд скачано в начале, то просмотр возможен.
Unable to connect to tracker – Самая неприятная надпись, в последнее время бывает частенько, если на протяжении долгого времени так и не удалось подсоединиться к трекеру, то следует искать другой torrent-файл.
Что лучше всего качать с uTorrent? – Свежие фильмы, игры, эпизоды телесериалов, программы.
 
 
Как создавать torrent файлы.
 
Для uTorrent следует в папку, куда обычно вы качаете раздачи поместить файл или папку с файлами, которые вы хотите раздать. Затем в uTorrent-клиенте в меню Файл > Создать torrent > кнопка “Доб. файл” или “Доб. папку” > выбрать ресурс, затем кнопка “Создать и сох. как…” > указать имя torrent-файла и подождать, пока будет выполняться хэширование файла. Закрыть окно. Torrent-файл должен иметь такое же название, как и папка или файл, который вы хешировали. В нашем примере это будет Crocodile-Dundee1.avi.torrent
 
BitTorrent, Torrent, FastTrack, eDonkey, Napster, Брэм Коэн, Bram Cohen, tracker, eMule, BitComet, uTorrent, трекер, торрент, сидер, личер, сид, пир
 
Теперь на форуме сайта создаём в соответствующей ветви форума, например, “Видео > Зарубежные фильмы” тему “Данди по прозвищу Крокодил”, в которой указываем краткое описание фильма, параметры фильма (кодек, размер кадра, продолжительность в минутах), и прикрепляем к сообщению темы torrent-файл.
После этого снова зайдя в созданную тему, скачиваем себе наш же torrent-файл и в uTorrent-клиенте открываем его как бы на скачку, но ставим галочку “Открыть для сидиров” (см. рис 2). С этого момента вы становитесь раздающим, то есть сидом. Далее просто оставляете uTorrent рабочим, при появлении первых сидеров, можете прекращать заливку, теперь эстафету у вас примут другие пользователи.
Не забывайте о неписаном законе трекера: "Сколько взяли, столько и отдайте").
 
Приподнимем вуаль
 
Хочется раскрыть изюминку основного принципа, заложенного в идею Коэна. Предположим, что пользователь А раздаёт некоторый файл, тем самым являясь сидом. При создании torrent-файла, файл источник был размечен, например, на 10 хэш-сегментов. Первый подключившийся к скачке пир (назовём его Б) загружает случайным образом выбранные хэш-сегменты, например, 3, 7 и 10, поскольку ещё ни один хэш-сегмент скачан не был. При этом доступность файла в сети будет равна 1.000, то есть полностью доступен.
 
BitTorrent, Torrent, FastTrack, eDonkey, Napster, Брэм Коэн, Bram Cohen, tracker, eMule, BitComet, uTorrent, трекер, торрент, сидер, личер, сид, пир
 
Предположим, что подключился ещё один пир (его имя Д), а в это время пир Б докачивает сегмент 10. Тогда для пира Д будут доступны не только сегменты сида А, но и уже скачанные сегменты пира Б, что позволит одновременно качать, например, сегменты 2 и 8 от сида А и сегменты 3 и 7 от пира Б, что уже удваивает скорость закачки, поскольку для пира Д существует 2 источника и доступность файла будет уже 1.200.
 
А что будет, если подключится ещё один пир (пускай его имя Е)? Допустим это произойдёт, когда пир Б уже скачал сегменты 3, 7, 10 и 1 у сида А и сегмент 8 у пира Д, а пир Д уже скачал сегменты 2 и 8 от сида А и 3, 7 у пира Б. Для пира Е будет уже 3 источника и доступность файла 1.600. Если пир Е будет качать у сида А сегмент 5, у пира Б сег. 10, а у пира Д сег. 3, а пир Б у сида А сег. 6., у пира Д сег. 2, то уже через какое-то время общая доступность файла составит 1.900, что эквивалентно почти двум раздающим.
 
 Разумеется, что придя ещё один пир (с именем К) с 100% вероятностью начнёт скачивать у сида А единственно не розданный ещё сегмент 9, ну и ещё какие-то сегменты у остальных пиров, чем и доведёт общую доступность до 2.000 и более.
 
Давайте рассмотрим, что же будет, если отключится сид А. Получится так, что в сети останется файл доступностью 1.000 или чуточку больше, и “осиротевшие” ;) пиры будут докачивать друг у друга недостающие у них части, параллельно раздавая свои сегменты новым пирам.
 
Пока раздаётся файл, качающие (пиры) прибывают. Каждый последующий качает не только у вас, но и у тех, кто уже хоть что-то скачал у вас, таким образом, общая скорость скачки увеличивается в несколько раз. Но у вас качают чуть-чуть, и то лишь те части, которых нет ещё ни у одного из активных ваших пиров. Как раз это и есть проявление преимущества идеи Брэма Коэна, и на вас все желающие пиры не навалятся, как это могло быть в других сетях.
Далее пир, скачавший полностью вашу раздачу, становится тоже сидом (раздающим). Если, конечно, не выключит сразу свой клиент или не удалит torrent из него. Но тогда у такого “эгоиста” не будет достаточно высокого share ratio (рейтинга).
 
Фильтры
 
С целью избежать учёта трафика в uTorrent применяется фильтр для каждого сегмента, на которые поделён город Киев, например, у провайдера “Воля-кабель”. Сегмент – это область действия подглавной станции кабельных модемов (ПГС), к которой и подключён пользователь сети в своём районе. Её ещё называют CMTS (Cable Modem Termination System).
Каждый пользователь сети, качая в пределах своего сегмента не рискует “попасть” на трафик. Следует периодически обновлять фильтры при помощи утилиты ipfilterupd.exe, идущей в комплекте с uTorrent.
 
Полезных и быстрых вам скачек ;)
 

 
 
На главную страницу На предыдущую страницу На начало страницы
 
 
 
 
 
2009 - 2017 © СПД Зайцев А.Б.
Сайт является средством массовой информации.
При перепечатке и цитировании в печатных СМИ ссылка на журнал "Компьютер" обязательна.
При перепечатке и цитировании в Интернете обязательна активная гиперссылка на сайт Comput.com.ua, не закрытая для индексирования.
Украина онлайн Рейтинг@Mail.ru Рейтинг Сайтов YandeG