为什么游戏服务端一般要用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、提到同步帧率对网络协议的要求

技术必备题库 文章被收录于专栏

带你复盘大厂后端和算法面试,拆解面试官到底想听啥

全部评论
TCP UDP算是比较常规的问题了
1 回复 分享
发布于 01-26 17:39 陕西
我咋感觉你这写的很详细,我没玩过游戏不是很清楚
1 回复 分享
发布于 01-22 23:21 北京
我就说上网可以学到东西吧
1 回复 分享
发布于 01-20 18:28 北京
我就说在牛客上可以学到真东西吧
1 回复 分享
发布于 01-15 17:05 湖北
为什么游戏宁可接受丢包也不要延迟这是为啥
点赞 回复 分享
发布于 01-29 17:27 湖南

相关推荐

03-16 20:28
已编辑
京东_后端开发(实习员工)
聊天成长式非常规面经1h,聊嗨了。非常规面试,但感觉很棒,面试官全程微笑。感觉和面试官都是梦到什么说什么[隐去了一些个人经历的深追问题]1.讲一下从小到大的个人经历,为什么选择计算机这个行业呢?2.在大学有哪些规划呢?你对未来的职业发展有哪些想法?未来你想走怎样的路呢?3.讲一下自己的两个项目的时间节点,完成度4.这个自研项目需求点,解决了生活中哪些痛点,你觉得这是实际需求还是伪需求,具体的需求点在你实际落地体现在哪里呢?5.有调研过市面上有哪些相似的项目嘛,或者说真正有名的有哪些6.在做这个项目过程遇到了哪些困难7.视频转音频,转文字,AI分析是怎么实现的8.FFmpeg了解底层的一些机制嘛9.具体讲讲分片上传断点续传的实现,追问为什么先落盘再记账到Redis10.关于保障数据不丢失,你觉得各种中间件的持久化有哪些相通的机制11.你有具体关注过哪些开源项目嘛12.你平时是怎么进行AI coding的13.最近有用过OpenClaw嘛?有哪些应用的场景呢14.讲讲你在Calude Code和Codex的使用差别,你觉得应该怎么去分别使用呢15.你觉得未来AI的一个发展趋势?反问1️⃣有什么能够提高的确或者有哪些地方不足。[面试官说取决于我的需求和目标,想进大厂就多背八股算法等等,想进创业小公司方向就保持自己的敏锐性]2️⃣如果有后续流程会去做哪些业务。以及后续面试的流程。[说是各司其职的公司,大家都会沿着自己的目标去奋斗。流程忘说了]
小牛炒肉:发现一有个没见过的其他项目,面试官就完全不问点评了,四场面试询问次数为0
查看15道真题和解析
点赞 评论 收藏
分享
评论
点赞
4
分享

创作者周榜

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