P2P (peer-to-peer, «равный к равному») — это одноранговая сеть, в которой каждый компьютер одновременно и просит данные, и раздаёт их другим. Центрального сервера, через который идёт весь обмен, нет: участники соединяются напрямую. Так работают торренты, видеозвонки в браузере и сеть биткоина.
В банках и на криптобиржах тем же словом называют сделки между людьми без посредника. Это другое значение, о нём отдельный раздел ниже. Если вы пришли за сетями, начните с того, как устроены сетевые протоколы: P2P работает поверх них.
Что такое P2P простыми словами

Представьте библиотеку, где книги хранятся не в одном здании, а дома у читателей. Каждый держит у себя несколько книг и даёт их соседям, а взамен берёт то, чего у него нет. Здание библиотеки не нужно, и если один читатель уехал, книги остаются у других.
Так выглядит одноранговая сеть. Каждого участника называют пиром (peer) или узлом.
Совет по архитектуре интернета (IAB) в документе RFC 5694 2009 года считает систему P2P, если её элементы делят свои ресурсы и каждый из них и предоставляет услуги другим, и запрашивает их у других.
Из этого определения следует простой тест. Если почти все участники только скачивают, а раздаёт один, перед вами обычная схема «клиент-сервер», даже если её называют P2P.
Чем P2P отличается от модели «клиент-сервер»
Когда вы открываете сайт, ваш браузер (клиент) просит страницу у сервера, и сервер её отдаёт. Клиенты между собой не общаются. В одноранговой сети роли не закреплены.
| Клиент-сервер | P2P | |
|---|---|---|
| Кто хранит данные | сервер | сами участники |
| Кто раздаёт | только сервер | каждый, у кого есть нужный кусок |
| Что будет, если главный узел выключится | сервис недоступен | сеть работает, пока живы другие пиры |
| Нагрузка при росте числа пользователей | растёт на сервере | новые участники приносят свои ресурсы |
| Кто управляет | владелец сервера | правила протокола |
| Примеры | сайты, почта, онлайн-банк | BitTorrent, звонки через WebRTC, биткоин |
Подробно о том, как устроен обмен между клиентом и сервером, рассказывает статья про модель OSI. P2P живёт на верхних уровнях этой модели и использует те же TCP и UDP.
Как работает одноранговая сеть
У новичка в P2P-сети три задачи: найти хотя бы одного соседа, узнать, у кого лежат нужные данные, и забрать их. Вот как это решают на примере торрента.
- Вход в сеть. Программа знает несколько адресов заранее или получает их от трекера. Связавшись с одним пиром, она узнаёт от него про других.
- Поиск данных. По спецификации торрент-протокола (BEP 3) файл описан в .torrent-файле, это словарь с длиной кусков и хешем SHA-1 каждого куска. Трекер подсказывает, у кого есть этот файл.
- Скачивание кусками. Файл делится на части, и программа берёт разные части у разных пиров одновременно. Поэтому чем больше людей качает популярный файл, тем быстрее он скачивается.
- Проверка. Каждый кусок сверяется с хешем из .torrent-файла. Испорченный или подменённый кусок не пройдёт проверку и будет скачан заново.
- Раздача. Как только у вас появился кусок, вы сами начинаете отдавать его другим. Так протокол и задуман: когда несколько человек одновременно качают один файл, они загружают его друг другу.
В жаргоне торрентов тех, у кого файл уже целиком, называют сидами, а тех, кто ещё качает, личами или пирами.
Почему два домашних компьютера не видят друг друга
Большинство домашних устройств сидит за роутером с NAT: снаружи у всей квартиры один адрес, и входящее соединение роутер не знает, кому отдать. Это главная техническая проблема P2P.
Решение: служебный сервер помогает пирам узнать свои внешние адреса и «пробить» роутеры навстречу друг другу. В браузерах для этого есть технологии ICE, STUN и TURN, и спецификация WebRTC ставит подключение к удалённым пирам через них первым пунктом в списке того, что она описывает. Если пробить NAT не вышло, трафик идёт через TURN-сервер, и связь перестаёт быть прямой.
Какие порты при этом открываются и чем TCP отличается от UDP, мы разбирали в статье про порты компьютера.
Виды P2P-сетей
Главный вопрос любой одноранговой сети: как узнать, у кого лежат данные. RFC 5694 делит сети по тому, где хранится этот указатель (индекс).
| Вид индекса | Как устроен | Пример из документа IAB | Слабое место |
|---|---|---|---|
| Централизованный | центральный сервер знает, что лежит у каждого пира | Napster | выключили сервер, и поиск остановился |
| Локальный | каждый пир знает только свои данные, запрос рассылается соседям | ранняя Gnutella (до версии 0.4) | запросы множатся и забивают сеть |
| Распределённый | указатели разложены по многим узлам по строгому правилу | сети на распределённых хеш-таблицах (DHT) | сложнее в реализации и отладке |
Гибридные сети
Сеть с центральным индексом документ IAB относит к гибридным: таким системам для работы нужен центральный узел. «Чистая» P2P-сеть, по тому же документу, продолжает работать, даже если из неё убрать любой отдельный пир.
Торрент с трекером как раз гибридный. Поэтому в торрент-протокол добавили режим без трекера.
DHT: как найти файл без центрального сервера
В BEP 5 описана распределённая хеш-таблица, которая хранит контакты пиров для торрентов «без трекера». Она основана на алгоритме Kademlia и работает поверх UDP.
- У каждого узла есть случайный 160-битный идентификатор из того же пространства, что и хеши торрентов.
- Расстояние между узлом и торрентом считается операцией XOR над их идентификаторами.
- Сведения о том, кто раздаёт торрент, хранят узлы с идентификаторами, «ближайшими» к его хешу.
Благодаря этому любой узел за несколько шагов находит нужных соседей, а единого сервера, который можно выключить, нет.
Где используют P2P сегодня

