分布式通信课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《分布式通信课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 分布式 通信 课件
- 资源描述:
-
1、2022-12-1分布式通信分布式通信分布式通信分布式通信主要内容主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信分布式通信主要内容主要内容2.1 通信基础通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信分布式通信2.1 通信基础通信基础l开放式系统:使用标准化规则与其它开放系统通信的系统 l协议:进程间通信所必须遵循的规则,消息的格式、内容和意义l协议
2、的种类面向连接、非面向连接l分层协议ISO OSI参考模型Internet分布式通信OSI参考模型分层协议参考模型分层协议进程A进程B分布式通信The Internet 协议协议NetworkIPTCP UDPApplicationTransportDatagramsMessages(UDP)Streams(TCP)分布式通信典型消息结构典型消息结构分布式通信网络技术的发展(网络技术的发展(1)l分组交换协议Dr.L.Kleinrock(MIT),1962lTCP/IP协议R.Kahn(MIT,ARPA),V,Cerf(UCB,Stanford),IEEE通信974lCDMA协议与Ethern
3、etDr.B.Metcalfe(HU,MIT,PARC),19733COM,以太网适配器分布式通信网络技术的发展(网络技术的发展(2)lARPANET与InternetIPTO,Dr.J.Licklider(1960),Dr.B.Taylor(1966)Dr.L.Roberts(MIT),BBN公司ARPANET(1969,UCB,SRI)lStanford校园网与LANL.Bosack,S.Lerner(Stanford),1980-1983Cisco(1984),Cisco路由器分布式通信ATM网络技术网络技术l分组交换、线路交换和信元交换l信元(cell):小的、定长的单元l信元交换:同
4、时支持点到点(point-point)和多播(multicast)功能分布式通信ATM参考模型参考模型l物理层:SONETOC-1(51.8M),OC-3c(155M)lATM层:信元传输和路由l适配层:VBR,CBR上面各层适配层ATM层物理层分布式通信信元头格式信元头格式分布式通信ATM交换网络及交换机内部构造交换网络及交换机内部构造分布式通信主要内容主要内容2.1 通信基础2.2 客户客户/服务器模型服务器模型2.3 套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信分布式通信2.2 客户客户/服务器模型服务器模型v
5、 服务器:为用户提供服务的一组协同进程v 客户:代理用户分布式通信客户客户/服务器服务器(1-1)ServerClientClientinvocationresultServerinvocationresult分布式通信客户客户-服务器交互服务器交互(I)Remote procedure call分布式通信客户客户-服务器交互服务器交互(II)多层结构分布式通信客户客户-服务器交互服务器交互(III)异步 remote procedure call分布式通信客户客户/服务器服务器(1-N)分布式通信Example:Web proxy server分布式通信客户客户-服务器交互服务器交互(IV)
6、分布式通信Peer-to-Peer 合作合作分布式通信Mobile Code Example:Applet分布式通信瘦客户瘦客户ThinClientApplicationProcessNetwork computer or PCCompute servernetwork分布式通信消息格式消息格式struct message long source;/*发送者标识发送者标识*/long dest;/*接受者标识接受者标识*/long opcode;/*操作码:读、写、创建、删除操作码:读、写、创建、删除*/long result;/*返回结果代码返回结果代码:成功、失败:成功、失败*/long
7、offset;/*读写位置读写位置*/long count;/*读写计数读写计数*/char filenameMAX_PATH;/*文件名文件名*/char dataBUF_SIZE;/*数据区数据区*/分布式通信服务器程序服务器程序void main(void)struct message m1,m2;/*输入、输出的消息输入、输出的消息*/int r;/*返回的执行结果返回的执行结果*/while(1)receive(FILE_SERVER,&m1);/*等待客户请求等待客户请求*/case(m1.opcode)/*执行请求的操作执行请求的操作*/case READ:r=do_read(&
8、m1,&m2);break;:default:r=E_BAD_OPCODE;m2.result=r;send(m1.source,&m2);/*返回结果返回结果*/分布式通信客户程序客户程序int read(char*file,int position,int nbytes,char*buf)struct message m1;/*消息缓冲区消息缓冲区*/m1.opcode=READ;/*设置参数设置参数*/m1.offset =position;/*读位置读位置*/m1.count =nbytes;/*读长度读长度*/strcpy(&m1.filename,src)/*文件名文件名*/sen
9、d(FILE_SERVER,&m1);/*发送请求发送请求*/receive(CLIENT,&m1);/*等待服务器应答等待服务器应答*/if(m1.result=OK)strcpy(buf,&m1.data);/*置缓冲区置缓冲区*/return(m1.result);/*返回结果返回结果*/分布式通信寻址方式寻址方式(Addressing)1、机器号+本地标识号例:UNIX机器IP地址端口号(port)/*Socket address,internet style.*/struct sockaddr_in short sin_family;/*AF_INET*/u_short sin_po
10、rt;struct in_addr sin_addr;char sin_zero8;分布式通信2、广播定位进程全局唯一标识号分布式通信3、ASCII码进程名名字服务器分布式通信阻塞与非阻塞原语(1)阻塞发送原语 同步原语(2)非阻塞发送原语 异步原语在消息被发送之前,发送者不能修改消息缓冲区 时间时间时间时间分布式通信有缓冲与无缓冲型接收有缓冲与无缓冲型接收l无缓冲区发送比接收先发生?直接丢弃消息暂存“意外”消息l有缓冲区邮箱(mailbox):缓存所有的输入消息“溢出”问题分布式通信可靠的和非可靠的发送和接收可靠的和非可靠的发送和接收l非可靠的收发可能丢失消息由用户负责确认l独立的确认消息内
11、核-内核确认l应答用作请求的确认消息客户内核确认折衷方法l服务器端设置计时器,超时后,发确认消息分布式通信分布式通信实现技术小结实现技术小结项目选择1选择2 选择3寻址机器+进程共享进程地址ASCII名字通过服务器查找阻塞阻塞原语具有拷贝到核的非阻塞 具有中断的非阻塞原语无缓冲,丢弃不期望的消息无缓冲,临时保持不期望的消息邮箱可靠性非可靠请求-应答确认分布式通信客户客户/服务器协议中的包类型服务器协议中的包类型代码包类型来源至说明REQ请求客户服务器客户要求服务REP应答服务器客户服务器对客户的应答ACK确认服务器、客户其他前面的包已到达AYA你在这里吗?客户服务器查看服务器是否崩溃IAA我在
12、这里服务器客户服务器没有崩溃TA再试一次?服务器客户服务器没有空间AU地址未知服务器客户没有进程在使用此地址分布式通信包交换举例包交换举例分布式通信主要内容主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字套接字socket 2.4 远程过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信分布式通信2.3 套接字套接字socket socket通信的基本原理 socket通信的工作过程分布式通信l 一个socket在逻辑上有三个特征(三要素):网域类型规程分布式通信l网域:表明一个socket用于哪一种网络或说哪一族网络规程。各种网络对节点地址
13、的命名方法不同,又称“地址族”或“规程族”。AF_INET表示Internet网插口,故各节点使用IP地址。AF_IPX为Novell的IPX网插口,AF_X25为X.25网插口,等等。其中的特殊,不走网络而在同 一 台 计 算 机 上 用 于 进 程 通 信,B S D 称 为A F _ U N I X,在 P O S I X 标 准 里 定 义 了 一 种AF_LOCAL域名。分布式通信l类型:表明网络中通信所遵循的模式“面向连接”:又叫“虚电路”模式,通信双方先要在互相之间建立起一种虚拟连接(线路),再通过虚拟线路进行通信。在通信过程中,所有报文传递保持原来次序,所以,报文之间是有关联的
14、,每个报文都不是孤立的。在这种模式中,所有报文的传递都是可靠的,由网络中物理线路引入差错控制来保证。“无连接”:事先不必建立虚线路,直接可发送和接收报文。但报文是孤立的,正确性没有保证,甚至可能丢失。由于网络延迟或路径不同,接收端收到报文的次序可能与发送端发送报文的次序不一样。这种模式传递的报文是不可靠的,无保证的。也没有“流量控制”手段,进程从系统调用返回时仅表明该socket会把报文发送去,并不表明报文已到达了接收方的socket。分布式通信l规程:表明具体网络规程。一般来说,网域与类型结合作一起就大体上决定了规程。如网域为AF_INET,而类型为“无连接”,则规程大致为UDP了。但有时,
15、还会有其他选择。分布式通信Berkeley Sockets APIlSocket primitives for TCP/IP.PrimitiveMeaningSocketCreate a new communication endpointBindAttach a local address to a socketListenAnnounce willingness to accept connectionsAcceptBlock caller until a connection request arrivesConnectActively attempt to establish a co
16、nnectionSendSend some data over the connectionReceiveReceive some data over the connectionCloseRelease the connection分布式通信基本的基本的socket调用调用recvsendsocketbindlocalhostsockaddr_in()listenacceptpeersockaddr_in()socketconnectrecvsendpeersockaddr_in()SERVERCLIENT分布式通信 服务器方客户方socket()建立数据报式套接字,返回套接字号socket
17、()建立数据报式套接字,返回套接字号bind()把套接字s与本地地址相连接bind()把套接字s与本地地址相连接recvfrom()/sendto()在s上读写数据,直至结束recvfrom()/sendto()在s上读写数据,直至结束closesocket()关闭套接字,服务结束closesocket()关闭套接字,结束对话无连接协议的套接字调用时序分布式通信 面向连接的套接字调用时序accept()接收连接,并得到第二个套接字nsrecev()/send()在ns上读写数据,直到结束Closesocket()关闭套接字s,结束TCP/IP对话服务器方客户方socket()建立流式套接字,返
18、回套接字号sbind()把套接字s与本地地址相连listen()通知TCP/IP,服务器准备好接收连接closesocket()关闭套接字nsclosesocket()关闭最初套接字ssocket()建立流式套接字,返回套接字号sconnect()把套接字s与远程主机相连send()/recev()在ns上读写数据,直到结束建立连接服务请求服务响应分布式通信Berkeley Sockets调用调用 lConnection-oriented communication pattern using sockets.分布式通信数据流数据流(1)lSetting up a stream between
19、 two processes across a network.分布式通信数据流数据流(2)lSetting up a stream directly between two devices.分布式通信数据流数据流(3)lAn example of multicasting a stream to several receivers.分布式通信定义定义 QoS(1)lA flow specification.Characteristics of the InputService Requiredmaximum data unit size(bytes)Token bucket rate(byt
20、es/sec)Toke bucket size(bytes)Maximum transmission rate(bytes/sec)Loss sensitivity(bytes)Loss interval(sec)Burst loss sensitivity(data units)Minimum delay noticed(sec)Maximum delay variation(sec)Quality of guarantee分布式通信定义定义 QoS(2)lThe principle of a token bucket algorithm.分布式通信配置流配置流lThe basic orga
21、nization of RSVP for resource reservation in a distributed system.分布式通信同步机制同步机制(1)lThe principle of explicit synchronization on the level data units.分布式通信同步机制同步机制(2)lThe principle of synchronization as supported by high-level interfaces.2-41分布式通信主要内容主要内容2.1 通信基础2.2 客户/服务器模型2.3 套接字socket 2.4 远程过程调用远程
22、过程调用2.5 Web Service 2.6 消息队列 2.7 分布式对象2.8 组通信分布式通信2.4 远程过程调用远程过程调用l允许程序去调用位于其它机器上的过程 调用者和被调者都不用考虑消息通信l举例:int read(int fd,char*buf,int nbytes);count=read(fd,buf,nbytes);l参数传递call-by-valuecall-by-reference分布式通信传统的过程调用传统的过程调用l本地过程调用中的参数传递:调用读前的堆栈l调用过程激活时的堆栈分布式通信软件层软件层Applications and ServicesRPC and RM
23、Irequest-reply protocolmarshalling and external data representationUDP and TCPmiddlewareRPC is more than a(transport)protocol:a structuring mechanism for distributed systems分布式通信RPC中的调用与消息中的调用与消息 客户机客户存根客户应用客户OS内核本地调用客户打包参数拆包参数返回结果OS内核服务器 本地调用服务存根服务应用服务过程打包参数拆包参数返回结果OS内核网络消息传送12345678910分布式通信RPC执行的主
24、要步骤执行的主要步骤1.客户过程以普通方式调用相应的客户存根。2.客户存根建立消息并激活内核陷阱。3.内核将消息发送到远程内核。4.远程内核将消息送到服务器存根。5.服务器存根取出消息中的参数后调用服务器的过程。6.服务器完成工作后将结果返回至服务器存根。7.服务器存根将它打包并激活内核陷阱。8.远程内核将消息发送至客户内核。9.客户内核将消息交给客户存根。10.客户存根从消息中取出结果返回给客户。分布式通信客户和服务客户和服务StubslPrinciple of RPC between a client&server program.分布式通信异步异步RPC(I)分布式通信异步异步RPC(I
25、I)分布式通信编写编写Client和和Server的步骤的步骤分布式通信RPC编程举例编程举例/*生成RPC程序*/rpcgen FILE_RPC.x=编译结果 /*参数定义*/FILE_RPC_xdr.c /*服务器端程序*/FILE_RPC_svc.c /*server存根*/FILE_RPC_server.c /*服务器模版程序*/*客户端程序*/FILE_RPC_clnt.c /*client存根*/FILE_RPC_client.c /*客户模版程序*/分布式通信RPC申明申明-File_RPC.x#define RPC_ARGSIZE 256#define RPC_RETSIZE
展开阅读全文