1. 程式人生 > >5層網路模型介紹

5層網路模型介紹

 

在網路協議當中,我們一般會去講解整個網路資訊傳輸的整個過程的時候,都會套用一個經典都5層模型,在這5層模型裡面,我們分為應用層,傳輸層,網路層,資料鏈路層和物理層,這個在每臺電腦上,每臺伺服器上,他都是有這麼一個相應都層級的關係來維護我們整個網路資料傳輸的過程,所以在你自己的電腦上,或在一臺遠端的伺服器上,可能上面放著一個web伺服器來提供一個網站的服務,那麼這些經典的計算機模型都會有這麼一個網路的過程,所以你自己的計算機也可以作為一臺web伺服器來提供網路服務的,在這裡面不會詳細講解下面三層的內容。
傳輸層會在後面也會有提及,因為我們這門課主要是講http,所以我們主要是在應用層上面,因為我們的http協議是在應用層上面去實現的,但是http協議,它要基於我們傳輸層裡面的一個非常重要的一個協議,叫tcp協議,這個協議是現在網路模型當中,最最最重要的一個協議,在我們應用的過程當中,比如說我們建立一個http的服務,或者ftp的服務,或者是email的服務,那麼這些服務,他們都是基於tcp,ip協議去實現的,所以tcp,ip協議後面會講解到,因為它會涉及到http請求的一個性能,或者過程的消耗,這些內容都會涉及到tcp,ip相關都內容
下面這三層,因為我們主要做的是web服務,所以,基本上不會碰到相關的東西,我們頂多頂多會稍微涉及到tcp,ip協議相關到一些內容
那麼接下來主要講一下下面這三層主要做到一些事情
物理層主要作用是定義物理裝置如何傳輸資料
,簡單來說,物理層是什麼呢?就是我們電腦的硬體,我們的網絡卡埠,網線,以及我們網線連出去之後要有條光纜來為我們把資料傳輸到網際網路,可能經過好幾千公里的這種情況下把資料傳輸到對面的伺服器上面,所以這些物理的內容是必須要有的,沒有物理,我們的軟體是沒有辦法去傳輸的,所以物理層,就是這些硬體裝置相關的東西
資料鏈路層是在通訊的實體間建立資料鏈路連結,那麼怎麼理解呢,就是說我們物理是可以連結在一起了,兩臺機器,也要有一個軟體服務幫我們通過物理的裝置去建立一個電路的連結,也就是說這兩邊可以傳輸資料,那麼這邊呢,資料鏈路層基本上就是我們最基礎的電腦傳輸資料,就是01010101之類的東西
然後 網路層就是為資料在結點之間傳輸建立邏輯鏈路
,那麼邏輯鏈路,它會包含一些,比如說我們從我的電腦要去訪問百度的伺服器,那麼我們去尋找百度這臺伺服器它所在的地址,它就是一個邏輯關係,那麼這個關係是在網路層為我們去建立的
ok,如果這三層大家不是特別的能理解,那麼沒有什麼關係,因為這些會相對非常的底層,如果大家有興趣的話,可以自己去學
接下來我們講一下什麼是傳輸層,傳輸層它主要有兩個協議,一個是tcp,ip協議,一個是udp協議,在更多的情況下,我們使用的是tcp,ip協議,因為它是一個更可靠的一個協議,幫我們去傳輸資料
傳輸層為我們提供了可靠的端對端(end-to-end)服務,這個服務是什麼概念呢,就是我們建立起了從我們自己的電腦到百度到伺服器之間的這麼一個連結之後,它們兩端如何去傳輸資料,它傳輸資料的方式都是在這一層進行定義的,我們傳輸的資料有可能很小,有可能很大,那麼如果傳輸資料大於一定的時候,我們不能把這麼大的資料傳輸過去,那我們要分包,要分片,這些分片之後,資料傳輸到那邊,最後又要進行一個組裝,組裝這個過程,就這些,他到協議的定義,他如何去組裝,如果去傳輸,都是在傳輸層進行一個定義的
傳輸層向高層遮蔽了下層資料通訊的細節
,什麼概念呢,因為我們http協議是實現在tcp,ip協議的基礎上的,我們http協議要傳輸一個數據,我們只需要非常簡單的,比如說在瀏覽器裡面輸入一個url,他就會自動去傳送相關的一個數據到伺服器端,然後伺服器端能夠解析這些資料返回給我們的瀏覽器,然後把頁面顯示出來,那麼我們輸入url這個過程,其實涉及到了一系列的資料的拼裝以及傳輸,那麼這個過程我們作為瀏覽器端,我們作為使用者,或者我們作為網頁的開發者,不需要指導他裡面到底是怎麼去分片,他怎麼去跟伺服器建立一個連結的關係,這些內容我們是完全不需要知道的,因為這是傳輸層他已經幫我們封裝掉了,還有就是比如說我們建立一個ajax請求,那麼ajax請求也是一個http的請求,我們使用ajax的post的方式去傳輸一些資料,那麼這個資料如果比較大的時候,它也是一次性的傳輸不完的,那麼它如何去進行一個傳輸,如何能夠可靠的把我們想要的資訊傳輸到伺服器,伺服器返回到資訊又如何可靠的讓我們拿到,那麼這個過程都是傳輸層這邊它已經幫我們去實現掉了,所以http協議層是不需要關心的
雖然說不需要關心,但是你能夠更好的去理解它的一個傳輸的過程,那這個時候可能對於在某一些細節上面去實現一個性能更高的http協議的使用方式可能會是有非常大的幫助的
那麼應用層,我想大家應該就能猜到了,就是我們最主要的http協議是在這個層級上去實現的,它 為我們應用軟體提供了很多服務,我們寫網頁的時候,我們使用http協議去傳送請求,我們是非常方便的,只要去new一個request請求,然後就可以去把一些資料,比如post,get的方式去傳送到服務端,這是應用層在http協議上面,它幫我們實現了http協議,然後我們只需要去使用http協議相關端一些工具,就可以幫我們去傳輸一些資料,它是 構建於tcp協議之上的,所以它傳輸的方式,都是要落實於tcp,ip協議上面
遮蔽了網路傳輸相關的細節,那麼就跟我們tcp,ip協議幫我們遮蔽了http協議,它資料是如何去傳送的一些細節一樣,我們在使用http協議的時候,具體網路傳輸的細節,那麼我們也是不需要深入的理解的
ok,這就是我們五層網路模型的一個分層方式以及每一層它幹了哪些事情,這些是偏裡面的東西,大家先有一個概念