當前位置:首頁 > 通用術語 > 什麼是遠端程序呼叫 (RPC)?概念、運作方式

什麼是遠端程序呼叫 (RPC)?概念、運作方式

2025-08-26通用術語203

遠端程序呼叫 (RPC) 是由 Sun Microsystems 開發並由開放軟體基金會 (OSF) 擴展的訊息傳遞程式設計技術,可讓應用程式執行程式並與網路上遠端電腦上的服務互動。

遠端程序呼叫

遠端程序呼叫 (RPC) 是在 Microsoft Windows Server 平台上啟用用戶端/伺服器處理的偏好方法,Microsoft 的 RPC 功能實作與其他實作相容,例如 IBM AIX、HP-UX 及 Sun Solaris 作業系統的實作。

遠端程序呼叫 (RPC) 與本機程序呼叫 (LPC)

您可以使用 RPC 在位於網路上不同電腦上的分散式應用程式元件之間傳遞訊息。雖然本機程序呼叫 (LPC) 提供一種機制,可讓位於單一電腦上的應用程式的不同部分彼此通訊,但 RPC 牽涉到不同電腦之間的通訊。RPC 實際上會使用各種其他進程間通訊 (IPC) 機制,例如具名管道、郵件插槽、Windows 通訊端和 NetBIOS,在不同電腦上的 RPC 用戶端與 RPC 伺服器元件之間建立連線。

遠端程序呼叫的運作方式

遠端程序呼叫類似於函式呼叫。就像函式呼叫一樣,當進行 RPC 時,呼叫引數會傳遞至遠端程式,而呼叫端會等候從遠端程式傳回回應。上圖顯示了在兩個網路系統之間的 RPC 呼叫期間發生的活動流程。用戶端會進行程序呼叫,將要求傳送至伺服器並等待。執行緒會封鎖處理,直到收到回覆或逾時為止。當要求到達時,伺服器會呼叫執行所要求服務的分派常式,並將回覆傳送至用戶端。RPC 呼叫完成之後,用戶端程式會繼續。RPC 專門支援網路應用程式。

遠端程序由程式號碼、版本號碼及程序號碼唯一識別。程式號碼會識別一組相關的遠端程序,每一個程序都有唯一的程序號碼。程式可以包含一或多個版本。每個版本都包含一組程序,這些程序可從遠端呼叫。版本號碼可讓 RPC 通訊協定的多個版本同時可用。每個版本都包含許多可以遠端呼叫的程序。每個程序都有一個程序編號。

遠端程序呼叫的層數

RPC介面可以看作是分為三層。

最高層:最高層對運行的操作系統、機器和網絡完全透明。最好將此級別視為使用 RPC 的一種方式,而不是作為 RPC 的一部分。編寫 RPC 常式的程序員應該(幾乎)始終通過完全隱藏網絡的簡單 C 前端將此層提供給其他人。

為了說明,在此層次上,程式可以簡單地呼叫 rnusers(),這是一個 C 常式,可傳回遠端機器上的使用者數目。使用者沒有明確意識到使用 RPC – 他們只是呼叫一個過程,就像他們呼叫 malloc() 一樣。

中間層:中間層確實是「RPC 本身」。在這裡,使用者不需要考慮有關套接字、UNIX 系統或其他低階實作機制的詳細資訊。它們只是對其他機器上的常式進行遠端程序呼叫。這裡的賣點是簡單。正是這一層讓 RPC 能夠通過「hello world」測試——簡單的事情應該很簡單。中間層常式用於大部分應用程式。

RPC 呼叫是使用系統常式 registerrpc () 、 callrpc () 及 svc_run () 來進行。其中前兩個是最基本的: registerrpc() 取得唯一的系統範圍程序識別碼,而 callrpc() 實際上執行遠端程序呼叫。在中間層次,對 rnusers () 的呼叫是透過這兩個常式來實作。

