一、IP
在計算機網絡中,IP(Internet Protocol,網際協議)是網絡層的核心協議,用于實現跨越不同網絡的數據包傳輸。IP 是 TCP/IP 協議族的核心部分,屬于網絡層協議,也是 Internet 賴以運作的基礎協議之一。
IP 協議負責:
- 為設備分配唯一的IP地址;
- 封裝、傳輸和路由數據包;
- 在多個子網和網絡之間轉發數據,實現“盡力而為”的交付;
- 提供無連接、不可靠的數據包傳輸服務。
IP 不保證數據可靠送達,它只負責把數據“盡力送到目標地址”。
核心特點:
特點 | 說明 |
---|---|
無連接 | 不建立連接,直接發送數據包 |
不可靠 | 不保證數據包送達、不重傳 |
盡力而為交付 | 有可能丟包、重復或亂序 |
分包和重組 | 超過 MTU 的數據會被分片 |
路由尋址 | 支持通過路由器跨網絡轉發數據包 |
二、IP 協議的主要版本
協議版本 | 簡稱 | 說明 |
---|---|---|
IPv4 | Internet Protocol version 4 | 當前主流協議,32位地址 |
IPv6 | Internet Protocol version 6 | 新一代協議,128位地址,解決 IPv4 地址耗盡問題 |
三、IP數據報文結構
參考書——計算機網絡 (第8版)- 謝希仁。
1. IPv4報文結構
IPv4 報文頭至少 20 字節,結構如下:
- 版本:占4位, 指協議IP的版本,對IPv4該字段是4。
- 首部長度:占4位, 可表示的最大十進制數值是15。請注意,首部長度字段所表示數的單位是32位字長( 1個32位字長是4字節) 。
- 區分服務:占8位, 用來獲得更好的服務。
- 總長度:總長度指首部和數據之和的長度, 單位為字節。總長度字段為16位, 因此數據報的最大長度為 2 16 2^{16} 216 - 1 = 65535字節。
- 標識(identifi cation) :占16位。IP 軟件在存儲器中維持一個計數器, 每產生一個數據報,計數器就加1 , 并將此值賦給標識字段。
- 標志(flag): 占3位。
- 片偏移:占13位。片偏移指出:較長的分組在分片后, 某片在原分組中的相對位置。
- 生存時間:占8位, 生存時間字段常用的英文縮寫是TTL (Time To Live), 表明這是數據報在網絡中的壽命。
- 協議:占8位, 協議字段指出此數據報攜帶的數據使用何種協議, 以便使目的主機的IP層知道應將數據部分上交給哪個協議進行處理。
- 首部檢驗和:占16位。這個字段只檢驗數據報的首部, 但不包括數據部分。
- 源地址:占32位。發送IP數據報的主機的IP地址。
- 目的地址:占32位。接收IP數據報的主機的IP地址。
2. IPv6報文結構
IPv6 報文頭至少 40 字節,結構如下:
- 版本(version) :占4位。它指明了協議的版本, 對 IPv6 該字段是6。
- 通信量類(traffic class) :占8 位。這是為了區分不同的 IPv6 數據報的類別或優先級, 和IPv4 的區分服務字段的作用相似。目前正在進行不同的通信量類性能的實驗。
- 流標號(flow label) :占20位。IPv6 的一個新的機制是支持資源預分配, 并且允許路由器把每一個數據報與一個給定的資源分配相聯系。
- 有效載荷長度(payload length) :占16位。它指明 IPv6 數據報除基本首部以外的字節數( 所有擴展首部都算在有效載荷之內) 。這個字段的最大值是64 KB (65535 字節)。
- 下一個首部(next header) :占8位。它相當千 IPv4 的協議字段或可選字段。
- 跳數限制( hop limit ) :占8位。用來防止數據報在網絡中無限期地存在。
- 源地址:占128 位。是數據報的發送端的 IP 地址。
- 目的地址:占128位。是數據報的接收端的 IP 地址。
四、IP 地址與子網
1. IP 地址分類(IPv4)
類別 | 范圍 | 用途 |
---|---|---|
A | 1.0.0.0 - 126.0.0.0 | 大型網絡 |
B | 128.0.0.0 - 191.255.0.0 | 中型網絡 |
C | 192.0.0.0 - 223.255.255.0 | 小型網絡 |
D | 224.0.0.0 - 239.255.255.255 | 多播 |
E | 240.0.0.0 - 255.255.255.255 | 實驗用途 |
IP地址分類圖示:
2. 子網掩碼
子網掩碼(Subnet Mask) 是用于劃分網絡地址與主機地址的關鍵機制。
通過子網掩碼,我們可以判斷兩個 IP 地址是否屬于同一個子網,并支持將一個 IP 網絡進一步劃分成多個子網,優化地址使用與網絡管理。
工作原理(與運算):
子網掩碼通過與 IP 地址進行按位與(AND)運算來提取網絡地址:
IP: 192.168.1.10 → 11000000.10101000.00000001.00001010
掩碼: 255.255.255.0 → 11111111.11111111.11111111.00000000
網絡地址: → 11000000.10101000.00000001.00000000 → 192.168.1.0
五、IP 的關鍵機制
1. 分片與重組
分片(Fragmentation)與重組(Reassembly)是 IP 協議在傳輸大型數據包時為適應不同網絡鏈路的最大傳輸單元(MTU)所采用的重要機制,主要在 IPv4 中使用。
- 當 IP 數據包超過鏈路的最大傳輸單元(MTU)時,會被分片傳輸;
- 接收端將分片重組成原始數據;
- 重組只在目的主機完成,中間路由器不重組。
分片示例:
參考書——計算機網絡 (第8版)- 謝希仁。
2. TTL(Time To Live)
- 限制數據包在網絡中的“壽命”;
- 每經過一個路由器,TTL 減 1;
- TTL 為 0 時,數據包被丟棄,防止路由環路。
3. 路由與轉發
- IP 依靠路由器將數據包從源主機傳送到目的主機;
- 每個路由器根據目標IP地址和路由表決定下一跳。
六、IPv4 vs IPv6
項目 | IPv4 | IPv6 |
---|---|---|
地址長度 | 32 位(4字節) | 128 位(16字節) |
地址表示 | 十進制,如 192.168.1.1 | 十六進制,如 2001:0db8::1 |
地址數量 | 約 43 億個 | 2^128,幾乎無限 |
報文結構 | 復雜,支持分片等 | 簡化,無中間分片,效率更高 |
NAT 支持 | 支持,常用于節省地址 | 不再需要 NAT,端到端通信 |
安全性 | 無內建安全,需借助IPSec | 內建支持 IPSec 安全機制 |
七、IP 與其他協議的關系
IP 協議本身不提供可靠性,它通過與其他協議配合完成通信:
層級 | 協議 | 作用 |
---|---|---|
傳輸層 | TCP、UDP | 提供端到端通信(可靠或快速) |
網絡層 | IP(本層) | 實現網絡間通信與尋址 |
鏈路層 | Ethernet、Wi-Fi 等 | 實現局域網中的物理傳輸 |
輔助協議 | ICMP、ARP、DHCP | 支持控制、地址解析、配置等 |
八、典型應用
- IP 是 Web、FTP、SSH、郵件等所有互聯網服務的基礎;
- 所有設備(服務器、路由器、PC、手機)都必須擁有 IP 地址;
- IP 協議配合路由器和子網規劃,實現全球互聯網互通。