1 / 32
文档名称:

网络编程10服务器网络编程.ppt

格式:ppt   页数:32页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

网络编程10服务器网络编程.ppt

上传人:分享精品 2016/1/24 文件大小:0 KB

下载得到文件列表

网络编程10服务器网络编程.ppt

文档介绍

文档介绍:1服务器网络编程服务器网络编程信息科学与技术学院2服务器软件设计概述?无连接和面向连接的服务器访问?无状态和有状态的服务器应用?循环和并发的服务器的实现?简单服务器的算法:?创建套接字?绑定到一个熟知端口?期望在这个端口上接收请求?进入无限循环,接受客户请求并应答?只适用于最简单的服务…3并发服务器和循环服务器?循环服务器:一个时刻只处理一个请求?并发服务器:一个时刻可以处理多请求?多数只提供表面并发:?执行多个线程,每个线程处理一个请求?使用单线程的可能性:?计算量小,异步I/O, 便于同时使用多个通信信道?并发处理多个请求,而不是指下层是否使用了多个并发线程?循环服务器容易构建,但是性能差;?并发服务器难以构建和设计,但性能好4面向连接和无连接的访问?连接性问题是传输协议的中心,TCP/IP提供了两种协议:TCP, UDP?使用TCP的服务器是面向连接的服务器?使用UDP的服务器是无连接的服务器?选择面向连接或者无连接的服务,依赖于应用协议?设计上使用面向连接的传输服务的应用协议时,如果实际中使用了无连接的传输协议时,将可能不能正确运行或者不能有效运行。5传输协议的语义?TCP的语义?点到点通信?建立可靠连接?可靠交付?具有流控的传输?双工传输?流模式??UDPUDP的语义的语义??多对多通信多对多通信??不可靠服务不可靠服务??缺乏流控制缺乏流控制??报文模式报文模式选择传输协议,需要考虑应用程序要求的语义6面向连接的服务器?面向连接的服务的优点:?易于编程?自动处理分组丢失,分组失序?自动验证数据差错,处理连接状态?面向连接的服务的缺点:?对每个连接都有一个单独的套接字,耗费更多的资源?在空闲的连接上不发送任何分组?始终运行的服务器会因为客户的崩溃,导致无用套接字的过多而耗尽资源7无连接的服务器?优点:没有资源耗尽问题?缺陷:需要自己完成可靠通信问题?必要时,需要一种自适应重传的复杂技术,需要程序员具有相当的专业知识?对于可靠通信的场合,尽量使用tcp?是否需要组播或者广播是考虑选择何种传输方式的一个因素?支持组播或者广播的服务器必须是无连接的,今后这样的应用会不断增加。8有状态和无状态?状态信息:由服务器维护,关于它和客户正进行的交互状态信息?无状态服务器:没有保留任何状态信息?状态服务器:维护状态信息的服务器?服务器维护状态导致编程的复杂性和资源的更多消耗9优化无状态服务器?一个无连接服务器,允许客户从服务器机器磁盘上读出文件?要保持无状态,每个客户请求都必须指定文件名,文件中的位置,读取的字节数?设计服务器的时候,我们注意到:?文件打开和关闭的额外开销较高?使用该服务器的客户请求可能只读十来字节?客户通常按顺序读取文件数据?服务器从内存缓冲区读取数据比磁盘快得多?优化服务器性能维护一个小的文件信息表10优化无状态服务器?使用IP地址和端口号索引?将没有发现的读取数据从磁盘读到内存文件名:X偏移量:512缓存指针:文件名:Y偏移量:1024缓存指针:用于文件X的缓存从512字节开始用于文件Y的缓存从1024字节开始hash(IP addr,port)有关客户使用的文件的信息表