物联网数据接入篇-应用层 CoAP(7)

跃曰
0 评论 984 浏览 6 收藏 5 分钟
🔗 产品经理在不同的职业阶段,需要侧重不同的方面,从基础技能、业务深度、专业领域到战略规划和管理能力。

这篇文章,我们来学习下物联网数据接入中的应用层协议——CoAP,这种基于REST架构的协议适用于在资源受限的低功耗设备上,其工作原理、应用场景等信息,详见本文。

CoAP,The Constrained Application Protocol,受限应用协议,专门为物联网和其他受限环境设计的一种轻量级协议,基于REST架构,与HTTP类似,但是基于 UDP,更加简洁和高效。CoAP协议适用在资源受限的低功耗设备上,尤其是NB-IoT的设备使用。设备醒了直接发数据,发完设备休眠,省电。

他是个应用层协议,联网方式,就是网络接口层可以用 Wi-Fi 连接、以太网连接、蜂窝网络连接、蓝牙连接、低功耗广域网(LPWAN)连接(如 LoRa、NB-IoT 等)。

CoAP 模仿 HTTP 的 REST 模型,服务端以 URI 方式创建资源,客户端可以通过 GET、PUT、POST、DELETE方式访问这些资源,并且协议风格也和HTTP极为相似。

MQTT可以实现一个最简单的loT架构:Device+MQTT服务器+APP。手机端或Web端可以直接从MQTT服务器订想要的主题。

而CoAP可能需要这样的架构:CoAP+ Web+ DataBase+App。使用CoAP必须经过DataBase才能转给第三方。

组成部分

主要包括客户端、服务器和消息格式等。

工作原理

客户端向服务器发送请求消息,服务器根据请求进行相应的响应。CoAP 采用了类似于 HTTP 的请求/响应模式,但针对受限环境进行了优化。

CoAP 报文:

报文结构:CoAP报文由固定的4字节头部、0-8字节的Token、0或多个TLV格式的Option、可选的Payload组成。

报文类型:CoAP定义了四种报文类型,分别是CON(需要应答的报文)、NON(无需应答的报文)、ACK(应答报文)和RST(复位报文)。

Code字段:Code字段占一个字节,用于表示请求方法或响应码。例如,0.01表示GET方法,2.00表示成功响应。文本类型(text/plain)、二进制类型(application/octet-stream)、JSON类型(application/json)是在物联网中应用最广泛的三种媒体类型,application/link-format 则是专属于 CoAP 的媒体类型,一般在 CoAP 资源发现中使用。

Token:用于匹配Request和Response,或者用于消息防伪造等场景。

Options:通过报文选项可设定CoAP请求参数和负载媒体类型等。

Payload:真正有用的被交互的数据。

CoAP 和 HTTP对比

特点

轻量级:协议开销小,适合资源受限设备。COAP 是二进制格式的,HTTP 是文本格式的,COAP 比 HTTP 更加紧凑。COAP 最小长度仅仅4B,一个HTTP的头都几十个B了。

低功耗:非长连接通信,适应低功耗网络的需求。

支持可靠传输:虽然基于 UDP,但通过四种报文类型的组合及重传机制提高了传输的可靠性。

应用场景

智能家居:如智能家电的控制和状态监测。

工业物联网:工厂内设备的通信。

智能农业:农田监测设备的数据传输。

可穿戴设备等领域,实现设备与服务器之间的高效交互。

本文由 @跃曰 原创发布于人人都是产品经理。未经作者许可,禁止转载。

题图来自Unsplash,基于CC0协议。

该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 目前还没评论,等你发挥!
专题
13258人已学习11篇文章
内容管理系统是一种位于WEB 前端(Web 服务器)和后端办公系统或流程(内容创作、编辑)之间的软件系统。本专题的文章分享了内容管理系统(CMS)的设计指南。
专题
17480人已学习14篇文章
本专题的文章分享了如何设计B端SaaS产品及B端SaaS产品方法论。
专题
13596人已学习12篇文章
一款产品,若想做到极致满足用户的需求,产品功能会变得越发臃肿。但在产品设计中,也可以做做减法,去除一些不必要或不重要的功能和元素。本专题的文章分享了如何给产品做减法。
专题
18999人已学习12篇文章
如何设计出一个抓住他人眼球的feed流 ?feed流的组成元素以及常见的feed流样式?本专题的文章提供了对于feed流设计的思考。
专题
20799人已学习15篇文章
AARRR模型是一个经典的增长漏斗模型。本专题的文章针对AARRR模型进行拆解解读。
专题
15871人已学习12篇文章
本专题的文章分享了如何从0到1搭建结算平台