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类型:

  1. Full Cone
  2. Restricted Cone
  3. Port Restricted Cone
  4. Symmetric NAT

结合上面的P2P条件,当两台设备所处网络的NAT类型均为 Symmetric NAT,所以无法建立P2P连接,只能通过服务器中转通信
基本总结如下:

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

 

posted @ 2021-01-30 20:22  [秦时明月]  阅读(1006)  评论(0编辑  收藏  举报