Coap 协议浅析

前面两篇文章分别讲解了下网络协议和 MQTT 协议的基本内容,那么我们接着进行 Coap 和 Http。
这两种协议都是基于request /response 工作模式。具体如何请看下文。

COAP协议简介

Coap(Constrained Application Protocol)是一种在物联网世界的类web协议。顾名思义,使用在资源受限的物联网设备上。物联网设备的ram,rom都通常非常小,运行TCP和HTTP是不可以接受的。

COAP协议特点

1 COAP协议网络传输层由TCP改为UDP。

COAP协议层

2 它基于REST,server的资源地址和互联网一样也有类似url的格式,客户端同样有POST,GET,PUT,DELETE方法来访问server,对HTTP做了简化。

3 COAP是二进制格式的,HTTP是文本格式的,COAP比HTTP更加紧凑。

4 轻量化,COAP最小长度仅仅4B,一个HTTP的头都几十个B了。

5 支持可靠传输,数据重传,块传输。确保数据可靠到达。

6 支持IP多播, 即可以同时向多个设备发送请求。

7 非长连接通信,适用于低功耗物联网场景。

COAP协议消息类型

COAP协议有4种消息类型

CON—— 需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。

可靠消息传输

NON—— 不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。

不可靠消息传输

ACK —— 应答消息,对应的是CON消息的应答。

RST —— 复位消息,可靠传输时候接收的消息不认识或错误时,不能回ACK消息,必须回RST消息。

COAP消息格式

coap消息格式

CoAP的URL

coap的url和HTTP的有很相似的地方,开头是“coap”对应“http”或者“coaps”对应“https”。

HTTP的默认端口是tcp 80,coap的默认端口是udp 5683(coaps是5684)。

COAP的安全性

COAP的安全性是用DTLS加密实现的。DTLS的实现需要的资源和带宽较多,如果是资源非常少的终端和极有限的带宽下可能会跑不起来。DTLS仅仅在单播情况下适用。
PC和智能手机入网信息交换大多是通过TCP和HTTP实现的。与之不同的是,物联网终端设备大都资源受限——内存空间小、计算能力有限,带宽较低、依赖电池供电,并且往往工作在不可靠的网络中,这些限制使得HTTP协议对它们并不适用。

虽然CoAP和HTTP多有相似,较HTTP简单得多。CoAP建立在UDP栈上,这是与HTTP相比最主要的区别,它可以更快更好的进行资源优化。CoAP使用与10kb RAM一样的系统,占用内存较少。同时,CoAP能够发现网络中的节点,这对于低功耗无线传感器网络的自治和自我修复设计非常有用。

参考资料:https://zhuanlan.zhihu.com/p/116899399

posted @ 2020-11-22 16:32  bky000001  阅读(393)  评论(0)    收藏  举报