计算机网络-RIP动态路由协议简介

news2024/11/15 8:10:14

一、概述

前面我们学习了动态路由协议按照工作机制及算法划分可以分为:距离矢量路由协议DV型和链路状态路由协议LS型。RIP就是典型的距离矢量路由协议,但是实际工作中用得已经比较少了。

  • 距离矢量路由协议DV:
  1. RIP
  • 链路状态路由协议LS:
  1. OSPF
  2. IS-IS

二、RIP(路由信息协议)

RIP(Routing Information Protocol)路由协议是一种基于距离矢量算法的动态路由选择协议。它主要用于在小型到中型网络中自动计算和更新路由表,以便网络设备能够选择最佳路径来转发数据包。RIP协议使用UDP的520端口作为传输协议,并通过定期发送和接收路由更新信息来维护网络中的路由表。每个路由器都会根据收到的路由信息计算到达目标网络的“跳数”,并以此为依据选择最佳的转发路径,最大跳数为16,超过就表示路由不可达。

2.1 RIP的版本

RIP(Routing Information Protocol)经历了两个主要版本的发展,分别为RIPV1和RIPV2:

RIPv1:

  • 发布于1980年代初期,是最早的版本。
  • 它是一个有类别(Classful)路由协议,不支持变长子网掩码(VLSM)和无类别域间路由选择(CIDR)。
  • RIP v1不包含子网掩码信息在其路由更新中,因此所有宣告的网络都被假设为A、B、C类网络的传统掩码。
  • 更新报文仅能通过广播方式发送(255.255.255.255)。
  • 不支持认证机制以保证安全性。
报文格式
报文格式

RIPv2:

  • 是对RIPv1的重大改进,增加了许多新特性以适应更大规模和更复杂的网络环境。
  • 支持VLSM和CIDR,能够处理非传统类别的子网划分。
  • 在路由更新中包含了子网掩码信息,使得精确路由成为可能。
  • 提供了路由验证功能,支持明文认证和MD5加密认证。
  • 能够通过组播地址(224.0.0.9)发送更新报文,同时也支持广播方式。
  • 支持手工路由聚合以减少路由表大小。
RIPV2报文格式
RIPV2报文格式

总的来说就是V1版本只能基于A、B、C类进行路由通告而不能根据网段掩码进行通告,以及一些安全功能和路由聚合。

2.2 RIP的工作原理

RIP协议的工作原理主要基于以下几个步骤:

  • 路由表维护:每个运行RIP协议的路由器都会维护一个路由表,其中包含了到达各个目的网络的最佳路径信息。
  • 路由更新:路由器会定期(通常是每30秒)向相邻的路由器发送路由更新报文,其中包含了本路由器所知道的路由信息。这些报文包含了目的网络、下一跳地址以及到达目的网络的跳数。
  • 计算最佳路径:当路由器收到相邻路由器的路由更新报文时,它会根据报文中的信息计算到达目的网络的最佳路径。这通常是通过比较不同路径的跳数来实现的,选择跳数最少的路径作为最佳路径。
  • 路由表更新:如果路由器根据收到的路由更新报文计算出了更好的路径,它会更新自己的路由表,并将新的路由信息发送给相邻的路由器。

示例 概括:每个运行RIP的路由器更新路由是进行全量泛洪更新,因此会占用大量带宽;每30S进行更新请求,超过180S无应答标记为路由不可达;每经过一个三层设备距离(跳数)增加1,大于15时路由不可达;RIPV1通过广播进行泛洪,RIPV2通过组播224.0.0.9进行泛洪,减少了广播流量对资源占用的影响。

实验示例
实验示例
报文抓包
报文抓包
每30S更新
每30S更新

2.3 RIP的防环机制

  • 水平分割(Split Horizon):路由器不会将从某个接口学习到的路由信息再通过同一接口广播出去。
  • 毒性逆转(Poison Reverse):当路由器撤销某条路由时,会将其标记为无限大(16跳)并继续广播出去,这样其他路由器就不会选择这条失效的路由。
  • 触发更新(Triggered Updates):一旦检测到路由发生变化,立刻发送更新信息,而不是等待下一轮定时更新,以快速收敛网络。
  • 最大跳数限制:由于RIP的最大跳数限制为15跳,这也在一定程度上防止了环路的出现,因为任何超过15跳的路由被认为是无穷大,不再被考虑。

2.4 配置示例

# 接口地址配置
正常配置即可

# rip 进程号,与ospf进程号类似
rip 1
 undo summary          # 关闭路由汇总功能
 version 2             # 指定使用RIPV2版本
 network 12.0.0.0      # 宣告路由
 network 1.0.0.0       # 宣告路由

