天天看點

02 | 網絡分層的真實含義是什麼

  計算機網絡課上老師說:為什麼要分層啊?因為不同層次之間他們有不同的溝通方式,這個叫做協定。

  好吧,那這麼想的話,官場也是分層的,分“高層上司”、“中層上司”、“小上司”、“群衆”。各級上司都有他們的溝通方式。。。和網絡世界是一樣的,群衆有什麼事情要辦,自己要上點心,不能光靠上面的人給你操心;但是上面的人就不一樣了,他們的一個動作,下面的人要做各種準備,要比上司的工作多的多。同時,每一級都要為上一級的上司辦事,他手下的人更要替他為上司辦事。。尤其是高層要會晤,下面的肯定要做好萬全準備的。

  計算機網絡界有個著名的“三次握手”,我們都把他當成知識點來重點背誦,那麼問題來了,TCP在進行三次握手的時候,IP層和MAC層都對應什麼操作呢?當然是IP層和MAC層的所有機制都要運作一遍!你隻看到TCP三向交握了,其實IP層和MAC已經忙得團團轉很久了。

  尤其是要記住一點:隻要是網絡上跑的包,都是完整的。可以有下層沒有上層,但是絕對不可能有上層沒有下層!

  對于TCP協定來說,三次握手也好,重試也好,隻要想發出去包,就要有IP層和MAC層,不然是發不出去的!還有一個關鍵!光知道一台機器的IP位址是不夠的,沒有MAC位址消息時發不出去的!

  所謂的二層裝置,三層裝置,都是這些裝置上跑的程式不同而已。一盒HTTP協定的包經過一個二層裝置,二層裝置收進去的是整個網絡包。這裡的HTTP、TC、IP、MAC都有。什麼叫二層裝置啊,其實就是隻把MAC的頭摘下來(因為他關鍵是要這個),看看到底是丢棄、轉發、還是自己留着。那什麼叫做三層裝置呢?就是除了要把MAC頭摘下來,IP的頭也需要,看看是丢棄、轉發、還是自己留着。

  其實回答那個網絡為什麼要分層的問題,隻此一句話:複雜的程式都要分層,這是程式設計的要求!