CoAP协议详解上课讲义

上传人:youn****329 文档编号:129974530 上传时间:2020-04-24 格式:PPT 页数:91 大小:1.18MB
返回 下载 相关 举报
CoAP协议详解上课讲义_第1页
第1页 / 共91页
CoAP协议详解上课讲义_第2页
第2页 / 共91页
CoAP协议详解上课讲义_第3页
第3页 / 共91页
CoAP协议详解上课讲义_第4页
第4页 / 共91页
CoAP协议详解上课讲义_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《CoAP协议详解上课讲义》由会员分享,可在线阅读,更多相关《CoAP协议详解上课讲义(91页珍藏版)》请在金锄头文库上搜索。

1、CoAP TheConstrainedApplicationProtocol 协议详解 Jade2016 12 目录 概述MessageModelRequest ResponseModelOptionsCoAP组播CoAP代理SecuringCoAP 协议模型 特征基于UDP的类似HTTP的Client Server交互模型Client发送Request 携带不同method 请求对资源 通过URI表示 的操作 Server返回Response 携带资源的representation 和状态码在M2M应用场景 Endpoint实际同时是Server和Client 逻辑上分为Message和Re

2、quest Response两层 Request Response通过Message承载 从封包上不体现这种层次结构DTLS DatagramTransportLayerSecurity 可选由于基于UDP 支持组播 协议参与方 协议定义了如下角色 Endpoint CoAP协议的参与方Sender 发出Message的Endpoint 等于sourceEndpointRecipient Message的目的Endpoint 等于destinationEndpointClient 发出Request的Endpoint Response的destinationEndpointServer Req

3、uest的destinationEndpoint Response的sourceEndpointOriginServer resource的所在的ServerIntermediary 既作为Server由作为OriginServer的Client的Endpoint 可以理解为是Proxy的统称 协议参与方 续 Proxy 一种Intermediary 完成Request前转 Respone中继 执行缓存 namespace转换 协议转换等功能的Endpoint 基于前转请求架构中的位置 协议定义了forward proxy和reverse proxy两种代理Forward Proxy 被Cli

4、ent用于代表Client执行Request 并完成任何必要的转换 Reverse Proxy 代表一个或多个其他服务器并代表它们满足请求 执行任何必要的翻译的端点 与转发代理不同 客户端可能不知道它正在与反向代理通信 反向代理接收请求 就像它是目标资源的源服务器一样 CoAP to CoAPProxy 映射CoAPrequest到CoAPrequestCross Proxy 跨协议代理 比如COAP to HTTP和HTTP to COAP 目录 概述MessageModelRequest ResponseModelOptionsCoAP组播CoAP代理SecuringCoAP Messag

5、e模型 CoAPMessage用于承载Request Response模型 有两种模式 ReliabilityModeConfirmableMessage需要AcknowledgementMessage确认ConfirmableMessage和AcknowledgementMessage通过MessageID匹配Non ReliabilityModeNon ConfirmableMessage不需要AcknowledgementMessage确认 MessageFormat Messge组成部分固定4字节的头部变长的Token 0 8byte 0或多个TLV格式的Option可选的Payloa

6、dMessage承载信息RequestResponseEmptyMessage 只有messageheader 且code为0 00 MessageHeader Ver 2bitversion 当前版本为01 版本号非1的消息直接丢弃T Messagetype Confirmable 0 Non confirmable 1 Acknowledgement 2 Reset 3 TKL Tokenlength 当前有效取值0 8 其他认为是Messageformaterror MessageFormat Code Code 8bit无符号数 格式 c 3bitclasstype dd 5bitde

7、tailcode Class分类 0 表示message为request dd表示具体的method 0 01表示GET 0 02表示POST 0 03表示PUT 0 04表示DELETE 特例 0 00表示emptymessage2 succsee4 clienterror5 servererrorMessageID 用于message的重复性检测 以及Confirmablemsg non Confirmablemsg和ACK resetmsg的匹配Token 用于匹配Request和ResponseOption 可以0个或多个 每一个Option之后 可以是一个Option 或者是Payl

8、oadMaker和Payload或者message结束Payload 如果有payload 必然是payloadmarker 0 xFF 和直到udp报文结尾的payload Payloadmarker和payload必然同时出现 Message分类 协议定义的Message有如下几种ConfirmableMessage 需要确认的消息 Receipt方必须对消息回复Acknowledgement或者ResetNon confirmableMessage 不需要确认的消息 但是Receipt方可能回复ResetAcknowledgementMessage 用于向Sender确认Confirma

