IoT 与消息协议(MQTT/CoAP/AMQP)

共 18 题
#

1. MQTT 5 的 message expiry interval、subscription identifier 在低功耗设备的工程价值?

A subscription identifier 增加设备耗电
B subscription identifier 用于加密消息
C expiry interval 会强制设备常在线
D message expiry interval 丢弃过期消息,减少设备无效唤醒 ✓ 正确答案
#

2. CoAP over DTLS vs CoAP over TCP 在 NAT 穿透的工程差异?

A CoAP over TCP 无连接
B CoAP over DTLS 有 TCP 连接状态
C CoAP over TCP 利用 TCP 会话跟踪,NAT 穿透更稳定 ✓ 正确答案
D DTLS 提供拥塞控制
#

3. AMQP 1.0 的 SSAE(Streams、Settled/Settled/Abort、Aborted)状态机的工程价值?

A Abort 用于确认消息
B AMQP 1.0 只支持 at-most-once
C SSAE 状态机管理消息确认、中止与可靠性语义 ✓ 正确答案
D AMQP 1.0 无确认机制
#

4. MQTT 的保留消息(retained)与遗嘱消息(will/LWT)语义,新订阅者如何立即获得最新状态,设备离线如何被感知?

A retained 让新订阅者立即获得最新状态,will 在设备离线时通知其他订阅者 ✓ 正确答案
B retained 只发给发布者
C will 由设备在线时主动发布
D retained 消息不保留
#

5. MQTT 5(MQTT v5)相比 v3.1.1 的 reason codes(0x00-0xFF,错误码 0x80-0xFF)的工程价值?

A MQTT 5 用细粒度 reason codes 精确区分失败原因 ✓ 正确答案
B MQTT 5 沿用 v3.1.1 的单一 return code
C reason codes 只用于成功
D reason codes 与错误诊断无关
#

6. AMQP 1.0 协议 frame 格式,frame header + body + end byte(小端)的工程价值如何?

A frame 含 size 定位帧界、channel 实现多路复用 ✓ 正确答案
B AMQP 1.0 无多路复用
C frame 不需要长度字段
D AMQP 1.0 用大端编码
#

7. AMQP 1.0 的 performative(OPEN、BEGIN、ATTACH、TRANSFER、DISPOSITION)的工程价值?

A DISPOSITION 用于建立连接
B OPEN 用于传输消息
C ATTACH 在会话上建立链路,TRANSFER 传输消息 ✓ 正确答案
D BEGIN 在连接上直接传输
#

8. AMQP 1.0 flow control(credit-based)在 RabbitMQ / Apache Qpid 的工程应用?

A AMQP 1.0 无流控
B credit 由发送方授予
C credit 流控与内存无关
D 接收方通过 credit 控制发送方速率,实现背压 ✓ 正确答案
#

9. MQTT 5 在 QoS 1 / QoS 2 acknowledge 与 flow control(Receive Maximum)的工程取舍?

A QoS 2 只确认一次
B Receive Maximum 限制未确认消息并发数,平衡吞吐与内存 ✓ 正确答案
C Receive Maximum 与可靠性无关
D QoS 1 保证恰好一次投递
#

10. MQTT 5 的 properties(User Properties、Content Type、Subscription Options、Receive Maximum)的工程价值?

A MQTT 5 无 properties 机制
B properties 只能用于加密
C Receive Maximum 用于主题发现
D User Properties 传递自定义元数据,Content Type 标识消息类型 ✓ 正确答案
#

11. MQTT 5 的 shared subscription(RFC 5.3.3 / draft-ietf-mqtt-shared-subscriptions)在多 consumer 负载分摊的工程价值?

A 共享订阅让多个 consumer 分摊消息,实现负载均衡 ✓ 正确答案
B 共享订阅会把消息广播给所有订阅者
C 共享订阅只能一个消费者
D 共享订阅与吞吐无关
#

12. MQTT 5 topic alias(Topic Alias,0x23)在节省 payload 的工程价值?

A Topic Alias 用于加密主题
B Topic Alias 会增加主题长度
C Topic Alias 用数字别名替代完整主题,减少 payload 开销 ✓ 正确答案
D Topic Alias 与带宽无关
#

13. CoAP observe(RFC 7641)在 CoAP server push 资源变化的工程价值?

A observe 只能用于查询
B observe 要求客户端持续轮询
C observe 让客户端订阅资源变化,服务器主动推送,避免轮询 ✓ 正确答案
D observe 会增加功耗
#

14. CoAP observe 的 cancel 与 refresh 在 IoT 设备的工程价值?

A refresh 用于终止连接
B cancel 会增强订阅
C cancel 取消订阅释放资源,refresh 重新订阅获取最新状态 ✓ 正确答案
D observe 订阅不可取消
#

15. AMQP 1.0 的 transfer-id、delivery-id、delivery-tag 与 acked 在 connection vs link 复用的工程边界?

A delivery-id 是连接级唯一的
B delivery-id 在链路内唯一,连接复用靠 link 隔离消息状态 ✓ 正确答案
C 所有链路共享同一 delivery-id
D 确认与链路无关
#

16. MQTT 会话的 clean start 与 session expiry,服务端保存哪些会话状态,断线重连如何恢复订阅?

A session expiry 让断线后保留订阅与未确认消息,重连可恢复 ✓ 正确答案
B clean start=1 会恢复旧会话
C 会话状态只保存订阅
D 断线重连无法恢复订阅
#

17. CoAP 与 REST 的映射,GET/PUT/POST/DELETE 与响应码(2.05/4.04),/.well-known/core 的资源发现机制如何?

A CoAP 不支持资源发现
B CoAP 无响应码
C CoAP 用 GET/PUT/POST/DELETE 映射 REST,并通过 /.well-known/core 做资源发现 ✓ 正确答案
D CoAP 只有 GET 方法
#

18. CoAP block-wise transfer(RFC 7959)在大型 IoT payload 的工程边界?

A block-wise 不支持多块
B block-wise 用于加密
C block-wise 会改变 CoAP 语义
D block-wise 把大消息拆成分块传输,以适配 UDP 载荷限制 ✓ 正确答案