04 路由表的IP分組傳輸過程

目錄

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.00.0.0.0203.0.1.113eth1
192.168.1.0255.255.255.0-eth0
192.168.1.0255.255.255.252192.168.2.1eth2

2、IP分組傳輸過程和數據包轉發過程

2.1、IP分組傳輸過程

  1. 確定源和目的終端是否在同一個網絡。
    比較兩個網絡地址,如果相同,說明源和目的終端在同一網絡,那IP分組傳輸過程將無需經過路由器。
  2. 根據默認網關找到第一跳路由器,路由器逐跳轉發。
    在這一步將進行數據包的轉發過程,下面2.2將詳細討論。
  3. 直接交付
    當路由器和目的終端之間沒有其他路由器,即目的終端和該路由器的其中一個接口連接在同一個網路上,路由器通過該網絡將IP分組直接傳輸給終端B。

2.2、數據包轉發過程

當路由器收到IP數據包時,按以下步驟處理:

  1. 解封裝與目標IP提取:剝離數據鏈路層幀頭,提取目標IP地址(如192.168.1.5)。

  2. 路由表匹配:最長前綴匹配(Longest Prefix Match)
    選擇子網掩碼最長(即最精確)的條目。
    例如,目標IP?192.168.1.5 可匹配:192.168.1.0/30、192.168.1.0/24,最終選擇/30條目(掩碼長度30 > 24)。

  3. 下一跳處理
    直連網絡:若下一跳為“-”(如192.168.1.0/24),直接通過出接口轉發。

    間接路由:若需中轉(如192.168.1.0/30),將數據包發往下一跳IP地址。
  4. 數據包轉發

    封裝新幀頭:根據出接口類型(如以太網),通過ARP獲取下一跳MAC地址,重新封裝數據鏈路層幀頭。
    更新TTL與校驗和:TTL值減1,重新計算IP頭部校驗和。
  5. 無匹配處理

    若無匹配條目且無默認路由(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 → R100:1A:2B:3C:4D:5E00:11:22:33:44:55192.168.1.1010.2.3.5
R1 → R200:11:22:33:44:5500:55:44:33:22:11192.168.1.1010.2.3.5
R2 → 主機B00:AA:BB:CC:DD:EE00:AA:BB:CC:DD:EE192.168.1.1010.2.3.5

通過這個結構可以清晰看到:MAC地址在每一跳鏈路層都會改變,而IP地址始終保持端到端一致性(除非經過NAT)。這種設計實現了網絡層的邏輯尋址與數據鏈路層的物理尋址解耦。
?

制作不易,麻煩給博主點點贊!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/896650.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/896650.shtml
英文地址,請注明出處:http://en.pswp.cn/news/896650.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【子網掩碼計算器:Python + Tkinter 實現】

子網掩碼計算器:Python Tkinter 實現 引言代碼功能概述代碼實現思路1. 界面設計2. 功能實現3. 事件處理 子網掩碼計算器實現步驟1. 導入必要的庫2. 定義主窗口類 SubnetCalculatorApp3. 創建菜單欄4. 創建界面組件5. 判斷 IP 地址類別6. 計算子網信息7. 其他功能函…

【練習】【貪心】力扣1005. K 次取反后最大化的數組和

題目 1005 K 次取反后最大化的數組和 給你一個整數數組 nums 和一個整數 k ,按以下方法修改該數組: 選擇某個下標 i 并將 nums[i] 替換為 -nums[i] 。 重復這個過程恰好 k 次。可以多次選擇同一個下標 i 。 以這種方式修改數組后,返回數組 可…

3dsmax中使用python創建PBR材質并掛接貼圖

前言 筆者處理模型時下載到一個pbr材質庫貼圖包,手動每次創建材質過于麻煩,因此計劃使用自動化腳本根據貼圖名自動創建材質。 3dsmax的原本腳本使用的是maxscript,語法有點奇怪懶得學,發現也支持使用python編寫腳本&#…

Metal學習筆記九:光照基礎

光和陰影是使場景流行的重要要求。通過一些著色器藝術,您可以突出重要的對象、描述天氣和一天中的時間并設置場景的氣氛。即使您的場景由卡通對象組成,如果您沒有正確地照亮它們,場景也會變得平淡無奇。 最簡單的光照方法之一是 Phong 反射模…

JAVA學習筆記038——bean的概念和常見注解標注

什么是bean? Bean 就是 被 Spring 管理的對象,就像工廠流水線上生產的“標準產品”。這些對象不是你自己 new 出來的,而是由 Spring 容器(一個超級工廠)幫你創建、組裝、管理。 由 Component、Service、Controller 等注解標記的…

start DL from stratch (2)!!!

start DL from stratch &#xff08;2&#xff09;!!! 一、CPU and GPUcpuGPU安培架構愛達洛夫萊斯架構 二、使用conda創建一個新的虛擬環境三、autodl操作先知Linux復習目錄文件和數據上傳對于整個鏡像的操作守護進程Tips 四、autodl租用創建實例<big>沒有所需要的版本的…

機器學習:線性回歸,梯度下降

線性回歸模型 (Linear Regression Model) 梯度下降算法 (Gradient Descent Algorithm) 的數學公式

論文筆記-NeurIPS2017-DropoutNet

論文筆記-NeurIPS2017-DropoutNet: Addressing Cold Start in Recommender Systems DropoutNet&#xff1a;解決推薦系統中的冷啟動問題摘要1.引言2.前言3.方法3.1模型架構3.2冷啟動訓練3.3推薦 4.實驗4.1實驗設置4.2在CiteULike上的實驗結果4.2.1 Dropout率的影響4.2.2 實驗結…

nvm的學習

學習 nvm&#xff08;Node Version Manager&#xff09; 是掌握 Node.js 開發的關鍵技能之一。以下是系統的學習路徑和實戰指南&#xff0c;涵蓋從基礎到進階的內容&#xff1a; 一、基礎入門 1. nvm 的核心作用 多版本共存&#xff1a;安裝和管理多個 Node.js 版本&#xff…

GPT-4.5實際性能評測:實際探索

摘要 經過數萬輪嚴格測試&#xff0c;GPT-4.5的性能并未超越其前代產品GPT-4。此前發布的《GPT-4.5 一手實測&#xff1a;垃圾》一文中存在不準確描述&#xff0c;在此向讀者致歉。盡管GPT-4.5在價格上有所提升且響應速度較慢&#xff0c;但測試結果顯示其模型素質并未達到預期…

從UNIX到Linux:操作系統進化史與開源革命

從UNIX到Linux&#xff1a;操作系統進化史與開源革命 一、操作系統&#xff1a;數字世界的基石 1.1 什么是操作系統&#xff1f; 操作系統&#xff08;OS&#xff09;是計算機系統的核心管理者&#xff0c;承擔著三大核心使命&#xff1a; 硬件指揮官&#xff1a;直接管理C…

如何修改安全帽/反光衣檢測AI邊緣計算智能分析網關V4的IP地址?

TSINGSEE青犀推出的智能分析網關V4&#xff0c;是一款集成了BM1684芯片的高性能AI邊緣計算智能硬件。其內置的高性能8核ARM A53處理器&#xff0c;主頻可高達2.3GHz&#xff0c;INT8峰值算力更是達到了驚人的17.6Tops。此外&#xff0c;該硬件還預裝了近40種AI算法模型&#xf…

【全棧開發】----Mysql基本配置與使用

本篇是在已下載Mysql的情況下進行的&#xff0c;若還未下載或未創建Mysql服務&#xff0c;請轉到這篇: 2024 年 MySQL 8.0.40 安裝配置、Workbench漢化教程最簡易&#xff08;保姆級&#xff09;_mysql8.0.40下載安裝教程-CSDN博客 本文對于mysql的操作均使用控制臺sql原生代碼…

C++ primer plus 第四節 復合類型

本章內容包括: ? 創建和使用數組 ? 創建和使用 c-風格字符串 ? 創建和使用 string 類字符串 ? 使用方法getline( )和 get( )讀取字符串 ? 混合輸入字符串和數字 ? 創建和使用結構 ? 創建和使用共用休 ? 創建和使用枚舉 ? 創建和使用指針 ? 使用 new和delete 管理動態…

Java中的泛型類 --為集合的學習做準備

學習目標 ● 掌握在集合中正確使用泛型 ● 了解泛型類、泛型接口、泛型方法 ● 了解泛型上下限 ● 了解基本的使用場景 1.有關泛型 1.1泛型的概念 泛型&#xff08;Generics&#xff09;是Java中引入的參數化類型機制&#xff0c;允許在定義類、接口或方法時使用類型參數&a…

VUE3+Vite使用TailwindCSS【若依前后端分離框架】

參考&#xff1a;https://tailwind.nodejs.cn/docs/guides/vite#vue 和 https://blog.csdn.net/hjl_and_djj/article/details/144694485依次運行命令&#xff1a; cnpm install -D tailwindcss3.4.17 postcss autoprefixernpx tailwindcss init -p修改配置文件tailwind.config.…

FFmpeg入門:最簡單的音頻播放器

FFmpeg入門&#xff1a;最簡單的音頻播放器 歡迎大家來到FFmpeg入門的第二章&#xff0c;今天只做一個最簡單的FFmpeg音頻播放器&#xff1b;同樣&#xff0c;話不多說&#xff0c;先上流程圖 流程圖 以上流程和視頻播放器的解碼過程基本上是一致的&#xff1b; 不同點在于 S…

在Ubuntu下,源碼編譯安裝Python

在Ubuntu下&#xff0c;源碼編譯安裝Python 知識點 知識點1&#xff1a;在 Linux 系統里&#xff0c;/usr 目錄通常用于存放一些共享的、只讀的程序和數據&#xff0c;是系統安裝軟件的一個重要位置。而 /usr/src 目錄一般是用來存放系統源代碼以及一些軟件包的源代碼的地方 …

《每天讀一個JDK源碼》之HashMap解讀

&#x1f4cc;《每天讀一個JDK源碼》之HashMap解讀 &#x1f517;源碼定位&#xff1a;java.util.HashMap&#xff08;建議IDE對照閱讀&#xff09; 今天我們來破解Java集合框架中最精妙的藝術品——HashMap&#xff01;它不僅是面試必考題&#xff08;出現率99%&#xff09;&…

【Java項目】基于SpringBoot的Java學習平臺

【Java項目】基于SpringBoot的Java學習平臺 技術簡介&#xff1a;采用Java技術、SpringBoot框架、MySQL數據庫等實現。系統基于B/S架構&#xff0c;前端通過瀏覽器與后端數據庫進行信息交互&#xff0c;后端使用SpringBoot框架和MySQL數據庫進行數據處理和存儲&#xff0c;實現…