8

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

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

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

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

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

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

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

请帮助我,我真的需要答案。我对这类事情很陌生,并从实施的角度向我提出了一些建议。

谢谢。

4

1 回答 1

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

  2. 有一个IETF 草案描述了基于 TCP 的 CoAP,但我不知道它如何与观察功能交互:通常它遵循尽力而为的方法,只是碰巧客户端被认为不再对资源感兴趣并被删除由服务器从观察者列表中。

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

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

  5. 看5。

于 2015-10-10T14:08:34.950 回答