网络对于单机系统有着明显的优势,使得应用软件的计算环境从单机向网络不断的发展,产生了两层Cfient/Server、三层Client/Server等两种新型的计算模式,并迅速成为当前主流的应用。现代的应用也不再停留于计算能力有限且资源不能共享的单机式的应用,更多的是分布式的网络集成应用,其主要特点是具有良好的可扩展性与资源可共享性。而这种分布式的网络集成应用需要大规模的可靠的服务器作为后台支撑。网络服务器的本质是一种高性能的计算机,但其作为网中的关键节点,存储并处理着网络上80%的数据与信息。
我们与外界日常的生活、工作中的电话交流,必须经过交换机才能与目标通话。同样,网络中的终端设备如家庭或企业中的计算机获取资讯,与外界交流沟通等,也必须经过服务器,因此可以说是网络服务器在组织和领导着网络中的设备。
1、网络服务器的概念及分类
1.1 网络服务器概念
网络需要管理和开展服务,这就需要特定的主机在网络上承担相应的任务。管理和承担服务的主机就叫做服务器。同样,网络需要通过软件来完成相应的通信与信息处理任务。但是网络服务器与主机不同,主机是通过终端给用户使用的,而服务器是通过网络给客户端用户使用的。
1.2 网络服务器类型分析
在基于服务器的网络中,服务器是网络中的主要设备,主要是用来管理网络系统中共享的资源,包括大容量磁盘,数据文件与高速打印机等。网络服务器可以位于网络中的任意节点,尤其是在局域网中,网络中的每个节点都是相互平等的,因此可以使用网络中的任一台机器作为服务器。在实际的网络搭建中,往往将核心设备服务器放在中心机房,由专业人员进行专门管理与维护。
服务器的分类可以有很多种,根据不通的标准可以有不同的划分,其中根据应用层次的规模可以划分为以下几种:(1)入门级别服务器:属于最低档的服务器,其主要用在办公室的文件与打印服务中。(2)工作组级别服务器:适于规模较小的网络,主要用于为中小企业提供Web与邮件等服务。(3)部门级别服务器:属于中档服务器,适合中型企业的数据中心、web网站等应用。(4)企业级别服务器:属于高档服务器,具有超强的数据处理能力,可作为大型网络数据库服务器。根据结构又可划分为以下几种:(1)台式服务器:这是最传统的结构,台式服务器具有较好的扩展性。(2)机架式服务器:机架式服务器要安装在l9英寸机柜里面,根据高度一般有lU、2U、4U和6U等尺寸规格 (3)刀片式服务器:是一种高密度、高可用的服务器平台,成本低,该服务器设计主要为特殊应用行业与高密度计算机环境服务。(4)机柜式服务器:它飞的机箱是机柜式的,需要在服务器中安装很多的模块式组件。
按服务器的处理器架构划分又可把服务器分为复指令架构服务器、精简指令架构服务器和超长指令架构服务器三种。
网络服务器的类型有文件服务器,打印服务器和应用服务器。
(1)文件服务器
文件服务器是专们用来为网络工作站提供数据文件与程序的。专用的文件服务器并不直接提供可直接运行的应用程序与数据处理的能力给工作站(又称为节点),而是将服务器中共享的应用程序与数据复制到工作站,交由工作站上的处理器进行处理。一台普通的计算机即可作为文件服务器,但使用专用服务器作为文件服务器的传输性能将更好。互联网中能够提供文件传输的就是一种服务器 。
(2)打印服务器
该类服务器主要用于打印服务控制。打印服务器管理着网络中的打印请求,例如把接收到的打印请求存储到打印队列,待打印机空闲时将队列中的打印请求发送到网络打印机上进行打印。局域网中可以没有打印服务器,只需要将打印请求输出到带有打印机的工作站上进行处理即可。但对于打印任务较繁重的网络,一般要专门设置打印服务器用于打印服务器的控制,这样可以提高网络打印的整体效率。
(3)应用服务器
应用服务器的主要任务是协助工作站运行相关应用程序并将运行结果发送到相应的工作站。在基于C/S架构的网络中,应用服务器模式下,工作站就是一台应用服务器的远程终端,控制着网络中的计算机。由于程序只在服务器端运行,客户端只负责发送请求与接收响应请求,因此,客户端机器只需要最基本的配置 这在拥有数目,众多的客户机的网络中,可以大大减少网络运行成本与负载。在网络中,远程登录服务器即是一种应用型的服务器。应用服务器可以有很多种类,因特网中的浏览器与电子邮件的通信等都需要通过建立相关的服务器作为后台支撑,这类服务器就是应用服务器 。
1.3 基本网络服务器分类
服务器可以使循环的,也可以是并发的,可以使用面向连接的或是无连接的传输。因此,服务器可以划分以下四种一般的类型:循环面向连接、循环无连接、并发面向连接、并发无连接。
(1)循环无连接服务器
循环无连接服务器是最常见的无连接服务器的形式,主要应用于要求对每个请求都进行简单处理的服务。循环无连接的服务器是无状态的,易于理解且不易出错。
(2)循环面向连接的服务器
这也是一种相对比较常见的服务器形式,主要使用于需要可靠传输,且要求对每个请求都进行简单处理的服务。由于创建与终止连接需要很大的开销,因此该类服务器响应时间相对较长。
(3)并发无连接服务器
并发无连接服务器并不常见,服务器需要为每个请求任务创建多个进程或线程。因此系统并发所获得的效率是由所创建的进程或者线程的开销决定的。为了证明并发性是可行的,一种方法是创建一个新的进程或线程,且要求时间必须小于计算响应所需要的时间,另一种方法是并发的请求能够同时使用多个输入输出设备。
(4)并发面向连接的服务器
最普通的服务器形式,它不仅提供可靠地传输,还有并发处理多个请求的能力。服务有两个基本的实现方式,一种是使用并发线程或并发进程处理每一个连接,另一种是依靠单线程与异步I/O进行多个连接的处理。
2、网络服务器工作原理及应用范围比较
2.1 循环服务器的工作原理
循环服务器在一个时刻只能处理一个请求,服务的原型可以描述成以下形式:
while(1)
{
new_fd= 服务器接受客户端的连接(new fd= accept(1isnfd,XX,XX));
进行逻辑处理;
在new_fd上向客户端发送消息;
Close new_ fd;
}
此进程是逐个处理每个客户端发送到服务器端的连接的,若一个客户端发来一个连接请求,只要该连接还没有完成响应的任务,该连接就会一直占用服务器的进程,直至任务处理完毕后服务器才会关闭掉这个连接。
2.2 并发服务器的工作原理
并发服务器与循环服务器不同,它需要能在一定的时间内为多个客户端提供服务。例如,一个聊天服务器可能会为一个特定的客户端服务多个小时,在停止该客户端服务之前服务器是不能等待的,除非它是在下一个客户端请求到来之前的间隙时才可以等待。
服务器将提供的服务从守护进程移至自己的进程。由于每一个子进程都可以继承所有打开的文件,新进程不仅需要继承父进程套接字,还要继承顶级套接字。“accept()返回的句柄”是指调用accept函数返回的套接字,顶级套接字是指顶级进程初始打开时的套接字。
然而当服务进程不需要这个套接字时就需要关闭它。守护进程也不再需要程序返回的套接字,也要关闭掉它。否则,文件描述符将因此被耗尽。在服务进程完成任务后,服务器将会关闭accept()返回的套接字socket,最后退出进程。
在UNIX上,进程的退出并不是真正的退出,而是返回到父进程。在特殊情况下,父进程会等待子进程,并获得返回值。但守护进程不是简单的等待或者停止,这样不符合创建进程的目的。但若不使用等待,子进程就有可能成为“僵尸”,一直徘徊着而不再有任何作用。
基于上述原因,守护进程需要在初始化阶段时就进行信号处理的设置。信号SIGCHLD被设置后,守护进程就可以从系统中清除假死进程的返回值所占用的资源。这也是处理流程图中会包含一个进程信号设置过程的原因,它并不与其他过程有联系。此外,很多服务器程序也会处理SIGHUP,将该信号作为超级用户发出的要求配置文件重读的信号。因此服务器不需要重启或终止就能进行信号参数的设置。
2.3 类型比较
循环服务器每次处理时间短,但性能不高。并发服务器开销少,共享存储器,同时可以监控。但增加了编程的复杂性,必须使用同步机制协调线程对全局变量以及一些库程序的访问,还要注意相关可能影响整个进程的系统函数的调用。
另外一种将循环与并发流程结合的服务器性能不错,但结构通常比单纯的并发服务器更复杂。
3、循环与并发服务器算法流程及实例分析
3.1 循环服务器的算法流程
面向连接的循环服务器算法流程:(1)创建套接字并将其绑定到服务器端所提供服务的熟知端口上;(2)设置端口为被动模式,已备为服务器所用;(3)从该套接字中接收下一个服务请求,并获得新连接的套接字;(4)重复接收客户端的请求,根据请求内容,按照应用协议向客户端发出响应;(5)当一个客户端完成请求并完全接收响应后,须关闭连接并返回步骤3以接受新的请求连接。无连接的循环服务器算法流程:(1)创建套接字并将其绑定到服务器端所提供服务的熟知端口上;(2)重复接收客户端的请求,根据请求内容,按照应用协议向客户端发出响应,循环服务器的工作流程如图1所示:
图1 循环服务器流程
3.2 并发服务器的并发流程算法流程
(1)面向连接的比并发服务器
主l、创建套接字并将其绑定到服务器端所提供服务的熟知端口上。保持该套接字为面向连接;主2、设置端口为被动模式;主3、反复调用accept过程用来接收来自客户端的下一个连接请求,同时创建新的进程或线程以便处理服务器响应,从l、由主线程传递来的连接请求开始;从2、使用该连接与客户端进行数据传输;读取请求并及时发回响应;从3、关闭连接并退出。
(2)无连接的并发服务器
主1、创建套接字并将其绑定到服务器端所提供服务的熟知端口上,保持该套接字为无连接状态;主2、反复调用recvfrom过程以便接收来自客户端的下一个请求,同时创建一个新的从线程来处理响应;从l、开始于来自主进程的特定请求和到该套接字的访问;从2、根据应用协议构造响应内容,使用sendto将响应内容返回给客户端;从3、退出。并发服务器的工作流程如图2所示。
图2 并发服务器工程流程
4、总结
近年来计算机技术与网络的迅速发展,网络服务器的重要性日益凸显,特别是“云”概念的提出以后,计算机网络对服务器更加依赖。本文针对现阶段网络中的服务器进行了详细的分析介绍。重点分析循环与并发服务器的工作原理以及工作流程,加深了对网络服务器的理解与认识。未来网络服务器的发展将更加多样化、智能化、规模化与集成化。随着服务器规模的增加,服务器性能的提高,网络终端的成本将得到很大程度的降低,网络通信与维护也将变得更加便捷。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:网络服务器的类型分析和比较