天天看點

你說說看,如何最簡單粗暴地解釋OSI七層模型?

作者:網絡工程師俱樂部

大家好,我是老楊。

前段時間,有位馬上畢業的小友來找我抱怨,說自己面試不太順利,在簡單技術上卡住了。

那個面試官問他OSI七層模型的東西,雖說這是個很基礎的問題,但自己回答得很差勁,有幾個協定都沒記住。

你說說看,如何最簡單粗暴地解釋OSI七層模型?

其實OSI七層模型,這個問題很多企業面試的時候都會問到,位元組前端面試的時候,也問這個問題。

而且還會更深入提問。

比如說,傳輸層有什麼協定,TCP和UDP有什麼差別,又或者問基于這兩種協定又有哪些協定?這個七層模型裡,哪幾層不用硬體實作?

在網工行業裡想持續發展,強大的基本功其實是必不可少的。

小友們還是得夯實基礎。

一些基礎知識,不能隻是說把概念硬背下來,一知半解,沒有深入了解作用,其實是無效學習。

今天老楊就給你來一篇基礎的網絡技術科普之通俗易懂解說,從小白的角度說說,到底什麼是OSI七層模型。

今日文章閱讀福利:《 圖解網絡全套書籍 》

私信老楊,發送暗号“圖解”,即可擷取該份高清網工書籍資源。

01 為啥會有OSI七層模型?

在正式解說之前,我們還是得先來個專業解釋。

OSI的英文全稱是Open System Interconnect,中文解釋就是,開放式系統互聯。

一般大家都叫OSI參考模型,這個是由國際标準化組織ISO在1985年提出來的一個分類标準。

你說說看,如何最簡單粗暴地解釋OSI七層模型?

你在使用計算機進行網絡通信時,資料會經過多個不同的處理步驟和網絡層次的轉換進行傳輸。而OSI七層模型就是為了統一和規範這些處理步驟和層次轉換,設計的一個參考模型。

有了這個規範以後,裝置廠商、網絡技術都可以按照這個标準。

比如說,各大裝置廠商通過這個模型才可以通信系統子產品化,統一按照這套标準來生産各種各樣的網絡裝置,子產品内部怎麼樣沒關系,外在的接口一定是标準件。

大家共同遵守這個同一标準,才能實作不同廠商不同裝置的互聯。

再比如說,通過制定這樣一個标準,才可以技術上把vlan、stp、ospf、telnet等等這些一系列的協定和應用規劃串聯起來,來實作各種各樣的網絡功能。

你說說看,如何最簡單粗暴地解釋OSI七層模型?

是以這個模型的體系結構,定義了網絡互聯的七層架構:實體層、資料鍊路層、網絡層、傳輸層、會話層、表示層和應用層。

在這個架構下,又進一步詳細規定了每一層的功能,以此來實作開放系統環境中的互連性、互操作性和應用的可移植性,實作一個主機到另一個主機的消息傳輸。

聽起來是不是有點抽象?

那我們說點實際的,一句話來說就是:

我打開微信給你發了個表情包,需要通過層層的網絡發送過去,然後你打開微信接收了我發送的表情包。

這就是為什麼需要有OSI七層模型。

02 小白式解讀OSI七層模型

剛剛隻是籠統地說一下,我們為什麼需要OSI這個模型。

接下來我們來具體說說OSI裡面的七個不同的層次,每個層次都有它特定的功能和作用:

你說說看,如何最簡單粗暴地解釋OSI七層模型?

還是和剛剛一樣,先來個專業解釋。

應用層:

規定應用程式之間的通信協定,比如電子郵件使用的POP3、SMTP協定,遠端登入使用的Telnet協定,網頁浏覽的HTTP協定等。

表示層:

決定資料的編碼方式,讓接收方能夠了解發送方傳輸的資料,比如視訊檔案可以編碼為RMVB、AVI格式,圖檔可以編碼為JPEG、BMP、PNG等格式。

