分布式系统中的通信问题ppt课件.ppt

上传人:牧羊曲112 文档编号:1316042 上传时间:2022-11-08 格式:PPT 页数:70 大小:441.50KB
返回 下载 相关 举报
分布式系统中的通信问题ppt课件.ppt_第1页
第1页 / 共70页
分布式系统中的通信问题ppt课件.ppt_第2页
第2页 / 共70页
分布式系统中的通信问题ppt课件.ppt_第3页
第3页 / 共70页
分布式系统中的通信问题ppt课件.ppt_第4页
第4页 / 共70页
分布式系统中的通信问题ppt课件.ppt_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《分布式系统中的通信问题ppt课件.ppt》由会员分享,可在线阅读,更多相关《分布式系统中的通信问题ppt课件.ppt(70页珍藏版)》请在三一办公上搜索。

1、第9章 分布式系统中的通信问题,进程间通信机制 基于共享内存(生产者-消费者,信号量) 基于消息传递分布式系统和单处理机系统的最重要区别: 进程间通信,通信进程:双方必须持有协议客户服务器模型消息交换机制远程过程调用(RPC)组进程通信,9.1 概述,分布式系统中的通信问题,应考虑以下方面:发送策略:如何通过网络发送消息连接策略:如何连接彼此通信的进程争夺处理:发现并解决冲突要求和冲突现象保密:消息内容的保密通信机制,发送策略,固定发送 事先规定好信道(最短信道),不再更改,物理信道一条/多条,虚拟线路 信道在一段时间内固定,可选不同信道,动态发送 在消息发送时确定信道(自动进行选择),连接策

2、略,线路转换 建立永久性物理通信链路,通信期间其他进程不能用(例子:电话系统),消息转换 确定临时性物理通信链路,供消息传递期间使用 消息+系统信息,发送策略,消息包转换 逻辑消息(变长消息)-定长消息,即消息包 消息包到达-拼装消息,争夺处理,冲突检测 传递消息前,监测通信线路是否空闲 若空闲,则可发送,否则等待并继续监测,问题: 系统性能衰减应用:以太网系统,一条通信链路连接多个节点,产生争夺现象,争夺处理,令牌传递 令牌:一个特殊的消息类型,不停地在系统(环形结构)中循环 要传递消息的节点必须拿到令牌,才能传递消息,问题: 令牌丢失(由系统发现,产生新的令牌)应用:Priment系统,争

3、夺处理,消息槽 消息槽:存放定长的消息和有关控制信息 若干定长的消息槽连续不断地在系统中循环,要传递消息地节点必须等到一个空消息槽到达,才可将消息插入并附上适当的控制消息,消息槽继续在网络中流动,到达某一节点时,查看控制信息,确定是否由发给它的消息,应用:剑桥数字通信环,保密,编码 编码,译码,消息传递远程过程调用,基本通信机制,9.2 分层协议(1),协议:规定通信如何进行的一系列规则,控制传送信息的格式、内容及含义,分层协议(2),各个层次:应该用多少伏特电位表示0,多少伏特表示1呢?接收者如何知道哪一位是消息的终止位?如何检测一个消息是否已被损坏或丢失,或者已被损坏或丢失时又该怎样做?数

4、字,字符串,以及其它数据项应该占用多少比特,如何表示它们低层:比特传输高层:信息表示,分层协议(2),国际标准化组织(ISO)开发的一个参考模型开放系统互联参考模型(OSI)定义了通信涉及的问题: 层次,名称,功能,分层协议(3),OSI模型区别两种不同类型的协议:面向连接的协议 发送者和接收者首先建立显式连接,然后交换数据无连接的协议 一旦发送者准备好消息就可发送,OSI分层协议,分层协议(6),每一层处理通信的一个方面的问题(复杂问题分解)每一层为上一层提供接口(一组操作,定义了该层向用户提供的服务)每一层的协议可以改变,但不会影响其他各层,发送到网络上的消息格式,物理层,负责物理传输,即

