CoAP协议
CoAP(Constrained Application Protocol) 
CoAP是6LowPAN协议栈中的应用层协议 
CoAP是超轻量型协议 
CoAP的默认UDP端口号为5683
1. 四种消息类型
typedef enum {
  COAP_TYPE_CON, /* confirmables */
  COAP_TYPE_NON, /* non-confirmables */
  COAP_TYPE_ACK, /* acknowledgements */
  COAP_TYPE_RST  /* reset */
} coap_message_type_t;
ACK回应CON 
RST:当接收者接受到的消息包含一个错误,接受者解析消息或者不再关心发送者发送的内容,那么复位消息将会被发送
2. 消息结构 
version:版本号 
type:消息类型 
tkl:标记长度 
id:每个CoAP消息都有一个ID,在一次会话中ID总是保持不变 
token:标记是ID的另一种表现 
options:类似于HTTP请求头 
payload:交互数据
3. options 
包含Delta、Length、Value 
Delta:表示Option的增量,当前的Option的具体编号等于之前所有Option Delta的总和 
Length:表示Value的具体长度 
Value:表示Option具体内容
- 3 Uri-Host:CoAP主机名称
 - 7 Uri-Port:CoAP端口号,默认为5683
 - 11 Uri-Path:资源路径。长度不计第一个”\”
 - 15 Uri-Query:资源参数。Uri-Path?Uri-Query&Uri-Query
 
4. code
- 2.01:Created
 - 2.02:Deleted
 - 2.03:Valid
 - 2.04:Changed
 - 2.05:Content。类似于HTTP 200 OK
 - 4.00:Bad Request 请求错误,服务器无法处理。类似于HTTP 400
 - 4.01:Unauthorized 没有范围权限。类似于HTTP 401
 - 4.02:Bad Option 请求中包含错误选项
 - 4.03:Forbidden 服务器拒绝请求。类似于HTTP 403
 - 4.04:Not Found 服务器找不到资源。类似于HTTP 404
 - 4.05:Method Not Allowed 非法请求方法。类似于HTTP 405
 - 4.06:Not Acceptable 请求选项和服务器生成内容选项不一致。类似于HTTP 406
 - 4.12:Precondition Failed 请求参数不足。类似于HTTP 412
 - 4.15:Unsuppor Conten-Type 请求中的媒体类型不被支持。类似于HTTP 415
 - 5.00:Internal Server Error 服务器内部错误。类似于HTTP 500
 - 5.01:Not Implemented 服务器无法支持请求内容。类似于HTTP 501
 - 5.02:Bad Gateway 服务器作为网关时,收到了一个错误的响应。类似于HTTP 502
 - 5.03:Service Unavailable 服务器过载或者维护停机。类似于HTTP 503
 - 5.04:Gateway Timeout 服务器作为网关时,执行请求时发生超时错误。类似于HTTP 504
 - 5.05:Proxying Not Supported 服务器不支持代理功能
 
CoAP协议的更多相关文章
- 转:XMPP协议、MQTT协议、HTTP协议、CoAP协议的基本比较
		
一.先看下相关国外的专业数据对四大协议的比较: Protocol CoAP XMP ...
 - CoAP 协议解析说明(转)
		
CoAP 协议全面分析 HTTP与COAP 请求与响应示例 HTTP请求(文本格式) POST https://getman.cn/echo HTTP/1.1 User-Agent: Fiddler ...
 - Coap协议学习笔记-第一篇
		
1. 物联网应用上一般使用单片机(或者其他SOC),单片机的RAM内存一般只有20KB~~128KB左右,然而一个TCP协议栈可能就20KB,所以只能用UDP,因为UDP相对小很多,然后在UDP上加了 ...
 - 无线物联网中CoAP协议的研究与实现【转】
		
无线物联网中CoAP协议的研究与实现 时间:2013-04-09 来源:电子科技 作者:汤春明,张 荧,吴宇平 关键字:CoAP 无线 物联网 协议 摘要:由于物联网中的很多设备都是资源受 ...
 - 转战物联网·基础篇09-选择MQTT协议还是CoAP协议
		
