1 TCP
TCP 是一种面向连接的、可靠的、基于字节流的传输层通信协议。
特点:
- 面向连接
- 可靠通信方式
- 基于流的方式
缺点:
- 花销大
- 设备必须时刻保持连接状态(功耗大)
- 消耗时间比较久
2 UDP
用户数据报协议(UDP,User Datagram Protocol)支持一个无连接的传输协议。
特点:
- 不需要连接
- 速度快
- 不需要应答
缺点:
- 不可靠
TCP和UDP比较:
UDP更适合对功耗要求低、可靠性要求不算高的场合。
3 HTTP
HTTP是基于客户/服务器模式,且面向连接的(建立在TCP之上)。典型的HTTP事务处理有如下的过程:
- 客户与服务器建立连接;
- 客户向服务器提出请求;
- 服务器接受请求,并根据请求返回相应的文件作为应答;
- 客户与服务器关闭连接。
缺点:
- 必须由客户端主动向服务器发送请求,服务器无法主动通知客户端。
- 要实现HTTP需要更多的硬件资源(硬件成本更高)。
结论: 不适合物联网。
4 MQTT
MQTT是一个基于客户端-服务器的消息发布/订阅传输协议(TCP)。
机器与机器(M2M)通信和物联网(IoT)。其在,通过卫星链路通信传感器、偶尔拨号的医疗设备、智能家居、及一些小型化设备中已广泛使用。
特点:
- 特别适合于网络代价昂贵,带宽低、不可靠的环境。
- 能在处理器和内存资源有限的嵌入式设备中运行。
- 使用发布/订阅消息模式,提供一对多的消息发布,从而解除应用程序耦合。
- 使用 TCP/IP 提供网络连接。
- 提供Last Will 和 Testament 特性通知有关各方客户端异常中断的机制。
5 CoAP
CoAP(Constrained Application Protocol)是一种在物联网世界的类web协议,名字翻译来就是“受限应用协议”。
- COAP协议网络传输层为UDP。
- 它基于REST,server的资源地址和互联网一样也有类似url的格式,客户端同样有POST,GET,PUT,DELETE方法来访问server,对HTTP做了简化。
- COAP是二进制格式的,HTTP是文本格式的,COAP比HTTP更加紧凑。
- 轻量化,COAP最小长度仅仅4B,一个HTTP的头都几十个B了。
- 支持可靠传输,数据重传,块传输。 确保数据可靠到达。
- 支持IP多播, 即可以同时向多个设备发送请求。
- 非长连接通信,适用于低功耗物联网场景。
COAP和MQTT的比较:
MQTT协议是保持连接的,所以及时性相对很好;
CoAP协议是无连接响应式通讯,因此不能主动推送,要等客户端访问才可以携带回去,及时性相对较差。
6 LwM2M
LwM2M的全称是Lightweight Machine-To-Machine,它的名称里面包含了这么两个重要含义:
1)这个协议是轻量级的;
2)这个协议适用于物联网设备。
LwM2M是适用于资源有限的终端设备管理的轻量级物联网协议。
参考资料: