Традиционная загрузка проста. Вы обращаетесь к серверу. Вы получаете файл. Сервер может замедлить работу, если слишком много людей запросят его. Одноранговый (P2P) обмен файлами полностью ломает эту модель. Он не полагается на центральный узел. Вместо этого он превращает компьютер каждого участника одновременно и в клиент, и в сервер.
Термин «пир» (peer) звучит профессионально. На самом деле это просто обычный настольный или портативный компьютер. Как ваш. Программное обеспечение заменяет ваш веб-браузер как инструмент, который вы используете для поиска файлов. Вы просите не у корпоративного центра обработки данных. Вы просите у других людей.
Вот как работает этот процесс.
Механика роения
Вы устанавливаете P2P-клиент, например программу на базе Gnutella. Вы вводите имя файла. Программное обеспечение не просто ищет в одном месте. Оно рассылает запрос всем остальным компьютерам в сети, использующим тот же протокол.
Эти подключенные машины образуют сетку.
Когда программа находит пир, у которого на жестком диске действительно есть запрошенные данные, начинается передача. Но на этом дело не заканчивается. Этот компьютер также становится источником для всех остальных, ищущих тот же файл. Вы одновременно получаете фрагменты данных из нескольких источников. Нагрузка распределяется. Это должно быть эффективно.
Проблема узкого места
Теоретически добавление большего числа пользователей делает сеть быстрее. На практике это часто создает хаос.
Главная проблема — пропускная способность. Скорость вашей отдачи обычно намного ниже скорости загрузки. Если вы скачиваете большой файл, ваш компьютер занят. Но если вы также действуете как сервер для других, вы отдаете данные. Это может вызвать значительные узкие места. Ваше соединение перегружается. Передачи замедляются до ползучих темпов.
Затем есть человеческий фактор.
Некоторые пользователи скачивают все, что им нужно, а затем немедленно отключаются. Они берут данные. Они уходят. Они ничего не предлагают обратно сети. Это называется ле́чичество (leeching).
Когда пользователи занимаются лечичеством, они истощают ресурсы сети, не внося вклад в процесс поиска или распространения.
Такое поведение ограничивает количество эффективных компьютеров, которые может опрашивать программное обеспечение. Сеть сокращается. Эффективность падает. Остальные пользователи страдают.
Почему это важно для вас
Вы можете подумать, что P2P используется только для фильмов и музыки. Да. Но он также используется для распространения крупных обновлений программного обеспечения, кода с открытым исходным кодом и архивных данных.
Понимание того, как работает протокол, помогает понять, почему некоторые загрузки зависают. Это не всегда плохое интернет-соединение. Возможно, проблема в самих пирах.
Технология полагается на доверие и взаимность. Если все занимаются лечичеством, система рушится. Если все делятся, она процветает. Это хрупкий баланс.
Для более глубокого погружения в конкретные протоколы вы можете посмотреть, как работает Gnutella или как работает Kazaa. Эти старые сети заложили основу для всего, начиная от BitTorrent и заканчивая современными решениями для децентрализованного хранения. Основная идея остается той же. Вы являетесь частью инфраструктуры. Вы всегда были ею.





























