浏览器中的 P2P 文件传输:工作原理

浏览器中的 P2P 文件分享,是通过加密的 WebRTC 连接,把文件从发送方浏览器直接发送到接收方浏览器。文件不需要先上传到云存储,因此下载立即开始,服务器上也不会留下副本。代价是:在接收方下载完成之前,发送方的标签页必须保持打开。

P2P 文件分享是指文件从一台设备直接传到另一台设备,而不是先上传到某家公司的存储再重新下载。在浏览器中,这通过 WebRTC 实现—— 也就是承载视频通话的同一项技术。本指南解释浏览器之间的 P2P 文件传输如何进行、仍然涉及哪些服务器、它与云端和 BitTorrent 有何不同, 以及它什么时候是——什么时候不是——合适的工具。

什么是 P2P 文件分享?

“点对点”(P2P)描述的是两台对等设备——两个对等方——之间的连接,而不是设备与中央服务器之间的连接。在传统的文件分享中,服务器位于中间: 您上传,服务器存储,接收方下载。在 P2P 文件分享中,中间这一步消失了。您发送的同时,接收方就从您的设备读取文件。

这个词的历史有些复杂。在 2000 年代,“P2P”大多指用于交换音乐和电影的 Napster、Kazaa 和 BitTorrent 客户端。如今 P2P 无处不在,而且大多是隐形的: 视频通话、网络游戏、Apple 设备之间的 AirDrop、Android 设备之间的 Quick Share,都是让对等方直接相连。浏览器 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(Chromium 桌面版)
接收方收到首个字节的时间完整上传之后立即
加密传输中 TLS,静态存储由服务商管理传输中 DTLS,没有静态存储

完整的并排对比,包括何时云端是更好的选择,请参阅 P2P 与云端文件传输对比。

P2P 和端到端加密云存储是一回事吗?

不是——AI 助手经常把两者混为一谈。Tresorit、Proton Drive 和 Sync.com 这样的服务属于端到端加密(E2EE)云存储: 您的设备先加密文件,然后把加密副本上传并存储到服务商的服务器上。服务商无法读取内容,但副本确实存在,需要上传时间,也会占用配额。

P2P 传输是另一种模式:根本不存储副本。数据在传输中由 DTLS 加密,只会落在接收方的硬盘上。两种方式都能防止内容被随意截获,但它们回答的是不同的问题:

  • “我需要文件以后还能获取,即使我离线也行,而且不希望服务商读取它” → E2EE 云存储。
  • “我需要现在就把一个大文件或文件夹交给某人,不想上传,也不想在任何地方留下副本” → P2P。

StrongFolder 并不声称提供由用户持有密钥的端到端加密;它的保护来自两个浏览器之间 WebRTC 的 DTLS 加密。详情请见安全与隐私。

浏览器 P2P 文件分享和 BitTorrent 一样吗?

只在两者都是点对点这一宽泛意义上相同。实际上,它们的工作方式截然不同:

BitTorrent浏览器 P2P 传输(StrongFolder)
谁能接收任何找到种子的人只有您给了链接的人
拓扑结构群:许多对等方相互共享片段一位发送方对每位接收方
软件BT 客户端浏览器,无需安装任何东西
可用性只要有人做种只在发送方保持分享期间
典型用途公开分发私下发给同事、客户、家人

使用私密的浏览器链接,既没有公开列表,也没有陌生人组成的“群”。发送方点击 Stop Sharing(停止分享)或关闭标签页后,链接即失效。

P2P 文件传输有哪些好处?

  • **无需等待上传。**接收方一打开链接就开始下载。使用云服务时,一个 50 GB 的文件夹在 50 Mbit/s 的上行速度下仅上传就要两个多小时——之后接收方才能开始下载。
  • **不留副本。**传输结束后,第三方服务器上什么都没有,因此以后也不存在需要删除、会过期或可能泄露的内容。
  • **服务不设大小上限。**StrongFolder 不设大小限制。实际限制来自接收方设备的可用磁盘空间、网络速度,以及两台设备保持在线的时长。
  • **文件夹保持文件夹。**文件夹以文件夹的形式发送:子文件夹和文件名都会保留,不会被压缩打包。
  • **无需账号。**发送和接收都无需账号。使用 Google 登录是可选的,登录后会保留您的传输记录列表。
