CoAP数据包的大小是多少?

Ank*_*kit 6 linux gateway sensor coap iot

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

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

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

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

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

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

Q-5.传感器如何在网关中注册?

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

谢谢.

Jil*_*loc 6

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

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

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

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

  6. 看5。

  • 广告 3.(基于 TCP 的 MQTT)有一个 [IETF 草案](https://tools.ietf.org/html/draft-tschofenig-core-coap-tcp-tls-04) 描述了该功能。 (2认同)