欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    最新《分布式系统》第三章 网络与通信(共44张PPT课件).pptx

    • 资源ID:24522999       资源大小:290.93KB        全文页数:44页
    • 资源格式: PPTX        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    最新《分布式系统》第三章 网络与通信(共44张PPT课件).pptx

    第三章第三章 网络网络(wnglu)(wnglu)与通信与通信 n网络基础n网络分类n通信标准协议n通信模型n消息(xio xi)传送n远程过程调用1第一页,共四十四页。网络(wnglu)n一组互联的资源n主机(Hosts)运行网络应用软件:-客户/服务器-对等节点n网络基础设施(j ch sh sh)由一组互联的设备构成:n网络节点: 接收/发送、转发、路由选择的主机及软硬件n连接: 传送信息的通道 2第二页,共四十四页。传送传送(chun sn)介质介质n传送字位、字节、或者数据包 n网络延迟:两个节点之间传送一个空数据包所需时间n传输速率:两个节点之间传输数据的速度 (bps)n物理介质:-同轴电缆(tn zhu din ln)-光纤-激光-无线电(微波、卫星、无线局域网等)n传输模式:-点对点-组播-广播3第三页,共四十四页。数据表示方法数据表示方法(fngf)n字位(Bit)-不同的协议采用不同的接口定义-常用于多媒体、音像-需要特殊字位段区分数据流(如帧分隔)n字节(Bytes)-通常为 ASCII 或 Unicode 构成的行文-文档、文字(wnz)页面-字符集中含有各种区分符(文始、文终、回车等)01100001011000111 01110101字位(字位(Bits)字节字节(z ji)(Bytes)00000010 10000000 101000014第四页,共四十四页。基本基本(jbn)数据块数据块: 帧帧n一块(定长)数据称为帧 (frame)-在 开关之间的基本传输单位n帧被用来传输网络节点之间的数据包 (packets ) -帧头n地址 (通常低级协议地址)n控制信息-帧尾n错误校验(xio yn)n帧的长度一般由接口缓冲的大小所限制帧头数据(shj)帧尾帧:5第五页,共四十四页。应用应用(yngyng)数据块:数据包数据块:数据包n携带应用数据和网络寻址信息的数据块称为数据包-介于(ji y)路由器(routers)之间传送的基本数据块 -数据包头含有网络编址和控制信息n数据包一般没有附加信息n理论上,数据包的大小没有限制数据(shj)包头数据数据包:6第六页,共四十四页。网络网络(wnglu)类型类型n主要类型:-LAN, WAN, MAN, WLAN,WPAN,以及Internetn局域网 LAN (Local Area Network):-以太网或局部互联网n广域网 WAN (Wide Area Network) -各种介质和网络设备互联n城市网 MAN (Metropolitan Area Network) -高速(光纤)大城市互联n无线局域网 WLAN(Wireless Local Area Network)-Wi-Fi 短程(dun chn)无线互联n无线个人域网 WPAN(Wireless Personal Area Network)-Bluetooth 个人身边无线互联n互联网 (Internet )-全球互联7第七页,共四十四页。连接连接(linji) LANs 和和 WANs通往其它通往其它LANs通往通往Internet主机一般(ybn)由LAN的开关( switch)相连 连接个数由开关的端口数决定n路由器 (Routers) -连接 LANs-连接 WAN 或 Internet开关(kigun)路由器8第八页,共四十四页。以太网以太网 (Ethernet)n1973年,Xerox PARC公司首次推出以太网。1985年,国际标准化组织对以太网制定了标准(IEEE 802.3) 。 n以太网是以共享总线为媒介采用载波侦听多路访问/碰撞检测(CSMA/CD) 机制来解决对总线的竞争的广播网,基本数据单位是固定格式的数据包(packet)。n一个数据包至少包含64字节至多(zhdu)高达1518字节 目的地地址目的地地址源地址源地址类型类型数据数据校验码校验码6字节6字节2字节46字节长度1500字节4字节9第九页,共四十四页。多路访问多路访问(fngwn)(fngwn)/ /碰撞检测碰撞检测( (CSMA/CD) CSMA/CD) 机机制制 发送最小信息报时间 2甲机乙机n如果某台计算机发现信息包目的地址与自己的地址匹配,则把信息包接收下来; n如果某台计算机试图发送信息而发现此时此刻已经有人占用网络,则暂缓发送以避免冲突;n如果某台计算机已经开始发送,稍后突然发现自己的信息包与别人(birn)的信息包碰撞,则要采取某种策略重发信息包。 10第十页,共四十四页。异步传输异步传输(chun sh)(chun sh)模式模式ATMATM网网 nATM把传输的基本信息单位称作信元(cell) ,采用信元中继(cell relay)技术进行数据交换。n必须首先建立通信的连接。一个(y )连接由一系列的嵌在虚路径(VP:Virtual Path) 的虚通道(VC:Virtual Channel) 组成。一个虚通道VC是对从发送者到接收者的物理信道的一种点对点的逻辑表示,而一条虚路径VP则是介于两个ATM交换机之间的一组虚通道的集合。n一旦建立了连接,ATM就可以保证通信的质量,如网络带宽和网络延迟等,同时亦保证可靠的数据传输。 虚路径虚路径虚通道虚通道标识标识数据数据信元头:5字节信元体:48字节11第十一页,共四十四页。网络协议网络协议n问题:接收者如何知道信息是正确完整的?信息包中的数据是如何编码的?数据的类型是如何标识的?信息包是怎样在网络上中继转发的?数据包是如何编址的? n协议(protocol) 指的是通信双方都必须遵守的一组规则和格式。 n通信协议一般采用分层模型,不同层次上的协议解决一个具体的问题,从低级到高级,逐层提供更透明更一般化更容易使用的通信接口。一组完备的协议通常称为协议栈(protocol stack) 。n最著名的通信协议是国际标准化组织颁布的开放系统互联参考模型(ISO OSI:Open System Interconnection Reference Model),简称(jinchng)为OSI,这个模型由七层的协议栈构成 。12第十二页,共四十四页。OSI: 七层协议七层协议(xiy)高级高级(goj)应用支持工具应用支持工具转化转化(zhunhu)不同环境下的数据表示不同环境下的数据表示应用同步和连接管理应用同步和连接管理传输及纠错传输及纠错网络编址和路由网络编址和路由 连接控制连接控制物理介质、时间、位传输物理介质、时间、位传输网络协议网络协议应用协议应用协议第第1层层 物理层物理层第第2层层 链路层链路层第第3层层 网络层网络层第第4层层 传输层传输层第第5层层 会话层会话层第第6层层 表示层表示层第第7层层 应用层应用层13第十三页,共四十四页。OSI 和和 IETF 协议协议(xiy)之比较之比较第第 5/6/7层层:应用应用(yngyng)TCP, UDPIPPPP, 802.3,5,11, 等等物理层物理层网络协议网络协议应用应用(yngyng)协议协议IETF 模型模型OSI 模型模型第第1层层 物理层物理层第第2层层 链路层链路层第第3层层 网络层网络层第第4层层 传输层传输层第第5层层 会话层会话层第第6层层 表示层表示层第第7层层 应用层应用层逻辑逻辑MACIETF: The Internet Engineering Task Force(常用)(常用)OSI: Open System Interconnection Reference Model14第十四页,共四十四页。协议协议(xiy)数据封装数据封装数据如:TCP 封装如:IP数据包物理层网络层传输层应用层链路层如:Ethernet 帧101011100101T 头数据 N 头数据L 头CRC数据15第十五页,共四十四页。协议协议(xiy)数据流数据流目的地 IP 目的地端口传输协议源 IP源端口传输协议物理网络IPTCPUDPDNS客户Web客户物理网络IPTCPUDPWeb 服务器主机主机 A主机主机 B源 NIC目的地 NICURL16第十六页,共四十四页。通信模型通信模型 消息传送 低级通信(tng xn), 如套接字 非结构化点对点进程间通信 多种通信模式 数据流 连续多媒体数据 实时数据服务 请求-回应 (RPC) 客户/服务器模型 RPC (远程过程调用) RMI (远程方法调用)17第十七页,共四十四页。Message Passing Definitions(1)n基本函数基本函数: 发送、接收、创建、连通、定位、回应、应答发送、接收、创建、连通、定位、回应、应答(yngd) n传递方式传递方式: 点对点、组播、广播点对点、组播、广播 n消息内容消息内容: 数据或指令数据或指令 n通道通道:n- 连接、端口、信箱 n- 单向、双向n- 固定容量缓冲、无限量缓冲n消息接收方式消息接收方式:n显式接收显式接收 接收者可以选择消息n隐式接收隐式接收 接收者必须接受到达的消息两条重要原语:两条重要原语:发送(目的地,消息(xio xi) 接收(发源地,消息) 18第十八页,共四十四页。编址方法编址方法(fngf)(fngf) 发送进程接收进程发送进程发送进程发送进程发送进程发送进程接收进程接收进程接收进程信箱发送进程发送进程接收进程端口(a) 进程名编址(b) 连接编址(c) 信箱编址(d) 端口编址19第十九页,共四十四页。消息(xio xi)通信过程n发送者通过发送原语把消息和接收者名字传递(chund)给系统的通讯模块 n系统通讯模块启动通讯协议把消息送往接收目的地 n目的地系统通讯模块按照通讯协议接收消息 n接收者通过接收原语从系统通讯模块索取消息 20第二十页,共四十四页。发送(f sn)原语语义n非阻塞(zs)发送:一旦信息被发送方系统通讯模块接收,立即释放发送者 n阻塞发送:阻塞发送者,直到整个信息成功地传送到网络上为止 n可靠的阻塞发送:阻塞发送者,直到整个信息成功地存入目的地通讯模块的缓冲为止 n显式阻塞发送:阻塞发送者,直到接收者成功地接收信息为止 21第二十一页,共四十四页。发送语义、系统(xtng)缓冲及可靠性发送语义发送语义发送方系统缓冲发送方系统缓冲消息传送可靠性消息传送可靠性非阻塞发送必要无保证阻塞发送不必要无保证可靠的阻塞发送不必要保证显式阻塞发送不必要保证22第二十二页,共四十四页。(1) 基于系统缓冲的长存异步通信(2) 基于系统缓冲的长存同步通信(4) 基于接收缓冲的暂存同步通信(3) 基于接收缓冲的暂存异步通信 (5) 基于处理回应的暂存同步通信 (4) 基于接收提交的暂存同步通信 系统消息缓冲 系统消息缓冲 六种组合(zh)通信方式 23第二十三页,共四十四页。一个套接字是由网络操作系统所管理的一个进程通信端口 套接字模型试图把网络的发送/接收语义模拟成传统(chuntng)文件系统的输出/输入语义,因而增强计算机网络的透明性 在创建一个套接字的时候,我们还必须确定它将使用的通信协议,目前可选择的协议有两种:TCP或UDP,前者是一个可靠的、面向连接的字符流传输协议;而后者是不可靠的、无连接的数据报传输协议一个套接字包含两方面的信息:一,进程所处计算机的网络地址(即IP地址);二,进程所用的网络端口号 我们就可以通过一个bindbind系统调用把一个进程绑定到一个物理端口上,从而打通一个进程从逻辑到物理的通信通道 套接字程序设计套接字程序设计(chn x sh j)(chn x sh j)24第二十四页,共四十四页。套接字模型套接字模型(mxng)(mxng) 逻辑(lu j)通信端点(LCE: Logical Communication Endpoint) 物理通信端点(PCE:Physical Communication Endpoint) 进程 LCE PCE PCE LCE 进程socket(协议)bind(套接字,IP, 端口)socket(协议)bind(套接字,IP, 端口)计算机网络25第二十五页,共四十四页。TCP/IP套接字系统套接字系统(xtng)(xtng)调用调用函数函数含义含义Socket创建套接字创建套接字 Bind把套接字把套接字绑定绑定( (影射影射) )到网络端口到网络端口 Listen宣布希望接收连接宣布希望接收连接Accept阻塞等待连接请求阻塞等待连接请求Connect主动要求建立连接主动要求建立连接Send发送消息发送消息Receive接收消息接收消息Close释放连接释放连接26第二十六页,共四十四页。TCP/IP套接字程序流程套接字程序流程socket()bind()listen()accept()socket()connect()recv()send()close()send()recv()close()服务器服务器客户客户阻塞等待客户连接处理客户请求处理客户请求创建套接字创建套接字绑定地址和端口绑定地址和端口通知被动等待外来连接通知被动等待外来连接接收连接接收连接向服务器发出连接请求向服务器发出连接请求发送发送/接收消息接收消息释放套接字释放套接字27第二十七页,共四十四页。UDP/IP套接字程序流程套接字程序流程socket()bind()recvfrom()socket()sendto()sendto()recvfrom()close()服务器服务器客户客户阻塞等待客户消息处理客户请求处理客户请求创建套接字创建套接字绑定地址和端口绑定地址和端口等待接收消息等待接收消息请求释放套接字释放套接字回应发送消息发送消息28第二十八页,共四十四页。#include #include #include #include #define PORT_NUM 2222char message20;main() /*进程罗密欧:进程罗密欧: Romeo.c */int romeo,fromlen;struct sockaddr_in romeo_addr, juliet_addr;/ /* * 创建套接字创建套接字 romeo romeo 并填写并填写(tinxi)(tinxi)网络端口信网络端口信息息 * */ / romeo = socket(AF_INET, SOCK_DGRAM, 0); romeo_addr.sin_family = AF_INET;romeo_addr.sin_addr.s_addr = INADDR_ANY;romeo_addr.sin_port = 0;/ /* * 把套接字把套接字 romeo romeo 绑定到网络端口绑定到网络端口 * */ /bind(romeo, (struct sockaddr*)&romeo_addr, sizeof(romeo_addr);/ /* * 生成生成 Juliet Juliet 的网络端口的网络端口juliet_addrjuliet_addr * */ /juliet_addr.sin_family = AF_INET;juliet_addr.sin_addr.s_addr = inet_addr(“xxx.xxx.xxx.xxx”);juliet_addr.sin_port = PORT_NUM; strcpy(message, “Juliet, I love you!”);/ /* * 向向 Juliet Juliet 发送发送(f sn)(f sn)消息消息 * */ /sendto(romeo, message, sizeof(message), 0, (struct sockaddr) &juliet_addr, sizeof(juliet_addr);fromlen = sizeof(juliet_addr);/ /* * 接收来自接收来自 Juliet Juliet 的消息的消息 * */ / recvfrom(romeo, message, sizeof(message), 0,(struct sockaddr) &juliet_addr, &fromlen);printf(“Juliet says: %sn”, message);close(romeo); / /* * 关闭关闭 romeo romeo 套接字套接字 * */ /UDP/IP套接字程序套接字程序(chngx)(chngx)例子例子(1)29第二十九页,共四十四页。UDP/IP套接字程序套接字程序(chngx)(chngx)例子例子(2)#include #include #include #include #define PORT_NUM 2222char message20;main() /* 进程朱丽叶进程朱丽叶: : Juliet.c */int juliet,fromlen;struct sockaddr_in romeo_addr, juliet_addr;/ /* * 创建创建(chungjin)(chungjin)套接字套接字 jeliet jeliet 并填写网络端口并填写网络端口 * */ / juliet = socket(AF_INET, SOCK_DGRAM, 0); juliet_addr.sin_family = AF_INET;juliet_addr.sin_addr.s_addr = INADDR_ANY;juliet_addr.sin_port = PORT_NUM;bind(juliet, (struct sockaddr*)&juliet_addr, sizeof(juliet_addr); fromlen = sizeof(juliet_addr);/ /* * 接收来自接收来自(li z)(li z) Romeo Romeo 的消息的消息 * */ /recvfrom(juliet, message, sizeof(message), 0,(struct sockaddr) &romeo_addr, &fromlen);printf(“Romeo says: %sn”, message);strcpy(message, “Oh, Romeo! I love you too!”);/ /* * 向向 Romeo Romeo 发送消息发送消息 * */ /sendto(juliet, message, sizeof(message), 0, (struct sockaddr) &romeo_addr, sizeof(romeo_addr);close(juliet);30第三十页,共四十四页。请求请求- -回应式通信(远程过程回应式通信(远程过程(guchng)(guchng)调用)调用) 在客户/服务器模型中,客户进程谋取服务的手段是向服务器发出一个服务请求。服务器接到请求后,启动某个过程完成所需的服务,然后向客户返回一个回应。在接到回应之前,客户进程一直等待在那里,即便有的客户进程并不要求(yoqi)服务器返回结果,它也必须等待,以防万一回应是一个出错报告。人们发现这种请求-回应式通信在语义上非常接近传统的局部过程调用(LPC:Local Procedure Call)语义,如果把客户进程当成调用者,把传送的请求当作调用参数,把服务器提供的相应服务当成被调用的过程,把回应当作返回值,则我们可以完全隐蔽消息传送,用一种高级的用户界面实现请求-回应式通信,这个思想便是著名的远程过程调用(RPC: Remote Procedure Call). 31第三十一页,共四十四页。局部过程调用局部过程调用(dioyng)(dioyng)实例实例 main() char cip = “Buubdl!bu!ebxo”; /* ciphercipher*/ int key = 1;/* secret keysecret key */ int len = decrypt(cip, key); /* LPC */ /* other processing other processing */int decrypt(char * s, int key) /* decryption decryption */ int i = 0; while( *s) *s -= key; i+; s+; return i; 栈栈 栈栈cip -Buubdl!bu!ebxolen - ?key - 1 栈栈cip -Attack at dawnlen - 14key - 1Return addressi - 0s - main.cipkey - 1cip -Buubdl!bu!ebxolen - ?key - 1调用(dioyng)后调用(dioyng)前LPC过程调用返回32第三十二页,共四十四页。n按值调用/按指引元调用问题n异构计算机数据内部表示问题(字节排序(pi x))n远程调用语义问题:不同的通信可靠性措施会导致不同的RPC语义远程远程(yunchng)(yunchng)过程调用问题过程调用问题 33第三十三页,共四十四页。n重发请求:如果超时(timeout)尚未接到回应,则重新发送调用消息。如果若干次重发后仍无回应,则认为远程服务器出了故障(gzhng)。 n副本过滤:如果采用重发技术,服务器一端有可能接收到同一次调用的多个消息副本,于是服务器应该把多余的副本删除掉。 n重发回应:当服务器已经完成一次调用,而发现回应消息可能丢失时,只需将执行后的结果重新发送给客户,无需再次调用该过程。 远程远程(yunchng)(yunchng)过程参数传递过程参数传递34第三十四页,共四十四页。远程远程(yunchng)(yunchng)过程语义过程语义重发请求重发请求副本过滤副本过滤重发回应重发回应RPCRPC语义语义 否 否 否或许 是 否 否至少一次 是 是 否或许一次 是 是 是至多一次35第三十五页,共四十四页。远程远程(yunchng)(yunchng)过程调用过程调用 客户程序客户程序 客户存根客户存根 局部调用绑定请求接收绑定参数集结发送消息接收消息结果还原 返回结果服务器存根服务器存根 服务器过程服务器过程 执行过程 返回结果 接收消息 参数还原 局部调用 结果集结 发送结果绑定服务器绑定服务器 接收消息 注册/查询 返回结果(1)(0)(2)(5)(3)(4)(7)(6)(8)36第三十六页,共四十四页。远程过程调用远程过程调用(dioyng)(dioyng)步骤(步骤(1)(0)我们把这个步骤编号为0是因为它并不从属于某个RPC,而仅需在服务器生成这种RPC服务时向绑定服务器注册一次。绑定服务器接收到服务注册请求后便将其记录在自己的数据库中。(1)这才是一次RPC的第一个步骤。当客户程序发出的LPC后,控制被转移到客户(k h)存根子程序。(2)客户存根向绑定服务器发出请求,询问提供这种RPC的服务器地址。绑定服务器检索自己的数据库,把找到的服务器地址回送给客户存根。(3)客户存根接收到服务器地址后,就要进行参数转换(如果客户/服务器分属异构计算机的话) ,把转换好的参数打入消息包,这种处理过程称之为参数集结(parameter marshalling)。然后,客户存根把消息(通过消息传送协议) 传递给远程服务器。 37第三十七页,共四十四页。远程过程调用远程过程调用(dioyng)(dioyng)步骤(步骤(2)(4)服务器的底层通信协议把接收到的调用消息分派(fnpi)给对应的服务器存根。服务器存根将消息里的参数逆转成LPC所需的格式,我们把这种从消息到参数的转换称为参数还原(parameter unmarshaling) 。然后,服务器存根代表远程调用者发出LPC。(5)位于服务器上的过程启动执行,基本上类似于传统的局部过程调用。(6)过程调用结束后,调用结果返回给调用者,即服务器存根。 (7)就像参数集结那样,服务器存根需要将调用结果集结成消息包,然后发送给客户存根。 (8) (1)客户存根接收到结果消息后,必须将消息还原成LPC结果返回的格式,其后模拟LPC返回。至此,一次完整的RPC大功告成。38第三十八页,共四十四页。例子例子(l zi): SUN RPC (1)/ /* * 凯撒服务接口凯撒服务接口(ji ku)(ji ku)(XDR)(XDR)定义,文件名:定义,文件名:caesar.x caesar.x * */ /const MAX = 100;const MAX = 100;typedef struct /typedef struct /* * 返回值类型返回值类型 * */ /int len;int len;char codeMAX;char codeMAX; Data; Data;typedef struct /typedef struct /* * 参数类型参数类型 * */ /int key;int key;char cipherMAX;char cipherMAX; Args; Args;program CAESAR /program CAESAR /* * 凯撒程序凯撒程序 * */ /version VERSION version VERSION Data DECRYPT(Args) = 1; /Data DECRYPT(Args) = 1; /* * 解密过程解密过程 * */ /Data ENCRYPT(Args) = 2; /Data ENCRYPT(Args) = 2; /* * 加密过程加密过程 * */ / = 5; = 5; = 8888; = 8888;39第三十九页,共四十四页。例子例子(l zi): SUN RPC(2) 启动 XDR 编译程序 rpcgen ,产生下述文件:q客户存根子程序 q服务器主程序及服务器存根子程序 q客户/服务器所需的参数集结和参数还原过程 q程序头文件,caesar.hcaesar.h。该文件包含程序的常数(chngsh)、类型、以及远程过程所匹配的C函数原型(function prototype) 现在,我们可以(ky)编制其它程序40第四十页,共四十四页。例子例子(l zi): SUN RPC(3) / /* * 客户程序,文件名:客户程序,文件名:client.c client.c * */ /#include #include #include “caesar.h”#include “caesar.h”main()main()CLIENT CLIENT * *cp;cp;char char * *serverName = “Caesar_server”;serverName = “Caesar_server”;Args arg;Args arg;Data Data * * plaintext; plaintext;/ /* * 创建客户指针创建客户指针 * */ /cp = clnt_create(serverName, CRESAR, VERSION, “udp”);cp = clnt_create(serverName, CRESAR, VERSION, “udp”);if (cp = NULL) exit(1);if (cp = NULL) exit(1);arg.key = 1; /arg.key = 1; /* * 构造调用参数构造调用参数(cnsh)(cnsh) * */ /arg.cipher = “Buubdl!bu!ebxo”;arg.cipher = “Buubdl!bu!ebxo”;plaintext = decrypt_2(&arg, cp); /plaintext = decrypt_2(&arg, cp); /* * 远程过程调用远程过程调用 * */ / /* * 其它处理其它处理 * */ /clnt_destroy(cp);/clnt_destroy(cp);/* * 删除客户指针删除客户指针 * */ / 41第四十一页,共四十四页。例子例子(l zi): SUN RPC(4) / /* * 服务器程序,文件名:服务器程序,文件名: server.c server.c * */ /#include #include #include “ceasar.h”#include “ceasar.h”DataData* * decrypt_2(Args decrypt_2(Args * *a)/a)/* * 解密函数解密函数 * */ /static Data output;/static Data output;/* * 必须静态变量必须静态变量 * */ /char s = a-cipher;/char s = a-cipher;/* * 密码指针密码指针 * */ /int i = 0;int i = 0;while( while( * *s) output.codei = s) output.codei = * *s - key; i+; s+;s - key; i+; s+;output.len = i;output.len = i;return &output;/return &output;/* * 返回结果返回结果(ji gu)(ji gu) * */ / DataData* * encrypt_2(args encrypt_2(args * *a)/a)/* * 加密函数加密函数 * */ / / /* * 省略省略 * */ / 42第四十二页,共四十四页。流程流程(lichng): SUN RPC(5) 服务器存根程序头文件客户存根服务器过程接口定义客户主程序RPC运行库程序服务器程序客户程序IDL编译器C编译器43第四十三页,共四十四页。内容(nirng)总结第三章 网络与通信。第三章 网络与通信。网络节点: 接收/发送、转发、路由选择的主机及软硬件。无线电(微波、卫星、无线局域网等)。字符集中含有各种区分符(文始、文终、回车等)。地址 (通常低级协议地址)。传递方式: 点对点、组播、广播。系统通讯模块启动通讯协议把消息送往接收目的地。目的地系统通讯模块按照(nzho)通讯协议接收消息。阻塞发送:阻塞发送者,直到整个信息成功地传送到网络上为止。客户/服务器所需的参数集结和参数还原过程第四十四页,共四十四页。

    注意事项

    本文(最新《分布式系统》第三章 网络与通信(共44张PPT课件).pptx)为本站会员(豆****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开