通信协议对物联网来说十分常用且关键,无论是近距离无线传输技术还是移动通信技术,都影响着物联网的发展。通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。
我们将物联网协议分为两大类,一类是传输协议,一类是通信协议。传输协议一般负责子网内设备间的组网及通信。通信协议则主要是运行在传统互联网TCP/IP协议之上的设备通信协议,负责设备通过互联网进行数据交换及通信。
物联网的通信环境有Ethernet、Wi-Fi、RFID、NFC(近距离无线通信)、ZigBee、6LoWPAN(IPv6低速无线版本)、Bluetooth、GSM、GPRS、GPS、3G和4G等网络,而每一种通信应用协议都有一定的适用范围。AMQP、JMS和HTTP都是工作在以太网的协议,CoAP协议是专门为资源受限设备开发的协议,MQTT的兼容性则强很多。

TCP/IP是一个四层协议系统,每一层负责不同的功能。

● 链路层:也称数据链路层或网络接口层。包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理与电缆(或其他任何传输媒介)的物理接口细节。
● 网络层:也称互联网层。处理分组在网络中的活动,例如分组的选路。
● 运输层:也称传输层。主要为两台主机上的应用程序提供端到端的通信。
● 应用层:负责处理特定的应用程序细节。
TCP/IP协议族具体包含多个协议,IP协议负责数据传输到哪里,而TCP协议负责数据的可靠传输。它们在数据传输过程中主要完成以下功能:
(1)由TCP协议把数据分成若干数据包,给每个数据包写上序号,以便接收端把数据还原成原来的格式。
(2)IP协议给每个数据包写上发送主机和接收主机的地址,一旦写上源地址和目的地址,数据包就可以在互联网上传送数据了。IP协议还具有利用路由算法进行路由选择的功能。
(3)这些数据包可以通过不同的传输途径(路由)进行传输,由于路径不同,加上其他的原因,可能出现顺序颠倒、数据丢失、数据失真甚至重复的现象。这些问题都由TCP协议来处理,它具有检查和处理错误的功能,必要时还可以请求发送端重发。

TCP/IP协议族跟OSI模型的对比:

互联网时代,TCP/IP协议已经一统江湖,现在的物联网的通信架构也是构建在传统互联网基础架构之上。在当前的互联网通信协议中,HTTP协议由于开发成本低,开放程度高的优势,几乎占据了大半江山,所以很多厂商在构建物联网系统时也基于HTTP协议进行开发。包括Google主导的physic web项目,都是期望在传统Web技术基础上构建物联网协议标准。
HTTP协议是典型的CS通信模式,由客户端主动发起连接,向服务器请求XML或JSON数据。该协议最早是为了适用Web浏览器的上网浏览场景而设计的,目前在PC、手机、Pad等终端上都应用广泛,但并不适用于物联网场景。HTTP协议在物联网场景中应用有以下三大弊端:
● 必须由设备主动向服务器发送数据,难以主动向设备推送数据。这对于数据采集等场景还可以勉强适用,但是对于频繁的操控场景,只能通过设备定期主动拉取的方式,实现成本和实时性都大打折扣。
● 安全性不高。由于Web的不安全性,HTTP是明文协议,在很多要求高安全性的物联网场景,如果不做很多安全准备工作(如采用https等),后果将不堪设想。
● 不同于用户交互终端如PC、手机,物联网场景中的设备多样化,对于运算和存储资源都十分受限的设备,HTTP协议实现、XML/JSON数据格式的解析,都是不可能的任务。


