RPC和Socket通訊的區別

來源:互聯網
上載者:User

今天看書的時候看到這兩種遠程通訊的方法,在google了一下。一下是從別的地方粘的。。

今天和師兄一起開會,聽他們講到了RPC 和 Socket通訊的東西. 高度興趣,回來自己google了一下. 又學到新東西了,呵呵.

RPC(Remote Procedure Call,遠端程序呼叫)是建立在Socket之上的,出於一種類比的願望,在一台機器上啟動並執行主程式,可以調用遠程另一套機器上的子程式,就像LPC(本地程序呼叫).越底層,代碼越複雜,靈活性越高,效率越高; 越上層,抽象封裝的越好,代碼越簡單,效率越差. Socket和RPC的區別再次說明了這點.那麼, RPC與Socket通訊的區別是什麼呢?RPC是建立在Socket之上的,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.