开源大世界

kydsj.vip 【首页】

用户工具

站点工具


wiki:p2p通信技术

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

后一修订版
前一修订版
wiki:p2p通信技术 [2024/04/20 07:21] – 创建 mathwiki:p2p通信技术 [2024/04/28 10:18] (当前版本) – [相关] math
行 4: 行 4:
  
  
-根据客户端的不同,客户端之间进行P2P传输的方法也略有不同,这里介绍了现有的穿越中间件进行P2P通信的几种技术。+根据客户端的不同,客户端之间进行P2P传输的方法也略有不同,这里介绍了现有的穿越[[网络地址转换器|NAT]]进行P2P通信的几种技术。
  
 ===== 2.1 中继(Relaying) ===== ===== 2.1 中继(Relaying) =====
行 52: 行 52:
 虽然当前许多P2P系统采用了这种技术,但它的局限性也很明显:只有当至少一方具有公网IP时,连接才能成功建立。随着越来越多的场景出现双方都位于NAT之后的情况,就需要采用我们接下来要介绍的第三种技术。 虽然当前许多P2P系统采用了这种技术,但它的局限性也很明显:只有当至少一方具有公网IP时,连接才能成功建立。随着越来越多的场景出现双方都位于NAT之后的情况,就需要采用我们接下来要介绍的第三种技术。
  
-==== 2.3 UDP打洞(UDP hole punching) ====+===== 2.3 UDP打洞(UDP hole punching) =====
  
 ---- ----
行 59: 行 59:
 这是一种流行的P2P通信方法,称为“UDP打洞”,它依赖于防火墙和多数NAT设备的行为,这些设备允许通过合法的P2P程序在中间介质中开辟通路以建立直接的连接。这里主要介绍两种常见的情况和应用程序如何高效处理这些情况。第一种情况是两个客户端分别处于不同的NAT背后,这代表了大多数情形;第二种是两个客户端位于同一NAT背后,且这对客户端通常不会意识到这一点。 这是一种流行的P2P通信方法,称为“UDP打洞”,它依赖于防火墙和多数NAT设备的行为,这些设备允许通过合法的P2P程序在中间介质中开辟通路以建立直接的连接。这里主要介绍两种常见的情况和应用程序如何高效处理这些情况。第一种情况是两个客户端分别处于不同的NAT背后,这代表了大多数情形;第二种是两个客户端位于同一NAT背后,且这对客户端通常不会意识到这一点。
  
-=== 2.3.1. 不同NAT后的端点 ===+==== 2.3.1. 不同NAT后的端点 ====
  
 ---- ----
行 86: 行 86:
 UDP打洞技术的优势在于,一旦建立了P2P连接,连接双方都可以作为“中介服务器”辅助背后NAT的其他客户端进行打洞,从而大幅减少了服务器的压力。无论是否存在中间件,或者存在多少中间件,这种技术都能成功建立通信连接。 UDP打洞技术的优势在于,一旦建立了P2P连接,连接双方都可以作为“中介服务器”辅助背后NAT的其他客户端进行打洞,从而大幅减少了服务器的压力。无论是否存在中间件,或者存在多少中间件,这种技术都能成功建立通信连接。
  
-=== 2.3.2. 相同NAT后的端点 ===+==== 2.3.2. 相同NAT后的端点 ====
  
 ---- ----
行 113: 行 113:
  
  
-=== 2.3.3. 多级NAT后的端点 ===+==== 2.3.3. 多级NAT后的端点 ====
  
 ---- ----
行 146: 行 146:
 最终,他们只能依赖服务器S来进行UDP打洞,然后通过自己的NAT设备进行所谓的回环传输。 最终,他们只能依赖服务器S来进行UDP打洞,然后通过自己的NAT设备进行所谓的回环传输。
  
-=== 2.3.4. 固定端口绑定 ===+==== 2.3.4. 固定端口绑定 ====
  
 ---- ----
行 152: 行 152:
  
 UDP打洞技术依赖于一个条件:参与的NAT设备必须是Cone NAT类型或者类似的非NAT防火墙,这些设备能够维持内网IP和端口到公网IP和端口的固定映射。只要UDP端口处于活跃状态,映射就保持不变。如果像对称NAT那样,每个新的会话都分配新的公网端口,则UDP打洞就无法建立已经打通的通信链路。幸运的是,Cone NAT在今天被广泛使用,即使有一小部分对称NAT不支持这种打洞技术,UDP打洞还是一个广泛应用的解决方案。 UDP打洞技术依赖于一个条件:参与的NAT设备必须是Cone NAT类型或者类似的非NAT防火墙,这些设备能够维持内网IP和端口到公网IP和端口的固定映射。只要UDP端口处于活跃状态,映射就保持不变。如果像对称NAT那样,每个新的会话都分配新的公网端口,则UDP打洞就无法建立已经打通的通信链路。幸运的是,Cone NAT在今天被广泛使用,即使有一小部分对称NAT不支持这种打洞技术,UDP打洞还是一个广泛应用的解决方案。
 +
 +
 +===== 相关 =====
 +
 +----
 +
 +[[openvpn]]   [[frp]]
 +
wiki/p2p通信技术.1713568873.txt.gz · 最后更改: 2024/04/20 07:21 由 math

⭐24小时内访问人数:【1025】⭐