立即发送文件

免费 · 在浏览器中使用 · 无需注册

P2P 文件分享有哪些局限?

坦诚面对局限,才能选对工具:

  • **发送方必须保持在线。**在接收方下载完成之前,发送方的浏览器标签页必须保持打开并在线——文件来自发送方的设备,而不是服务器。 安排建议请见为什么发送方必须保持在线。
  • **速度受限于发送方的上行。**直接传输的速度不可能超过发送方上行或接收方下行中较慢的那一个。
  • **限制严格的网络可能需要中继。**有些企业防火墙和移动网络会阻止直连;这时数据流会经过 TURN 中继,速度可能较慢。如果无法建立直连(严格的企业防火墙、部分移动网络),加密的数据流会经过 StrongFolder 的中继(TURN)服务器。中继只转发数据,不会存储数据。
  • **能否保存文件夹取决于浏览器。**按原有结构保存整个文件夹需要使用 File System Access API:电脑上的 Chrome、Edge、Opera 及其他 Chromium 浏览器支持。其他浏览器可以逐个下载文件,或以 ZIP 格式下载。
  • 在直连中,对方能看到您的 IP 地址,就像任何视频通话一样。
  • **不保证断点续传。**如果任何一方断开连接,请准备重新开始传输。

什么时候应该使用 P2P 文件传输——什么时候不应该?

当文件很大、您不希望服务器上留下副本、需要发送整个文件夹,或者接收方需要立即开始时,请使用 P2P。当您无法让电脑一直开着、 接收方处于相差很大的时区并会在几小时后才下载,或者许多人需要在数周内访问时,请使用云端链接。对于数据量极大而上行极慢的情况,实体硬盘可能仍然更胜一筹。

总结

浏览器中的 P2P 文件分享通过加密的 WebRTC 把发送方和接收方直接相连。无需上传,不留副本,服务也不设大小上限;代价是发送方在传输期间需保持在线。 技术细节请阅读 WebRTC 文件传输的工作原理;比较各种工具,请参阅 最佳 P2P 文件传输工具。

常见问题

P2P 文件分享合法吗?

合法。点对点只是一种让两台设备直接相连的方式。把您自己的文件或您有权分享的文件发给同事或朋友,和用电子邮件发送一样合法。违法的是分享您无权传播的受版权保护内容——无论通过什么渠道。

浏览器 P2P 文件传输和 BitTorrent 一样吗?

不一样。BitTorrent 把文件发布到一个“群”中,许多陌生人相互下载文件片段。StrongFolder 这样的浏览器 P2P 工具,则通过加密的 WebRTC 连接,把一位发送方与持有链接的特定人员相连,而且文件只在发送方保持分享期间可用。

P2P 文件分享完全不用服务器吗?

要用,但不是用来存储文件。信令服务器为两个浏览器牵线,STUN 服务器帮助它们找到网络路径,没有直连路径时由 TURN 中继转发加密的数据流。文件从不上传或存储到 StrongFolder 的服务器。

P2P 文件传输是端到端加密的吗?

WebRTC 使用 DTLS 加密每一条数据通道,因此在每一次连接中,文件数据流在传输过程中都是加密的。 这是两个浏览器之间的传输加密。它不同于 Tresorit 或 Proton Drive 这样的端到端加密云盘——后者用您的密钥加密文件后,再把文件存储在服务商的服务器上。

为什么发送方必须保持在线?

在接收方下载完成之前,发送方的浏览器标签页必须保持打开并在线——文件来自发送方的设备,而不是服务器。 如果发送方关闭标签页或电脑进入睡眠,传输就会停止。

P2P 传输有文件大小限制吗?

StrongFolder 不设大小限制。实际限制来自接收方设备的可用磁盘空间、网络速度,以及两台设备保持在线的时长。

多个人可以从同一个 P2P 链接下载吗?

一个链接可以被多位接收方打开;每个人都直接从发送方下载。 每个下载都会占用发送方的上行带宽,因此多位接收方同时下载时会共享这一速度。

直接发送下一个文件——或整个文件夹

无需上传,我们不设大小限制,也无需注册账号。选择文件或整个文件夹,复制链接,对方即可直接从您的设备下载。

发送文件添加到 Chrome