路由基础-路由表
本篇将会向读者介绍路由的基本概念。
前言
在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基本的要素。路由信息是指导报文转发的路径信息,路由过程就是报文转发的过程。
数据从初始位置到终点位置经过的路径称为路由
路由器是依据路由转发报文到目的网段的网络设备
路由表是由路由器维护,保存路由信息
路由信息介绍
路由中包含以下信息:
目的网络:标识目的
网段 掩码:与目的地址共同标识一个网段
出接口:数据包被路由后离开本路由器的接口
下一跳:路由器转发到达目的网段的数据包所使用的下一跳地址 这些信息标识了目的网段、明确了转发IP报文的路径。
路由表
路由器通过各种方式发现路由 路由器选择最优的路由条目放入路由表中 路由表指导设备对IP报文的转发 路由器通过对路由表的管理实现对路径信息的管理。
路由信息获取方式
路由器依据路由表进行路由转发,为实现路由转发,路由器需要发现路由,以下为常见的路由获取方式。
1.直连路由
直连路由指向本地直连网络的路由,由设备自动生成。
直连路由转发的数据包的目的IP和路由器接口IP在同一网段中。
其中目的网络和下一跳也就是路由器接口ip为同一网段。
直连路由出现在路由表中的前提是该接口的物理状态、协议状态都为UP。
查看IP路由表
在eNSP系统中的路由器命令行中操作为
display ip routing-table
Destination/Mask:表示此路由的目的网络地址与网络掩码。将目的地址和子网掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如:目的地址为1.1.1.1,掩码为255.255.255.0的主机或路由器所在网段的地址为1.1.1.0。
Proto(Protocol):该路由的协议类型,也即路由器是通过什么协议获知该路由的。
Pre(Preference):表示此路由的路由协议优先级。针对同一目的地,可能存在不同下一跳、出接口等多条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手工配置的静态路由。优先级最高(数值最小)者将成为当前的最优路由。
Cost:路由开销。当到达同一目的地的多条路由具有相同的路由优先级时,路由开销最小的将成为当前的最优路由。
NextHop:表示对于本路由器而言,到达该路由指向的目的网络的下一跳地址。该字段指明了数据转发的下一个设备。
Interface:表示此路由的出接口。指明数据将从本路由器的哪个接口转发出去。
路由优先级
当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,路由器会比较这些路由的优先级,优选优先级值最小的路由。
路由来源的优先级值(Preference)越小代表加入路由表的优先级越高。
拥有最高优先级的路由将被添加进路由表。
度量值
当路由器通过某种路由协议发现了多条到达同一个目的网络的路由时(拥有相同的路由优先级),度量值将作为路由优选的依据之一。
路由度量值表示到达这条路由所指目的地址的代价。
一些常用的度量值有:跳数、带宽、时延、代价、负载、可靠性等。
度量值数值越小越优先,度量值最小路由将会被添加到路由表中。
度量值很多时候被称为开销(Cost)。
两条路由拥有不同的度量值,下一跳为30.1.1.2的OSPF的路由条目拥有更小的度量值,因此被加入到路由表中。
路由最长匹配原则
路由最长匹配原则(Longest Prefix Match Rule)是路由器或三层交换机在转发 IP 数据包时,用来从路由表中选择最佳路由条目的核心规则。
“最长”指的是路由条目的子网掩码(或前缀长度)最长。
“匹配”指的是目标 IP 地址与路由条目的网络地址在掩码定义的范围内一致。
当目标 IP 地址同时匹配路由表中多个路由条目时,路由器会选择其中子网掩码最长(即最具体、最精确)的那条路由进行转发。
类比
江苏省-南京市 较大范围相当于网络地址范围大,掩码短,如/16。
江苏省-南京市-江宁区-淳化街道 为一个更小的范围相当于网络地址范围小,掩码长,如/24。
现在有一个包裹要寄到江苏省南京市江宁区淳化街道赏桂苑(目标IP地址),前者和后者相比显然是后者更精确更直接。
在送快递(数据包)时,系统总是优先选择能送到最精确门牌号(最长匹配路由)的那个配送点(下一跳),如果实在找不到具体门牌号,才选择送到小区门口(默认路由)。
路由转发流程
在典型的IP路由转发过程中:
-
源IP地址和目的IP地址保持不变:
-
源IP地址标识了通信的原始发起者。
-
目的IP地址标识了通信的最终目标。
-
这两个IP地址定义了端到端的逻辑连接。它们在数据包从源主机穿越网络到达目的主机的整个过程中都保持不变。路由器根据目的IP地址来决定如何转发数据包。
-
-
源MAC地址和目的MAC地址在每一跳(每个路由器之间)都会改变:
-
MAC地址用于在同一个物理网络(或链路)上进行本地交付。
-
当数据包从一个路由器发送到下一个路由器(或从主机发送到第一跳路由器,或从最后一跳路由器发送到目的主机)时,它需要被封装在一个新的数据链路层帧(如以太网帧)中。
-
在这个新的帧里:
-
源MAC地址 被设置为发送接口的MAC地址(即当前转发设备接口的MAC地址)。
-
目的MAC地址 被设置为下一跳设备接收接口的MAC地址(即下一跳路由器接口的MAC地址,或者最终目的主机的MAC地址,如果它在同一个子网内的话)。
-
-
路由器是通过ARP协议(在IPv4中)或邻居发现协议(在IPv6中)来查找下一跳IP地址对应的MAC地址的。
-
为什么这样设计?
-
IP地址(网络层): 提供全局的、逻辑的寻址,用于标识网络的起点和终点。保持不变确保了数据包能到达最终目标。
-
MAC地址(数据链路层): 提供局部的、物理的寻址,用于在特定的物理网络上(如一个以太网段)将数据帧直接传递给下一个设备(下一跳路由器或同一网段内的最终主机)。它在每一跳改变,是因为每个物理网络可能有不同的设备和技术,需要不同的物理地址来寻址下一跳。
类比:
想象寄一封国际信件:
-
源地址(发件人地址) 和 目的地址(收件人地址) 写在信封上,在整个运输过程中保持不变。这就像IP地址。
-
信件需要经过多个邮局(路由器)。当信件从一个邮局运送到下一个邮局时,它会被装入新的邮袋或贴上新的运输标签。每个邮袋/标签上的“发件邮局”和“收件邮局”地址在每一段运输旅程中都会改变。这就像每一跳上改变的源MAC地址和目的MAC地址,它们只负责当前这一段本地运输。
总结
当路由器从多种不同的途径获知到达同一个目的网段的路由(这些路由的目的网络地址及网络掩码均相同)时,会选择路由优先级值最小的路由;如果这些路由学习自相同的路由协议,则优选度量值最优的。总之,最优的路由加入路由表。
当路由器收到一个数据包时,会在自己的路由表中查询数据包的目的IP地址。如果能够找到匹配的路由表项,则依据表项所指示的出接口及下一跳来转发数据;如果没有匹配的表项,则丢弃该数据包。
路由器的行为是逐跳的,数据包从源到目的地沿路径每个路由器都必须有关于目标网段的路由,否则就会造成丢包。
数据通信往往是双向的,因此要关注流量的往返(往返路由)。
相关文章:

