美团校招高频题:TCP 和 UDP 到底啥区别?面试官就爱问!



哈喽大家好,我是你们熟悉的 31 岁程序员小米,一个把面试题当“下饭综艺”研究的技术分享控!

最近,我在帮一个小师弟准备美团校招,他是一边泡着自习室,一边抓着我问各种八百年前的计算机网络知识。

他说:“小米哥,能不能不要再讲那么抽象的理论啦,我面试官一个问题‘TCP 和 UDP 有什么区别?’,我愣是背了三页书,还是被怼得一脸懵……”

我一听,哈哈,老毛病了——不是你不会,是你没故事!那今天,小米我就带大家,用讲故事的方式,把这个经典面试题:“TCP 和 UDP 有什么区别?各自应用场景又是啥?”讲得清清楚楚!

TCP 和 UDP 的“前世今生”

想象一下,如果网络世界是个江湖,那 TCP 和 UDP 就是两位走红多年的传说级人物,分别号称:

  • TCP:传输可靠、稳如老狗、面面俱到的绅士派
  • UDP:传输快捷、轻装上阵、不拘小节的快递侠

这两位都是“传输层”的高手,负责在“应用层”与“网络层”之间搬运数据。

你可以理解成:操作系统交给它们数据包,它们再打包打车,送往目标设备。这时候,它们的性格差异就来了!

TCP 是“老好人”,UDP 是“急性子”

TCP 是个“事儿妈”型选手,他送数据,流程大概是这样的:

"你好,请问你能收数据吗?"(三次握手)

"我开始送了啊,来来来,每一包你都给我签字确认一下哦~"

"咦你没签字?我再发一次哈!"

"好了,送完啦,我走咯,再见拜拜~"(四次挥手)

所以,TCP 的关键词是:

  • 可靠传输
  • 有连接(三次握手)
  • 面向字节流
  • 拥有流量控制和拥塞控制

而 UDP 呢?一看这流程就疯了:

“握你个头啊!送啦!!”

“收不收不管我事哈!”

“签字?我又不是快递小哥,我是甩手掌柜!”

所以 UDP 的关键词是:

  • 无连接
  • 不可靠(可能丢包、乱序)
  • 面向报文(发送多少就是多少)
  • 快!效率高!

来点真实的生活场景举例吧!

场景一:玩游戏的你,最怕“卡顿”

想象你在玩王者荣耀,刚一个闪现位移——结果网络卡了,你回到老家泉水里躺了。

UDP 正是游戏网络的首选,因为:

  • 游戏对速度要求极高,不能每次都“确认收到”
  • 丢一两个包也没事,人已经跑过去了,画面稍微抖一下可以忍

所以:实时性强、不太在乎丢包的场景,用 UDP 比较多

代表应用:语音通话(VoIP)、视频直播、在线游戏、DNS 查询

场景二:下文件、发微信,谁敢丢一个字节?

假设你在下载一个文件,结果下载完后发现压缩包解压不了,因为……文件丢了几 KB?

这时候就得靠“老好人”TCP:

  • 它会确保数据一字不差地送到你面前
  • 如果中间路由器打了个喷嚏,TCP 会立刻重新发包
  • 下载顺序必须正确,不能把“文件尾”当成“文件头”

所以:需要高可靠性、不能容忍丢包的业务,用 TCP 是绝对的主流选择

代表应用:HTTP 协议、FTP 文件传输、邮件(SMTP)、微信、QQ 聊天

细说 TCP 和 UDP 的 7 大核心区别


null

再讲两个“你可能想不到”的场景

视频会议为什么不是用 TCP?

很多人一开始觉得视频会议这么“高级”,应该用 TCP 吧?

恰恰相反!像 Zoom、腾讯会议、Google Meet,大多数底层其实是用 UDP + 自定义协议(比如 QUIC)来优化体验的。

原因是:视频会议不能容忍延迟,即便中间漏了几个帧,也比卡在那儿几秒好得多。

所以 UDP 胜出!

再说说 QUIC:UDP 的“高端进化版”

Google 曾说:HTTP/2 + TCP 就是“开法拉利堵在高速上”,所以它搞出了 QUIC 协议。

QUIC 基于 UDP,但:

  • 增加了可靠机制(类似 TCP)
  • 支持多路复用(不怕 HOL 阻塞)
  • 集成 TLS 加密,速度超快

现在的 Chrome 和 YouTube,早就开始用 QUIC 了,别小看 UDP 啊!

美团面试官是怎么问的?

我小师弟在美团面试现场就遇到这个问题。

面试官并没有让他死记区别,而是说:

“我们美团有个外卖地图服务,用户移动时位置要实时上传,你觉得 TCP 还是 UDP 更合适?”

这时候你答得好不好,就看你是不是理解场景了!

小师弟答:“地图定位实时性强,更新频率高,偶尔丢一个坐标也能补回来,所以适合用 UDP!而确认收货等需要强一致性的,还是得用 TCP。”

面试官点头,说:“你是懂业务的!”

小米总结:记住这个“口诀”不再懵

想要快?UDP 带!

想要稳?TCP 稳!

实时通话靠 UDP,发个微信用 TCP!

不要再去死记硬背“TCP 是面向连接的、UDP 是不可靠的……”啦!

你只要理解这两位“江湖大佬”的性格、他们适合的战场,答题时自然就能信手拈来。

END

亲爱的读者朋友们,面试最怕的是“知其然,不知其所以然”。

今天这道经典题,不只是背个定义,而是理解协议背后的设计哲学使用场景

希望你也能像小师弟一样,面试时笑着说出:“这个我懂。”

我是小米,一个喜欢分享技术的31岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号“软件求生”,获取更多技术干货!

文章为作者独立观点,不代表BOSS直聘立场。未经账号授权,禁止随意转载。