什麼是 RPC 實現?
當一臺計算機上的程式想要請求另一臺計算機(在不同的網路中)上執行的另一個程式時,程式可能使用的協議稱為遠端過程呼叫。
使用此協議,程式無需瞭解網路詳細資訊。
RPC 的應用
RPC 的一些應用如下:
Windows 中的活動目錄服務使用此協議。
大多數 MMC 終端也使用此協議。
許多 DCOM 元件都基於 RPC。
一些實用程式,如“Windows 計算機管理”、“登錄檔編輯器”等,允許我們聯絡遠端系統。這些也使用 RPC 協議。
RPC 實現
讓我們考慮下面 RPC 的示意圖:

解釋
步驟 1 - RPC 包含一個稱為存根過程的客戶端程式,該程式連線到其自己的地址空間。引數以通常的方式傳遞。客戶端沒有發現或注意到此呼叫有任何異常之處,因為它是一個本地呼叫。
步驟 2 - 現在客戶端存根收集引數並將它們打包到一條訊息中。此操作稱為引數編組。訊息構建完成後,將其傳遞給傳輸層進行傳輸。
步驟 3 - 在無連線的 LAN 系統中,傳輸實體會在訊息中附加一個報頭並將其傳送到網路上。在 WAN 中,實際傳輸會稍微複雜一些。
步驟 4 - 當訊息到達伺服器端時,傳輸實體會將其傳遞給伺服器存根,然後伺服器存根會解組引數。
步驟 5 - 然後伺服器存根將呼叫伺服器過程,並以標準方式傳遞引數。伺服器過程無法判斷它是否被遠端啟用,因為它的直接呼叫者是一個本地過程,該過程遵循所有標準規則。只有存根知道正在發生一些特殊的事情。
步驟 6 - 完成其工作後,伺服器過程將以與任何其他過程完成時相同的方式返回。然後它將結果返回給呼叫方。
步驟 7 - 伺服器存根將結果編組到一條訊息中,並將其傳遞到傳輸介面,可能透過進行系統呼叫,如步驟 2 中所示。
步驟 8 - 之後,回覆返回到客戶端計算機。
步驟 9 - 回覆後,它將傳遞給客戶端存根。最後,客戶端存根返回到其呼叫者,即客戶端過程。
步驟 10 - 伺服器返回的任何值都將提供給客戶端。
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP