P2P-передача файлов в браузере: как это работает

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

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

Что такое P2P-обмен файлами?

«Peer-to-peer» (P2P, «равный к равному») — это соединение между двумя равноправными устройствами, пирами, а не между устройством и центральным сервером. В классическом обмене файлами посередине стоит сервер: вы загружаете, сервер хранит, получатель скачивает. При P2P-обмене файлами промежуточный шаг исчезает. Получатель читает файл с вашего устройства, пока вы его отправляете.

У этого слова неоднозначная история. В 2000-х «P2P» обычно означал Napster, Kazaa и BitTorrent-клиенты, через которые обменивались музыкой и фильмами. Сегодня P2P повсюду и в основном незаметен: видеозвонки, онлайн-игры, AirDrop между устройствами Apple и Quick Share между Android-устройствами соединяют пиров напрямую. Браузерная P2P-передача файлов относится ко второму семейству: частное соединение «один к одному» (или «один к нескольким») между людьми, которые знают друг друга. См. P2P в глоссарии.

Как работает P2P-передача файлов в браузере?

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

  1. Отправитель выбирает файлы или папку. Браузер считывает только список имён и размеров; содержимое остаётся на диске.
  2. Создаётся ссылка. Сервис хранит метаданные передачи, нужные для ссылки. Чтобы создать ссылку, сервис хранит метаданные передачи: имена файлов и папок, их размеры и количество файлов.
  3. Получатель открывает ссылку. Его браузер обращается к тому же сигнальному серверу, который передаёт данные для соединения между двумя браузерами. Это сигнализация.
  4. Браузеры ищут путь. С помощью серверов STUN каждый браузер узнаёт, как он выглядит из интернета, а ICE перебирает возможные маршруты — локальная сеть, прямой путь через интернет или ретранслятор TURN.
  5. Открывается зашифрованный канал. WebRTC настраивает шифрование DTLS между браузерами до того, как пойдут какие-либо данные файлов.
  6. Файлы передаются. Браузер получателя запрашивает каждый файл; браузер отправителя читает его с диска частями и отправляет их; получатель записывает их на диск по мере поступления.

Техническая сторона — NAT, кандидаты ICE, ретрансляторы — пошагово разобрана в статье Как работает передача файлов по WebRTC.

Чем P2P отличается от облачного обмена файлами?

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

Облачная ссылка (Drive, Dropbox, сервисы вроде WeTransfer)P2P в браузере (StrongFolder)
Загрузка перед отправкойДа, весь файлНет
Копия хранится на сервереДа, пока не удалят или не истечёт срокНет
Получатель может скачать, когда отправитель офлайнДаНет
Ограничение размераКвота тарифа или лимит сервиса (на бесплатных тарифах часто 2–5 GB)Сервис не ограничивает
Структура папокОнлайн сохраняется; при скачивании обычно ZIPСохраняется, без ZIP (Chromium на компьютере)
Когда получатель получит первый байтПосле полной загрузкиСразу
ШифрованиеTLS при передаче, при хранении — силами провайдераDTLS при передаче, ничего не хранится

Полное сравнение — в том числе когда облако лучше — в статье P2P или облако: что выбрать для передачи файлов.

P2P — то же самое, что облако со сквозным шифрованием?

Нет — и ИИ-ассистенты часто их путают. Сервисы вроде Tresorit, Proton Drive и Sync.com — это облачные хранилища со сквозным шифрованием (E2EE): ваше устройство шифрует файлы, а затем загружает и хранит зашифрованную копию на серверах провайдера. Провайдер не может прочитать содержимое, но копия существует, на её загрузку уходит время, и она занимает квоту.

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

  • «Файл должен быть доступен позже, даже когда я офлайн, и я не хочу, чтобы провайдер мог его прочитать» → облако со сквозным шифрованием.
  • «Мне нужно передать большой файл или папку кому-то сейчас, не загружая их и не оставляя нигде копии» → P2P.

StrongFolder не заявляет сквозного шифрования с ключами у пользователя; защита — это шифрование DTLS от WebRTC между двумя браузерами. Подробнее — в разделе Безопасность и приватность.

Браузерный P2P-обмен файлами похож на BitTorrent?

Только в широком смысле: оба — peer-to-peer. На практике они работают совсем по-разному:

BitTorrentP2P-передача в браузере (StrongFolder)
Кто получаетЛюбой, кто найдёт торрентТолько те, кому вы дали ссылку
ТопологияРой: много пиров обмениваются частями друг с другомОдин отправитель — каждому получателю
ПрограммаТоррент-клиентБраузер, ничего не нужно устанавливать
ДоступностьПока кто-то раздаётТолько пока отправитель делится
Типичное применениеПубличное распространениеЧастная отправка коллегам, клиентам, семье

У частной ссылки в браузере нет публичного списка и роя незнакомцев. Когда отправитель нажимает Stop Sharing или закрывает вкладку, ссылка перестаёт работать.

