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能够发现网络中的节点,这对于低功耗无线传感器网络的自治和自我修复设计非常有用。

浙公网安备 33010602011771号