7 每个开发人员都必须了解的基本物联网通信协议

Minew 十二月. 26. 2024
目录

    什么是 物联网通信协议?

    物联网协议是标准或 “语言” 被机器用来相互通信, 或通过平台. 基于它们的特性和功能, 这些协议主要分为 3 类型: 传输协议, 通讯协议, 和行业特定协​​议.

    传输协议: 设备使用的 物联网网络 并在子网内连接, 包括无线网络, 蓝牙, 紫蜂, 以太网, 近场通信, 3G/4G/5G等.

    通讯协议: 用于设备之间的数据传输, 运行在网络层之上,为用户提供应用层服务. 一些通讯协议: MQTT, 联合行动计划, HTTP/HTTPS, WebSocket, AMQP.

    行业特定协​​议: 特定行业内的标准协议,确保设备之间的兼容性, 系统, 不同制造商和品牌的平台, 比如JT/T 808 中国车载终端通信协议.

    7 Essential IoT Communication Protocols

    的理解 7 物联网通信协议:

    在这里您将找到物联网行业中使用的一些通信协议, 包括:

    1. 休息/HTTP

    什么是休息

    休息 (代表性状态转移)是一种架构风格,而不是设计网络应用程序的标准, 通常使用 HTTP 作为其传输协议来实现其架构原则.

    特征:

    • 无国籍状态: 每个请求包含所有必要的信息, 并且服务器不维护客户端的状态.
    • 资源识别: 在服务器端, 应用程序状态和功能可以分为各种资源, 暴露给客户的. 资源的示例包括应用程序对象, 数据库记录, 算法, ETC. 每个资源都使用 URI 分配一个唯一的地址 (通用资源标识符).
    • 统一接口: 使用标准 HTTP 方法来操作资源, 比如获取, 邮政, 放, 删除

    应用:

    REST/HTTP主要目的是简化互联网的系统架构, 快速实现客户端和服务器交互之间的松耦合, 从而减少交互延迟. 所以, 它适合 物联网应用, 通过 REST 开放 IoT 资源, 允许其他应用程序调用服务.

    2. 联合行动计划

    什么是 CoAP

    联合行动计划 (受限应用协议) 为受限设备提供简单高效的通信, 使其非常适合低功耗运行, 低带宽, 和高延迟环境.

    特征:

    • 标头压缩: CoAP 具有紧凑的二进制标头,其基础为 4 字节, 接下来是扩展选项, 通常会产生以下请求标头 10-20 字节.
    • 方法和 URI: 支持获取, 放, 邮政, 删除方法, 以及用于访问服务器资源的 URI.
    • 传输层: 基于 UDP 构建,最大限度地减少开销并支持多播, 具有简单的停止等待可靠性机制.
    • 异步通信: 与 HTTP 不同, CoAP支持异步通信, M2M 应用的理想选择.
    • 资源发现: 包括用于资源发现的内置格式, 符合RFC 5785, 使用 /.well-known/core 进行资源描述.
    • 缓存: 支持资源描述缓存以提高性能.

    应用:

    CoAP 是一个简化的基于 HTTP 的 RESTful API. CoAP是应用层协议 6 LoWPAN协议栈, 适用于资源受限的通信IP网络, 例如低功耗传感器和嵌入式系统.

    3. MQTT

    什么是 MQTT

    MQTT 协议使用发布/订阅模式, IoT 终端通常通过 TCP 连接到 MQTT 代理. Broker通过Topic来管理通信内容,负责设备之间的消息转发.

    特征:

    • 发布/订阅模型: 客户端可以向主题发布消息并订阅接收来自特定主题的消息. 该模型实现了灵活的消息分发.
    • 低带宽: 消息标头最小, 通常仅 2 字节, 支持高效的带宽使用并使其适合低带宽, 高延迟, 和不稳定的网络.
    • 可靠性: MQTT 为消息传递提供三个 QoS 级别: “最多一次,” “至少一次,” 和 “正好一次。”

    应用:

    MQTT 一般适用于设备数据采集到端点 (例如, 设备 -> 服务器) 星型网络架构中的集中通信, 以经纪人为中心. 广泛应用于物联网场景,也被一些移动应用采用, 例如 Facebook Messenger (历史地).

    4. 直达DS

    什么是DDS

    直达DS (数据分发服务) 是为以下目的创建的中间件标准 实时系统. 它通过提供低延迟来满足分布式应用程序的严格要求, 高通量, 和确定性性能.

    特征:

    • 以数据为中心
    • 无代理发布/订阅消息传递模型: 支持点对点, 点对多点, 以及多点对多点通信.
    • 优惠高达 21 服务质量 (服务质量) 政策

    应用:

    分布式, 高度可靠, 设备实时数据通信. 现在, DDS广泛应用于民航、工业控制等领域.

    5. AMQP

    什么是 AMQP

    AMQP是一个开放标准的应用层协议,旨在确保可靠的消息传输和排队机制.

    特征:

    • 线路级协议: 以字节流的形式通过网络传输数据.
    • 开放标准,兼容性高
    • 灵活的 & 安全的: 支持多种消息模式, 包括发布/订阅和点对点. 它还结合了多种安全机制, 例如加密和身份验证.

    应用:

    最初用于金融系统中的交易消息传递, AMQP 现在主要用于 IoT 应用程序,用于移动设备和后端数据中心之间的通信和数据分析.

    6. XMPP

    什么是XMPP

    作为开放标准通信协议, XMPP (可扩展的消息传递和状态协议) 专为实时通信而设计, 例如即时消息和状态信息.

    特征:

    • 客户端/服务器通信模型: 客户端向服务器发送请求, 它处理请求并将适当的响应或资源发送回客户端.
    • 分布式网络: 多个独立节点组成网络, 消除单点故障.
    • 简单客户端: 客户处理的任务更少, 大部分计算在服务器端完成.
    • XML用于描述数据, 确保跨平台兼容性, 尽管 JSON 在现代应用程序中变得越来越流行.

    应用:

    XMPP用于即时通讯, 网管, 内容交付, 协作工具, 文件共享, 赌博, 远程系统监控, 和更多.

    7. 联合管理系统

    什么是JMS

    联合管理系统 (Java消息服务) 是 Java 平台的标准 API,用于分布式应用程序中的消息传递. 它允许应用程序通过消息队列进行通信, 从而实现异步, 灵活的, 和可靠的消息交换.

    特征:

    • 异步通信: 允许在不同时间发送和接收消息, 提高系统灵活性和响应能力.
    • 消息持久性: 提供消息持久化, 确保系统故障时消息不会丢失, 并提高可靠性
    • 交易支持: JMS提供事务支持, 保证一组消息操作的原子性, 意味着所有操作要么完全成功,要么完全失败, 从而保证数据的一致性.

    应用:

    JMS 非常适合需要异步消息传递的分布式应用程序, 系统解耦, 和高可靠性, 比如企业应用集成, 事件驱动架构, 和实时数据处理.

    物联网通信协议比较

    特征 直达DS MQTT AMQP XMPP 联合管理系统 休息/HTTP 联合行动计划
    抽象 发布/订阅 发布/订阅 发布/订阅 发布/订阅 请求/回复 请求/回复
    建筑学 全局数据空间 代理人 P2P 或代理 代理人 通过TCP保证 对等
    服务质量 22 类型 3 类型 3 类型 3 类型 通过TCP或确认消息确认 是的
    互操作性 是的 部分 是的 是的 是的
    表现 100,000 消息/秒/子 1,000 消息/秒/子 1,000 消息/秒/子 1,000 消息/秒/子 100 请求数/秒 100 请求数/秒
    即时的 是的 是的
    传输层 支持UDP和TCP 传输控制协议 传输控制协议 未指定, 通常是TCP 传输控制协议 UDP协议 UDP协议
    订阅过滤 基于消息内容和主题的过滤 根据主题和消息内容进行分层订阅 队列和消息过滤 消息内容和主题过滤 不支持 支持主题和组播
    编码 二进制 二进制 二进制 XML格式 二进制 纯文本 纯文本
    动态发现 是的
    安全 提供FSS, 传输层安全协议, 和其他安全选项 简单的用户名/密码, SSL数据加密 SASL 和 TLS 数据加密 提供FSS, 传输层安全协议, JAAS API 支持 对 SSL 和 TLS 的一般支持 对 SSL 和 TLS 的一般支持

     

    结论

    MQTT, 直达DS, AMQP, XMPP, 联合管理系统, 休息, 和 CoAP 是广泛使用的协议, 每个都有多个实现, 声称支持实时发布/订阅物联网通信. 然而, 在设计特定的物联网系统架构时, 必须考虑场景的实际通信需求——例如带宽限制, 延迟要求, 和安全性——在选择最合适的协议之前.

    下一个: 什么是实时定位系统? 实时定位系统综合指南
    上一篇: 7 每个开发人员都必须了解的基本物联网通信协议