同 LAN mDNS vs WebRTC Nearby:LANDrop 怎么选
并行存在的两条路径
LANDrop 内部同时维护两套发现 + 传输链路:
| 维度 | 同 LAN mDNS 组播 | WebRTC Nearby Sharing |
|---|---|---|
| 前提条件 | 双方必须在同一个 Wi-Fi(包括热点) | 双方物理位置足够近即可,不需要同网络 |
| 发现机制 | mDNS 组播到 224.0.0.251 | WebRTC ICE 候选交换 |
| 传输路径 | 局域网直连,点对点 | ICE NAT 穿透后点对点,极端情况走 TURN 中继 |
| 速度上限 | 路由器物理吞吐(50-150 MB/s) | 取决于外部网络 + 运营商(1-20 MB/s) |
| 功耗 | 低 | 中(WebRTC 扫描更耗电) |
| 首次引入 | v2.0 组播协议升级 | v2.7.0 近场分享大版本 |
LANDrop 怎么选择
LANDrop 的策略是 先 LAN、后 Nearby:
- 启动后立即开始 mDNS 组播;
- 同时扫描 WebRTC ICE 候选,看有没有物理足够近的设备;
- 同一台设备可能同时出现在 LAN 发现列表和 Nearby 列表里——LANDrop 会优先走 LAN 链路;
- 如果 LAN 完全没发现任何设备,但 Nearby 发现了,LANDrop 就自动退化为 Nearby 模式。
用户不需要手动切换,LANDrop 根据当前网络状况自动决策。
各自的适用场景
LAN mDNS 组播:家里、办公室、公司网络等固定 Wi-Fi 环境——速度最快、延迟最低、最省电。
WebRTC Nearby Sharing:会议室临时互传、朋友聚会各自不同运营商网络、公共 Wi-Fi 被 NAT 隔离导致组播不通。LANDrop 官网对 Nearby Sharing 的定位就是 "*send files to nearby devices without the need to join the same Wi-Fi network"*。
Nearby 的 NAT 穿透失败
WebRTC Nearby 场景下,如果双方的 NAT 类型太严格(比如运营商级 NAT、对称 NAT),ICE 候选交换可能失败。此时:
- LANDrop 会尝试通过内置的 STUN 服务器做 NAT 穿透(WebRTC 标准行为);
- 如果 STUN 也失败,它会退化为无法发现;
- 这种情况下手动 IP 连接通道(下一页)是唯一出路。