【Day 16】因為上課打遊戲,害我沒聽到老師講什麼是 OSI 七層模型

因為上課打遊戲,害我沒聽到老師講什麼是 OSI 七層模型

因為上課打遊戲,害我沒聽到老師講什麼是 OSI 七層模型

雖然從小學就開始接觸電腦課,但那時候的我根本把教室電腦當成遊戲機,上課時間幾乎都在玩,真正認真聽課的次數少之又少。一直到國高中,因為要準備升學考試,才不得不乖乖開始聽老師講課。

「各位同學,今天我們要學一個東西,叫做網路七層架構。」老師在黑板上寫下這幾個字,然後開始講解。

通常老師在正式上課之前,會先把全班的電腦「控制」住,把大家的螢幕都同步成一樣的畫面,這樣就沒有人能在上課時偷偷玩遊戲。當時用的軟體就叫做「網路教室」。

網路教室

講解的過程中,我還記得老師說過一句話:

「網路七層架構是一個分層式模型,主要用來幫助我們理解網路通訊的過程。」老師邊操控著電腦畫面,邊切換投影片,一邊講解著。

老師講網路七層架構?抱歉,我只懂「遊戲一層」。

「ㄟㄟ,XXX 要不要來打信長?」我問著坐在我旁邊的同學。

「好啊!」同學回答。

嗯?你是不是很好奇一件事情呢?

「老師不是已經控制住你們電腦了?怎麼還可以打遊戲?」

沒錯,雖然當下確實不能打遊戲,但我後來發現了一個小技巧能擺脫老師的控制──只要直接「關機」,就能把控制權解除,接著就能隨心所欲地做任何事了。

小技巧其實很簡單:只要先打開一些會在關機時跳出「是否要強制關閉」視窗的程式,像是 Word、Excel、PowerPoint 都行。

當 Windows 執行關機時,系統會嘗試把能關閉的程式都關掉,其中也包含了「網路教室」。

這時候,如果有程式跳出「是否要關閉」的視窗,你只要選「否」,就能成功讓「網路教室」被關掉,同時電腦也不會真的關機。這樣一來,老師的控制就解除了──不過,好孩子千萬別學這招唷

那這招真的沒有壞處嗎?當然有。記得有一次老師在課後布置作業,但因為我早就把網路教室關掉,結果完全不知道老師出了什麼作業。畢竟要讓網路教室恢復正常,只能重新啟動電腦才行。

OSI 七層模型

前面我們章節介紹了不少東西,其中包含 Email、即時通以及遊戲等,這些都脫離不了一個核心概念,也就是「網路」,但你有想過一個問題嗎?

「網路是怎麼運作的呢?」

為了幫助大家理解網路的運作與架構,接下來要介紹的是「OSI 七層模型」。別搞錯了,這可不是七龍珠,裡面沒有悟空,只有滿滿的網路協定。

七龍珠(圖源網路)

簡單來說,OSI 模型(Open Systems Interconnection Model)就是一個網路通訊的參考架構,它把資料傳輸的過程拆成七層,讓我們更容易理解網路是怎麼運作的,同時也方便不同系統之間能互通、維護。

不過要注意,OSI 模型其實是一個 理論模型,現實中的網路協定(像是 TCP/IP)並不完全依照七層來劃分。但 OSI 模型依然是理解網路運作的重要參考框架,特別是在排查與分析網路問題時,常會用它來當作依據。

那麼,簡單來講 OSI 模型就是將網路的硬體跟軟體定義成了七層標準:

OSI 七層架構圖

但我們網路實際使用的是 TCP/IP 則是四層模型,並且是將 OSI 的七層模型進行了合併:

TCP/IP 四層模型

可是後來又發現,切割成五層架構才比較合理實際狀況:

TCP/IP 五層模型

「ㄟ…不是,這麼多種模型,所以我們到底要學什麼?」

你可能會想問:「為什麼不直接講 TCP/IP?」

其實很簡單,OSI 是理論模型,TCP/IP 則是實際應用。差別在於 OSI 把網路通訊切得更細,所以在分析或排查問題時更好用。也因此,接下來我們會著重介紹 OSI 七層模型。

首先,OSI 七層模型由 下到上分為 1 到 7 層(實體層 → 應用層),不過我們常常會從第七層(應用層)開始往下解釋,因為它最貼近使用者:

OSI 七層架構圖

