-
1 # lipbw
-
2 # 數智風
這得從網路的OSI七層協議說起。TCP協議屬於傳輸層,工作在第4層。而HTTP協議屬於應用層,工作在第7層。所有網路傳輸最後都必須有第1層物理層來完成,也就是0101的物理電訊號。上層資料都是被層層封裝,最後再轉化為物理訊號傳輸的。
1、OSI七層網路模型的來源早在網際網路起源的時代,網路通訊並不是統一標準的,而是各家有各家的通訊方法。而OSI七層模型最早是由Honeywell Information System公司的一個小組完成設計的。他們的目的只是在設計資料庫系統通訊時,需要一個結構化的分散式通訊體系結構。於是在1977年六提出了分散式系統體系結構(DSA)。它就是7層模型的主題,1978年OSI專家委員會召開會議,達成了共識,認為這個分層結構能滿足開放系統的大多數要求,1979年稍做修改就成了最終版本。
2、OSI七層模型的分層結構在OSI七層模型中,將網路通訊分為應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、物理層共7個層次。1-4層屬於偏機器側的下層,5-7層屬於偏人類側的上層。每個層次的功能如下:
應用層:它是使用者的一個互動介面,通常是採用人類最容易懂的語言展示的。HTTP協議就是我們最常見的應用層協議。這裡透過HTTP報文頭對應用過程進行控制,比如,定義HTTP版本、快取、連線狀態、傳輸加密等等表示層:這裡是對應用層的一個很好擴充套件,它主要是將應用層資料進行適當轉換格式,以達到最優的通訊效果。比如:對資料進行壓縮以減少網路頻寬的壓力;對資料進行加密方便安全傳輸。常用的格式有:JPEG、ASCII、EBCDIC等。會話層:這裡負責控制會話的建立、管理和終止。它依然屬於上層應用。一個會話就類似於兩臺機器的一次溝通。一個會話可以有很多下層連線。傳輸層:這裡主要定義數輸資料的協議埠號,以及流控和差錯校驗。其實也就是為了每個協議不衝突,他們用不同埠來區分不同協議。同時,流控和差錯校驗是為了保障傳輸不出錯和優先順序。TCP和UDP就是工作在這裡。這裡是可以理解為對上3層的資料進行多通道傳輸。比如:我們一次HTTP請求,可能需要獲取文字、圖片、影片三類資源。文字圖片可能就走TCP 80埠,優先順序一般,影片則可能走RTSP協議,優先順序高。網路層:主要是進行邏輯定址和不同網路之間的選路。可以理解為網路世界的導航、也可以理解為網路世界的路牌。它可以幫助資料包找到最優的路徑去傳輸。資料鏈路層:這裡主要是進行硬體定址和建立邏輯連線,也有差錯校驗功能。如果把網路層的定址比喻為找到每個人唯一名字(IP),那這裡就是找到名字對應的身份證號碼(MAC地址)。MAC地址就是硬體地址,每一個網口都有一個全球唯一MAC地址。物理層:這裡最容易理解,就是定義網路線路的電氣特性,並控制通訊的建立、傳輸、斷開三種物理狀態。我們常常用到的RJ45網線就是這裡定義的。3、計算機網路通訊是如何完成瞭解了OSI七層模型,我們來看看計算機網路通訊到底如何完成的。假設電腦A要用網頁訪問網站B。那麼網路會如何來通訊呢?當電腦A輸入網址敲回車,計算機會先找你配置的DNS伺服器,去找它將網址中的域名翻譯成IP地址。得到IP地址後開始進行通訊。
①、電腦A處一直在層層封裝
在應用層:A把“自己想要什麼東西”這段資訊用HTTP報文進行封裝,HTTP報文頭寫明:自己能希望的HTTP協議、傳輸快取等等。可以理解為在封裝上貼了一個備註。在表示層:如果需要加密,則在表示層把自己的HTTP資訊進行加密。到了會話層:A會對上面這個資料報文貼上會話ID、超時資訊等等會話控制的關鍵資訊。到了傳輸層:A會對上3層處理好的資料報文進行再次封裝。並加上傳輸層的控制資訊,如TCP協議、80埠、傳輸視窗等等。到了網路層:A會在傳輸層封裝好的基礎上,再次封裝上IP報文頭。加上控制資訊主要有:源IP、目的IP、TTL生存時間、校驗和之類的。到了資料鏈路層:它會在IP報文的基礎上,再次封裝成資料幀。加上控制資訊主要有:物理地址、MTU最大傳輸單元、校驗和等。到了物理層:A把資料幀直接用0101的脈衝電訊號傳送給對方。②、網路中間傳輸
電腦A出來的電訊號不是直接到網站B。而是和A直連的二層交換機。二層交換機網絡卡收到後,會將脈衝重新合成數據幀。然後對資料幀的物理地址進行檢視,如果本交換機內沒有該物理地址。那就轉交給閘道器的三層交換機。三層交換機如果發現數據幀並不是本地的,就需要拆開資料幀檢視IP報文頭裡的IP地址,透過比對自己的路由表,然後找到該發給的下一個路由裝置。就這樣一跳接一跳,重複著拆包檢視地址,然後封包繼續傳輸的動作,直到來到網站B的公網IP。然後由二層交換機檢視資料幀的物理地址轉交給網站B網口。
在物理層:B的網口收到電訊號後,立即合成數據幀,然後比對MAC地址是否和自己網絡卡相同,如果相同則繼續,不同則丟棄。在資料鏈路層:B會除了前面比對地址,還會比自己計算校驗和和幀控制資訊的校驗和是否相同,如果相同表示資料無誤,則解封裝資料幀。如果有誤則丟棄。在網路層:B比對IP報文頭,IP地址資訊和校驗資訊如果正確則繼續解封裝IP報文。不正確則丟棄在傳輸層:B比對TCP報文控制資訊,正確無誤則將資料轉交給相應應用程式的埠。在會話層:B比對會話層的控制資訊,同樣需要正確才會將資料轉交給表示層。在表示層:如果有加密,這裡就進行解密並轉交給上層應用。沒有則跳過了。在應用層:將收到的HTTP資訊傳給網站後臺程式。(如果是B向A傳輸資源,A就是可以在瀏覽器上看到資訊了)。★當B收到A的請求後,B迴應A則以相反的過程再走一遍。這個過程看起來很囉嗦很複雜,但其實計算機的電訊號處理非常快,我們實際應用感覺不到慢。
總結從OSI七層模型來看,TCP只是在傳輸層進行的控制協議,HTTP是在應用層控制的協議。而計算機要在網路中傳輸資訊,傳送方就必須層層往下封裝,而接收方則層層往上解封裝。從而實現通訊過程和控制過程。
回覆列表
小白的問題,問題本身有問題,如果提問者沒有意識到提問有問題,那麼提問者可以洗洗睡了,相信沒有一家企業會要你。