## 前言 當談到網絡和通訊時,你可能聽過「OSI七層模型」的名詞,但它到底是什麼呢? OSI模型,或稱為開放系統互連模型(Open Systems Interconnection model),是一個引人入勝的概念,它由國際標準化組織(ISO)所創建,旨在統一不同廠商的計算機和網絡設備,以確保它們可以無縫互通。 在接下來的內容中,我們將深入探討OSI模型,並清楚解釋每一層的功能和重要性,這七層模型代表著著不同的概念,且在實際應用中扮演著關鍵角色。 也將透過實際應用場景的解釋,讓你更容易理解這個模型的實際用途。 >以下內容主要參考chatgpt、bard、bing回答進行修改 ## OSI七層模型 OSI 七層模型,這個名詞你一定聽過,但究竟是什麼呢? 這個模型將通信系統中的數據流分為七個層次,從最靠近用戶操作的第七層,一直到物理媒介上實際傳輸數據的第一層。 每一層都為上一層提供功能,同時接受下一層提供的功能支援。這些功能是通過標準的通信協議在軟體中實現的。 OSI模型的七個層從頂部到底部分別是: 1. **第七層:應用層(Application Layer)** - 負責處理應用程式並提供用戶網絡應用服務,包括動態主機組態協議(DHCP)、檔案傳輸協議(FTP)、超文本傳輸協議(HTTP)等。 2. **第六層:展示層(Presentation Layer)** - 這一層負責轉換數據的表示方式,並加入展示控制碼,例如ASCII、圖片格式、加密和解密等。 3. **第五層:會議層(Session Layer)** - 負責建立和終止網絡連接,並加入會議控制碼,例如網絡基本輸入輸出系統(NetBIOS)。 4. **第四層:傳輸層(Transport Layer)** - 這一層負責整體的數據傳輸和控制,還要在數據中加入傳輸控制碼,就像傳輸控制協議(TCP)。 5. **第三層:網路層(Network Layer)** - 負責選擇數據的路徑並轉發,並加入網路位址,像是網際網路協議(IP)。 6. **第二層:資料連結層(Data Link Layer)** - 這是建立邏輯連接的地方,同時處理流量控制和錯誤檢測,比如乙太網和無線區域網。 7. **第一層:實體層(Physical Layer)** - 這一層負責在物理媒介上傳輸數位信號,就像電線、光纖和無線波一樣。 ![image](https://s7280.pcdn.co/wp-content/uploads/2018/06/osi-model-7-layers-1.png) >圖片出處:[www.bmc.com/blogs](https://www.bmc.com/blogs/osi-model-7-layers/) 在接下來的章節中,將深入探討每一層的細節,並解釋它們在現實世界中的應用。 ## 各層的深入解析 ### 第七層,應用層(Application Layer): #### 功能 - **提供網路服務給終端用戶應用**:允許訪問網路資源,並提供用戶介面。 - **應用間通訊**:促進不同應用程序之間的通訊和數據共享。 - **文件傳輸、電子郵件和數據庫管理**:支持各種網路應用,如FTP、SMTP和HTTP。 - **應用服務提供**:提供各種應用服務,例如網頁服務、在線遊戲和虛擬環境。 #### 相關設備 - **終端設備**: 與用戶的終端設備(如電腦、手機、平板)上的應用程序相關。 - **服務器**:托管提供特定應用服務的軟件,如網頁服務器、郵件服務器。 - **網路存儲設備**:用於存儲和管理網路上的數據,如NAS(網路附加存儲)。 #### 規範內容 - **應用協議**:如HTTP(超文本傳輸協議)、FTP(文件傳輸協議)、SMTP(簡單郵件傳輸協議)。 - **APIs(應用程序編程接口)**:使不同的應用程序可以交互和通信。 - **服務質量(QoS)標準**:確保應用層服務的性能和可靠性。 #### 在網路瀏覽中的應用 - **網頁請求和顯示**:當使用瀏覽器訪問網站時,應用層負責發送HTTP請求到服務器並接收響應,然後將這些信息顯示為網頁。 - **用戶交互**:提供用戶界面,允許用戶與網站進行互動,例如點擊鏈接、提交表單。 - **網路服務使用**:通過應用層協議,使用者可以使用各種網路服務,如網上購物、在線銀行和社交媒體。 應用層在使網路資源為用戶所用和簡化用戶與網路的互動方面起著至關重要的作用。 它是OSI模型中最接近用戶的層,直接影響用戶的網路體驗。 ### 第六層,表示層(Presentation Layer): #### 功能 - **數據格式化和轉換**:負責將數據從一種格式轉換為另一種格式,以確保不同系統間的數據兼容性。 - **數據加密和解密**:在數據傳輸過程中提供加密和解密服務,保證數據的安全性。 - **數據壓縮**:對數據進行壓縮以減少傳輸過程中所需的帶寬。 - **字符編碼轉換**:如ASCII、Unicode等不同的字符集轉換。 #### 相關設備 - **表示層主要與軟件應用相關**,並不直接與特定的硬件設備相聯系。 - **應用程序和中間件**:可執行表示層功能,如數據格式轉換的工具、加密軟件等。 #### 規範內容 - **數據格式標準**:包括數據結構和格式的標準化,如XML、JSON。 - **加密標準**:如SSL/TLS用於安全數據傳輸。 - **壓縮算法**:如ZIP、GZIP等數據壓縮技術。 - **字符集和編碼**:如UTF-8、ISO 8859等。 #### 在網路瀏覽中的應用 - **數據轉換**:當瀏覽器從網絡接收數據時,表示層負責將數據(如HTML、CSS、JavaScript文件)從原始格式轉換成瀏覽器可以解析和顯示的格式。 - **數據加密**:在進行安全網路交易時(如使用HTTPS),表示層參與加密和解密過程,確保傳輸的數據安全。 - **內容壓縮**:在下載網頁時,表示層可能會壓縮數據以加快傳輸速度,瀏覽器則在接收後解壓縮。 表示層在確保不同系統間數據格式兼容和安全傳輸方面發揮著關鍵作用,特別是在複雜的網路環境和多樣化的設備中。 ### 第五層,會議層(Session Layer): #### 功能 - **建立、管理和終止會話**:會議層負責在兩個終端應用進程間建立、管理和終止會話。這包括對會話的控制和同步。 - **同步和恢復**:它也負責在發生故障時進行數據同步和恢復,確保數據完整。 - **對話控制**:會議層可以設置對話控制,決定哪個終端可以在何時發送數據。 #### 相關設備 - **會議層並不直接關聯特定的硬件設備**。相反,它主要與軟件和協議相關,例如網路操作系統、應用程序等。 - **服務器和客戶端軟件**:可以執行會議層協議,以管理會話和通訊過程。 #### 規範內容 - **協議標準**:會議層包括如NetBIOS(Network Basic Input/Output System)和RPC(Remote Procedure Call)等標準。 - **會話控制碼**:在數據傳輸中加入控制碼,用於管理會話的開始、終止和管理。 - **同步點**:設立同步點以幫助錯誤恢復,確保數據傳輸的連續性和完整性。 #### 在網路瀏覽中的應用 - **管理瀏覽器與服務器間的會話**:當你在瀏覽器中開啟一個網頁時,會議層負責建立和維持你的設備與網站服務器間的會話,直到會話終止。 - **確保數據傳輸的完整性**:在長時間的或多階段的通訊中,會議層有助於確保數據傳輸的完整性,特別是在網絡條件不穩定的情況下。 - **提供必要的同步**:在瀏覽多頁網站時,會議層通過同步點確保用戶的動作(如點擊、表單提交)能正確傳遞給服務器並得到響應。 會議層的這些功能確保了網路通訊的有效性和可靠性,特別是在需要長時間或復雜的交互式通訊時。 ### 第四層,傳輸層(Transport Layer): #### 功能 - **建立、管理和終止連接**:傳輸層負責在網路中的不同主機之間建立、維護和終止數據傳輸連接。 - **數據分段和重組**:將大型數據分割成較小的分段進行傳輸,並在目的地重新組合。 - **錯誤檢測和恢復**:通過錯誤檢測機制(如檢驗和)和重傳策略來確保數據的可靠傳輸。 - **流量控制和擁塞控制**:調節數據傳輸速率,以避免網路擁塞和確保各個應用的公平性。 #### 相關設備 - **傳輸層功能通常內嵌於操作系統的內核中**,並通過各種傳輸協議庫實現。 - **網路介面卡(NIC)**:在物理層和數據鏈接層進行數據處理的同時,也支持傳輸層協議的實施。 - **服務器和客戶端計算機**:任何參與網路通訊的設備,因為傳輸層協議在這些設備上運行。 #### 規範內容 - **傳輸協議**:如TCP(傳輸控制協議)和UDP(用戶數據報協議)。 - **端口號**:用於標識發送和接收應用程序的端口號。 - **連接導向和無連接服務**:TCP提供可靠的連接導向服務,而UDP提供無連接的數據傳輸服務。 #### 在網路瀏覽中的應用 - **數據傳輸管理**:當在瀏覽器中發出網頁請求時,傳輸層負責將這些請求分成數據包,並確保它們可靠地傳送到網站的服務器。 - **錯誤處理和數據完整性**:確保從網站服務器接收的數據完整無缺,並在必要時進行重傳。 - **多應用程序數據傳輸**:允許同一台設備上的多個應用程序(如不同的瀏覽器標籤或窗口)同時與不同的服務器建立和維護通訊連接。 傳輸層在確保數據在網路中的可靠傳輸和有效管理方面起著關鍵作用,是實現網路通訊的重要部分。 ### 第三層,網路層(Network Layer): #### 功能 - **路徑選擇和數據包轉發**:負責決定數據包在網路中的路徑選擇,確保數據包從源頭到達目的地。 - **地址分配和地址解析**:負責IP地址的分配和解析,使得每個裝置在網路上有唯一標識。 - **路由控制**:管理數據包的路由,包括路由選擇和路由協議。 - **分段和重組**:對大於網路最大傳輸單位(MTU)的數據包進行分段和在目的地重組。 #### 相關設備 - **路由器**:負責在不同網路間轉發數據包。 - **第三層交換機**:能夠進行路徑選擇的網路交換機。 - **網關設備**:提供不同網路系統間的連接和數據轉換。 #### 規範內容 - **網際網路協定(IP)**:為每個網路接口提供唯一的地址,是網路層最重要的部分。 - **路由協議**:如OSPF(開放最短路徑優先)、BGP(邊界閘道器協定)等,用於路徑的選擇和數據包的轉發。 - **地址解析協議(ARP)**:用於將IP地址轉換為物理地址。 #### 在網路瀏覽中的應用 - **數據包傳輸**:當你訪問一個網站時,網路層負責將你的請求數據包從你的設備轉發到服務器,並將服務器的響應數據包轉發回你的設備。 - **路由選擇**:網路層根據多種因素(如距離、速度、流量)決定最佳路徑來傳送數據包。 - **IP地址管理**:當你的設備連接到網路時,網路層負責分配IP地址,並在瀏覽過程中使用這個地址來確保數據正確傳送和接收。 網路層在確保數據在網路中的有效傳輸和達到正確目的地方面發揮著關鍵作用。 ### 第二層,資料連結層(Data Link Layer): #### 功能 - **幀封裝和解封裝**:將網路層的數據包封裝成幀,添加來源和目的MAC地址,並在接收端進行解封裝。 - **物理地址定位**:使用MAC地址來確定數據的物理位置。 - **流量控制**:控制數據幀的傳輸速率,以防止網路擁塞。 - **錯誤檢測和修復**:通過錯誤檢測碼(如CRC)來檢測傳輸過程中的錯誤,並在必要時進行重傳。 #### 相關設備 - **網路交換機(Switch)**:在資料連結層上轉發數據幀,根據MAC地址決定幀的轉發。 - **網橋**:連接不同的網路段,工作在資料連結層。 - **網路介面卡(NIC)**:每個連接到網路的設備上的硬件部件,負責數據的物理傳輸和接收。 #### 規範內容 - **以太網(Ethernet)協議**:一種在局域網(LAN)中廣泛使用的資料連結層技術。 - **MAC地址**:唯一識別網路介面的地址。 - **點對點協議(PPP)**:用於直接連接的兩個網路節點之間的數據鏈路層協議。 - **幀中繼(Frame Relay)**:一種高效的數據鏈路層協議,用於廣域網(WAN)。 #### 在網路瀏覽中的應用 - **數據幀的轉發**:當你訪問一個網站時,資料連結層負責將來自網路層的數據包轉換為幀,並通過網路將這些幀傳輸到你的本地網路設備。 - **物理地址處理**:使用MAC地址來確保數據幀能夠準確地被傳輸到正確的目的地。 - **錯誤檢測**:在數據幀傳輸過程中進行錯誤檢測,並在檢測到錯誤時進行必要的修復動作。 資料連結層在保證數據可靠地從一個網路節點傳輸到另一個節點方面起著關鍵作用。 ### 第一層,實體層(Physical Layer): #### 功能 - **數據位元流傳輸**:將來自數據鏈接層的數據幀轉換為通過物理媒介傳輸的位元流。 - **設備間的信號傳輸**:管理從一個裝置到另一個裝置的原始數據傳輸。 - **訊號慣例和編碼**:定義數據如何在物理媒介上編碼和信號化,包括位元速率、電壓級別等。 - **物理連接管理**:涉及物理連接介面的標準和規範,如連接器類型和電纜類型。 #### 相關設備 - **網路電纜**:如同軸電纜、光纖電纜和雙絞線。 - **網路介面卡(NIC)**:負責在設備和物理媒介之間進行數據轉換。 - **集線器(Hub)**:一種基本的網路裝置,用於連接多個網路介面。 - **調製解調器**:將數字信號轉換為模擬信號,反之亦然。 #### 規範內容 - **物理媒介標準**:如IEEE 802.3(以太網)、IEEE 802.11(無線局域網)等。 - **訊號和編碼技術**:規定如何將數字數據轉換為通過物理媒介的信號。 - **介面標準**:如RJ45(有線網路)和各種光纖連接器的標準。 #### 在網路瀏覽中的應用 - **網頁數據的物理傳輸**:當你訪問一個網站時,實體層負責將來自你的設備的數據位元流傳輸到網路,以及將來自網站的數據位元流傳輸回你的設備。 - **網路連接**:通過有線或無線連接確保你的設備可以訪問網路。 - **信號轉換**:將數據鏈接層的數據幀轉換為適合傳輸的信號,並在接收端進行相反的轉換。 實體層在網路的物理實現和數據的實際傳輸中起著基礎性的作用。 ## OSI模型的實際應用 在瀏覽的輸入欄中輸入中輸入 "www.google.com" 並按下回車後,請求會經過OSI七層模型的各個層次進行處理。 以下是每個階段的運作功能: ### 1. 應用層(Application Layer) - **請求生成**:瀏覽器(如Chrome、Firefox)作為應用層的一部分,首先進行DNS解析來將 "www.google.com" 轉換為IP地址,然後生成一個HTTP請求。 - **用戶界面互動**:瀏覽器提供了與用戶互動的界面,允許用戶輸入和發送請求。 ### 2. 表示層(Presentation Layer) - **數據格式化**:將HTTP請求數據轉換為適合網路傳輸的格式。這可能包括字符編碼(例如,從ASCII轉換成位元組流)。 ### 3. 會議層(Session Layer) - **建立連接**:管理瀏覽器與Web服務器之間的會話,確保通訊連接有效。 ### 4. 傳輸層(Transport Layer) - **建立端到端通訊**:- 在TCP中,HTTP請求數據被分段成封包,並且每段都被加上TCP頭部信息,這包括來源和目的端口號、序列號和確認號等。 - **端口號分配**:使用HTTP的預設端口80或HTTPS的443端口。 ### 5. 網路層(Network Layer) - **IP地址定位和路由**:來自傳輸層的封包會被封裝進IP數據包中。這個過程包括添加IP頭部,其中包含源和目的IP地址,以及其他控制信息。 ### 6. 資料連結層(Data Link Layer) - **幀處理**:數據包被進一步封裝成幀,添加MAC地址。在這一層,錯誤檢查和修正也會發生,以保證數據的準確傳輸。 ### 7. 實體層(Physical Layer) - **物理傳輸**:幀被轉換為電信號或其他相應的物理形式(如光信號),通過物理網路媒介(如乙太網纜、無線網路)傳輸。 ### 網頁接收和顯示 - **網頁伺服器處理請求**:Google的伺服器接收請求,處理它,並生成一個HTTP響應(包含網頁內容)。 - **回程路線**:HTTP響應沿著回程路線(可能與來程不同)經過網路傳輸回您的電腦。 - **瀏覽器渲染網頁**:您的瀏覽器接收到數據,解析HTTP響應,並渲染網頁供您查看。 在整個過程中,您的數據請求和伺服器的響應數據在OSI模型的每一層中都被轉換和處理,以確保數據的準確傳輸和正確呈現。 ## 參考資料 1. https://www.bmc.com/blogs/osi-model-7-layers/ 2. https://www.ithome.com.tw/tech/47085 3. https://www.cloudflare.com/zh-tw/learning/ddos/glossary/open-systems-interconnection-model-osi/ 4. chatgpt 5. bard 6. bing ## 延伸閱讀 [TCP/IP 4層是什麼? 跟OSI七層有什麼關係](https://hackmd.io/@rgnkud/SkBECYMP6)