在 OSI 模型中,從第七層往下算到第一層,層級越高就越接近使用者,層級越低則越貼近硬體設備。而每一層都有其特定的功能與責任。為了更好理解,這裡舉一個情境來說明:

「小明今天打開 Chrome 瀏覽器,輸入了 www.google.com,然後按下 Enter 鍵,接著瀏覽器就會顯示 Google 的首頁。」

那麼把這個情境套用到 OSI 七層模型中,會是這樣的:

  • 第七層(應用層):小明用 Chrome 瀏覽器,透過 HTTP 協定向 Google 伺服器發出「我要打開 google.com」的請求,這個請求其實就是你輸入的網址。
  • 第六層(表示層):瀏覽器把請求資料轉換成電腦能理解的格式,並進行編碼、壓縮或加密處理(例如透過 TLS/SSL 建立 HTTPS 安全連線)。
  • 第五層(會議層):瀏覽器先與 Google 伺服器建立並維持「會話連線」,確保雙方能持續對話。就像先打招呼:「嗨,我是小明,要開始和你溝通了!」
  • 第四層(傳輸層):瀏覽器把資料切割成多個小段,交給 TCP 協定處理。TCP 會加上序號並檢查錯誤,確保資料完整送達。即使只是個請求訊息,也要被可靠地傳遞。
  • 第三層(網路層):每個資料段會加上 IP 標頭,標明來源 IP(小明的電腦)和目的 IP(Google 伺服器)。網路層會透過路由器決定最佳路徑,把封包送到正確的位置。
  • 第二層(資料鏈路層):封包被封裝成 Frame(幀),並加入來源與目的 MAC 位址。這一層負責點對點的傳輸,例如:「小明的電腦 → 家裡 Wi-Fi AP → 路由器」。
  • 第一層(實體層):最底層,資料最終轉換成電訊號(電線)、光訊號(光纖)、或無線電波(Wi-Fi),把 0 和 1 真正送出去。

接著,Google 的伺服器在收到請求後,也會依照相同的七層流程進行處理,最後再把 Google 首頁的資料回傳給小明的瀏覽器,而瀏覽器則會把這些資料組合並呈現在螢幕上。

接下來說明一下 OSI 在傳輸時的流程:一開始,使用者這邊會從第七層往下處理,一路到第一層,再透過網路把資料傳送到對方伺服器。對方伺服器接收到資料後,則會從第一層往上處理,直到第七層完成。

OSI 流程

那 Google 又是怎麼把資料回傳給小明呢?其實流程完全相同,只是這次是從 Google 伺服器開始,先從第七層往下處理到第一層,再透過網路傳送到小明的電腦。小明的電腦接收到資料後,會從第一層一路往上處理到第七層,最後在瀏覽器中呈現出來。

OSI 流程

以上就是 OSI 七層模型的完整運作流程。

最後,我再幫大家整理一下七層模型的層級名稱、功能說明,以及對應的常見協定或應用程式:

層級 中文名稱 英文名稱 功能說明 常見協定/應用程式
7 應用層 Application Layer 使用者與網路互動的介面,提供應用服務 HTTP、FTP、SMTP、DNS、Telnet、Web、Email
6 表示層 Presentation Layer 資料格式轉換、編碼解碼、壓縮加密處理 TLS/SSL、JPEG、MP4、UTF-8、Base64
5 會議層 Session Layer 管理會話連線、控制對話、建立/維持/終止連線 NetBIOS、RPC、SQL session、WebSocket
4 傳輸層 Transport Layer 分段傳輸、錯誤控制、流量控制、重傳機制 TCP、UDP、QUIC
3 網路層 Network Layer 路由選擇、IP 位址處理、封包傳輸、跨網段通訊 IP、ICMP、IGMP、BGP、IPSec
2 資料連結層層 Data Link Layer 封裝資料幀、錯誤偵測、MAC 管理、在同一網段傳輸 Ethernet、ARP、PPP、Switch、Wi-Fi MAC 層
1 實體層 Physical Layer 實際媒介的傳輸,如電壓、電磁波、光訊號轉換成 0 和 1 RJ45、光纖、同軸電纜、無線電波、Hub、Repeater

結語

記得我剛出社會去面試時,真的被問到過 OSI 模型,當下我的表情大概就是這樣:

?_?

畢竟這東西已經離我好幾年了,為了面試我還特地翻出以前的筆記,才把 OSI 七層模型重新複習了一遍 XD

同步更新

本文將同步更新至以下網站: