P2P通讯方式
概述
疑问:为什么要使用P2P?-->再强大的服务器带宽总会有限,P2P的使用可以使用户的数据传输速度到达自身网路极限.
实现p2p通讯我们提供两种方式,这两种方式分别是通过客户端直接互通和p2p映射;
无论哪一种,首先设备两端都得运行fastnat或者gemini客户端,NAT类型不能是对称类型NAT(Symmetric),否则还是走服务器中继.
方法一、客户端直接互通
您部署的两客户端设备,我们抽象访问层接口,使用P2P尽量达到直接互访。通过管理界面中展示的设备IP直接访问
提示:这是最简单的,就不用往下看第二种了.
方法二、P2P映射方式
1.首先在需要被访问的设备机上,添加一个P2P映射如下图
(被访问方:添加P2P映射)
2.在访问方的设备上添加一个P2P
(访问方:添加P2P连接)
3.进行访问
现在您可以通过访问本地127.0.0.1的9999访问对方的设备了,高速且不经过fastnat的官方服务器。
关于NAT的补充阅读
当联机的双方NAT类型有一方为Cone NAT时(以下前三种)才有机会建立P2P连接,如果双方都是Symmetric NAT,必然无法成功建立P2P连接
几种常见的NAT类型:
- Full Cone
- Restricted Cone
- Port Restricted Cone
- Symmetric NAT
结合上面的P2P条件,当两台设备所处网络的NAT类型均为 Symmetric NAT,所以无法建立P2P连接,只能通过服务器中转通信
基本总结如下:
- 双方中只要有一方是Full Cone,可以P2P直连;
- 双方都是Restricted Cone或Port Restricted Cone,这种情况可以打洞,通过服务器握手以后,双方的数据不再经过中继服务器;
- 一方为Restricted Cone,另一方为Symmetric NAT,可以打洞,通过N2N服务器握手以后,双方的数据不再经过服务端;
- 一方为端口Port Restricted Cone,另一方为Symmetric NAT,这种情况无法打洞,数据要走服务器中转;
- 双方都为Symmetric NAT,这种情况也是无法打洞的,数据要走服务器中转;
少侠,我看你气度不凡天赋异禀,骨骼精奇,这么帅,来了就帮推荐一把吧
我的最近更新