gaoxianqu 发表于 2016-2-16 22:50:31

CoAP协议

本帖最后由 gaoxianqu 于 2016-2-16 22:52 编辑

由于物联网中的很多设备都是资源受限型的,即只有少量的内存空间和有限的计算能力,所以传统的HTTP协议应用在物联网上就显得过于庞大而不适用。 IETF的CoRE工作组提出了一种基于REST架构的CoAP协议。CoAP是6LowPAN协议栈中的应用层协议。它运行于UDP协议之上而不是像HTTP那样运行于TCP之上。CoAP协议非常小巧,最小的数据包仅为4字节。

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】:真正有用的被交互的数据。
http://img.blog.csdn.net/20140101142222515?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveHVrYWk4NzExMDU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center

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

参考资料【CSDN博客:CoAP协议和开源实现】
【百度文库:无线物联网中CoAP协议的研究与实现】
【相关论文:基于CoAP协议的智能家居功耗监控系统的通信机制设计与实现】
【相关论文:CoAP协议分析及应用场景设计】


页: [1]
查看完整版本: CoAP协议