欢迎来到天天文库
浏览记录
ID:21188407
大小:1.13 MB
页数:91页
时间:2018-10-18
《coap协议详解》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、CoAP(TheConstrainedApplicationProtocol)协议详解Jade2016/12目录概述MessageModelRequest/ResponseModelOptionsCoAP组播CoAP代理SecuringCoAPCoAP是什么CoAP是IETF为满足物联网,M2M场景制定的协议,特点如下:类似HTTP,基于REST模型:Servers将Resource通过URI形式呈现,客户端可以通过诸如GET,PUT,POST,DELETE方法访问,但是相对HTTP简化实现降低复杂度(代码更小,封包更小)应用于资源受限的环境(内存,
2、存储,无良好的随机源),比如CPU为8-bit的单片机,内存32Kb,FLASH256Kb针对业务性能要求不高的应用:低速率(10sofkbit/s),低功耗满足CoRE环境的HTTP简化增强版本协议模型特征基于UDP的类似HTTP的Client/Server交互模型Client发送Request(携带不同method)请求对资源(通过URI表示)的操作,Server返回Response(携带资源的representation)和状态码在M2M应用场景,Endpoint实际同时是Server和Client逻辑上分为Message和Request/Re
3、sponse两层,Request/Response通过Message承载,从封包上不体现这种层次结构DTLS(DatagramTransportLayerSecurity)可选由于基于UDP,支持组播协议参与方协议定义了如下角色:Endpoint:CoAP协议的参与方Sender:发出Message的Endpoint,等于sourceEndpointRecipient:Message的目的Endpoint,等于destinationEndpointClient:发出Request的Endpoint,Response的destinationEndpoi
4、ntServer:Request的destinationEndpoint,Response的sourceEndpointOriginServer:resource的所在的ServerIntermediary:既作为Server由作为OriginServer的Client的Endpoint。可以理解为是Proxy的统称协议参与方-续Proxy:一种Intermediary,完成Request前转,Respone中继,执行缓存,namespace转换,协议转换等功能的Endpoint,基于前转请求架构中的位置,协议定义了forward-proxy和rev
5、erse-proxy两种代理Forward-Proxy:被Client用于代表Client执行Request,并完成任何必要的转换。Reverse-Proxy:代表一个或多个其他服务器并代表它们满足请求,执行任何必要的翻译的端点。与转发代理不同,客户端可能不知道它正在与反向代理通信;反向代理接收请求,就像它是目标资源的源服务器一样。CoAP-to-CoAPProxy:映射CoAPrequest到CoAPrequestCross-Proxy:跨协议代理,比如COAP-to-HTTP和HTTP-to-COAP目录概述MessageModelRequest
6、/ResponseModelOptionsCoAP组播CoAP代理SecuringCoAPMessage模型CoAPMessage用于承载Request/Response模型,有两种模式:ReliabilityModeConfirmableMessage需要AcknowledgementMessage确认ConfirmableMessage和AcknowledgementMessage通过MessageID匹配Non-ReliabilityModeNon-ConfirmableMessage不需要AcknowledgementMessage确认Mes
7、sageFormatMessge组成部分固定4字节的头部变长的Token(0-8byte)0或多个TLV格式的Option可选的PayloadMessage承载信息RequestResponseEmptyMessage(只有messageheader,且code为0.00)MessageHeaderVer:2bitversion,当前版本为01,版本号非1的消息直接丢弃T:Messagetype:Confirmable(0),Non-confirmable(1),Acknowledgement(2),Reset(3)TKL:Tokenlength,当
8、前有效取值0-8,其他认为是MessageformaterrorMessageFormatCode:Code
此文档下载收益归作者所有