什麼是 OSI 模型? - daniel-qa/Network GitHub Wiki

什麼是 OSI 模型?

開放式系統互相連線 (OSI) 模型是由國際阻止為實現標準化而建立的一種概念模型, 它能使各種通訊系統使用標準通訊協定進行通訊。通俗來說,OSI 為不同的電腦系統建立了一個能夠互相通訊的標準。

我們可以將 OSI 模型視為電腦網路的一種通用語言。它建立在將通訊系統拆分為七個抽象層這一概念的基礎之上,每一層都堆疊在最後一層之上。

OSI 模型的每一層均處理特定作業,並與其上下的層進行通訊。DDoS 攻擊針對網路連線的特定層;應用程式層攻擊第 7 層為目標,而通訊協定層攻擊以第 3 層和第 4 層為目標。

  • 為什麼 OSI 模型如此重要?

盡管現今的網際網路並未嚴格遵循 OSI 模型 (它更為緊密遵循較簡單的網際網路通訊協定套件),但 OSI 模型在對網路問題進行疑難排解上仍舊極為實用。無論是某個使用者的膝上型電腦無法連線網際網路,還是數千名使用者的網站被關閉,OSI 模型都能協助分解故障並分離故障來源。如果能夠將問題縮小至該模型的一個特定層,便能避免許多不必要工作。

What are the 7 layers of the OSI Model?

OSI 模型的七個抽象層從頂部到底部可定義如下:

7. 應用程式層

這是唯一一個直接與來自使用者的資料進行互動的層。軟體應用程式類似於網頁瀏覽器,電子郵件用戶端依靠此應用程式層初始化通訊。但應該明確的是,用戶端軟體應用程式不是應用程式層的一部分;相反,應用程式層負責通訊協定和資料操作,軟體依靠這些來為使用者呈現有意義的資料。

應用程式層通訊協定包括 HTTPSMTP(簡易郵件傳輸通訊協定是支援電子郵件通訊的通訊協定之一)。

6. 呈現層

該層主要負責準備資料以供應用程式層使用;換言之,第 6 層可使資料呈現給需要消費的應用程式。呈現層負責轉譯、加密和壓縮資料。

兩個通訊裝置在通訊時可能使用不同的編碼方式,因此第 6 層負責將傳入資料轉譯至接收裝置的應用程式層能夠理解的語法。

如果裝置透過加密連線進行通訊,第 6 層將負責在傳送者終端新增加密以及在接受者終端解碼,以便它能呈現帶有未加密、可讀取資料的應用程式層。

最後,呈現層也負責壓縮其從應用程式層接收到的資料,然後將其傳送至第 5 層。這可將傳輸的資料量降到最低,協助改善通訊速度和效率。

5. 工作階段層

該層負責處理開啟和關閉兩個裝置之間的通訊。通訊開啟時和關閉時當中的時間稱為工作階段。工作階段層可確保工作階段保持足夠長的開啟時間以傳輸所有進行交換的資料,然後立即關閉工作階段以避免浪費資源。

工作階段層也會與檢查點同步資料傳輸。例如,若正在傳輸 100 MB 檔案,工作階段層可以每 5 MB 設定一個檢查點。若在傳輸 52 MB 後中斷連線或毀損,工作階段可從上一個檢查點繼續進行,亦即只剩下 50 MB 的資料需要傳輸。若沒有檢查點,整個傳輸就必須再次從頭開始。

4. 傳輸層

第 4 層負責處理兩個裝置之間的端對端通訊。這包括從工作階段層取用資料,並在傳送至第 3 層之前分解為稱為區段的區塊。接收裝置上的傳輸層負責將區段重組為工作階段層可以取用的資料。

傳輸層還負責流量控制和錯誤控制。流量控制可確定船速的最佳速度,以確保具有快速連線的傳送者不會淹沒具有低速連線的接受者。傳輸層在接收端執行錯誤控制,從而確保接收的資料完整無缺,倘若不完整,可要求重新傳輸。

傳輸層通訊協定包括 傳輸控制通訊協定 (TCP)使用者資料包通訊協定 (UDP)。

3. 網路層

網路層負責促成兩個不同網路之間的資料傳輸。

如果兩個裝置的通訊在同一個網路上,將無需網路層

網路層在傳送者的裝置中將傳輸層中的區段分解為較小的單元(又稱封包),並在接收裝置中重組這些封包。網路層還能為資料尋找達到其目的地的最佳實體路徑;這又稱路由傳送

網路層通訊協定包括 IP、網 際網路控制訊息通訊協定 (ICMP)、網 際網路群組訊息通訊協定 (IGMP)IPsec 套件。

2. 資料連結層

資料連結層與網路層極為相似,只是資料連結層可促成同一網路上的兩個裝置之間的資料傳輸。資料連結層從網路層中獲取封包,並將其分解為更小的部分(又稱框架)

與網路層類似,資料連結層也負責內部網路通訊中的流量控制和錯誤控制(傳輸層僅執行網際網路通訊的控制和錯誤控制)。

1. 實體層

該層包括資料傳輸中涉及的實體設備,例如纜線和開關。該層還可使資料轉換為位元流,即由 1 和 0 組成的字串。兩個裝置的實體層還必須在訊號慣例上取得一致意見,以便 1 能與兩個裝置上的 0 區分開來。

資料如何流經 OSI 模型

為了使人們可讀取的資訊能透過網路從一個裝置傳送至另一個裝置,資料必須沿著傳送裝置上的七層 OSI 模型向下傳送,然後沿著接收端上的七層向上傳送

例如:Cooper 先生想要向 Palmer 女士傳送一封電子郵件。Cooper 先生使用膝上型電腦在電子郵件應用程式中撰寫了訊息,然後點選「傳送」。他的電子郵件應用程式將會把電子郵件訊息傳遞至應用程式層,應用程式層將會選取通訊協定 (SMTP) 並將資料傳遞至呈現層。接著呈現層會壓縮資料,然後送到工作階段層,工作階段層將會初始化通訊工作階段

該資料將點擊對其分割的傳送者的傳輸層,然後,這些區段將分解為網路層中的封包,該封包又將進一步分解為資料連結層的框架。接著資料連結層會將這些框架傳遞至實體層,實體層再將資料轉換為 1 和 0 的位元流,並透過纜線等實體媒體傳送

Palmer 女士的電腦透過實體媒體 (例如她的 wifi) 收到位元流後,資料將會通過裝置上同一系列的層,但會以相反順序進行。首先,實體層會將 1 和 0 的位元流轉換為傳送至資料連結層框架。然後資料連結層會將框架重組為適用網路層的封包。接著網路層會將封包組成適用傳輸層的區段傳輸層則將區段重組為一個資料物件

接著資料將會流入接收者的工作階段層,工作階段層會將資料傳遞至呈現層,然後結束通訊工作階段。接著呈現層將會移除壓縮並將原始資料向上傳遞至應用程式層。應用程式層則將人類可讀取的資料饋送給 Palmer 女士的電子郵件軟體,電子郵件軟體就會允許她在膝上型電腦螢幕上讀取 Cooper 先生的電子郵件。