RPC和Socket的區別

2021-06-16 14:02:15 字數 996 閱讀 5135

rpc和socket的區別

rpc(remote procedure call,遠端過程呼叫)是建立在socket之上的,出於一種模擬的願望,在一台機器上執行的主程式,可以呼叫另一台機器上準備好的子程式,就像lpc(本地過程呼叫).

越底層,**越複雜、靈活性越高、效率越高;越上層,抽象封裝的越好、**越簡單、效率越差。socket和rpc的區別再次說明了這點。

不論是程式設計師在編寫基於c/s(客戶端伺服器)的程式時,還是網路工程師在處理rpc問題時,他們問的最多的就是rpc和socket有什麼區別和聯絡? 

rpc(remote procedure call,遠端過程呼叫)是建立在socket之上的,出於一種模擬的願望,在一台機器上執行的主程式,可以呼叫另一台機器上準備好的子程式,就像lpc(本地過程呼叫).rpc帶來了開發c/s程式的簡單可靠的手段,它通過一種叫xdr的資料表達方法描述資料,程式設計師書寫偽**,然後由rpcgen程式翻譯為真正的可編譯的c語言源**,再編譯成真正的client端和server端程式。 

rpc作為普遍的c/s開發方法,開發效率高效,可靠.但rpc方法的基本原則是--以模組呼叫的簡單性忽略通訊的具體細節,以便程式設計師不用關心c/s之間的通訊協議,集中精力對付實現過程.這就決定了 rpc生成的通訊包不可能對每種應用都有最恰當的處理辦法,與socket方法相比,傳輸相同的有效資料,rpc占用更多的網路頻寬. 

rpc是在socket的基礎上實現的,它比socket需要更多的網路和系統資源.另外,在對程式優化時,程式設計師雖然可以直接修改由rpcgen產生的令人費解的源程式,但對於追求程式設計高效率的rpc而言,獲得的簡單性則被大大削弱. 

rpc與是socket的模擬 

兩個老闆手下各有乙個負責接通msn的秘書.這兩個秘書就是基於rpc協議建立的會話層通訊.老本不需要知道怎麼使用msn,只要告訴秘書,秘書就會通過msn與對方建立會話請求和響應.而基於socket的通訊,老闆需要會使用msn,這樣儘管老闆需要事先培訓一下msn的簡單使用常識,但若與對方通訊時,無需經過秘書,效率更高.

RPC和Socket的區別

size large rpc和socket的區別 rpc remote procedure call,遠端過程呼叫 是建立在socket之上的,出於一種模擬的願望,在一台機器上執行的主程式,可以呼叫另一台機器上準備好的子程式,就像lpc 本地過程呼叫 越底層,越複雜 靈活性越高 效率越高 越上層,抽...

RPC和HTTP的區別?

1.rpc主要是基於tcp ip協議,而http服務主要是基於http協議 http協議是應用層協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,為通訊程式之間攜帶資訊資料。在osi網路通訊模型中,rpc跨越了傳輸層和應用層。rpc使得開發包括網路分布式多程式在內的應用程式更加輕易。2.同步...

php的swoole和rpc區別

rpc是遠端過程呼叫 remote procedure call 的縮寫形式。sap系統rpc呼叫的原理其實很簡單,有一些類似於三層構架的c s系統,第三方的客戶程式通過介面呼叫sap內部的標準或自定義函式,獲得函式返回的資料進行處理後顯示或列印。推薦學習 swoole教程 程序間通訊 ipc 是在...