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

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

2025-08-26通用術語312

遠端程序呼叫 (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)?概念、運作方式” 的相關文章

什麼是令牌環(Token Ring)?概念、怎麼運作的

什麼是令牌環(Token Ring)?概念、怎麼運作的

網路百科全書中令牌環的定義。什麼是令牌環(代幣戒指)(在計算機網絡中)?Token Ring 是 IBM 開發的一種流行的局域網 (LAN) 技術,在許多商店中仍然擁有龐大的安裝基礎,但近年來已被不同形式的以太網大大超越。權杖環在 IEEE 802.5 規範中進行了標準化,該規範描述了配置為物理星形...

什麼是通用分組無線電服務 (GPRS)?概念、怎麼運作的

什麼是通用分組無線電服務 (GPRS)?概念、怎麼運作的

網絡百科全書中通用分組無線服務 (GPRS) 的定義。什麼是GPRS(通用分組無線服務)?GPRS是時分多址(TDMA)蜂窩電話系統的升級版。通用分組無線電服務(GPRS)使用分組交換代替TDMA系統現有的電路交換技術,以更有效地利用可用帶寬。探地雷達GPRS為用戶提供多達八個獨立的14.4-Kbp...

什麼是G.Lite?概念、怎麼運作的

什麼是G.Lite?概念、怎麼運作的

G.Lite 是非對稱數字用戶線 (ADSL) 的變體,旨在家庭互聯網訪問。繼續閱讀以獲取詳細信息。什麼是 G.Lite?G.Lite 是非對稱數字用戶線 (ADSL) 的變體,旨在家庭互聯網訪問。G.Lite 的下行速率通常高達 1.5 Mbps,上行速率高達 384 Kbps,具體取決於實施。G...

什麼是手持裝置標記語言 (HDML)?概念、運作方式

什麼是手持裝置標記語言 (HDML)?概念、運作方式

手持設備標記語言 (HDML) 是一種簡單的語言,用於為小型顯示器手持設備創建類似超文本的內容。什麼是 HDML(手持設備標記語言)?一種以超文本標記語言 (HTML) 為模型的標記語言,針對個人數字助理 (PDA)、尋呼機和行動電話等手持信息設備的無線互聯網訪問進行了優化。這些設備的顯示器尺寸有限...

什麼是Deamon ?概念、運作方式

什麼是Deamon ?概念、運作方式

Deamon 是一個與 UNIX 操作系統關聯的程序,它在後台運行並在沒有用戶煽動的情況下執行某些任務。什麼是 Deamon ?與 UNIX 作業系統相關聯的程式,在背景執行,無需使用者指示即可執行某些作業。常駐程式的範例是 telnet 常駐程式,它在背景持續執行,等待來自&n...

什麼是ANSI 字元集?概念、運作方式

什麼是ANSI 字元集?概念、運作方式

網絡百科全書中ANSI字元集的定義。什麼是 ANSI 字元集?ANSI 字元集,也稱為 Windows 字碼頁,是 Microsoft Windows 95 和 Windows 98 使用的 8 位元字元集,可讓您表示最多 256 個字元 (編號為 0 到 255)。ASCII (美國資訊...