Skip to content

计算机网络 共77题 ​

第 1 部分: ​

说明:

  • 重点方向:TCP/UDP、HTTP/HTTPS、Socket、粘包拆包、可靠 UDP、延迟/丢包/抖动、客户端预测、服务器校正、心跳与断线重连。

一、单选题 ​

1. TCP 协议位于 TCP/IP 四层模型中的哪一层? ​

A. 应用层
B. 传输层
C. 网络层
D. 网络接口层

答案:B

解析:TCP 和 UDP 都属于传输层协议,负责端到端进程通信。


2. UDP 协议最核心的特点是? ​

A. 面向连接、可靠、有序
B. 无连接、不保证可靠、不保证有序
C. 只能用于文件传输
D. 一定比 TCP 安全

答案:B

解析:UDP 是无连接的数据报协议,不保证可靠性和顺序,但开销低、延迟低。


3. 实时动作游戏中,位置同步更常使用 UDP 的主要原因是? ​

A. UDP 一定不会丢包
B. UDP 不需要 IP 协议
C. UDP 延迟低,应用层可自行处理丢包和乱序
D. UDP 可以自动加密

答案:C

解析:实时游戏更怕延迟堆积。UDP 不保证可靠,但可以用序号、插值、预测、冗余包等机制补偿。


4. TCP 三次握手的主要目的不包括? ​

A. 确认双方收发能力
B. 同步初始序列号
C. 建立连接状态
D. 传输完整游戏资源包

答案:D

解析:三次握手用于建立连接,不负责传输完整业务数据。


5. TCP 四次挥手中,主动关闭方最后进入的典型状态是? ​

A. LISTEN
B. SYN_SENT
C. TIME_WAIT
D. ESTABLISHED

答案:C

解析:主动关闭方发送最后一个 ACK 后进入 TIME_WAIT,用于确保对方收到 ACK,并处理网络中残留报文。


6. 关于 TCP 粘包/拆包,说法正确的是? ​

A. TCP 是消息协议,所以不会粘包
B. TCP 是字节流协议,没有天然消息边界
C. 只有 UDP 会粘包
D. 粘包只能靠重启服务器解决

答案:B

解析:TCP 面向字节流,应用层需要自己定义消息边界,如长度字段、分隔符、固定包长等。


7. 解决 TCP 粘包/拆包最常见的方式是? ​

A. 禁用网卡
B. 每个包前加长度字段
C. 改用 int 存字符串
D. 让客户端 sleep

答案:B

解析:包头长度字段是常见协议设计方式,接收端先读包头,再按长度读取完整包体。


8. HTTPS 相比 HTTP 增加的核心能力是? ​

A. 加密、身份认证、完整性保护
B. 必然更快
C. 不需要 DNS
D. 只能传输图片

答案:A

解析:HTTPS 是 HTTP over TLS,提供加密、证书认证和完整性保护。


9. DNS 通常使用的传输层协议是? ​

A. UDP
B. ICMP
C. ARP
D. FTP

答案:A

解析:DNS 查询通常使用 UDP 53 端口;区域传输或响应过大时也可能使用 TCP。


10. Socket 更准确地说是? ​

A. 一种应用层游戏协议
B. 操作系统提供的网络编程接口
C. 一种显卡驱动
D. 一种数据库索引

答案:B

解析:Socket 是应用程序使用 TCP/UDP 等协议进行网络通信的编程接口。


11. TCP 的可靠传输不依赖哪一项? ​

A. 序列号
B. 确认应答
C. 超时重传
D. 渲染管线

答案:D

解析:TCP 可靠性依赖序号、ACK、重传、校验、滑动窗口等机制,和渲染管线无关。


12. TCP 流量控制主要解决什么问题? ​

A. 防止发送方把接收方缓冲区打爆
B. 防止 GPU 过热
C. 防止玩家作弊
D. 减少游戏对象数量

答案:A

解析:流量控制通过接收窗口限制发送速度,使接收方来得及处理数据。


