HTTP學習之五層網絡模型

最近學習一下HTTP,作點筆記,儘可能讓本身慢慢的記住這些東西。瀏覽器

HTTP幾乎都是從五層網絡模型提及,雖然以爲能夠不用深刻了解,可是仍是須要簡單的瞭解一些。緩存

應用層:服務器

個人理解就是,應用層就像是兩個軟件或者兩個程序,好比咱們的瀏覽器和服務器,咱們經過瀏覽器去請求服務器,服務器程序之間操做數據,這些程序或者軟件就稱之爲應用層。應用層之間有不少協議,好比HTTP協議、DNS協議、FTP協議、SMTP協議等等。網絡

傳輸層:運維

這個層作的是創建主機端到端的鏈接,在這個層有兩個協議,一個是UDP協議一個是TCP協議。UDP協議是盡最大努力保證數據送到,可是不保證數據必定可以送到的。咱們常常用到的Ping命令,來測試主機之間是否聯通,原理就是UDP協議。這種在數據傳輸途中把數據丟了的狀況,在網絡中咱們稱之爲:丟包。TCP協議是會保證數據的正確性的,也會保證數據的順序性。學習

網絡層:測試

網絡層用的是一種網絡層協議,也叫IP協議,網絡層經過IP尋址來創建兩個節點之間的鏈接,IP是惟一的。編碼

數據鏈路層:加密

數據鏈路層呢又分爲兩個部分或者稱爲兩個子層,邏輯鏈路控制子層和媒體訪問控制子層,這層的縮寫你們確定熟悉——MAC,也就是人們常說的MAC地址。一開始我一直覺得是定義好了鏈路,而後發射出去,可是實際上第一次鏈接的時候是不知道鏈路的,是發射出去以後一直跳,最終定位到目標,而後會緩存這個鏈路地址。能夠經過cmd命令行去看:命令行

tracert www.baidu.com

能夠看見跟蹤的跳躍點,而後跳躍點ip是無序的。

物理層:

這個就不須要多說了,上面的全部東西都是基於物理硬件的,物理層是支撐一切的基礎。當咱們在鏈路層處理完成以後,是經過物理層發射數據出去的,好比網卡。

剛開始我實際上是不知道這五層網絡協議的運行過程,後來問了運維,才大概理解了一點。好比瀏覽器請求服務器,瀏覽器這邊按順序把數據在應用層封裝,定義好協議,接着到傳輸層繼續添加TCP/UDP協議,接着到網絡層添加IP協議,而後在鏈路層先找緩存有沒有鏈路,有就封裝進去,沒有就經過物理層發射出去數據包去找目標。數據包找到目標以後,經過物理層接收到數據包,而後經過鏈路層、網絡層、傳輸層、應用層一層一層往上解包,而後使用。

在五層模型執行的時候,都是隻在單獨本身的程序上執行,好比TCP三次握手,就須要執行三遍這個過程。簡單理解就是壓包和解包的過程。固然,每個的機制都是很是複雜的,每一層裏面的協議的工做也都不僅是那麼簡單。每層協議本質就是在外面套一層特殊格式的數據。因此在將數據送到的時候,須要將這一層層的協議拆開,而後才能獲得裏面的數據。

還有一個OSI的七層模型,只是把應用層分紅了三個層,應用層,表示層和會話層,表示層和會話層沒有相應的協議。通常表示層作的是數據格式化,或者加密編碼解碼等操做。

相關文章
相關標籤/搜索