一各种协议的简单介绍1.TCP 传输层① TCP 是互联网最基础的面向连接可靠有序的传输层协议。② 通信前必须经过三次握手建立连接通信完成后四次挥手释放连接。③ 内置确认应答超时重传拥塞控制流量控制机制保证数据无丢失无重复按序到达。④ 缺点握手开销大协议头部重且存在 TCP 层队头阻塞问题单流丢包后会阻塞后续所有的数据传输。⑤ 是 HTTPMQTT 等绝大多数应用层协议的底层承载协议适用于文件传输指令交互日志上报等对可靠性要求较高的场景。⑥ TCP 是操作系统内核态协议栈经过多年高度优化CPU内存开销低适合超高并发。2. UDP传输层① UDP 是无连接不可靠极简高效的传输层协议。② 无需握手无需维持连接状态头部开销极小转发延迟极低。③ 不提供重传排序拥塞控制机制数据发出去就结束无法保证送达与顺序。④极致轻量化广泛用于实时性优先可容忍少量丢包的场景如直播实时游戏语音视频。⑤ 是 QUICCoAP 等新一代轻量化协议的底层载体是高速自定义传输的基础。3.QUIC传输层基于UDP① QUIC 是已经标准化的新一代低延迟可靠传输协议全程基于 UDP 实现完美结合 TCP 的可靠性和 UDP 的高效性② 优势支持0-RTT/1-RTT 快速握手内置TSL1.3 加密彻底解决 TCP 对头阻塞支持连接迁移网络切换不中断连接。③ 通过独立流多路复用机制单条数据流丢包不会影响其他数据流大幅提升弱网移动网络下的传输稳定性是 HTTP3 的唯一底层传输协议。④ QUIC 大多为用户态协议栈协议处理逻辑跑在应用进程内报文解析重传拥塞控制都占用应用 CPU 相比内核 TCPCPU于内存开销更高高并发下服务器压力更大。⑤ 虽然现代优化后的 QUIC 库差距在缩小但相比内核 TCP资源消耗依旧是短板。4.HTTP/1.1应用层① HTTP/1.1 是经典的 Web 应用层协议基于 TCP 传输采用文本格式请求响应模式。② 相比 1.0 新增持久连接keep-alive 保活机制缓存优化管道化请求等特性大幅提升网页传输效率。③ 短板不支持真正多路复用同一时间同一连接只能处理一个请求存在严重的应用层对头阻塞高并发场景性能瓶颈明显。④ 目前仍是传统网页接口服务的基础兼容协议。5.HTTP/2应用层① HTTP/2 在 HTTP/1.1 基础上做了大幅优化底层仍基于 TCP 核心改革是二进制帧传输 单连接多路复用 头部压缩 服务端推送。将文本报文改为二进制帧解析效率更高单 TCP 连接可并行处理多个请求极大减少连接建立开销。② 受限于底层 TCP 特性依然存在传输层对头阻塞无法彻底解决弱网高延迟场景的性能问题是过渡性的高性能 Web 协议。③ HTTP/2 就是专门用于Web 网页访问场景的传输协议。6.HTTP/3应用层① HTTP/3 是最新一代 Web 协议完全摒弃 TCP基于QUIC 协议构建保留了 HTTP 语义的同时彻底解决历代 HTTP 协议的核心痛点。② 继承 HTTP/2 的二进制帧头部压缩的优势依托 QUIC 实现无队头阻塞急速握手网络无感切换全程加密。③ 在移动端弱网高并发场景下传输速度稳定性远超 HTTP1.1/2是目前互联网大厂主流迭代升级的 Web 协议。7.MQTT物联网应用层① MQTT 是专为物联网低带宽弱网低算力设备设计的轻量级应用层协议基于TCP 传输采用发布/订阅架构区别于 HTTP 的请求响应模式。② 协议报文头部极小资源占用极低适配单片机嵌入式设备等资源受限场景。③ 核心特色是三级 QoS 服务质量机制可灵活适配**“无需确认必达一次仅达一次”的各类设备上报场景是智能家居**工业物联网设备云端通信的主流标准协议。二核心协议全方位表格对比协议底层依赖连接模式可靠性报文开销延迟特性多路复用弱网/切换设备资源消耗核心应用场景TCPIP传输层面向连接三次握手/四次挥手可靠有序无重复具备重传/拥塞/流量控制中等固定20字节头部建立连接延迟高传输延迟稳定握手耗时明显无原生多路复用单流串行差丢包触发队头阻塞网络切换断连重连中等需维护连接状态滑动窗口文件传输指令交互日志上传传统可靠业务UDPIP传输层无连接无需握手无状态不可靠不保证送达不保证有序无重传机制极小8字节固定报头极致低延迟无建立连接开销无系统级多路复用纯应用层发包优秀适配弱网断网不卡死链路极低。无需维护连接状态直播语音游戏实时视频。自定义私有协议QUICUDP基于UDP的新型传输层逻辑连接无需传统TCP握手完全可靠自研重传拥塞控制有序重组略高于UDP低于TCPTLS极低支持0-RTT/1-RTT 快速建立连接支持真正多路复用流隔离无对头阻塞极强支持连接迁移4G/5G/WIFI切换不中断中等算法复杂适合Linux/服务端HTTP/3移动端高并发弱网环境传输跨境访问HTTP/1.1TCP应用层短连接/长连接请求-响应模式依托TCP可靠应用层无容错大文本报文头部冗余严重延迟高频繁建立连接串行请求无多路复用单连接串行请求差丢包直接阻塞整连接偏高报文解析成本高传统网页简单接口老旧业务系统兼容HTTP/2TCP应用层长连接为主请求响应模式依托TCP可靠中等二进制帧头部压缩中等连接复用大幅优化延迟支持连接内多路复用一般受TCP限制依然存在队头阻塞中等解析效率优于1.1Web服务后端接口中高并发网页场景HTTP/3QUIC应用层逻辑长连接快速握手依托QUIC完全可靠中等继承HTTP/2压缩优势极低弱网提升巨大流级多路复用完全无对头阻塞全网最优适配移动端波动网络中等依赖系统QUIC现代网站APP接口高并发外网服务移动端业务MQTTTCPIoT应用层长连接心跳保活发布订阅模式可配置QoS0/QoS1/QoS2按需可靠极小专为小报文设计延迟稳定适合低频上报主题订阅式多路复用IoTa专属优秀心跳重连适配设备弱网掉线极低适配单片机嵌入式低功耗设备物联网设备传感器上报智能家居工业IoT三高频面试题总结3.1 HTTP/2 已经实现了多路复用为什么还要升级 HTTP/3HTTP/2 的多路复用只是应用层优化底层依然依赖TCP协议无法规避TCP的传输层队头阻塞问题。单TCP连接中任意一个数据包丢失所有并行请求都会被阻塞。而 HTTP/3 基于QUIC协议通过独立流隔离机制彻底解决队头阻塞同时支持0-RTT快速建连、网络连接迁移在弱网、移动端场景性能提升巨大。3.2 QUIC 基于UDP实现为什么能做到可靠传输UDP只是QUIC的底层承载载体QUIC在应用层自研了一整套可靠传输机制包含报文序号、ACK应答、超时重传、拥塞控制、流量控制、数据重组等核心逻辑本质是跑在UDP之上的新型可靠传输协议兼顾了UDP的低延迟和TCP的高可靠性。3.3 物联网设备通信为什么普遍用MQTT不用HTTP第一MQTT报文头部极小开销远低于HTTP适配物联网窄带弱网环境第二MQTT基于TCP长连接心跳保活支持服务端主动推送消息无需设备轮询功耗更低、实时性更强第三MQTT具备三级QoS机制可适配不同数据的可靠传输需求而HTTP无专属可靠级别配置设计逻辑完全不适配低功耗嵌入式设备。3.4 TCP 为什么不适合实时音视频、游戏场景TCP核心是保证数据绝对可靠、有序传输内置超时重传、队头阻塞机制。网络轻微抖动丢包时TCP会持续重传丢失报文造成延迟不断堆积引发画面卡顿、操作滞后、音画不同步等问题。而实时场景优先保证流畅性可容忍少量丢包因此必须使用无重传、无阻塞的UDP协议。3.5 QUIC 有什么短板为什么没有全面替代TCPQUIC算法复杂、代码实现难度高、算力和内存开销更大无法运行在单片机等资源极度受限的嵌入式设备同时TCP部署成熟、兼容性全覆盖、生态完善绝大多数稳定业务无需替换。因此QUIC仅在移动端、外网弱网、高并发Web场景做升级优化无法全面替代TCP。3.6 MQTT的QoS0/QoS1/QoS2 核心区别是什么QoS0至多一次消息只发送一次无确认、无重传适合高频、可丢失的非关键数据QoS1至少一次保证消息一定送达可能重复接收适合大部分常规设备上报数据QoS2恰好一次通过四次握手保证消息唯一送达、无丢失无重复逻辑复杂、开销最高适合设备指令、充值告警等关键数据。3.7 什么是连接迁移QUIC如何实现连接迁移是指设备网络切换WiFi/4G切换时连接不中断、业务不重启的能力。TCP连接依赖IP端口四元组网络切换后四元组改变连接直接断开QUIC通过唯一的全局连接ID标识连接不绑定网络地址网络切换后只要连接ID不变即可延续原有连接实现无感切换。