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

相关推荐
IpdataCloud5 分钟前
风控策略误杀正常用户?如何用IP离线库多维特征优化规则阈值
网络·tcp/ip·安全·ip
TechWayfarer14 分钟前
移动网络IP定位难题:4G/5G用户的IP为什么老飘?
网络·tcp/ip·5g
zmjjdank1ng2 小时前
OSI模型和TCP/IP模型
服务器·网络·tcp/ip
小贾要学习15 小时前
【Linux】TCP网络通信编程
linux·服务器·网络·c++·网络协议·tcp/ip
Hello_Embed16 小时前
嵌入式上位机开发入门(十九):Socket 状态检测与断线重连
网络·单片机·网络协议·tcp/ip·嵌入式
添砖java‘’17 小时前
网络层IP
网络·网络协议·tcp/ip·ip
灰子学技术19 小时前
Envoy 底层 TCP 交互、UDS 和事件驱动技术文档
网络·网络协议·tcp/ip
试试勇气20 小时前
C++实现json-rpc框架
网络协议·rpc·json
Deitymoon21 小时前
linux——TCP服务器获取客户端IP地址
linux·服务器·tcp/ip
CDN36021 小时前
高防服务器磁盘 / CPU 爆满?攻击引流与资源扩容实战
运维·服务器·网络协议