网络应用模型描述了应用进程在网络中进行通信时的组织结构。

客户/服务器模型 (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。
    • 用户的出席检测和定位使用集中式服务器。