1. 1、本文档共33页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
RFC1050

RFC1050 组织:中国互动出版网(/) RFC文档中文翻译计划(/compters/emook/aboutemook.htm) E-mail:ouyang@ 译者:马东辉(eaststone ma_donghui@263.net ) 译文发布时间:2001-3-28 版权:本翻译文档可以用于非商业用途自由转载,但必须保留本文档的翻译及组织信息。 Network Working Group Sun Microsystems, Inc. Request for Comments: 1050 April 1988 远程过程调用协议规范 (RFC1050---Remote Procedure Call Protocol Specification) 摘要 远程过程调用(Remote Procedure Call)可以使程序调用远方节点上的过程象调用本地过程一样方便。本文就是远程过程调用协议规范的中文版。 目录 1.简介 1 2.术语 2 3.RPC的模型 2 4.传输和语义 2 5. 绑定与集合独立性 3 6.认证 4 7.RPC协议的要求 4 8. RPC消息协议 7 9.认证协议 10 10.记录标记的标准 16 11.RPC语言 16 附录A:端口映射器程序协议 18 1.简介 此文档详细说明了一个使用在实现Sun公司的远程过程调用(RPC)包中的消息协议。此消息协议是由外部数据描述(XDR)语言[9]来定义的。这篇文档假定读者对XDR非常熟悉,它并不试图去证明使用RPC的好处。这里推荐由Birrell and Nelson [1]所写的文章,作为了解RPC的背景。 2.术语 此文档讨论了服务器,服务,程序,过程,客户和版本这些术语。服务器就是实现网络服务的软件。网络服务是一个或多个远程程序的集合。一个远程程序实现了一个或多个远程过程;这些过程的参数和结果已经存档在特定的程序协议规范中(见附录A中的例子)。网络客户是向服务发出远程过程调用的软件。一个服务器可能支持不止一种版本的远程程序,这样以便于与改变的协议兼容。 例如,一个网络文件服务可能由两个程序组成。一个程序处理诸如文件系统访问控制和锁定这样的高层应用。另一个程序处理低层的文件I/O,拥有象“read”和“write”这样的过程。网络文件服务的客户机根据自己用户的需要将会调用服务中与这两个程序关联的过程。 3.RPC的模型 远程过程调用模型与本地过程调用模型非常相似。在本地过程调用中,调用者把要传给过程的参数放在明确定义好的位置上(例如一个结果记录)。然后调用者将把控制转交到被调用的过程中,最后得到返回的控制。在返回点上,被调用的过程的结果从明确定义好的位置上取出,调用者继续执行。 远程过程调用也是相似的,通过两个进程逻辑地运行在一起构成一条控制主线。一个是调用者进程,另一个是服务器进程。也就是说,调用者进程发送给服务器进程一条调用消息,并等待(阻塞)直到收到响应的消息。调用消息包含被调用的过程的参数等。响应消息包含着被调用过程的结果等。一旦收到响应消息,被调用过程的结果就会被取出,调用者将恢复执行。 在服务器一侧,一个进程处于休眠状态来等待调用消息的到达。当一条调用消息到达后,服务器进程从消息中取出被调用过程的参数,计算出结果,发送响应消息,然后等待下一条调用消息。 注意:这种模式中,在任一个给定的时间上,两个进程中只有一个是激活的。但是,这种模式只是作为一个例子。RPC协议在并发模型的实现上不作限制,也可能存在着其它的实现并发模型的方法。例如,一种实现可能选择RPC调用是异步进行的,这样客户机就可以在等待服务器的响应中,做其它有用的工作。另一种可能性是使服务器创建一个新的任务来处理输入的请求,这样服务器就可以自由地接收其它的请求。 4.传输和语义 RPC协议不依赖于传输协议。也就是说,RPC不关心消息是怎样从一个进程传递到另一个进程中去的。这个协议仅仅处理协议的规范和消息的解释。 还有必要指出RPC并不去试图实现任何一种可靠性,所以应用程序必须考虑在RPC下层的传输层协议。如果应用程序知道自己运行在象TCP/IP[6]这样的可靠传输层的上层的时候,它就知道保证可靠性的大部分工作已经做好了。在另一方面,如果应用程序运行在象UDP/IP[7]这样的不可靠传输层的上层,那么它必须实现自己的重传和超时策略,而这些服务RPC层是不提供的。 因为独立于传输层,RPC协议并不把特殊的语义附加到远程过程上。可以从下面的传输层推断出来(但是应该有明确的定义)。

文档评论(0)

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

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

1亿VIP精品文档

相关文档