區別下RPC與HTTP


由於加入到新的一個項目組里面,跟以前的工作方式和思維方式不同,

第一個遇到的就是http的url里面居然可以帶上網絡服務的函數,通過這樣的方式得到服務器的結果。

聯系下以前的RPC,所以百度到這個  http://blog.csdn.net/21aspnet/article/details/6951478  

 

OSI網絡結構的七層模型

各層的具體描述如下:

  第七層:應用層     定義了用於在網絡中進行通信和數據傳輸的接口 - 用戶程式;提供標准服務,比如虛擬終端、文件以及任務的傳輸 和處理;
  第六層:表示層     掩蓋不同系統間的數據格式的不同性; 指定獨立結構的數據傳輸格式; 數據的編碼和解碼;加密和解密;壓縮和 解壓縮
  第五層:會話層     管理用戶會話和對話; 控制用戶間邏輯連接的建立和掛斷;報告上一層發生的錯誤
  第四層:傳輸層     管理網絡中端到端的信息傳送; 通過錯誤糾正和流控制機制提供可靠且有序的數據包傳送; 提供面向無連接的數 據包的傳送;
  第三層:網絡層     定義網絡設備間如何傳輸數據; 根據唯一的網絡設備地址路由數據包;提供流和擁塞控制以防止網絡資源的損耗
  第二層:數據鏈路層 定義操作通信連接的程序; 封裝數據包為數據幀; 監測和糾正數據包傳輸錯誤
  第一層:物理層      定義通過網絡設備發送數據的物理方式; 作為網絡媒介和設備間的接口;定義光學、電氣以及機械特性。

 在上述7層中,http協議是應用層協議。HTTP協議是超文本傳送協議(HyperText Transfer Protocol)的縮寫,它是萬維網(World Wide Web,www,也簡稱為Web)的基礎。HTTP協議設計之初就是為了實現Web的想法。HTTP協議位於TCP/IP協議棧的應用層。基於HTTP協議的客戶/服務器模式的信息交換過程,分四個過程:建立連接、發送請求信息、發送響應信息、關閉連接。

而關於RPC的基本概念介紹如下:


英文原義:Remote Procedure Call Protocol
中文釋義:(RFC-1831)遠過程調用協議
   注解:一種通過網絡從遠程計算機程序上請求服務,而不需要了解底層網絡技術的協議。RPC協議假定某些傳輸協議的存在,如TCP或UDP,為通信程序之間攜帶信息數據。在OSI網絡通信模型中,RPC跨越了傳輸層和應用層。RPC使得開發包括網絡分布式多程序在內的應用程序更加輕易。
   RPC采用客戶機/服務器模式。請求程序就是一個客戶機,而服務提供程序就是一個服務器。首先,調用進程發送一個有進程參數的調用信息到服務進程,然后等待應答信息。在服務器端,進程保持睡眠狀態直到調用信息的到達為止。當一個調用信息到達,服務器獲得進程參數,計算結果,發送答復信息,然后等待下一個調用信息,最后,客戶端調用過程接收答復信息,獲得進程結果,然后調用執行繼續進行。
RPC信息協議由兩個不同結構組成:調用信息和答復信息。

 

同時也注意到 了 這樣的信息

遠程通信的幾種選擇(RPC,Webservice,RMI,JMS的區別)

幾種基於HTTP協議的RPC性能比較

RPC和Socket的區別

http://blog.163.com/fanning_7213/blog/static/249650520113124540501/

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的類比

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM