通信人家园

 找回密码
 注册

只需一步,快速开始

短信验证,便捷登录

搜索
查看: 6410|回复: 19
打印

物联网Coap协议 [复制链接]

军衔等级:

  四级通信军士

注册:2014-12-17
跳转到指定楼层
1#
发表于 2017-2-9 14:56:36 |只看该作者 |倒序浏览
什么是CoAP
    CoAP是受限制的应用协议(Constrained Application Protocol)的代名词。最近几年专家们预测会有更多的设备相互连接,而这些设备的数量将远超人类的数量。在这种大背景下,物联网和M2M技术应运而生。虽然对人们而言,连接入互联网显得方便容易,但是对于那些微型设备而言接入互联网非常困难。在当前由PC机组成的世界,信息交换是通过TCP和应用层协议HTTP实现的。但是对于小型设备而言,实现TCP和HTTP协议显然是一个过分的要求。为了让小设备可以接入互联网,CoAP协议被设计出来。CoAP是一种应用层协议,它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。



CoAP协议是否可以替换HTTP协议?
    CoAP并不能替代HTTP协议,但是对于那些小设备(256KB Flash 32KB RAM 20MHz主频)而言CoAP的确是一个好的解决方案。



CoAP消息类型
CoAP采用与HTTP协议相同的请求响应工作模式。CoAP协议共有4中不同的消息类型。
CON——需要被确认的请求,如果CON请求被发送,那么对方必须做出响应。
NON——不需要被确认的请求,如果NON请求被发送,那么对方不必做出回应。
ACK——应答消息,接受到CON消息的响应。
RST——复位消息,当接收者接受到的消息包含一个错误,接受者解析消息或者不再关心发送者发送的内容,那么复位消息将会被发送。



CoAP消息结构
一个CoAP消息最小为4个字节,以下是CoAP协议不同部分的描述。
【版本Version】:类似于IPv6和IPv6,仅仅是一个版本号。
【消息类型Message Type】:CON,NON,ACK,RST。
【消息ID Message ID】:每个CoAP消息都有一个ID,在一次会话中ID总是保持不变。但在这个会话之后该ID会被回收利用。
【标记 Token】:标记是ID的另一种表现。
【选项 Options】:CoAP选项类似于HTTP请求头,它包括CoAP消息本身,例如CoAP端口号,CoAP主机和CoAP查询字符串等。
【负载Payload】:真正有用的被交互的数据。







图 CoAP消息结构

CoAP的URL
    在HTTP的世界中,RESTFul协议由于其简单性和适用性,在WEB应用中越来越受欢迎,这样的道理同样适用于CoAP。一个CoAP资源可以被一个URI所描述,例如一个设备可以测量温度,那么这个温度传感器的URI被描述为:CoAP://machine.address:5683/******s/temperature。请注意,CoAP的默认UDP端口号为5683。



CoAP观察模式
    在物联网的世界中,你需要去监控某个传感器例如温度或湿度等。在这种情况下,CoAP客户端并不需要不停的查询CoAP服务器端的数据变化情况。CoAP客户端可以发送一个观察请求到服务器端。从该时间点开始计算,服务器便会记住客户端的连接信息,一旦温度发生变化,服务器将会把新结果发送给客户端。如果客户端不在希望获得温度检测结果,那么客户端将会发送一个RST复位请求,此时服务器便会清除与客户端的连接信息。



CoAP块传输
    CoAP协议的特点是传输的内容小巧精简,但是在某些情况下不得不传输较大的数据。在这种情况下可以使用CoAP协议中的某个选项设定分块传输的大小,那么无论是服务器或客户端可完成分片和组装这两个动作。




举报本楼

军衔等级:

  上等兵

注册:2016-2-16
2#
发表于 2017-2-17 16:06:23 |只看该作者
学习了。

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
3#
发表于 2017-2-17 17:12:10 |只看该作者
dongdongwx 发表于 2017-2-17 16:06
学习了。

举报本楼

军衔等级:

  大校

注册:2005-6-2524
4#
发表于 2017-2-18 23:34:06 |只看该作者
ding

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
5#
发表于 2017-2-20 09:19:25 |只看该作者
fieldmouse 发表于 2017-2-18 23:34
ding

举报本楼

军衔等级:

  中士

注册:2017-2-22
6#
发表于 2017-2-23 19:02:29 |只看该作者
学习了,谢谢楼主的资料

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
7#
发表于 2017-2-24 10:03:44 |只看该作者
故乡人 发表于 2017-2-23 19:02
学习了,谢谢楼主的资料

点评

故乡人  客气,客气  详情 回复 发表于 2017-2-24 15:53

举报本楼

军衔等级:

  中士

注册:2017-2-22
8#
发表于 2017-2-24 15:53:24 |只看该作者
jason20141217 发表于 2017-2-24 10:03

客气,客气

举报本楼

军衔等级:

  三级军士长

注册:2017-1-1013
9#
发表于 2017-2-28 09:35:26 |只看该作者

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
10#
发表于 2017-2-28 11:34:55 |只看该作者
qiuxueerlai 发表于 2017-2-28 09:35

举报本楼

军衔等级:

  新兵

注册:2008-2-27
11#
发表于 2017-2-28 17:20:08 |只看该作者
嗯.就是简单扩充一下UDP,增加了对端接收成功的ACK确认

点评

jason20141217  小了很多,还得细看才好  详情 回复 发表于 2017-3-1 09:10

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
12#
发表于 2017-3-1 09:10:20 |只看该作者
tangbaoli 发表于 2017-2-28 17:20
嗯.就是简单扩充一下UDP,增加了对端接收成功的ACK确认

小了很多,还得细看才好

举报本楼

军衔等级:

  中将

注册:2009-4-76
13#
发表于 2017-3-10 12:35:48 |只看该作者
谢谢分享。。。。。。

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
14#
发表于 2017-3-13 21:43:21 |只看该作者
Miro 发表于 2017-3-10 12:35
谢谢分享。。。。。。

举报本楼

军衔等级:

  新兵

注册:2016-12-202
15#
发表于 2017-3-16 14:29:20 |只看该作者
学习了,有没有实际应用了的例子呢?

举报本楼

军衔等级:

  新兵

注册:2017-3-17
16#
发表于 2017-3-17 11:01:10 |只看该作者
谢谢分享 学习了

举报本楼

军衔等级:

  新兵

注册:2017-3-17
17#
发表于 2017-3-17 15:28:18 |只看该作者
谢谢楼主的分享

点评

jason20141217  不谢  详情 回复 发表于 2017-3-19 22:22

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
18#
发表于 2017-3-19 22:22:41 |只看该作者
kellyangel 发表于 2017-3-17 15:28
谢谢楼主的分享

不谢

举报本楼

军衔等级:

  新兵

注册:2017-3-20
19#
发表于 2017-3-20 14:59:56 |只看该作者
谢谢!最近正在学习物联网方面的

点评

jason20141217  神马公司  详情 回复 发表于 2017-3-20 16:47

举报本楼

军衔等级:

  四级通信军士

注册:2014-12-17
20#
发表于 2017-3-20 16:47:01 |只看该作者
kirkwh 发表于 2017-3-20 14:59
谢谢!最近正在学习物联网方面的

神马公司

举报本楼

您需要登录后才可以回帖 登录 | 注册 |

Archiver|手机版|C114 ( 沪ICP备12002291号-1 )|联系我们 |网站地图  

GMT+8, 2024-4-25 11:35 , Processed in 0.183738 second(s), 16 queries , Gzip On.

Copyright © 1999-2023 C114 All Rights Reserved

Discuz Licensed

回顶部