13. TCP 拥塞控制主要面向的是? ​

A. 接收端应用处理速度
B. 网络链路拥塞情况
C. 本地文件系统大小
D. Shader 编译速度

答案:B

解析:拥塞控制根据网络拥塞程度调整发送速率,典型机制包括慢启动、拥塞避免、快重传、快恢复。


14. 游戏登录、支付、商城购买更适合使用 TCP 的原因是? ​

A. 这些业务更看重可靠性和顺序性
B. TCP 一定比 UDP 延迟低
C. UDP 不能传字符串
D. TCP 不需要服务器

答案:A

解析:登录、支付、商城等业务不能丢数据,可靠性优先于极低延迟。


15. 客户端收到服务端状态包乱序时,最常见的处理依据是? ​

A. 包的序列号或时间戳
B. 包的颜色
C. 玩家昵称长度
D. 客户端窗口大小

答案:A

解析:实时同步包通常带序列号或时间戳,客户端可丢弃过旧包或按序缓存处理。


16. 心跳包的主要作用是? ​

A. 检测连接是否仍然有效
B. 增加游戏画质
C. 压缩纹理
D. 修改玩家模型

答案:A

解析:心跳用于检测连接活性、维持 NAT 映射、发现掉线。


17. NAT 穿透主要解决的问题是? ​

A. 内网主机无法直接被公网访问
B. 显卡无法渲染透明物体
C. STL 迭代器失效
D. TCP 无法建立连接到本机进程

答案:A

解析:NAT 后的客户端没有直接公网地址,P2P 或语音通信常需要 NAT 穿透。


18. TCP 队头阻塞在实时游戏中的问题是? ​

A. 后续数据可能被前面丢失的数据阻塞
B. 客户端无法渲染 UI
C. 服务端无法保存文件
D. 玩家无法输入键盘

答案:A

解析:TCP 必须按序交付,如果前面报文丢失,后续已经到达的数据也不能先交给应用层。


19. 对实时游戏同步来说,下列哪种数据通常可以丢弃旧包? ​

A. 玩家最近位置状态
B. 充值订单
C. 登录 token
D. 账号注册信息

答案:A

解析:实时位置状态具有时效性,旧状态常被新状态覆盖;订单和账号数据不能随意丢。


20. HTTP 长连接的核心含义是? ​

A. 多个请求复用同一个 TCP 连接
B. 每个请求都重新三次握手
C. 永远不断开连接
D. 不需要服务器响应

答案:A

解析:HTTP keep-alive 允许多个请求/响应复用同一 TCP 连接,减少建连开销。


21. WebSocket 建立连接时最初通常基于? ​

A. HTTP Upgrade
B. ICMP Echo
C. ARP 请求
D. FTP 登录

答案:A

解析:WebSocket 通常通过 HTTP Upgrade 完成协议升级,再进行全双工通信。


22. IP 协议主要负责? ​

A. 主机到主机的寻址和路由
B. 进程到进程的端口复用
C. 保证应用消息边界
D. 加载贴图资源

答案:A

解析:IP 位于网络层,负责寻址和路由;端口属于传输层概念。


23. 端口号的主要作用是? ​

A. 标识主机上的具体进程或服务
B. 标识显示器分辨率
C. 标识文件后缀
D. 标识显卡厂商

答案:A

解析:IP 定位主机,端口定位主机上的应用进程或服务。


24. 关于 UDP 数据报,说法正确的是? ​

A. UDP 保留数据报边界
B. UDP 一定按序到达
C. UDP 一定可靠到达
D. UDP 必须先三次握手

答案:A

解析:UDP 面向报文,应用层一次发送的数据报在接收时仍以数据报为单位。


25. 如果游戏客户端使用 UDP 同步操作输入,服务端通常应当? ​

A. 以服务端为权威校验和模拟
B. 完全相信客户端坐标
C. 不记录序号
D. 不处理丢包

答案:A

