webrpc 三层通道:局域网直连、P2P、中转,为何回家传网盘会突然变爽

我是 webrpc 作者。SDK、Token 和开发文档在 https://webrpc.cn。

用 webrpc 一段时间的人,常有这种体感:

人在外面,往家里的个人网盘传一段视频,能传,但速度一般。进门连上家里 Wi‑Fi,同一个会话还开着,进度条却像换了条路------延迟下来了,带宽上去了,传大文件突然「顺」了。

这不是心理作用,也不是你手动点了「切换线路」。webrpc 底下有 三层通信通道 :局域网直连、P2P 打洞直连、中转(Relay)。发送时优先走更优的层;当时走不通,就先用能通的;SDK 还会 一直重试 更优的两层。网络环境变好之后,不必关会话、不必重登,流量可以升到更好的通道上。

webrpc 是面向无公网 IP 的跨平台 P2P 通信 SDK:Token 标识设备,登录后建加密会话,再用 SendData / SendFile 收发。官网:https://webrpc.cn。个人网盘成品见 mywebdisk,桌面客户端见 File2File。

三层分别是什么

没有神秘代号,按实际能力理解即可:

1. 局域网直连(优先)

两端已经在同一内网------例如都连家里路由器、中间是交换机------数据可以走局域网直连。延迟和带宽主要由你家里的网络设备决定,不再绕公网,也不吃中转服务器的带宽。

人在家用 File2File 往 mywebdisk 传 4K 视频、工程素材,往往就是这一层在干活。体感上最接近「拷到旁边那台电脑」。

2. P2P 打洞直连(其次)

两端不在同一局域网,但仍尽量点对点打通。打通之后,流量主要吃两边的本地上下行,而不是把整份文件长期灌进中转。跨运营商、家宽打 4G,常见期望落在这一层。

3. 中转 Relay(兜底)

局域网和 P2P 当时都走不通时,会话还可以走中转,让业务先可用。中转是 兜底 ,不是默认首选:能力受中转侧公网带宽约束(个人版等套餐里对 relay 有带宽能力说明,以 控制台 为准)。能直连时,大文件体验通常明显更好。

选用顺序:能优则优

发送数据时,SDK 的优先级是:

  1. 局域网直连 能通 → 走局域网
  2. 否则试 P2P
  3. 再否则走 Relay 中转

业务代码 不能、也不需要 指定「这一包必须走第几层」。没有查询当前线路的接口。你从 速度、流畅度、传文件时的带宽表现 就能感觉到通道是否变好了。

这和 OpenSession / SendData / SendFile 的用法是分开的:你负责建会话、发业务;选路和升级通道是连接层的事。

为什么「不用重开会话」也很重要

SDK 会 持续重试 局域网通道和 P2P 通道。没有固定的「回家后 N 秒一定切换」------取决于重试何时成功、当时网络是否允许。

典型过程是这样:

  1. 人在地铁或公司,内网不可达,P2P 也可能暂时失败,会话先靠中转或较慢路径保持可用。
  2. 回到家,手机连上家里 Wi‑Fi,和 NAS / 跑 mywebdisk 的电脑进了同一局域网。
  3. 重试打通局域网直连后,同一条业务会话继续用,流量升到内网。
  4. 你不必退出登录、不必重新 OpenSession、不必让用户点「刷新线路」。

P2P 同理:一开始跨网打不通,换到另一个网络环境后打通了,会话同样可以升上去,继续享受更好的直连带宽。

对做产品的人,这意味着:

  • 不要把「当前有点慢」理解成「会话废了,必须重连」;先看是不是还在兜底路径上。
  • 不要在 UI 上强迫用户「到家后请重新连接才能加速」------底层已经在重试更优层。
  • 超时、重试、失败提示仍然要做:升通道需要时间,且不保证某一时刻一定升成功;握手与打洞也不能承诺任意网络百分百成功。

几个真实场景

场景 A:在家往个人网盘丢视频

电脑或手机与 mywebdisk 同网段时,走局域网直连,交换机带宽就是上限。这是「体验最爽」的一档,也是很多人第一次觉得「这哪是网盘,简直是内网拷贝」的时候。

