当前位置: 首页 > news >正文

[物联网iot]对比WIFI、MQTT、TCP、UDP通信协议

第一步:先理解最基础的关系(类比快递)

假设你要给朋友寄快递:

  • Wi-Fi相当于“公路和卡车”,负责把包裹从你家运到快递站

  • TCP/UDP:相当于“快递公司的运输规则”。

    • TCP:顺丰快递(保证包裹不丢、按顺序送达,但速度可能慢)。

    • UDP:普通快递(可能丢件、顺序乱,但速度快)。

  • MQTT:相当于“快递单上的具体说明”(比如“货到付款”或“放门口”)。


第二步: 用“快递流程”理解完整通信过程

假设你有一个智能温湿度传感器,要通过 Wi-Fi 上报数据到手机 APP:

  1. 数据准备(应用层 - MQTT)

    • 传感器生成数据:温度25℃, 湿度60%

    • MQTT 负责包装这条数据:添加“快递单”(MQTT 头部),比如:

      • 主题(Topic):home/sensor/temperature(告诉 Broker 这是客厅温度数据)。

      • QoS 等级:1(至少送达一次)。

      • 消息ID:123(用于确认)。

  2. 运输规则(传输层 - TCP)

    • TCP 接手后,将 MQTT 数据包拆分成多个“小包裹”,每个包裹打上标签:

      • 源端口:随机端口(如 54321)。

      • 目标端口:1883(MQTT 默认端口)。

      • 序列号(保证顺序)。

      • 校验和(防数据损坏)。

  3. 地址定位(网络层 - IP)

    • IP 协议 给包裹贴上“大地址标签”:

      • 源 IP:传感器 IP(如 192.168.1.100)。

      • 目标 IP:MQTT Broker 的 IP(如 broker.emqx.io)。

      • 协议类型:TCP(告诉接收方这是 TCP 数据)。

  4. 物理搬运(数据链路层/物理层 - Wi-Fi)

    • Wi-Fi 将 IP 数据包封装成“无线信号”,通过路由器中转:

      • 转换为 Wi-Fi 帧(包含 MAC 地址:路由器的 MAC 是下一站)。

      • 通过无线电波传输到路由器。

      • 路由器再通过互联网将数据最终送达 Broker。

  5. 反向流程(手机 APP 接收数据)

    • Broker 将数据通过同样的流程反向传递到手机 APP(Wi-Fi → IP → TCP → MQTT → 展示数据)。


第三步:核心概念一句话总结

协议一句话总结典型场景
TCP可靠的快递员,不丢件不乱序网页、微信消息
UDP跑得快的快递员,可能丢件视频通话、游戏实时位置
MQTT为物联网设计的“快递单规则”智能家居设备上报数据
Wi-Fi无线版的“网线”手机、电脑无线联网

2. 关键协作要点

协议协作行为类比解释
Wi-Fi只关心“如何把数据从A点传到B点”卡车司机不关心货物内容,只管运输
TCP确保货物不丢失、按顺序到达快递员逐个包裹检查,丢件就重发
UDP一次性扔出所有包裹,不管是否到达快递员直接把包裹扔到客户家门口
MQTT定义包裹内容如何解读(主题、QoS等级)快递单上写明“易碎品”或“加急”


第四步:常见问题解答

Q1:MQTT必须基于TCP吗?
  • 是的,MQTT设计时基于TCP。但物联网中也有变种如MQTT-SN(基于UDP或其他协议)。

Q2:为什么我本地测试MQTT能通,真实项目连不上?
  • 可能原因:

    1. 防火墙拦截了端口(如1883)。

    2. 未配置MQTT Broker的用户名密码(公开测试Broker不需要,但私有环境需要)。

http://www.dtcms.com/a/99996.html

相关文章:

  • S32K144的SDK库中两种时钟初始化的区别(二)
  • MSTP和链路聚合
  • Nginx—nginx.conf 配置结构详解
  • Linux进程管理之进程间通信的相关知识(映射、管道(Pipe)通信、命名管道(FIFO)、消息队列、信号量、信号)
  • ctfshow WEB web8
  • 【Docker】Dockerfile 优化工具 hadolint
  • 普通人使用AI心得
  • 推挽振荡 ZVS 电路
  • RK3588S与RK3588S2差异说明
  • Java String 与 StringBuffer 深入解析:特性、实现与最佳实践
  • IO流学习
  • 蓝桥云课 飞机降落
  • 【CSS】解决因float而导致的父类塌陷问题
  • 【云原生】Keycloak认证登录Grafana
  • 算法-贪心算法
  • Attention is All you Need阅读笔记
  • 使用 uv 管理 Python 项目
  • 摄像头视频信号在 WEB 端的显示和管理:技术与实现步骤
  • AI 的出现是否能替代 IT 从业者?
  • C语言基础(十)---指针基础
  • C++学习之路:指针基础
  • GMap.NET + WPF:构建高性能 ADS-B 航空器追踪平台
  • 【Golang】第十弹----单元测试、go协程和管道
  • 《三极管侦探社:神秘信号放大案》
  • LPDDR(Low Power Double Data Rate)详解
  • J2EE框架技术 第四章 J2EE的IOC
  • 19840 Dijkstra求最短路2
  • 文件上传存储安全OSS 对象分站解析安全解码还原目录执行
  • React编程的核心概念:数据流与观察者模式
  • POSIX 和 System V IPC的区别