计算机网络笔记:内部网关协议RIP
文章目录
- 1.协议RIP的工作原理
- 2.距离向量算法
- 3.坏消息传播得慢
1.协议RIP的工作原理
RIP的地位:RIP是内部网关协议IGP中最先得到广泛使用的协议,其中文译名为路由信息协议。
RIP概述:
- RIP是一种分布式的基于距离向量的路由选择协议,是互联网的标准协议,其最大的优点是简单。
- RIP协议要求网络中的每一个路由器都要维护从它自己到每一个网络的距离记录(因为是一组距离,所以构成了距离向量)。
- RIP中距离定义为:
- 从一个路由器到直接相连的网络的距离定义为1;
- 从一个主机到非直接连接的网络的距离定义为所经过的路由器数量加1。加1是因为到达目的网络后就进行直接交付。
- 距离也被称为跳数,并且每经过一个网络,条数就加一。
- RIP认为好的路由就是通过的网络少,也就是距离短。RIP允许一条路径上最多包含15个网络,由此可见RIP只适用于小型互联网。
- RIP不能在两个网络之间同时使用多条路由,而是只选择一条具有最少网络数的路由,哪怕还存在一条高速但网络数量较多的路由。
分布式路由选择协议:RIP协议和OSPF协议都属于分布式路由选择协议,这一类协议的共同特点是每一个路由器都要不断地与其他一些路由器交换路由信息。
RIP的特点:
- 仅与相邻路由器交换信息:如果两个路由器之间的通信不需要经过另外一个路由器,那么这两个路由器就是相邻的。不相邻的路由器不交换信息。
- 交换的信息内容:路由器交换的信息是当前本路由器所知道的全部信息,也就是自己的路由表。路由表中的信息是,每个路由器到本自治系统中所有网络的最短距离,以及到每个网络应该经过的下一跳路由器。
- 按照固定的时间间隔交换路由信息:每隔一段固定的时间,路由器根据收到的路由信息更新路由表。当网络拓扑发生变化时,路由器也及时向相邻路由器通知拓扑变化后的路由信息。
RIP协议路由表的生成过程:路由器刚刚开始工作时,路由表是空的,然后路由表就得出了到直接相连的几个网络的距离。接着,每一个路由器也只和数量1非常有限的相邻路由器交换并更新路由信息。但是经过若干次的更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。一般情况下,RIP可以收敛,并且收敛较快,也就是说自治系统中的所有结点都可以得到正确的路由选择信息。
2.距离向量算法
距离向量算法作用概述:距离向量算法是更新路由器到每个目的网络的最短距离的算法。该算法的基础是贝尔曼-福特算法。
距离向量算法流程:
- 对地址为X的相邻路由器发过来的RIP报文,先需改此报文中的所有项目:把下一跳的地址都改为X,并把所有距离字段加一。每一个项目应该包含三个字段,分别是前往的目的网络,距离和下一跳的路由器。
- 对修改后的RIP报文中的每一个表项,进行下面的步骤:
- 如果原来的路由表中没有目的网络,则把该项目添加到路由表中;
- 如果原来的路由表中有目的网络,并且下一跳的地址就是X,则用收到的项目替换表中原有的项目;
- 如果原来的路由表中有目的网络,但是下一跳的地址不是X,则分情况讨论:如果先前路由的距离更大,则进行替换,否则什么也不做。
- 如果三分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达的路由器,并把距离设置为16。
距离向量算法的作用:该算法使得每一个路由器到每一个目的网络的路由都是最短的。
注意事项:虽然所有的路由器都最终拥有了整个自治系统的全局路由信息,但是由于每一个路由器的位置不同,它们的路由表自然也是不同的。
RIP协议的版本:目前较新的RIP版本是RIP2。新版本本身并无太大变化,但是性能上有所改进,并且支持无分类域间路由选择。
RIP报文:
- 传输方式:RIP报文作为运输层用户数据报UDP的数据部分进行传送,使用UDP的端口520。
- 组成部分:RIP报文由首部和路由两部分组成。路由部分写入自治系统号ASN,这个是考虑到RIP有可能接收到本自治系统之外的路由选择信息;还要指出目的网络地址、下一跳路由器地址以及到此网络的距离。
3.坏消息传播得慢
RIP存在的一个问题:当网络出现故障时,要经过比较长的时间才能将此信息传送给所有的路由器。这个特点被称为:好消息传播得快,坏消息传播得慢。
RIP协议的评价:
- 优点:实现简单,开销较小。
- 缺点:
- 限制了网络的规模;
- 随着网络规模的增大,交换完整路由表信息的开销也增加;
- 坏消息传播得慢。
相关文章:
计算机网络笔记:内部网关协议RIP
文章目录 1.协议RIP的工作原理2.距离向量算法3.坏消息传播得慢 1.协议RIP的工作原理 RIP的地位:RIP是内部网关协议IGP中最先得到广泛使用的协议,其中文译名为路由信息协议。 RIP概述: RIP是一种分布式的基于距离向量的路由选择协议&#x…...
基于Java学生信息管理系统设计实现(源码+lw+部署文档+讲解等)
博主介绍: ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ 🍅 文末获取源码联系 🍅 👇🏻 精…...
PHP简单入门
PHP是一种流行的服务器端编程语言,被广泛用于Web开发。许多著名的网站和应用程序都是使用PHP编写的,例如Facebook、Wikipedia和WordPress等。本篇文章将为您介绍如何入门PHP编程。 环境配置 在开始使用PHP之前,需要先配置开发环境。要在本…...
java 客户端操作HDFS
1、windows上部署hadoop包 部署包win版本 源码包zip包 lib整合:共121个jar包 $HADOOP_PREFIX/share/hadoop/{common,hdfs,mapreduce,yarn,tools}/{lib,.}*.jar 将windows版本hadoop/bin/hadoop.dll 放到c:/windows/system32下 2、windows环境变量配置 hadoop的…...
区块链中的共识机制以及共识算法
目录 什么是共识 什么是共识机制 共识机制类型 1、基于工作证明(Proof of Work PoW)...
【计算机网络自顶向下】DNS简答题总结
主要功能:将域名解析为主机能识别的IP地址 DNS实现的功能 主机到IP地址的转换主机别名的转换邮件服务器别名负载均衡 DNS实现冗余服务器:一个IP地址集合对应同一个规范主机名 域名系统 分布式数据库:一个由多层DNS服务器实现的分布式数据库应…...
【QQ界面展示-实现自动回复 Objective-C语言】
一、刚才咱们监听键盘弹出事件,是怎么监听的, 1.监听键盘弹出事件的步骤 1)首先,在控制器的viewDidLoad方法中,创建一个NotificationCenter对象啊 2)通过center,让当前控制器的这个方法,监听这个通知, 3)然后,我们在这个通知里面,获取到键盘的Y值, 4)对我们的…...
-bash: ssh: command not found
解决方法: 命令安装SSH: yum -y install openssh-clients [roothad2 ~]# yum -y install openssh-clients Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirrors.qlu.edu.cn * extras: mirrors.ustc.edu.cn …...
ansible的部署和模块
一、 ansible 的概述 1、ansible简介 Ansible是一款为类Unix系统开发的自由开源的配置和自动化工具。 它用Python写成,类似于saltstack和Puppet,但是有一个不同和优点是我们不需要在节点中安装任何客户端。 它使用SSH来和节点进行通信。Ansible基于 …...
nginx的优化
目录 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 二 nginx的优化之日志分割 三 nginx的优化之页面压缩 四 连接超时 五 nginx的并发设置 七总结:nginx的优化 一 隐藏版本号在网页上面有nginx的版本号会让别人攻击你的服务器 如图所示 第一种方法是关…...
MySQL8超详细安装教程
MySQL的下载与安装 一、MySQL8下载 MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。 MySQL Enterprise Edition 企业版本,需付费,不能在线下载&#x…...
【FPGA入门】第五篇、按键消抖
目录 第一部分、按键抖动现象 第二部分、消抖思路及代码 1、简单的按键消抖思路 2、实际按键消抖思路 3、实际按键消抖模块代码 第三部分、总结 第一部分、按键抖动现象 只要学习过单片机的都会知道,按键在按下去和松开的那个瞬间都存在抖动,在单片…...
【MySql】MySql的事务基础篇
文章目录 CURD加控制什么是事物为什么会出现事务事务的版本支持事务的提交方式 CURD加控制 模拟一个买票系统的场景如下所示: MySQL注定会被多个客户端进行访问的,这个是肯定的,存储的都是数据,数据在上层可能有一个线程在用&…...
docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接
题目:docker创建Ubuntu,Ubuntu创建桌面环境,本机使用VNC连接 文章目录 前言docker创建基于Ubuntu:20.04的容器使用ssh连接容器容器安装桌面环境本机电脑使用VNC连接测试用python来创建的ui能否显示坑参考 前言 为什么我想要用ubuntu的桌面环…...
理解redis的多线程和IO多路复用
参考资料 https://blog.csdn.net/TZ845195485/article/details/119745735 Redis单线程和多线程问题的背景 Redis里程碑版本迭代 Redis的单线程 主要是指Redis的网络IO和键值对读写是由一个线程来完成的,Redis在处理客户端的请求时包括获取(socket读&a…...
iOS 开发 | 自定义不规则 label
把我之前发布在简书的博客搬运过来。 目录 场景思路具体实现1. 自定义一个继承自UILabel的IrregularLabel2. 在初始化方法中进行相应初始化和设置3. 在layoutSubviews方法中进行路径的设置 最终效果箭头 label 场景 最近 App 改版,以下是截取的部分 UI 设计图&…...
client-go的Indexer三部曲之三:源码阅读
欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 《client-go的Indexer三部曲》全部链接 基本功能性能测试源码阅读 本篇概览 本文是《client-go的Indexer三部曲》系列的终篇,主要任务是阅读和…...
收件地址解析成 省+市+区+详细地址的形式
项目中的源代码在我的GitHub:https://github.com/weitw/address-analyzer 先看效果: 如上图,address数输入的地址,Address对象是解析后的地址。可以支持逆推上一级,且支持地址白话解析。 一、项目介绍 1、解析规则 …...
数据结构与算法基础(青岛大学-王卓)(5)
叮叮咚咚,新一期来袭,我还在吃桃子,吃桃子,吃桃子。。。串和python的字符串差不多,数组和广义表像是python的list 文章目录 串(string) - 字符串概念及术语串的类型定义存储结构(同线性表)串的模式匹配算法…...
微信小程序开发入门学习01-TDesign模板解读
目录 1 使用模板创建小程序2 app.json3 页面布局总结 原来我们使用微信开发者工具,比较困难的是前端框架的选择上,官方也没有提供一套框架供我们使用,最近开发者工具已经提供了一套前端框架,后续我们开发的效率会因为使用模板提高…...
PyFlow多线程编程:SingletonThreadSampleNode的完整实现指南
PyFlow多线程编程:SingletonThreadSampleNode的完整实现指南 【免费下载链接】PyFlow Visual scripting framework for python 项目地址: https://gitcode.com/gh_mirrors/py/PyFlow PyFlow作为Python的视觉化脚本框架,为开发者提供了直观的节点编…...
Fish Speech 1.5API文档增强:OpenAPI 3.0规范生成与Swagger UI集成
Fish Speech 1.5 API文档增强:OpenAPI 3.0规范生成与Swagger UI集成 1. 引言:为什么需要API文档增强? 在实际开发中,我们经常遇到这样的场景:团队新成员需要快速了解API接口,第三方开发者想要集成语音合成…...
Spring AI实战系列(七):Chat Memory对话记忆实战,基于Redis实现持久化多轮对话
一、系列回顾与本篇定位1.1 系列回顾第一篇:完成Spring AI与阿里云百炼的基础集成,基于ChatModel 实现同步对话与API Key安全注入。第二篇:解锁ChatClient,实现全局统一配置与链式调用,告别重复样板代码。第三篇&#…...
101. 如何通过 Rancher Manager 收集指标
Environment 环境 Rancher 2.10 牧场主 2.10 Procedure 程序Rancher support might ask you to collect the Prometheus metrics for the cattle-cluster-agent. 牧场主支持可能会让你收集牛群集群代理的普罗米修斯指标。 They are available through the Rancher local clu…...
化整为零、分而治之、异步编排:一文读懂现代并发的底层心法
LongAdder:化整为零,热点分散 在Java多线程编程中,原子变量(如AtomicLong)通过CAS操作实现线程安全的累加。然而,在高并发场景下,大量线程争抢同一原子变量会引发严重的缓存一致性问题。…...
SEO_10个提升网站排名的实用SEO技巧分享(370 )
SEO:10个提升网站排名的实用SEO技巧分享 在当今的互联网时代,一个网站的成功离不开搜索引擎优化(SEO)。SEO不仅仅是一套技术,更是一种思维方式。本文将详细分享十个实用的SEO技巧,帮助你提升网站的排名,吸…...
如何写 Skill
核心概念 Skill 是一个自包含的模块,用来给 Claude/Cascade 注入特定领域的知识、工作流和工具。本质上就是一个"新手入职指南",让通用 AI 变成某个领域的专家。 目录结构 skill-name/ ├── SKILL.md # 必须,核心文件 └…...
如何解决Tokio项目中Windows平台TCP性能问题的完整指南
如何解决Tokio项目中Windows平台TCP性能问题的完整指南 【免费下载链接】tokio A runtime for writing reliable asynchronous applications with Rust. Provides I/O, networking, scheduling, timers, ... 项目地址: https://gitcode.com/GitHub_Trending/to/tokio To…...
4步攻克Fiji在macOS系统的启动难题:从诊断到长效维护的全方位解决方案
4步攻克Fiji在macOS系统的启动难题:从诊断到长效维护的全方位解决方案 【免费下载链接】fiji A "batteries-included" distribution of ImageJ :battery: 项目地址: https://gitcode.com/gh_mirrors/fi/fiji 问题定位:精准识别Fiji启动…...
Windows ISO制作与补丁集成自动化工具实战指南:从手动操作到批量部署的效率革命
Windows ISO制作与补丁集成自动化工具实战指南:从手动操作到批量部署的效率革命 【免费下载链接】Win_ISO_Patching_Scripts Win_ISO_Patching_Scripts 项目地址: https://gitcode.com/gh_mirrors/wi/Win_ISO_Patching_Scripts 在数字化时代,系统…...
