第3讲 网络程序通信模型.ppt
文本预览下载声明
Windows网络编程基础;本讲内容;;1.Motivation;1.Motivation;会聚点问题的解决方案
1)要求下层通信协议在请求报文到达后自动创建运行程序
——底层通讯程序太复杂!
2)要求在任何一对进行通信的应用进程中,有一方必须在启动执行后(无限期)等待对方与其联系。
——客户-服务器模型的解决方案;2.客户和服务器;
服务器端首先启动,并根据请求提供相应的服务。
① 向操作系统发送请求,请求其打开某个周知公认的端口,以便在该端口上提供服务;
② 等待客户请求达到该端口;
③ 接收服务请求,处理该请求并发送应答;
④ 重复②,等待其它用户请求;
⑤ 关闭服务器端口,释放资源; ;客户方主动请求服务器的服务:
① 向操作系统发送请求,请求其打开一个端口,利用该端口请求服务器服务;
② 向服务器发服务请求报文,等待并接收应答;
③ 重复②;
④ 请求结束后关闭端口,释放资源。
说明:
① 客户端与服务器的作用是非对称的,编码不同;
② 服务器进程一般是先于客户请求而启动的。只要系统运行,该服务进程一直存在,直到正常终止或强迫终止。 ;Whois服务器访问过程举例;Whois服务器访问过程举例;C/S结构;客户端与服务器间的通讯情形
;客户端;
C/S结构通信细节
客户与服务器之间的通信是通过分层的协议族实现的,信息流在发送端向下通过协议栈交付给具体的传输媒介,并在接收端向上通过协议栈提交给应用程序。
;4.客户-服务器模型的扩展;5.客户端软件;5.客户端软件;1)服务器的特权和复杂性
特权:访问受操作系统保护的对象(如文件、数据库、设备或协议端口)
考虑:不能将特权传递给使用服务的客户
举例:文件服务器
;代码复杂性——安全问题:
鉴别——验证客户身份
授权——判断某个客户是否被允许访问服务器所提供的服务
数据安全——确保数据不被无意泄漏或损坏
保密——防止未经授权访问信息
保护——确保网络应用程序不能滥用系统资源
代码的复杂性——效率问题
并发处理能力;2)无连接的和面向连接的服务器;面向连接的服务器
优点:易于编程
缺点:资源消耗问题
???连接的服务器
优点:无资源消耗问题
缺点:编程复杂
;选择思路
考虑
客户和服务器间通信的频度
客户和服务器间交换的数据量
UDP
对广播或多播应用程序必须使用UDP;
在可靠的本地环境中运行,不需要额外的可靠性处理;
应用协议指明必须使用UDP;;3)无状态和有状态服务器;举例:无状态文件服务器;举例:有状态文件服务器;使用状态服务器的两个要点;状态信息的维护是一个复杂的问题;UDP(用户数据报协议);TCP(传输控制协议);(1)网络中的并发;(2)系统内的并发;(3)服务器中的并发;基本概念
并发(concurrency):真正的或表面呈现的同时计算
分时(time sharing):使单个处理器在多个计算任务之间足够快地切换,从表面看这些计算是同时进行的。
多处理(multiprocessing):让多个处理器同时执行多个任务。;基本概念(续)
时间分片(timeslicing):描述多个并发线程共享可用CPU的系统时间的系统。
目的:试图在所有线程间平均分配可用的处理器资源。
方法:
进程间平均
优先级;并发服务器的设计代价;举例:并发和异步I/O
;串行设计;;1. B/S模型;2. P2P模型;2.1 一种思想;2.2 一类应用;2.3 P2P评价
显示全部