Одноранговая архитектура давно вышла за пределы обмена файлами. Вот где она работает прямо сейчас.
- Обмен файлами. Торрент-клиенты. Им раздают дистрибутивы Linux, игровые обновления, открытые датасеты.
- Видеозвонки в браузере. По спецификации W3C объект RTCPeerConnection позволяет приложению установить одноранговую связь с другим браузером. Звонок, где собеседников двое, часто идёт напрямую между ними.
- Блокчейн. Статья Сатоши Накамото так и называется: «Bitcoin: A Peer-to-Peer Electronic Cash System». Узлы сети хранят копию общего реестра и пересылают друг другу новые записи. Чем занимаются люди, которые пишут код для таких сетей, рассказано в материале о блокчейн-разработчике.
- Хранение данных. IPFS описывает себя как набор открытых протоколов на идеях адресации по содержимому и одноранговых сетей. Файл ищут по отпечатку его содержимого, а не по адресу сервера.
- Локальная сеть без сервера. Несколько компьютеров в офисе или дома обмениваются папками и принтером напрямую. В Windows для разработчиков есть целый набор API: Microsoft в документации определяет одноранговую сеть как бессерверную технологию, которая позволяет устройствам совместно использовать ресурсы и обмениваться данными напрямую.
Простая P2P-сеть на Python
Чтобы почувствовать идею, соберите сеть из двух пиров. Каждый из них одновременно слушает свой порт, как сервер, и подключается к соседу, как клиент. Код использует только стандартную библиотеку, работа с соединениями построена на сокетах, о которых есть отдельная статья: что такое сокет.
import socket
import threading
import time
class Peer:
def __init__(self, name, port):
self.name = name
self.port = port
self.files = {}
def serve(self):
srv = socket.socket()
srv.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
srv.bind(("127.0.0.1", self.port))
srv.listen()
while True:
conn, _ = srv.accept()
wanted = conn.recv(1024).decode()
conn.sendall(self.files.get(wanted, "нет такого файла").encode())
conn.close()
def ask(self, port, filename):
with socket.create_connection(("127.0.0.1", port)) as s:
s.sendall(filename.encode())
return s.recv(1024).decode()
anna = Peer("Анна", 9001)
boris = Peer("Борис", 9002)
anna.files["рецепт.txt"] = "Блины: мука, молоко, яйца"
boris.files["план.txt"] = "Суббота: дача"
for p in (anna, boris):
threading.Thread(target=p.serve, daemon=True).start()
time.sleep(0.2)
print("Борис получил от Анны:", boris.ask(9001, "рецепт.txt"))
print("Анна получила от Бориса:", anna.ask(9002, "план.txt"))
Запустите файл командой python3 peer.py. Вывод будет таким:
Борис получил от Анны: Блины: мука, молоко, яйца
Анна получила от Бориса: Суббота: дача
Здесь нет главного узла: Анна раздаёт Борису, Борис раздаёт Анне. Чего не хватает до настоящей сети:
- поиска соседей, сейчас порты прописаны вручную;
- индекса, который подскажет, у кого лежит нужный файл;
- деления больших файлов на куски и проверки хешей;
- шифрования и обхода NAT.
Каждый пункт из этого списка тянет на отдельную тему, и все они встречаются в работе сетевого инженера.
Что часто путают с P2P
Вокруг слова накопилось несколько устойчивых путаниц. Разберём четыре самых частых.
P2P и торрент
Торрент остаётся самым известным примером одноранговой сети, но не единственным. Видеозвонок через WebRTC тоже P2P, хотя никаких .torrent-файлов в нём нет.
Обратное тоже верно: торрент с трекером не «чистая» P2P-сеть. Без трекера и без DHT новые участники не найдут друг друга.
P2P и блокчейн
Блокчейн использует одноранговую сеть как транспорт: узлы пересылают друг другу транзакции и блоки. Но сам блокчейн описывает, как вести общий реестр, который нельзя тихо переписать.
Торрент-сеть реестра не ведёт, а у закрытого корпоративного блокчейна узлы бывают известны заранее и подключаются по списку.
Децентрализованная и распределённая сеть
Эти слова часто ставят рядом, но смысл у них разный:
- распределённая система разносит данные и вычисления по многим машинам, при этом у неё может быть один владелец, как у облака крупной компании;
- децентрализованная не зависит от одного владельца или узла: решения принимают правила протокола, а не администратор.
Одноранговая сеть почти всегда распределённая. Децентрализованной её делает отсутствие центрального узла, без которого сервис встаёт.
P2P и анонимность
Прямое соединение означает, что собеседник видит ваш адрес. Поэтому обычная P2P-сеть не прячет участников, а скорее наоборот: список пиров, которые раздают файл, может получить любой, кто к нему подключился.
Плюсы и минусы P2P