路由基础-路由表
本篇将会向读者介绍路由的基本概念。 前言 在一个典型的数据通信网络中,往往存在多个不同的IP网段,数据在不同的IP网段之间交互是需要借助三层设备的,这些设备具备路由能力,能够实现数据的跨网段转发。 路由是数据通信网络中最基…...

CTF show 数学不及格
拿到题目先查一下壳,看一下信息 发现是一个ELF文件,64位的 用IDA Pro 64 打开这个文件 然后点击F5进行伪代码转换 可以看到有五个if判断,第一个argc ! 5这个判断并没有起太大作用,主要是下面四个if判断 根据题目…...
React父子组件通信:Props怎么用?如何从父组件向子组件传递数据?
系列回顾: 在上一篇《React核心概念:State是什么?》中,我们学习了如何使用useState让一个组件拥有自己的内部数据(State),并通过一个计数器案例,实现了组件的自我更新。这很棒&#…...

【大模型】RankRAG:基于大模型的上下文排序与检索增强生成的统一框架
文章目录 A 论文出处B 背景B.1 背景介绍B.2 问题提出B.3 创新点 C 模型结构C.1 指令微调阶段C.2 排名与生成的总和指令微调阶段C.3 RankRAG推理:检索-重排-生成 D 实验设计E 个人总结 A 论文出处 论文题目:RankRAG:Unifying Context Ranking…...
LangChain【6】之输出解析器:结构化LLM响应的关键工具
文章目录 一 LangChain输出解析器概述1.1 什么是输出解析器?1.2 主要功能与工作原理1.3 常用解析器类型 二 主要输出解析器类型2.1 Pydantic/Json输出解析器2.2 结构化输出解析器2.3 列表解析器2.4 日期解析器2.5 Json输出解析器2.6 xml输出解析器 三 高级使用技巧3…...
【深尚想】TPS54618CQRTERQ1汽车级同步降压转换器电源芯片全面解析
1. 元器件定义与技术特点 TPS54618CQRTERQ1 是德州仪器(TI)推出的一款 汽车级同步降压转换器(DC-DC开关稳压器),属于高性能电源管理芯片。核心特性包括: 输入电压范围:2.95V–6V,输…...

