计算机网络:网络层 —— 路由信息协议 RIP

文章目录

    • 路由选择协议
      • 动态路由协议
      • 路由信息协议 RIP
        • RIP 的重要特点
        • RIP的基本工作过程
        • RIP的距离向量算法
        • RIP存在的问题
        • RIP版本和相关报文的封装

路由选择协议

因特网是全球最大的互联网,它所采取的路由选择协议具有以下三个主要特点:

  • 自适应:因特网采用动态路由选择,能较好地适应网络状态的变化。

  • 分布式:因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新

  • 分层次:将整个因特网划分为许多较小的自治系统(AutonomousSystem,AS)在自治系统内部(域内路由选择)和外部(域间路由选择)采用不同类别的路由选择协议,分别进行路由选择。

![[自治系统.png]]

  • 自治系统内部使用内部网关协议 IGP ,自治系统之间使用外部网关协议 EGP

  • 外部网关协议 EGP 和内部网关协议 IGP 只是路由选择协议的分类名称,而不是具体的路由选择协议。

  • 外部网关协议和内部网关协议名称中使用的是“网关”这个名词,是因为在因特网早期的 RFC 文档中,没有使用“路由器”而使用的是“网关”这一名词。

动态路由协议

动态路由协议分为距离矢量路由协议链路状态路由协议

  • 距离矢量路由协议(Distance Vector Routing Protocols)

    • 通过向相邻路由器定期通告自己的路由表,逐跳传递路由信息。
    • 典型协议:RIP(Routing Information Protocol)。
    • 优点:实现简单。
    • 缺点:收敛慢,容易产生路由环。
  • 链路状态路由协议(Link State Routing Protocols)

    • 每个路由器通过广播链路状态信息构建整个网络的拓扑图,使用 Dijkstra 算法计算最短路径。
    • 典型协议:OSPF(Open Shortest Path First)、IS-IS(Intermediate System to Intermediate System)。
    • 优点:收敛快,路由精确。
    • 缺点:实现复杂,资源消耗大。
  • 路径矢量路由协议(Path Vector Routing Protocols)

    • 主要用于大型互联网络(如互联网),通过通告路径信息,避免路由环。
    • 典型协议:BGP(Border Gateway Protocol)。
    • 优点:适用于大规模网络,避免路由环。
    • 缺点:实现复杂,路由策略灵活。

路由信息协议 RIP

路由信息协议(Routing Information Protocol,RIP),是一种基于距离矢量算法的动态路由协议,主要用于在计算机网络中选择最佳路径,并确保数据包能够正确地从源地址传输到目的地址。

RIP 是内部网关协议中最先得到广泛使用的协议之一,其相关标准文档为 [RFC 1058]

  • RIP 要求自治系统 AS 内的每一个路由器,都要维护从它自己到AS内其他每一个网络的距离记录。这是一组距离,称为距离向量(Distance-Vector,D-V)。

  • RIP 使用跳数(HopCount)作为度量(Metric)来衡量到达目的网络的距离

    • RIP 将路由器到直连网络的距离定义为1.

    • RIP 将路由器到非直连网络的距离定义为所经过的路由器数加1

    • RIP 允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网

  • RIP 认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由

  • 当到达同一目的网络有多条 RIP 距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上。

有些厂商的路由器并没有严格按照 RIP 标准文档的规定来实现 RIP。例如思科路由器中的RIP,将路由器到直连网络的距离定义为0,但这并不影响 RIP 的正常运行。

RIP 的重要特点
  1. 和谁交换信息仅和相邻路由器交换信息

![[相邻路由器交换信息.png]]

  1. 交换什么信息:路由器自己的路由表,即本路由器到所在自治系统 AS 中各网络的最短 RIP 距离,以及到各网络应经过的下一跳路由器

  2. 何时交换信息周期性交换(例如,每隔约30秒),为了加快RIP的收敛速度,当网络拓扑发生变化时路由器要及时向相邻路由器通告拓扑变化后的路由信息,这称为触发更新

RIP的基本工作过程

![[RIP的基本工作过程.png]]

  1. 路由器刚开始工作时,只知道自己到直连网络的RIP距离为1

  2. 每个路由器仅和相邻路由器周期性地交换并更新路由信息

  3. 若干次交换和更新后,每个路由器都知道到达本自治系统AS内各网络的最短距离和下一跳路由器,称为收敛

RIP的距离向量算法

RIP(Routing Information Protocol)是一种基于距离向量(Distance-Vector)算法的路由协议,主要用于较小的自治系统(AS)内的路由信息交换。RIP 协议使用跳数(hop count)作为路由的度量标准,即数据包从一个网络节点到另一个网络节点所经过的路由器数量

路由更新

  • RIP 路由器会周期性地向相邻的路由器发送整个路由表(通常是每30秒一次)。这个过程被称为 路由更新

  • 180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIP距离设置为 16,表示不可达),若再过一段时间(如120秒)还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除

  • 路由器在发送路由表之前,会将自己的跳数加1,然后将其发送出去。这样,接收到的路由器就能知道到达该网络的路径长度(跳数)。

