跳到主要内容

3. Classes of Constrained Devices (受限设备的类别)

3. Classes of Constrained Devices (受限设备的类别)

尽管互联网连接设备的种类繁多, 但为不同类别的受限设备提供一些简洁的术语可能是值得的。

在本文档中, 表 1 中的类别名称可用作设备能力的粗略指示:

名称数据大小 (例如 RAM)代码大小 (例如 Flash)
Class 0<< 10 KiB<< 100 KiB
Class 1~ 10 KiB~ 100 KiB
Class 2~ 50 KiB~ 250 KiB

表 1: 受限设备的类别 (KiB = 1024 字节)

截至本文档撰写时, 这些特性对应于商业上可用的受限设备芯片和设计核心的可区分集群。虽然预计这些类别的边界会随着时间的推移而移动, 但摩尔定律在嵌入式领域的效果往往不如个人计算设备: 通过增加晶体管数量和密度获得的收益更有可能投资于降低成本和功耗要求, 而不是持续提高计算能力。

Class 0 设备是非常受限的类似传感器的微尘设备。它们在内存和处理能力方面受到如此严重的限制, 以至于它们很可能没有安全地直接与互联网通信所需的资源 (尽管存在罕见的英勇且精心设计的实现)。Class 0 设备将在更大设备的帮助下参与互联网通信, 这些更大设备充当代理, 网关或服务器。Class 0 设备通常无法以传统意义上全面地进行保护或管理。它们很可能使用非常小的数据集进行预配置 (并且很少重新配置, 如果有的话)。出于管理目的, 它们可以响应保活信号并发送开/关或基本健康指示。

Class 1 设备在代码空间和处理能力方面相当受限, 以至于它们不能轻松地使用完整的协议栈 (如使用 HTTP, 传输层安全 (TLS, Transport Layer Security) 以及相关的安全协议和基于 XML 的数据表示) 与其他互联网节点通信。然而, 它们足够能够使用专门为受限节点设计的协议栈 (如基于 UDP 的受限应用协议 (CoAP, Constrained Application Protocol) [COAP]) 并在没有网关节点帮助的情况下参与有意义的对话。特别是, 它们可以为大型网络所需的安全功能提供支持。因此, 它们可以作为完全开发的对等节点集成到 IP 网络中, 但它们需要在协议和应用使用方面节约状态内存, 代码空间, 并且通常节约功耗。

Class 2 设备受限较少, 基本上能够支持与笔记本电脑或服务器上使用的大多数相同的协议栈。然而, 即使这些设备也可以从轻量级和效率优化的协议中受益, 并从消耗更少的带宽和网络资源中受益。此外, 使用更少的网络资源可以为应用程序留出更多资源。因此, 在 Class 2 设备上使用为更受限设备定义的协议栈可能会降低开发成本并提高互操作性。

存在能力明显超过 Class 2 设备的受限设备。从标准开发的角度来看, 它们的要求较低, 因为它们可以在很大程度上不变地使用现有协议。因此, 本文档不试图定义超过 Class 2 的受限类别。这些设备仍然可能受到有限能源供应的限制。

关于检查受限节点的能力, 特别是对于 Class 1 设备, 了解它们能够运行什么类型的应用程序以及哪些协议机制最合适是很重要的。由于内存和其他限制, 每个特定的 Class 1 设备可能只能支持其预期操作所需的几个选定功能。换句话说, 实际可以支持的功能集不是每个设备类型的静态集: 具有类似约束的设备可能选择支持不同的功能。即使 Class 2 设备具有一些更多的可用功能并且可能能够提供更完整的功能集, 它们仍然需要针对它们将运行的应用程序类型和它们需要的协议功能进行评估。为了能够推导出任何需求, 需要分析用例以及设备在应用程序和网络中的参与。用例可能结合多个类别的受限设备以及更传统的互联网节点。