什麼是 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 - 伺服器返回的任何值都將提供給客戶端。

更新於: 2021 年 9 月 13 日

2K+ 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.