RPC协议简介
一、概述 ? ? ? ? 1.英文原義:Remote Procedure Call Protocol? 2.中文釋義:(RFC-1831)遠(yuǎn)程調(diào)用協(xié)議 。? 3.注解:一種通過網(wǎng)絡(luò)從遠(yuǎn)程計算機(jī)程序上請求服務(wù),而不需要了解底層網(wǎng)絡(luò)技術(shù)的協(xié)議。? 4.說明:RPC協(xié)議假定某些 傳輸協(xié)議的存在,如TCP或UDP,為通信程序之間攜帶信息數(shù)據(jù)。在OSI 網(wǎng)絡(luò)通信模型中,RPC跨越了 傳輸層和 應(yīng)用層。RPC使得開發(fā)包括網(wǎng)絡(luò)分布式多程序在內(nèi)的應(yīng)用程序更加容易。? 5.模式: ? ? ? RPC采用客戶機(jī)/服務(wù)器模式。請求程序就是一個客戶機(jī),而服務(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模式:分布式計算環(huán)境(DCE)。目前,有多種RPC模式和執(zhí)行。最初由Sun公司提出。IETF ONC憲章重新修訂了Sun版本,使得ONC RPC協(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ù)信息。? 1.RPC 調(diào)用信息: ? ? ? 每條遠(yuǎn)程過程調(diào)用信息包括以下 無符號整數(shù)字段,以獨(dú)立識別遠(yuǎn)程過程:? (1)程序號(Program number)? (2)程序版本號(Program version number)? (3)過程號(Procedure number)? RPC 調(diào)用信息主體形式如下:? struct call_body {? ? unsignedint rpcvers; ? ?/*RPC的版本*/ ? ? ? ? ?unsignedint rprog; ? ? /*遠(yuǎn)程程序的程序號*/ ? ? ? ? ?unsignedint rprogvers; ?/*遠(yuǎn)程程序的版本號*/ ? ? ? ? ?unsignedint rproc; ? ? /*遠(yuǎn)程過程的過程號*/ ? ? ? ? ?opaque_authcred; ? ? ?/*鑒別信息*/ ? ? ? ? ?opaque_authverf; ? ? ?/*鑒別的確證*/ ? ? ? ? ?/*ARGS*/ ? ? ? ? ? ? ? ? ? ?/*過程的參數(shù)*/ ? 1 parameter? ? 2 parameter . . .? };? ? ? ? 2.RPC 答復(fù)信息: ? ? ? RPC 協(xié)議的答復(fù)信息的改變?nèi)Q于 網(wǎng)絡(luò)服務(wù)器對調(diào)用信息是接收還是拒絕。答復(fù)信息請求包括區(qū)別以下情形的各種信息:? RPC 成功執(zhí)行調(diào)用信息。.? RPC 的遠(yuǎn)程實(shí)現(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 ? };
轉(zhuǎn)載自:http://blog.chinaunix.net/uid-7374279-id-4611801.html
二、協(xié)議結(jié)構(gòu)? ? 遠(yuǎn)程過程調(diào)用(RPC)信息協(xié)議由兩個不同結(jié)構(gòu)組成:調(diào)用信息和答復(fù)信息。? 1.RPC 調(diào)用信息: ? ? ? 每條遠(yuǎn)程過程調(diào)用信息包括以下 無符號整數(shù)字段,以獨(dú)立識別遠(yuǎn)程過程:? (1)程序號(Program number)? (2)程序版本號(Program version number)? (3)過程號(Procedure number)? RPC 調(diào)用信息主體形式如下:? struct call_body {? ? unsignedint rpcvers; ? ?/*RPC的版本*/ ? ? ? ? ?unsignedint rprog; ? ? /*遠(yuǎn)程程序的程序號*/ ? ? ? ? ?unsignedint rprogvers; ?/*遠(yuǎn)程程序的版本號*/ ? ? ? ? ?unsignedint rproc; ? ? /*遠(yuǎn)程過程的過程號*/ ? ? ? ? ?opaque_authcred; ? ? ?/*鑒別信息*/ ? ? ? ? ?opaque_authverf; ? ? ?/*鑒別的確證*/ ? ? ? ? ?/*ARGS*/ ? ? ? ? ? ? ? ? ? ?/*過程的參數(shù)*/ ? 1 parameter? ? 2 parameter . . .? };? ? ? ? 2.RPC 答復(fù)信息: ? ? ? RPC 協(xié)議的答復(fù)信息的改變?nèi)Q于 網(wǎng)絡(luò)服務(wù)器對調(diào)用信息是接收還是拒絕。答復(fù)信息請求包括區(qū)別以下情形的各種信息:? RPC 成功執(zhí)行調(diào)用信息。.? RPC 的遠(yuǎn)程實(shí)現(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 ? };
轉(zhuǎn)載自:http://blog.chinaunix.net/uid-7374279-id-4611801.html
總結(jié)
- 上一篇: synthesize和dynamic
- 下一篇: 计算机A级作文,关于被计算机的作文(共一