NFS下层实现——远程过程调用(RPC)

         NFS的底层实现是采用远程过程调用(RPC)来实现的。这里,先概述一下RPC的基本模型、机制以及SUN RPC的定义。在下一章中,将详细介绍NFSMount协议以及对文件操作的远程过程是如何用RPC来具体实现的。

  1. RPC的概念模型

        远程过程调用模型主要来自于传统编程语言中的过程调用机制。过程调用提供了一个强有力的抽象,它允许程序员将一个程序划分为一些小的、可管理的、易于理解的片段。它可以给出程序执行的概念性模型的简单明了的实现。


            RPC使用了和传统程序一样的过程抽象,只是它允许一个过程的边界跨越两台计算机。图一展示了远程过程调用模型如何将一个程序划分为两片,每片在一个单独的计算机上执行。
                                                                 

     

                                                                                              图一、远程过程调用模型


    根据过程执行模型,单个控制线索流经所有过程。计算机从一个主程序开始执行,它将一直继续下去,直到遇到一个过程调用。这个调用使执行转入到某个指定的过程代码并继续执行,直到遇到一个return语句。因此在RPC中,一个远程过程调用把控制权传递给被调用的过程,把调用过程的执行挂起。而远程的服务器则实现这个过程,当执行完毕,它给客户机一个响应,这对应于过程模型的return。使控制权返回给调用者,被调用过程停止执行。这个过程是可嵌套的
  2. SUN RPC的定义 

     

            Sun Microsystems公司定义了一个特定形式的远程过程调用。它称为Sun RPC。它定义了调用者(客户机)发出的调用服务器中的某个远程过程的报文的格式、参数的格式,以及被调用过程返回给调用者的结果的格式。

    Sun RPC通过定义一个远程执行环境而扩展了远程过程调用模型。它定义了一个远程程序,把它作为在远程机器上执行的软件的基本单元。每个远程程序对应于我们所设想的一个服务器,它包括一组远程过程以及全局数据。在一个远程程序中的所有过程都能共享它的全局数据。SUN Microsystems公司设计了一种外部数据表示,它规定了在网络传输数据时如何表示成公共形式的数据。Sun的外部数据表示XDR已成为大多数客户机-服务器应用的一个事实上的标准。 RPC远程过程调用的数据传输的数据必须遵循XDR标准。

    Sun RPC标准说明,在某个计算机上执行的每个远程程序都必须分配一个唯一的32比特整数,调用者使用该整数来标识这个程序。并且,针对每个远程程序的整数型还有一个版本号,使程序可以不必获得一个新的程序号就能改变某个远程过程的细节。此外,SUN RPC为每一个给定的远程程序中的远程过程分配了一个整数标识符。因此,每个RPC报文通过一个三元组来标识某台给定计算机上的所期望的接受者,这个三元组是:

    prog,  vers,  proc

    其中,prog标识远程程序,vers表示抱文所要发往的程序的版本号,proc表示该远程程序中的某一个远程过程。

     

     

     

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值