以此架构进行学习和展开
| 模块 | 内容 | 学习重点 |
|---|---|---|
| 1. 网络基础 | 网络模型、协议、分层思想、传输介质 | 五层/七层模型、协议概念 |
| 2. 物理层 | 比特如何传输 | 了解即可(游戏开发不太相关) |
| 3. 数据链路层 | MAC 地址、以太网、ARP、差错检测 | ARP、以太网帧、帧校验 |
| 4. 网络层 | IP 地址、子网划分、路由协议、ICMP | IP、子网掩码、路由转发、NAT |
| 5. 传输层 | TCP、UDP、端口、连接管理 | TCP三次握手/四次挥手、滑动窗口、UDP无连接 |
| 6. 应用层 | HTTP、DNS、FTP、SMTP | HTTP请求流程、状态码、DNS解析 |
| 7. 安全与实际部署 | HTTPS、TLS/SSL、抓包、代理、防火墙 | TLS握手、抓包分析、Wireshark |
补充
以此结构进行补充
协议相关
1.TCP和UDP的底层实现机制有什么不同
2.TCP的三次握手和四次挥手为什么是这样设计的?可以简化吗?
3.为什么HTTP是无状态的?那HTTPS是有状态的吗?
4.QUIC为什么能取代TCP + TLS?它解决了哪些问题
网络安全方向
1.TLS 1.3 比 TLS 1.2 改了哪些地方?更安全在哪里?
2.中间人攻击为什么能生效?TLS 是怎么防止它的?
3.CA 证书机制安全吗?Let’s Encrypt 是怎么实现自动签发的?
数据传输机制
1.拥塞控制是怎么实现的?(TCP Reno / BBR)
2.滑动窗口协议是怎么工作的?和流量控制有什么关系?
3.TCP 粘包、拆包是怎么产生的?怎么处理?
网络架构与通信流程
1.从输入网址到页面展示,网络层面发生了什么?(逐层分析)
2.DNS 的查询流程是怎样的?递归 vs 迭代?
3.HTTP 请求穿越 NAT / 代理时,头部发生了什么变化?
工具与实践
1.如何用 Wireshark 分析一次 HTTP/TLS/TCP 连接?
2.Linux 中的 netstat / ss / tcpdump 工具是如何工作的?
3.Socket 编程到底底层做了什么?如何自己模拟 HTTP 请求?
游戏开发相关的网络知识
以此作为游戏开发方向网络知识的补充
| 方向 | 相关知识 |
|---|---|
| 联机同步 | UDP、可靠UDP、自定义协议 |
| 登录系统 | HTTP、Token认证、WebSocket |
| 匹配 / 房间管理 | Socket 长连接、TCP/UDP 混合 |
| 多人状态同步 | 帧同步 vs 状态同步、插值与预测 |
| Unity 网络框架 | Mirror、Netcode for GameObjects、LiteNetLib |
重点
1.分层模型
- 五层模型:应用层、传输层、网络层、数据链路层、物理层
- 为什么要分层?抽象&解耦
IP地址与子网
- IP地址 vs MAC地址
- 子网掩码 / 子网划分 / CIDR
- 路由器转发的原理
TCP与UDP
- TCP的三次握手/四次挥手
- 拥塞控制:慢启动、拥塞避免、快重传、快恢复
- UDP的无连接性 + 应用场景(实时性优先)
HTTP
- HTTP的请求结构、响应结构
- 常见状态码(200、301、404、500)
- HTTP1.0/1.1/2.2的区别
- Cookie vs Session vs Token
抓包与调试
- Wireshark抓包分析
- ping、tracert、netstat、telnet、curl等命令
- 网络延迟、丢包、MTU的定位手段