java实现coap协议源码_原 分布式项目(三)CoAp

上回说到Web manage的构建,完成的对产品,物模型中的数据,设备数据,并把对应的数据缓存到redis中,接下来就开始coap客户端和服务器的构建。

coap

现阶段PC网络交互中较多的是使用tcp和http协议,但物联网设备都要求较小的功耗、较小的带宽,并且CPU、内存都是有限的,所以在这种需求下,http相对就不实用了,因为http相对臃肿,而CoAP是受限制的应用协议(Constrained Application Protocol)的代名词(百度百科),CoAp和http一样都是应用层的协议,并且它是一种类http协议,相同的如请求响应模式,url方式,请求方法(做了缩减),响应码(做了简化),不同的是CoAp是基于UDP的,可以双向通信(既是客户端又是服务端),并且CoAp协议非常的小,最小的数据包仅为4k。

coap报文

java实现coap协议源码_原 分布式项目(三)CoAp_第1张图片

Var:版本编号

T:报文类型,coap定义了4种报文类型

CON:需要确认的消息,可实现可靠性传输

NON:不要确认的消息,消息传输不可靠

ACK:确认应到消息,与CON对象

RST:复位,要求消息重传

TKL:标识符长度,CoAp定义了两种标识符,Message Id(必须)和Token(非必须)

Code:响应码,如4.04,5.00,和http中的404、500功能类似

Message Id:报文编号

Token:标识符具体的内容

Option:可选选项参数,一个或多个,可设置Uri-Host、Uri-Port、Uri-Path和Uri-Query,CoAp对Option定了3部分

Delta:当前Option的编号,等于前面所有Option delta的总和

Length:表示value部分具体的长度

value:当前Option承载的具体内容

1111 1111B:报文与所承载的数据分隔符

Payload:所承载的数据实体

请求方法

请求方法和http类似,coap定义了4种请求方式

get:获取资源

post:创建资源

put:更新资源

delete:删除资源

coap数据格式

和http类似,用户定义所承载的数据的具体格式,如text/html,application/json

你可能感兴趣的:(java实现coap协议源码)