TCP vs UDP 最核心区别(可靠性 vs 速度)

一、TCP(Transmission Control Protocol)

1. 核心:面向连接 + 可靠传输 + 有序传输。

  • **先建立连接:**三次握手(双方确认"我能收/你能收")。
  • 可靠性机制:
    • 确认 ACK:对方收到才算数
    • 重传:丢了就重发
    • 按序:乱序会重排
    • 流量控制/拥塞控制:防止把网络打爆
  • **代价:**协议开销更大、延迟更高、实现更复杂。

2. 适合场景:

  • 网页(HTTP/1.1、HTTP/2 常跑在 TCP 上)
  • 文件传输(FTP/SFTP)
  • 邮件、SSH 等需要"不能错"的业务

例子: 你下载一个安装包,少一个字节都不行 → TCP保证最终文件一致。

二、UDP(User Datagram Protocol)

1. 核心:无连接 + 尽力而为(不保证可靠、不保证有序)。

  • **不建连接:**发就完了
  • **不保证:**可能丢包、重复、乱序
  • **优点:**开销小、延迟低、速度快(更准确说是"更低时延/更少控制")

2. 适合场景:

  • 实时音视频、语音通话(宁愿偶尔花屏/掉音,也不要卡顿)
  • 游戏(更看重延迟)
  • DNS(请求很小,丢了再问一次就行)
  • 以及现代的 QUIC/HTTP/3:底层用 UDP,但在应用层自己实现"可靠性 + 加密 + 多路复用"。

例子: 打游戏时,丢一帧位置更新影响不大,但如果为了重传等半秒,你会感觉"瞬移/卡顿" → UDP更合适。

相关推荐
M78佐菲7 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
米饭不加菜12 小时前
ESP-01S通过TCP直接与手机建立通信
网络·tcp/ip·智能手机
Huathy-雨落江南,浮生若梦12 小时前
Caddy 学习笔记 - 反向代理与 IP 封禁
笔记·学习·tcp/ip
xx~t13 小时前
嵌入式——Linux软件编程——网络1
linux·c语言·网络·vscode·网络协议
MyFreeIT15 小时前
Let‘s Encrypt SSL 製作免費證書
网络协议·https·ssl
2401_8628808215 小时前
Linux应用层开发 --- UDP&TCP
linux·运维·tcp/ip·udp
念恒1230616 小时前
传输层协议TCP
服务器·网络·tcp/ip
爱研究的小梁16 小时前
打破时延‑带宽悖论|乾元通 QMP‑UDP,为无人载具提供低延时高带宽原生通信方案
网络·网络协议·udp
xie0510_16 小时前
TCP socket
linux·网络协议·tcp/ip
比兔代理17 小时前
代理IP池性能瓶颈在哪?并发、带宽与IP质量的平衡优化策略
服务器·网络·tcp/ip·安全