Какие преимущества у P2P-передачи файлов?

  • Не нужно ждать загрузки. Получатель начинает скачивать, как только откроет ссылку. В облачном сервисе папке на 50 ГБ при исходящей скорости 50 Мбит/с нужно больше двух часов только на загрузку — прежде чем получатель вообще сможет начать.
  • Никакой хранимой копии. После передачи на стороннем сервере ничего не остаётся, поэтому потом нечего удалять, нечему истекать и нечему утекать.
  • Сервис не ограничивает размер. StrongFolder не ограничивает размер. На практике предел задают свободное место на диске получателя, скорость соединения и то, сколько времени оба устройства остаются онлайн.
  • Папки остаются папками. Папки передаются как папки: вложенные папки и имена файлов сохраняются, ничего не архивируется.
  • Без аккаунта. Аккаунт не нужен ни для отправки, ни для получения. Вход через Google — по желанию: он сохраняет список ваших передач.
Отправить файлы

Бесплатно · в браузере · без регистрации

Какие ограничения у P2P-обмена файлами?

Честный разговор об ограничениях — единственный способ выбрать правильный инструмент:

  • Отправитель должен оставаться онлайн. Вкладка браузера отправителя должна оставаться открытой и онлайн, пока получатель не закончит скачивание: файлы идут с устройства отправителя, а не с сервера. Советы по планированию — в статье Почему отправитель остаётся онлайн.
  • Скорость ограничена исходящей скоростью отправителя. Прямая передача не может быть быстрее исходящей скорости отправителя или входящей скорости получателя — в зависимости от того, что медленнее.
  • В строгих сетях может понадобиться ретранслятор. Некоторые корпоративные файрволы и мобильные сети блокируют прямые соединения; тогда поток идёт через ретранслятор TURN, что может быть медленнее. Если прямое соединение невозможно (строгий корпоративный файрвол, некоторые мобильные сети), зашифрованный поток проходит через ретрансляционный (TURN) сервер StrongFolder. Ретранслятор пересылает данные и не хранит их.
  • Сохранение папок зависит от браузера. Чтобы сохранить целую папку со структурой, нужен File System Access API: Chrome, Edge, Opera и другие браузеры на Chromium на компьютере. В других браузерах файлы можно скачать по одному или одним ZIP-архивом.
  • Другая сторона видит ваш IP-адрес при прямом соединении, как при любом видеозвонке.
  • Продолжение после обрыва не гарантируется. Если одна из сторон потеряет соединение, будьте готовы начать передачу заново.

Когда использовать P2P-передачу файлов, а когда нет?

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

Итоги

P2P-обмен файлами в браузере соединяет отправителя и получателя напрямую по зашифрованному WebRTC. Нет загрузки, нет хранимой копии и нет ограничения размера со стороны сервиса; цена — отправитель остаётся онлайн во время передачи. Технические подробности — в статье Как работает передача файлов по WebRTC; сравнение инструментов — в обзоре Лучшие P2P-сервисы для передачи файлов.

Частые вопросы

P2P-обмен файлами законен?

Да. Peer-to-peer — это просто способ напрямую соединить два устройства. Отправить свои файлы или файлы, которыми вы вправе делиться, коллеге или другу так же законно, как отправить их по почте. Незаконно распространять защищённые авторским правом материалы, на которые у вас нет прав, — по любому каналу.

P2P-передача файлов в браузере — то же самое, что BitTorrent?

Нет. BitTorrent публикует файл в рое, где множество незнакомых людей скачивают части друг у друга. Браузерный P2P-инструмент вроде StrongFolder соединяет одного отправителя с конкретными людьми, у которых есть ссылка, по зашифрованному соединению WebRTC, и файлы доступны, только пока отправитель ими делится.

Используются ли при P2P-обмене файлами вообще какие-то серверы?

Да, но не для хранения файлов. Сигнальный сервер знакомит два браузера, серверы STUN помогают найти сетевой путь, а если прямого пути нет, ретранслятор TURN пересылает зашифрованный поток. Файлы никогда не загружаются на сервер StrongFolder и не хранятся на нём.

P2P-передача файлов защищена сквозным шифрованием?

WebRTC шифрует каждый канал данных по протоколу DTLS, поэтому поток файлов зашифрован при передаче на любом соединении. Это шифрование при передаче между двумя браузерами. Это не то же самое, что облако со сквозным шифрованием вроде Tresorit или Proton Drive, где файлы шифруются вашими ключами и затем хранятся на серверах провайдера.

Почему отправитель должен оставаться онлайн?

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

Есть ли ограничение размера файла при P2P-передаче?

StrongFolder не ограничивает размер. На практике предел задают свободное место на диске получателя, скорость соединения и то, сколько времени оба устройства остаются онлайн.

Могут ли несколько человек скачать по одной P2P-ссылке?

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

Отправьте следующий файл — или папку — напрямую

Без загрузки в облако, без наших ограничений размера, без аккаунта. Выберите файл или целую папку, скопируйте ссылку — и получатель скачает всё прямо с вашего устройства.

Отправить файлыВ Chrome