关于P2P打洞的一些记录
什么是P2P?
P2P(点对点)连接是一种网络架构,其中各个节点(计算机或设备)可以直接相互通信和共享资源,而不需要依赖中心服务器。每个节点既可以是客户端,也可以是服务器,形成一个对等的网络。
P2P的工作原理
在P2P网络中,节点通过特定的协议直接连接,进行数据传输。常见的P2P应用包括文件共享(如BitTorrent)、即时通讯(如Skype)和区块链技术(如比特币)。
P2P的优点
- 去中心化:没有单一的控制点,减少了单点故障的风险,提高了网络的鲁棒性。
- 资源共享:节点可以共享自己的计算能力、存储和带宽,增强了资源的利用率。
- 成本效益:由于没有中央服务器,运营和维护成本通常较低,用户可以免费使用或以较低的费用享受服务。
- 隐私保护:P2P网络中的用户通常可以在一定程度上保护自己的身份,增强了隐私性。
- 扩展性:P2P网络能够轻松扩展,新增节点可以自然地融入网络,不会对现有结构造成显著影响。
- 故障容忍性:即使某些节点下线,其他节点仍然可以继续保持网络的运作,提供更高的稳定性。
- 快速传输:在文件分享和数据传输方面,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 Cone或Port 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 |
我第一次测试是对称性的NAT类型,我登录了猫盒,改了桥接模式,通过路由器进行拨号上网
光猫改桥接具体根据猫盒型号自行百度
在猫盒上设置打开UPnp
我的路由器是Padavan固件,将路由器防火墙的NAT类型修改为Full Cone NAT类型。
进行了以上设置以后我再次进行了检测,这时候已经是全锥形了。
根据以上总结,我现在已经是NAT1,我对任何外网电脑进行打洞基本就有很大成功率了!