解析:服务端权威能降低作弊风险,客户端只提交输入或意图,服务端校验并广播结果。


26. RTT 表示什么? ​

A. 往返时延
B. 渲染线程类型
C. 纹理压缩比
D. 文件读取速率

答案:A

解析:RTT 是数据从一端发出到收到对端响应的往返时间,是网络延迟评估指标。


27. 游戏中的 jitter 通常指? ​

A. 网络延迟抖动
B. 模型骨骼数量
C. 编译器优化等级
D. 图片分辨率

答案:A

解析:jitter 指延迟不稳定,可能导致角色移动忽快忽慢,需要缓冲、插值等处理。


28. 客户端插值主要用于? ​

A. 平滑显示远端对象运动
B. 加密账号密码
C. 减少 TCP 三次握手
D. 删除服务器日志

答案:A

解析:客户端通常用缓冲延迟在两个已知状态之间插值,减少抖动和跳变。


29. 客户端预测主要解决什么问题? ​

A. 本地输入反馈延迟
B. DNS 解析失败
C. 服务器硬盘不足
D. 贴图过大

答案:A

解析:客户端预测先本地模拟玩家输入,让操作立即反馈;之后再根据服务端权威状态校正。


30. 服务器校正的目的是什么? ​

A. 修正客户端预测和服务器权威结果之间的偏差
B. 提高显示器刷新率
C. 改变网卡 MAC 地址
D. 关闭所有连接

答案:A

解析:预测可能和权威状态不一致,客户端需要回滚、重放或平滑修正。


二、不定项选择题 ​

31. 关于 TCP 的说法正确的是? ​

A. 面向连接
B. 可靠传输
C. 面向字节流
D. 一定适合所有实时游戏同步

答案:A、B、C

解析:TCP 可靠、有序、面向字节流,但实时同步常因队头阻塞和重传延迟更倾向 UDP。


32. 关于 UDP 的说法正确的是? ​

A. 无连接
B. 面向数据报
C. 不保证可靠性
D. 不需要应用层处理任何异常

答案:A、B、C

解析:UDP 简单低延迟,但丢包、乱序、重复等情况需要应用层按业务处理。


33. 下列哪些方式可用于应用层可靠 UDP? ​

A. 序列号
B. ACK 确认
C. 超时重传
D. 丢弃所有包

答案:A、B、C

解析:可靠 UDP 通常借鉴 TCP 的序列号、确认、重传、窗口等机制,但可按业务选择可靠粒度。


34. 下列哪些业务更适合可靠传输? ​

A. 充值支付
B. 登录认证
C. 背包物品变更
D. 高频角色位置广播

答案:A、B、C

解析:支付、登录、物品变更不能丢;高频位置可以被新状态覆盖。


35. 下列哪些可能导致玩家感知到网络卡顿? ​

A. RTT 过高
B. 丢包率高
C. jitter 大
D. 客户端插值缓冲合理

答案:A、B、C

解析:延迟、丢包和抖动都会影响体验;合理插值缓冲反而能改善观感。


36. 关于 TCP 粘包/拆包,正确的是? ​

A. 本质原因之一是 TCP 是字节流
B. 可以通过长度字段解决
C. 可以通过分隔符解决
D. UDP 一定存在 TCP 粘包问题

答案:A、B、C

解析:TCP 无消息边界;UDP 保留数据报边界,不存在同样意义的 TCP 粘包问题。


37. HTTPS 能防护哪些问题? ​

A. 明文被窃听
B. 数据被篡改
C. 服务器身份伪造
D. 客户端所有外挂行为

答案:A、B、C

解析:HTTPS 解决传输安全,不解决所有客户端作弊和外挂。


38. TCP 四次挥手中可能出现的状态包括? ​

A. FIN_WAIT_1
B. CLOSE_WAIT
C. LAST_ACK
D. TIME_WAIT

答案:A、B、C、D

解析:这些都是 TCP 连接关闭过程中的典型状态。


