RPC和Socket的區別

來源:互聯網
上載者:User
RPC和Socket的區別From: http://hi.baidu.com/renyangok/blog/item/a856922370d909ffd7cae28c.html2010-03-17 14:33

    RPC(Remote Procedure Call,遠端程序呼叫)是建立在Socket之上的,出於一種類比的願望,在一台機器上啟動並執行主程式,可以調用另一台機器上準備好的子程式,就像LPC(本地程序呼叫).

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

——————下面轉自:http://johnyan.hostzi.com/phpbb3/viewtopic.php?t=1305——————

不論是程式員在編寫基於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的簡單使用常識,但若與對方通訊時,無需經過秘書,效率更高.

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.