1、初识
- P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图“P2P结构模型”所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等)。
- P2P可以是一种通信模式、一种逻辑网络模型、一种技术、甚至一种理念。
- 在P2P网络中(如右图所示),所有通信节点的地位都是对等的,每个节点都扮演着客户机和服务器双重角色,节点之间通过直接通信实现文件信息、处理器运算能力、存储空间等资源的共享。
- P2P网络具有分散性、可扩展性、健壮性等特点,这使得P2P技术在信息共享、即时通讯、协同工作、分布式计算、网络存储等领域都有广阔的应用。
经典的CS模式
P2P结构模型
2、P2P技术介绍
- P2P是(Peer to Peer)的缩写,即点对点通信,可以穿透通信双方的路由器,不经过服务器直接通信,从而减轻中心服务器的负担,缩短了通信距离。该技术已经在视频传输、文件传输等领域广泛使用。
2.1. P2P技术的核心
- 通过UDP的NAT穿越,实现Internet两端不同内网的两台计算机直接点对点通信。
2.2.原理
公网IP(Internet接口路由器外网IP)是变化的,通信开始时由P2P服务器,交换P2P双方的外网IP等信息。 利用UDP可以穿越路由器的特点,直接通过UDP数据实现内网计算机通信。
- PC A和PC B需要穿透路由器通信。
- 双方将公网IP告诉P2P服务器。P2P服务器告诉PC A,PCB对方的IP
- PC A和PC B,发到对方的IP直接通信。
3.P2P技术优势
- 降低中心服务器负担。使得同时能够通信的数据量和通信的设备可以不断增加而不会显著增加服务器的负荷。这个方式正好和物联网设备众多的特点相符合。
- 以最短路径通信,减少通信延时。P2P通过两点缩短通信延时: (1)不通过服务器转发,没有服务器处理大量数据的延时。 (2)双方最短路径通信,无需通过服务器中转。
- 无需公网IP:通信的双方都无需具有公网IP或者动态域名。
- 无需端口映射:无需在路由器上做配置,比如端口映射等.
4、数据传输
- MQTT 于物联网来说,为了解决设备通信的几个关键问题:其网络环境复杂而不可靠、其内存和闪存容量小、其处理器能力有限。MQTT 协议 是基于发布/订阅模式的物联网通信协议。
1、含义
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是IBM开发的一个即时通讯协议,它是一种轻量级的、基于代理的“发布/订阅”模式的消息传输协议。其具有协议简洁、小巧、可扩展性强、省流量、省电等优点,而且已经有PHP,JAVA,Python,C,C#,Go等多个语言版本,基本可以使用在任何平台上,几乎可以把所有联网物品和外部连接起来,所以特别适合用来当做物联网的通信协议,实用的场景有遥感数据、汽车、智能家居、智慧城市、医疗医护等等。