更新原则

  • 相同的下一跳,最新消息,要更新到达目的网络

  • 发现了新的网络,添加

  • 到达目的网络,不同的下一跳,新路由优势(度量值更小),要更新

  • 到达目的网络,不同的下一跳,新路由劣势(度量值更大),不更新

  • 到达目的网络,不同的下一跳,RIP 距离相等,可以等价负载均衡,添加

计算最佳路径

  • 当路由器接收到邻居发来的路由更新时,它会比较新路由与现有路由的度量值(跳数)。

  • 如果新路由的度量值更小(即跳数更少),或者当前路由不可达(跳数为无穷大),那么路由器就会更新其路由表,将新路由作为到达该目的地的最佳路径。

  • 如果新路由的度量值大于或等于现有路由的度量值,则忽略新路由。

RIP存在的问题
  1. 收敛速度慢

    • 因为RIP依赖于周期性的路由更新(通常为每30秒一次),而不是立即响应网络变化。RIP协议在检测到网络故障时,需要经过相对较长的时间才能将此信息传送到所有的路由器,并且可能导致故障消息被覆盖。

    • 当网络拓扑发生变化时,RIP的收敛时间经常大于5分钟,这在大型或动态变化的网络中可能导致路由选择的不及时和次优。

    • 对于规模较大的自治系统 AS,应当使用 OSPF 协议。

  2. 路由环路:由于 RIP 的收敛速度慢,会导致路由环路问题(也称RIP距离无穷计数问题)。这是距离向量算法的一个固有问题。可以采取以下多种措施减少出现该问题的概率或减小该问题带来的危害:

    • 限制最大RIP距离为15(16表示不可达)

    • 触发更新:当路由表发生变化时就立即发送路由更新报文,而不仅是周期性发送

    • 路由毒逆(Split Horizon with Poison Reverse):当路由器向某个接口发送路由更新时,它会从该接口的路由表中删除该路由的条目(即不向发送者发送自己的路由)。
      同时,如果路由器从某个接口学习到了一条路由,但后来又从其他接口收到了关于该路由的更新,且跳数增加,那么路由器会向原始接口发送一个跳数为16(即不可达)的路由更新,以告知邻居该路由已失效。

    • 水平分割(路由毒逆的简化):让路由器记录收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送。

使用上述措施仍无法彻底解决问题。因为在距离向量算法中,每个路由器都缺少到目的网络整个路径的完整信息,无法判断所选的路由是否出现了环路

  1. 跳数限制:RIP 的跳数限制为 15 跳。如果某个网络的跳数超过这个限制,RIP 会认为该网络不可达,从而限制使用 RIP 的自治系统 AS 的规模。

  2. 开销问题:相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大。

RIP版本和相关报文的封装

现在较新的 RIP 版本是1998年11月公布的 RIP2 [RFC 2453],已经成为因特网标准协议。与 RIP1 相比,RIP2 可以支持变长子网掩码和CIDR。另外,RIP2 还提供简单的鉴别过程并支持多播

RIP 相关报文使用运输层的用户数据报协议UDP进行封装,使用的UDP端口号为520

  • RIP报文封装的角度看,RIP 属于 TCP/IP 体系结构的应用层
  • 但 RIP 的核心功能是路由选择,这属于 TCP/IP 体系结构的网际层(网络层)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

算法:图的相关算法

图的相关算法 1. 图的遍历算法1.1 深度优先搜索1.2 广度优先搜索 2. 最小生成树求解算法普里姆(Prim)算法克鲁斯卡尔(Kruskal)算法 3. 拓扑排序4. 最短路径算法 1. 图的遍历算法 图的遍历是指从某个顶点出发,沿着某条搜索路径对图中的所有顶点进行访问且只访问次的…

PowerCat反弹Shell

PowerCat介绍 PowerCat是一个powershell写的tcp/ip瑞士军刀,可以看成ncat的powershell的实现,然后里面也 加入了众多好用的功能,如文件上传,smb协议支持,中继模式,生成payload,端口扫描等等。 …

A014-基于Spring Boot的家电销售展示平台设计与实现

🙊作者简介:在校研究生,拥有计算机专业的研究生开发团队,分享技术代码帮助学生学习,独立完成自己的网站项目。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹 赠送计算机毕业设计600…

蓬勃发展:移动开发——关于软件开发你需要知道些什么

一、前言 移动开发一直都是软件开发领域中最有趣的领域之一,这是因为: 1、移动开发为“只有一个人”的开发团队提供了一个非常独特的机会,让他可以在相对较短的时间内建立一个实际的、可用的、有意义的应用程序; 2、移动开发也代…

RK3568平台开发系列讲解(字符设备驱动篇)注册字符设备

🚀返回专栏总目录 文章目录 一、字符设备初始化二、字符设备的注册和注销沉淀、分享、成长,让自己和他人都能有所收获!😄 📢注册字符设备可以分为两个步骤: 字符设备初始化字符设备的添加一、字符设备初始化 字符设备初始化所用到的函数为 cdev_init(…),在对该函数讲…

软件测试面试题个人总结

前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…

【Java语言】继承和多态(一)

