P2P穿透模块 和 P2P隧道模块 的区别 v1.3
1. P2P穿透模块(pgLibConnect SDK):
P2P穿透的核心功能模块,直接提供底层P2P编程API,适用于深度使用P2P的场景。例如:摄像头、智能家居、物联网、NAS,各种嵌入式设备,以及配套的PC客户端和手机APP。如下图中“P2P模块”所示:

2. P2P隧道模块(pgLibTunnel SDK)
P2P隧道模块是在P2P穿透模块的基础上,加上TCP与P2P之间的转换机制,提供通过P2P传输TCP流量的功能(TCP over P2P,或者称为P2P代理TCP),适用于使用TCP通信的场景。例如:连接数据库、传输文件(NAS)、连接企业服务器、连接WEB服务器、连接工作流、ERP等,以及连接各种基于TCP通信的应用。P2P隧道模块提供简单的集成编程API。“PP透客户端”是基于P2P隧道模块开发的。如下图中“P2P隧道”所示:

3. 两者优缺点比较:
1) P2P穿透模块:
P2P穿透模块 | P2P隧道模块 | |
优点 | 1)使用范围广:因为是直接透传数据,所以任何类型数据都可以传输。 2)服务器配置简单:P2P服务器只是简单的P2P穿透握手,所以不需要对每个登陆的P2P客户端配置。 3)深度使用P2P通信,性能高,灵活。 | 1)可以作为一个独立的程序直接使用。在不能进行二次开发的情况,也能使用。 2) 也可以做简单集成打包到客户的应用程序里。 3) 直接透传TCP协议,很多基于TCP的程序,可以直接使用。 |
缺点 | 1)必须集成到客户的应用程序里面,必须进行二次开发调用P2P库的API发送接收数据。 2)如果在不能对客户的软件进行二次开发的情况下,不适用。 | 某些侦听端口固定,不能修改的TCP应用,不能使用。 |
建议使用场景 | P2P穿透是底层的网络协议,建议在项目初期确定组网方式时使用 | 如果设备和客户端已经开发完毕,在已经可以在局域网访问,或者设备就是使用现成的协议,比如RTSP等,推荐使用隧道SDK |