【问题标题】:What are advantages of MQTT over TCP/IP? Since MQTT is based on TCP, Why don't we use TCP/IP instead of it?MQTT 与 TCP/IP 相比有哪些优势?既然 MQTT 是基于 TCP 的,那我们为什么不用 TCP/IP 来代替呢?
【发布时间】:2019-08-07 07:08:13
【问题描述】:

我正在研究 MQTT 和 TCP/IP 协议。

因为我知道,MQTT 是基于 TCP 的,所以 TCP/IP & 我们指的是 MQTT,尽管我们有 TCP/IP 协议。

我们为什么不使用 TCP/IP 而不是 MQTT?

MQTT 有什么优点使它比 TCP/IP 协议更好的解决方案吗?

哪个更可靠,需要更少的数据包来形成通信?

(注意:TCP/IP 在某种意义上使用普通 TCP/IP 协议在 GSM 调制解调器中“连接 > 传输数据 > 断开连接”的 2 个设备之间形成网络)

【问题讨论】:

  • 嗯,HTTP 也是基于 TCP,您不会要求我们使用 TCP/IP 代替 HTTP,对吗?
  • 你也许应该更深入地研究“ISO 层”。 TCP处于网络层和mqtt应用层。所以 Mqtt 依赖 tcp 工作。使用应用层协议,您可以在不了解网络事物的情况下构建业务逻辑和发送消息..
  • 使用 MQTT,发送者知道是否收到了消息。
  • GSM 提供了 IP 之下的一层,TCP 是 IP 之上的一层,MQTT 是 TCP 之上的一层。请去研究OSI网络模型
  • @hardillb 我没有说是谁收到的。我小心翼翼地避免说任何关于端到端的事情。但是你确实知道它已经被经纪人收到了,经纪人知道它是否已经被下线收到,依此类推,直到交付。 TCP 没有给你这些。您所知道的是,连接还没有明显失败。

标签: tcp mqtt


【解决方案1】:

MQTT 有什么优势使它比 TCP/IP 协议更好的解决方案吗?

是的,它提供了 TCP 不提供的东西,即应用层协议。此类协议的其他示例包括 FTP、HTTP、SMTP。

你问错问题了。 IP 确保您可以将数据发送到另一台机器,TCP 确保此数据按顺序接收和确认,应用程序级协议确保您可以理解您收到的数据。

没有应用层协议,就没有有意义的通信。每个套接字编程示例都以“WriteLine”和“ReadLine”文本消息交换开头,这本身就是(尽管是非常基本的)应用程序级协议,即“客户端和服务器交换以换行符结尾的文本消息”。

所以,不,没有应用层协议就不能使用 TCP/IP,因为一旦你开始编写发送和/或接收数据的程序,你就已经定义了一个应用层协议。

有自己的问题。这就是为什么你不应该发明自己的协议,而应该使用现有的协议。选择适合您需求的那一款。您是否需要向某个代理发布或订阅消息,请使用 MQTT。

除非你非常清楚自己在做什么,否则不要发明你自己的。

【讨论】:

    猜你喜欢
    • 2019-05-24
    • 2021-12-16
    • 2015-10-25
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-07
    • 1970-01-01
    相关资源
    最近更新 更多