TCP/IP、UDP、Http、Socket的區別


      一、網絡七層模型
       20世紀70年代中,為了優化數據庫系統設計,支持數據庫系統的訪問,美國的一個互聯網研究小組提出了一個結構化的分布式通信系統體系結構(共七層),他們內部稱之為分布式系統體系結構(DSA),1977年英國標准化協會向國際標准化組織(ISO)提議,為了定義分布處理之間的通信基礎設施,需要一個標准的體系結構。后來,ISO就開放系統互聯(OSI)問題成立了一個專委會(TC 97, Subcomittee 16),指定由美國國家標准協會(ANSI)開發一個標准草案。1978年3月,在ISO的OSI專委會在華盛頓召開的會議上,與會專家很快達成了共識,認為這個分層的體系結構能夠滿足開放式系統的大多數需求,而且具有可擴展的能力,能夠滿足新的需求。於是,1978年發布了這個臨時版本,1979年稍作細化之后,成了最終的版本。
     七層模型內容如下,左側列出的是簡化后的四層模型。
 
 
 實體層:連接網絡的硬件設備,就是將電腦連接起來的物理手段. 如光纜/電纜/無線電波
 數據鏈路層 (Link):建立邏輯連接、進行硬件地址尋址、差錯校驗等功能,如32位和64位計算機,他們的解碼方式是不一樣的,數據鏈路層就規定個二進制數據的解讀方式。
網絡層 (Network):進行邏輯地址尋址,實現不同網絡之間的路徑選擇。網絡層建立了主機之間的通信,它在網絡層引入了一套地址機制:網絡地址.簡稱網址(Ip地址),我們可以通過Ip地址,可以找到唯一的一台計算機,通過主機MAC地址來接收和發送信息.
傳輸層 (Transport):定義傳輸數據的協議端口號,以及流控和差錯效驗,定義了端口和端口之間的通信,幫助我們使不同的應用程序能夠接收到自己所需要的的數據。
會話層(Session Layer):包括建立、管理、終止會話,用來建立和管理應用程序之間的通信,實現自動尋址,自動收發數據。
表示層(Presentation Layer):數據的表示、安全、壓縮。比如我們要用基於Unix系統的mac電腦給pc機發送數據,表示層為我們解決了通信間語法的問題。
應用層 (Application):網絡服務與最終用戶的一個接口。比如不同的文件類型要用不同的應用程序打開,應用層中就規定了不同應用程序的數據格式.

      二、IP,TCP,UDP,HTTP,TCP/IP,Socket

     IP協議,為計算機網絡相互連接進行通信而設計的協議。

     TCP/UDP協議,基於二進制流的控制間傳輸協議。 TCP是面向鏈接的,雖然說網絡的不安全不穩定特性決定了多少次握手都不能保證連接的可靠性,但TCP的三次握手在最低限度上(實際上也很大程度上保證了)保證了連接的可靠性;而UDP不是面向連接的,UDP傳送數據前並不與對方建立連接,對接收到的數據也不發送確認信號,發送端不知道數據是否會正確接收,當然也不用重發,所以說UDP是無連接的、不可靠的一種數據傳輸協議。

     HTTP協議,超文本傳送協議(Hypertext Transfer Protocol ),HTTP協議是建立在TCP協議之上的一種應用。

     IP協議對應於網絡層,TCP協議對應於傳輸層,而HTTP協議對應於應用層。注意TPC/IP位於傳輸層,它主要用來解決數據如何在網絡中傳輸,與IP協議要區分開。

     IP協議規定網絡之間互連的協議;TPC/IP協議是傳輸層協議,主要解決數據如何在網絡中傳輸;HTTP是應用層協議,主要用於包裝數據。

      Socket相當於調用接口(API),用來調取TCP/IP協議。

      三、使用Socket建立網絡

       網絡上兩個程序通過雙向通信實現數據交換,socket又叫套接字,每個應用程序開啟后,都會在傳輸層端口上綁定一個socket,不同應用程序之間通過尋找端口找到socket實現數據通信。

        Socket連接過程分為三個步驟:服務器監聽,客戶端請求,連接確認。

1、服務器監聽:服務器端套接字並不定位具體的客戶端套接字,而是處於等待連接的狀態,實時監控網絡狀態,等待客戶端的連接請求。

2、客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。為此,客戶端的套接字必須首先描述它要連接的服務器的套接字,指出服務器端套接字的地址和端口號,然后就向服務器端套接字提出連接請求。

3、連接確認:當服務器端套接字監聽到或者說接收到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

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



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