# 查看RIP路由
[AR4]display ip routing-table protocol rip
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Public routing table : RIP
         Destinations : 5        Routes : 5        

RIP routing table status : <Active>
         Destinations : 5        Routes : 5

Destination/Mask    Proto   Pre  Cost      Flags NextHop         Interface

        1.1.1.1/32  RIP     100  3           D   34.1.1.3        GigabitEthernet
0/0/2
        2.2.2.2/32  RIP     100  2           D   34.1.1.3        GigabitEthernet
0/0/2
        3.3.3.3/32  RIP     100  1           D   34.1.1.3        GigabitEthernet
0/0/2
       12.1.1.0/24  RIP     100  2           D   34.1.1.3        GigabitEthernet
0/0/2
       23.1.1.0/24  RIP     100  1           D   34.1.1.3        GigabitEthernet
0/0/2

RIP routing table status : <Inactive>
         Destinations : 0        Routes : 0

总结:RIP路由协议使用跳数进行度量,简单说就是从哪个接口出去,经过了多少跳三层路由设备,超过16则不可达。每30S进行路由更新,而且路由更新是全量更新,占用资源较大。通过上面几种防环机制进行控制。由于它的一些限制,因此实际上现实情况已经很少使用了,仅作了解即可。

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1552623.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Spring boot + Vue协同过滤算法的电影推荐系统

末尾获取源码作者介绍&#xff1a;大家好&#xff0c;我是墨韵&#xff0c;本人4年开发经验&#xff0c;专注定制项目开发 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c;不进则退。学习如赶路&#xff0c;不能慢一步。 目录 一、项目简介 二、开发技术与环…

每日一题--最长连续序列

洛阳春-岑参 人到洛阳花似锦&#xff0c;偏我来时不逢春。 谁道三冬无春色&#xff0c;冰山高处万里银 目录 题目描述 思路分析 方法及其时间复杂度 法一 暴力枚举&#xff1a; 法二 哈希表遍历&#xff1a; 法三 并查集&#xff1a; 个人总结 题目描述 128. 最长连续序…

使用pytorch构建一个无监督的深度卷积GAN网络模型

本文为此系列的第二篇DCGAN&#xff0c;上一篇为初级的GAN。普通GAN有训练不稳定、容易陷入局部最优等问题&#xff0c;DCGAN相对于普通GAN的优点是能够生成更加逼真、清晰的图像。 因为DCGAN是在GAN的基础上的改造&#xff0c;所以本篇只针对GAN的改造点进行讲解&#xff0c;其…

Day53:WEB攻防-XSS跨站SVGPDFFlashMXSSUXSS配合上传文件添加脚本

目录 MXSS UXSS&#xff1a;Universal Cross-Site Scripting HTML&SVG&PDF&SWF-XSS&上传&反编译(有几率碰到) SVG-XSS PDF-XSS Python生成XSS Flash-XSS 知识点&#xff1a; 1、XSS跨站-MXSS&UXSS 2、XSS跨站-SVG制作&配合上传 3、XSS跨站-…

第18次修改了可删除可持久保存的前端html备忘录

第17次修改了可删除可持久保存的前端html备忘录&#xff1a;增加年月日星期&#xff0c;增加倒计时&#xff0c;更改保存区名称可以多个备忘录保存不一样的信息&#xff0c;匹配背景主题&#xff1a;现代深色 <!DOCTYPE html> <html lang"zh"> <head&…

Radio Silence for mac 好用的防火墙软件

Radio Silence for Mac是一款功能强大的网络防火墙软件&#xff0c;专为Mac用户设计&#xff0c;旨在保护用户的隐私和网络安全。它具备实时网络监视和控制功能&#xff0c;可以精确显示每个网络连接的状态&#xff0c;让用户轻松掌握网络活动情况。 软件下载&#xff1a;Radio…

低功耗、低成本 NAS/公共文件夹 的可能性

使用现状&#xff1a;多台工作电脑&#xff0c;家里人手一台&#xff0c;还在两个住处 有好几台工作电脑&#xff0c;不同电脑不同OS有不同的用途&#xff0c;最大的问题就是各个电脑上文件的同步问题&#xff0c;这里当然就需要局域网里的公共文件夹&#xff0c;在NAS的问题上…

探索数据库mysql--------------mysql主从复制和读写分离

目录 前言 为什么要主从复制&#xff1f; 主从复制谁复制谁&#xff1f; 数据放在什么地方&#xff1f; 一、mysql支持的复制类型 1.1STATEMENT&#xff1a;基于语句的复制 1.2ROW&#xff1a;基于行的复制 1.3MIXED&#xff1a;混合类型的复制 二、主从复制的工作过程 三个重…