會話層:

建立兩端通信實體之間的連接配接,在通信過程中進行認證、鑒權以及檢查點記錄,以便在會話意外中斷時能夠繼續傳輸資料,有點類似斷點續傳的功能。

傳輸層:

把一個資料/檔案分成多個小段,對每個小段進行标記,以便接收方能夠按照順序重組資料,并标記應用程式使用的端口号及提供QOS服務。

網絡層:

根據路由政策選擇本次通信使用的協定(http、ftp等),确定本次通信的路徑,并對通路控制進行管理,IP位址就是在這一層進行配置設定和使用的。

資料鍊路層:

根據端口和MAC位址進行分組(VLAN)隔離、端口安全、通路控制,處理VLAN内的資料幀轉發,跨VLAN間的通路,需要上升到網絡層。

實體層:

将資料轉化為0和1辨別的比特流,進行傳輸,比如将頭像圖檔轉換為一串數字(例如01110111000),然後通過網線或者無線信号傳輸到接收方。

這些層次之間互相獨立,每個層次都有其獨特的作用和功能,協同工作才能實作資料的可靠傳輸。

你說說看,如何最簡單粗暴地解釋OSI七層模型?

又有點懵了?

再給你說個更具體的比喻。

假設你前幾天給自己組裝了一台電腦主機,用了沒兩天,不想要了,決定放到網上賣了。

第一步。是不是得去二手平台網站?比如說閑魚、轉轉這樣的二手電商平台?這些平台為你的商品提供了專門的連結通道和規則。

那這樣的平台,就可以稱之為應用層。

