当前位置: 首页 > news >正文

华为 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

termsRIPv1RIPv2
RFCRFC 1058RFC 1721,1722 and 2453
RoutingClassfulClassful and Classless
Routing algorithmBellman-Ford Distance-VectorBellman-Ford Distance-Vector
authenticationnot supportedsupported(clear text, MD5)
secureless securemore secure
hop count limit15 (16 is considered unreachable)15 (16 is considered unreachable)
Path Metrichop counthop count
Administrative Distance120120
Protocol PortUDP 520UDP 520
routing update addressBroadcast 255.255.255.255Multicast 224.0.0.9
trigger updatenot providedprovided
subnet masknot supportedsupported
manual route summarizationnot supportedsupported
CIDRnot supportedsupported
VLSMnot supportedsupported

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动态加载控件保存为本地图片

效果图&#xff1a; 页面布局&#xff1a; <?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()) #被除数&#xff0c;除数 # remainder0 余数 # 最小公倍数 def lcm(dividend,divisor):# 最大公约数def gcd(dividend,divisor):if 0divisor:return divid…...

【OCC学习18】三维几何对象工具包:TKG3d

【OCC学习18】三维几何对象工具包&#xff1a;TKG3d loveoobaby 已于 2022-08-26 10:10:32 修改 阅读量1.2k 收藏 10 点赞数 1 分类专栏&#xff1a; OpenCascade学习笔记 文章标签&#xff1a; 学习 版权 OpenCascade学习笔记 专栏收录该内容 24 篇文章60 订阅 订阅专栏…...

【Unix】SunOS/Oracle Solaris系统介绍

一.SunOS系统介绍 SunOS 是由 Sun Microsystems 开发的 Unix 操作系统。它最初是为 Sun 的 SPARC 架构计算机设计的&#xff0c;后来也支持了 Intel x86 架构。SunOS 是基于 UNIX System V 4.1 版本&#xff0c;并且随着时间的发展&#xff0c;SunOS 经历了多个版本迭代&#…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

华为OD机试-食堂供餐-二分法

import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...

ip子接口配置及删除

配置永久生效的子接口&#xff0c;2个IP 都可以登录你这一台服务器。重启不失效。 永久的 [应用] vi /etc/sysconfig/network-scripts/ifcfg-eth0修改文件内内容 TYPE"Ethernet" BOOTPROTO"none" NAME"eth0" DEVICE"eth0" ONBOOT&q…...

LUA+Reids实现库存秒杀预扣减 记录流水 以及自己的思考

目录 lua脚本 记录流水 记录流水的作用 流水什么时候删除 我们在做库存扣减的时候&#xff0c;显示基于Lua脚本和Redis实现的预扣减 这样可以在秒杀扣减的时候保证操作的原子性和高效性 lua脚本 // ... 已有代码 ...Overridepublic InventoryResponse decrease(Inventor…...

用鸿蒙HarmonyOS5实现国际象棋小游戏的过程

下面是一个基于鸿蒙OS (HarmonyOS) 的国际象棋小游戏的完整实现代码&#xff0c;使用Java语言和鸿蒙的Ability框架。 1. 项目结构 /src/main/java/com/example/chess/├── MainAbilitySlice.java // 主界面逻辑├── ChessView.java // 游戏视图和逻辑├── …...

当下AI智能硬件方案浅谈

背景&#xff1a; 现在大模型出来以后&#xff0c;打破了常规的机械式的对话&#xff0c;人机对话变得更聪明一点。 对话用到的技术主要是实时音视频&#xff0c;简称为RTC。下游硬件厂商一般都不会去自己开发音视频技术&#xff0c;开发自己的大模型。商用方案多见为字节、百…...

基于谷歌ADK的 智能产品推荐系统(2): 模块功能详解

在我的上一篇博客&#xff1a;基于谷歌ADK的 智能产品推荐系统(1): 功能简介-CSDN博客 中我们介绍了个性化购物 Agent 项目&#xff0c;该项目展示了一个强大的框架&#xff0c;旨在模拟和实现在线购物环境中的智能导购。它不仅仅是一个简单的聊天机器人&#xff0c;更是一个集…...

使用python进行图像处理—图像变换(6)

图像变换是指改变图像的几何形状或空间位置的操作。常见的几何变换包括平移、旋转、缩放、剪切&#xff08;shear&#xff09;以及更复杂的仿射变换和透视变换。这些变换在图像配准、图像校正、创建特效等场景中非常有用。 6.1仿射变换(Affine Transformation) 仿射变换是一种…...

Unity VR/MR开发-开发环境准备

视频讲解链接&#xff1a; 【XR马斯维】UnityVR/MR开发环境准备【UnityVR/MR开发教程--入门】_哔哩哔哩_bilibili...

【NLP】 38. Agent

什么是 Agent&#xff1f; 一个 Agent 就是能够 理解、思考&#xff0c;并且进行世界交互 的模型系统&#xff0c;并不是纯粹的 prompt 返回器。 它可以&#xff1a; 读取外部数据&#xff08;文件/API&#xff09;使用记忆进行上下文维持用类Chain-of-Thought (CoT)方式进行…...