什么是 物联网通信协议?
物联网协议是标准或 “语言” 被机器用来相互通信, 或通过平台. 基于它们的特性和功能, 这些协议主要分为 3 类型: 传输协议, 通讯协议, 和行业特定协议.
传输协议: 设备使用的 物联网网络 并在子网内连接, 包括无线网络, 蓝牙, 紫蜂, 以太网, 近场通信, 3G/4G/5G等.
通讯协议: 用于设备之间的数据传输, 运行在网络层之上,为用户提供应用层服务. 一些通讯协议: MQTT, 联合行动计划, HTTP/HTTPS, WebSocket, AMQP.
行业特定协议: 特定行业内的标准协议,确保设备之间的兼容性, 系统, 不同制造商和品牌的平台, 比如JT/T 808 中国车载终端通信协议.
的理解 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 是广泛使用的协议, 每个都有多个实现, 声称支持实时发布/订阅物联网通信. 然而, 在设计特定的物联网系统架构时, 必须考虑场景的实际通信需求——例如带宽限制, 延迟要求, 和安全性——在选择最合适的协议之前.