感知层
网络层
TCP
传输控制协议,Transport Controll Protocol
定义了两台计算机之间进行可靠的传输而交换的数据和确认信息的格式,以及计算机为了确保数据的正确到达而采取的措施
规定了TCP软件怎样识别给定计算机上的多个目的进程如何对分组重复这类差错进行恢复
规定了两台计算机如何初始化一个TCP数据流传输以及如何结束这一传输
提供的是面向连接、可靠的字节流服务。
每一条TCP连接只能是点到点的
TCP首部开销20字节
逻辑通信信道是全双工的可靠信道
UDP
用户数据报协议,User Data Protocol
简单的面向数据报的传输层协议,提供的是非面向连接的、不可靠的数据流传输
只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地
P在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快
UDP支持一对一,一对多,多对一和多对多的交互通信
UDP的首部开销小,只有8个字节
逻辑通信信道是不可靠信道
应用层
MQTT
Message Queuing Telemetry Transport,消息队列遥测传输
为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议
使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合
对负载内容屏蔽的消息传输
使用TCP/IP 提供网络连接,异步,可用于反向控制
有三种消息发布服务质量
CoAP
基于REST架构,UDP协议族,采用的是二进制格式,相比起HTTP采用的文本格式,CoAP比HTTP更加紧凑
消息模型,以消息为数据通信载体,通过交换网络消息来实现设备间数据通信
对云端设备资源操作都是通过请求与响应机制来完成,通过4个请求方法(GET、PUT、POST、DELETE)对服务端资源进行操作,同步
协议包轻量级,最小长度仅为4B
支持可靠传输,数据重传,块传输,确保数据可靠到达
支持IP多播,即可以同时向多个设备发送请求
非长连接通信,适用于低功耗物联网场景,不适合反向控制
LWM2M
定义一组轻量级的协议适用于各种物联网设备
LwM2M Objects
每个对象对应客户端的某个特定功能实体
LwM2M Protocol
定义了一些逻辑操作
CoAP
DTLS
用来保证客户端和服务器间的安全性
LwM2M的消息没有对称的反馈消息,由于LwM2M承载在CoAP协议上,使用CoAP的get、post、put、delete方式,对于相应消息成功或失败的反馈是通过CoAP协议本身的交互来实现的。LwM2M载荷支持四种格式 plain text、Opaque、TLV、JSON,这四种协议要求服务器端必须都要支持,而在客户端必须支持TLV格式