网络程序设计-第一章.ppt
文本预览下载声明
* 3.基于因特网的C/S模式的应用程序的特点 客户机和服务器都是软件进程,C/S模式是网络上通过进程通信建立分布式应用的常用模型。 非对称性:服务器通过网络提供服务,客户机通过网络使用服务,这种不对称性体现在软件结构和工作过程上。 对等性:客户机和服务器必有一套共识的约定,必与以某种应用层协议相联,并且协议必须在通信的两端实现。比如浏览器和3W服务器就都基于HTTP超文本传输协议。 1.3.3 客户机与服务器的特性 * 服务器的被动性:服务器必须先行启动,时刻监听,日夜值守,及时服务,只要有客户机请求,就立即处理并响应,回传信息。但决不主动提供服务。 客户机的主动性:客户机可以随时提出请求,通过网络得到服务,也可以关机走人,一次请求与服务的过程是由客户机首先激发的。 一对多:一个服务器可以为多个客户机服务,客户机也可以打开多个窗口,连接多个服务器。 分布性与共享性:资源在服务器端组织与存储,通过网络分散在多个客户机使用。 1.3.3 客户机与服务器的特性 3.基于因特网的C/S模式的应用程序的特点 * 1.3.4 容易混淆的术语 1.服务器程序与服务器类计算机 服务器(server)这个术语来指那些运行着的服务程序。 服务器类计算机(server-class computer)这一术语来称呼那些运行服务器软件的强大的计算机。 * 图1.10 用户、客户机、服务器、服务器类计算机 2.客户机与用户 “客户机”(client)和服务器都指的是应用进程,即计算机软件。 “用户”(user)指的是使用计算机的人。 1.3.4 容易混淆的术语 * 1.3.5 客户机与服务器的通信过程 客户机与服务器的通信过程一般是这样的: 通信之前,服务器应先行启动,并通知它的下层协议栈做好接收客户机请求的准备,然后被动地等待客户机的通信请求,称服务器处于监听状态。 一般是先由客户机向服务器发送请求,服务器向客户机返回应答。客户机随时可以主动启动通信,向服务器发出连接请求,服务器接收这个请求,建立了二者的通信关系。 客户机与服务器的通信关系一旦建立,客户机和服务器都可发送和接收信息。信息在客户机与服务器之间可以沿任一方向或两个方向传递。在某些情况下,客户机向服务器发送一系列请求,服务器相应地返回一系列应答。 * 1.3.6 网络协议与C/S模式的关系 客户机与服务器作为两个软件实体,它们之间的通信是虚拟的,是概念上的,实际的通信要借助下层的网络协议栈来进行。 网络应用进程与应用层协议间的关系: 为了解决具体应用问题而彼此通信的进程,称为网络应用进程; 应用层协议并不解决任何具体问题,而是规定了网络应用进程通信时必须遵守的约定。 应用层协议在网络应用进程之下,并为网络应用进程服务,帮助应用进程组织数据。 * 1.3.7 错综复杂的C/S交互 在C/S模式中,存在着三种一个与多个的关系: 一个服务器同时为多个客户机服务; 一个用户的计算机上同时运行多个连接不同服务器的客户机; 一个服务器类的计算机同时运行多个服务器。 * 图1.11 一台计算机中的多个服务器被多个计算机的客户机访问 1.3.7 错综复杂的C/S交互 * 1.3.8 服务器如何同时为多个客户机服务 并发性是客户机/服务器交互模式的基础,并发允许多个客户机获得同一种服务,而不必等待服务器完成对上一个请求的处理。这样才能很好地同时为多个客户机提供服务。 * 1.3.8 服务器如何同时为多个客户机服务 图1.12 服务器创建多个线程来为多个客户机服务 * 1.3.9 标识一个特定服务 在一台服务器类的计算机中可以并发地运行多个服务器进程。它们都要借助协议栈来交换信息,协议栈就是多个服务器进程传输数据的公用通道, 这有了一个问题,既然在一个服务器类计算机中运行着多个服务器,如何能让客户机无二义性地指明所希望的服务? * 图1.13 沙漏计时器形状的TCP/IP协议族 1.3.9 标识一个特定服务 * 这个问题由传输协议栈提供的一套机制来解决。 这种机制必须赋给每个服务一个唯一的标识,并要求服务器和客户机都使用这个标识。 当服务器开始执行时,它在本地的协议栈软件中登记,指明它所提供的服务的标识。 当客户机与远程服务器通信时,客户机在提出请求时,通过这个标识来指定所希望的服务。 客户机端机器的传输协议栈软件将该标识传给服务器端机器。 服务器端机器的传输协议栈则根据该标识来决定由哪个服务器程序来处理这个请求。。 1.3.9 标识一个特定服务 * P2P模式 1.4 随着应用规模的不断扩大,软件复杂度不断提高,面对巨大的用户群,单服务器成了性能的瓶颈 ,为了解决这些问题,就出现了P2P技术。 1.4.1 P2P
显示全部