网络应用模型:客户/服务器模型、P2P模型。

6.1 网络应用模型

网络应用模型描述了分布式应用中各实体间的通信模式与资源分配机制,核心可分为客户-服务器(C/S)模型对等(P2P)模型两类。

6.1.1 客户/服务器(C/S)模型

核心特征

  • 角色分化:客户是服务请求方,主动发起通信;服务器是服务提供方,被动接收请求并提供服务。
  • 地址依赖:客户需预先知晓服务器地址(如IP与端口),服务器则无需关注客户地址。
  • 资源差异:服务器通常需要高性能硬件(多核CPU、大容量存储)和稳定操作系统;客户机对硬件要求较低。

通信流程

  1. 客户程序被用户启动后,主动向服务器发起连接请求(如TCP三次握手)。
  2. 服务器程序持续运行,监听特定端口,接收并处理客户请求(如Web服务器解析HTTP请求)。
  3. 通信建立后,双方可双向传输数据(如客户上传文件,服务器返回结果)。

典型应用

  • Web服务(浏览器-Web服务器)
  • 电子邮件(客户端-邮件服务器)
  • 远程登录(SSH客户端-服务器)

架构特点

优点 缺点
集中式管理,安全性高 扩展性瓶颈,受限于服务器性能与带宽
易于维护(升级集中在服务器端) 单点依赖,服务器故障导致整体服务不可用

特例:B/S模型

  • 客户程序简化为浏览器,服务器端整合业务逻辑与数据存储,进一步降低客户机复杂度(如网页版邮箱)。

6.1.2 对等(P2P)模型

核心机制

  • 去中心化:无专用服务器,资源与服务分散在所有对等方中。
  • 直接通信:对等方通过P2P协议(如BitTorrent、Gnutella)直接建立连接,共享本地资源(文件、计算能力等)。
  • 自组织网络:节点动态加入/离开,通过分布式算法(如DHT,分布式哈希表)实现资源发现与路由。

P2P文件分发时间分析

  • 假设:文件长度F,N个对等方,所有节点发送速率为u,接收方需完整接收文件后才能转发。
  • 分发过程
    • 源节点传送给1个对等方,耗时F/u。
    • 源节点与第1个对等方各传送给1个新对等方,共传送2个,累计覆盖3个对等方,耗时F/u。
    • 第n次可同时传送给$2^{n-1}$个对等方,累计覆盖$2^n-1$个对等方。
  • 完成时间:当$2^n-1 \ge N$时,所需次数$n = \lceil \log_2(N+1) \rceil$,总时间为$n \times (F/u) = \lceil \log_2(N+1) \rceil \times (F/u)$。

与C/S模型对比

比较项 C/S模型 P2P模型
服务器依赖 依赖专用服务器 去中心化,无专用服务器
资源利用 服务器统一管理 资源分散在各节点
可扩展性 受限于服务器性能 高,节点越多性能越好
健壮性 单点故障影响全局 单个节点失效不影响整体
网络流量 相对可控 常占互联网50%~90%流量,易造成拥塞

优点

  • 消除了对某个服务器的完全依赖,任务分散到各个结点,提高系统效率和资源利用率。
  • 多个客户机之间可直接共享文档。
  • 可扩展性好,不限制客户机数量。
  • 网络健壮性强,单个结点失效不影响其他部分。

缺点

  • 在获取服务的同时还要提供服务,占用较多内存,影响整机速度。
  • 频繁P2P下载可能对硬盘造成损伤。
  • 流量巨大,常使网络拥塞,ISP通常持反对态度。

例题与习题

例题(2019年40题)
下列关于网络应用模型的叙述中,错误的是(B. 在C/S模型中,客户与客户之间可以直接通信)

  • 在C/S模型中,客户之间不直接通信,所有通信都经过服务器。

习题

  1. 在网络应用模型中,以下哪项不是客户-服务器模型的优点(C. 服务器压力小)
    (C/S模型中服务器承担主要负载,压力大)
  2. 以下哪种网络应用模型在大规模分布式系统中更容易出现单点故障问题(A. 客户-服务器模型)
  3. 关于P2P结构,以下哪一项描述是错误的(A. web、FTP、e-mail等互联网服务采用P2P结构)
    (这些服务主要采用C/S模型)
  4. 使用C/S方式,一台服务器将文件F分发给N个客户,发送速率为v,完成时间 = N × (F/v)(假设串行发送)。
    使用P2P方式,所有节点发送速率为v,完成时间 ≈ ⌈log₂(N+1)⌉ × (F/v)。

笔记结束