理解TCP/IP協議分層(二)
1. TCP/IP協議族和協議
前面有提到標準OSI參考模型,本文簡單說明TCP/IP協議族的體系結構和特定協議。ARPANET參考模型是最終形成的Internet協議分層的基礎。
1.1 ARPANET參考模型
如下圖所示:
上圖描述了源於ARPANET參考模型的分層,其最終被TCP/IP協議族採納,它的結構比OSI模型更簡單。
- 2.5層是一個”非正式“的層。ARP(地址解析協議)在這層,該協議是IPv4的專用協議,完成IP層使用的地址和鏈路層使用的地址之間的轉換。
- 3層是可以看到IP,它是TCP/IP中最重要的網路層協議。IP傳送給鏈路層協議的PDU稱為IP資料報,最大64KB(IPv6將它擴大到4GB)。
- Internet控制訊息協議(ICMP)是IP的一個輔助協議,為3.5層協議。IP層使用它與其他主機或路由器的IP層之間交換差錯訊息和其他重要資訊。
- 4層中常見協議是TCP和UDP,不過這兩種區別很大。其中TCP會處理資料包丟失、重複和重新排序等IP層不處理的問題。
1.2 TCP/IP中的複用、分解和封裝
前文簡單提到了協議複用、分解和封裝的基礎內容。每層都會有一個識別符號,允許接收方決定哪些協議或資料流可複用在一起。每層通常也有地址資訊,
它用於保證一個PDU被交付到正確的地方。下圖模擬瞭如何在一臺Internet主機上進行分解。
TCP/IP協議棧將地址資訊和協議分解識別符號組合,以決定一個數據報是否被正確介收,以及哪個實體將會處理該資料。有幾層
還會檢測數值(例如校驗和),以保證內容在傳輸中沒有損壞。
下面使用乙太網作為例子簡單說明如何分解和複用。
乙太網幀包含一個48位的目的地址(又稱為鏈路層或介質訪問控制(MAC)地址)和一個16位的乙太網型別欄位。0x0806和0x86DD
分別表示ARP和IPv6。假設目的地址與接收方的一個地址匹配,這個幀將被接收並校驗差錯,乙太網型別欄位用於選擇處理它的網路層協議。
如果接收到的幀包含一個IP資料報,乙太網頭部和尾部資訊將被清除,並將剩餘位元組(包含幀的有效載荷)交給IP來處理。IP檢測一系列
的欄位,包括資料報中的目的IP地址。如果目的地址與自己的一個IP地址匹配,並且資料報頭部(IP不檢測有效載荷)沒有錯誤,則檢測8位
的IPv4協議欄位(IPv6中稱為下一個頭部欄位),以決定接下來呼叫哪個協議來處理。常見的值包括1(ICMP)、2(IGMP)、4(IPv4)、
6(TCP)和17(UDP)。
如果網路層(IPv4或IPv6)認為傳入的資料報有效,並且已確定正確的傳輸層協議,則將資料報(必要時由分片重組而成)交給傳輸層處理。
在傳輸層中,大部分協議(包括TCP和UDP)通過埠號將複用費解到適當的應用。