開放系統通信(OSI)模型是一個代表網絡通信工作方式的概念模型。
思維導圖
什么是 OSI 模型?
開放系統互連 (OSI) 模型是由國際標準化組織創建的概念模型,支持各種通信系統使用標準協議進行通信。簡單而言,OSI 為保證不同計算機系統能夠相互通信提供了標準。
人們可以將 OSI 模型視為一種通用計算機網絡語言。根據這一概念,通信系統分成七個抽象層,逐層堆疊而成。
OSI 模型的每一層負責處理特定作業并與其上下層進行通信。DDoS 攻擊的目標是特定的網絡連接層;應用程序層攻擊的目標第 7 層,協議層攻擊的目標第 3 層和第 4 層。
為什么 OSI 模型至關重要?
雖然現代互聯網并未嚴格采用 OSI 模型(其更嚴格采用較簡單的互聯網協議套件),但 OSI 模型對于解決網絡問題仍然很有幫助。無論是某位無法使用筆記本電腦上網的用戶,還是為數千名用戶提供服務的網站宕機,OSI 模型都能幫助分解問題并找到問題根源。如果可以將問題范圍縮小到模型的某個特定層,就能避免許多不必要的工作。
OSI 模型有哪 7 個層?
OSI 模型的七個抽象層定義如下(自上而下):
7. 應用程序層
這是唯一直接接觸用戶數據的層。軟件應用程序(如 Web 瀏覽器和電子郵件客戶端)依靠應用程序層發起通信。但需要明確的是,客戶端軟件應用程序不屬于應用程序層;相反,應用程序層負責協議和數據操作,軟件依靠上述操作向用戶呈現有效數據。
應用程序層協議包括 HTTP 和 SMTP(簡單郵件傳輸協議是支持開展電子郵件通信的協議之一)。
6. 表示層
這一層主要負責準備數據,以便應用程序層進行使用;換言之,第 6 層用于確保數據可供應用程序使用。表示層負責完成數據轉換、加密和壓縮。
兩臺相互通信的設備可能使用不同的編碼方法,因此第 6 層負責將傳入數據轉換為接收設備應用程序層可以理解的語法。
如果設備通過加密連接進行通信,則第 6 層負責發送端加密和接收端解密,以便向應用程序層呈現非加密可讀數據。
最后,表示層還負責壓縮從應用程序層接收的數據,然后將數據傳遞到第 5 層。這有助于盡量減少要傳輸的數據量,從而提高通信速度和效率。
5. 會話層
這一層負責打開和關閉兩個設備之間的通信。通信打開與關閉之間的時間稱為會話。會話層用于確保會話保持打開的時長足以傳輸所有交換數據,而后立即關閉會話以避免浪費資源。
會話層還負責同步數據傳輸與檢查點。例如,如果傳輸一個 100MB 的文件,會話層可以每 5MB 設置一個檢查點。如果在傳輸了 52MB 后連接斷開或崩潰,可以從最后一個檢查點恢復會話,也就是只需再傳輸 50MB 數據。若未設置檢查點,則必須從頭開始傳輸整個文件。
4. 傳輸層
第 4 層負責兩個設備間的端到端通信。包括從會話層提取數據,將數據分解為多個區塊(稱為數據段),然后再發送到第 3 層。接收設備傳輸層負責重組數據段,確保數據可供會話層使用。
傳輸層還負責進行流量控制和錯誤控制。流量控制用于確定最佳傳輸速度,避免采用快速連接的發件人淹沒采用慢速連接的收件人。傳輸層通過確保接收數據的完整性(如果不完整,則請求重新傳輸)來對接收端進行錯誤控制。
傳輸層協議包括 傳輸控制協議(TCP) 和 用戶數據報協議(UDP)。
3. 網絡層
網絡層負責促進兩個不同網絡之間的數據傳輸。如果兩臺通信設備位于同一網絡,則不需要使用網絡層。網絡層在發送設備上將傳輸層發出的數據段分解更小的單元(稱為數據包),再在接收設備上重組這些數據包。網絡層還要確定數據到達目標的最佳物理路徑;人們將此稱為路由。
網絡層協議包括 IP, 互聯網控制消息協議(ICMP), 互聯網組消息協議(IGMP),以及 IPsec 套件。
2. 數據鏈路層
數據鏈路層與網絡層十分相似,但數據鏈路層用于促進同一網絡上兩臺設備之間的數據傳輸。數據鏈路層從網絡層提取數據包并將數據包分解成更小的部分(稱為幀)。與網絡層一樣,數據鏈路層也負責網絡內部通信流量控制和錯誤控制(傳輸層僅負責網絡間通信流量控制和錯誤控制)。
1. 物理層
這一層包括參與數據傳輸的物理設備,如電纜和交換機。同時還負責將數據轉換為位流,也就是由 1 和 0 構成的字符串。另外,兩臺設備的物理層必須達成信號約定,以便區分兩臺設備的字符串 1 和 0。
數據在 OSI 模型中如何流動
為通過網絡將人類可讀信息通過網絡從一臺設備傳輸到另一臺設備,必須在發送設備沿 OSI 模型的七層結構向下傳輸數據,然后在接收端沿七層結構向上傳輸數據。
庫珀先生想給帕爾梅女士發一封電子郵件。庫珀先生在筆記本電腦的電子郵件應用程序中編寫郵件,然后點擊 “發送”。電子郵件應用程序將電子郵件傳遞到應用程序層,應用程序層選取協議(SMTP),再將數據傳遞到表示層。接著,表示層壓縮數據,再將數據傳遞到會話層,由會話層初始化通信會話。
而后,數據將到達發送方的傳輸層,在傳輸層進行分段,再在網絡層將這些數據段分解為數據包,然后在數據鏈路層進一步分解為幀。隨后,數據鏈路層將這些幀傳輸到物理層,物理層將數據轉換為位流 1 和 0,最后通過物理介質(如電纜)發送數據。
帕爾梅女士的計算機通過物理介質(如她的 WiFi)接收位流后,數據將沿其設備的同一系列層級流動,但順序剛好相反。首先,物理層將位流從 1 和 0 轉換為幀,傳遞到數據鏈路層。然后,數據鏈路層將幀重組為數據包,供網絡層使用。接著,網絡層將數據包重組為數據段供傳輸層使用,傳輸層再將數據段重組為數據片段。
隨后,數據將流入收件方的會話層,會話層將數據傳遞到表示層并結束通信會話。表示層解壓數據并將原始數據傳遞到應用程序層。應用程序層將人類可讀數據傳遞到帕爾梅女士的電子郵件軟件,這樣她就能在筆記本電腦屏幕上閱讀庫珀先生的電子郵件了。
參考:什么是 OSI 模型? | Cloudflare (cloudflare-cn.com)