昭通网站制作/怎么自己建网站
目录
1. 路由表的基本概念
2. 路由表中的默认路由
3. IP数据报的转发流程
4. 路由聚合
5. 最长前缀匹配
总结
在网络世界中,IP数据报的转发是如何进行的? 这篇文章将带你深入了解路由表的基本概念和IP数据报的转发流程。我们会用简洁明了的语言和实际例子,帮助你快速掌握这一重要的网络知识。
1. 路由表的基本概念
什么是路由表?
路由表是路由器用来决定如何转发IP数据报的核心。一个IP路由表通常包含以下主要信息:
- 目的网络地址:表示数据报要到达的目标网络。
- 地址掩码:用于确定目的网络的范围。
- 下一跳路由器:数据报需要转发到的下一个路由器的地址。
- 接口:数据报通过哪个接口发送。
图示例:
图4—23(a)展示了一个简单的路由表例子,有四个网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。可以想象,若按目的地址来制作路由表,则所得出的路由表就会过于庞大(如果每一个网络有1万台主机,四个网络就有4万台主机,因而每一个路由表就有4万个项目)。但若按目的主机所在网络的地址来制作路由表,那么每一个路由器中的路由表就只包含4个项目。
以路由器R2的路由表为例,由于R2同时连接在网络2和网络3上,因此只要目的主机在这两个网络上,就可通过接口0或接口1由路由器R2直接交付,不需要下一跳路由器的地址。若目的主机在网络1中,则下一跳路由器应为R1,其IP地址为128.0.2.7。同理,若目的主机在网络4中,则路由器R2应把分组转发给IP地址为128.0.3.1的路由器R3。
注意:
用一个IP地址并不能准确标识一个网络,因此路由表中除了目的网络地址外还要有一个地址掩码(合起来等价于一个网络前缀)。
图4—23(a)所示的整个网络拓扑可简化为图4—23(b)所示的链路。使用这样的简化图,可以使我们不用关心某个网络内部的具体拓扑及有多少台计算机连接在该网络上,因为这些与分组转发问题并没有什么关系。这样的简化图强调了在互联网上转发数据报时,是从一个路由器转发到下一个路由器。
总结:
由于路由器是根据路由表中的目的网络地址来确定下一跳路由器的,因此有以下结论:
- IP数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。
- 只有最后一个路由器才试图向目的主机进行直接交付。
2. 路由表中的默认路由
什么是默认路由?
默认路由是一种特殊的路由条目,用于减少路由表的大小和查找时间。当一个网络只有少量的对外连接时,默认路由非常有用。
示例:
在图4—24中,主机H的路由表只需要三个项目:到本网络的路由、到网络N的路由和默认路由。
默认路由的优势:
- 减少路由表的大小:默认路由可以避免为每个可能的目的地址添加一条路由条目,从而简化路由表。
- 提高查找效率:使用默认路由可以加快路由查找的速度,尤其在网络边缘或主机发送数据报时。
具体例子:
在图4—24所示的例子中,连接在网络N上的主机H的路由表只需要3个项目。第一个项目就是到本网络主机的路由,其目的网络就是本网络N,因而不需要路由器转发,而是直接交付。第二个项目是到网络N的路由,对应的下一跳路由器是R2。第三个项目就是默认路由,只要目的网络不是N1和N2,就一律选择默认路由,把数据报先间接交付路由器R1,让R1再转发给下一个路由器,一直转发到目的网络上的路由器,最后进行直接交付。
3. IP数据报的转发流程
IP数据报是如何转发的?
我们用一个例子来说明IP数据报的转发过程。
例4—5:
主机H1发送一个IP数据报,其目的地址是128.30.33.138。路由器R收到此数据报后,会依次查找路由表,找到匹配的条目并进行转发。
步骤:
- 提取目的IP地址D。
- 判断是否为直接交付。
-
- 对与路由器直接相连的网络逐个进行检查:用各网络的掩码和D逐位相“与”,看结果是否和相应的网络地址匹配。若匹配,则把分组直接交付(当然还需要把D转换成物理地址,把数据报封装成帧发送出去),转发任务结束;否则间接交付。
- 间接交付:
-
- 对路由表中的每一行(目的网络地址、掩码、下一跳、接口),用其中的掩码和D逐位相“与”,其结果为N。若N与该行的网络地址匹配,则把数据报传送给该行指明的下一跳路由器;否则继续查找。
- 使用默认路由:
-
- 若路由表中有一条默认路由,则把数据报传送给路由表中所指明的默认路由器;否则报告转发错误。
- 报告错误:
-
- 若没有默认路由,则报告转发数据报出错。
总结:
IP数据报的首部中没有地方可以用来指明“下一跳路由器的IP地址”。在IP数据报的首部写上的IP地址是源IP地址和目的IP地址,而没有中间经过的路由器的IP地址。既然IP数据报中没有下一跳路由器的IP地址,那么待转发的数据报又怎样找到下一跳路由器呢?当路由器收到一个待转发的数据报时,在从路由表得出下一跳路由器的IP地址后,不是把这个地址填入IP数据报,而是送交下层的网络接口软件。
4. 路由聚合
什么是路由聚合?
路由聚合(Route Aggregation)是一种将多个相同路由的表项合并为一个表项的技术,能够有效减少路由表的大小。
示例:
图4—26展示了如何将四个网络的路由合并为一个CIDR地址块,减少路由表的表项数量。
路由聚合的优势:
- 减少路由表的大小:通过将多个相同路由的表项合并为一个表项,可以显著减少路由表的大小。
- 提高查找效率:减少表项数量有助于提高路由查找的效率。
- 优化网络资源:路由聚合能有效利用网络资源,减少不必要的路由信息传递。
具体操作:
对于路由器R来说,到网络1、网络2、网络3和网络4的下一跳路由器都是R1,而这四个网络的地址空间正好可以合并成一个CIDR地址块,因此在路由表中完全可以用一个网络前缀140.23.7.0/24来指示这四个网络的路由。
持续优化:
实际上这种地址聚合可以不断进行下去,多个路由相同的小的CIDR地址块可以聚合成大的地址块,大的地址块还可以聚合成更大的地址块,如图4—26中的R路由表。
5. 最长前缀匹配
什么是最长前缀匹配?
在使用CIDR时,路由表中可能存在多个有包含关系的地址块前缀。最长前缀匹配(Longest-Prefix Matching)是指在这些匹配结果中选择具有最长网络前缀的路由。
示例:
在图4—26中,若存在一条直接到网络4的链路,则应选择该链路中的最长前缀匹配项进行数据报的转发。
最长前缀匹配的优势:
- 更具体的路由选择:由于网络前缀越长,其地址块就越小,因此最长前缀匹配能够选择更加具体的路由。
- 实现特定主机路由:通过最长前缀匹配,可以方便地实现特定主机路由,只需在路由表中加入一条前缀为“特定主机IP地址/32”的表项即可。
- 实现默认路由:默认路由可以用网络前缀0.0.0.0/0来表示,因为该网络前缀的长度为0,任何IP地址都能和它匹配。
缺点:
- 查找时间变长:由于需要遍历整个路由表才能找到最长匹配的前缀项,因此查找路由表的时间会变长。
总结
路由表与IP数据报转发的关键点:
- 路由表:包含目的网络地址、地址掩码、下一跳和接口等信息。
- 默认路由:可以减少路由表的大小和查找时间,特别适用于网络边缘或主机发送数据报时。
- IP数据报的转发流程:包括直接交付、间接交付和使用默认路由等步骤。
- 路由聚合:能够有效减少路由表的大小,提高查找效率,优化网络资源。
- 最长前缀匹配:在使用CIDR时选择具有最长网络前缀的路由,提供更具体的路由选择,方便实现特定主机路由和默认路由。
通过这篇文章,你应该对路由表和IP数据报的转发有了一个基础的了解。希望这些知识能帮助你更好地理解网络世界的运作。如果有任何疑问或建议,欢迎在评论区留言讨论。
图文来源:《计算机网络教程》第六版微课版
相关文章:

