1.7 IoT通信协议
IoT通信协议分为网络接入协议、网络应用协议和GPS协议三大类,如图1-28所示。其中,网络接入协议用于设备组网和接入,支持数据传输,以无线协议为主,包括无线近场协议和无线远程协议;网络应用协议主要以IP为基础,用于设备接入后的业务应用通信,包括常规的HTTP/HTTPS和定制应用协议;GPS协议用于对智能设备(移动设备为主)的实时定位。
图1-28 IoT通信协议分类
1.7.1 无线近场协议
无线近场协议是网络接入协议的重要组成部分之一,支持相对近距离的设备连接与通信。目前,IoT中使用较广泛的无线近场协议包括Wi-Fi协议(IEEE 802.11)、蓝牙或蓝牙低功耗(Bluetooth Low Energy,BLE)、ZigBee(IEEE 802.15.4)、NFC等。表1-20所示为常见无线近场协议的特点比较,关于这些协议的更多细节信息,读者可查看相关标准进一步学习。
表1-20 常见无线近场协议的特点比较
1.7.2 无线远程协议
无线远程协议主要是指2G、3G、4G和5G等通信协议。这些协议借助移动通信技术连接互联网,也可以称为移动通信协议。NB-IoT、LoRa等低功耗广域网协议不属于本书介绍范围。
(1)2G通信协议。第二代移动通信协议,主要分为两类:一类是基于时分多路访问(Time Division Multiple Access,TDMA)所发展出的全球移动通信系统(Global System for Mobile Communication,GSM)规格;另一类是码分多路访问(Code Division Multiple Access,CDMA)规格。2G通信速率一般在32kbit/s。
(2)GPRS通信协议。通用无线分组业务(General Packet Radio Service,GPRS)是基于GSM的无线分组交换协议,介于2G和3G之间,由中国移动开发并运营,也被称为2.5G。
(3)3G通信协议。第三代移动通信协议,支持高速数据传输的蜂窝移动通信技术。3G服务能够同时传送声音及数据信息,下行速率一般为2M~3Mbit/s。目前3G存在3种标准:CDMA2000(美国版)、WCDMA(欧洲版)和TD-SCDMA(中国版)。
(4)4G通信协议。第四代移动通信协议,集3G与无线局域网(Wireless Local Area Network,WLAN)于一体,能够快速传输高质量音频、视频和图像数据等。4G传输速率可达100Mbit/s,目前包括TD-LTE和FDD-LTE两种制式。
(5)5G通信。第五代移动通信协议于2019年陆续推出,已广泛应用于IoT领域。
1.7.3 网络应用协议
网络应用协议是支持IoT业务应用的网络协议。传统应用协议是HTTP和HTTPS,二者的主要区别在于HTTPS增加了认证和加密,将HTTP和HTTPS直接应用到IoT中存在以下局限性。
(1)设备主动向服务器发送数据,难以实现服务器主动向设备发送数据。
(2)HTTP采用明文数据传输,安全性不高。
(3)资源占用率高,一些资源受限的设备处理速度跟不上。
因此,一些基于消息推送的定制应用协议更受关注,部分如下。
(1)MQTT协议。消息队列遥测传输(Message Queuing Telemetry Transport,MQTT)协议是IBM公司开发的一个即时通信协议,比较适用于智能设备通信应用场景。MQTT协议构建于TCP/IP上,采用发布/订阅消息模式,提供一对多的消息发布,可以解除应用程序耦合;MQTT协议头部固定长度为2字节,可适用于低功耗低网速的设备;MQTT协议支持服务质量(Quality of Service,QoS),有“至多一次”“至少一次”和“只有一次”3种消息服务模式。
MQTT协议的上述特点使其在卫星链路通信传感器、医疗设备、智能家居、受限环境小型化设备中广泛应用。小米、华为、三星、苹果等公司的IoT设备重点支持MQTT协议,一般同时集成两种协议,MQTT协议为主,外加一个常规的其他协议。
(2)XMPP。可扩展通信和表示协议(Extensible Messaging and Presence Protocol,XMPP)是一种基于标准通用标记语言的子集可扩展标记语言(eXtensible Markup Language,XML)的协议,可用于服务类实时通信、表示和需求响应服务中的XML数据元流式传输。XMPP采用客户端/服务器(C/S)通信模式,使用简单的客户端,将多数工作放在服务器进行。
XMPP是基于XML的协议,得益于开放性、易用性等特点,在即时通信、网络管理、内容供稿、协同工具、游戏等方面得到了广泛应用。
(3)REST协议。表述性状态传递(Representational State Transfer,REST)协议是一种针对网络应用的设计和开发协议,可以降低开发的复杂性,提升系统的可伸缩性,可快速实现客户端和服务器之间交互的松耦合,降低客户端和服务器之间的交互延迟。采用REST协议的客户端和服务器之间的交互在请求时是无状态的,并且使用标准的HTTP方法(如GET、PUT、POST和DELETE)。
REST/HTTP主要为了简化互联网中的系统架构,因此适合应用在IoT中。在IoT应用中,REST协议可以通过开放REST API的方式被互联网中其他应用所调用。
(4)CoAP。受限制的应用协议(Constrained Application Protocol,CoAP)基于REST架构,应用于无线传感网中。CoAP是一种应用层协议,它运行于用户数据报协议(User Datagram Protocol,UDP)之上,包含一个紧凑的二进制报头和扩展报头。CoAP基本报头只有4字节,基本报头后面跟扩展选项,一个典型的请求报头为10~20字节。为了实现客户端访问服务器上的资源,CoAP支持GET、PUT、POST和DELETE等方法。CoAP支持异步通信,适用于机对机(Machine-to-Machine,M2M)通信。CoAP支持内置的资源发现格式,用于发现设备上的资源列表。
CoAP的设计目标是为了让小设备可以接入互联网,解决设备直接连接到IP网络的问题,满足将IP技术应用到设备之间、互联网与设备之间的通信需求。
1.7.4 GPS
GPS是一种以空中卫星为基础的高精确无线导航定位系统。作为移动感知技术,它是IoT中用于采集移动设备位置信息的重要技术。目前,GPS协议在智能穿戴、智能汽车和共享单车、智能物流、智能交通等许多领域均有应用。