物联网应用层协议深度解析
在当今数字化时代,物联网(IoT)的发展日新月异,它极大地拓展了通信的可能性,并催生了众多创新服务。从网络架构的角度来看,互联网作为一组中立的协议,通过 TCP、UDP 和 IP 覆盖了 OSI 模型的前几层。而应用层则承载着知名的数据表示方式,如最初为网络开发的格式,以及一些专用的数据表示,如 HTTP 或 XML。
1. 物联网通信形式
在物联网领域,有两种主要的通信形式:发布/订阅架构和基于 REST 规则的客户端/服务器方法。
1.1 发布/订阅
发布/订阅模式意味着一个或多个信息源将信息发布到特定通道上的代理,而订阅者则向该代理注册以获取信息。MQTT 是基于这一概念的最流行的服务之一。它最初由 IBM 于 1999 年为 MQSeries 中间件开发,2013 年成为 OASIS 标准,2016 年成为 ISO 标准。
发布者和订阅者通过 TCP 与代理建立连接。MQTT 增加了名为 QoS(服务质量)的可靠性级别,具有多组确认机制:
-
QoS 0
:提供与 TCP 相同的可靠性,适用于连接稳定的情况。
-
QoS 1
:最常用,确保消息至少被接收一次。
-
QoS 2
:避免消息重复,消息仅被接收一次。
每个发布的消息都包含一个主题,订阅者可以选择他们想要接收信息的主题。主题采用分层结构,使用特殊字符“/”分隔元素。例如:US/California/Sacramento/Temperature。订阅者可以使用通配符选择一组主题,“+”表示主题中的任何元素,“#”表示子树。
1.2 REST 原则
Web 是依赖互联网网络取得巨大成功的范例之一。物联网是基于 REST 架构向受限设备的扩展。与 MQTT 不同,Web 基于客户端和服务器之间的点对点对话。服务器拥有资源,客户端可以通过 HTTP 等协议访问或修改这些资源。
REST 架构遵循一些设计准则,以实现可扩展性。主要目标是简化服务器行为,以处理尽可能多的请求。
- 命名 :在 REST 中,每个资源通过唯一的 URI(统一资源标识符)进行标识。如果 URI 包含国际字符,则称为 IRI(国际资源标识符)。与 MQTT 主题不同,URI 路径没有语义,不支持通配符,且具有全局唯一性。
-
无状态服务器
:REST 原则有助于设计可扩展的服务器。服务器必须是无状态的,即处理完客户端请求后不保留状态,状态由客户端维护。HTTP 是实现 RESTful Web 服务器的常用协议,定义了不同的方法:
- GET :用于获取服务器上的资源,如网页。
- PUT :用于修改服务器上的现有资源。
- PATCH :用于修改资源的部分内容。
- POST :用于在服务器上创建资源。
- DELETE :用于删除资源。
2. 受限设备的挑战
随着电子技术的进步,微芯片的性能越来越强大,但物联网设备的逻辑有所不同。对于大规模物联网来说,能源仍然是主要考虑因素,因为连接能源源或充电会产生成本。因此,物联网设备的性能将保持一定的稳定性,受到硬件和网络的限制。
2.1 硬件限制
根据 RFC 7228,物联网设备可分为三类:
| 设备类别 | 内存(RAM) | 闪存(Flash) | 特点 |
| ---- | ---- | ---- | ---- |
| 0 类 | 远小于 10 KiB | 100 KiB | 几乎无法安装受限 IP 栈及运行其上的应用程序 |
| 1 类 | 约 10 KiB | 100 KiB | 经适配可安装部分 IP 栈 |
| 2 类 | 至少 50 KiB | 250 KiB | 可运行 Linux 操作系统,IP 栈和应用程序限制较少 |
1 类设备由于限制过多,难以使用基于 TCP 的 MQTT 或 HTTP。IETF 提出了协议栈的修订,以适应受限环境,主要成果是设计了 CoAP(受限应用协议)。0 类设备无法直接使用互联网交换信息,需要安装网关。
2.2 网络限制
物联网设备的网络可分为两种拓扑结构:
-
网状网络
:如 IEEE 802.15.4 系列,是 Wi-Fi 接入协议的节能适配。吞吐量约为数百千比特/秒,帧大小约为数百字节,传输范围限制在 50 米,消息需中继才能到达目的地。设备需要运行路由协议,这会消耗设备能量。
-
星型拓扑
:所有通信都通过中心点进行,无需路由协议。低功耗广域网(LPWAN)属于此类,如 Sigfox、LoRaWAN、3GPP 等。传输功率为 25 mW 时,在城市环境中通信距离可达 3 公里,在视距条件下可达 20 公里。LPWAN 适用于 0 类设备,设备无需实现 IP 栈。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(设备):::process -->|发送原始数据| B(无线电网关):::process
B -->|转发帧| C(网络网关):::process
C -->|隧道传输| D(应用程序):::process
3. 物联网数据表示
为了适应物联网的需求,数据表示方式也在不断发展。
3.1 HTML 和 XML
HTML 是用于网页浏览的元语言,允许在文本文档中插入标签以添加显示信息或链接。XML 是两个应用程序之间的交换格式,提供了更灵活的信息交换方式,但对于受限设备来说过于冗长,会产生过多开销。
3.2 JSON
JSON(JavaScript 对象表示法)以更紧凑的方式组织信息,成为信息交换的通用语言。它定义了四种数据类型:数字、文本、数组和对象。JSON 易于在其他语言中翻译,但缺乏描述结构的形式主义。JSON - LD 由 W3C 定义,通过引入特定键来描述数据结构和单位,增强了 JSON 的互操作性。
以下是一个 JSON 示例:
{
"image": {
"Width": 800,
"Height": 600,
"Title": "View from 15th Floor",
"Thumbnail": {
"Animated": false,
"IDs": [11, 943, 234, 38793],
"Url": "http://www.example.com/image/481989943"
}
}
}
3.3 CBOR
JSON 虽然灵活紧凑,但对于受限设备和网络来说还不够。CBOR(简洁二进制对象表示)基于信息的二进制表示,对数字特别高效。它采用 TLV(类型、长度、值)编码:
- 前三位表示元素类型。
- 剩余 5 位编码值或长度字段的大小。
例如,一个 JSON 结构大小为 392 个字符,其 CBOR 等效大小为 151 字节。使用 CBOR 时,应尽量避免使用 ASCII 字符,优先选择数字,以优化数据表示。
综上所述,物联网的发展离不开合适的通信协议和数据表示方式。不同的协议和表示方式适用于不同的场景和设备,了解它们的特点和应用场景,有助于我们更好地构建物联网系统。
4. 新应用协议对物联网的意义
随着物联网的不断发展,原有的为无约束网络和设备设计的协议栈已无法满足需求。因此,在数据模型和 REST 交互方面进行了重新审视,采用二进制格式以减少传输信息的大小,并简化实现。
4.1 二进制格式优势
二进制格式相较于文本格式(如 XML、JSON),在传输效率和存储占用上具有明显优势。以 CBOR 为例,它能将数据以更紧凑的二进制形式表示,尤其对于数字的处理更加高效。在物联网中,大量的数据需要传输和存储,二进制格式可以显著减少带宽占用和设备存储空间的消耗。
4.2 对受限设备的适配
新的应用协议针对受限设备的特点进行了优化。例如,CoAP 协议就是为了适应受限设备的硬件和网络条件而设计的。它简化了 REST 架构,减少了协议开销,使得受限设备能够更高效地参与物联网通信。同时,LPWAN 网络的发展也为受限设备提供了更合适的通信方式,无需设备实现复杂的 IP 栈。
5. 物联网通信协议选择建议
在构建物联网系统时,选择合适的通信协议至关重要。以下是一些选择建议:
5.1 考虑设备类型
- 受限设备(0 类和 1 类) :由于硬件资源有限,应优先考虑对资源消耗较低的协议,如 CoAP 和 LPWAN 相关协议。这些协议可以在低功耗、低带宽的情况下实现设备的通信。
- 非受限设备(2 类) :可以选择功能更强大的协议,如基于 HTTP 的 REST 架构或 MQTT。这些协议提供了更丰富的功能和更高的灵活性。
5.2 考虑应用场景
- 数据推送场景 :如果需要实时、高效地推送数据,MQTT 的发布/订阅模式是一个不错的选择。它可以确保数据及时到达订阅者,并且支持不同的 QoS 级别,以满足不同的可靠性需求。
- 资源访问场景 :对于需要访问和操作服务器资源的场景,REST 架构更为合适。通过 HTTP 协议,客户端可以方便地进行资源的获取、修改、创建和删除操作。
| 应用场景 | 推荐协议 | 原因 |
|---|---|---|
| 数据推送 | MQTT | 实时性高,支持不同 QoS 级别 |
| 资源访问 | REST(HTTP) | 支持多种操作方法,便于资源管理 |
6. 物联网发展趋势展望
物联网作为未来科技发展的重要方向,将呈现以下发展趋势:
6.1 设备智能化
随着人工智能和机器学习技术的发展,物联网设备将变得更加智能。设备可以自主分析和处理数据,做出更智能的决策,减少对云端服务器的依赖。
6.2 网络融合
不同类型的网络将逐渐融合,形成更加统一的物联网网络。例如,LPWAN 与 Wi-Fi、蓝牙等短距离通信技术的融合,将为物联网提供更全面的覆盖和更灵活的通信方式。
6.3 安全增强
物联网的安全问题一直是关注的焦点。未来,将加强物联网系统的安全防护,包括数据加密、身份认证、访问控制等方面。新的安全协议和技术将不断涌现,保障物联网的安全运行。
graph LR
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px;
A(设备智能化):::process --> B(物联网发展):::process
C(网络融合):::process --> B
D(安全增强):::process --> B
7. 总结
物联网的发展为我们带来了前所未有的机遇,但也面临着诸多挑战。在应用层,我们需要根据不同的设备类型和应用场景选择合适的通信协议和数据表示方式。同时,要关注物联网的发展趋势,不断探索和创新,以推动物联网技术的持续发展。无论是受限设备的硬件和网络限制,还是数据表示方式的优化,都需要我们深入研究和实践,才能构建出高效、安全、可靠的物联网系统。
在未来的物联网世界中,各种设备将更加智能地连接在一起,为我们的生活和工作带来更多的便利和价值。我们期待着物联网技术在各个领域的广泛应用,为社会的发展做出更大的贡献。
超级会员免费看
690

被折叠的 条评论
为什么被折叠?



