默认

P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解

查看数: 514130 | 评论数: 45 | 收藏 32
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2016-10-10 11:56

正文摘要:

《P2P技术详解》系列文章 ➊ 本文是《P2P理论详解》系列文章中的第2篇,总目录如下: 《P2P技术详解(一):NAT详解——详细原理、P2P简介》《P2P技术详解(二):P2P中的NAT穿越(打洞)方案详解(基本原理篇)》 ...

评论

jonloh 发表于 6 个月前
IPSec VPN也是用NAT穿越
JackJiang 发表于 1 年前
引用:dawson 发表于 2023-01-28 20:59
文章写的这么好, 想问问站长, 为什么不把网站升级成 https 呀, 是因为讨厌吗?

是嫌麻烦,得改网站代码
dawson 发表于 1 年前
文章写的这么好, 想问问站长, 为什么不把网站升级成 https 呀, 是因为讨厌吗?
xxdbupt 发表于 1 年前
学习了,很有用
MenThus 发表于 2 年前
第三点的三种情景都没有讨论NAT为对称型的情况。
JackJiang 发表于 2 年前
引用:wzq1915414095 发表于 2021-06-01 20:52
大佬,我看了文章后,怎么感觉,这个p2p本质还是c/s架构呢,感觉p2p的客户端A与客户端B的通信时,数据还 ...

你没看懂吧,p2p需要server的目的是完成打洞,打洞成功后没server什么事了啊
wzq1915414095 发表于 2 年前
大佬,我看了文章后,怎么感觉,这个p2p本质还是c/s架构呢,感觉p2p的客户端A与客户端B的通信时,数据还是要经过server。是我理解出现问题了吗?求大佬解惑,谢谢
leaffei 发表于 3 年前
厉害了
masonhunk 发表于 3 年前
如果是全锥型NAT,是不是就不需要打洞了?因为全锥型,对方发过来的数据无脑转发给内网机器即可
JackJiang 发表于 3 年前
引用:Gangan_Master 发表于 2020-12-11 17:56
没有打洞成功,我使用的是SpringBoot+Netty+WebSocket,流程是1.本地内网启动两个客户端,并向公网服务器 ...

P2P还是能成功的,只是成功率没有想象的那么高
Gangan_Master 发表于 3 年前
引用:JackJiang 发表于 2020-08-30 22:00
你最终打洞成功了吗

没有打洞成功,我使用的是SpringBoot+Netty+WebSocket,流程是1.本地内网启动两个客户端,并向公网服务器注册,此时公网服务器拿到了两个客户端的对外公网IP+端口
2.客户端向彼此的对外公网IP发起连接请求(结果是均超时了)
后来分析原因可能是NAT设备对我的连接请求包给丢弃了,依据摘抄华为NAT设备配置手册
其中有这么一句话:
由于IPv4地址的短缺以及出于安全考虑等因素,在因特网中广泛采用了NAT技术。由于不同厂商实现的NAT功能不同,可能会导致使用STUN、TURN、ICE技术的应用软件无法穿越NAT,因为这些技术广泛依赖于SIP代理等软件。SIP属于多通道应用,在功能实现时需要创建多个数据通道链接。为了保障多个通道的链接,必须配置NAT映射模式和过滤方式,只允许符合映射关系、过滤条件的报文通过。

需要配置才能让外部IP对内部服务访问
这让我怀疑所谓的P2P、NAT穿越是否具有真正的可行性
iqrocket 发表于 3 年前
膜拜大神
JackJiang 发表于 3 年前
引用:Gangan_Master 发表于 2020-08-30 16:44
这段时间一直在想怎么打洞,折腾了好久,直到看到这句话:“这是由于标准的伯克利(Berkeley)套接字的API是 ...

你最终打洞成功了吗
Gangan_Master 发表于 3 年前
这段时间一直在想怎么打洞,折腾了好久,直到看到这句话:“这是由于标准的伯克利(Berkeley)套接字的API是围绕着构建客户端/服务器程序而设计的...”。验证了自己的想法:客户端/服务器的模式写在了UNIX的TCP网络套接字编程的基因里面,或者说该套接字默认的通信模式就是客户端/服务器。
惘客_q37V3 发表于 4 年前
引用:JackJiang 发表于 2020-04-20 10:07
以后在技术群里问,可以直接说:“请问,有3 P资料吗?”

好的,大佬!
JackJiang 发表于 4 年前
引用:惘客_q37V3 发表于 2020-04-20 09:29
P2P是Peer to Peer,点对点是PPP(Point to Point Protocol)

以后在技术群里问,可以直接说:“请问,有3 P资料吗?”
惘客_q37V3 发表于 4 年前
P2P是Peer to Peer,点对点是PPP(Point to Point Protocol)
九九一十八 发表于 4 年前
不同的网络类型,打洞的流程会有相应的变化吧?文中好像没有介绍还是我没理解到呢
JackJiang 发表于 4 年前
引用:mryun 发表于 2019-10-24 21:11
有具体实现的代码可以参考么?感觉实现起来还是有点迷.....

这方面的实现代码,很少有现成的。
mryun 发表于 4 年前
有具体实现的代码可以参考么?感觉实现起来还是有点迷.....

返回顶部