起序:本文摘錄於《計算機網絡(第七版)- 謝希仁》,裏面也有自己對 IP 數據報
的理解。
五層協議體系結構 | 數據單元(數據單位) |
---|---|
應用層 | message(消息) |
運輸層 | segment(TCP 報文段) 或 datagram(UDP 用戶數據報) |
網絡層 | packet(IP 數據報(或簡稱數據報、分組或包)) |
數據鏈路層 | frame(幀) |
物理層 | bit(比特流) |
一、IP 層的 IP 地址
在學習
IP 地址
之前,首先要理解IP 地址
和MAC 地址
(硬件地址)的區別。
從層次的角度看,硬件地址是
數據鏈路層和物理層
使用的地址,而 IP 地址是網絡層和以上各層
使用的地址,是一種邏輯地址
(稱IP地址爲邏輯地址是因爲IP地址是用軟件實現的)。
層級 | 地址類型 |
---|---|
網絡層 [及以上](IP 層) | IP 地址 |
數據鏈路層 [及以下](MAC 層) | MAC 地址(硬件地址、物理地址) |
# 查看自己的 IP 地址,命令行輸入 cmd
ipconfig
可以看到圖片上的內容:IPv4 地址 192.168.1.101,這就是自己電腦的 IP 地址。
二、IP 數據報的格式
在《計算機網絡(第七版)- 謝希仁》課本上,
數據報
的格式是按圖片上顯示的,但實際上數據報
的格式是一個20 ~ 60
字節的長串,爲了更好的認識數據報,作者才採取 “格式化” 數據報的形式。
字段 | 表示意義 |
---|---|
版本 | 佔 4 位,指 IP 協議的版本。標識 IPv4 或 IPv6。 |
首部長度 | 佔 4 位,可表示的 最大十進制 數值是15(二進制 1111),規定 最小十進制 數值是 5(二進制 0101)。首部長度字段所表示數的單位是 32 位字 (注:不是 32 位字節,也不是 32 位),一個 32 位字 長是 4 字節 。因爲首部長度佔 4 位,就可以知道 數據報 最大是 60字節(15 個 32 位字) ,最小是 20字節 (5 個32 位字) 。最常用的首部長度是 20 字節(即首部長度爲 0101)。 |
區分服務 | 佔 8 位,運營商(移動、聯通、電信等)一般會使用,還有一些賣專線的運營商,爲了提高服務質量,提升客戶的體驗感,運營商會使用。 |
總長度 | 佔 16 位,指 首部 和 數據部分 的長度,單位是字節。最常用的以太網規定 最大傳輸單元 (MTU)值是 1500 字節 。若所傳送的數據報長度超過數據鏈路層的 MTU 值,就必須把過長的數據報進行 分片處理 。(這裏不介紹 分片處理 )。總長度的計算方式: IP 數據報 的長度 + 數據部分 的長度。(也就是從 網絡層及以上 的數據長度之和) |
標識 | 佔 16 位,用來區分不同的 IP 分片數據流。 |
標誌(flag) | 佔 3 位,目前只有兩位有意義。 第一位保留; 第二位爲 1 代表爲分片,爲 0 代表已分片; 第三位爲 0 代表最後一個分片,爲 1 代表還有後續分片。 |
片偏移 | 佔 13 位,用來確定IP分片 在 IP 包 的位置 (先後順序)。片偏移的單位是 8 個字節 ,每個分片的長度一定是 8字節(64位) 的整數倍。 |
生存時間(TTL: Time To Live) | 佔 8 位,指數據報在網絡中的壽命。目的:防止 無法交付的數據報 在網絡上 無限循環 。 |
協議 | 佔 8 位,作用:用來區分上層協議,以便使 目的主機的 IP層 知道將 數據部分 上交給哪個協議進行處理。表格下 有對常用 協議及字段值 的簡介。注:TCP: 6 和 UDP: 17 對應的字段請熟記。 |
首部校驗和 | 佔 16 位,這個字段只校驗 數據報的首部 ,但不包括數據部分。也就是 當前介紹的內容 。作用:防止數據報在傳輸過程中可能由於外力干擾,比如:電磁波、雷電或者是信號本身的衰減等使得信號發生錯誤。 |
源地址 | 佔 32 位,發送請求的源主機的 IP 地址。 |
目的地址 | 佔 32 位,接收請求的目的主機的 IP 地址。 |
可選字段(長度可變) | 長度可變,1 ~ 40 個 字節 (這裏單位是字節),目的:爲了增加 IP 數據報的功能。 |
協議及對應的字段值(我說話算法,說在表格下有對常用協議及對應字段的簡介,沒騙你吧)
協議名 | ICMP | IGMP | IP | TCP | EGP | IGP | UDP | IPV6 | ESP | OSPF |
---|---|---|---|---|---|---|---|---|---|---|
協議字段值 | 1 | 2 | 4 | 6 | 8 | 9 | 17 | 41 | 50 | 89 |
如果對您有幫助,點個贊再走吧。