继承 继承就是实现代码的复用;简而言之就是重复的代码作为父类(基类或超类),而不同的可以作为子类(派生类)。如果子类想要继承父类的成员就一定需要extends进行修饰(如:(…

关于我的编程语言——C/C++——第四篇(深入1)

(叠甲:如有侵权请联系,内容都是自己学习的总结,一定不全面,仅当互相交流(轻点骂)我也只是站在巨人肩膀上的一个小卡拉米,已老实,求放过) 字符类型介绍 char…

Golang | Leetcode Golang题解之第535题TinyURL的加密与解密

题目: 题解: import "math/rand"type Codec map[int]stringfunc Constructor() Codec {return Codec{} }func (c Codec) encode(longUrl string) string {for {key : rand.Int()if c[key] "" {c[key] longUrlreturn "http:/…

群控系统服务端开发模式-应用开发-业务架构逻辑开发第一轮测试

整个系统的第一个层次已经开发完毕,已经有简单的中控,登录、退出、延迟登录时长、黑名单、数据层封装、验证层封装、RSA加解密、Redis等功能,还缺获取个人、角色按钮权限、角色菜单权限功能。角色按钮权限以及角色菜单权限等明后天开发&#…

「C/C++」C/C++的区别

✨博客主页何曾参静谧的博客📌文章专栏「C/C」C/C程序设计📚全部专栏「VS」Visual Studio「C/C」C/C程序设计「UG/NX」BlockUI集合「Win」Windows程序设计「DSA」数据结构与算法「UG/NX」NX二次开发「QT」QT5程序设计「File」数据文件格式「PK」Parasoli…

PySpark 本地开发环境搭建与实践

目录 一、PySpark 本地开发环境搭建 (一)Windows 本地 JDK 和 Hadoop 的安装 (二)Windows 安装 Anaconda (三)Anaconda 中安装 PySpark (四)Pycharm 中创建工程 二、编写代码 …

筋膜枪哪个牌子好?深入探索国产筋膜枪品牌的口碑之选

​双11购物狂欢节即将来临,面对市面上琳琅满目的筋膜枪品牌,是否感到无从选择?别担心,我们为你带来了倍益康X Max、有品H1、飞利浦mini小金刚、SKG F7和Artsmith AS300这五款迷你筋膜枪的全方位测评,帮你找到性价比最高…

java.io.FileNotFoundException: Could not locate Hadoop executable: (详细解决方案)

1,当你在pycharm 上运行spark代码时候出现下面这个报错。 解决方案 我们要先去hadoop的bin目录下去看看里面是否有 winutils.exe 这个错误 就是缺少winutils.exe 所以报这个错误,把它放到你的hadoop的bin目录下问题就解决了

Linux第三讲:环境基础开发工具使用

Linux第三讲:环境基础开发工具使用 1.Linux软件包管理器yum1.1什么是软件包管理器1.2操作系统生态问题1.3什么是yum源 2.vim详解2.1什么是vim2.2vim的多模式讲解2.2.1命令模式的诸多指令2.2.1.1gg和nshiftg2.2.1.2shift$和shift^2.2.1.3上、下、左、右2.2.1.4w和b2.…

数据库管理-第256期 Oracle DB 23.6新特性一览(20241031)

数据库管理256期 2024-10-31 数据库管理-第256期 Oracle DB 23.6新特性一览(20241031)1 AI向量搜索:新的向量距离度量2 混合向量索引3 分区:本地邻近分区向量索引4 持久邻近图向量索引5 稀疏向量6 邻居图向量索引的事务支持7 特征…

智能诊断系统:AI可以辅助临床诊断,提高疾病诊断的准确性和效率

​ 大家好,我是Shelly,一个专注于输出AI工具和科技前沿内容的AI应用教练,体验过300款以上的AI应用工具。关注科技及大模型领域对社会的影响10年。关注我一起驾驭AI工具,拥抱AI时代的到来。 AI工具集1:大厂AI工具【共2…

GCC编译器的`-Wall`、`-Wextra`和`-pedantic`选项解读

gcc是广泛使用的开源编译器,-Wall、-Wextra和-pedantic是gcc中用于控制警告信息的选项,以下是详细介绍: -Wall(启用大部分警告) 功能:-Wall 选项用于启用一系列常用的警告信息,这些警告能帮助…

[RocketMQ 5.3.1] Win11 + Docker Desktop 本地部署全流程 + 踩坑记录

时间比较仓促,部署Linux的过程我就简写啦。 0. 我的系统版本(供参考) Windows 11 专业版 24H2, Build 26100.2161 Experience: Windows Feature Experience Pack 1000.26100.32.0 JDK: OpenJDK Amazon Corretto 21.0.4.7.1 1. 在WSL2上安…

基于SpringBoot的植物园管理小程序【附源码】

基于SpringBoot的植物园管理小程序 效果如下: 系统登录页面 管理员主页面 商品订单管理页面 植物园信息管理页面 小程序主页面 小程序登录页面 植物信息查询推荐页面 研究背景 随着互联网技术的快速发展和移动设备的普及,线上管理已经成为各行各业提高…