一、什么是“协议”?
协议(Protocol)本质是:
👉 通信双方约定好的一套规则
包括:
-
数据怎么发送
-
数据格式是什么
-
谁先说话
-
出错怎么处理
二、协议的分层体系(核心)
在计算机网络中,协议是分层的:
应用层(Application)
传输层(Transport)
网络层(Network)
三、各层协议详解
1️⃣ 网络层(Network Layer)
核心作用:
👉 决定数据从哪里到哪里(寻址 + 路由)
代表协议:
IP(Internet Protocol)
特点:
-
每个设备有IP地址
-
负责把数据包送到目标机器
-
不保证可靠(可能丢)
2️⃣ 传输层(Transport Layer)
核心作用:
👉 保证数据怎么传(是否可靠)
(1)TCP
特点:
-
面向连接(先建立连接)
-
可靠传输(不丢、不乱序)
-
有确认机制(ACK)
-
有重传机制
适用:
-
Web请求
-
MQTT
-
数据库通信
(2)UDP
特点:
-
无连接
-
不保证可靠
-
速度快
适用:
-
视频流
-
实时通信
3️⃣ 应用层(Application Layer)
👉 最关键的一层(你现在工作的重点)
应用层协议分类
一类:通用互联网协议
(1)HTTP
特点:
-
请求 / 响应模式
-
一次请求一次响应
-
无状态
流程:
客户端 → 请求 → 服务端 → 响应 → 结束
(2)WebSocket
特点:
-
基于 TCP
-
长连接
-
双向通信
-
服务端可主动推送
用途:
-
实时聊天
-
实时数据展示
(3)MQTT
特点:
-
发布 / 订阅模式(Pub/Sub)
-
轻量级
-
长连接
-
基于 TCP
核心角色:
Publisher(发布者)
Subscriber(订阅者)
Broker(服务器)
流程:
发布者 → Broker → 订阅者
二类:工业设备协议
(4)Modbus
特点:
-
工业最常见协议
-
本质:读写寄存器
-
简单高效
示例:
读:地址100
写:地址200 = 1
运行方式:
-
串口(RTU)
-
TCP(Modbus TCP)
(5)S7(西门子协议)
特点:
-
用于西门子PLC
-
按数据块(DB)读取
示例:
读取 DB1.DBW0
(6)OPC UA
特点:
-
标准化工业协议
-
支持结构化数据
-
安全性高
(7)CoAP
特点:
-
类似 HTTP
-
更轻量
-
基于 UDP
三类:业务自定义协议(重点)
👉 企业内部定义
通常基于:
-
MQTT
-
HTTP
形式:
-
JSON
-
二进制
示例:
{
"deviceId": "D001",
"type": "report",
"data": {
"temp": 25
}
}
四、协议之间的关系(重点)
示例1:HTTP
HTTP
↓
TCP
↓
IP
示例2:MQTT
MQTT
↓
TCP
↓
IP
示例3:Modbus TCP
Modbus
↓
TCP
↓
IP
示例4:WebSocket
WebSocket
↓
TCP
↓
IP
五、核心区别总结
| 类型 | 协议 | 作用 |
|---|---|---|
| 网络层 | IP | 定位 |
| 传输层 | TCP/UDP | 传输 |
| 应用层 | HTTP/MQTT/WS | 通信方式 |
| 设备协议 | Modbus/S7 | 设备数据 |
| 业务协议 | JSON | 数据结构 |
六、MQTT vs HTTP vs WebSocket
| 对比项 | MQTT | WebSocket | HTTP |
|---|---|---|---|
| 通信模式 | 发布订阅 | 双向通信 | 请求响应 |
| 连接方式 | 长连接 | 长连接 | 短连接 |
| 是否支持推送 | ✅ | ✅ | ❌ |
| 适用场景 | 设备通信 | 实时前端 | Web接口 |
七、完整系统通信链路(典型物联网)
设备(PLC)
↓(Modbus / S7)
网关
↓(MQTT)
Broker
↓(MQTT)
Java服务
↓
数据库
八、协议的本质区别总结(最重要)
1️⃣ TCP
👉 解决:数据怎么可靠传输
2️⃣ WebSocket
👉 解决:浏览器如何长连接通信
3️⃣ MQTT
👉 解决:消息如何发布订阅
4️⃣ Modbus / S7
👉 解决:设备数据如何读取/控制
5️⃣ 业务协议
👉 解决:数据内容长什么样
九、常见误区
❌ MQTT = TCP
👉 错:MQTT 是跑在 TCP 上
❌ WebSocket = MQTT
👉 错:用途完全不同
❌ 协议只有一种
👉 错:是多层叠加
十、一句话总结
👉
网络层负责“去哪”,传输层负责“怎么传”,应用层负责“传什么”。
(完)
&spm=1001.2101.3001.5002&articleId=160468510&d=1&t=3&u=36694e1aa7584a9799c2a339320c8a1d)
929

被折叠的 条评论
为什么被折叠?