9、bleMessage已收到 可以携带PiggybackedResponseResetMessage 用于回复收到的无法处理的Message Confirmable和Non confirmableMessage 也可通过一个Empty的ConfirmableMessage触发一个Rest 用于Endpoint的保活检测EmptyMessage 一个code为0 00的既不是request也不是response的Message EmptyMessage并不是协议定义和上述Messge并列的type 它只是一种特殊含义的Message Message和Response映射关系 表示此种情况只是为了让

10、接收方发出Resetmsg Message的可靠传输 Client构造ConMsg发送到Server 未收到ACK或Reset时 支持基于指数回退的重发Server如果可以处理该Message 返回ACK 否则返回Reset Endpoint匹配CON和ACK ResetMessage中携带MessageID用于配对是一次可靠传输过程 支持重复检测简单的停等基于指数回退的重传机制保证靠性 Message的可靠传输 Message的可靠传输由一个Confirmablemsg发起 Confirmablemsg总是承载一个Request或Response 除非是一个为了触发Resetmsg的empt

11、ymsgReceipt收到一个Confirmablemsg 处理结果是 回复一个Acknowledgementmsg 携带匹配的messageID 或者在如下情况下Rejecting一个消息 recipient不能正确处理message message是一个emptymessage message中的code是1 6 7 Message存在格式错误Rejecting一个msg的结果是回复Resetmsg或者忽略它 Message的可靠传输相关参数 ACK TIMEOUT ACK RANDOM FACTOR 初始的ACK保护时间 重传保护时间 随后的MAX RETRANSMIT次重传都乘以2NS

12、TART 最大并发的处于活动状态的Message数目DEFAULT LEISURE Server休闲时间 用于收到多播Request时 何时返回Response的随机时间的计算 上限 PROBING RATE 经过重传MAX RETRASMIT次的Request最终未收到Response后 Requester发送对端的平均速率要小于该值 Message的可靠传输导出参数 MAX TRANS SPAN 最大重传时间 ACK TIMEOUT 2 MAX RETRANSMIT 1 ACK RANDOM FACTOR 2 16 1 1 5 45sMAX TRANSMIT WAIT 最大等待响应时间 A

13、CK TIMEOUT 2 MAX RETRANSMIT 1 1 ACK RANDOM FACTOR 2 32 1 1 5 93 45 2 1 5 16 93sMAX LATENCY 封包从发送到期望完成接收的最大保护时间 100s 协议参考MSL直接随意定义 即封包在传输链路上的时间PROCESSING DELAY 接收方从接收到该消息到发出响应的处理时间 ACK TIMEOUT 2sMAX RTT 最大往返时间 2 MAX LATENCY PROCESSING DELAY 202sEXCHANGE LIFETIME MAX TRANSMIT SPAN 2 MAX LATENCY PROCES

14、SING DELAY 45 200 2 247sNON LIFETIME non消息的MessageID最大安全重用保护时间 MAX TRANS SPAN MAX LATENCY 145 Message的非可靠传输 Client对于不需要可靠传输的Message通过Non ConfirmableMsg传递虽然不需要ACK确认NONMsg Server仍然可能会返回Reset给Client 比如Server不能处理这个NONmsg NONmsg中仍然携带MessageID用于重复检测 Message的非可靠传输 Message的非可靠传输由一个NONmsg发起NONmsg总是承载一个Reques

15、t或者Response 但是不能是一个Emptymsg不能用Acknowledgementmsg回复NONmsg虽然不需要ACK确认NONMsg Server仍然可能会返回Reset给Client 比如Server不能处理这个NONmsg Receipt收到一个NONmsg 在如下情况下Rejecting一个消息 recipient不能正确处理message message是一个emptymessage message中的code是1 6 7 Message存在格式错误Rejecting一个msg的结果是回复Resetmsg或者忽略它由于Sender不能确认Receipt是否收到NONmsg

16、所以可以重传多次 Receipt通过MsgID检测是否是重复消息 目录 概述MessageModelRequest ResponseModelOptionsCoAP组播CoAP代理SecuringCoAP Request Response模型 CoAPRequest和Response的语法通过Message承载可靠传输的Request的Response方式 PiggybackedResponse 同步可靠响应模式 piggybackedresponse 通过Conmsg的Ack携带Response异步可靠响应模式 SeparateResponse 当server不能立即响应Request时 可以先通过空Ackmsg响应Client 当Server准备好后 通过新的CONMsg将resonse发送给Client非可靠传输Request和Response piggybackedresponse Request和Response通过Token配对 异步可靠响应模式 跨多对Msg的Request和Response通过Token配对 非可靠响应模式 Request和Response通过Token

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号