当前位置: 首页 > news >正文

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)。这种设计实现了网络层的逻辑寻址与数据链路层的物理寻址解耦。
 

制作不易,麻烦给博主点点赞!

相关文章:

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…...

AI Agent 定义与核心要素详解

AI Agent(人工智能代理)是一种能够感知环境、自主决策并执行任务以达成目标的软件实体。它结合了感知、推理、学习和行动能力,能够在复杂环境中独立或协作工作。以下是其核心要素: 1. 感知 AI Agent 通过传感器或数据输入感知环…...

记忆化搜索与动态规划:原理、实现与比较

记忆化搜索和动态规划是解决优化问题的两种重要方法,尤其在处理具有重叠子问题和最优子结构性质的问题时非常有效。 目录 1. 记忆化搜索(Memoization) 定义: 实现步骤: 示例代码(斐波那契数列&#xff0…...

在 Mac mini M2 上本地部署 DeepSeek-R1:14B:使用 Ollama 和 Chatbox 的完整指南

随着人工智能技术的飞速发展,本地部署大型语言模型(LLM)已成为许多技术爱好者的热门选择。本地部署不仅能够保护隐私,还能提供更灵活的使用体验。本文将详细介绍如何在 Mac mini M2(24GB 内存)上部署 DeepS…...

计算机网络基础简答题资料(对口高考)

1、什么是计算机网络?计算机网络的功能有哪些? 答案:计算机网络,是指将分布在不同地理位置、具有独立功能的多台计算机及其外围设备,通过通信设备和通信线路连接起来,在网络操作系统、网络管理软件及网络通…...

mysql内置工具导入csv包,简单便捷高效

先创建一个你想要的数据库 create database uba; 分析导入文件的格式内容 提前在数据库里创建你需要的表格 不然就会收到”mysqlimport: Error: 1146“大礼包 (你的csv文件名和表格名字一摸一样,大小写也是) use uba; create table userBehavior (us…...

【汽车ECU电控数据管理篇】HEX文件格式解析篇章

一、HEX格式文件是啥 HEX 文件是 Intel 公司提出的一种按地址排列的数据信息格式,通常用于存储嵌入式系统的二进制代码。它以 ASCII 码的形式记录数据,每一行以冒号开头,包含数据长度、地址、记录类型、数据和校验码等信息。HEX 文件常用于程…...

SOLID Principle基础入门

(Robert C. Martin (Uncle Bob)) 什么是SOLID原则? SOLID原则是面向对象编程(OOP)中编写高质量代码的指导方针。实际上,即使不使用SOLID原则,仅通过类、继承、封装和多态性,也可以让程序正常运行。那么为…...

keil主题(vscode风格)

#修改global.prop文件,重新打开keil即可 # Keil uVision Global Properties File # This file is used to customize the appearance of the editor# Editor Font editor.font.nameConsolas editor.font.size10 editor.font.style0# Editor Colors editor.backgro…...

微信小程序读取写入NFC文本,以及NFC直接启动小程序指定页面

一、微信小程序读取NFC文本(yyy优译小程序实现),网上有很多通过wx.getNFCAdapter方法来监听读取NFC卡信息,但怎么处理读取的message文本比较难找,现用下面方法来实现,同时还解决几个问题,1、在回调方法中this.setData不更新信息,因为this的指向问题,2、在退出页面时,…...

大模型使用

prompt生成bot 角色:你扮演一个帮助用户生成大模型prompt内容的角色,不要直接回答问题,而是帮助用户生成prompt 任务:根据用户的输入,分析用户意图,与用户进行多轮沟通,最后根据对话形成最终的prompt 指令:最终形成的prompt必须包含以下6个方面: 1.所有三个引号之间的内容原样输…...

ISP 常见流程

1.sensor输出:一般为raw-OBpedestal。加pedestal避免减OB出现负值,同时保证信号超过ADC最小电压阈值,使信号落在ADC正常工作范围。 2. pedestal correction:移除sensor加的基底,确保后续处理信号起点正确。 3. Linea…...

SpringBoot原理-02.自动配置-概述

一.自动配置 所谓自动配置,就是Spring容器启动后,一些配置类、bean对象就自动存入了IOC容器当中,而不需要我们手动声明,直接从IOC容器中引入即可。省去了繁琐的配置操作。 我们可以首先将spring项目启动起来,里面有一…...

小红书自动评论

现在越来越多的人做起来小红书,为了保证自己的粉丝和数据好看,需要定期养号。 那么养号除了发视频外,还需要积极在社区互动,比如点赞、评论等等,为了节省时间,我做了一个自动化评论工具。 先看效果 那这个是…...

CosyVoice2整合包 特殊声音标记,声音克隆更逼真,新增批量生成

新增批量生成,可用于制作直播话术音频 特殊声音标记 符号示例1_语气加强<strong> </strong>每天都<strong>付出</strong>和<strong>精进</strong>&#xff0c;才能达到巅峰。2_呼吸声[breath][breath] 吸气,[breath] 呼气! [breath] 吸,[b…...

每天一个Flutter开发小项目 (8) : 掌握Flutter网络请求 - 构建每日名言应用

引言 欢迎再次回到 每天一个Flutter开发小项目 系列博客!在之前的七篇博客中,我们已经掌握了 Flutter UI 构建、状态管理、路由导航、表单处理,甚至数据持久化等一系列核心技能。您已经能够构建功能相对完善的本地应用。 然而,在互联网时代,绝大多数应用都需要与服务器进…...

C++Primer学习(4.8位运算符)

4.8位运算符 位运算符作用于整数类型的运算对象&#xff0c;并把运算对象看成是二进制位的集合。位运算符提供检查和设置二进制位的功能&#xff0c;如17.2节(第640页)将要介绍的&#xff0c;一种名为bitset的标准库类型也可以表示任意大小的二进制位集合,所以位运算符同样能用…...

在VSCode中使用MarsCode AI最新版本详解

如何在VSCode中使用MarsCode AI&#xff1a;最新版本详解与使用场景 在当今快速发展的软件开发领域&#xff0c;人工智能&#xff08;AI&#xff09;技术的应用已经变得越来越普遍。ByteDance推出的MarsCode AI是一款强大的AI编程助手&#xff0c;旨在帮助开发者更高效地编写代…...

可观测之Tracing-eBPF生态和发展

eBPF生态系统 eBPF已经不仅仅是一个内核技术&#xff0c;而是一个蓬勃发展的生态系统&#xff0c;涵盖了各种工具、库和项目&#xff0c;为可观测性、网络、安全等领域提供了强大的支持。 1. 核心工具与库 bcc (BPF Compiler Collection): 定位&#xff1a; 提供了更底层的e…...

linux 后台执行并输出日志

在Linux系统中&#xff0c;后台执行程序并输出日志通常有多种方法&#xff0c;这里列出几种常见的方法&#xff1a; 1. 使用&将命令放入后台 可以在命令的末尾加上&符号&#xff0c;将命令放入后台执行。例如&#xff1a; your_command > output.log 2>&1…...

Midjourney对比度调控失效全解析(从sref色域偏移到底层CLIP文本嵌入权重干预)

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;Midjourney对比度控制失效的现象学观察 当用户在 Midjourney v6 中显式使用 --contrast 参数&#xff08;如 /imagine prompt: a cyberpunk alley at night --contrast 100&#xff09;时&#xff0c;输出图…...

鸿蒙electron跨端框架PC墨案写作实战:把 Markdown 正文区做成桌面写作的中心

前言 欢迎加入鸿蒙PC开发者社区&#xff0c;共同打造开发者工具生态&#xff1a;鸿蒙PC开发者社区 &#xff1a;https://harmonypc.csdn.net/ 项目开源地址&#xff1a;https://AtomGit.com/lqjmac/ele-moanxiezuo 墨案写作这个小工具看起来轻&#xff0c;但真正落地时要先把…...

安卓加固反调试核心机制:D-Bus监听与/proc/self/maps检测绕过实战

1. 这不是“绕过检测”&#xff0c;而是理解检测者如何思考你打开一个加固过的金融类App&#xff0c;Frida一挂上去&#xff0c;进程秒退&#xff1b;换上repack后的so&#xff0c;刚调用Java.perform就抛出SecurityException&#xff1b;甚至只是加载了frida-gadget.so&#x…...

实战指南:用Python和PyTorch一步步搭建TFT模型,搞定电力负荷多步预测

实战指南&#xff1a;用Python和PyTorch一步步搭建TFT模型&#xff0c;搞定电力负荷多步预测 电力负荷预测是能源管理系统的核心环节&#xff0c;准确的多步预测能帮助电网运营商优化发电计划、降低运营成本。传统统计方法如ARIMA在处理复杂非线性关系时表现有限&#xff0c;而…...

AI赋能工程教育:构建个性化、多元化与伦理驱动的学习生态

1. 项目概述&#xff1a;当工程教育遇见AI&#xff0c;我们到底在谈论什么&#xff1f;最近几年&#xff0c;AI这个词快被说烂了。从ChatGPT的横空出世&#xff0c;到各类生成式AI工具的遍地开花&#xff0c;似乎每个行业都在讨论如何“被赋能”。工程教育这个领域也不例外&…...

ISP模型与硬件平台配置迁移实践指南

1. 理解ISP模型与硬件平台的配置迁移在图像信号处理器&#xff08;ISP&#xff09;开发过程中&#xff0c;我们经常需要在软件模型和实际硬件平台之间进行配置迁移。这种迁移的核心挑战在于确保模型仿真结果与硬件输出完全一致。根据我的经验&#xff0c;这涉及到两个主要操作模…...

PlayAI在特殊教育中的突破性应用:自闭症儿童社交训练响应率提升4.8倍的神经反馈模型首次公开

更多请点击&#xff1a; https://kaifayun.com 第一章&#xff1a;PlayAI教育领域应用案例 PlayAI 是一个面向教育场景的轻量级AI交互平台&#xff0c;支持教师快速构建可对话、可评估、可追踪的学习代理。其核心优势在于无需深度学习背景即可配置多轮问答逻辑、知识图谱链接…...

线性化多噪声训练:提升混沌系统长期预测稳定性的正则化技术

1. 项目概述&#xff1a;当机器学习遇上混沌&#xff0c;如何让预测“长治久安”&#xff1f;在天气预报、气候模拟乃至金融市场分析中&#xff0c;我们常常需要面对一类“混沌系统”。这类系统的特点是&#xff0c;其短期行为虽然遵循确定的规律&#xff0c;但长期演化对初始条…...

保姆级教程:用Python和Keras复现4D-CRNN脑电情绪识别模型(附DEAP/SEED数据集处理全流程)

从脑电信号到情绪识别&#xff1a;4D-CRNN模型实战全解析在脑机接口与情感计算领域&#xff0c;脑电信号&#xff08;EEG&#xff09;情绪识别一直是个充满挑战又极具应用价值的方向。传统方法往往难以同时捕捉EEG信号的时空频多维特征&#xff0c;而4D-CRNN模型通过创新的四维…...

解锁 Codex 逆向能力!一键部署 JS 逆向全能 Skill

让 Codex 默认支持 JS 逆向 Codex GPT-5.4 默认对逆向和爬虫类请求比较保守&#xff0c;常见表现是只讲原则&#xff0c;不继续落地。市面上的常规做法是先发提示词&#xff0c;我这边因为每次重复发送比较麻烦&#xff0c;所以进一步封装成了 Skill&#xff0c;实际验证可行。…...