如何把工业通信协议转换成http websocket
1.现状 工业通信协议多数工作在边缘设备上,比如:PLC、IOT盒子等。上层业务系统需要根据不同的工业协议做对应开发,当设备上用的是modbus从站时,采集设备数据需要开发modbus主站;当设备上用的是西门子PN协议时…...

高效的后台管理系统——可进行二次开发
随着互联网技术的迅猛发展,企业的数字化管理变得愈加重要。后台管理系统作为数据存储与业务管理的核心,成为了现代企业不可或缺的一部分。今天我们要介绍的是一款名为 若依后台管理框架 的系统,它不仅支持跨平台应用,还能提供丰富…...

深入解析光敏传感技术:嵌入式仿真平台如何重塑电子工程教学
一、光敏传感技术的物理本质与系统级实现挑战 光敏电阻作为经典的光电传感器件,其工作原理根植于半导体材料的光电导效应。当入射光子能量超过材料带隙宽度时,价带电子受激发跃迁至导带,形成电子-空穴对,导致材料电导率显著提升。…...
拟合问题处理
在机器学习中,核心任务通常围绕模型训练和性能提升展开,但你提到的 “优化训练数据解决过拟合” 和 “提升泛化性能解决欠拟合” 需要结合更准确的概念进行梳理。以下是对机器学习核心任务的系统复习和修正: 一、机器学习的核心任务框架 机…...

leetcode_69.x的平方根
题目如下 : 看到题 ,我们最原始的想法就是暴力解决: for(long long i 0;i<INT_MAX;i){if(i*ix){return i;}else if((i*i>x)&&((i-1)*(i-1)<x)){return i-1;}}我们直接开始遍历,我们是整数的平方根,所以我们分两…...

大模型——基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程
基于Docker+DeepSeek+Dify :搭建企业级本地私有化知识库超详细教程 下载安装Docker Docker官网:https://www.docker.com/ 自定义Docker安装路径 Docker默认安装在C盘,大小大概2.9G,做这行最忌讳的就是安装软件全装C盘,所以我调整了下安装路径。 新建安装目录:E:\MyS…...
32位寻址与64位寻址
32位寻址与64位寻址 32位寻址是什么? 32位寻址是指计算机的CPU、内存或总线系统使用32位二进制数来标识和访问内存中的存储单元(地址),其核心含义与能力如下: 1. 核心定义 地址位宽:CPU或内存控制器用32位…...
2.2.2 ASPICE的需求分析
ASPICE的需求分析是汽车软件开发过程中至关重要的一环,它涉及到对需求进行详细分析、验证和确认,以确保软件产品能够满足客户和用户的需求。在ASPICE中,需求分析的关键步骤包括: 需求细化:将从需求收集阶段获得的高层需…...
深度解析:etcd 在 Milvus 向量数据库中的关键作用
目录 🚀 深度解析:etcd 在 Milvus 向量数据库中的关键作用 💡 什么是 etcd? 🧠 Milvus 架构简介 📦 etcd 在 Milvus 中的核心作用 🔧 实际工作流程示意 ⚠️ 如果 etcd 出现问题会怎样&am…...