5、二进制信息流主要有:网络的物理结构关于使用介质(不是介质本身)的机械的和电气的精确描述位传输的编码和定时,数据链路层(1),负责差错处理,数据集合成“帧”,并监视每一帧是否被正确接收由帧形成一个校验和,该校验和附加到帧上当帧到达时,重新计算校验和,并原校验和进行比较如果一致,接受帧;如果不一致,要求重传该帧,数据链路层(2),发送和接收之间的协商信息 请求与回答信息典型的消息头包括:“请重传消息n”,“我已经重传它了”,“不,你还没有”,“是的,我已经做了”,“好吧,不管怎样,请再传送一次”等等。,网络层,消息从发送者到接收者,经过许多交换点,在每一交换点要选择输出线选择最优路径的问题称为“路

6、由”,这是网络层要解决的主要问题,两个网络层协议(1),面向连接的协议:X.25 多用于公共网络中,如电话网和欧洲的PTT网先发送Call Request消息给目的方如果连接请求被接受,发起连接的一方将收到一个连接标识建立一条从发送到接收的连接路径,并在以后的传输中使用该路径,两个网络层协议(2),无连接的协议:IP 美国国防部协议包的一部分一个IP包(网络层对消息的称呼)可以不经过建立连接就被传输每个IP包有独立的路由,没有固定的中间路径和连接标记,传输层(1),提供可靠的服务,即会话层传给传送层的消息能被正确的发送,而不丢失将消息分成包,每个包一个序列号,然后发送协商信息主要是指出哪个包已

7、接收,哪个包已发送,还有多少空间可以接收消息,等等,传输层(2),传送层软件保证一个连接按照被放入的顺序,正确的传送出来DoD传送协议称为TCP(传输控制协议Transmission Control Protocol)TCP/IP广泛应用于UNIX系统、网络、 Internet中,会话层,是传送层的增强版它提供了对话控制,来跟踪现在讲话的是哪一方同时它也提供了同步机制,表示层,着重于比特流的含义可以定义记录的各域,然后让发送者通知接收者该消息包含了特定记录机器之间可通过不同的中间表示形式进行通信,应用层,是各种各样协议的组合,这些协议处理不同实际应用如电子邮件,文件传输,以及与远程终端建立连接

8、,9.3 客户服务器模型,问题的提出: 协议的开销:消息处理的开销OSI模型的局限:没有描述如何构建一个分布式系统广域网与局域网,客户服务器模型(1),基本思想: 将操作系统构造成一组协同工作的进程:服务器 服务器向用户提供服务:客户 客户机和服务器机运行同样的微内核 客户进程和服务器进程:用户进程,客户服务器模型(2),基于简单的、无连接的“请求/应答”协议 客户发送一个请求消息给服务器,请求服务;服务器完成后将结果返回给客户(数据或出错代码)优点:简单、高效,客户服务器模型(3),客户服务器模型(4),内核提供的通信服务:两个系统调用 发送消息,接收消息C/S模型设计上的四个问题: 寻址、

9、阻塞、缓冲、可靠性,寻址问题(1),客户为了能向服务器发消息,必须知道该服务器的地址包括:机器.进程寻址广播进程寻址名字服务器寻址,内核,客户机,内核,服务器,199,12,243,0,1,2,在C/S模型下的机器进程寻址处理,1. 发给243.0 的请求,2. 给199.12的回答,内核,客户机,内核,服务器,199,12,243,0,3,4,在C/S模型下的广播寻址处理,1. 广播:“X服务器在哪里”,2.服务器:X地址在243.0,1,1,2,3. 发给243.0 的请求,4. 给199.12的回答,内核,S,243,0,3,4,在C/S模型下基于名字服务器的寻址处理,1. 广播:“X服

10、务器在哪里”,2.服务器:X地址在243.0,3. 发给243.0 的请求,4. 给199.12的回答,内核,C,199,12,内核,NS,115,0,1,2,名字服务器,寻址问题(2),机器进程寻址:不透明广播进程寻址:给系统带来额外负担 (用Caching解决)名字服务器寻址:需要中央控制机制 (用名字服务器复制方法解决,带来不一致性问题),寻址问题(3),特殊硬件解决途径:网卡存储本机各进程标识每帧经过时,网卡检查该帧的目标进程是否是本机上的进程。 如果是,就接收该帧,否则,什么都不做,阻塞与非阻塞原语(同步原语与异步原语),其主要区别在于: 发送者是否能在重新获得控制后立即使用消息缓冲