39. 游戏客户端断线重连时,通常需要考虑? ​

A. 重新认证身份
B. 拉取服务端权威状态
C. 恢复或丢弃本地未确认操作
D. 完全相信断线期间本地模拟结果

答案:A、B、C

解析:断线重连需要身份校验和状态恢复,不能完全相信客户端本地状态。


40. 关于客户端预测,正确的是? ​

A. 可以降低本地输入延迟感
B. 可能需要服务器校正
C. 可能需要回滚和重放输入
D. 可以完全取代服务器权威

答案:A、B、C

解析:预测改善手感,但最终仍应以服务端权威结果为准。


41. 关于状态同步和帧同步,正确的是? ​

A. 状态同步常由服务端下发权威状态
B. 帧同步常同步玩家输入并要求确定性模拟
C. 帧同步对随机数和浮点一致性要求较高
D. 状态同步一定不需要带宽

答案:A、B、C

解析:状态同步带宽压力较大;帧同步强调确定性和输入一致。


42. 下列哪些字段常出现在游戏自定义 UDP 包头中? ​

A. 协议号或消息类型
B. 序列号
C. 时间戳
D. 玩家显示器尺寸

答案:A、B、C

解析:消息类型、序列号、时间戳用于解包、乱序处理、延迟估计等。


43. 下列哪些是网络层或传输层常见协议? ​

A. IP
B. TCP
C. UDP
D. ShaderLab

答案:A、B、C

解析:ShaderLab 是 Unity Shader 相关语言,不是网络协议。


44. 关于 HTTP 请求方法,正确的是? ​

A. GET 常用于获取资源
B. POST 常用于提交数据
C. GET 请求参数通常可出现在 URL 中
D. POST 一定比 GET 安全

答案:A、B、C

解析:POST 不天然安全,安全性主要依赖 HTTPS、认证、权限校验等。


45. 关于心跳机制,正确的是? ​

A. 可用于检测断线
B. 可用于维持 NAT 映射
C. 心跳间隔需要权衡流量和及时性
D. 心跳越频繁一定越好

答案:A、B、C

解析:心跳太频繁会浪费带宽和电量,太慢则断线发现不及时。


三、判断题 ​

46. TCP 保证应用层每次 send 对应接收端一次 recv。 ​

答案:错

解析:TCP 是字节流,不保留应用层消息边界。


47. UDP 不保证可靠到达,因此游戏中绝对不能使用 UDP。 ​

答案:错

解析:实时游戏常用 UDP,并在应用层做必要的可靠性、冗余和补偿。


48. TCP 的 TIME_WAIT 一般出现在主动关闭方。 ​

答案:对

解析:主动关闭方发送最后 ACK 后通常进入 TIME_WAIT。


49. HTTP 和 HTTPS 的主要区别之一是 HTTPS 使用 TLS 提供安全能力。 ​

答案:对

解析:HTTPS 在 HTTP 与 TCP 之间加入 TLS。


50. UDP 数据报过大时可能发生 IP 分片,分片丢失会导致整个数据报不可用。 ​

答案:对

解析:过大的 UDP 包可能触发 IP 分片,任一分片丢失都会影响重组。


51. 游戏客户端预测可以完全防止作弊。 ​

答案:错

解析:预测用于改善手感,防作弊主要依赖服务端权威校验、反作弊和数据一致性检查。


52. TCP 拥塞控制和流量控制是同一个概念。 ​

答案:错

解析:流量控制面向接收方能力,拥塞控制面向网络链路拥塞。


53. Socket API 可以用于 TCP,也可以用于 UDP。 ​

答案:对

解析:Socket 是编程接口,可创建流式 TCP socket 或数据报 UDP socket。


54. 使用长度字段协议时,接收端需要处理半包情况。 ​

答案:对

解析:TCP recv 可能只收到部分包头或部分包体,因此要维护接收缓冲区。


55. 实时同步中,所有消息都必须可靠重传,否则游戏一定无法运行。 ​