不幸的是,中間層由於其不靈活(簡單性)而很少用於嚴肅的程式設計。它不允許逾時規格或傳輸選擇。它不允許 UNIX 進程控制或發生錯誤時的靈活性。它不支援多種類型的通話驗證。程式設計師很少需要所有這些類型的控制,但通常需要其中一兩個。

最低層:最低層確實允許這些細節由程式設計師控制,因此,這通常是必要的。在此層級編寫的程式也是最有效率的,但這很少是真正的問題,因為 RPC 用戶端和伺服器很少產生繁重的網路負載。

雖然本文檔僅討論 C 的接口,但可以從任何語言進行遠程過程調用。雖然本檔討論 RPC 用來在不同電腦上的進程之間通訊,但它同樣適用於同一部電腦上不同進程之間的通訊。

“什麼是遠端程序呼叫 (RPC)?概念、運作方式” 的相關文章

什麼是存取控制?概念、怎麼運作、通用術語

什麼是存取控制?概念、怎麼運作、通用術語

存取控制是一個通用術語,描述管理員如何保護對 Active Directory 中物件的存取。存取控制一詞也用於 Windows Server 和 Windows XP 平臺,以描述如何使用 NTFS 檔案系統來保護檔案和資料夾,以及如何控制共用資料夾、印表機和其他網路資源的存取。存取控制原則怎麼運...

什麼是Microsoft 系統管理伺服器 (SMS)?概念、運作方式、通用術語

什麼是Microsoft 系統管理伺服器 (SMS)?概念、運作方式、通用術語

網路百科全書中 Microsoft 系統管理伺服器 (SMS) 的定義。什麼是 Microsoft 系統管理伺服器 (SMS)?SMS 是用於管理組織網路電腦的 Microsoft BackOffice 應用程式。Microsoft 系統管理伺服器 (SMS) 可讓網路管理員:管理其硬體和軟體資產從...

什麼是頻外管理 (OBM)?概念、怎麼運作的

什麼是頻外管理 (OBM)?概念、怎麼運作的

網路百科全書中頻外管理 (OBM) 的定義。什麼是頻外管理 (OBM)?OBM 代表帶外管理,是一種使用輔助串行通信鏈路遠程管理網絡的廣域網 (WAN) 電信組件的方法。這些裝置通常是路由器、交換器或通道服務單元/資料服務單元 (CSU/DSU),用於建立和維護與公司網路的 WAN 連結。可以在帶外...

什麼是基本磁碟(Basic Volume)?概念、怎麼運作的

什麼是基本磁碟(Basic Volume)?概念、怎麼運作的

網路百科全書中基本磁碟的定義。磁碟管理中的磁碟區是什麼?檔案系統中的最高組織層次是磁碟區。檔案系統位於磁碟區上。磁區至少包含一個分割區,這是實體磁碟的邏輯分割。包含存在於一個分割區上的資料的磁區稱為簡式磁區,而包含存在於多個分割區上的資料的磁區稱為多分割區磁區。什麼是基本磁碟?Microsoft W...

什麼是批次檔案?概念、怎麼運作的

什麼是批次檔案?概念、怎麼運作的

批次檔案是副檔名為 .bat 或 .cmd 的 ASCII 文件,包含一系列命令。什麼是批次檔案也稱為批次程序,副檔名為 .bat 或包含一系列命令的 .cmd 的 ASCII 檔案。在命令提示字元或登入指令碼中叫用批次檔時,會循序執行這些命令。批次檔案主要用於簡化例行或重複性管理任務的執...

什麼是NetWare 閘道服務 (GSNW)?概念、怎麼運作的

什麼是NetWare 閘道服務 (GSNW)?概念、怎麼運作的

網路百科全書中網際服務 (GSNW) 的定義。什麼是 GSNW(NetWare 網關服務)?GSNW 是執行 Microsoft Windows 2000 和 Windows NT 的伺服器 (在 Windows NT 中稱為 NetWare 閘道服務) 的服...