6-2 客户—服务器方式和对等方式
# 620.6-2 客户—服务器方式和对等方式
本节课我们介绍客户服务器方式和对等方式。
我们知道网络应用程序运行在处于网络边缘的不同端系统上,通过彼此间的通信来共同完成某项任务。因此开发一种新的网络应用,首先要考虑的问题就是网络应用程序,在各种端系统上的组织方式和他们之间的关系。
目前流行的主要有以下两种,一种是客户服务器方式,也称为 C/S 方式,另一种是对等方式,也称为 P2P 方式。
我们首先来看客户服务器方式,客户和服务器是指通信中所涉及的两个应用进程,客户服务器方式所描述的是进程之间服务和被服务的关系。
我们来举例说明,如图所示处于网络边缘的主机 A 中运行的是客户程序,正在运行的客户程序,称为客户进程,也可简称为客户。需要注意的是运行客户进程的主机应称为客户计算机,但有时也简称为客户。处于网络边缘的主机 B 中,运行的是服务器程序,正在运行的服务器程序称为服务器进程,也可简称为服务器。
需要注意的是运行服务器进程的主机应称为服务器计算机,但有时也简称为服务器。
在客户服务器方式下,客户向服务器请求服务,服务器收到服务请求后,向客户提供服务也就是说,客户是服务的请求方,服务器是服务的提供方,服务器总是处于运行状态,并等待客户的服务请求。
服务器具有固定的运输层、端口号,例如 HTTP 服务器的默认端口号为 80,而运行服务器的主机也具有固定的 IP 地址,
C/S 方式是因特网上传统的,同时也是最成熟的方式。很多我们熟悉的网络应用采用的都是 C/S 方式,包括万维网、电子邮件、文件传输等。基于 CS 方式的应用服务,通常是服务集中型的,即应用服务,集中在网络中比客户计算机少得多的服务器计算机上。由于一台服务器计算机要为多个客户机提供服务,在 C/S 应用中常会出现服务器计算机跟不上众多客户机请求的情况。为此,在 C/S 应用中常用计算机群集或服务器场来构建一个强大的虚拟服务器。
我们再来看对等方式,也就是 P2P 方式,在 P2P 方式中没有固定的服务请求者和服务提供者,分布在网络边缘,各端系统中的应用进程是对等的,被称为对等方,对等方相互之间直接通信,每个对等方既是服务的请求者,又是服务的提供者。
我们来举例说明,如图所示处于网络边缘的主机 CDEF 中运行着同一种 P2P 程序,例如某种网络下载工具软件,E 和 F 中的 P2P 进程互为对等方,C和 D 中的 P2P 进程互为对等方,而 E 中的 P2P 进程还和 D 中的 P2P 进程互为对等方。我们可以想象成 E 的 P2P 进程正在从 f 下载文件,与此同时还为 D 的 P2P 进程提供下载服务。
目前在因特网上流行的 P2P 应用,主要包括 P2P 文件共享,即时通信、P2P 流媒体、分布式存储等。基于 P2P 的应用是服务分散型的,因为服务不是集中在少数几个服务器计算机中,而是分散在大量对等计算机中。这些计算机并不为服务提供商所有,而是为个人控制的桌面计算机和笔记本电脑。它们通常位于住宅校园和办公室中。
P2P 方式的最突出特性之一,就是它的可扩展性,因为系统每增加一个对等方,不仅增加的是服务的请求者,同时也增加了服务的提供者。系统性能不会因为规模的增大而降低,P2P 方式具有成本上的优势,因为它通常不需要庞大的服务器设施和服务器带宽,为了降低成本,服务提供商对于将 P2P 方式用于应用的兴趣越来越大。
本节课的内容小结如下: