CoAP数据包的大小是多少?

时间:2015-08-14 10:23:02

标签: linux sensor gateway iot coap

我是这项技术的新手,有人可以帮助我了解一些疑问吗?

问-1。 CoAP数据包的大小是多少?
(我知道有4个字节的固定标头,但是包括标头,选项和有效负载的最大大小限制是多少?)

问-2。对于像MQTT这样的Keep Alive有什么概念吗?
(它在UDP上工作了多长时间保持打开连接,是否有任何默认时间或每次发送数据包时都保持打开状态?)

问-3。我们可以将CoAP与TCP一起使用吗?
(CoAP的主要问题是它适用于UDP,是否有像MQTT QoS这样的概念?假设传感器每隔一秒发布一些数据,如果用户下线,CoAP中是否有任何保证,订户将获得所有数据时它上线了?)

问-4。连接的持续时间是多少?
(CoAP支持发布/订阅架构,可能一直需要连接打开,CoAP是否可以基于UDP。)

问-5。它是如何发现资源的?
(我有一个网关和5个传感器,这些传感器将如何连接到网关?网关会找到这些传感器吗?或者传感器会找到网关吗?)

问-5。传感器如何向网关注册?

请帮帮我,我真的需要回答。我对这些事情都很陌生,并建议我实施一些观点。

感谢。

1 个答案:

答案 0 :(得分:4)

  1. 取决于:
    • Core CoAP messages必须足够小,以适应其链路层数据包(UDP为~64 KiB),但无论如何,RFC规定:
      • 它应该适合单个IP数据包以避免IP分段(IPv6的MTU为1280)。如果对标头的大小一无所知,那么消息大小的上限为1152字节,有效负载大小为1024字节;
      • 或更少,以避免适应层碎片(6LoWPAN网络为60-80字节);
    • 如果您需要传输更大的有效负载,此IETF draft扩展了核心CoAP,其中包含用于从多个请求 - 响应对中的资源表示传输多个信息块的新选项(因此您可以为每个消息传输超过64KiB)
  2. 我从未使用过MQTT,在任何情况下,CoAP都是无连接的,请求和响应是通过UDP或DTLS异步交换的。我想您正在寻找观察功能:它使CoAP客户端能够“订阅”资源和服务器,以便在一段时间内向订阅的客户端发送更新。

  3. 有一个IETF draft描述了TCP上的CoAP,但我不知道它是如何与观察功能交互的:通常它遵循best-effort approach,只是客户端是被认为不再对该资源感兴趣,并且被服务器从观察者列表中删除。

  4. 当服务器认为客户端不再对资源感兴趣或客户端要求取消订阅资源时,观察将停止。

  5. 有一个众所周知的相对URI“/.well-known/core”。它被定义为请求关于服务器托管的资源的链接列表的默认入口点。 Here了解更多信息。

  6. 请看5。