一、各种协议对应的传输层协议
在网络通信中,不同的应用协议依赖于传输层的不同协议来实现数据传输。以下是一些常见协议及其在传输层所使用的协议情况:
Ethernet 应用 IP ICMP UDP TCP SCIP
ping | ● | ||||
traceroute | ● | ● | |||
OSPF(路由协议) | ● | ||||
RIP(路由协议) | ● | ||||
BGP(路由协议) | ● | ||||
BOOTP(引导协议) | ● | ||||
DHCP | ● | ||||
NTP(时间协议) | ● | ||||
TFTP(低级 FTP) | ● | ||||
SNMP(网络管理) | ● | ||||
IGMP(组播管理) | ● | ||||
SMTP(电子邮件) | ● | ||||
telnet(远程登录) | ● | ||||
SSH(安全远程登录) | ● | ||||
FTP(文件传输) | ● | ||||
HTTP(web) | ● | ||||
NNTP(网络新闻) | ● | ||||
LPR(远程打印) | ● | ||||
DNS(域名系统) | ● | ● | |||
NFS(网络文件系统) | ● | ● | |||
Sun RPC(远程过程调用) | ● | ● | |||
DCE RPC(远程过程调用) | ● | ● | |||
IUA(ISDN) | ● | ||||
M2UA/M3UA(SS7 电话信令) | ● | ||||
H.248(媒体网关控制) | ● | ● | ● | ||
H.323(IP 电话) | ● | ● | ● | ||
H.248(IP 电话) | ● | ● | ● |
二、MQTT 协议
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息传输协议,广泛应用于物联网等领域。
官方文档:第四章 – 操作行为 · MQTT协议中文版
(一)MQTT 网络连接方式
MQTT 支持以下 3 种网络连接方式:
- tcp:使用 1883 端口,是最基本的连接方式,适用于大多数常规的 MQTT 通信场景。
- TLS:使用 8883 端口,基于 TCP 连接并提供了加密功能,确保数据传输的安全性,适用于对数据安全有较高要求的场景。
- websocket:通过 WebSocket 协议进行连接,使得 MQTT 能够在 Web 环境中更方便地集成和使用。
(二)主题过滤器(Topic Filter)
主题过滤器是订阅中包含的一个表达式,用于表示相关的一个或多个主题。它可以使用通配符,通过主题过滤器,客户端可以灵活地订阅感兴趣的主题,实现消息的高效分发和接收。
(三)控制报文(MQTT Control Packet)
MQTT 规范定义了十四种不同类型的控制报文,这些控制报文是通过网络连接发送的信息数据包,用于实现客户端与服务端之间的各种交互操作。具体如下:
名字 值 报文流动方向 描述
Reserved | 0 | 禁止 | 保留,不用于实际通信 |
CONNECT | 1 | 客户端到服务端 | 客户端请求连接服务端,用于建立 MQTT 连接 |
CONNACK | 2 | 服务端到客户端 | 连接报文确认,服务端对客户端的连接请求进行响应 |
PUBLISH | 3 | 两个方向都允许 | 发布消息,用于客户端向服务端或服务端向客户端发送消息 |
PUBACK | 4 | 两个方向都允许 | QoS 1 消息发布收到确认,用于确认 QoS 1 等级的消息已被接收 |
PUBREC | 5 | 两个方向都允许 | 发布收到(保证交付第一步),用于 QoS 2 消息的保证交付流程 |
PUBREL | 6 | 两个方向都允许 | 发布释放(保证交付第二步),继续 QoS 2 消息的保证交付流程 |
PUBCOMP | 7 | 两个方向都允许 | QoS 2 消息发布完成(保证交互第三步),完成 QoS 2 消息的保证交付 |
SUBSCRIBE | 8 | 客户端到服务端 | 客户端订阅请求,客户端向服务端请求订阅特定主题 |
SUBACK | 9 | 服务端到客户端 | 订阅请求报文确认,服务端对客户端的订阅请求进行响应 |
UNSUBSCRIBE | 10 | 客户端到服务端 | 客户端取消订阅请求,客户端向服务端请求取消对特定主题的订阅 |
UNSUBACK | 11 | 服务端到客户端 | 取消订阅报文确认,服 |