分布式系统之通信

上传人:wuxin****2020 文档编号:245261750 上传时间:2024-10-08 格式:PPT 页数:31 大小:219KB
返回 下载 相关 举报
分布式系统之通信_第1页
第1页 / 共31页
分布式系统之通信_第2页
第2页 / 共31页
分布式系统之通信_第3页
第3页 / 共31页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,通信(2),四、面向消息的通信,主机通过网络相连的通信系统的一般组织结构,1、通信的持久性和同步性,持久通信:需要传输的消息在提交之后由通信系统的来存储,直到将其交付给接受者为止。,典型的例子:电子邮件系统、手机短消息系统。,暂时通信:通信系统只在发送和接收消息的应用程序运行期间存储消息。,驿马快递时代的持久通信,同步和异步通信,异步通信:发送者把要发送的消息提交之后继续执行其他程序。,*,必须有缓冲区存储消息,同步通信:发送者提交消息后要被阻塞,直到消息送达或处理完毕后解除阻塞。,*,不同程度的同步:,基于接收,基于交付,基于响应,在实际系统中,持久通信、暂时通信与同步通信、异步通信是可以组合的。,a,持久异步通信,b,持久同步通信,问题:消息存储在什么地方?,谁返回接收确认?,电子邮件与手机短信属于这种通信吗?,c,暂时异步通信,d,基于接收的暂时同步通信,e,基于交付的暂时同步通信,f,基于响应的暂时同步通信,2、面向消息的暂时通信,典型例子:,Berkeley,套接字,套接字:一种通信端点,一种网络编程模型,基于特定的传输层协议。一般作为操作系统的网络组件。,应用程序通过套接字发送和接收网络数据,套接字控制低层网络通信。,Primitive,Meaning,Socket,Create a new communication endpoint,Bind,Attach a local address to a socket,Listen,Announce willingness to accept connections,Accept,Block caller until a connection request arrives,Connect,Actively attempt to establish a connection,Send,Send some data over the connection,Receive,Receive some data over the connection,Close,Release the connection,TCP/IP,套接字原语,使用套接字实现的面向连接的通信模型,为什么这是个同步点?,消息传递接口(,MPI),随着高性能多计算机系统的出现,套接字变得不再适用:,所在的抽象层不对,基于通用的协议栈(,TCP/IP),,不适用于高速网络的专用协议,MPI(message-passing interface):,专为并行应用程序设计,也是典型的暂时通信。,原语,含义,MPI_bsend,将消息送入本地发送缓冲区中,MPI_send,发送消息,并等待消息复制到本地或远程缓冲区为止,MPI_ssend,发送消息,并等待对方开始接收消息为止,MPI_sendrecv,发送消息,并等待收到对方应答,MPI_isend,传递消息引用,随后继续执行,MPI_issend,传递消息引用,并等待对方接收,MPI_recv,接收消息,如果没有消息则阻塞,MPI_irecv,检查是否有输入消息,但不阻塞,MPI,中一些最直观的消息传递原语,3、面向消息的持久通信,消息队列系统(,message-queuing system):,又称面向消息的中间件(,message-oriented middleware)。,这类系统的本质是,提供消息的中介存储能力。应用程序可以通过在特定队列中中插入消息来进行通信。,消息队列系统的重要特征:通常只能确保消息最终能够插入到接收者的队列中,并不保证消息到达的时间,甚至不保证消息一定会收到。,使用队列的松散耦合通信的4中组合方式,消息队列模型,消息内容:可以包含任何数据,发送目标:编址,编址方式:在实际系统中,消息的编址是通过给出目的消息队列的名字来实现的。,消息队列系统中队列的基本接口,原语,说明,Put,将消息追加到制定队列。非阻塞性的。,Get,如果队列为空,阻塞至队列非空,否则取出队列的第一个消息。,Poll,检查指定队列,取出第一个消息。非阻塞性的。,Notify,注册一个处理程序(回调函数),当有消息进入指定队列时调用该处理程序。,消息队列系统的一般结构,在消息队列系统中,消息只能放入发送者本地队列。同样消息的读取也只能是从本地读取。这种本地队列称为源队列。,对整个系统来说,所有队列的集合是分布在多台机器上的。所以,必须有一个队列到其网络位置之间的映射,类似于,DNS。,队列级地址与网络级地址的关系,问题:网络级地址是指什么?,队列由队列管理器来管理。,一般来说,队列管理器与发送和接收程序进行交互。,在复杂的消息队列系统中,有些特殊的队列管理器发挥了路由器或者中继器的作用,它们将输入的消息转发给其他队列管理器。,含有消息路由器的消息队列系统的一般组织结构,五、面向流的通信,1、流(,stream),目前为止,我们讨论的通信:,对,独立且完整,的信息单元进行交换。,典型特征是它并不在乎通信在哪个确切时间发生。,例如:邮件、,QQ,消息、手机短信,在某些通信中,同步有着至关重要的地位,音频流,的传输,视频流的传输,对时间敏感,数据流,数据流:数据单元的系列,离散数据流。例如:命名管道与,TCP/IP,连接,连续数据流。音频与视频,流一般可以看作信源和信宿之间的虚拟连接,连续数据流:对时间敏感,同步至关重要。,三种传输模式:,异步传输模式:数据逐项传输,但对具体项在何时传输没有限制。适用于离散数据流。,同步传输模式:数据流中每个单元都定义了端到端最大延迟时间。,等时传输模式:数据单元端到端延迟必须同时严格受上限和下限限制。,从复杂程度上分,简单流:只包含单个数据序列,复杂流:由若干个相关的简单流,子流(,substream),构成,流分类,从参与通信者分,单个信源和信宿,多方通信:即多个信宿连接到单个流上,称为多播或者组播,思考:因特网电影点播属于什么类型流?,流对多个接收者进行组播,2、流同步,离散数据流与连续数据流之间的同步。,连续数据流之间的同步。,在数据单元层次上实现同步。,提供专门的中间件接口控制音频流和视频流。,多个流合并成单个流。,在数据单元层次上显式同步,通过高级接口进行同步,作业,手机短消息和,QQ,即时文件传输属于持久通信还是暂时通信,是同步通信还是异步通信?为什么?,通过,网络发送消息时,消息级地址和网络级地址是否同时在网络数据包中?如果是,它们是否有顺序关系,?,当你使用网上,VOD,看电影的时候,如果画面中人物的口型与声音说话的内容不一致,或者字幕与说话内容不一致时,是什么原因?从分布式系统的角度怎么解决?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!