HCIA项目实践--RIP相关原理知识面试问题总结回答
9.4 RIP
9.4.1 补充概念

什么是邻居?
邻居指的是在网络拓扑结构中与某一节点(如路由器)直接相连的其他节点。它们之间可以直接进行通信和数据交互,能互相交换路由信息等,以实现网络中的数据转发和路径选择等功能。(上图R1和R2是邻居关系。)
什么是开销值?
开销值(Cost Value)是衡量数据传输路径代价的一个量化指标。它通常与链路带宽、延迟、可靠性等因素相关,用于评估数据包通过某条链路或路径的代价。开销值越低,路径越优,网络设备会依据开销值来选择最优的数据传输路径,以实现高效的数据传输。
上图中R2想要把信息发给R1时,只需要两个参数
目标网段和开销值(cost)
Cost (开销值 ) 当到达同一个目标网段存在多条路径时,需要比较开销值,优先选择开销值小的路径。
注意:同一种协议获取到的路由,比较开销值;不同协议获取到的路由,比较优先级。
这里开销值的算法:
COST = 本地路由表中的开销值 + 1
不同动态路由协议的开销值的评判标准是不一样的。
RIP开销值的评判标准 (跳数)
以跳数作为选路依据,存在不合理性(如果加上传输速率就难说了)。每经过一个路由器跳数加 1,跳数越少开销值越低,通常规定 15 跳为最大有效跳数,16 跳则表示目标网络不可达。
RIP的优先级和工作半径
RIP(路由信息协议)的默认的优先级设置为 100 ,这意味着在与其他路由协议竞争路由选择时,依据该优先级参与决策。同时,RIP 存在一个工作半径限制,即 15 跳。每经过一个路由器被视作一跳,跳数的增加意味着路径越长,当达到 15 跳时,便认为目标网络已达 “最远可达” 状态,若超过 15 跳,比如达到 16 跳,就会判定目标网络不可达。
Bellman-Ford算法(贝尔曼福特算法)
1,R2发送2.0网段的路由信息给R1,R1本地的路由表中没有该网段的路由信息,R1将2.0网段的路由信息刷新到本地的路由表中。2,R2发送2.0网段的路由信息给R1,R1本地的路由表中存在2.0网段的路由信息,并且,下一跳就是R2,R1将R2发来的路由信息刷新到本地的路由表中;(也就是将新的路由信息刷新到路由表中)。3,R2发送2.0网段的路由信息给R1,R1本地的路由表中存在2.0网段的路由信息,并且,下一跳不是R2,如果发来的路由信息的开销值小于本地路由条目的开销值,则将R2发来的路由信息刷新到本地的路由表中;4,R2发送2.0网段的路由信息给R1,R1本地的路由表中存在2.0网段的路由信息,并且,下一跳不是R2,如果发来的路由信息的开销值大于本地路由条目的开销值,则不刷新。
9.4.2 RIP的三个版本
RIPV1,RIPV2 --- IPV4
RIPNG --- IPV6
RIPV1和RIPV2的区别
1,RIPV1是有类别的路由协议,RIPV2是无类别的路由协议;
RIPV1在传递路由信息中目标网段时,不携带子网掩码;RIPV2携带子网掩码,路由宣告更灵活。
2,RIPV1不支持手工认证,RIPV2支持手工认证;
RIPV1 无手工认证机制,数据易被篡改;RIPV2 支持手工认证,像对暗号,保障路由信息安全。 手工认证(类似于有人敲门,去开门时对的暗号)。
3,RIPV1使用广播发送信息,RIPV2使用组播发送信息。
RIPV1 广播信息给所有设备,浪费资源;RIPV2 组播信息到指定组,节省带宽。
#以上图为例,分析数据包#广播过程应用层:RIPV1传输层:UDP SP:520,DP:520 (4层)网络层:SIP:12.0.0.2 DIP:255.255.255.255 (3层)数据链路层:SMAC:自己 DMAC:全F (2层)#组播过程应用层:RIPV2传输层:UDP SP520,DP:520网络层:SIP:12.0.0.2 DIP:224.0.0.9(组播地址,专门为RIPV2准备的地址)数据链路层:SMAC:自己 DMAC:01-00-5e-00-00-09(所有组播地址都是以01-00-5e为开头的)。
为什么RIP 协议传输层用 UDP 而非 TCP
一是 UDP 开销小,无连接、无拥塞控制与重传机制,能快速传输路由信息,适合 RIP 周期性更新需求。
二是 RIP 信息简单,少量数据传输,UDP 足以保证,无需 TCP 复杂机制。
三是可降低网络负载,提升效率,使网络响应更及时。
9.4.3 RIP的数据包
请求数据包RIP-Request:路由器用它来主动获取其他路由器的路由信息。比如新接入网络的路由器,会发送请求包询问周边路由情况。
响应数据包RIP-Response :(真正携带路由信息的数据包),包含路由表项,有目的网络地址、子网掩码、跳数等信息。路由器收到请求包后回应该包,也会定期广播或组播它来更新邻居的路由表。
#注意RIP在收敛完成后,依然每隔30s会发送一个response报文 (类似于一个负责任的老师,为确保学生听懂,一直讲,直到或期待学生下一次能听懂。)这个行为叫周期更新,为了弥补没有确认机制;弥补没有保活机制。RIP的周期更新一定异步周期更新(类似高峰期需要错峰一样)
周期更新定义
在计算机网络中,周期更新是指网络设备按照预先设定的固定时间间隔,对特定数据或信息进行刷新操作。例如路由器会周期性地向其他设备通告自己的路由表,以维护网络中路由信息的时效性。
周期更新作用
周期更新可确保网络设备掌握的信息始终是最新的,有助于及时适应网络拓扑的变化。它能让路由选择更精准,减少数据传输延迟,增强网络的稳定性和可靠性,保障通信的顺畅进行。
9.4.4 RIP的计时器
RIP(路由信息协议)计时器是用于控制RIP运行节奏的机制。主要有更新计时器(定期广播路由信息)、失效计时器(判定路由是否失效)、抑制计时器(防止路由环路)和刷新计时器(决定何时从路由表清除无效路由),确保路由信息准确及时。
更新计时器(Update Timer)
定义:该计时器用于设定路由器向相邻路由器广播路由信息的时间间隔,RIP 协议默认更新周期为 30 秒。即每 30 秒,运行 RIP 的路由器就会向相邻路由器发送完整的路由表。
作用:定期更新可让各路由器的路由表紧跟网络拓扑变化,保持信息同步,保证数据包能沿最优路径转发。
影响:更新周期设置很关键。过短会使网络通信流量大增,加重路由器处理负担;过长则在网络拓扑改变时,路由器难以及时获取新信息,导致数据包转发延迟甚至出错。
失效计时器(Expiration Timer)
定义:失效计时器为每个路由条目单独计时,默认时长 180 秒。若在这段时间内,路由器未收到某路由条目的更新信息,该条目的失效计时器就会超时,路由器会将其度量值设为 16 跳(即无穷大),表示该路由不可达。
时间是180S,当一条路由条目刷新之后开始计时,当180S时间到达后,该路由信息未刷新,则将判定该路由条目失效。首先,会将该路由信息从全局路由表中删除掉,但是,依然保存在缓存中,只是,将它的开销值改为16。在之后的周期更新中,依然会携带该路由信息。(带毒传输)也就是只能告诉我有什么,但是不能告诉我没有什么。
作用:它能有效检测网络中路由的有效性。当链路故障或路由器失效时,相关路由条目无法及时更新,失效计时器超时可让路由器迅速标记这些不可用路由。
影响:其时长需根据网络稳定性合理调整。设置过短,网络短暂拥塞或延迟时易误判路由失效;设置过长,路由真正失效时路由器反应迟缓,影响网络正常运行。
抑制计时器(Hold - down Timer)
定义:当路由器收到某路由条目不可达的消息后,会启动抑制计时器,默认 180 秒。计时期间,即便收到更优的该路由条目信息,路由器也不会立即更新路由表。
作用:主要功能是防止路由环路。网络拓扑变化时,路由信息可能不一致、产生振荡,抑制计时器能让网络有时间稳定,避免路由器在不稳定时频繁更新路由表,减少环路发生。
影响:设置不当会影响网络收敛速度。过长会使网络拓扑稳定后,路由器仍抑制更新,导致收敛缓慢;过短则难以有效防止路由环路。
刷新计时器(Flush Timer)
定义:刷新计时器用于控制从路由表彻底删除失效路由条目的时间。某路由条目失效计时器超时后,刷新计时器开始计时,默认 240 秒,超时后该条目将被删除。
作用:定期清理路由表中的无效条目,释放路由器内存资源,提高路由表查询效率。
影响:时长设置要恰当。过短可能在网络短暂故障时过早删除可能恢复的条目;过长则会使无效信息长时间占据内存。
9.4.5 RIP的破环机制
(1)15跳的工作半径
为路由范围划定了明确界限,有效避免了数据包在环路中无休止地循环转发,防止网络资源的浪费和拥塞,保证了路由的基本合理性和有效性。(2)触发更新 --- 在拓扑结构发生变化时立即更新
传统路由信息按固定间隔交换,网络拓扑突变,如链路断开、新节点加入时,固定更新难以及时反映,易导致环路。触发更新让路由器检测到变化后,立刻向相邻路由器发送新信息。网络中路由器能迅速获取并调整路由表,避免信息延迟导致的环路,使网络快速适应变化。(3)水平分割 --- 从哪个接口接受到的信息将不再从这个接口发出
因为信息从原接口发回,易在相邻路由器间循环形成环路。水平分割避免了不必要的信息往返,减少环路可能,提升信息传递效率。(4)毒性逆转 --- 从哪个接口接受到的信息,依然可以从这个接口发出,但是要带毒
是对水平分割的补充。通常水平分割禁止从接收接口再发信息,但特定场景会影响网络收敛。毒性逆转允许从原接口发信息,不过将路由跳数设为 16(即 “带毒”,表示不可达)。当网络变化使路由不可用时,能快速扩散不可达信息,让相邻路由器更新路由表,避免用无效路由,打破潜在环路,加速收敛。
注意:因为水平分割和毒性逆转的做法矛盾,所以,只能开启一个。华为设备默认开启水平分割。
相关文章:
HCIA项目实践--RIP相关原理知识面试问题总结回答
9.4 RIP 9.4.1 补充概念 什么是邻居? 邻居指的是在网络拓扑结构中与某一节点(如路由器)直接相连的其他节点。它们之间可以直接进行通信和数据交互,能互相交换路由信息等,以实现网络中的数据转发和路径选择等功能。&am…...
使用Python进行云计算:AWS、Azure、和Google Cloud的比较
👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 使用Python进行云计算:AWS、Azure、和Google Cloud的比较 随着云计算的普及&am…...
c++ 实现矩阵乘法
矩阵乘法的基本实现方法是三层循环,但不同的循环顺序会影响性能,比如i-j-k和i-k-j的顺序。然后,参考内容里提到了一些优化方法,比如调整循环顺序来提高缓存命中率,使用一维数组存储矩阵,或者利用SIMD指令如…...
无线4G多联机分户计费集中控制系统
拓森无线4G多联机集中控制系统应用于宝龙广场多联机计费集中控制节能改造项目,包括多联机集中控制,分户计费,空调监控管理、告警管理、节能管控、统计报表、能效分析、空调远程开关机等功能。项目的成功实施,不仅提升了维护管理效…...
文字转语音(一)各种实现说明
记录下文字转语音的各种方式及优缺点 目前只了解了调用 Windows PowerShell(System.Speech.Synthesis)、FreeTTS、JACOB(Java COM Bridge)库实现文字转语音。 其他的方式就是顺带记录了解下 Windows PowerShell(System…...
大语言模型多代理协作(MACNET)
大语言模型多代理协作(MACNET) Scaling Large-Language-Model-based Multi-Agent Collaboration 提出多智能体协作网络(MACNET),以探究多智能体协作中增加智能体数量是否存在类似神经缩放定律的规律。研究发现了小世界协作现象和协作缩放定律,为LLM系统资源预测和优化…...
【笛卡尔树】
笛卡尔树 笛卡尔树定义构建性质 习题P6453 [COCI 2008/2009 #4] PERIODNICF1913D Array CollapseP4755 Beautiful Pair[ARC186B] Typical Permutation Descriptor 笛卡尔树 定义 笛卡尔树是一种二叉树,每一个节点由一个键值二元组 ( k , w ) (k,w) (k,w) 构成。要…...
Java堆外内存的高效利用与性能优化
在Java开发中,堆外内存(Direct Memory)是除Java堆以外的内存区域。它允许Java程序直接分配和管理非堆内存,这为高性能的数据处理提供了可能。 1、 什么是堆外内存? 堆外内存,也称为直接内存(D…...
【Unity3D优化】使用ASTC压缩格式优化内存
在Unity3D手游开发中,合理选择纹理压缩格式对于优化内存占用、提高渲染效率至关重要。本文将记录近期在项目内进行的图片压缩格式优化过程,重点介绍从ETC2到ASTC 5x5的优化方案及其带来的收益。 1. 现状分析:从ETC2到ASTC 6x6 block 在项目…...
iptables网络安全服务详细使用
iptables防火墙概念说明 开源的基于数据包过滤的网络安全策略控制工具。 centos6.9 --- 默认防火墙工具软件iptables centos7 --- 默认防火墙工具软件firewalld(zone) iptables主要工作在OSI七层的二、三、四层,如果重新编译内核&…...
MiC建筑引领未来:中建海龙的探索与实践
随着全球城市化进程的加速推进,建筑行业正面临着前所未有的挑战与机遇。如何高效、环保地建造高质量的建筑,成为了行业内外普遍关注的焦点。在此背景下,MiC(Modular Integrated Construction,模块化集成建筑࿰…...
清华精品资料:DeepSeek从入门到精通、DeepSeek赋能职场
今天电脑天空给大家推荐2份清华大学专家编写的DeepSeek的使用手册,分别是《DeepSeek从入门到精通》和《DeepSeek赋能职场》。 《DeepSeek从入门到精通》是一本系统化的技术指南,旨在帮助用户从零基础到精通掌握通用人工智能模型DeepSeek的核心功能与应用…...
Nginx进阶篇 - nginx多进程架构详解
文章目录 1. nginx的应用特点2. nginx多进程架构2.1 nginx多进程模型2.2 master进程的作用2.3 进程控制2.4 worker进程的作用2.5 worker进程处理请求的过程2.6 nginx处理网络事件 1. nginx的应用特点 Nginx是互联网企业使用最为广泛的轻量级高性能Web服务器,其特点是…...
SpringBoot初始化8个常用方法
在 Spring Boot 中,初始化方法通常是在应用程序启动时被调用的,可以用来执行应用启动时的一些准备工作。以下是几种常见的初始化方法: 一、顺序 1. 图解 ┌─────────────────────────────┐│ Spring Boot…...
boolen盲注和时间盲注
获取当前数据库名 import requestsdef inject_database(url):namemax_length20low{a: 97, z: 122, A: 65, Z: 90, 0: 48, 9: 57, _: 95}high{97: a, 122: z, 65: A, 90: Z, 48: 0, 57: 9, 95: _}for i in range(1, max_length 1):low_val32high_val122while low_val < hi…...
CTF-web:java-h2 堆叠注入rec -- N1ctf Junior EasyDB
代码存在sql注入 // 处理登录表单的POST请求PostMapping({"/login"})public String handleLogin(RequestParam String username, RequestParam String password, HttpSession session, Model model) throws SQLException {// 验证用户凭据if (this.userService.valid…...
TUSB422 MCU 软件用户指南
文章目录 TUSB422 MCU 软件用户指南 目录表格图表1. 介绍2. 配置2.1 通用配置2.2 USB-PD 3.0 支持2.3 VDM 支持 3. 代码 ROM/RAM 大小优化4. 通过 UART 调试4. 移植到其他微控制器 TUSB422 MCU 软件用户指南 摘要 本文档是 TUSB422 微控制器基于 Type-C 端口控制(…...
BUU37 [DASCTF X GFCTF 2024|四月开启第一局]web1234100
Hint1:本题的 flag 不在环境变量中 Hint2:session_start(),注意链子挖掘 题目: 扫描出来www.zip class.php <?phpclass Admin{public $Config;public function __construct($Config){//安全获取基…...
常见的排序算法:插入排序、选择排序、冒泡排序、快速排序
1、插入排序 步骤: 1.从第一个元素开始,该元素可以认为已经被排序 2.取下一个元素tem,从已排序的元素序列从后往前扫描 3.如果该元素大于tem,则将该元素移到下一位 4.重复步骤3,直到找到已排序元素中小于等于tem的元素…...
vue学习9
1.文章分类页面-element-plus表格 基本架子-PageContainer封装 按需引入的彩蛋,components里面的内容都会自动注册 用el-card组件,里面使用插槽或具名插槽 文章分类渲染 & loading处理 序号: <el-table-column type"index"…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)
文章目录 1.什么是Redis?2.为什么要使用redis作为mysql的缓存?3.什么是缓存雪崩、缓存穿透、缓存击穿?3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...
MFC内存泄露
1、泄露代码示例 void X::SetApplicationBtn() {CMFCRibbonApplicationButton* pBtn GetApplicationButton();// 获取 Ribbon Bar 指针// 创建自定义按钮CCustomRibbonAppButton* pCustomButton new CCustomRibbonAppButton();pCustomButton->SetImage(IDB_BITMAP_Jdp26)…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
MySQL 8.0 OCP 英文题库解析(十三)
Oracle 为庆祝 MySQL 30 周年,截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始,将英文题库免费公布出来,并进行解析,帮助大家在一个月之内轻松通过OCP认证。 本期公布试题111~120 试题1…...
VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP
编辑-虚拟网络编辑器-更改设置 选择桥接模式,然后找到相应的网卡(可以查看自己本机的网络连接) windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置,选择刚才配置的桥接模式 静态ip设置: 我用的ubuntu24桌…...
动态 Web 开发技术入门篇
一、HTTP 协议核心 1.1 HTTP 基础 协议全称 :HyperText Transfer Protocol(超文本传输协议) 默认端口 :HTTP 使用 80 端口,HTTPS 使用 443 端口。 请求方法 : GET :用于获取资源,…...