路由表与IP数据报转发:基础小白指南
目录 1. 路由表的基本概念 2. 路由表中的默认路由 3. IP数据报的转发流程 4. 路由聚合 5. 最长前缀匹配 总结 在网络世界中,IP数据报的转发是如何进行的? 这篇文章将带你深入了解路由表的基本概念和IP数据报的转发流程。我们会用简洁明了的语言和实…...

python—selenium爬虫
文章目录 Selenium与Requests对比一、工作原理二、功能特点三、性能表现 下载对应驱动1.首先我们需要打开edge浏览器,打开设置,找到“关于Microsoft Edge”,点击进入查看浏览器版本。2.查找版本之后,搜索edge驱动下载,…...

Mysql - 索引
目录 一、存储引擎 二、索引 索引结构 索引分类 索引语法 联合索引 前缀索引 索引使用规则 最左前缀法则 范围查询使索引失效 字段做运算操作索引失效 字符串字段不加单引号索引失效 字段做前模糊查询索引失效 or连接条件索引失效 数据发布情况索引失效 指定使用…...

从课本上面开始学习的51单片机究竟有什么特点,在现在的市场上还有应用吗?
引言 51单片机,作为一种经典的微控制器,被广泛应用于各种嵌入式系统中。尽管如今ARM架构的高性能低成本单片机在市场上占据主导地位,但51单片机凭借其独特的优势依然在某些领域保持着应用价值。本文将深入探讨51单片机的特点、架构、应用以及…...

