🏠 首页 攻略 TCP和UDP有什么区别?为什么视频用UDP而文件传输用TCP

TCP和UDP有什么区别?为什么视频用UDP而文件传输用TCP

一文搞懂TCP和UDP的区别,为什么视频通话用UDP而下载文件用TCP。

一句话定位

TCP和UDP是互联网的两种运输协议:TCP像挂号信,保证送达;UDP像寄明信片,不管丢没丢。


它们是什么?

TCP(Transmission Control Protocol,传输控制协议)和UDP(User Datagram Protocol,用户数据报协议)是互联网数据传输的两种基本方式。

所有发往互联网的数据包,最终都会走TCP或UDP。它们的区别就像你寄快递的两种方式:

  • TCP:挂号快递,有单号,能追踪,丢了能补发
  • UDP:平邮明信片,扔进邮筒就不管了,丢不丢看你运气

核心区别

特性TCPUDP
连接方式面向连接(先握手)无连接(直接发)
可靠性保证送达,乱序重排不保证,丢了就丢了
速度较慢(有额外开销)很快(轻量级)
数据顺序有序无序
流量控制有(自动调节发送速度)
拥塞控制有(网络堵了会慢下来)
数据传输流式(字节流)报文式(独立数据包)
头部开销20字节8字节

为什么视频用UDP,文件用TCP?

视频通话和直播用UDP,因为延迟比完整性更重要。

想象你在和朋友视频通话。如果画面卡顿一下,你可以接受。但如果因为TCP的"重传机制"让每一帧都延迟几秒,你们对话就像在玩"你说完我再说"的延迟游戏,完全没法交流。

UDP的做法是:丢了就丢了,下一帧继续。你的大脑会自动脑补缺失的画面,体验反而更好。

下载文件用TCP,因为完整性比速度重要。

你下载一个软件安装包,如果文件缺了几个字节,安装包可能直接打不开。你必须保证每个字节都正确。TCP会逐个确认,丢了就重传,直到完整为止。


生活类比

场景协议原因
发电子邮件TCP邮件不能丢字少句
网上购物下单TCP订单信息必须完整
视频通话UDP实时性比完整更重要
在线游戏UDP0.1秒延迟也是延迟
DNS查询UDP查询简单快速,丢了重发就行
文件传输TCP每个字节都不能错

一句话总结

TCP追求"必须送到",UDP追求"快点送到"。视频选UDP因为卡一帧无伤大雅;文件选TCP因为少一个字节就废了。


延伸阅读