本片文章通过协议的产生背景、应用场景、与MQTT对比三方面来阐述CoAP协议。
完成该文的阅读能初步了解CoAP协议是什么、解决什么。
CoAP协议产生的背景以及意义
想要弄明白CoAP协议需要对MQTT有一定的了解,物联网的应用层面MQTT是一个绕不开的话题。
而且在物联网发展的当下来说,大量的工作还是在MQTT相关的设备方面。
那为什么还会出现CoAP呢?
答:因为部分的环境信息对于MQTT来说就有些浪费资源,所以为了解决这类问题的解决物联网的方向会出现一些更简单更加容易操作的芯片,专门用于环境的采集。
这样一是节省资源开销、在一个对于设备来说也可以在硬件方面节约资金。
于是CoAP出现了!
在农业物联网的应用中类似传感器相关的设备想要把数据发送到云端还是基于的CoAP协议来实现,
MQTT是应用层的协议,它的传输层是TCP,是可靠连接并且是属于长连接的。
CoAP协议如果要保持长连接需要设备保持供电的状态,
为了解决这种情况CoAP协议的传输层是UDP,但是UDP属于不可靠传输,所以在应用层进行了改造,这里简单理解为UDP不可靠的性被应用层解决了。
固CoAP协议也属于可靠连接协议
MQTT与CoAP对比
MQTT:上行数据可下行数据量相对大一些
MQTT:相对来说对设备的电池容量也要比CoAP大一些,一些设备的内部多加一些电池的目的就是为了保持长连接,及时设备休眠也可以重新唤醒连接。
CoAP:因为传输层是用的UDP,设备唤醒之后会直接发送数据,发送后可以直接休眠。比MQTT协议更加省电
CoAP在资源量特别小的时候也可以使用
CoAP的主要应用场景
只进行数据的上报不进行控制的下发,如:水表、电表、烟雾报警器等
CoAP协议的官方报文格式(了解)
Ver => 版本号,可以自己通过版本号判断属于什么设备
T => type
TKL => COAP标识符长度。COAP协议中具有两种功能相似的标识符,一种为MessageID(报文编号),一种为Token(标识符)。其中每个报文均包含消息编号,但是标识符对于报文来说是非必须的。
Message ID => 一般用来定位问题
Code => 操作码/功能码/响应码。Code在COAP请求报文和响应报文中具有不同的表现形式,Code占一个字节,它被分成了两部分,前3位一部分,后5位一部分,为了方便描述它被写成了c.dd结构。其中0.XX表示COAP请求的某种方法,而2.X、4.X或5.X则表示CoAP响应的某种具体表现。
Token => 标识符具体内容。
Option => 报文选项,通过报文选项可设定COAP主机,COAP URI,COAP请求参数和负载媒体类型等等。
1.本站内容仅供参考,不作为任何法律依据。用户在使用本站内容时,应自行判断其真实性、准确性和完整性,并承担相应风险。
2.本站部分内容来源于互联网,仅用于交流学习研究知识,若侵犯了您的合法权益,请及时邮件或站内私信与本站联系,我们将尽快予以处理。
3.本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
4.根据《计算机软件保护条例》第十七条规定“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24个小时之内从您的电脑中彻底删除上述内容,否则后果均由用户承担责任;如果您访问和下载此文件,表示您同意只将此文件用于参考、学习而非其他用途,否则一切后果请您自行承担,如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
5.本站是非经营性个人站点,所有软件信息均来自网络,所有资源仅供学习参考研究目的,并不贩卖软件,不存在任何商业目的及用途
暂无评论内容