1. 程式人生 > 其它 >理解TCP/IP協議分層(二)

理解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)通過埠號將複用費解到適當的應用。