通訊網路/OSI 參考模型
此頁面將討論 OSI 參考模型
| 層 | 它做了什麼 |
|---|---|
| 應用層 | 應用層是計算機使用者將看到並與其互動的部分。此層是程式設計師開發的“應用程式”。 |
| 表示層 | 表示層負責將資料格式化為人類可讀的格式,以及翻譯不同的語言等。 |
| 會話層 | 會話層將維護不同的連線,以防單個應用程式想要連線到多個遠端站點(或與單個遠端站點建立多個連線)。 |
| 傳輸層 | 傳輸層將處理資料傳輸,並將區分面向連線的傳輸(TCP)和無連線的傳輸(UDP)。 |
| 網路層 | 網路層允許不同的機器在邏輯上相互定址,並允許計算機之間可靠地傳輸資料(IP)。 |
| 資料鏈路層 | 資料鏈路層是確定資料如何透過物理通道傳送的層。資料鏈路協議的例子包括“乙太網”和“PPP”。 |
| 物理層 | 物理層由構成傳輸系統物理硬體的物理電線或天線組成。物理層實體包括 Wi-Fi 傳輸和 100BaseT 電纜。 |
OSI 模型允許不同的開發人員製作產品和軟體與其他產品介面,而無需擔心底層是如何實現的。每層都與上層和下層有指定介面,因此每個人都可以處理不同的領域,而無需擔心相容性。
更高層先處理資料,因此更高層的協議將按降序接觸資料包。假設我們有一個使用傳輸層中的 TCP 協議、網路層中的 IP 以及資料鏈路層中的乙太網的終端系統。這是資料包的建立方式
1. 我們的應用程式建立一個數據包
- |資料|
2. TCP 建立一個 TCP 資料包
- |TCP 標頭|資料|
3. IP 建立一個 IP 資料包
- |IP 標頭|TCP 標頭|資料|CRC|
4. 乙太網建立一個乙太網幀
- |乙太網標頭|IP 標頭|TCP 標頭|資料|CRC|
在接收端,各層以相反的順序接收資料
1. 乙太網層讀取並刪除乙太網標頭
- |IP 標頭|TCP 標頭|資料|CRC|
2. IP 層讀取 IP 標頭並檢查 CRC 是否有錯誤
- |TCP 標頭|資料|
3. TCP 層讀取 TCP 標頭
- |資料|
4. 應用程式讀取資料。
需要注意的是,多個 TCP 資料包可以壓縮到單個 IP 資料包中,多個 IP 資料包可以組合成乙太網幀。
網路層負責逐跳傳輸訊息。主要的網際網路層協議存在於此層。網際網路協議 (IP) 是所有協議中的主要組成部分,但我們還將討論其他協議,例如地址解析協議 (ARP)、動態主機配置協議 (DHCP)、網路地址轉換 (NAT) 和網際網路控制訊息協議 (ICMP)。網路層不保證資料的可靠通訊和傳遞。
網路層負責逐跳傳輸資料報,從一個站點發送到另一個站點,直到訊息到達目的地。每臺計算機都應該分配一個唯一的 IP 地址作為介面,以便在網路中識別自己。當訊息從傳輸層到達時,IP 會查詢訊息地址,執行封裝並在末尾新增一個標頭以形成資料報,然後傳遞給資料鏈路層。接收端也一樣,IP 會執行解封裝並刪除網路層標頭,然後傳送到傳輸層。網路模型如下圖所示
圖 1 OSI 模型中的網路層
當資料報從源傳送到目的地時,以下是 IP 如何處理資料報傳輸的簡單步驟
- 上層應用程式向網路層傳送一個數據包。
- 透過校驗和進行資料計算。
- IP 標頭和資料報構造。
- 透過閘道器路由。
- 每個閘道器的 IP 層都會執行校驗和。如果校驗和不匹配,資料報將被丟棄,並將錯誤訊息傳送回傳送機器。在此過程中,如果 TTL 減到 0,也會發生同樣的結果。而且,在資料報沿著網際網路工作傳遞的每一個停靠點,都會確定目的地地址的路由路徑。
- 資料報到達目的地的網路層。
- 執行校驗和計算。
- 取出 IP 標頭。
- 訊息傳遞給上層應用程式。
圖 2 網路層中的 IP 特性
在網路層中,存在其他協議,例如地址解析協議 (ARP) 和網際網路控制訊息協議 (ICMP),但是,IP 在所有協議中佔有很大一部分。
圖 3 網路層中的網際網路協議
此外,IP 是一個無連線協議,這意味著每個資料包都作為獨立個體並獨立透過網際網路。存在順序,但沒有對資料包傳輸的順序進行跟蹤,因此無法保證,因此傳輸不可靠。
TCP/ IP 模型