网络应用模型描述了应用进程在网络中进行通信时的组织结构。
客户/服务器模型 (C/S)
Client/Server 模型是一种最常用的网络应用模型。
- 服务器 (Server):
- 总是打开的主机。
- 具有永久的 IP 地址。
- 通常位于数据中心,可扩展为服务器池。
- 客户机 (Client):
- 与服务器通信。
- 可以间歇性连接。
- 可能具有动态 IP 地址。
- 客户机之间不直接通信。 重点
P2P 模型 (Peer-to-Peer)
对等模型中,任意端系统(对等方)之间可以直接通信。
- 特点:
- 无需总是打开的服务器。
- 对等方之间直接通信。
- 高度可扩展性:每个节点既是服务的请求者也是服务的提供者。 重点
- 难以管理:节点间歇性连接,IP 地址经常变动。
- 例子:Gnutella, BitTorrent.
C/S 与 P2P 的对比
| 特性 | 客户/服务器 (C/S) | 对等模型 (P2P) |
|---|---|---|
| 服务器依赖 | 强依赖,服务器必须高可用 | 无需中心服务器 |
| 节点间通信 | 仅通过服务器通信 | 直接通信 |
| 可扩展性 | 随着客户数增加,服务器压力增大 | 随着用户数增加,系统容量自动增加 |
| 管理复杂度 | 较低,集中管理 | 较高,分布式管理 |
混合模型
结合了 C/S 和 P2P 的特点。
- 例子 - Napster:
- 文件传输使用 P2P。
- 文件搜索使用集中式服务器(用户在中心服务器注册内容并查询)。
- 即时讯息 (IM):
- 用户之间的聊天是 P2P。
- 用户的出席检测和定位使用集中式服务器。