网站大量收购闲置独家精品文档,联系QQ:2885784924

南华大学计算机科学与技术学院分布式计算课件第三章 网络与通信.ppt

南华大学计算机科学与技术学院分布式计算课件第三章 网络与通信.ppt

  1. 1、本文档共47页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * 第三章 网络与通信 * 请求-回应式通信(远程过程调用) 在客户/服务器模型中,客户进程谋取服务的手段是向服务器发出一个服务请求。服务器接到请求后,启动某个过程完成所需的服务,然后向客户返回一个回应。在接到回应之前,客户进程一直等待在那里,即便有的客户进程并不要求服务器返回结果,它也必须等待,以防万一回应是一个出错报告。人们发现这种请求-回应式通信在语义上非常接近传统的局部过程调用(LPC:Local Procedure Call)语义,如果把客户进程当成调用者,把传送的请求当作调用参数,把服务器提供的相应服务当成被调用的过程,把回应当作返回值,则我们可以完全隐蔽消息传送,用一种高级的用户界面实现请求-回应式通信,这个思想便是著名的远程过程调用(RPC: Remote Procedure Call). 第三章 网络与通信 * 局部过程调用实例 main(){ char cip[] = “Buubdl!bu!ebxo”; /* cipher*/ int key = 1;/* secret key */ int len = decrypt(cip, key); /* LPC */ /* other processing */ } int decrypt(char * s, int key){ /* decryption */ int i = 0; while( *s) { *s -= key; i++; s++;} return i; } 栈 栈 cip -Buubdl!bu!ebxo len - ? key - 1 栈 cip -Attack at dawn len - 14 key - 1 Return address i - 0 s - main.cip key - 1 cip -Buubdl!bu!ebxo len - ? key - 1 调用后 调用前 LPC 过程 调用 返回 第三章 网络与通信 * 按值调用/按指引元调用问题 异构计算机数据内部表示问题(字节排序) 远程调用语义问题:不同的通信可靠性措施会导致不同的RPC语义 远程过程调用问题 第三章 网络与通信 * 重发请求:如果超时(timeout)尚未接到回应,则重新发送调用消息。如果若干次重发后仍无回应,则认为远程服务器出了故障。 副本过滤:如果采用重发技术,服务器一端有可能接收到同一次调用的多个消息副本,于是服务器应该把多余的副本删除掉。 重发回应:当服务器已经完成一次调用,而发现回应消息可能丢失时,只需将执行后的结果重新发送给客户,无需再次调用该过程。 远程过程参数传递 第三章 网络与通信 * 远程过程语义 重发请求 副本过滤 重发回应 RPC语义 否 否 否 或许 是 否 否 至少一次 是 是 否 或许一次 是 是 是 至多一次 第三章 网络与通信 * 远程过程调用 客户程序 客户存根 局部调用 绑定请求 接收绑定 参数集结 发送消息 接收消息 结果还原 返回结果 服务器存根 服务器过程 执行过程 返回结果 接收消息 参数还原 局部调用 结果集结 发送结果 绑定服务器 接收消息 注册/查询 返回结果 (1) (0) (2) (5) (3) (4) (7) (6) (8) 第三章 网络与通信 * 远程过程调用步骤(1) (0)我们把这个步骤编号为0是因为它并不从属于某个RPC,而仅需在服务器生成这种RPC服务时向绑定服务器注册一次。绑定服务器接收到服务注册请求后便将其记录在自己的数据库中。 (1)这才是一次RPC的第一个步骤。当客户程序发出的LPC后,控制被转移到客户存根子程序。 (2)客户存根向绑定服务器发出请求,询问提供这种RPC的服务器地址。绑定服务器检索自己的数据库,把找到的服务器地址回送给客户存根。 (3)客户存根接收到服务器地址后,就要进行参数转换(如果客户/服务器分属异构计算机的话) ,把转换好的参数打入消息包,这种处理过程称之为参数集结(parameter marshalling)。然后,客户存根把消息(通过消息传送协议) 传递给远程服务器。

您可能关注的文档

文档评论(0)

ormition + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档