COAP学习笔记2--Option

上一篇写到的COAP消息格式来自coap-18规范,但是发现它跟coap-03的规定不一样,按理说协议规范应该向下兼容,但事实不知道是我理解错了还是怎样~不过在实际的通信过程中信息格式是符合coap-03的。

还是建议阅读coap-03,比18更容易理解。

今天看了一下Option。

OC(Option Count)定义了Option在信息中的个数,实际上Option并不是必须的。这个可以理解在平时应用其他东西的时候,“选项”总是可有可无的嘛~

上边是Option的格式,主要包括三块。delta,length和value

从下边的抓包可以看出来OC=2说明有两个Option

delta:“增量”,然后再Option1的delta=7,option2的delta=6

因为delta1=option1.type=0;delta2=option2.type-option1.type。至此就可以理解为什么用delta来定义它了,即它就是一个增量。

length:是指选项后面所跟的字节数。

在coap中定义的Option包括:

C=Critical, U=Unsafe, N=NoCacheKey, R=Repeatable

以下是Californium在用JAVA实现coap时对Option的定义;

public static final int DEFAULT_MAX_AGE = 60;
	
	// draft-ietf-core-coap-13
	public static final int RESERVED_0 = 0;
	public static final int IF_MATCH = 1;
	public static final int URI_HOST = 3;
	public static final int ETAG = 4;
	public static final int IF_NONE_MATCH = 5;
	public static final int URI_PORT = 7;
	public static final int LOCATION_PATH = 8;
	public static final int URI_PATH = 11;
	public static final int CONTENT_TYPE = 12;
	public static final int MAX_AGE = 14;
	public static final int URI_QUERY = 15;
	public static final int ACCEPT = 16;
	public static final int LOCATION_QUERY = 20;
	public static final int PROXY_URI = 35;
	public static final int PROXY_SCHEME = 39;

	// draft-ietf-core-observe-07
	public static final int OBSERVE = 6;

	// draft-ietf-core-block-08
	public static final int BLOCK2 = 23;
	public static final int BLOCK1 = 27;
	public static final int SIZE = 28;

	// derived constant
	public static final int TOKEN_LEN = 8;
	public static final int ETAG_LEN = 8;


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stephen深瞳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值