11、区,阻塞Send :消息在进程地址空间,1消息放在缓冲区2调用Send,进程阻塞3消息从缓冲区传走4进程唤醒,进程地址空间,缓冲区,核心地址空间,阻塞Send :消息在核心地址空间,1消息放在缓冲区2调用Send,进程阻塞3消息拷贝到核心缓冲区, 进程唤醒4消息传走,进程地址空间,缓冲区,核心地址空间,无阻塞Send,1消息放在缓冲区2调用Send,进程继续执行3消息传走4向进程发中断, 表示可以重用缓冲区,进程地址空间,缓冲区,核心地址空间,阻塞Receive:,1调用Receive2如果有消息, 则拷贝到进程地址空间3如果没有消息, 进程阻塞, 直到消息到达,进程地址空间,缓冲区,核心地址

12、空间,无阻塞Receive:,1调用Receive2如果有消息, 则拷贝到进程地址空间3如果没有消息, 进程继续执行4进程检查消息是否到达,进程地址空间,缓冲区,核心地址空间,Send,阻塞且无消息拷贝阻塞且有消息拷贝: 额外消息拷贝,降低性能无阻塞: 快速,但程序感知,负担重,Receive,阻塞: 避免检查消息到达无阻塞,“时延”问题,缓冲和非缓冲原语,内核,客户机,内核,无缓冲原语,在客户机发送前,服务器作接收,服务器,缓冲原语,消息发给信箱,服务器从信箱接收,可靠和不可靠原语不可靠Send接收方发确认消息应答消息作为确认消息,内核,客户机,内核,服务器,1.请求,2.回答,不可靠原语,

13、请求或回答会丢失,恢复必须在C/S级进行,内核,客户机,内核,服务器,1.请求,3.回答,可靠原语: 对请求和回答的ACK,请求和回答是ACK的: 超时和重传用于恢复丢失的消息,2. ACK,4. ACK,内核,客户机,内核,服务器,1.请求,2.回答,可靠原语: ACK请求回答,回答作为对请求的ACK,3. ACK,总结:客户服务器模型的实现,9.4 远程过程调用(RPC),将单机环境下的过程调用延伸到分布式系统环境出自一篇博士论文 B.J.NelsonISO将RPC作为计算机网络、分布式计算机系统的国际标准化草案一种信息交换的标准规程,单机环境下的过程调用,远程过程调用(Remote Pr

14、ocedure Call),指用户可以向调用本地过程一样调用不同地域的不同计算机上的过程,从而使得应用程序设计人员不必设计和开发有关发送和接收信息的实现细节,远程过程调用(RPC),机器A,机器B,Read(f,&buff),进程挂起,过程执行,远程过程调用(RPC),对调用者透明: 被调用过程是在远程机器上执行,透明性是通过在客户端插入一个称为client stub,在服务器端插入一个称为server stub完成的,远程过程调用通信模型,远程过程调用的结构,RPC机制组成,Stub 客户、服务器各一个binding 使客户能定位到相应的服务器控制部分:为跟踪RPC的调用状态设置传送部分:确

15、定如何将信息从一个节点传送到另一个节点,一个远程过程调用要进行下列步骤:,1.客户程序按照通常的调用方式,调用client stub2.client stub创建一个消息,并中断进入内核3.内核发送该消息给远端的内核4.远端内核将该消息传递给server stub5.server stub从消息中获得参数,并调用服务器程序,一个远程过程调用要进行下列步骤:,6.服务程序完成工作,将结果返给server stub7.server stub将结果打包进一个消息,并中断进入内核8.远端内核将消息发送回客户方内核9.客户方内核将消息传递给client stub10.client stub取出结果,返回

16、给客户程序,远程过程调用通信模型,远程过程调用实现所考虑的问题,Stub程序设计 帮助用户RPC的细节,使用户像调用本地过程那样调用远程过程binding问题 使客户能定位到相应的服务器可靠性问题:为跟踪RPC的调用状态设置参数传递问题:如何在不同机器之间正确有效地传递参数,9.5 组通信,问题的提出 RPC不能处理:一 到 多即一个发送者,多个接收者的通信问题,9.5 .1 组通信概述,组:进程的集合,按某种方式一起工作特性:当某个消息发送到该组时,组内的所有成员都将接收到该消息组是动态的 创建、撤消,进程入组、出组一个进程入多个组,9.5 .2 与设计有关的问题,闭合分组和开放分组对等分组和层次分组组成员问题组编址发送和接收原语原子性消息序列组重叠可扩展性,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号