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更合适。

相关推荐
我爱学习_zwj6 分钟前
IP 地址与子网划分
网络协议·网络安全
最强小杰20 小时前
minimax-m3 突然报 HTTP 529 怎么办?连续重试为何更难恢复,退避时间该怎么算?
网络·网络协议·http·ai
m0_6399069420 小时前
TCP与UDP协议详解|原理、区别、粘包拆包、应用场景,面试总
网络协议·tcp/ip·udp
爱吃香菜的初学者21 小时前
十九.Linux——TCP协议(1)
linux·网络·tcp/ip
QianhangQianping1 天前
WebSocket实时推送+ HTTP 定时轮询:一块大屏两套取数怎么不打架
前端·websocket·网络协议·http·低代码·架构·数据可视化
叼烟扛炮1 天前
Linux 学习笔记(四十七):TCP 状态机与 tcpdump 抓包排雷实战
linux·网络·笔记·学习·tcp/ip·tcpdump
车载中间件通信1 天前
[TC8测试]TCP_FLAGS_INVALID_13_Flag SYN,ACK
网络·网络协议·tcp/ip
爱和冰阔落1 天前
【Linux网络】UDP 聊天室怎么实现?从在线用户管理、消息广播到双线程收发与线程池
linux·运维·网络·udp
车载中间件通信1 天前
[TC8测试]TCP_FLAGS_PROCESSING_06
数据库·网络协议·tcp/ip·中间件·tc8