答案:错

解析:不同消息可靠性要求不同。输入确认、关键事件可能可靠,位置快照可不可靠。


四、填空题 ​

56. TCP 是面向 ______ 的可靠传输协议,UDP 是面向 ______ 的不可靠传输协议。 ​

答案:字节流;数据报

解析:TCP 无消息边界,UDP 保留数据报边界。


57. TCP 三次握手的三个报文通常可概括为:SYN、______、ACK。 ​

答案:SYN-ACK

解析:服务端收到 SYN 后回复 SYN 和 ACK。


58. TCP 四次挥手中,主动关闭方最后通常进入 ______ 状态。 ​

答案:TIME_WAIT

解析:TIME_WAIT 用于等待可能的重传 FIN 和处理网络残留报文。


59. 解决 TCP 粘包/拆包时,常见做法是在包头中加入 ______ 字段。 ​

答案:长度

解析:长度字段能让接收端知道完整包体需要读取多少字节。


60. UDP 应用层可靠传输常用三类机制:序列号、ACK 确认、______。 ​

答案:超时重传

解析:超时未收到 ACK 时重发关键消息。


61. RTT 的中文含义是 ______。 ​

答案:往返时延

解析:RTT 表示消息发出到收到响应的往返时间。


62. HTTPS 中用于加密和身份认证的安全协议通常是 ______。 ​

答案:TLS

解析:HTTPS = HTTP over TLS。


63. DNS 常用的服务端口号是 ______。 ​

答案:53

解析:DNS 通常使用 53 端口。


64. 客户端预测后,如果服务端权威状态不同,客户端需要进行 ______。 ​

答案:校正

解析:可通过回滚重放或平滑修正来校正。


65. 心跳包超时未收到响应时,客户端通常认为连接可能已经 ______。 ​

答案:断开

解析:心跳超时是断线检测常见依据。


五、简答题 ​

66. 简述 TCP 和 UDP 的区别,并说明游戏客户端中各自适合的场景。 ​

参考答案:

TCP 面向连接、可靠、有序、面向字节流,适合登录、聊天、背包、商城、支付、资源校验等可靠性要求高的业务。UDP 无连接、不保证可靠和顺序、面向数据报,适合实时位置、动作、技能方向、帧同步输入等对低延迟要求更高的数据。游戏里不是简单二选一,而是按消息类型选择协议或可靠性策略。


67. 什么是 TCP 粘包/拆包?如何解决? ​

参考答案:

TCP 是字节流协议,不保留应用层消息边界。一次 send 的数据可能被多次 recv,也可能多个 send 被一次 recv 读到。解决方式是在应用层设计协议边界,常见方法包括固定包长、分隔符、包头长度字段。实际工程里通常使用“包头 + 长度 + 消息类型 + 包体”,接收端维护缓冲区,不足一个完整包则继续等待。


68. 如果用 UDP 做实时游戏同步,如何处理丢包和乱序? ​

参考答案:

每个包带序列号或时间戳。客户端收到旧包可以丢弃,收到乱序包可按业务决定缓存或忽略。关键消息可做 ACK 和重传,非关键位置快照可直接用新包覆盖旧包。表现层用插值、外推、预测和平滑校正减少抖动。服务端保持权威状态,防止客户端伪造关键结果。


69. 什么是客户端预测和服务器校正? ​

参考答案:

客户端预测指客户端收到玩家输入后立即本地模拟,让玩家感觉操作即时生效。服务器校正指服务端作为权威模拟者返回真实结果,如果客户端预测状态和服务端状态不一致,客户端进行回滚重放或平滑修正。它们常用于动作游戏、射击游戏、MOBA 等低延迟交互场景。


70. 游戏断线重连需要考虑哪些问题? ​

参考答案:

需要重新认证身份,确认账号和会话合法;从服务器拉取权威状态,如位置、背包、战斗状态、房间状态;处理断线期间未确认的本地操作,决定重发、丢弃或由服务端状态覆盖;恢复心跳和同步流;必要时处理重连超时、重复登录、顶号和状态版本号冲突。


