默认
打赏 发表评论 46
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
值得多看几遍的文章
不错
学习 学习
学习
感谢楼主,昨天照着楼主的思路,两台路由后的电脑终于成功打通了tcp隧道。
引用:yxt945 发表于 2019-10-16 10:18
感谢楼主,昨天照着楼主的思路,两台路由后的电脑终于成功打通了tcp隧道。

动手能力真是强!
有具体实现的代码可以参考么?感觉实现起来还是有点迷.....
引用:mryun 发表于 2019-10-24 21:11
有具体实现的代码可以参考么?感觉实现起来还是有点迷.....

这方面的实现代码,很少有现成的。
不同的网络类型,打洞的流程会有相应的变化吧?文中好像没有介绍还是我没理解到呢
P2P是Peer to Peer,点对点是PPP(Point to Point Protocol)
引用:惘客_q37V3 发表于 2020-04-20 09:29
P2P是Peer to Peer,点对点是PPP(Point to Point Protocol)

以后在技术群里问,可以直接说:“请问,有3 P资料吗?”
引用:JackJiang 发表于 2020-04-20 10:07
以后在技术群里问,可以直接说:“请问,有3 P资料吗?”

好的,大佬!
这段时间一直在想怎么打洞,折腾了好久,直到看到这句话:“这是由于标准的伯克利(Berkeley)套接字的API是围绕着构建客户端/服务器程序而设计的...”。验证了自己的想法:客户端/服务器的模式写在了UNIX的TCP网络套接字编程的基因里面,或者说该套接字默认的通信模式就是客户端/服务器。
引用:Gangan_Master 发表于 2020-08-30 16:44
这段时间一直在想怎么打洞,折腾了好久,直到看到这句话:“这是由于标准的伯克利(Berkeley)套接字的API是 ...

你最终打洞成功了吗
膜拜大神
引用: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穿越是否具有真正的可行性
引用:Gangan_Master 发表于 2020-12-11 17:56
没有打洞成功,我使用的是SpringBoot+Netty+WebSocket,流程是1.本地内网启动两个客户端,并向公网服务器 ...

P2P还是能成功的,只是成功率没有想象的那么高
如果是全锥型NAT,是不是就不需要打洞了?因为全锥型,对方发过来的数据无脑转发给内网机器即可
厉害了
签名: read the fucking source code
大佬,我看了文章后,怎么感觉,这个p2p本质还是c/s架构呢,感觉p2p的客户端A与客户端B的通信时,数据还是要经过server。是我理解出现问题了吗?求大佬解惑,谢谢
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部