为什么游戏服务端一般要用UDP?
面试题简述
为什么实时游戏的服务端大多使用UDP?TCP不可以吗?
面试官想听的
1、是否理解游戏的实时性要求
2、理解TCP/UDP的本质区别
3、是否能结合游戏场景分析
4、为什么游戏宁可接受丢包也不要延迟
5、能清晰说明TCP造成的延迟来源
面试回答举例
在游戏这种对实时性极端敏感的场景里,UDP的优势非常明显。
首先,TCP会因为三次握手、丢包重传、拥塞控制、流量控制等机制导致额外的延迟,这些延迟是不可控的。
详细请参考:http://xhslink.com/o/8EKzPpTBE5t
由浅入深分析
1、TCP的问题
(1)三次握手耗时
(2)丢包后阻塞后续包
(3)拥塞控制导致发包速率抖动
2、UDP的问题
(1)不保证可靠,但延迟极低
(2)可以自定义可靠策略
3、游戏数据的特点
(1)位移、朝向等高频但可丢
(2)技能释放、登录等低频但必须可靠
4、因此常见架构
(1)战斗走 UDP + 自研可靠机制
(2)非战斗协议走TCP
面试加分点
1、提到 TCP + UDP 混用的游戏服务器架构
2、提到 QUIC 作为中间方案
3、提到同步帧率对网络协议的要求
2025游戏开发 文章被收录于专栏
带你复盘2025游戏开发高频面试题,拆解游戏开发面试到底在考啥!
