第5章 连接与协议
这一章的核心是:物联网设备如何接入网络,以及设备和平台之间如何进行数据通信。包括 NB-IoT、LoRa/LoRaWAN、MQTT、CoAP、LwM2M,其中当前课件内容重点展开了 MQTT、CoAP 和 LwM2M。
一、本章总体框架
这一章可以分成两大类内容:
1. 连接技术
主要回答:
物联网设备通过什么方式接入网络?
典型技术包括:
- NB-IoT;
- LoRa;
- LoRaWAN。
这类技术偏底层,关注的是设备怎么联网、传多远、功耗多低、覆盖多广。
2. 通信协议
主要回答:
设备联网之后,数据按照什么规则传输?
典型协议包括:
- MQTT;
- CoAP;
- LwM2M。
这类协议偏应用层,关注的是设备、服务器、平台之间如何交换数据、如何订阅消息、如何管理设备。
可以简单理解:
NB-IoT、LoRa 解决“怎么连上网”; MQTT、CoAP、LwM2M 解决“连上后怎么传数据、怎么管理设备”。
二、NB-IoT 简要复习
NB-IoT 全称是:
Narrow Band Internet of Things,窄带物联网。
它是一种基于蜂窝网络的低功耗广域物联网技术。
1. NB-IoT 的特点
NB-IoT 主要特点可以概括为:
- 广覆盖 覆盖能力强,适合地下室、水表井、停车场、偏远区域等场景。
- 低功耗 设备可以长期电池供电,适合不方便频繁更换电池的终端。
- 大连接 一个基站可以连接大量物联网设备。
- 低成本 终端模块成本相对较低,适合大规模部署。
- 低速率 适合小数据量、低频次传输,不适合视频、大文件等高速业务。
- 基于运营商网络 使用授权频谱,网络稳定性和管理能力较强。
2. NB-IoT 典型应用
常见应用有:
- 智能水表;
- 智能电表;
- 智能燃气表;
- 智慧停车;
- 烟雾报警;
- 井盖监测;
- 垃圾桶监测;
- 远程抄表。
这些场景都有共同特点:
数据量小、上传频率低、设备数量多、要求低功耗和广覆盖。
三、LoRa 与 LoRaWAN 简要复习
PPT 目录中也有 LoRa 及 LoRaWAN,并且习题要求比较二者联系和区别,所以这也是考试重点。
1. LoRa 是什么?
LoRa 是一种长距离、低功耗无线通信技术。
它主要解决的是:
低功耗设备如何进行远距离通信。
LoRa 适合:
- 智慧农业;
- 环境监测;
- 物流追踪;
- 智能园区;
- 智能建筑;
- 远程传感器网络。
2. LoRa 的特点
LoRa 的主要特点是:
- 传输距离远;
- 功耗低;
- 成本较低;
- 数据速率较低;
- 工作在免授权频段;
- 适合小数据量远距离传输。
它和 NB-IoT 的一个重要区别是:
LoRa 通常使用免授权频谱;NB-IoT 使用运营商授权频谱。
3. LoRaWAN 是什么?
LoRaWAN 是建立在 LoRa 物理层之上的网络协议。
也就是说:
LoRa 主要是物理层通信技术; LoRaWAN 是网络层协议和系统架构。
可以用一句话记:
LoRa 是“怎么发无线信号”,LoRaWAN 是“这些 LoRa 设备如何组网和通信”。
4. LoRa 与 LoRaWAN 的联系和区别
| 项目 | LoRa | LoRaWAN |
|---|---|---|
| 层次 | 物理层技术 | 网络协议/网络架构 |
| 作用 | 实现远距离低功耗无线传输 | 规定终端、网关、服务器之间如何通信 |
| 关注点 | 调制方式、距离、功耗 | 组网、安全、接入、数据转发 |
| 关系 | LoRa 是基础 | LoRaWAN 基于 LoRa |
考试可以这样答:
LoRa 是一种低功耗远距离无线调制技术,主要负责物理层数据传输;LoRaWAN 是基于 LoRa 的低功耗广域网协议,规定终端、网关和网络服务器之间的通信方式。二者关系是 LoRa 提供底层无线传输能力,LoRaWAN 提供组网和协议支持。
四、MQTT 协议
这部分是 PPT 展开的重点。
MQTT 全称是:
Message Queuing Telemetry Transport,消息队列遥测传输协议。
它是一个基于客户端—服务器模式的消息发布/订阅协议,构建在 TCP/IP 协议之上。
五、MQTT 的基本思想
MQTT 最大的特点是:
发布/订阅模式,简称 Pub/Sub。
它不像传统 HTTP 那样由客户端请求服务器、服务器再响应客户端,而是通过一个中间代理 Broker 来转发消息。
MQTT 中有三个角色:
- 发布者 Publish;
- 订阅者 Subscribe;
- 中间代理 Broker。
1. 发布者
发布者负责发送消息。
例如温度传感器发布一条消息:
topic: room/temperature
payload: 26摄氏度
意思是向 room/temperature 这个主题发布温度数据。
2. 订阅者
订阅者负责订阅某个主题。
例如手机 App 订阅:
room/temperature
那么只要有设备向这个主题发布消息,手机 App 就能收到。
3. Broker
Broker 是 MQTT 服务器,也叫消息代理。
它负责:
- 接收客户端连接;
- 接收发布者消息;
- 处理订阅和退订;
- 把消息转发给订阅者。
所以 MQTT 的数据不是发布者直接发给订阅者,而是通过 Broker 转发。
六、MQTT 的设计原则
PPT 中列出了 MQTT 的设计原则,复习时可以背这几个关键词:
1. 精简
MQTT 不添加可有可无的功能,协议本身比较轻量。
这适合物联网终端,因为很多设备计算能力弱、内存小、电池供电。
2. 发布/订阅模式
发布者和订阅者不需要直接知道对方存在,只需要关注主题。
这样可以实现应用程序解耦。
例如:
- 传感器只负责发布温度;
- App 只负责订阅温度;
- 中间由 Broker 转发。
3. 动态创建主题
用户可以根据业务动态创建 Topic,降低运维成本。
例如:
home/livingroom/temp
factory/device001/status
car/location
4. 降低传输量
MQTT 尽量减少传输数据量,提高传输效率。
这对低带宽、低功耗设备很重要。
5. 适应不稳定网络
物联网环境中网络可能存在:
- 低带宽;
- 高延迟;
- 不稳定;
- 丢包;
- 设备频繁上下线。
MQTT 在设计时考虑了这些因素。
6. 支持连续会话控制
MQTT 支持会话机制,可以让客户端断线后重新连接时继续处理相关订阅和消息。
7. 适合低计算能力客户端
很多物联网设备性能较弱,所以 MQTT 协议设计得比较简单。
8. 提供服务质量管理 QoS
MQTT 支持不同服务质量等级,让用户根据网络情况和业务需求选择消息可靠性。
9. 不强制数据格式
MQTT 不关心 payload 的具体格式。
payload 可以是:
- 文本;
- JSON;
- 二进制;
- 自定义格式。
所以 MQTT 很灵活。
七、MQTT 的优势
PPT 中将 MQTT 与 HTTP、CoAP、XMPP 等协议进行了比较,指出 MQTT 有几个优势。
1. 基于 TCP,可靠性较高
MQTT 基于 TCP/IP。
TCP 本身提供可靠传输机制,所以 MQTT 在需要反向控制设备时,比基于 UDP 的 CoAP 更可靠。
例如云端控制智能灯打开,使用 MQTT 会比较适合。
2. 异步通信
MQTT 是异步通信,类似发短信。
发布者发送消息后,不需要像 HTTP 那样一直等待对方响应才能继续。
这样可以简化连接过程,提高效率。
3. 适合物联网特殊需求
MQTT 专门考虑了物联网中的低带宽、高延迟、不稳定网络、低功耗终端等问题。
4. 二进制格式轻量
MQTT 报文较轻量,容易嵌入终端设备。
这可以降低通信模块功耗,适合无线终端和电池供电设备。
八、MQTT 的工作原理
MQTT 的工作过程可以概括为:
- 客户端连接 Broker;
- 订阅者向 Broker 订阅某个 Topic;
- 发布者向 Broker 发布某个 Topic 的消息;
- Broker 根据订阅关系,把消息转发给订阅者;
- 客户端可以退订或断开连接。
举例理解
假设有一个温度传感器和一个手机 App。
温度传感器是发布者,手机 App 是订阅者,云平台是 Broker。
流程如下:
- 手机 App 订阅主题:
home/temperature
- 温度传感器发布消息:
topic = home/temperature
payload = 28摄氏度
- Broker 收到消息后,发现手机 App 订阅了这个主题;
- Broker 把
28摄氏度转发给手机 App。
这就是 MQTT 的发布/订阅机制。
九、MQTT 中的几个重要概念
1. Topic 主题
Topic 可以理解为消息类型或消息通道。
例如:
home/light/status
home/temperature
device001/location
订阅者订阅某个 Topic 后,就能收到该主题下的消息。
2. Payload 负载
Payload 是真正传输的消息内容。
例如:
{"temperature": 26, "humidity": 60}
Topic 告诉你“这是什么类型的消息”,Payload 告诉你“具体内容是什么”。
3. Subscription 订阅
订阅包含两部分:
- Topic Filter;
- 最大 QoS。
一个会话可以包含多个订阅。
4. Session 会话
每个客户端与服务器建立连接后,就形成一个会话。
会话可以存在于一次网络连接中,也可以跨越多个连续连接。
5. Topic Name 主题名
主题名是连接到应用消息的标签,用于和服务器中的订阅进行匹配。
6. Topic Filter 主题筛选器
主题筛选器可以使用通配符,表示订阅多个主题。
例如可以订阅某一类设备的所有温度数据。
十、MQTT 的常用方法
PPT 中列出了几个方法,考试常考。
1. Connect
用于客户端请求连接服务器。
2. Disconnect
用于客户端完成工作后,与服务器断开 TCP/IP 会话。
3. Subscribe
用于客户端订阅主题。
4. UnSubscribe
用于客户端取消订阅一个或多个 Topic。
5. Publish
用于客户端发布消息。
可以记为:
连接、断开、订阅、退订、发布。
十一、MQTT 数据包结构
这是重点中的重点。
PPT 中明确说明,一个 MQTT 数据包由三部分组成:
- 固定头 Fixed Header;
- 可变头 Variable Header;
- 消息体 Payload。
1. 固定头 Fixed Header
固定头存在于所有 MQTT 数据包中。
固定头中包含:
- MQTT 数据包类型;
- 标识位;
- 剩余长度等信息。
MQTT 数据包类型位于固定头 Byte 1 的 bits 7-4。
常见数据包类型包括:
| 类型 | 作用 |
|---|---|
| CONNECT | 客户端请求连接服务器 |
| CONNACK | 服务器连接确认 |
| PUBLISH | 发布消息 |
| PUBACK | 发布确认 |
| SUBSCRIBE | 请求订阅 |
| SUBACK | 订阅确认 |
| UNSUBSCRIBE | 请求取消订阅 |
| UNSUBACK | 取消订阅确认 |
| PINGREQ | PING 请求 |
| PINGRESP | PING 应答 |
| DISCONNECT | 断开连接 |
考试一般不要求全部背数值,但要知道固定头中包含数据包类型。
2. 可变头 Variable Header
可变头位于固定头和 Payload 之间。
它不是所有数据包都一样,内容会根据数据包类型变化。
常见内容包括:
- 协议名;
- 协议版本;
- 连接标志;
- Keep Alive 心跳时间;
- 连接返回码;
- Topic Name;
- Message ID。
例如 CONNECT 报文中会有协议名、版本号、连接标志等;PUBLISH 报文中可能有 Topic Name;QoS 大于 0 的报文中可能有 Message ID。
3. Payload 消息体
Payload 是数据包第三部分,存放具体内容。
PPT 中提到,Payload 包含 CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRIBE 等类型的消息内容。
例如:
CONNECT 的 Payload
可能包括:
- ClientID;
- Topic;
- Message;
- 用户名;
- 密码。
SUBSCRIBE 的 Payload
包括要订阅的主题和 QoS。
SUBACK 的 Payload
包括服务器对订阅主题和 QoS 的确认。
UNSUBSCRIBE 的 Payload
包括要取消订阅的主题。
十二、MQTT 遗嘱机制
PPT 中提到 MQTT 支持遗嘱机制。
遗嘱机制的作用是:
当客户端因为网络异常等非正常原因断开连接时,Broker 可以自动向指定主题发布一条遗嘱消息,通知其他客户端。
举例:
一个设备上线后设置遗嘱消息:
topic: device001/status
payload: offline
如果设备异常断线,Broker 会自动发布:
device001/status = offline
其他订阅者就能知道该设备异常离线。
这个机制非常适合物联网设备状态监测。
十三、CoAP 协议
CoAP 全称是:
Constrained Application Protocol,受限应用协议。
它主要用于资源受限的物联网设备和无线传感网。
PPT 中说明,由于传统 HTTP 协议在物联网应用中显得过于庞大,因此提出了 CoAP。
可以把 CoAP 理解为:
面向物联网受限设备的轻量级 HTTP 风格协议。
十四、CoAP 的特点
PPT 中列出了 CoAP 的几个特点。
1. 报头压缩
CoAP 报文头比 HTTP 更小,适合低带宽网络。
2. 支持方法和 URI
CoAP 借鉴了 HTTP 的 REST 思想,也使用类似资源访问方式。
它支持类似 HTTP 的请求方法:
- GET;
- PUT;
- POST;
- DELETE。
3. 传输层使用 UDP
CoAP 基于 UDP,而 MQTT 基于 TCP。
UDP 的特点是开销小、连接轻量、功耗低,但可靠性需要协议自身机制补充。
4. 支持异步通信
CoAP 支持异步消息交互,适合物联网场景。
5. 支持资源发现
设备可以发现服务器上有哪些资源。
这对物联网设备之间互相理解和交互很重要。
6. 支持缓存
CoAP 支持缓存机制,可以减少重复传输,提高效率。
十五、CoAP 的消息模型
CoAP 通信通过在 UDP 上传输消息完成。
PPT 中列出了 4 种消息类型:
- CON;
- NON;
- ACK;
- RST。
1. CON:Confirmable
需要确认的消息。
如果发送 CON 消息,对方必须响应。
适合比较重要的数据。
2. NON:Non-confirmable
不需要确认的消息。
如果发送 NON 消息,对方可以不回应。
适合不太重要、允许丢失的数据。
3. ACK:Acknowledgement
应答消息。
接收方收到 CON 消息后,用 ACK 进行确认。
4. RST:Reset
复位消息。
当接收者收到错误消息,或者不再关心发送者内容时,可以发送 RST。
十六、CoAP 的请求/响应模型
CoAP 也采用客户端请求、服务端响应的模式,类似 HTTP。
1. 请求方法
CoAP 请求方法包括:
- GET;
- PUT;
- POST;
- DELETE。
这些方法会放在 CON 或 NON 消息中传输。
2. 响应代码
CoAP 响应代码也类似 HTTP,主要分三类:
| 类型 | 含义 |
|---|---|
| 2.xx | 成功 |
| 4.xx | 客户端错误 |
| 5.xx | 服务器错误 |
例如:
- 2.xx 表示请求被成功接收并处理;
- 4.xx 表示客户端请求错误;
- 5.xx 表示服务器处理请求时出错。
十七、MQTT 与 CoAP 的区别(🌟)
这是本章最容易考的内容之一。
PPT 中给出了多个角度的对比。
1. 通信机制不同
MQTT 是异步通信,基于发布/订阅模式。
CoAP 更接近同步请求/响应模式,类似 HTTP。
2. 连接方式不同
MQTT 基于 TCP,是长连接。
CoAP 基于 UDP,是无连接。
3. 通信模式不同
MQTT 是多对多通信。
多个客户端通过 Broker 进行消息传递。
CoAP 更像客户端和服务器之间的单对单资源访问。
4. 是否依赖中央代理不同
MQTT 依赖 Broker。
CoAP 不强调中央 Broker,而是客户端直接访问服务端资源。
5. 资源发现能力不同
CoAP 内置资源发现和内容协商。
MQTT 本身不支持带有类型或标签信息,客户端必须事先知道消息格式。
6. 功耗不同
PPT 表格中指出:
- CoAP 功耗低;
- MQTT 功耗相对高。
主要原因是 MQTT 使用 TCP 长连接,而 CoAP 使用 UDP。
7. 反向控制能力不同
PPT 中指出:
- CoAP 不能反向控制;
- MQTT 可用于反向控制。
更准确地说,在物联网平台控制设备的场景下,MQTT 的长连接和 Broker 机制更适合云端向设备推送控制命令。
8. 表格总结
| 对比项 | MQTT | CoAP |
|---|---|---|
| 传输层 | TCP | UDP |
| 连接方式 | 长连接 | 无连接 |
| 通信机制 | 异步 | 请求/响应 |
| 通信模式 | 多对多 | 客户端-服务器 |
| 核心思想 | 发布/订阅 | REST 资源访问 |
| 是否有 Broker | 有 | 通常没有 |
| 功耗 | 相对较高 | 较低 |
| 适合场景 | 消息推送、设备控制、状态上报 | 资源受限设备、低功耗传感网络 |
十八、LwM2M 协议
LwM2M 全称是:
Lightweight Machine to Machine。
它主要用于资源受限的嵌入式设备。
和 MQTT、CoAP 相比,LwM2M 更强调:
设备管理。
例如:
- 设备注册;
- 设备配置;
- 固件升级;
- 数据上报;
- 资源读写;
- 访问控制;
- 设备监控。
十九、LwM2M 的基本特点
PPT 中提到,LwM2M 支持:
- 多个 LwM2M Server;
- 基于资源模型的简单对象;
- 多种数据格式;
- DTLS 安全协议;
- 对资源进行创建、检索、更新、删除、属性配置等操作。
支持的数据格式包括:
- TLV;
- JSON;
- Plain Text;
- Opaque。
二十、LwM2M 的两个逻辑实体
PPT 中说明,LwM2M 定义了两个逻辑实体:
- LwM2M Server;
- LwM2M Client。
1. LwM2M Server
服务器端,通常部署在物联网平台上。
负责:
- 管理设备;
- 下发配置;
- 读取资源;
- 控制设备;
- 触发固件升级;
- 接收设备上报数据。
2. LwM2M Client
客户端,运行在物联网终端设备上。
负责:
- 注册到服务器;
- 上报数据;
- 接收服务器管理命令;
- 执行资源操作;
- 进行固件更新。
二十一、LwM2M 的四个逻辑接口
PPT 中列出四个逻辑接口:
- 设备发现和注册;
- 引导程序 Bootstrap;
- 设备管理和服务实现;
- 信息上报。
1. 设备发现和注册
设备启动后,需要向 LwM2M Server 注册。
服务器知道设备存在后,才能管理它。
2. Bootstrap 引导程序
Bootstrap 用于设备初始化配置。
例如:
- 服务器地址;
- 安全参数;
- 认证信息;
- 初始配置。
3. 设备管理和服务实现
服务器可以对客户端资源进行操作,例如:
- 读取设备信息;
- 修改配置;
- 执行命令;
- 固件升级;
- 删除资源;
- 配置属性。
4. 信息上报
客户端把设备状态或传感器数据上报给服务器。
例如:
- 电量;
- 网络状态;
- 位置;
- 温度;
- 固件版本;
- 连接质量。
二十二、LwM2M 的对象、对象实例和资源
PPT 中强调,LwM2M 操作的目标是:
- Object 对象;
- Object Instance 对象实例;
- Resource 资源。
可以这样理解:
1. 对象 Object
对象是一组相关资源的集合。
例如 Device 对象表示设备信息。
2. 对象实例 Object Instance
同一个对象可以有多个实例。
例如设备可能有多个传感器,每个传感器是一个实例。
3. 资源 Resource
资源是具体的数据项或操作项。
例如设备电量、型号、序列号、固件版本等。
二十三、LwM2M 标准对象
PPT 中列出了 OMA 定义的标准对象。
| 对象 | ID | 作用 |
|---|---|---|
| Security | 0 | 安全对象,保存服务器 URI、安全模式、密钥等 |
| Server | 1 | 服务器对象,保存生命周期、绑定模式等 |
| Access Control | 2 | 访问控制权限 |
| Device | 3 | 设备信息,如制造商、型号、电量、内存等 |
| Connectivity Monitoring | 4 | 网络制式、链路质量、IP 地址等 |
| Firmware Update | 5 | 固件包、更新状态、更新结果等 |
| Location | 6 | 经纬度、海拔、时间戳等 |
| Connectivity Statistics | 7 | 收发数据量、包大小等统计信息 |
这张表很适合考试简答题或填空题。
重点记:
- 0:Security;
- 1:Server;
- 3:Device;
- 5:Firmware Update;
- 6:Location。
二十四、LwM2M 协议栈
PPT 中给出 LwM2M 协议栈组成:
- LwM2M Objects;
- LwM2M Protocol;
- CoAP;
- DTLS。
1. LwM2M Objects
对象层。
每个对象对应客户端的某个特定功能实体。
例如设备对象、位置对象、固件对象等。
2. LwM2M Protocol
协议层。
定义逻辑操作,例如:
- 注册;
- 更新;
- 读取;
- 写入;
- 执行;
- 观察;
- 通知。
3. CoAP
CoAP 用作 LwM2M 的传输协议。
它下面可以是 UDP 或 SMS。
4. DTLS
DTLS 为基于数据报的通信提供安全保护。
因为 CoAP 通常基于 UDP,而 TLS 主要用于 TCP,所以 UDP 场景下使用 DTLS。
可以这样记:
LwM2M 使用 CoAP 进行轻量级传输,使用 DTLS 保证安全。
二十五、MQTT、CoAP、LwM2M 三者关系
这三个协议都用于物联网,但侧重点不同。
| 协议 | 核心作用 | 典型特点 | 适合场景 |
|---|---|---|---|
| MQTT | 消息发布/订阅 | TCP、Broker、异步、多对多 | 设备状态上报、消息推送、云端控制 |
| CoAP | 轻量级资源访问 | UDP、REST、低功耗 | 资源受限传感器、低功耗网络 |
| LwM2M | 设备管理 | 基于对象模型、使用 CoAP 和 DTLS | 设备注册、配置、监控、固件升级 |
可以这样理解:
MQTT 主要解决消息传输; CoAP 主要解决轻量级资源访问; LwM2M 主要解决设备管理。
二十六、本章重点背诵版
1. MQTT 定义
MQTT 是一种基于客户端—服务器模式的消息发布/订阅传输协议,构建在 TCP/IP 协议之上,适合低带宽、高延迟、不稳定网络环境下的物联网通信。
2. MQTT 角色
MQTT 中有三个主要角色:
- 发布者 Publish;
- 订阅者 Subscribe;
- 中间代理 Broker。
3. MQTT 工作原理
MQTT 使用发布/订阅模式。发布者向某个 Topic 发布消息,订阅者订阅相关 Topic,Broker 根据订阅关系将消息转发给订阅者,从而实现一对多或多对多通信。
4. MQTT 数据包结构
MQTT 数据包由三部分组成:
- 固定头 Fixed Header;
- 可变头 Variable Header;
- 消息体 Payload。
5. MQTT 常用方法
MQTT 常用方法包括:
- Connect;
- Disconnect;
- Subscribe;
- UnSubscribe;
- Publish。
6. CoAP 定义
CoAP 是受限应用协议,是一种应用于无线传感网和资源受限物联网设备的轻量级协议。它基于 REST 架构,传输层使用 UDP。
7. CoAP 特点
CoAP 的特点包括:
- 报头压缩;
- 支持方法和 URI;
- 使用 UDP;
- 支持异步通信;
- 支持资源发现;
- 支持缓存。
8. CoAP 四种消息类型
CoAP 有四种消息类型:
- CON:需要确认;
- NON:不需要确认;
- ACK:确认应答;
- RST:复位消息。
9. MQTT 与 CoAP 对比
MQTT 基于 TCP,是长连接,采用发布/订阅模式,适合消息推送和反向控制;CoAP 基于 UDP,是无连接,采用类似 HTTP 的请求/响应模式,适合低功耗、资源受限设备。
10. LwM2M 定义
LwM2M 是 Lightweight Machine to Machine,主要用于资源受限嵌入式设备,支持设备注册、配置、管理、数据上报和固件升级。
11. LwM2M 四个接口
LwM2M 包括四个逻辑接口:
- 设备发现和注册;
- Bootstrap 引导;
- 设备管理和服务实现;
- 信息上报。
12. LwM2M 协议栈
LwM2M 协议栈包括:
- LwM2M Objects;
- LwM2M Protocol;
- CoAP;
- DTLS。
二十七、考试可能这样问
题目1:列举物联网连接方式和通信协议,并简述基本情况。
答:
物联网连接方式包括 NB-IoT、LoRa、Wi-Fi、蓝牙、ZigBee 等。NB-IoT 是基于蜂窝网络的低功耗广域物联网技术,具有广覆盖、低功耗、大连接等特点;LoRa 是一种远距离低功耗无线通信技术,适合智慧农业、环境监测等场景。物联网通信协议包括 MQTT、CoAP 和 LwM2M。MQTT 基于 TCP,采用发布/订阅模式;CoAP 基于 UDP,适合资源受限设备;LwM2M 主要用于设备管理和信息上报。
题目2:NB-IoT 有哪些技术特点?
答:
NB-IoT 具有广覆盖、低功耗、大连接、低成本、低速率等特点。它基于运营商蜂窝网络,使用授权频谱,适合智能抄表、智慧停车、烟雾报警、远程监控等小数据量、低功耗、大规模连接场景。
题目3:LoRa 与 LoRaWAN 有何联系和区别?
答:
LoRa 是一种低功耗、远距离无线调制技术,主要工作在物理层,负责无线信号传输;LoRaWAN 是基于 LoRa 的低功耗广域网协议,规定终端、网关和网络服务器之间的通信方式。二者关系是 LoRa 提供底层无线传输能力,LoRaWAN 提供网络架构和协议支持。
题目4:简述 MQTT 协议的设计原则和优势。
答:
MQTT 的设计原则包括精简、发布/订阅模式、允许动态创建主题、降低传输量、适应低带宽和不稳定网络、支持连续会话控制、适合低计算能力客户端、提供服务质量管理、不强制数据格式。其优势是基于 TCP,可靠性较高;采用异步通信,简化连接过程;协议轻量,适合低功耗物联网终端;支持发布/订阅模式,便于系统解耦。
题目5:简述 MQTT 协议的数据包构成。
答:
MQTT 数据包由固定头、可变头和消息体三部分构成。固定头存在于所有 MQTT 数据包中,包含数据包类型和标识位等;可变头位于固定头和消息体之间,其内容因数据包类型不同而不同,常用于协议名、版本号、连接标志、主题名和消息 ID 等;消息体 Payload 包含具体传输内容,如客户端 ID、订阅主题、用户名、密码等。
题目6:简述 MQTT 协议的工作原理。
答:
MQTT 采用发布/订阅模式。客户端可以作为发布者向某个主题发布消息,也可以作为订阅者订阅某个主题。MQTT Broker 接收发布者的消息,并根据订阅关系将消息转发给订阅者。该机制实现了一对多或多对多通信,同时降低了发布者和订阅者之间的耦合。
题目7:CoAP 协议的特点有哪些?
答:
CoAP 是面向资源受限物联网设备的受限应用协议,具有报头压缩、支持方法和 URI、传输层使用 UDP、支持异步通信、支持资源发现和支持缓存等特点。它采用类似 HTTP 的请求/响应模型,支持 GET、PUT、POST、DELETE 等方法。
题目8:比较 MQTT 与 CoAP 的异同。
答:
MQTT 和 CoAP 都是物联网通信协议,都适合资源受限或网络环境复杂的物联网场景。不同点在于:MQTT 基于 TCP,是长连接,采用发布/订阅模式,依赖 Broker,适合消息推送和反向控制;CoAP 基于 UDP,是无连接,采用类似 HTTP 的请求/响应模式,适合低功耗、资源受限设备和传感网络。MQTT 更适合多对多消息通信,CoAP 更适合客户端和服务器之间的资源访问。
题目9:简述 LwM2M 协议的构成。
答:
LwM2M 协议主要用于资源受限嵌入式设备的管理。它定义了 LwM2M Server 和 LwM2M Client 两个逻辑实体,并包括设备发现和注册、Bootstrap 引导、设备管理和服务实现、信息上报四个逻辑接口。其协议栈包括 LwM2M Objects、LwM2M Protocol、CoAP 和 DTLS,其中 CoAP 用于传输,DTLS 用于安全保护。
二十八、本章一句话总结
这一章可以这样总结:
第5章主要讲物联网设备的连接方式和通信协议,其中 NB-IoT、LoRa/LoRaWAN 解决设备如何低功耗、远距离接入网络,MQTT 解决发布/订阅式消息传输,CoAP 解决资源受限设备的轻量级访问,LwM2M 则在 CoAP 基础上进一步实现设备注册、管理、监控和固件升级。