文档详情

第3讲 网络程序通信模型.ppt

发布:2017-05-31约1.25万字共44页下载文档
文本预览下载声明
UDP(用户数据报协议) 无连接 提供高效率服务,尽最大努力交付 提供广播或多播服务 缺乏流控制 报文模式 TCP(传输控制协议) 面向连接 验证数据的到达 对未到达的报文段自动重传 计算数据的校验和以保证数据无损坏 使用序号确保数据按序到达并自动忽略重复分组 流量控制 拥塞控制 (1)网络中的并发 网络 A B D C 网络硬件执行一些访问规则,这些规则允许每对通信的机器之间相互交换报文,并且能防止某一对应用程序占用了全部的网络带宽而排斥其他应用进程的通信。 从单个机器来看好像各个应用进程都在独占网络资源 7.客户-服务器软件中的并发 (2)系统内的并发 浏览网页 远程登录 传送文件 从用户观点看,好像所有的客户程序都在同时运行 7.客户-服务器软件中的并发 (3)服务器中的并发 网络 C1 C2 C3 C4 server 多个客户使用服务器的一个熟知协议端口与服务器联系,服务器软件必须在编程中处理好并发请求。 单个客户程序就像普通的程序那样运行,不明显管理并发。 7.客户-服务器软件中的并发 基本概念 并发(concurrency):真正的或表面呈现的同时计算 分时(time sharing):使单个处理器在多个计算任务之间足够快地切换,从表面看这些计算是同时进行的。 多处理(multiprocessing):让多个处理器同时执行多个任务。 7.客户-服务器软件中的并发 基本概念(续) 时间分片(timeslicing):描述多个并发线程共享可用CPU的系统时间的系统。 目的:试图在所有线程间平均分配可用的处理器资源。 方法: 进程间平均 优先级 7.客户-服务器软件中的并发 并发服务器的设计代价 上下文切换(context switch) 当操作系统暂时停止执行某个线程而切换到另一个线程时,会发生上下文切换 代价:使用CPU,在CPU忙于切换时,任何应用线程都不能得到任何服务。 协议软件设计:减少上下文切换次数 引入并发处理的好处 上下文切换的开销 7.客户-服务器软件中的并发 举例:并发和异步I/O 应用程序 等待键盘输入 等待从TCP连接读取数据 等待 问题:程序不知道输入的数据是先从键盘来还是先从TCP连接来! 7.客户-服务器软件中的并发 串行设计 单线程的并发设计 多线程的并发设计 …… 2.客户/服务器模型扩展 1.客户/服务器模型 1. B/S模型 B/S(Browse/Server)模型也叫B/S模式,它是一种基于Web的通信模型,使用HTTP(Hypertext Transfer Protocol,超文本传送协议)通信。B/S是一种特殊的C/S模型,特殊之处就在于这种模型的客户端一般是某种流行的浏览器,例如,微软的Internet Explorer(也叫IE浏览器)等 优点:单台计算机可以访问任何一个Web服务器,不需要针对不同的服务器分别提供专用的客户端软件。 2. P2P模型 P2P是什么? 一种思想 一类应用 Server集中式的服务方式具有的弊端: 资源无法得到充分利用 全球互联的局限 P2P(Peer-to-Peer,对等互联)是近年来比较流行的通信模型之一。在Peer-to-Peer环境中,每个联网的计算机同时运行一个应用程序的Client部分和Sever部分。 一个应用程序既起Server的作用,又起Client的作用。 2.1 一种思想 计算机网络 ? 因特网 Internet 网络的基础结构: 1、集中式:C/S = Client/Server -- 好:管理简单,控制有效 -- 坏:Server瓶颈 2、分布式:Distributed -- 好:无瓶颈,资源充分利用 -- 坏:管理松散,难于控制 ? P2P = 分布式的极端 (since 1956年) 自由 平等 互联 2.2 一类应用 文件共享 媒体播放 数据存储 分布计算等 2.3 P2P评价 优点: 配置容易,通信方便,成本低; 缺点: 知识产权的侵害 网络病毒传播 管理复杂 垃圾信息 * 提问:为什么在编写网络应用程序时要引入客户服务器模型呢? 从应用的观点看,TCP/IP仅仅提供传输数据的基本机制,具体地说,TCP/IP允许程序员在两个应用程序之间建立通信,并来回传递数据,我们称这种通信为对等(peer-to-peer)通信或端到端(end-to-end)通信。这些对等应用程序可以在同一台机器上执行,也可以在不同的机器上执行。 尽管TCP/IP协议规定了数据如何在一对正在进行通信的应用程序间传递,但它并没有解决下面几个(3个)问题: 1)没有规定对等的应用程序在什么时间进行交互? 2)没有规定对等的应用程序为什么要进
显示全部
相似文档