场景 B:人在外面,家里 NAS 在线

没有公网 IP 也能建会话。当时若只能中转或较慢的 P2P,先保证能浏览、能传;进门连家中 Wi‑Fi 后,同一会话可能升到局域网,后续传输明显加快。

场景 C:两台设备跨网传大文件

优先指望 P2P 直连;直连不成才中转。中转能救命,但不是为大文件长期灌公网中转而设计的主路径。套餐里的中转是连通兜底;能直连时,直连更划算、也更好用。

场景 D:手机在热点、电梯、弱网里晃

通道可能在兜底与重试之间起伏。业务侧用超时和可重试请求接住;等网络稳定,更优层通了,流畅度会自己回来------仍不必为了「换线路」拆会话。

和开发、付费怎么对齐

  • 开发 :照常 New → 登录 → 回调口 → OpenSession → SendData / SendFile。不要做「手动选 LAN/P2P/Relay」的配置项;做了也没有对应接口。
  • 体验:用进度、耗时、均速展示给用户;通道升级时,数字自己会好看起来。
  • 付费:个人版等买的是信令、中转兜底与 Token 等连通基建(详见套餐说明,以控制台为准)。中转保证「前两层都不行时还有退路」;真正爽的大文件,往往出在局域网或 P2P 直连上。

对照速查

三层分别是什么?

局域网直连、P2P 打洞直连、中转 Relay。优先顺序从前到后。

我能指定走哪一层吗?

不能,也不需要。SDK 自动选用并重试更优层。

怎么知道现在走的是哪一层?

没有查询接口。看传输速度、流畅度和带宽表现。

到家了要不要重新连接?

一般不必为「换更快通道」而重开会话。SDK 会重试局域网与 P2P;通了会升上去。何时成功没有固定秒数。

中转是不是越用越赚?

中转是兜底。大文件、尤其在家传 mywebdisk,局域网直连通常才是最优体验。

和 File2File / mywebdisk 有什么关系?

它们走 webrpc。人在家传网盘、人在外仍能连上家里目录,底层就是这套三层通道在自动优选。

完整 API 与 Token:https://webrpc.cn。记住一句就够:会话保持,通道可以变好;能走家里的交换机,就绝不必一直绕中转。

相关推荐
OnlineProxy2 天前
企业级代理服务器架构:合规性、NDA 诚信与灰色 P2P 网络风险防范
网络·架构·p2p
wdfk_prog3 天前
Wi-Fi Direct 源码分析(11):P2P-GROUP-STARTED 之后——Group Interface、IP 配置与真实数据通路
运维·服务器·网络协议·tcp/ip·asp.net·p2p·wifi-direct
wdfk_prog4 天前
Wi-Fi Direct 源码分析(09):从 P2P_CONNECT 到 GO Negotiation 完成
运维·服务器·ubuntu·golang·asp.net·p2p·wifi-direct
wdfk_prog6 天前
Wi-Fi Direct 教程 05:control socket 与 eloop——P2P_FIND 怎样进入 wpa_supplicant 命令解析器
运维·服务器·后端·网络协议·ubuntu·p2p·wifi-direct
wdfk_prog7 天前
Wi-Fi Direct教程 02:从 wpa_cli main() 到 P2P_FIND——用源码注释追踪 CLI 控制命令发送
运维·服务器·网络·网络协议·ubuntu·p2p·wifi-direct
wdfk_prog7 天前
Wi-Fi Direct 教程 04:Interface 协议子系统初始化——WPA/EAPOL、WPS、DPP/NAN、GAS 与 P2P callback
android·运维·服务器·ubuntu·p2p·wps·wifi-direct
SoStraw8 天前
跨平台P2P通信SDK,Windows/Android/iOS/Linux/macOS一套API全兼容
android·linux·windows·跨平台·p2p·webrpc
SoStraw15 天前
无公网IP远程访问设备,不用frp也能实现99.9%连通率
frp·内网穿透·p2p·远程访问·webrpc·无公网ip·file2file
SoStraw20 天前
从零接入 webrpc:按这份最小清单跑通双端,再写业务
sdk·p2p·入门·token·webrpc·opensession·senddata