你學習的TCP/IP協議棧到底是幾層?教科書上的標準答案都在變
概述
網絡知識博大精深,學了十幾年,感覺也只學了個皮毛,加上年齡慢慢增長,各種新技術層出不窮,有點身心疲憊的感覺,沒人的時候,總是想感慨一下:“一入網絡歲月催, 不勝人生一場醉”。還有比較坑爹的是之前知道的網絡標準,等過幾年以后就變了,讓人感覺一下子變老:)。
最讓我感慨的是TCP/IP協議棧,上大學的時候,教科書上明確的指出它有五個分層,我也一直堅信不疑,但是最近的一個事件,幾乎顛覆了我對網絡通信的認知:有人告訴我,TCP/IP協議棧是四層的!
當時技術部分組織培訓,和一群年輕的同事聊天,說到TCP/IP分層, 當聽我說TCP/IP協議棧是五層時,他們連忙給我糾錯,說TCP/IP協議棧只有四層,沒有五層。這讓我很汗顏,第一反應是不相信,只能保持沉默,假裝深沉。散會以后偷偷的查了一下資料,結果發現主流資料上說的都是四層,不是五層了:)。這讓我很受傷,感覺被教科書欺騙了,不停的又查了好多資料,發現TCP/IP還不止有這二種分層,還有其它分層模型,今天就整理一下,給大家分享!
七層的OSI模型
對于OSI七層模型是沒有人有疑問的,各個組織機構都承認這種模型,可以它說是整個網絡的基石。相信各位剛開始學習網絡時,肯定有老師給各位詳細解釋這部分內容的,所以我們今天就不多說了,看看下面的圖片就行。

OSI七層模型
OSI模型唯一的缺點就是太復雜了,分層太多,設備廠商都沒有能力完全來實現這些內容。所以它被束之高閣,高高掛起,成為被遠觀的美女(沒人敢接近):)。而相對的,TCP/IP協議棧由于相對簡單,并且容易實現,設備廠商都基于它來做開發,它成為了網絡世界的真正標準,可謂是屌絲逆襲。不過由于歷史原因和這些設備廠商的不同實現,TCP/IP協議棧有不同的分層結構。
TCP/IP 四層模型
這個網絡分層是在RFC1122中定義的,也是今天大家公認的TCP/IP協議棧分層模型。如下圖所示:

七層和四層比較
OSI七層參考模型中的最上面的三層應用層、表示層、會話層被合并為一個:應用層,協議可以直接面對用戶了,例如telnet、FTP、SMTP都是這一層次的。
OSI七層參考模型中的最后兩層數據鏈路層、物理層被合并為一個:鏈路層,它具有OSI模型的兩層功能。
其它的兩個層次不變,功能也相同,傳輸層對應傳輸層,網絡層對應網絡互連層。
TCP/IP 五層模型
我們來看看這種之前教科書上寫的五層分層模型,如下圖所示:

它和TCP/IP協議棧四層模型最大的不同就是最后的兩層:數據鏈路層和物理層還是分開的,在四層模型中,這兩個層次合并為一個鏈路層。
不知道是否是先入為主,我一直認為這種分層才是正確的,數據鏈路層處理ARP、STP、MAC地址等二層內容,明顯與物理層處理的各種媒介(WIFI、藍牙、光纖等)是不一樣的。
從從業人員上來看,這兩種也是不一樣的,數據鏈路層是網絡工程師的世界,而物理層主要的從業人員是硬件工程師,兩個職業很少有交集很少。
關于五層結構被取消的原因,我到現在也沒有找到好的說法,希望知道的小伙伴能在下面留個言,告訴我RFC1122把這兩個層次合并的原因!
其它分層模型
事實上還有幾個分層模型,在工作中大家都基本沒見過,因為他們只存在于理論當中,今天讓大家看看眼:
Arpanet 三層參考模型
不要小看這個模型哦,它可是互聯網的前身,現在的一切都是在阿帕網(apanet)的基礎上建立的。它在1982年發布的RFC871中定義,整個網絡只有三個分層,如下圖所示:

APANET參考模型
Cisco 四層模型
思科這個通信界的大佬也曾經定義過自己的網絡模型:“Internet Model”。

不過思科今天也不推這個模型了,而是也使用在RFC1122種定義的4層標準模型。
其它模型
還有其它的模型,咱就不詳細說了,也沒有研究,各位看個熱鬧,都是些有名的人和機構提出的,不過太古老了,現在已經不使用了:

Stallings模型

Tanenbaum模型
總結
我整理完這些分層以后還有點失落,這些都是老外制定的標準,現代互聯網的基礎都是別人奠基的。中國啥時候在網絡世界中能雄起,能定義這種基礎的網絡架構啊!