遠(yuǎn)程協(xié)議應(yīng)用是什么,?
遠(yuǎn)程過程調(diào)用協(xié)議
(RPC:Remote Procedure Call protocol)
遠(yuǎn)程過程調(diào)用(RPC)是一種通過網(wǎng)絡(luò)從遠(yuǎn)程計算機程序上請求服務(wù),,而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議,。RPC 協(xié)議假定某些傳輸協(xié)議的存在,,如 TCP 或 UDP,為通信程序之間攜帶信息數(shù)據(jù),。在 OSI 網(wǎng)絡(luò)通信模型中,,RPC 跨越了傳輸層和應(yīng)用層。RPC 使得開發(fā)包括網(wǎng)絡(luò)分布式多程序在內(nèi)的應(yīng)用程序更加容易,。
RPC 采用客戶機/服務(wù)器模式,。請求程序就是一個客戶機,而服務(wù)提供程序就是一個服務(wù)器,。首先,,調(diào)用進(jìn)程發(fā)送一個有進(jìn)程參數(shù)的調(diào)用信息到服務(wù)進(jìn)程,然后等待應(yīng)答信息,。在服務(wù)器端,,進(jìn)程保持睡眠狀態(tài)直到調(diào)用信息的到達(dá)為止。當(dāng)一個調(diào)用信息到達(dá),,服務(wù)器獲得進(jìn)程參數(shù),,計算結(jié)果,發(fā)送答復(fù)信息,,然后等待下一個調(diào)用信息,,最后,客戶端調(diào)用過程接收答復(fù)信息,,獲得進(jìn)程結(jié)果,,然后調(diào)用執(zhí)行繼續(xù)進(jìn)行。
目前,,有多種 RPC 模式和執(zhí)行。最初由 Sun 公司提出,。IETF ONC 憲章重新修訂了 Sun 版本,,使得 ONC PRC 協(xié)議成為 IETF 標(biāo)準(zhǔn)協(xié)議。現(xiàn)在使用最普遍的模式和執(zhí)行是開放式軟件基礎(chǔ)的分布式計算環(huán)境(DCE),。協(xié)議結(jié)構(gòu)遠(yuǎn)程過程調(diào)用(RPC)信息協(xié)議由兩個不同結(jié)構(gòu)組成:調(diào)用信息和答復(fù)信息,。
信息流程如下所示:
RPC:遠(yuǎn)程過程調(diào)用流程RPC 調(diào)用信息:每條遠(yuǎn)程過程調(diào)用信息包括以下無符號整數(shù)字段,以獨立識別遠(yuǎn)程過程:程序號(Program number)程序版本號(Program version number)過程號(Procedure number)RPC 調(diào)用信息主體形式如下:struct call_body {unsigned int rpcvers;unsigned int prog;unsigned int vers;unsigned int proc;opaque_auth cred;opaque_auth verf;1 parameter2 parameter . . .},;
RPC 答復(fù)信息:
RPC 協(xié)議的答復(fù)信息的改變?nèi)Q于網(wǎng)絡(luò)服務(wù)器對調(diào)用信息是接收還是拒絕,。答復(fù)信息請求包括區(qū)別以下情形的各種信息:RPC 成功執(zhí)行調(diào)用信息。.RPC 的遠(yuǎn)程實現(xiàn)不是協(xié)議第二版,,返回 RPC 支持的最低和最高版本號,。在遠(yuǎn)程系統(tǒng)中,遠(yuǎn)程程序不可用,。遠(yuǎn)程程序不支持被請求的版本號,。返回遠(yuǎn)程程序所支持的最低和最高版本號,。請求的過程號不存在。通常是呼叫方協(xié)議或程序差錯,。
RPC答復(fù)信息形式如下:
enum reply_stat stat {MSG_ACCEPTED = 0,MSG_DENIED = 1},;
Tags:協(xié)議