一、常见的网络通信协议
1.TCP, 是一种面向连接的、可靠的、基于字节流的传输层通信协议。
优点:面向连接、可靠通信、基于流的通信。
缺点:花销大、必须时刻保持连接状态、消耗时间久
2.UDP,用户数据报协议,支持一个无连接的协议
特点:不需要连接、速度快、不需要应答。
缺点:不可靠
3.http
http协议是基于客户/服务器模式,且面向连接的(建立在TCP之上)。典型的http事物处理有如下模式:
客户与服务器建立连接
客户向服务器发出请求
服务器接受请求,并返回相应的文件作为应答
客户与服务器关闭连接
缺点:
必须由客户主动向服务器发送请求,服务器无法主动通知客户端
要实现http需要更多的硬件资源(硬件成本更高)。
结论:不适合物联网
4.MQTT
MQTT协议是一个基于客户端-服务器的消息发布/订阅传输协议。(tcp)
特别适合于网络代价昂贵、带宽低、不可靠的环境,
能在处理器与内存资源有限的嵌入式设备中运行,
使用消息订阅/发布模式,提供一对多的消息发布,从而解除应用程序耦合,
使用TCP/IP提供网络连接,
提供Last Will,Testament特性通知有关各方客户端异常中断的机制。
5.CoAP
CoAP(受限应用协议)协议是一种在物联网世界的类web协议。
COAP协议网络传输层为UDP。
它是基于REST,server资源地址和互联网一样也有类似以URL的资源地址,客户端同样有GET、POST、PUT、DELTE方法来访问server,对http做了简化。
COAP是二进制格式,http是文本格式,COAP比http更加紧凑。
轻量化,一个COAP仅4B,而http仅头部就几十个B了。
支持可靠传输、数据重传、快传输。确保数据可靠到达。
支持IP多播,即可以同时向多个设备发送请求。
非长链接通信,适用于低功耗物联网场景。
6.LwM2M
LwM2M全程是light weight machine to machine .它的名称里面包含了重要的含义。这个协议是轻量级的,这个协议适用于物联网设备。
LwM2M 适用于资源有限的终端设备管理的轻量级物联网协议