2025-05-08-deepseek本地化部署
title: 2025-05-08-deepseek 本地化部署 tags: 深度学习 程序开发 2025-05-08-deepseek 本地化部署 参考博客 本地部署 DeepSeek:小白也能轻松搞定! 如何给本地部署的 DeepSeek 投喂数据,让他更懂你 [实验目的]:理解系统架构与原…...
js 设置3秒后执行
如何在JavaScript中延迟3秒执行操作 在JavaScript中,要设置一个操作在指定延迟后(例如3秒)执行,可以使用 setTimeout 函数。setTimeout 是JavaScript的核心计时器方法,它接受两个参数: 要执行的函数&…...

Tauri2学习笔记
教程地址:https://www.bilibili.com/video/BV1Ca411N7mF?spm_id_from333.788.player.switch&vd_source707ec8983cc32e6e065d5496a7f79ee6 官方指引:https://tauri.app/zh-cn/start/ 目前Tauri2的教程视频不多,我按照Tauri1的教程来学习&…...
从零手写Java版本的LSM Tree (一):LSM Tree 概述
🔥 推荐一个高质量的Java LSM Tree开源项目! https://github.com/brianxiadong/java-lsm-tree java-lsm-tree 是一个从零实现的Log-Structured Merge Tree,专为高并发写入场景设计。 核心亮点: ⚡ 极致性能:写入速度超…...

在Zenodo下载文件 用到googlecolab googledrive
方法:Figshare/Zenodo上的数据/文件下载不下来?尝试利用Google Colab :https://zhuanlan.zhihu.com/p/1898503078782674027 参考: 通过Colab&谷歌云下载Figshare数据,超级实用!!࿰…...
FOPLP vs CoWoS
以下是 FOPLP(Fan-out panel-level packaging 扇出型面板级封装)与 CoWoS(Chip on Wafer on Substrate)两种先进封装技术的详细对比分析,涵盖技术原理、性能、成本、应用场景及市场趋势等维度: 一、技术原…...
CppCon 2015 学习:REFLECTION TECHNIQUES IN C++
关于 Reflection(反射) 这个概念,总结一下: Reflection(反射)是什么? 反射是对类型的自我检查能力(Introspection) 可以查看类的成员变量、成员函数等信息。反射允许枚…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...

高端性能封装正在突破性能壁垒,其芯片集成技术助力人工智能革命。
2024 年,高端封装市场规模为 80 亿美元,预计到 2030 年将超过 280 亿美元,2024-2030 年复合年增长率为 23%。 细分到各个终端市场,最大的高端性能封装市场是“电信和基础设施”,2024 年该市场创造了超过 67% 的收入。…...
前端工具库lodash与lodash-es区别详解
lodash 和 lodash-es 是同一工具库的两个不同版本,核心功能完全一致,主要区别在于模块化格式和优化方式,适合不同的开发环境。以下是详细对比: 1. 模块化格式 lodash 使用 CommonJS 模块格式(require/module.exports&a…...

动态规划-1035.不相交的线-力扣(LeetCode)
一、题目解析 光看题目要求和例图,感觉这题好麻烦,直线不能相交啊,每个数字只属于一条连线啊等等,但我们结合题目所给的信息和例图的内容,这不就是最长公共子序列吗?,我们把最长公共子序列连线起…...

网页端 js 读取发票里的二维码信息(图片和PDF格式)
起因 为了实现在报销流程中,发票不能重用的限制,发票上传后,希望能读出发票号,并记录发票号已用,下次不再可用于报销。 基于上面的需求,研究了OCR 的方式和读PDF的方式,实际是可行的ÿ…...

MeshGPT 笔记
[2311.15475] MeshGPT: Generating Triangle Meshes with Decoder-Only Transformers https://library.scholarcy.com/try 真正意义上的AI生成三维模型MESHGPT来袭!_哔哩哔哩_bilibili GitHub - lucidrains/meshgpt-pytorch: Implementation of MeshGPT, SOTA Me…...

Appium下载安装配置保姆教程(图文详解)
目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...