У одноранговой архитектуры есть сильные стороны, но и цена у неё заметная.
| Плюсы | Минусы |
|---|---|
| Нет единой точки отказа: сеть живёт, пока есть участники | Нет гарантии, что редкий файл кто-то раздаёт прямо сейчас |
| Популярные данные качаются быстрее, потому что источников больше | Ваш IP-адрес видят все, с кем вы соединяетесь |
| Владельцу сервиса не нужно платить за мощные серверы и канал | Сложно удалить или исправить данные, которые уже разошлись по узлам |
| Трудно заблокировать или выключить одним действием | Нужно бороться с NAT, ботами и пирами, которые только качают |
В том же документе IAB есть оговорка про ресурсы: общее потребление клиент-серверной системы обычно ниже, чем у P2P. Экономит P2P деньги владельца сервиса, а не электричество всей сети.
P2P и безопасность
Прямое соединение с незнакомыми компьютерами несёт риски, которых нет при работе с сайтом крупной компании.
- Открытый адрес. Каждый пир видит, с какого IP вы подключились. Это неизбежное свойство прямого обмена.
- Подменённые файлы. Хеши защищают от порчи при передаче, но не от того, что раздающий изначально выложил программу с вирусом. Скачивайте установщики с сайта разработчика или из раздач, на которые он сам ссылается.
- Чужой контент. Сама технология нейтральна. Но в торренте вы не только качаете, но и раздаёте, поэтому перед загрузкой фильма или программы проверьте, разрешил ли правообладатель её распространять.
- Открытые порты. P2P-программа слушает порт на вашем компьютере. Обновляйте её и закрывайте, когда она не нужна.
P2P в банках и на криптобиржах
В финансах P2P (иногда пишут C2C) означает сделку между двумя людьми напрямую, без магазина или брокера в середине. К архитектуре сети это отношения не имеет.
- P2P-переводы. Так банки называют переводы с карты на карту между физлицами. В России самый заметный пример это Система быстрых платежей: по сообщению Банка России от 28 января 2019 года, она позволяет физлицам мгновенно переводить деньги друг другу по номеру мобильного телефона.
- P2P-торговля криптовалютой. Раздел биржи, где пользователи продают валюту друг другу, а площадка лишь сводит стороны и держит сделку до оплаты.
- P2P-кредитование. Займы между людьми через платформу, без банка в роли кредитора.
Если в разговоре звучит «P2P», уточните контекст: программист и трейдер имеют в виду разные вещи.
Где освоить сети системно
Понять, что такое P2P, можно за вечер. Чтобы самому строить и чинить сети, нужны маршрутизация, NAT, сетевая безопасность, мониторинг и практика на настоящем оборудовании. Этим занимается сетевой инженер, путь в профессию разобран в статье как стать сетевым инженером, а смежная роль описана в материале о профессии системного администратора.
Ниже подборка курсов по сетевому администрированию из нашего каталога: сравните программы, цены и формат обучения.
| Курс | Школа | Стоимость со скидкой | В рассрочку | Длительность | Обзор курса от Checkroi |
|---|---|---|---|---|---|
| Администрирование ОС Linux Перейти на сайт курса | 90 157 ₽ | 5556 ₽/мес. | 3 месяца | Обзор курса | |
| Профессия «Сетевой инженер» Перейти на сайт курса | 85 800 ₽ | 3575 ₽/мес. | 12 месяцев | Обзор курса | |
| Сетевые технологии Перейти на сайт курса | 21 840 ₽ | 1578 ₽/мес. | 2 месяца | Обзор курса | |
| Сетевые технологии Huawei Перейти на сайт курса | 11 830 ₽ | 938 ₽/мес. | 2 месяца | Обзор курса | |
| Системное администрирование и информационные технологии - курс переподготовки Перейти на сайт курса | 32 980 ₽ | 2748 ₽/мес. | 576 часов | Обзор курса |
Больше программ — в полном каталоге курсов по сетевому администрированию




