为什么游戏服务端一般要用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游戏开发高频面试题,拆解游戏开发面试到底在考啥!

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务