1. 程式人生 > >計算機網路五層結構自頂向下詳解

計算機網路五層結構自頂向下詳解

今天在研究生現代網路原理課程上期末答辯中以《高併發大流量網站設計應對技術》奪冠,這是來校三個月來唯一順心順意的事情了,很久沒有寫部落格了,今天寫兩篇,分別是自頂向下解釋網際網路五層結構,自底向上解釋網際網路五層結構;為什麼做這兩個題目呢?第一篇解釋你的qq訊息是如何傳送到另外一個人那裡去的,第二篇解釋你是如何從網路中接受到你的qq訊息的,我覺得這個還是蠻有意思的。

現在告訴各位計算機網路就分為這五層,請記住,稍後會詳解

這篇部落格我準備以qq訊息為例,向各位詳細解釋,一個qq訊息是如何發到網際網路上的?現在開始,希望每個人都可以有一個可以發晚安的人,這裡就以“晚安”為例。

1 應用層

應用層是直接面向用戶的,當我們登陸上qq之後,開啟聊天視窗,對著某個人傳送“晚安”,這兩個字會被打包成一個數據包,如下所示:

應用層有一些協議,ftp,smtp,http等,但這些我們先不關心,關心的是晚安這兩個字已經是一個數據包了,它坐上了應用層資料包的小車,開到下一層傳輸層。跟著我一起走下去

2 傳輸層

這時我們思考一下,我們電腦上不僅有qq,還有其他軟體,比如微信,怎麼才能識別出應用層資料包小車上的晚安是qq發的,不是微信發的呢?這時傳輸層就站了出來了,它用一種叫做埠號的東西給應用層資料包增加了一個標頭,如下圖:

這個埠是什麼呢?它是使用網絡卡的程式的一個編號,這個編號從0-65535,16個二進位制位,這裡不妨假設她是5555,有了這個埠號我們就知道這輛車是從qq那裡發車的。這個埠的新增協議有兩個,一個叫UDP,一個叫TCP。

UDP很簡單,它新增的這個標頭只有傳送埠和接受埠,UDP實現簡單,但是缺點是可靠性差,一旦資料包發出,不知道對方是否接受到。所以TCP協議就應運而生了,可以把TCP協議看作是有著確認機制的UDP機制,每次發出資料包,都會要求確認,丟了了就會要求重發,那麼他的缺點也是很明顯了,實現複雜。

好了,我們的小車現在有了傳輸層的標頭了,繼續可以向下開了。

3 網路層

我們的小車已經有了埠號了,那麼你要說晚安的那個人的地址在哪呢?怎麼才能找到她呢?

網路層就應運而生了,網路層會為我們的小車加一個標頭,叫IP地址,這個協議叫ip協議,這個ip地址是32個二進位制位,比如198.162.17.111

ip協議封裝的標頭裡面有版本,長度和ip地址。

在網路層還有一個協議很重要,叫ARP協議,這個協議是何作用呢?當我們有了對方的ip地址之後,其實還需要MAC地址才可以找到對方,至於MAC地址是什麼,下一層就講,這個ARP協議就是專門來找MAC地址的。怎麼找的呢?

如果你和她是在一個子網內,ARP協議也是發一個數據包,這個包裡面有對方的IP地址,在這個子網內的主機都會收到這個資料包,並且會拿出這個資料包中的目的地址ip,來跟自己的ip地址匹配,匹配上了,就會回覆,這樣子我麼你就可以通過ARP協議從目的ip地址找到目的MAC地址了。

話說回來,我們的豪華表白車已經有了她的ip地址了,接著往下開。

4 資料鏈路層

當我們的小車到了資料鏈路層之後,我們先解釋一下上面的MAC地址到底是什麼?

我們的電腦之所以可以上網,是因為我們的電腦有一個叫做網絡卡的東西,這個東西有一個全世界獨一無二的地址,這個地址是48個二進位制位,通常表示出來是12個十六進位制,如1A-2B-3C-4D-5E-6F,這個前面6個是網絡卡的廠商號,後面6個是這個網絡卡的流水號。

有了這個MAC還是不夠的,怎麼傳送呢?我們的乙太網用了最傻的方式,它給本網路中每一個主機都發,讓這些主機自己匹配是否需要接受這個資料包,怎麼匹配呢,就是匹配這個資料包中的MAC地址,於是我們的小車就必須再加一個標頭了,如下

上面說的那種每個主機都發的方式叫做廣播。是不是很形象呢。

在資料鏈路層,有個乙太網協議,這個乙太網協議會給小車加標頭,裡面儲存的是傳送者的資訊,接收者的資訊,其實這個資訊就是上面途中的MAC地址表示的,明白了把。所以這個資料包叫乙太網資料包。當小車到物理層,會變成電訊號,這個電訊號是分組的,一組電訊號叫做一個幀,這個幀就是現在的小車。這個幀的協議也是由乙太網協議定義的。

到此為止,我們的豪華表白車就裝好了,他根據MAC地址ip地址埠號可以一步步的發到她的qq上,小車開到最後一層物理層

5 物理層

物理層說白了就是電纜了,或者說好多好多電纜,當我們的小車來了之後,會變成電訊號,飄洋過海的發到她那裡,同樣也是從她那邊的物理層開始解析,在資料鏈路層,用乙太網協議解讀成幀,開啟頭部,根據ip地址,MAC地址,和埠號就可以發到她的qq上了。

現在知道你的晚安要跨過千山萬水才可以到達她那裡了把,珍惜!