服务器软件设计的算法和问题

概念性的服务器算法:创建一个socket,将它绑定到一个熟知的port上,并期望在这个port上接收请求,接着进入无限loop,在循环中,服务器接受来自client的下一个请求,处理请求,结构应答,然后将这个应答发回给客户。

Iterative server and concurrent server : iterative server 是在一个时刻只处理一

个请求的一种服务器实现。

       Concurrent server 是在一个时刻可以处理多个请求的一种服务器。一般来说,并发服务器更难设计和构建,其最终代码页更复杂并且难以修改。

       面对连接和无连接服务器:区别就是选择TCP还是UDP的问题。

       因为已经选择了TCP的服务器,所以暂时不介绍UDP服务器问题。TCP服务器有点是容易编程,可靠性在协议上得到保证。

       面向连接服务器缺点:要求对每个连接都有一个单独的socket,而无连接的设计则允许从一个socket上与多个主机通信。最大缺点是TCP在空闲连接上根本不发送任何分组,比如在资源的使用上,服务器拥有分配给改连接的数据接口,包括缓冲空间,并且这些资源不能被重新分配。

 

       四种服务器类型:1.循环的无连接 2.循环的面向连接 3.并发的无连接 4.并发的面向连接。我们选择的是第四种。

       服务器处理时间:request processing time 为服务器处理单个鼓励的请求所花的时间。Observed response time 为客户发送请求至服务器响应直接的全部delay. 很明显,ORT不可能小于RPT。若N代表请求队列的平均长度,对刚刚的请求来说,它的观测响应时间大约是N/2 + 1个服务器请求处理时间。

       一个循环服务器是否够用?假设一个服务器设计能力可以处理K个客户,每个客户每秒发送R个请求,则此服务器的请求处理时间必须小于每请求1/KR秒。

 

       INADDR_ANY绑定熟知端口:bind为了某个套接字知名某个链接端点,它使用了结构sockaddr_in,该结构中含有IP地址和协议端口号。Bind不能只指明协议端口号而不指明IP地址。但是,如果选择指明的IP地址,那该主机只能有一个IP地址和服务器相连接。然而路由器或者多网卡机有多个IP,服务器就没办法得到其他IP的内容了。为了解决这个问题,socket定义了特殊常量INADDR_ANY,它可以代替IP地址,它指明了通配地址(wildcard address),它与该主机的任何一个IP地址都匹配。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值