华为 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 经历了多个版本迭代&#…...
高频面试之3Zookeeper
高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个?3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制(过半机制࿰…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
AI书签管理工具开发全记录(十九):嵌入资源处理
1.前言 📝 在上一篇文章中,我们完成了书签的导入导出功能。本篇文章我们研究如何处理嵌入资源,方便后续将资源打包到一个可执行文件中。 2.embed介绍 🎯 Go 1.16 引入了革命性的 embed 包,彻底改变了静态资源管理的…...
Java 二维码
Java 二维码 **技术:**谷歌 ZXing 实现 首先添加依赖 <!-- 二维码依赖 --><dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.5.1</version></dependency><de…...
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习) 一、Aspose.PDF 简介二、说明(⚠️仅供学习与研究使用)三、技术流程总览四、准备工作1. 下载 Jar 包2. Maven 项目依赖配置 五、字节码修改实现代码&#…...
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的“no matching...“系列算法协商失败问题
【SSH疑难排查】轻松解决新版OpenSSH连接旧服务器的"no matching..."系列算法协商失败问题 摘要: 近期,在使用较新版本的OpenSSH客户端连接老旧SSH服务器时,会遇到 "no matching key exchange method found", "n…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
