Decentralized Hole Punching
1 INTRODUCTION
- 消费者设备以及公司网络中的计算机通常位于网络地址转换器(NAT)和(或)防火墙后面。这些设备通常允许(相对)不受阻碍地从网络内部访问互联网,但会阻止从互联网上的计算机到网络上的本地机器的传入连接。
- 虽然这种网络配置提供了安全和隐私优势,但它对对等(p2p)应用程序的连接提出了重大挑战[6]。在大多数对等网络中,只有一小部分节点资源充足且可公开访问。大多数节点在有限的资源和防火墙和/或NAT后面运行。这些有限节点之间的直接连接是对等网络整体正常运行的关键。因此,已经开发了所谓的“hole punching”技术,以促进位于此类NAT和防火墙后面的节点之间建立直接连接。最近的测量[?]发现IPFS p2p网络中约52%的节点位于NAT之后。
- 传统上,启动需要运行STUN(NAT会话穿越实用程序/Session Traversal Utilities for NAT)的协调服务器和ICE(交互式连接建立/Interactive Connectivity Establishment)的协调
- 因此,分散这种基础设施使网络更能抵御有针对性的攻击和诱惑的审查,同时消除了维护服务器的必要性。
2 NATSANDFIREWALLS
- NAT可以通过将地址从内部网络中的节点映射到外部(面向互联网)地址的方式进行分类。本文将使用RFC 4787[5]中使用的术语。一般来说,NAT是一种将内部地址元组 𝑋 : 𝑥 𝑋:𝑥 X:x(IP和端口)映射到外部地址元组 𝑋 ′ : 𝑥 ′ 𝑋':𝑥' X′:x′的设备。NAT类型是通过查看由NAT配置的结果( 𝑋 1 ′ : 𝑥 1 ′ 𝑋_1':𝑥_1' X1′:x1′与 𝑋 2 ′ : 𝑥 2 ′ 𝑋_2':𝑥_2' X