网络服务器的类型比较
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
网络服务器的类型分析和比较
匡文亚
2010032020015 集成电路设计与集成系统邮箱:1070817439@
摘要:本文介绍了服务器的概念进行详细说明,然后说明了它在现代社会按不同类别的分类,并以循环服务器和并发服务器为例,详细介绍了循环服务器和并发服务器,以及其工作原理和它们的应用范围,最后将它们进行比较。比较从它们的各自的特点,服务器算法,分类,结构进程以及它们的应用场合入手一层一层的分析,最后以一个单进程并发服务器实例为例,说明了它们编程方式和内容以及在现实的应用。
一·网络服务器的类型分析
服务器是一种高性能计算机,作为网络的节点,存储、处理网络上80%的数据、信息,因此也被称为网络的灵魂。做一个形象的比喻:服务器就像是邮局的交换机,而微机、笔记本、PDA、手机等固定或移动的网络终端,就如散落在家庭、各种办公场所、公共场所等处的电话机。我们与外界日常的生活、工作中的电话交流、沟通,必须经过交换机,才能到达目标电话;同样如此,网络终端设备如家庭、企业中的微机上网,获取资讯,与外界沟通、娱乐等,也必须经过服务器,因此也可以说是服务器在“组织”和“领导”这些设备。
服务器发展到今天,适应各种不同功能、不同环境的服务器不断地出现,分类标准也多种多样。按应用层次可以分为入门级服务器,工作组级服务器,部门级服务器,企业级服务器;按服务器的处理器架构划分把服务器分为CISC架构服务器、RISC架构服务器和VLIW架构服务器三种;按服务器按用途划分为通用型服务器和专用型服务器两类;按服务器的机箱结构来划分,可以把服务器划分为“台式服务器”、“机架式服务器”、“机柜式服务器”和“刀片式服务器”四类。本文则讲诉最基本的分类—循环服务器和并发服务器。
(一)循环服务器的工作原理及应用范围
●循环服务器又分为循环面向连接和无连接服务器。循环服务器是最简单的,客户按
照顺序等待。是否能够满足要求取决于所需的反应时间
●观测响应时间:客户发送请求到服务器相应之间的全部时延。
●请求处理时间:服务器处理单个孤立的请求所花费的时间。
●循环服务器一次处理一个请求。如果N代表请求的平均长度,观测响应时间大约是
N/2+1服务请求处理时间
●如果一个服务器设计处理K个客户,每个客户每秒发送R个请求,服务器请求处理
时间必须小于美请求1/KR秒。否则请求队列将溢出。这是设计者必须考虑并发实现(三)并发服务器的工作原理及应用范围
不同于顺序服务器,并发服务器就要能在一个时间为多个客户端提供服务。例如,一个聊天服务器可能服务一个特定的客户端数小时──在停止为这个客户端服务之前服务器不能等待,除非是在等待一下个客户端到来之前的间隙才能等待。
我们将提供服务从守护进程移至它自己的服务进程。然而,因为每个子进程都继承所有打开的文件(套接字被像文件一样处理),新进程不仅继承“accept()返回的句柄,”那是指调用accept返回的套接字;新进程也继承顶级套接字,这是顶级进程一开始打开的套接字。
然而,服务进程不需要这个套接字,应该立即关闭(close)它。同样的,守护进程不再
需要accept()返回的套接字,不仅应该,还必须关闭(close)它──否则,那迟早会耗尽可用的文件描述符。
在服务进程完成服务之后,它将关闭accept()返回的套接字。它不会返回到accept,而是退出进程。
在UNIX®上,一个进程并不真正的退出,而是返回至父进程。典型情况中,父进程等待(wait)子进程,并取得一个返回值。但是,我们的守护进程不能简单的停止或等待,那有违建立其它进程的整个目的。但是如果从不使用wait,它的子进程可能会成为僵尸──不再有功用可仍然徘徊着。
出于那样的原因,守护进程需要在初始化守护进程阶段设置信号处理程序。至少要处理信号SIGCHLD,这样守护进程可以从系统清除僵尸返回值并释放僵尸占用的系统资源。
这是现在我们的流程图包含一个进程信号框的原因,它不与任何其它框相连接。顺便说一句,许多服务器程序也处理SIGHUP,作为超级用户发出的要求重读配置文件的信号。这允许我们不必终止或重启服务器程序就改变设置。
二·网络服务器的类型比较以及实例介绍
1 循环服务器和并发服务器都要分为无连接和面向连接的。
2 循环服务器:每次处理一个客户请求, 处理完一个客户请求后才处理下一个客户请求.
并发性服务器:同时处理多个客户请求.
3循环服务器的特点:每次处理时间都很少;服务器实现简单
并发性服务器的特点:开销少;共享存储器;可以监控;增加了编程的复杂性;必须使用同步机制协调线程对全局变量和一些库程序的访问;必须弄清一些可能影响整个进程的系统函数。
4(1)循环无连接服务器算法
创建套接字并将其绑定到所提供服务的熟知端口上;
重复读取来自客户的请求,构造响应,按照应用协议向客户发回响应。
(2)循环面向连接服务器算法
·创建套接字并将其绑定到它所提供服务的熟知端口上;
将该端口设置为被动模式,使其准备为服务器所用;
从该套接字上接收下一个连接请求,获得该连接的新的套接字;
重复地读取来自客户的请求,构造响应,按照应用协议向客户发回响应;
当某个特定客户完成交互时,关闭连接,并返回步骤3以接受新的连接(3)并发无连接服务器算法
a)主1、创建套接字并将其绑定到所提供服务的熟知地址上。让该套接
字保持为未连接的
b)主2、反复调用recvfrom接收来自客户的下一个请求,创建一个新
的从线程来处理响应
c)从1、从来自主进程的特定请求以及到该套接字的访问开始
d)从2、根据应用协议构造应答,并用sendto将该应答发回给客户
e)从3、退出(即:从线程处理完一个请求后就终止)
(4)并发面向连接服务器算法
a)主1、创建套接字并将其绑定到所提供服务的熟知地址上。让该套接
字保持为面向连接
b)主2、将该端口设置为被动模式
c)主3、反复调用accept以便接收来自客户的下一个连接请求,并创
建新的从线程或者进程来处理响应