六、场景分析题 ​

71. 场景:你在做一个 5v5 MOBA 游戏,玩家移动和技能释放需要较低延迟。请设计网络同步方案。 ​

参考答案:

可以采用 UDP 为主的实时同步方案。客户端上报输入、方向、技能释放请求等,包内带玩家 ID、帧号或序列号、时间戳、输入内容。服务端作为权威模拟者,校验输入合法性,计算角色状态并广播给其他客户端。客户端本地玩家使用预测减少输入延迟,远端玩家使用插值平滑移动。关键事件如击杀、结算、背包变化可走可靠通道或可靠 UDP。对丢包使用序列号去重、旧包丢弃、关键包 ACK/重传,对延迟和抖动使用缓冲、插值、服务器校正。

评分点:

  • 区分实时消息和关键可靠消息。
  • 提到 UDP、序列号、时间戳、ACK/重传。
  • 提到客户端预测、服务器权威、插值/校正。
  • 提到防作弊不能完全相信客户端。

72. 场景:某游戏使用 TCP 传输战斗消息,玩家反馈偶尔“卡住一下然后瞬移”。请分析可能原因和优化方向。 ​

参考答案:

可能原因包括 TCP 队头阻塞:某个包丢失后,后续已到达数据也必须等待重传后按序交付,导致应用层短时间收不到新状态;也可能是粘包/拆包处理不当、主线程阻塞处理网络包、服务端广播间隔不稳定。优化方向包括:实时位置/动作改用 UDP 或可靠 UDP;按消息类型区分可靠性,旧位置包可丢弃;网络线程和主线程解耦;客户端对远端对象使用插值缓冲;包内加入序列号和时间戳;监控 RTT、丢包率、jitter 和消息处理耗时。

评分点:

  • 能指出 TCP 队头阻塞。
  • 能区分协议问题和客户端处理问题。
  • 能给出 UDP、插值、消息可靠性分级等优化。

第 2 部分: ​

题目清单 ​

  • S22:TCP 三次握手的主要目的之一是?
  • S23:UDP 更适合实时游戏部分同步的原因是?
  • S24:HTTP 属于哪一层常见协议?
  • M06:关于 TCP 正确的有?
  • M07:关于 UDP 正确的有?

单选题 ​

S22. 单选题 ​

TCP 三次握手的主要目的之一是?

A. 确认双方收发能力并建立连接状态 B. 传输图片 C. 关闭连接 D. 强制使用 UDP

答案:A

解析:三次握手用于同步序列号、确认双方通信能力并建立连接。

题目图示

S23. 单选题 ​

UDP 更适合实时游戏部分同步的原因是?

A. 低延迟,无连接,业务可自定义可靠性 B. 一定不丢包 C. 一定有序 D. 必须三次握手

答案:A

解析:实时游戏可以容忍部分丢包,常用预测、插值、冗余处理。

题目图示

S24. 单选题 ​

HTTP 属于哪一层常见协议?

A. 应用层 B. 物理层 C. 数据链路层 D. 显卡驱动层

答案:A

解析:HTTP 是应用层协议,通常运行在 TCP/TLS 之上。

题目图示

不定项选择题 ​

M06. 不定项选择题 ​

关于 TCP 正确的有?

A. 可靠有序 B. 拥塞控制 C. 面向连接 D. 天然消息边界

答案:A、B、C

解析:TCP 是字节流,没有天然消息边界。

题目图示

M07. 不定项选择题 ​

关于 UDP 正确的有?

A. 无连接 B. 可能丢包 C. 可能乱序 D. 保证可靠有序

答案:A、B、C

解析:UDP 不保证可靠和有序。

题目图示

文章评价

读完这篇,留下你的看法

暂无审核通过的评价。

登录账号后才能评价。

本站访客数0总站访问量0本页访问量0