欢迎来到天天文库
浏览记录
ID:46533576
大小:144.00 KB
页数:24页
时间:2019-11-25
《rfc1050_rpc远程过程调用协议规范说明书》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、远程过程调用协议规范(RFC1050—RemoteProcedureCal1ProtocolSpecification)摘要远程过程调用(RemoteProcedureCall)可以使程序调用远方节点上的过程彖调用本地过程一样方便。本文就是远程过程调用协议规范的屮文版。目录1.简介22.术语23.RPC的模型24.传输和语义35.绑定与集合独立性36.认证47.RPC协议的要求4&RPC消息协议79.认证协议1010.记录标记的标准1611.RPC语言16附录A:端口映射器程序协议181・简介此文档详细说明了一个使用在实现Sun公司的远程过程调用(RPC)包中的消息协议。此消息协议
2、是由外部数据描述(XDR)语言⑼来定义的。这篇文档假定读者对XDR非常熟悉,它并不试图去证明使用RPC的好处。这里推荐由BirrcllandNelson[1]所写的文章,作为了解RPC的背景。2.术语此文档讨论了服务器,服务,程序,过程,客八和版本这些术语。服务器就是实现网络服务的软件。网络服务是一个或多个远程程序的集合。一个远程程序实现了一个或多个远程过程;这些过程的参数和结果已经存档在特定的程序协议规范中(见附录A中的例子)。网络客户是向服务发出远程过程调用的软件。一个服务器可能支持不止一种版本的远程程序,这样以便于与改变的协议兼容。例如,一个网络文件服务可能由两个程序组成。一
3、个程序处理诸如文件系统访问控制和锁定这样的高层应用。另一个程序处理低层的文件I/O,拥有象“read”和“write”这样的过程。网络文件服务的客户机根据自己用户的需要将会调用服务屮为这两个程序关联的过程。3.RPC的模型远程过程调川模型与本地过程调川模型非常相似。在本地过程调川中,调川者把要传给过程的参数放在明确定义好的位置上(例如一个结果记录)。然后调川者将把控制转交到被调用的过程中,最后得到返回的控制。在返回点上,被调用的过程的结果从明确定义好的位置上取出,调用者继续执行。远程过程调用也是相似的,通过两个进程逻辑地运行在一•起构成一条控制主线。一个是调川者进程,另一个是服务器
4、进程。也就是说,调用者进程发送给服务器进程一条调川消息,并等待邙冃塞)直到收到响应的消息。调川消息包含被调川的过程的参数等。响应消息包含着被调用过程的结果等。一旦收到响应消息,被调用过程的结果就会被取出,调用者将恢复执行。在服务器一侧,一个进程处于休眠状态来等待调用消息的到达。当一条调用消息到达后,服务器进程从消息屮取出被调川过程的参数,计算出结果,发送响应消息,然后等待下一条调用消息。注意:这种模式屮,在任一个给定的时间上,两个进程中只有一个是激活的。但是,这种模式只是作为一个例子。RPC协议在并发模型的实现上不作限制,也可能存在着其它的实现并发模型的方法。例如,一种实现可能选择
5、RPC调川是异步进行的,这样客户机就可以在等待服务器的响应中,做其它有用的工作。另一种可能性是使服务器创建一•个新的任务来处理输入的请求,这样服务器就可以自由地接收其它的请求。4.传输和语义RPC协议不依赖于传输协议。也就是说,RPC不关心消息是怎样从一个进程传递到另一个进程中去的。这个协议仅仅处理协议的规范和消息的解释。还有必要指出RPC并不去试图实现任何一种可靠性,所以应用程序必须考虑在RPC下层的传输层协议。如果应用程序知道口己运行在象TCP/IP16]这样的可靠传输层的上层的时候,它就知道保证可靠性的大部分工作已经做好了。在另一方血,如果应用程序运行在象UDP/IP[7]这
6、样的不可靠传输层的上层,那么它必须实现自己的亜传和超时策略,而这些服务RPC层是不提供的。因为独立于传输层,RPC协议并不把特殊的语义附加到远程过程上。可以从下面的传输层推断出来(但是应该有明确的定义)。例如,考虑RPC运行在不可靠传输层UDP/IP的上层。如果应用程序在很短的超时后車传RPC消息,当没有接收到响应的时候,它能够判断的唯一的事情就是过程没有执行或者执行了一次以上。当收到响应的时候,它口J以推断出过程至少执行了一次。服务器可能希望记住以前准许的从客户端发来的请求。为了在某种程度上确保至多只执行一次的语义,服务器不再重新批准这些请求。服务器通过利用打包在RPC请求中的事
7、务ID来实现这个功能。事务的主要用处就是客户端的RPC层用它来匹配对请求的响应。但是,客户应用程序当重传一个请求的时候可以选择再使用它以就的事务IDo服务器应川程序在知道了这个事实厉,可以选择在准许了一个请求斤记住这个事务ID,为了获得在某种程度上至多只执行一次的语义,服务器对于具有相同ID的请求不再巫新批准。除了nJ以进行检验相等的操作Z外,不允许服务器使用其它的方法来检查这个IDo另一方而,如果使川了一个象TCP/IP这样的可靠传输,应川程序能够从一条响应消息推断
此文档下载收益归作者所有