MQTT与DDS的比较

    MQTT VS DDS

    MQTT协议

三种服务质量 (QoS):

  • 最多一次 Sender 发送的一条消息,Receiver 最多能收到一次,也就是说 Sender 尽力向 Receiver 发送消息,如果发送失败,也就算了;
  • 只有一次 Sender 发送的一条消息,Receiver 确保能收到而且只收到一次,也就是说 Sender 尽力向 Receiver 发送消息,如果发送失败,会继续重试,直到 Receiver 收到消息为止,同时保证 Receiver 不会因为消息重传而收到重复的消息。
  • 最少一次 Sender 发送的一条消息,Receiver 至少能收到一次,也就是说 Sender 向 Receiver 发送消息,如果发送失败,会继续重试,直到 Receiver 收到消息为止,但是因为重传的原因,Receiver 有可能会收到重复的消息;

MQTT协议中有三种身份:发布者 (Publish)、代理 (Broker)(服务器)、订阅者 (Subscribe)。

其中,消息的发布者和订阅者都是客户端消息代理是服务器消息发布者可以同时是订阅者

MQTT 传输的消息分为:主题 (Topic) 和负载 (payload) 两部分:

  • Topic:可以理解为消息的类型,订阅者订阅 (Subscribe) 后,就会收到该主题的消息内容(payload)
  • payload:可以理解为消息的内容,是指订阅者具体要使用的内容

MQTT协议一般适用于设备数据采集到端 (Device-》Server,Device-》Gateway),集中星型网络架构 (hub-and-spoke),不适用设备与设备之间通信,设备控制能力弱,另外实时性较差,一般都在秒级。

2 DDS协议

以下是 DDS 协议的特点:

  1. 它是一种无代理协议,主要用于 M2M 和 IoT 应用程序。
  2. 它是会话层协议。
  3. 它不使用代理,而是使用数据写入器和数据读取器。
  4. 与MQTT 一样,它也是没有代理的发布/订阅协议。
  5. 它有 23 个 QoS 级别,包括安全性、优先级、可靠性、紧急性、持久性等。
  6. 让我们看看 DDS 协议的工作情况。发布者分发要传递的感官数据。数据写入器部分与发布者交互,并将任何更改发送给订阅者。数据阅读器读取发布的数据并传送给订阅者。订阅者需要订阅的主题只是感官数据。


原文链接:https://blog.csdn.net/FeiCoding/article/details/121118828

物联网协议的选择,发布 / 订阅服务更适合物联网环境下通信

DDS、MQTT、AMQP和JMS都是基于发布/订阅模式,发布/订阅框架具有服务自发现、动态扩展、事件过滤的特点,它解决了物联网系统在应用层的数据源快速获取、物的加入和退出、兴趣订阅、降低带宽流量等问题,实现物的联接在空间上松耦合(双方无需知道通信地址)、时间上松耦合和同步松耦合,

今天着重比较MQTT和DDS消息中间件

3b90eda39d97f90901666c3d9c9e90eb.png

表一:各种协议特点比较

  1. MQTT 协议 (低带宽)

MQTT(MessageQueuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布 / 订阅 (publish/subscribe) 模式的 “轻量级” 通讯协议,该协议构建于 TCP/IP 协议上,由 IBM 在 1999 年发布。MQTT 最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。做为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

MQTT 协议运行在 TCP/IP 或其他网络协议,提供有序、无损、双向连接。其特点包括:

  •  使用的发布 / 订阅消息模式,它提供了一对多消息分发,以实现与应用程序的解耦。

  • 对负载内容屏蔽的消息传输机制。

  • 对传输消息有三种服务质量 (QoS):

最多一次,这一级别会发生消息丢失或重复,消息发布依赖于底层 TCP/IP 网络。即:<=1 至多一次,这一级别会确保消息到达,但消息可能会重复。即:>=1

只有一次,确保消息只有一次到达。即:=1。在一些要求比较严格的计费系统中,可以使用此级别

  • 数据传输和协议交换的最小化 (协议头部只有 2 字节),以减少网络流量

  • 通知机制,异常中断时通知传输双方

适用范围:在低带宽、不可靠的网络下提供基于云平台的远程设备的数据传输和监控。

协议实现方式

实现MQTT 协议需要:客户端和服务器端

MQTT协议中有三种身份:发布者 (Publish)、代理 (Broker)(服务器)、订阅者 (Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。

MQTT 传输的消息分为:主题 (Topic) 和负载 (payload) 两部分

Topic:可以理解为消息的类型,订阅者订阅 (Subscribe) 后,就会收到该主题的消息内容(payload)

payload:可以理解为消息的内容,是指订阅者具体要使用的内容

MQTT协议一般适用于设备数据采集到端 (Device-》Server,Device-》Gateway),集中星型网络架构 (hub-and-spoke),不适用设备与设备之间通信,设备控制能力弱,另外实时性较差,一般都在秒级。

  2.DDS 协议 (高可靠性、实时)

数据分发服务 DDS(Data Distribution Service)是对象管理组织 (OMG) 在 HLA 及 CORBA 等标准的基础上制定的新一代分布式实时通信中间件技术规范,DDS 采用发布 / 订阅体系架构,强调以数据为中心,提供丰富的 QoS 服务质量策略,能保障数据进行实时、高效、灵活地分发,可满足各种分布式实时通信应用需求。DDS 信息分发中间件是一种轻便的、能够提供实时信息传送的中间件技术。

特点:

  •  灵活的发布 / 订阅模式

  • 完整 DDS规范 QoS 服务质量策略

  • 已扩展的 QoS 服务质量策略

  • 互操作

  • 强实时

  • 跨平台

  • 支持多种底层物理通信协议

  • 仿真→测试→实装的全生命周期支持

DDS 很好地支持设备之间的数据分发和设备控制,设备和云端的数据传输,同时 DDS 的数据分发的实时效率非常高,能做到秒级内同时分发百万条消息到众多设备。DDS 在服务质量 (QoS) 上提供非常多的保障途径,这也是它适用于国防军事、工业控制这些高可靠性、可安全性应用领域的原因。但这些应用都工作在有线网络下,在无线网络,特别是资源受限的情况下,没有见到过实施案例。

amqp协议_物联网通信协议——比较MQTT、 DDS_weixin_39781550的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值