uniapp中出现Uncaught runtime errors
项目中运行出现上面的错误信息,使用uniapp发现,其实我只是跨域了,控制台报错,但是不想屏幕上显示; 解决办法是在vue.config.js增加如下配置即可 devServer: {client: {overlay: false,errors:true},}, 错误信息也不想…...

数字信号处理基础知识(二)
在介绍完“离散时间序列”基本概念和性质后,实际上就已经踏入了“数字信号处理”这门学科的学习征程,这篇文章里主要去说明“线性时不变系统”的定义概念和探讨“周期采样”的注意细节,相信更加理解这些概念定义和底层逻辑,对于大…...

人生低谷来撸C#--015 C# 属性(Property)
1、概念 在C#中,属性(Property)是一种特殊的成员,它提供了一种灵活的机制来访问和修改对象的状态(即类的字段)。属性结合了字段和方法的特性,使得数据的访问和修改更加安全和便捷。下面我用一个…...

面试题003:面向对象的特征——封装性
Java规定了4种权限修饰,分别是:private、缺省、protected、public。我们可以使用4种权限修饰来修饰类及类的内部成员。当这些成员被调用时,体现可见性的大小。 封装性在程序中的体现: 场景1:私有化(private)类的属性,提供公共(pub…...

森林防火,森林防火智能储水罐_鼎跃安全
森林防火是保护森林的重要措施,每年发生的森林火灾都严重威胁着自然安全,对社会经济和生态造成严重的破坏。为了切实有效地预防并扑灭森林火灾,森林防火智能储水罐已成为现代森林防火体系中的重要装备。 储水罐内置传感器和控制系统ÿ…...

虚幻引擎,体积雾、体积光、镜头泛光
1、体积雾 这里介绍的是用于地面的体积雾效果,效果如图1-1: 图1-1 首先,需要场景中存在指数级高度雾并开启体积雾(如图1-2)。然后创建材质,材质域选择“体积”,混合模式选择“Additive”。材质节…...

Python 机器学习求解 PDE 学习项目——PINN 求解二维 Poisson 方程
本文使用 TensorFlow 1.15 环境搭建深度神经网络(PINN)求解二维 Poisson 方程: 模型问题 − Δ u f in Ω , u g on Γ : ∂ Ω . \begin{align} -\Delta u & f \quad & \text{in } \Omega,\\ u & g \quad & \text{on } \Gamma:\p…...

微信小程序删除滑块 SwiperCell 自动收起 Van weapp van-swipe-cell 滑块自动收起 点击页面也自动收起滑块
在当前页面整个 view 中 给页面绑定 点击事件bindtap"onSwipeCellPage"给 van-swipe-cell 组件设置 id (for循环可以添加 id"swip-cell-{{item.id}}" )van-swipe-cell 组件 添加属性 当用户打开滑块时触发 bind:open"swiperCel…...

【vluhub】log4j注入漏洞 CVE-2021-44228
LOG4介绍 是一个用Java编写的可靠,快速和灵活的日志框架(API),它在Apache软件许可下发布 log4j存在远程代码执行漏洞、受影响版本2.x 部署环境 攻击机环境:192.168.3.180 kail环境:192.168.203.12【NAT…...

Redis核心技术与实战学习笔记
Redis核心技术与实战学习笔记 最近想沉下心来看下redis,买了蒋德钧老师的《Redis 核心技术与实战》,这里记录一些学习笔记 希望能够坚持下去有想一起学习的童鞋,可以点击跳转到文章尾部获取学习资源,仅供学习不要用于任何商业用途!!! redis知识全景图 …...

力扣经典题目之->设计循环队列 的超详细讲解与实现
一:题目 二:思路讲解 前提: a:本文采取数组来实现队列去解决题目 b:开辟k1个空间,front指向队首,rear指向队尾的后一个,rear这样会更好的判空和判满 以下根据pop和push感受满和空…...

【数据结构】排序算法——Lesson2
Hi~!这里是奋斗的小羊,很荣幸您能阅读我的文章,诚请评论指点,欢迎欢迎 ~~ 💥💥个人主页:奋斗的小羊 💥💥所属专栏:C语言 🚀本系列文章为个人学习…...

Ubuntu编译ffmpeg并添加cmake工程
文章目录 前言前提须知为什么要自己编译 FFmpeg前提软件包与工具的安装编译ffmpeg写CMakeList.txt包含ffmpeg到我们项目中 总结 前言 FFmpeg 是一个领先的多媒体框架,能够解码、编码、转码、复用、解复用、流化、过滤和播放几乎所有人类和机器创造的内容。FFmpeg 包…...

Vue.js[组件(Component)]
什么是: 拥有专属的HTML,CSS,数据的,可重用的页面独立区域 一个页面由多个组件聚合而成一个大型的页面 在代码层面上,一个组件就是一个可反复使用的自定义标签。 vs jq插件 vs boot组件 boot插件: 虽然可重用,但仍需…...

基于微信小程序+SpringBoot+Vue的校园自助打印系统(带1w+文档)
基于微信小程序SpringBootVue的校园自助打印系统(带1w文档) 基于微信小程序SpringBootVue的校园自助打印系统(带1w文档) 管理信息可以处理复杂的信息从而提高用户的工作效率,减少失误。所以本基于Vue和微信小程序的校园自助打印系统的开发非常有意义,本系…...

qt设置过滤器
1.创建事件过滤器类,在主窗口中安装事件过滤器 class PasteFilter : public QObject {Q_OBJECTpublic:PasteFilter(QObject *parent nullptr) : QObject(parent) {}protected:bool eventFilter(QObject *obj, QEvent *event) override {if (event->type() QEv…...

线上环境服务器CPU飙升排查
前因 收到线上服务器CPU使用率100%的告警信息。 环境 jdk1.8CentOS Linux ;CentOS Linux 排查 查看服务器CPU使用率 果然cpu已经达到了100%了 命令 top 使用arthas工具 使用方式 arthas 执行命令java -jar arthas-boot.jar 然后执行命令 thread 看到有两个…...

unity文字||图片模糊
一.文字模糊 1、增大字体大小后等比缩放 快捷键R 2、更改字体渲染模式 二.图片模糊 1、更改过滤模式 2、更改格式或者压缩 3、如果只是图片边缘看不清,可以增加canvas/图片的每单位参考像素...

香薰学习笔记
1 喷香水的方法 ChatGPT-4o 学习使用香水是提升个人形象的一个好方法。 喷香水的方法如下: 皮肤吸收:香水最好喷在皮肤上,因为皮肤的温度能帮助香水散发出更好的香味。喷在衣服上可能会影响香水的原始味道。脉搏点:将香水喷在脉搏…...

iOS ------ weak的基本原理
1.weak的基本概念 weak弱引用,所引用的对象的引用计数不会加一,引用对象被释放的时候会自动设置为nil多用于解决对象间的相互引用造成内存泄露的循环引用的问题 2.实现原理 Person *object [[Person alloc] init]; id __weak objc object;Runtime维…...

实时更新UI界面
1.处理实时通信,几种方案 1:当一个用户发送一条需要实时更新的信息,我可以直接查找在线用户,通过在线用户来进行判断条件,发送更新请求 2:用户在一个需要实时更新的界面时,就不断的向服务端发…...

为什么Spring不推荐@Autowired用于字段注入
背景 Spring是Java程序员常用的框架之一。官方从Spring 4.0开始不推荐使用Autowired进行字段注入。 Spring注入方式 基于构造器注入:在构造器上使用Autowired。 优点:可以声明字段为final,确保字段在构造时被初始化。 基于setter方法注入&…...

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第三十九章 Linux MISC驱动
i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…...

基于MobileNetv2的垃圾分类函数式自动微分-昇思25天打卡
基于MobileNetv2的垃圾分类 本文档主要介绍垃圾分类代码开发的方法。通过读取本地图像数据作为输入,对图像中的垃圾物体进行检测,并且将检测结果图片保存到文件中。 1、实验目的 了解熟悉垃圾分类应用代码的编写(Python语言)&a…...

STM32CubeIDE(CAN)
目录 一、概念 1、简述 2、CAN 的几种模式 二、实践 1、环回模式轮询通信 1.1 软件配置 1.2 代码编写 2、环回模式中断通信 2.1 软件配置 2.2 代码编写 一、概念 1、简述 STM32微控制器系列包含多个型号,其中一些型号集成了CAN(Controller Are…...

GO Channel使用详解(各种场景下的最佳实践)
GO Channel使用详解(各种场景下的最佳实践) 一个知识点:通过反射的方式执行 select 语句,在处理很多的 case clause,尤其是不定长的 case clause 的时候,非常有用。而且,在后面介绍任务编排的实现时,我也会采用这种方法,所以,我先带你具体学习下 Channel 的反射用法…...