物联网网关能够利用适合的联网技术,把资源有限的“物”连接到规模更大的网络。有多种技术可用于“物”与网关之间的连接通信。同样,物联网网关与云端的通信也有多种网络协议可用。
物联网网关
下面我们详细讨论现有联网技术,以及每种连接技术可用于哪些场景。
节点连接技术
目前,蓝牙、Wi-Fi、NFC、ZigBee是大家非常熟悉的无线通信技术。此外,新兴联网技术,例如Sub GHz、Thread、ANT、Z-Wave,可直接用于智能家居、智慧城市、智能照明和智能表计。
根据实际应用情况,功耗、数据速率、工作频率、电池续航能力是决定选择哪一种或一些联网技术的主要因素。本文后面的表1比较了当今主要无线通信技术的特性。
后台连接
网关与管理服务器(后台)的连接需要选择回程连接技术以及通信协议。回程连接是IoT网关到ISP互联网服务提供商端点之间的远距离连接。2G/3G/LTE等移动通信技术是当前最热的回程链路技术。此外,智能路灯等应用还可以使用电力线通信(PLC)技术。高带宽应用可以选用光纤通信技术。没有被移动网络覆盖的边远地区,可以选用卫星通信或微波点对点连接技术。
通信协议
有很多通信协议可用于IoT网关与云服务器之间的通信。这里我们讨论一些比较热门的技术及其优缺点。
Plain HTTP: 这是目前普及度最高的网络协议,被服务器厂商广泛接受,得到互联网标准的支持,兼容性问题最少,无缝支持RESTful API。不过,这项技术的缺点是开销太大,体现在HTTP报头和基于文本的格式方面。Plain HTTP虽然运行在TCP之上,但还是一种无状态协议,不适合即时通信应用。客户端必须发送一个请求信号,才能收到服务器的应答(命令)。为收到服务器的更新信息,客户端必须不断地轮询服务器。
CoAP: 资源受限型应用协议,可以认为是二进制版的HTTP,对HTTP协议的一些局限性做了改进,拥有非常准确的报头,支持二进制数据格式,因此降低了开销;可运行在TCP或其它传输层甚至SMS之上。CoAP数据包很容易转换成HTTP包。不过,因为缺乏对互联网基础设施的支持,此技术不能很好地兼容防火墙、代理服务器和路由器。因此,这项协议通常只适用于传感器网络内的私有网络。
Web sockets: 这是一个互联网标准支持的新的网络协议,采用与HTTP相同的寻址和握手方法,兼容现有网络基础设施。在完成握手对话后,立即转换成TCP之上的双工通信,适合即时双向通信,特别适合主机共享的虚拟主机环境和代理服务器后面的网关。
MQTT: 也是一个深受市场欢迎的运行在TCP层之上(可选)的网络协议,有一个主题订阅模式,更适合向相关网关广播信息,同时还适用于网关与服务器通信,具有一些适合物联网应用的功能,例如,最后一条消息永久存在和遗嘱消息。
AMQP: 这或许是最适合网关与服务器通信的网络协议。该协议的作用相当于一个存储队列,即便临时断网,也确保数据包不会丢失。
XMPP: 可扩展消息处理与现场协议,是聊天客户端广泛使用的即时通信协议,对很多功能进行了标准化,例如,用户验证和消息ID。不过,因为技术规范十分复杂,数据交换采用冗长的XML格式,所以不适合物联网应用。
目前,物联网网关(www.leadtorch.com)设计面临很多挑战和难题,例如,数据安全、身份验证和设备开通。对于一个具体应用,做出正确的选择,不是一件小事。