目錄
1、路由表的核心結構
2、IP分組傳輸過程和數據包轉發過程
2.1、IP分組傳輸過程
2.2、數據包轉發過程
2.3、IP分組傳輸過程和數據包轉發的區別
3、數據包的變化
3.1、拓撲結構
3.2、傳輸過程詳解(主機A → 主機B)
3.2.1、主機A發送數據
3.2.2、路由器R1轉發
3.2.3、路由器R2轉發到主機B
3.3、地址變化對照表
1、路由表的核心結構
路由器通過路由表決定數據包轉發路徑,路由表關鍵字段包括:
- 目的網絡:Destination(標網絡地址,如192.168.1.01)
- 子網掩碼:Netmask(如255.255.255.0,簡寫為/24)
- 下一跳地址:NextHop(直連或相鄰路由器的IP地址)
- 出接口:Interface(數據包轉發出口,如eth0eth0)
目的網絡 | 子網掩碼 | 下一跳 | 出接口 |
---|---|---|---|
0.0.0.0 | 0.0.0.0 | 203.0.1.113 | eth1 |
192.168.1.0 | 255.255.255.0 | - | eth0 |
192.168.1.0 | 255.255.255.252 | 192.168.2.1 | eth2 |
2、IP分組傳輸過程和數據包轉發過程
2.1、IP分組傳輸過程
- 確定源和目的終端是否在同一個網絡。
比較兩個網絡地址,如果相同,說明源和目的終端在同一網絡,那IP分組傳輸過程將無需經過路由器。 - 根據默認網關找到第一跳路由器,路由器逐跳轉發。
在這一步將進行數據包的轉發過程,下面2.2將詳細討論。 - 直接交付
當路由器和目的終端之間沒有其他路由器,即目的終端和該路由器的其中一個接口連接在同一個網路上,路由器通過該網絡將IP分組直接傳輸給終端B。
2.2、數據包轉發過程
當路由器收到IP數據包時,按以下步驟處理:
-
解封裝與目標IP提取:剝離數據鏈路層幀頭,提取目標IP地址(如192.168.1.5)。
-
路由表匹配:最長前綴匹配(Longest Prefix Match)
選擇子網掩碼最長(即最精確)的條目。
例如,目標IP?192.168.1.5 可匹配:192.168.1.0/30、192.168.1.0/24,最終選擇/30條目(掩碼長度30 > 24)。 -
下一跳處理
間接路由:若需中轉(如192.168.1.0/30),將數據包發往下一跳IP地址。
直連網絡:若下一跳為“-”(如192.168.1.0/24),直接通過出接口轉發。 -
數據包轉發
封裝新幀頭:根據出接口類型(如以太網),通過ARP獲取下一跳MAC地址,重新封裝數據鏈路層幀頭。
更新TTL與校驗和:TTL值減1,重新計算IP頭部校驗和。 -
無匹配處理
若無匹配條目且無默認路由(0.0.0.0/0),丟棄數據包并返回ICMP“目標不可達”錯誤。
2.3、IP分組傳輸過程和數據包轉發的區別
特征 | IP分組傳輸過程 | 數據包轉發過程 |
---|---|---|
范圍 | 全局性(跨多網絡設備) | 局部性(單臺設備處理) |
時間維度 | 從發送到接收的完整時間線 | 瞬時行為(納秒級單次處理) |
依賴關系 | 依賴所有中間節點的正確轉發 | 僅依賴當前設備的路由表與接口狀態 |
協議參與 | 涉及網絡層、傳輸層甚至應用層 | 僅網絡層(IP協議) |
3、數據包的變化
3.1、拓撲結構
(局域網A) (廣域網) (局域網B)192.168.1.0/24 10.2.3.0/24┌─────────┐ ┌─────────┐ ┌─────────┐│ 主機A │ │ 路由器R1│─────────────│ 路由器R2││ IP:192.168.1.10 │ LAN口:192.168.1.1 │ WAN口:203.0.113.2 ││ MAC:00:1A:2B:3C:4D:5E │ WAN口:203.0.113.1 │ LAN口:10.2.3.1 │└────┬────┘ └────┬────┘ └────┬────┘│ │ ││ │ │┌────┴────┐ ┌────┴────┐ ┌────┴────┐│ 交換機 │ │ 光纖鏈路│ │ 交換機 │└─────────┘ └─────────┘ └─────────┘┌─────────┐│ 主機B ││ IP:10.2.3.5│ MAC:00:AA:BB:CC:DD:EE└─────────┘
3.2、傳輸過程詳解(主機A → 主機B)
3.2.1、主機A發送數據
封裝邏輯:
以太網幀頭 IP頭部 TCP頭部 應用數據
┌─────────────┬───────────────────┬───────────────────┬─────────────┐
| 目標MAC | 源IP 目標IP | 源端口 目標端口 | 實際載荷 |
| (R1-LAN口) | 192.168.1.10 | 54321 80 | "Hello" |
| 00:11:22:33:44:55 →10.2.3.5 | |
└─────────────┴───────────────────┴───────────────────┴─────────────┘
3.2.2、路由器R1轉發
地址轉換:
新以太網幀頭 IP頭部(保持不變) TCP頭部 應用數據
┌─────────────┬───────────────────┬───────────────────┬─────────────┐
| 目標MAC | 源IP 目標IP | 源端口 目標端口 | 實際載荷 |
| (R2-WAN口) | 192.168.1.10 | 54321 80 | "Hello" |
| 00:55:44:33:22:11 →10.2.3.5 | |
└─────────────┴───────────────────┴───────────────────┴─────────────┘
3.2.3、路由器R2轉發到主機B
最終封裝:
以太網幀頭 IP頭部(保持不變) TCP頭部 應用數據
┌─────────────┬───────────────────┬───────────────────┬─────────────┐
| 目標MAC | 源IP 目標IP | 源端口 目標端口 | 實際載荷 |
| (主機B) | 192.168.1.10 | 54321 80 | "Hello" |
| 00:AA:BB:CC:DD:EE →10.2.3.5 | |
└─────────────┴───────────────────┴───────────────────┴─────────────┘
3.3、地址變化對照表
傳輸階段 | 源MAC | 目標MAC | 源IP | 目標IP |
---|---|---|---|---|
主機A → R1 | 00:1A:2B:3C:4D:5E | 00:11:22:33:44:55 | 192.168.1.10 | 10.2.3.5 |
R1 → R2 | 00:11:22:33:44:55 | 00:55:44:33:22:11 | 192.168.1.10 | 10.2.3.5 |
R2 → 主機B | 00:AA:BB:CC:DD:EE | 00:AA:BB:CC:DD:EE | 192.168.1.10 | 10.2.3.5 |
通過這個結構可以清晰看到:MAC地址在每一跳鏈路層都會改變,而IP地址始終保持端到端一致性(除非經過NAT)。這種設計實現了網絡層的邏輯尋址與數據鏈路層的物理尋址解耦。
?
制作不易,麻煩給博主點點贊!