P2P概述

1.什么是P2P

P2P,peer-to-peer,端到端,两台设备通过网络直接进行数据交互,而不用中间服务器进行转发的一种网络传输方式
在此概念下,UART,485,CAN之类的,也是P2P。
image

2.用在什么地方

  • QQ局域网文件传输
  • 快播
  • TeamViewer
  • etc

3.工作原理

首先,PC之间是有物理连通的。这个一般是由P2P SERVER或由人来确定。
然后,将对方的IP与PORT直接写入到IP包中,由网关来实现转发。
局域网的PC机(eg.192.168.0.1)访问公网时,会通过公网的网关,这个网关有一个固定的IP(eg.112.93.166.24),但是会给不同的设备提供不同的PORT(eg. 23)。
当外部设备要给这个PC传信息时,其实是发给了网关,然后由网关代为转发。
两个不同网关下的设备的交互,其实是上层平级网关的交互。
PC与网关设备的对应关系被称为NAT,Network Address Transform,网络地址映射。
image

所以,如果这两个PC机知道了对方所在的网关IP和PORT,只要向这个IP:PORT发送数据,就可以实现给对方传输数据。
家用路由器当网关的话,是可以随便转发数据的。但是,有的网关是对转发过来的信息有限制的。如电信级的。这样能起到安全的作用。这样就涉及到网关的NAT机制分类。

4.NAT的分类

image

5.如何检测当前NAT种类

1.先检测是不是对称NAT。

用一个PC,两台SERVER,
PC分别向两台SERVER发送消息
两台SERVER收到消息后,对比收到的源IP,PORT是不是一样
若一样,说明是锥形NAT;不一样,说明是对称NAT。

2.区分完全锥形NAT与限制锥形NAT

用两台SERVER不同IP,分别给PC发送消息
PC若都能收到,说明是完全锥形NAT;否则,是限制锥形NAT.

3.区分IP限制与PORT限制。

同一SERVER,采用同一IP,两个不同的PORT向PC发消息。
若都能收到,说明是IP限制;否则是PORT限限制。

posted @ 2021-10-05 21:37  海林的菜园子  阅读(272)  评论(0编辑  收藏  举报