RPC 遠端過程呼叫協議 的主要特質和原理

2021-08-20 20:59:29 字數 1357 閱讀 9638

rpc(remote procedure call protocol)——遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式多程式在內的應用程式更加容易。

rpc採用客戶機/伺服器模式。請求程式就是乙個客戶機,而服務提供程式就是乙個伺服器。首先,客戶機呼叫程序傳送乙個有程序引數的呼叫資訊到服務程序,然後等待應答資訊。在伺服器端,程序保持睡眠狀態直到呼叫資訊到達為止。當乙個呼叫資訊到達,伺服器獲得程序引數,計算結果,傳送答覆資訊,然後等待下乙個呼叫資訊,最後,客戶端呼叫程序接收答覆資訊,獲得程序結果,然後呼叫執行繼續進行。

通俗的說:客戶端在不知道呼叫細節的情況下,呼叫存在於遠端計算機上的某個過程或函式,就像呼叫本地應用程式中的一樣。

rpc是協議:協議意味著規範。目前典型的rpc實現包括dubbo、thrift、hetty等。但這些實現往往都會附加其他重要功能,例如dubbo還包括了服務管理,訪問許可權管理等功能。

網路協議和網路io模型對其透明:既然rpc的客戶端認為自己是在呼叫本地物件,那麼傳輸層使用的是tcp/udp還是http協議,又或是一些其他的網路協議它就不需要關心了。既然網路協議對其透明,那麼呼叫過程中,使用的是哪乙個網路io模型呼叫者也不需要關心。

資訊格式對其透明:遠端呼叫過程中,需要傳遞一些引數,並且會返回乙個呼叫結果。至於這些引數會以某種資訊格式傳遞給網路上的另一台計算機,這個資訊格式是怎樣構成的,呼叫方式不需要關心的。

跨語言能力:對於呼叫方來說,不知道也無需知道遠端的程式使用的是什麼語言執行的,無論伺服器方使用的是什麼語言,本次呼叫都應該成功,並且返回值也應該按照呼叫方程式語言所能理解的形式進行描述。

執行時,一次客戶機對伺服器的rpc呼叫,其內部操作大致有如下十步:

1.呼叫客戶端控制代碼;執行傳送引數

2.呼叫本地系統核心傳送網路訊息

3.訊息傳送到遠端主機

4.伺服器控制代碼得到訊息並取得引數

5.執行遠端過程

6.執行的過程將結果返回伺服器控制代碼

7.伺服器控制代碼返回結果,呼叫遠端系統核心

8.訊息傳回本地主機

9.客戶控制代碼由核心接收訊息

10.客戶接收控制代碼返回的資料

RPC 遠端過程呼叫協議

remote procedure call 1 rpc 遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網...

RPC 遠端過程呼叫協議

rpc remote procedure call 遠端過程呼叫,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式...

遠端過程呼叫協議(RPC)

rpc remote procedure call protocol 遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc...