Файл передаётся не из одной точки

В обычной загрузке сервер хранит файл и отправляет его каждому пользователю целиком. Если одновременно приходят тысячи запросов, вся нагрузка ложится на его канал связи. В P2P-сети файл разбивают на части, а участники обмениваются ими напрямую: один может получать один фрагмент у нескольких компьютеров, а другой — уже передавать кому-то полученные части.

Такой участник и становится хостом — узлом, который не только скачивает данные, но и отдаёт их дальше. Для этого не нужно ждать, пока загрузка завершится: уже полученный кусок можно раздавать, пока остальные ещё скачиваются.

Почему сеть становится устойчивее

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

Это снижает нагрузку на отдельный узел и помогает продолжать загрузку, даже если один из участников отключился: нужные части можно получить у других. Однако скорость зависит от того, сколько узлов раздают каждый фрагмент и насколько быстро они могут его передавать. Если редкую часть никто не раздаёт, именно она может задержать сборку файла.

Загрузка превращается в обмен

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