前面章节介绍过,MQTT协议和CoAP协议都是物联网中比较流行的协议,都对传输量做了很大的精简,传输开销小,以适应物理网的网络环境. XMPP协议也有人说是适合物联网通信的,但它是基于XML, ...
 - MQTT研究之EMQ:【CoAP协议应用开发】
		
本博文的重点是尝试CoAP协议的应用开发,其中包含CoAP协议中一个重要的开源工具libcoap的安装和遇到的问题调研.当然,为了很好的将EMQ的CoAP协议网关用起来,也调研了下EMQ体系下,CoA ...
 - MQTT研究之EMQ:【CoAP协议的ECC证书研究】
		
今天研究的内容,是CoAP这个协议在EMQ消息队列的支持,CoAP是一个受限资源的协议,基于UDP实现的多用于物联网环境的通信协议.相关介绍不多说,可以看RFC. CoAP协议下,基于DTLS通信,同 ...
 - 物联网协议CoAP协议学习
		
CoAP:Constrained Application Protocol协议是为物联网中资源受限的设备制定的应用层协议,即简化版的基于UDP的HTTP协议.其核心内容为资源抽象.REST式交互可扩展 ...
 - 初识CoAP协议
		
前言 本文介绍什么是CoAP,以及如何在物联网设备上使用它.CoAP是一种物联网协议,具有一些专门为受约束的设备而设计的有趣功能.还有其他一些可用于构建物联网解决方案的IoT协议,例如MQTT等. 物 ...
 - 抓住CoAP协议的“心”
		
摘要 The Constrained Application Protocol(CoAP)是一种专用的Web传输协议,用于受约束的节点和受约束的(例如,低功率,有损)网络. 节点通常具有带少量ROM和 ...
 
随机推荐
- VAE论文学习
			
intractable棘手的,难处理的 posterior distributions后验分布 directed probabilistic有向概率 approximate inference近似推 ...
 - GANomaly: Semi-Supervised Anomaly Detection via Adversarial Training-1-论文学习
			
通过对抗训练实现半监督的异常检测 Abstract 异常检测在计算机视觉中是一个经典的问题,即从异常中确定正常,但是由于其他类(即异常类)的样本数量不足,所以数据集主要基于一个类(即正常类).虽然该问 ...
 - ready与load的区别
			
JQuery里有ready和load事件 $(document).ready(function() { // ...代码... }) //document ready 简写 $(function() ...
 - shell脚本通过子网掩码计算出掩码位数
			
子网掩码格式为255.255.255.0可以通过以下脚本计算掩码位数 #!/bin/sh #maskdigits.sh mask maskdigits () { a=$(echo "$1&q ...
 - CHIMA网络安全攻防大赛经验分享
			
比赛模式 第一轮:20分钟基础知识赛(50道题) 安全运维,法律法规,linux操作系统等 第二轮:50分钟CTF夺旗(5道题) 题目涵盖 密码学 运用多种工具,如ASCII对照,古典密码,凯撒密码, ...
 - ajax页面刷新小错误(提交按钮type必须为button,而不能是submit)
			
背景: 使用ajax提交form表单时,提交按钮的type值写为了submit,导致ajax中回调函数中的提示信息toastr.success('提交数据成功');没有执行,只执行了alert语句 , ...
 - C++  枚举定义
			
我们在平常的编程中,时常需要为一些属性定义一组可以选择的值,比如文件打开的状态可能会有三种:输入 输出和追加 我们一般情况下记录这些状态是让每一个状态和一个常数相对应 比如 ; ; ; 这个方法虽 ...
 - python基础学习(十四)
			
28.模块当脚本执行 !!!! 注意 这是分两个文件的 一个是student.py和app3.py student.py name = "Song Ke" name_list ...
 - ORAchk - 数据库配置检查工具
			
1.概要2.下载和安装3.如何执行4.执行过程5.报告6.参考 1.概要 ORAchk之前被称为RACcheck,后来它的检查范围进行了扩展,改名为了ORAchk,它是在数据库系统进行健康检查的一个专 ...
 - Python random模块(以后用到一个再更新一个)
			
random模块是产生随机数的模块 1.random.random() 这是产生0~1之间一个随机浮点数,但是不会包括1 import random num = 0 while num < 10 ...