QUIC 的 P2P 愿景 (2024)
A P2P Vision for QUIC (2024)

原始链接: https://seemann.io/posts/2024-10-26---p2p-quic/

## QUIC 与 NAT 穿越的未来 多年来,通过网络地址转换器 (NAT) 和防火墙建立直接连接(使用 STUN、ICE 和 TURN 等协议)一直很复杂。本文探讨了现代传输协议 QUIC 如何为点对点 (p2p) 网络提供一个简化的解决方案。 传统上,p2p 连接依赖于通过 STUN 发现公网 IP 地址,协调“打孔”以打开防火墙路径(ICE),并在无法建立直接连接时回退到中继服务器(TURN)。QUIC 通过**连接迁移**简化了这一点,允许连接切换到新的 IP 地址——这对于更改网络的移动设备非常有用。 QUIC 通过探测新路径来实现类似“打孔”的效果,并且可以利用新的 **QUIC 地址发现**机制来取代 STUN,安全地交换地址信息。此外,QUIC 可以利用 **基于 HTTP 的 UDP 代理**(通过 RFC 9298 和相关草案)进行可靠的中继,在无法建立直接连接时使用,甚至允许节点通过代理 *监听*。 虽然仍在不断发展,但这种基于 QUIC 的方法有望为 NAT 穿越提供更强大、更高效的解决方案,从而可能简化 p2p 网络开发并改善连接性。 持续的工作包括为实现更高的弹性和性能而调整系统以适应多路径连接。

## P2P over QUIC:Hacker News 讨论总结 这次 Hacker News 的讨论围绕着使用 QUIC 协议构建点对点 (P2P) 连接的可行性。QUIC 基于 UDP,由于更容易穿透 NAT,非常适合 P2P,但仍然存在挑战。 一个关键问题是 NAT 穿透——某些 NAT 配置(对称 NAT、CG-NAT)本质上会阻止 P2P 连接。虽然存在 TURN 服务器等解决方案,但它们引入了中继,从而否定了直接 P2P 的优势。参与者们争论穿透 NAT 是否真的会被“禁止”,一些人指出 SOCKS 代理或 CG-NAT 等网络限制实际上会阻止它。 提到了几个项目,包括 `qotp` 和 `qh`,它们探索了在 QUIC 之上进行加密,以及 Yggdrasil,一个利用 QUIC 和自签名证书的 P2P 网络。讨论还涉及了 WebTransport,一个相关的协议,以及浏览器中 P2P 支持的可能性。 最终,共识是虽然 P2P over QUIC 是可行的,但它并非普遍可靠,并且通常需要解决方法或接受一定比例的连接失败。
相关文章

原文