RPC协议简介
一、概述 ? ? ? ? 1.英文原義:Remote Procedure Call Protocol? 2.中文釋義:(RFC-1831)遠程調用協議 。? 3.注解:一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。? 4.說明:RPC協議假定某些 傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI 網絡通信模型中,RPC跨越了 傳輸層和 應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加容易。? 5.模式: ? ? ? RPC采用客戶機/服務器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息的到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用過程接收答復信息,獲得進程結果,然后調用執行繼續進行。? RPC模式:分布式計算環境(DCE)。目前,有多種RPC模式和執行。最初由Sun公司提出。IETF ONC憲章重新修訂了Sun版本,使得ONC RPC協議成為IETF標準協議。現在使用最普遍的模式和執行是開放式軟件基礎的分布式計算環境(DCE)。
二、協議結構? ? 遠程過程調用(RPC)信息協議由兩個不同結構組成:調用信息和答復信息。? 1.RPC 調用信息: ? ? ? 每條遠程過程調用信息包括以下 無符號整數字段,以獨立識別遠程過程:? (1)程序號(Program number)? (2)程序版本號(Program version number)? (3)過程號(Procedure number)? RPC 調用信息主體形式如下:? struct call_body {? ? unsignedint rpcvers; ? ?/*RPC的版本*/ ? ? ? ? ?unsignedint rprog; ? ? /*遠程程序的程序號*/ ? ? ? ? ?unsignedint rprogvers; ?/*遠程程序的版本號*/ ? ? ? ? ?unsignedint rproc; ? ? /*遠程過程的過程號*/ ? ? ? ? ?opaque_authcred; ? ? ?/*鑒別信息*/ ? ? ? ? ?opaque_authverf; ? ? ?/*鑒別的確證*/ ? ? ? ? ?/*ARGS*/ ? ? ? ? ? ? ? ? ? ?/*過程的參數*/ ? 1 parameter? ? 2 parameter . . .? };? ? ? ? 2.RPC 答復信息: ? ? ? RPC 協議的答復信息的改變取決于 網絡服務器對調用信息是接收還是拒絕。答復信息請求包括區別以下情形的各種信息:? RPC 成功執行調用信息。.? RPC 的遠程實現不是協議第二版,返回 RPC 支持的最低和最高版本號。? 在遠程系統中,遠程程序不可用。? 遠程程序不支持被請求的版本號。返回遠程程序所支持的最低和最高版本號。? 請求的過程號不存在。通常是呼叫方協議或程序差錯。? RPC答復信息形式如下: ? enum reply_stat stat {? MSG_ACCEPTED = 0, ? MSG_DENIED = 1 ? };
轉載自:http://blog.chinaunix.net/uid-7374279-id-4611801.html
二、協議結構? ? 遠程過程調用(RPC)信息協議由兩個不同結構組成:調用信息和答復信息。? 1.RPC 調用信息: ? ? ? 每條遠程過程調用信息包括以下 無符號整數字段,以獨立識別遠程過程:? (1)程序號(Program number)? (2)程序版本號(Program version number)? (3)過程號(Procedure number)? RPC 調用信息主體形式如下:? struct call_body {? ? unsignedint rpcvers; ? ?/*RPC的版本*/ ? ? ? ? ?unsignedint rprog; ? ? /*遠程程序的程序號*/ ? ? ? ? ?unsignedint rprogvers; ?/*遠程程序的版本號*/ ? ? ? ? ?unsignedint rproc; ? ? /*遠程過程的過程號*/ ? ? ? ? ?opaque_authcred; ? ? ?/*鑒別信息*/ ? ? ? ? ?opaque_authverf; ? ? ?/*鑒別的確證*/ ? ? ? ? ?/*ARGS*/ ? ? ? ? ? ? ? ? ? ?/*過程的參數*/ ? 1 parameter? ? 2 parameter . . .? };? ? ? ? 2.RPC 答復信息: ? ? ? RPC 協議的答復信息的改變取決于 網絡服務器對調用信息是接收還是拒絕。答復信息請求包括區別以下情形的各種信息:? RPC 成功執行調用信息。.? RPC 的遠程實現不是協議第二版,返回 RPC 支持的最低和最高版本號。? 在遠程系統中,遠程程序不可用。? 遠程程序不支持被請求的版本號。返回遠程程序所支持的最低和最高版本號。? 請求的過程號不存在。通常是呼叫方協議或程序差錯。? RPC答復信息形式如下: ? enum reply_stat stat {? MSG_ACCEPTED = 0, ? MSG_DENIED = 1 ? };
轉載自:http://blog.chinaunix.net/uid-7374279-id-4611801.html
總結
- 上一篇: synthesize和dynamic
- 下一篇: 计算机A级作文,关于被计算机的作文(共一