本文章不作任何商业用途 仅作学习与交流
一、网络基础术语
1. 寻址标识
术语 | 层级 | 格式示例 | 功能特性 |
---|---|---|---|
MAC地址 | 数据链路层 | 00:1A:2B:3C:4D:5E | 物理网卡唯一标识,用于局域网通信 |
IP地址 | 网络层 | IPv4:192.168.1.1 IPv6: 2001:db8::1 | 逻辑网络定位,支持NAT转换 |
端口号 | 传输层 | 0-65535(HTTP:80) | 区分同一主机的不同服务 |
2.OSI模型
A[OSI七层模型] -->|实际应用| B[TCP/IP四层模型]
A --> C[物理层: 比特流传输]
A --> D[数据链路层: MAC寻址]
A --> E[网络层: IP路由]
A --> F[传输层: 端到端连接]
A --> G[会话层: 连接维护]
A --> H[表示层: 数据格式化]
A --> I[应用层: 用户接口]
B --> J[网络接口层]
B --> K[网络层]
B --> L[传输层]
B --> M[应用层]
```
二、基本网络体系
架构模型
C/S 架构
将计算机应用系统分为两个部分:客户端和服务器端。客户端是用户与系统进行交互的界面,通常安装在用户的本地计算机上,用于向服务器发送请求并接收服务器返回的结果,为用户提供一个可视化的操作界面,以便用户方便地使用系统功能。服务器端则负责处理客户端发送的请求,通常安装在远程的服务器上,服务器根据客户端的请求进行相应的处理,如查询数据库、进行计算等,并将处理结果返回给客户端
c/s架构典型工作流
核心特征
- 权威服务器:所有关键逻辑在服务端运行
- 单向通信:客户端发起请求,服务器响应
- 状态集中管理:玩家数据、游戏进度统一存储
应用场景
- MMORPG:《魔兽世界》的副本战斗
- 竞技射击:《CS:GO》的命中判定
- 策略游戏:《文明6》的回合同步
P2P
是一种网络架构和通信模式,在这种模式中,网络中的节点(即对等体,Peer)地位平等,既可以作为客户端向其他节点请求资源或服务,也可以作为服务器为其他节点提供资源和服务,不存在中心服务器来进行集中管理和控制。每个节点都具有相同的功能和地位,它们通过直接互联形成一个分布式的网络结构,共同完成网络中的任务,如数据传输、资源共享等
核心特征
- 去中心化:节点间直接通信
- 数据自治:每个节点维护游戏状态
- NAT穿透:需要STUN/TURN服务器辅助
应用场景
- 本地联机:《胡闹厨房》的Switch本地多人模式
- 语音聊天:《Discord》的P2P语音传输
- 文件共享:游戏模组分发
C/s与p2p对比
特性 | C/S架构 | P2P架构 |
---|---|---|
部署成本 | 需要中心服务器 | 无中心节点 |
延迟特性 | 依赖服务器位置 | 节点间直连 |
数据权威 | 服务端为真理源 | 节点自主验证 |
典型游戏 | MMO、吃鸡类 | 局域网联机游戏 |
数据通信模型
1. 传输层协议
特性 | TCP | UDP |
---|---|---|
连接方式 | 面向连接(三次握手) | 无连接 |
可靠性 | 数据重传确认机制 | 尽力交付 |
排序保证 | 严格数据包顺序 | 不保证顺序 |
头部开销 | 20-60字节 | 8字节 |
典型应用 | 文件传输、网页浏览 | 实时音视频、游戏同步 |
2. 游戏通信特殊需求
- 延迟敏感:FPS游戏要求<100ms延迟
- 带宽优化:MOBA游戏需控制在5-10KB/s
- 容错机制:采用UDP时需实现自定义重传
- 安全防护:防作弊包篡改(HMAC验证)
三、游戏网络架构演进
1. 经典架构对比
类型 | 帧同步 | 状态同步 |
---|---|---|
传输内容 | 操作指令(按键序列) | 游戏对象状态(坐标/血量) |
带宽消耗 | 低(每秒2-4KB) | 高(每秒10-50KB) |
开发难度 | 逻辑一致性调试复杂 | 状态同步策略设计复杂 |
适用类型 | 格斗游戏、RTS | MMO、开放世界 |
2. 现代混合架构

核心组件:
- 会话服务器:处理登录匹配(HTTP/1.1)
- 战场服务器:实时战斗逻辑(自定义UDP协议)
- 观战服务器:数据镜像转发(WebSocket)
- 同步中间件:KCP/QUIC协议优化