华为 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 经历了多个版本迭代&#…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
无法与IP建立连接,未能下载VSCode服务器
如题,在远程连接服务器的时候突然遇到了这个提示。 查阅了一圈,发现是VSCode版本自动更新惹的祸!!! 在VSCode的帮助->关于这里发现前几天VSCode自动更新了,我的版本号变成了1.100.3 才导致了远程连接出…...
2024年赣州旅游投资集团社会招聘笔试真
2024年赣州旅游投资集团社会招聘笔试真 题 ( 满 分 1 0 0 分 时 间 1 2 0 分 钟 ) 一、单选题(每题只有一个正确答案,答错、不答或多答均不得分) 1.纪要的特点不包括()。 A.概括重点 B.指导传达 C. 客观纪实 D.有言必录 【答案】: D 2.1864年,()预言了电磁波的存在,并指出…...
基于当前项目通过npm包形式暴露公共组件
1.package.sjon文件配置 其中xh-flowable就是暴露出去的npm包名 2.创建tpyes文件夹,并新增内容 3.创建package文件夹...
江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
srs linux
下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935,SRS管理页面端口是8080,可…...
【C++从零实现Json-Rpc框架】第六弹 —— 服务端模块划分
一、项目背景回顾 前五弹完成了Json-Rpc协议解析、请求处理、客户端调用等基础模块搭建。 本弹重点聚焦于服务端的模块划分与架构设计,提升代码结构的可维护性与扩展性。 二、服务端模块设计目标 高内聚低耦合:各模块职责清晰,便于独立开发…...
使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台
🎯 使用 Streamlit 构建支持主流大模型与 Ollama 的轻量级统一平台 📌 项目背景 随着大语言模型(LLM)的广泛应用,开发者常面临多个挑战: 各大模型(OpenAI、Claude、Gemini、Ollama)接口风格不统一;缺乏一个统一平台进行模型调用与测试;本地模型 Ollama 的集成与前…...
Docker 本地安装 mysql 数据库
Docker: Accelerated Container Application Development 下载对应操作系统版本的 docker ;并安装。 基础操作不再赘述。 打开 macOS 终端,开始 docker 安装mysql之旅 第一步 docker search mysql 》〉docker search mysql NAME DE…...
初探Service服务发现机制
1.Service简介 Service是将运行在一组Pod上的应用程序发布为网络服务的抽象方法。 主要功能:服务发现和负载均衡。 Service类型的包括ClusterIP类型、NodePort类型、LoadBalancer类型、ExternalName类型 2.Endpoints简介 Endpoints是一种Kubernetes资源…...
