P2P0_Banner

什么是P2P?

P2P(点对点)连接是一种网络架构,其中各个节点(计算机或设备)可以直接相互通信和共享资源,而不需要依赖中心服务器。每个节点既可以是客户端,也可以是服务器,形成一个对等的网络。

P2P的工作原理

在P2P网络中,节点通过特定的协议直接连接,进行数据传输。常见的P2P应用包括文件共享(如BitTorrent)、即时通讯(如Skype)和区块链技术(如比特币)。

P2P的优点

  1. 去中心化:没有单一的控制点,减少了单点故障的风险,提高了网络的鲁棒性。
  2. 资源共享:节点可以共享自己的计算能力、存储和带宽,增强了资源的利用率。
  3. 成本效益:由于没有中央服务器,运营和维护成本通常较低,用户可以免费使用或以较低的费用享受服务。
  4. 隐私保护:P2P网络中的用户通常可以在一定程度上保护自己的身份,增强了隐私性。
  5. 扩展性:P2P网络能够轻松扩展,新增节点可以自然地融入网络,不会对现有结构造成显著影响。
  6. 故障容忍性:即使某些节点下线,其他节点仍然可以继续保持网络的运作,提供更高的稳定性。
  7. 快速传输:在文件分享和数据传输方面,P2P网络可以利用多个节点并行传输,往往比传统服务器更快。

通过P2P打洞前提:

首先你要知道什么是NAT

传送门:NAT百度百科

其次非常非常重要的一点是要知道当前网络的NAT类型

NAT 类型
NAT1 Full Cone 完全锥形NAT
NAT2 Address-Restricted Cone 地址限制锥形NAT
NAT3 Port-Restricted Cone 端口限制锥形NAT
NAT4 Symmetric 对称式NAT(动态NAT)

可以简单理解为NAT1非常容易打洞,如果你的网络环境是NAT4则很难打洞。

如果需要打洞的两个网络环境都是Symmetric NAT则**100%**不可能打洞成功。

(其实也有例外,将你的内网某一机器暴露在公网环境下DMZ,不建议这么做!)

如果其中一个网络环境为Full Cone则有很大的概率打洞成功。

1.双方中只要有一方是Full Cone,可以直连
2.双方都是Restricted ConePort Restricted Cone,这种情况可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
3.一方为Restricted Cone,另一方为Symmetric NAT,可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端
4.一方为端口Port Restricted Cone,另一方为Symmetric NAT,这种情况无法打洞,数据要走N2N服务器中转
5.双方都为Symmetric NAT,这种情况也是无法打洞的,数据要走N2N服务器中转

CSDN资料:【网络】P2P打洞原理(简单描述)

类型 类型 是否可以打通
全锥形(NAT1) 全锥形(NAT1) Y
全锥形(NAT1) 受限锥形(NAT2) Y
全锥形(NAT1) 端口受限锥形(NAT3) Y
全锥形(NAT1) 对称性(NAT4) Y
受限锥形(NAT2) 受限锥形(NAT2) Y
受限锥形(NAT2) 端口受限锥形(NAT3) Y
受限锥形(NAT2) 对称性(NAT4) Y
端口受限锥形(NAT3) 端口受限型(NAT3) Y
端口受限锥形(NAT3) 对称性(NAT4) X
对称性(NAT4) 对称性(NAT4) X

如何测试NAT类型?

NatTypeTester_NAT类型测试工具:https://zhangzhilong.lanzouw.com/icmLM2d9oyyh

打开测试工具

默认的服务器不能用了

输入stun.miwifi.com进行测试

1
stun.miwifi.com

image-20241024205741456

我第一次测试是对称性的NAT类型,我登录了猫盒,改了桥接模式,通过路由器进行拨号上网

光猫改桥接具体根据猫盒型号自行百度

在猫盒上设置打开UPnp

image-20241027171826141

我的路由器是Padavan固件,将路由器防火墙的NAT类型修改为Full Cone NAT类型。

image-20241027171447359

进行了以上设置以后我再次进行了检测,这时候已经是全锥形了。

image-20241027173628167

根据以上总结,我现在已经是NAT1,我对任何外网电脑进行打洞基本就有很大成功率了!

zerotier

官网:https://www.zerotier.com/