編輯安全
同義詞 RPC通常指遠程過程調用協議服務器
RPC(Remote Procedure Call Protocol)——遠程過程調用協議,它是一種經過網絡從遠程計算機程序上請求服務,而不須要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,爲通訊程序之間攜帶信息數據。在OSI網絡通訊模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分佈式多程序在內的應用程序更加容易。網絡
RPC採用客戶機/服務器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,客戶機調用進程發送一個有進程參數的調用信息到服務進程,而後等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息到達爲止。當一個調用信息到達,服務器得到進程參數,計算結果,發送答覆信息,而後等待下一個調用信息,最後,客戶端調用進程接收答覆信息,得到進程結果,而後調用執行繼續進行。分佈式
有多種 RPC模式和執行。最初由 Sun 公司提出。IETF ONC 憲章從新修訂了 Sun 版本,使得 ONC RPC 協議成爲 IETF 標準協議。如今使用最廣泛的模式和執行是開放式軟件基礎的分佈式計算環境(DCE)。測試
中文名url
遠程過程調用協議spa
外文名代理
Remote Procedure Call Protocolhtm
核心思想中間件
信息傳輸協議
研究方向
分佈式
運行時,一次客戶機對服務器的RPC調用,其內部操做大體有以下十步:
1.調用客戶端句柄;執行傳送參數
2.調用本地系統內核發送網絡消息
4.服務器句柄獲得消息並取得參數
5.執行遠程過程
6.執行的過程將結果返回服務器句柄
7.服務器句柄返回結果,調用遠程系統內核
8.消息傳回本地主機
9.客戶句柄由內核接收消息
10.客戶接收句柄返回的數據
RPC OVER HTTP
Microsoft RPC-over-HTTP 部署(RPC over HTTP)容許RPC客戶端安全和有效地經過Internet 鏈接到RPC 服務器程序並執行遠程過程調用。這是在一個名稱爲RPC-over-HTTP 代理,或簡稱爲RPC 代理的中間件的幫助下完成的。
RPC 代理運行在IIS計算機上。它接受來自Internet 的RPC 請求,在這些請求上執行認證,檢驗和訪問檢查,若是請求經過全部的測試,RPC 代理將請求轉發給執行真正處理的RPC 服務器。經過RPC over HTTP,RPC客戶端不和服務器直接通訊,它們使用RPC 代理做爲中間件。
遠程過程調用(RPC)信息協議由兩個不一樣結構組成:調用信息和答覆信息。信息流程以下所示:
RPC:遠程過程調用流程
RPC 調用信息:每條遠程過程調用信息包括如下無符號整數字段,以獨立識別遠程過程:
程序號(Program number)
程序版本號(Program version number)
過程號(Procedure number)
RPC 調用信息主體形式以下:
struct call_body {
unsigned int rpcvers;
unsigned int prog;
unsigned int vers;
unsigned int proc;
opaque_auth cred;
opaque_auth verf;
1 parameter
2 parameter . . . };
RPC 答覆信息:RPC 協議的答覆信息的改變取決於網絡服務器對調用信息是接收仍是拒絕。答覆信息請求包括區別如下情形的各類信息:
RPC 成功執行調用信息。.
RPC 的遠程實現不是協議第二版,返回 RPC 支持的最低和最高版本號。
在遠程系統中,遠程程序不可用。
遠程程序不支持被請求的版本號。返回遠程程序所支持的最低和最高版本號。
請求的過程號不存在。一般是呼叫方協議或程序差錯。
RPC答覆信息形式以下:
enum reply_stat stat
{MSG_ACCEPTED = 0,
MSG_DENIED = 1 };