华为 RIP 协议中 RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别
RIP (Routing Information Protocol,路由信息协议)
RIP 是一个比较早期的协议,在实际部署中较少使用,但RIP 协议的机制是所有矢量跻由协议的基础,因此,掌握 RIP 协议的工作原理对研究矢量路由协议有重要的价值。
RIP 是一种较为简单的、基于距离矢量(Distance-Vector) 算法的内部网关协议(Interior Gateway Protocol), 它采用跳数 (Hop Count)作为度量来衡量到达目的网络的距离。
距离矢量算法最早是由 Ford 和 Fulkerson 这两个人提出的,正因为如此,在早期,距离矢量算法被称为 Ford-Fulkerson 算法,而现在也有人把它称为 Bellman-Ford 算法。
RIP 兼容版本
华为 VRP 平台启动 RIP 进程后,如果没有配置 RIP 版本,默认版本为兼容版本,对 version 1 和 version 2 都支持,且系统在向外发送 RIP 路由信息是以 RIPv1 发布的,而对接收到的 RIPv1 和 RIPv2 的路由都可以识别。
RIPv1 路由的发送和接收规则
路由发送规则
将要发送的前缀网段和出接口网段进行匹配,有以下情况。
如果不在同一主网,那么此为主网边界,将前缀网段自动汇总为有类网络号,并且发送前缀到出接口。
如果在同一主网,检查要发送的前缀是否为 32 位掩码。
如果是,发送 32 位前缀到出接口。
如果不是,检查前缀和出口掩码是否相同。
如果不同,抑制发送或者汇总为主网络号。
如果相同,没有边界,发送正确前缀到出口。
路由接收规则
当路由器从某个接口接收到一个前缀后,有以下情况。
如果发现是主网络号,直接放入路由表,掩码是 8/16/24。
如果不是主网络号,将收到的目标前缀与接口网段进行匹配。
如果不在同一主网,生成有类路由,掩码按有类路由计算,放入路由表。
如果在同一主网,使用该接口的掩码与路由前缀做 “与” 运算,然后检查该前缀是网段地址还是主机地址。
如果是网段地址,生成路由,掩码等于自己的接口掩码,放入路由表。
如果不是网段地址,就默认是主机,生成 32 位主机路由,放入路由表。
RIPv1 和 RIPv2 比较
RIPv1 和 RIPv2 共同点
-
RIPv1 和 RIPv2 报文格式一致,都是采用 UDP 封装,并且监听 520 端口号 (源端口和目的端的端口号都是 520)。
-
报文类型一样,都是两种报文:request 和 response。
-
采用的度量值一样,都使用 Hop 作为度量值,最大 15 跳,如果达到 16 跳,则认为目标不可达。
-
定时器是一致的。
RIPv1 和 RIPv2 不同点
-
RIPv1 采用的是广播更新报文,RIPv2 默认采用组播更新,也可以将 RIPv2 更改为使用广播更新。通过组播方式替代广播方式的更新可以降低设备的负担,从而提高了效率。
-
RIPv1 是有类的路由协议,传递路由时不能携带子网掩码,当路由器收到路由后,子网掩码是采取猜测的方式获取的,以至于路由表存在错误路由的可能。而 RIPv2 是无类的路由协议,路由传递时可以携带子网掩码,不会出现上述问题。
-
RIPv1 不支持 VLSM、CIDR, 而 RIPv2 可以支持,因此可以更加灵活地部署网络。
-
RIPv1 无法关闭自动汇总,且不支持手动汇总,会带来不连续子网的问题。而 RIPv2 可以关闭自动汇总,并且能够在网络的任意地方进行手动汇总,可以减少路由表的大小,降低网络不稳定所带来的影响。
-
RIPv1 不支持路由标记,而 RIPv2 支持路由标记。通过设置路由标记可以为来自外部的路由统一实施路由策略,使用路由标记可以有效地防止多协议之间相互引入造成的环路问题。
-
RIPv1 报文中不含 Next-hop 属性,而 RIPv2 支持 Next-hop 属性,该属性可以解决 RIP 的次优路径问题,有全 0 (0.0.0.0) 和非全 0 (如 1.2.3.4) 的两种形式。
如果Next-hop 字段为全 0 地址,那么在路由表中,到达该目标网络的下一跳地址即为发送响应报文的源 IP 地址,到达该目标网段的数据包将会发往该接口地址。
如果Next-hop 字段为非全 0 地址 (多出现在一个广播多址网络中),则发往目标网段的数据包会被路由器直接发往此非全 0 的接口地址,因为该地址一定是最优的下一跳。 -
RIPv1 不支持认证。RIPv2 增加了对认证的支持,可以提供明文和 MD5 两种方式认证,增强安全性。
RIPv1 vs RIPv2
| terms | RIPv1 | RIPv2 |
|---|---|---|
| RFC | RFC 1058 | RFC 1721,1722 and 2453 |
| Routing | Classful | Classful and Classless |
| Routing algorithm | Bellman-Ford Distance-Vector | Bellman-Ford Distance-Vector |
| authentication | not supported | supported(clear text, MD5) |
| secure | less secure | more secure |
| hop count limit | 15 (16 is considered unreachable) | 15 (16 is considered unreachable) |
| Path Metric | hop count | hop count |
| Administrative Distance | 120 | 120 |
| Protocol Port | UDP 520 | UDP 520 |
| routing update address | Broadcast 255.255.255.255 | Multicast 224.0.0.9 |
| trigger update | not provided | provided |
| subnet mask | not supported | supported |
| manual route summarization | not supported | supported |
| CIDR | not supported | supported |
| VLSM | not supported | supported |
clear text,即 simple password 。
RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别
举例场景
A、B 两台路由器 RIP 协议互连,讨论以下几种情况:
1)A 指定运行 version 1,B- 指定运行 version 2
A 将以 version 1 向外发送 RIP 路由信息,对接收到的非 version 1 的路由信息不予接收。
B 将以 version 2 向外发送 RIP 路由信息,对接收到的非 version 2 的路由信息不予接收。
在这种情况下,A、B 之间彼此都不能学到对方的 RIP 路由信息。
2)A 指定运行 version 1,B 未指定具体版本
A 将以 version 1 向外发送 RIP 路由信息,对接收到的非 version 1 的路由信息不予接收。
B 将以 version 1 向外发送 RIP 路由信息,对接收到的 version 1 和 version 2 的路由信息都可以正常学习。
在这种情况下,A、B 之间彼此都可以学到对方的 RIP 路由信息。
3)A 指定运行 version 2,B 未指定具体版本
A 将以 version 2 向外发送 RIP 路由信息,对接收到的非 version 2 的路由信息不予接收。
B 将以 version 1 向外发送 RIP 路由信息,对接收到的 version 1 和 version 2 的路由信息都可以正常学习。
在这种情况下,A学不到B发布的 RIP 路由;B 可以学到 A 发布的 RIP 路由。
4)A 指定运行 version 1(或 version 2),B 指定运行 version 1(或 version 2)
A 将以 version 1(或 version 2)向外发送 RIP 路由信息,对接收到的非 version 1(或 version 2)的路由信息不予接收。
B 将以 version 1(或 version 2)向外发送 RIP 路由信息,对接收到的非 version 1(或 version 2)的路由信息不予接收。
在这种情况下,A、B 之间彼此都可以学到对方的 RIP 路由信息。
via: huawei
相关文章:
华为 RIP 协议中 RIP 兼容版本、RIPv1、RIPv2 在收发 RIP 报文时的区别
RIP (Routing Information Protocol,路由信息协议) RIP 是一个比较早期的协议,在实际部署中较少使用,但RIP 协议的机制是所有矢量跻由协议的基础,因此,掌握 RIP 协议的工作原理对研究矢量路由协议有重要的…...
深度学习pytorch多机多卡网络配置桥接方法
1 安装pdsh(Parallel Distributed Shell) sudo apt install pdsh sudo -s # 切换超级用户身份 …...
服务器信息获取工具
功能介绍 SSH连接到远程服务器: 用户可以输入目标服务器的IP地址、用户名、密码以及SSH端口(默认22)。 工具会尝试连接到远程服务器,并在连接失败时显示错误信息。 运行命令并返回输出: 工具可以在远程服务器上运…...
uniapp 防止重复提交数据
当用户快速点击按钮时候。我们可以统一在 请求拦截 中做防止重复提交数据的处理 以下是使用uview2封装的request请求 import { autoLogin, getUserInfo } from /utils/method.js import { refreshToken } from /api/login.js const serversUrl require(./serversUrl.js).ser…...
线程池工具类
线程池简述 为什么需要一个线程池工具类? 答:整个项目,用到线程执行任务的地方很多,不可能哪里用到就在那里直接new一个线程执行,这样资源得不到重复利用,一旦线程过多就会导致内存不足。 线程池的好处是…...
印尼“支付宝” DANA 如何借力 OceanBase 实现3个“关键零”
当前,移动支付在东南亚正迅猛发展,据谷歌、淡马锡与贝恩公司发布的报告预测,东盟地区蓬勃兴起的移动支付市场有望在2030年突破至2万亿美元的交易规模。 在此背景下,DANA作为印尼——东南亚最大经济体中的一员,秉持着推…...
2018-2022 年份微博签到数据集
前阵子接到一个实验室老师的需求,采集五年前(2024-52019)过年前后的北京微博签到数据。 前两年采集的深圳签到数据是 2022 年是当年的尚可,这次虽然时间跨度只有两个月,但是由于时间太过久远,但是颇费了一…...
Avalonia开发实践(二)——开发带边框的Grid
一、开发背景 在实际开发工作中,常常会用到Grid进行布局。为了美观考虑,会给每个格子加上边框,如下图: 原生的Grid虽然有ShowGridLines属性可以控制显示格子之间的线,但线的样式不能定义,可以说此功能非常…...
Java泛型的定义与运用
泛型 泛型的作用从使用层面上来说是统一数据类型,防止将来的数据转换异常。从定义层面上来说,定义带泛型的类,方法等,将来使用的时候给泛型确定什么类型,泛型就会变成什么类型,凡是涉及到泛型的都会变成确…...
Java如何自定义注解及在SpringBoot中的应用
注解 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明在包、类、字段、方法、局部变量、方法参数等的前面,用来对这些元素进行说…...
微软 Edge 浏览器全解析
微软 Edge 是微软推出的一个现代化浏览器,继承了 Internet Explorer(IE)的部分功能,但在速度、安全性和兼容性方面做出了很大改进。下面是对微软 Edge 浏览器的详细解析,包括其特点、安装、配置和常见问题的解答。 微软 Edge 浏览器的特点 基于 Chromium 内核 Edge 浏览…...
C++ 八股(1)
C语言中strcpy为什么不安全?如何解决? 主要原因是缺乏对输入长度的边界检查,容易导致缓冲区溢出漏洞。 解决:可以使用strncpy函数替代,或者在程序最顶端加入代码段 #define _CRT_SECURE_NO_WARNINGS 缓冲区溢出 …...
超高精电容传感器PCAP01调试+LABVIEW数据可视化调试手记
PCAP01超高精电容传感芯片STM32LabView可视化 文章目录 PCAP01超高精电容传感芯片STM32LabView可视化一、PCAP01介绍1.1、PCAP01引脚定义1.2、电容测量1.3、温度测量1.4、PCAP典型测试电路 二、PCAP01的STM32驱动2.1、SPI协议配置2.2、PCAP01浮空电容测量内部温度测量操作流程 …...
5.更多
发现一个项目与 MkDocs 类似的项目 PyMdown 拓展文档 ,等待探索。 1.排版模仿 以下网站使用 MkDocs 构建 Material for MkDocs 的美化 - Charles Les Notebook (charleschile.com) Documentation - Home Assistant (home-assistant.io) Godot Docs – master bra…...
ConditionalOnJndi注解使用介绍、应用场景以及示例代码
概述 ConditionalOnJndi 是 Spring Framework 中的一个条件注解,用于在特定的 JNDI (Java Naming and Directory Interface) 环境条件下决定是否创建一个 bean 或配置一个 bean。JNDI 是 Java EE 规范中定义的一种用于访问命名和目录服务的 API,它允许 …...
Spring Cloud 引入
1.单体架构: 定义:所有的功能实现都打包成一个项目 带来的后果: ①后端服务器的压力越来越大,负载越来越高,甚至出现无法访问的情况 ②业务越来越复杂,为了满足用户的需求,单体应用也会越来越…...
自定义波形图View,LayoutInflater动态加载控件保存为本地图片
效果图: 页面布局: <?xml version"1.0" encoding"utf-8"?><LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:tools"http://schemas.android.com/tools"android:la…...
每日一道算法题 求最小公倍数
题目 求最小公倍数_牛客题霸_牛客网 (nowcoder.com) Python 辗转相除法 dividend,divisormap(int,input().split()) #被除数,除数 # remainder0 余数 # 最小公倍数 def lcm(dividend,divisor):# 最大公约数def gcd(dividend,divisor):if 0divisor:return divid…...
【OCC学习18】三维几何对象工具包:TKG3d
【OCC学习18】三维几何对象工具包:TKG3d loveoobaby 已于 2022-08-26 10:10:32 修改 阅读量1.2k 收藏 10 点赞数 1 分类专栏: OpenCascade学习笔记 文章标签: 学习 版权 OpenCascade学习笔记 专栏收录该内容 24 篇文章60 订阅 订阅专栏…...
【Unix】SunOS/Oracle Solaris系统介绍
一.SunOS系统介绍 SunOS 是由 Sun Microsystems 开发的 Unix 操作系统。它最初是为 Sun 的 SPARC 架构计算机设计的,后来也支持了 Intel x86 架构。SunOS 是基于 UNIX System V 4.1 版本,并且随着时间的发展,SunOS 经历了多个版本迭代&#…...
树莓派超全系列教程文档--(61)树莓派摄像头高级使用方法
树莓派摄像头高级使用方法 配置通过调谐文件来调整相机行为 使用多个摄像头安装 libcam 和 rpicam-apps依赖关系开发包 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 配置 大多数用例自动工作,无需更改相机配置。但是,一…...
2.Vue编写一个app
1.src中重要的组成 1.1main.ts // 引入createApp用于创建应用 import { createApp } from "vue"; // 引用App根组件 import App from ./App.vue;createApp(App).mount(#app)1.2 App.vue 其中要写三种标签 <template> <!--html--> </template>…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...
LLM基础1_语言模型如何处理文本
基于GitHub项目:https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken:OpenAI开发的专业"分词器" torch:Facebook开发的强力计算引擎,相当于超级计算器 理解词嵌入:给词语画"…...
Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
Angular微前端架构:Module Federation + ngx-build-plus (Webpack)
以下是一个完整的 Angular 微前端示例,其中使用的是 Module Federation 和 npx-build-plus 实现了主应用(Shell)与子应用(Remote)的集成。 🛠️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...
音视频——I2S 协议详解
I2S 协议详解 I2S (Inter-IC Sound) 协议是一种串行总线协议,专门用于在数字音频设备之间传输数字音频数据。它由飞利浦(Philips)公司开发,以其简单、高效和广泛的兼容性而闻名。 1. 信号线 I2S 协议通常使用三根或四根信号线&a…...
JavaScript基础-API 和 Web API
在学习JavaScript的过程中,理解API(应用程序接口)和Web API的概念及其应用是非常重要的。这些工具极大地扩展了JavaScript的功能,使得开发者能够创建出功能丰富、交互性强的Web应用程序。本文将深入探讨JavaScript中的API与Web AP…...
Kafka入门-生产者
生产者 生产者发送流程: 延迟时间为0ms时,也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于:异步发送不需要等待结果,同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...