掌握Flutter底部导航栏:畅游导航之旅

1. 引言 在移动应用开发中&#xff0c;底部导航栏是一种常见且非常实用的用户界面元素。它提供了快速导航至不同功能模块或页面的便捷方式&#xff0c;使用户可以轻松访问应用程序的各个部分。在Flutter中&#xff0c;底部导航栏也是一项强大的功能&#xff0c;开发者可以利用…

Linux用户及用户组权限

一、用户和用户组 功能项命令实例作用用户组cat /etc/group查看当前系统存在的用户组groupadd testing添加一个新的用户组testingcat /etc/group查看组是否被新增成功groupmod -n test testing将testing重命名成testgroupdel test删除组testgroups root查看用户root所在的所有…

tdesign坑之EnhancedTable树形结构默认展开所有行

⚠️在官方实例中&#xff0c;树形结构的表格提供了2种方法控制展开全部节点&#xff1a; 一是通过配置属性tree.defaultExpandAll为true代表默认展开全部节点&#xff08;仅默认情况有效&#xff09;&#xff1b; 二是使用组件实例方法expandAll()可以自由控制树形结构的展开…

“直播曝光“有哪些媒体直播分流资源?

传媒如春雨&#xff0c;润物细无声&#xff0c;大家好&#xff0c;我是51媒体网胡老师。 我们线下举办活动时&#xff0c;往往希望活动进行更大的曝光&#xff0c;随着视频直播越来越被大众认可&#xff0c;甚至成了活动的标配&#xff0c;那么做活动视频直播的时候&#xff0…

R语言批量计算t检验,输出pvalue和均值

1.输入数据如下&#xff1a; 2.代码如下 setwd("E:/R/Rscripts/rG4相关绘图") # 读取CSV文件 data <- read.csv("box-cds-ABD-不同类型rg4-2.csv", stringsAsFactors FALSE)# 筛选出Type2列为指定五种类型的数据 filtered_data <- subset(data, …

LockSupport与线程中断机制

中断机制是个协商机制 Interrupt(): 将中断状态设置为true Interrupted():&#xff08;静态方法&#xff09; 1.返回当前线程的中断状态 2.将中断状态清零并设置为false is Interrupted(): 判断当前线程是否被中断 如何停止中断运行中的线程&#xff1f; 一个线程不应该由…

提取html工具封装和应用

提取html工具封装和应用 BeautifulSoup库和介绍BeautifulSoup使用BeautifulSoup重点方法BeautifulSoup其他方法 认证参数化实现创建json文件导包&#xff08;参数化&#xff09;编写测试用例技术难点--判断验证码不同 BeautifulSoup库和介绍 BeautifulSoup使用 1、导包 2、实例…

C# OpenCvSharp 轮廓检测

目录 效果 代码 下载 效果 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.…

kubernetes K8s的监控系统Prometheus升级Grafana,来一个酷炫的Node监控界面(二)

上一篇文章《kubernetes K8s的监控系统Prometheus安装使用(一)》中使用的监控界面总感觉监控的节点数据太少&#xff0c;不能快算精准的判断出数据节点运行的状况。 今天我找一款非常酷炫的多维度数据监控界面&#xff0c;能够非常有把握的了解到各节点的数据&#xff0c;以及运…

【js刷题:数据结构数组篇之长度最小的子数组】

长度最小的子数组 一、题目二、方法1.暴力解法2.滑动窗口是什么 滑动窗口的起始位置滑动窗口的结束位置 一、题目 给定一个含有 n 个正整数的数组和一个正整数 s &#xff0c;找出该数组中满足其和 ≥ s 的长度最小的 连续 子数组&#xff0c;并返回其长度。如果不存在符合条件…

移动端开发思考:Uniapp的上位替代选择

文章目录 前言跨平台开发技术需求技术选型uniappFlutterMAUIAvalonia安卓原生 Flutter开发尝试Avalonia开发测试测试项目新建项目代码MainViewMainViewModel 发布/存档 MAUI实战&#xff0c;简单略过打包和Avalonia差不多 总结 前言 作为C# .NET程序员&#xff0c;我有一些移动…

虚拟机-从头配置Ubuntu18.04(包括anaconda,cuda,cudnn,pycharm,ros,vscode)

最好先安装anaconda后cuda和cudnn&#xff0c;因为配置环境的时候可能conda会覆盖cuda的路径&#xff08;不确定这种说法对不对&#xff0c;这里只是给大家的建议&#xff09; 准备工作&#xff1a; 1.Ubuntu18.04&#xff0c;x86_64&#xff0c;amd64 虚拟机下载和虚拟机Ubu…