Appearance
网络应用模型
考情分析
网络应用模型在 408 中偶尔出选择题,2019 年真题考过 C/S 和 P2P 的特点对比。内容本身不复杂,但容易因为细节表述不严谨而选错,比如"C/S 模型中客户之间能否直接通信"。
考频:★☆☆
C/S 模型(Client/Server)
在客户/服务器模型中,有一个始终运行的服务器,负责响应多个客户的服务请求。
工作流程:
- 服务器持续处于接收请求的状态
- 客户主动发起请求,等待结果
- 服务器收到请求后处理并返回结果
核心特点:
- 服务器始终在线,有固定的 IP 地址
- 客户必须事先知道服务器地址,服务器不需要事先知道客户地址
- 客户之间不直接通信(例如两个浏览器之间不会直接交换数据)
- 可扩展性不佳,服务器容易成为瓶颈
- 管理集中,服务器可通过权限控制来管理客户
典型应用:Web(HTTP)、文件传输(FTP)、电子邮件(SMTP/POP3/IMAP)。
注意:连接建立后,服务器是可以主动向客户发送数据的(比如推送通知、错误消息)。"客户主动发起"说的是建立连接的过程,不是说连接建立后服务器就不能主动发数据了。
P2P 模型(Peer-to-Peer)
在 P2P 模型中,没有专用的中心服务器,每个节点(对等方,Peer)既是客户又是服务器。
核心特点:
- 任意两个节点可以直接通信
- 每个节点访问别人的资源时是客户,为别人提供资源时是服务器
- 可扩展性好,网络容量随节点数量增加而自然增长
- 单个节点失效不影响其他节点,健壮性强
- 缺点:占用较多本机资源(CPU、内存、磁盘 I/O),可能影响本机性能
典型应用:BitTorrent 文件共享。
C/S 与 P2P 对比
| 对比项 | C/S 模型 | P2P 模型 |
|---|---|---|
| 是否有专用服务器 | 有,始终在线 | 没有 |
| 节点角色 | 服务器和客户分工明确 | 每个节点既是客户又是服务器 |
| 通信方式 | 客户只能与服务器通信,客户间不直接通信 | 任意节点可直接通信 |
| 可扩展性 | 较差,受服务器性能限制 | 好,节点越多容量越大 |
| 管理 | 集中管理,易于控制 | 分散管理,难以集中控制 |
| 健壮性 | 服务器故障则服务中断 | 单点故障影响小 |
| 文件分发效率 | 随用户数增加而下降 | 随用户数增加反而可能提升 |
易错点
1. C/S 模型中客户之间不能直接通信
这是 2019 年真题的考点。在 C/S 模型中,所有通信都通过服务器中转,两个客户之间不能直接通信。
2. P2P 模型本质上仍基于 C/S 机制
从实现角度看,P2P 中的每次通信仍然是一方充当客户、另一方充当服务器。P2P 的区别在于没有"固定的"服务器角色,每个节点都可以灵活切换。
3. 连接建立后服务器可以主动发数据
"客户主动、服务器被动"描述的是发起连接的过程。连接一旦建立,服务器可以主动向客户推送数据。
高频考点清单
- C/S 模型中服务器始终在线、有固定 IP
- C/S 模型中客户之间不直接通信
- P2P 模型中每个节点既是客户又是服务器
- P2P 模型可扩展性好、健壮性强
- 向多用户分发文件时,P2P 通常比 C/S 更快