客户/服务器模型
--------------------------------------------------------------------------------
1、基本概念
n客户/服务器模型是所有网络应用的基础。客户/服务器分别指参与一次通信的两个应用实体,客户方主动地发起通信请求,服务器方被动地等待通信的建立。
2、客户软件
任何一个应用程序当需要进行远程访问时成为客户,这个应用程序也要完成一些本地的计算;
一般运行于用户的个人计算机上;
向服务器主动发起通信请求;
可以访问多个服务器,但一次只能访问一个;
不需要特殊的硬件和复杂的操作系统。
3、服务器软件
是专用的提供某种服务的特权程序,可以同时处理多个远程客户;
一般在系统启动时被执行,并连续运行以处理多次会话;
被动的等待远程客户发起通信;
需要特殊的硬件和复杂的操作系统。
数据在客户和服务器之间是双向流动的,一般是客户发出请求,服务器给出响应。
4、服务器软件的并发性
由于服务器软件要支持多个客户的同时访问,它必须具备并发性。服务器软件为每个新到的客户创建一个进程或线程来处理和这个客户的通信。服务器方传送层实体使用客户的源端口号和服务的端口号来确定正确的服务器软件进程(线程)。
5、服务器软件的组成
服务器软件一般分为两部分:一部分用于接受请求并创建新的进程或线程,另一部分用于处理实际的通信过程。
6、客户/服务器之间使用的传送层协议
可以是基于连接的TCP协议,要求建立和释放连接,适用于可靠的交互过程;
也可以是无连接的UDP协议,适用于可靠性要求不高的或实时的交互过程;
同时使用TCP和UDP的服务,有两种服务器软件的实现或服务器软件同时和TCP、UDP协议交互,不对客户做限制。
7、客户和服务器的交互
1)支持协议:在INTERNET中,客户和服务器的交互通过使用TCP/IP协议栈来完成。因此,客户和服务器所在的机器要求支持完全的协议栈。客户/服务器通过套接字访问传送层服务。
2)多种服务:一台计算机上可以运行多个服务器软件,但是要求计算机有强大的硬件资源(服务器级别的计算机)和多任务操作系统(UNIX和WIN95/98/2000/NT)。
3)服务的标识:客户是通过服务的标识来访问某种服务的,比如在INTERNET中,服务是用端口号来标识,UNIX在/etc/services文件中定义。服务器软件启动时将其标识通知传送层实体。