随着物联网新兴技术的发展, 蓝牙、Wi-Fi、NFC、ZigBee是大家非常熟悉的无线通信技术。此外,新兴联网技术,例如SubGHz、Thread、ANT、Z-Wave,可直接用于智能家居、智慧城市、智能照明和智能表计。有很多通信协议可用于物联网网关与云服务器之间的通信。
这里由朗锐智科(www.leadtorch.com) 介绍一些比较热门的技术及其优缺点:
PlainHTTP:这是目前普及度最高的网络协议,被服务器厂商广泛接受,得到互联网标准的支持,兼容性问题最少,无缝支持RESTfulAPI。不过,这项技术的缺点是开销太大,体现在HTTP报头和基于文本的格式方面。PlainHTTP虽然运行在TCP之上,但还是一种无状态协议,不适合即时通信应用。客户端必须发送一个请求信号,才能收到服务器的应答(命令)。为收到服务器的更新信息,客户端必须不断地轮询服务器。
CoAP:资源受限型应用协议,可以认为是二进制版的HTTP,对HTTP协议的一些局限性做了改进,拥有非常准确的报头,支持二进制数据格式,因此降低了开销;可运行在TCP或其它传输层甚至SMS之上。CoAP数据包很容易转换成HTTP包。不过,因为缺乏对互联网基础设施的支持,此技术不能很好地兼容防火墙、代理服务器和路由器。因此,这项协议通常只适用于传感器网络内的私有网络。
Websockets:这是一个互联网标准支持的新的网络协议,采用与HTTP相同的寻址和握手方法,兼容现有网络基础设施。在完成握手对话后,立即转换成TCP之上的双工通信,适合即时双向通信,特别适合主机共享的虚拟主机环境和代理服务器后面的网关。
MQTT:也是一个深受市场欢迎的运行在TCP层之上(可选)的网络协议,有一个主题订阅模式,更适合向相关网关广播信息,同时还适用于网关与服务器通信,具有一些适合物联网应用的功能,例如,最后一条消息永久存在和遗嘱消息。
AMQP:这或许是最适合网关与服务器通信的网络协议。该协议的作用相当于一个存储队列,即便临时断网,也确保数据包不会丢失。
XMPP:可扩展消息处理与现场协议,是聊天客户端广泛使用的即时通信协议,对很多功能进行了标准化,例如,用户验证和消息ID。不过,因为技术规范十分复杂,数据交换采用冗长的XML格式,所以不适合物联网应用。
MQTT、 DDS、 AMQP、XMPP、 JMS、 REST、 CoAP这几种协议都已被广泛应用,并且每种协议都有至少10种以上的代码实现,都宣称支持实时的发布/订阅的物联网协议,但是在具体物联网系统架构设计时,需考虑实际场景的通信需求,选择合适的协议。