(應用層:向使用者提供應用服務,例如電子郵件、檔案傳輸等。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

第二步。你找到了一個買家,但是他要你把主機裡的機箱、顯示卡、散熱器、記憶體條等配件全都放回原本的盒子裡寄過來,避免運輸途中損壞。等他拿到了,他再自己重新組裝起來就行。

這個拆機、組裝的過程,是為了主機和相關配件能夠更好地運輸到目的地,這個過程就相當于在表示層。

(表示層:對資料進行格式化、加密、壓縮等處理。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

第三步。我東西已經裝好了,但是又怕那個買家反悔,我就讓平台的客服去跟他确認一遍。“你确定要買的吧?不退不換。”如果對面回複好的,那就可以發出了。

隻有在我找個時間寄出去,他找個時間取快遞,他确認簽收,這些都完成以後,流程才算結束。

那平台的客服會确認我這個訂單的開始結束時間和我的商品發送、接收的數量,這個客服的工作,就在會話層。

(會話層:建立、管理和終止會話。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

到這個時候,買家已經付款了,隻是東西還沒拿到對吧,剩下的就是快遞怎麼發了,也就是資訊要怎麼在網絡中傳輸的問題。

上面這三個步驟,就相當于,OSI模型的上層結構。

第四步。快遞怎麼發?當然是找個快遞公司發吧,根據你想要的速度你可以任意選擇普通快遞還是順豐特快。

在這個過程中,快遞公司的工作就是確定你的快遞到達買家的手上,就屬于是承上啟下的中間層——傳輸層。

(傳輸層:提供端到端的可靠的資料傳輸服務。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

第五步。快遞公司沒位址怎麼發?肯定是你得提供位址,然後快遞公司的站點根據位址選擇貨車司機、運輸路徑,看看咋樣才能最快速度讓買家拿到購買的東西。

站點用你發的位址選擇怎麼運送,這個站點的工作,就相當于在網絡層。

(網絡層:進行邏輯位址尋址和路由選擇。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

第六步。你的快遞到買家城市的站點了,一般這個時候會有個快遞小哥,他會看快遞上面寫的啥位址電話,聯系一下,給買家送貨上門。

快遞小哥是通過名字電話位址聯系到買家的,就相當于,快遞小哥的工作在資料鍊路層。

(資料鍊路層:提供資料幀的傳輸和識别以及錯誤檢測和糾正。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

最後。快遞小哥怎麼送過去,總不能走路吧。他一般會騎着裝貨的電動三輪車,送到買家家門口。

貨物運輸的過程,貨車司機開卡車、快遞小哥騎三輪電動車。他們和他們的交通工具就屬于是在實體層。

(實體層:通過實體媒體傳輸比特流。)

你說說看,如何最簡單粗暴地解釋OSI七層模型?

類比快遞公司接收貨物後的運輸過程,其實網絡通信中的傳輸層、網絡層和資料鍊路層就相當于資料包在網絡内/網間的傳遞過程。

這三層都是與操作使用者本身無關的底層結構,它的功能主要是在資料包的傳遞過程中進行路由、分組、隔離、通路控制等操作,以確定資料包能夠在網絡中正确、快速、安全地傳遞到目的地。

是以,我們把後三層叫做OSI模型中的下層結構。

你說說看,如何最簡單粗暴地解釋OSI七層模型?

我們再把這套案例用在網絡傳輸上。從計算機的角度來看:

你要用電腦給同僚的電腦發送檔案,首先選擇QQ或者EMail,比如說Email的通信協定是SMTP,這個通訊協定就在應用層。

發出去的過程和接收的過程,都要編碼、加密和壓縮,就相當于在表示層。

QQ傳送檔案時,都會有一個通知欄,顯示“是否發送”,對面的是“是否接收”。檔案從你的電腦,正确無誤地傳輸到了他的電腦,這個過程就在會話層。

你确認發送,同僚确認接收開始,就會通過TCP/UDP協定建立通道,保證傳輸的可靠性,這個協定工作在傳輸層。

在發送的過程中,我們是通過IP位址,由你公司或者家裡的路由器傳輸過去的,路由器就是網絡層。

而傳過去的時候,還需要Mac位址,由交換機進行資料的傳輸。交換機的工作就在資料鍊路層。

那麼,怎麼把這些通訊裝置連結起來?網線和光纖負責發送比特流,提供資訊傳送的實體媒體,這一步就在實體層。

兩個按理總結起來就是:

應用層——二手電商平台(應用軟體中對應的SMTP,Http,Ftp等應用層協定)

表示層——拆裝電腦的過程(負責資料壓縮、編碼)

會話層——确認下單和收貨的平台客服(負責檔案發送/接收)

傳輸層——快遞公司(EMS——TCP;順豐——UDP)

網絡層——快遞站點(路由器)

資料鍊路層——快遞小哥(交換機)

實體層——司機、貨車、三輪車(網線/光纖)

03 學OSI七層模型沒用?

看到這不知道你了解了沒有。

很多人學OSI七層協定的時候,都是用腦子記下來應付考試、面試的。

我甚至看到過一些言論,說沒必要深度了解OSI七層協定,沒用,畢竟現在都是用的TCP/IP體系結構。

你說說看,如何最簡單粗暴地解釋OSI七層模型?

老楊個人不贊同。不了解OSI七層協定,怎麼更好得了解TCP/IP四層協定?

從1985年到現在,都沒有完全被時代舍棄,必然是仍有價值。

大家也不是一開始就成為網工的,我們對網絡世界的認知和學習,不止是需要一套标準,我們需要的是了解标準的不斷變化和看到内在的實用性。

在進入工作以後,你試着按照這套OSI七層協定标準來,基本上可以根據實際的應用場景,來規劃部署網絡,并且在網絡出現故障的時候,根據這個模型快速排除故障。

等到你實際遇到各種真正的協定和問題,就會了解,為什麼這一層應該對應到七層協定的應用層,那一層的bug在傳輸層。

這個時候你不僅明白了,而且發現,七層協定太有道理了。

原創:老楊丨10年資深網絡工程師,更多網工提升幹貨,請關注公衆号:網絡工程師俱樂部

繼續閱讀