内部网关协议_路由信息协议RIP_开放路径优先OSPF协议_基本知识

目录:
因特网路由选择协议概述
路由信息协议RIP
开放路径优先OSPF协议

因特网路由选择协议概述

一.路由选择分类

静态路由选择和动态路由选择

静态路由选择:

  • 采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目。
  • 静态路由选择简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化。
  • 静态路由选择一般只在小规模网络中采用。

动态路由选择:

  • 路由器通过路由选择协议自动获取路由信息。
  • 动态路由选择比较复杂、开销比较大,但能较好地适应网络状态的变化。
  • 动态路由选择适用于大规模网络。

二.因特网采用分层次的路由选择协议

自适应:

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

分布式:

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

分层次:

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

三.域内路由和域间路由

自治系统内部的路由选择成为域间路由选择,自治系统之间的路由选择称为域间路由选择.

内部网关协议(IGP):
一个自治系统内部使用的路由选择协议,如RIP和OSPF

外部网关协议(EGP):
不同的自治系统之间使用的路由选择协议.

注意:

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

路由信息协议RIP

一.路由信息协议RIP的相关基本概念

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

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

    • RIP将路由器到直连网络距离定义为1
    • RIP将路由器到非直连网络距离定义为所经过的路由器数加1
    • RIP允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网
      在这里插入图片描述
  • RIP认为好的路由就是“距离短”的路由,也就是所通过路由器数量最少的路由

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

二.RIP具有的三个重要特点

和谁交换信息?

仅和相邻路由器交换信息。

交换什么信息?

路由器自己的路由表。 即本路由器到所在自治系统AS中各网络的最短RIP距离,以及到各网络应经过的下一跳路由器。

何时交换信息?

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

三.RIP距离向量算法

C给D发送路由表更新信息

在这里插入图片描述

图1 最开始发送时的路由表状态
图2 更新结束D的状态
  • 除了上述RIP路由条目更新规则,在RIP的距离向量算法中还包含以下一些时间参数:
    • 路由器每隔大约30秒向其所有相邻路由器发送路由更新报文。
    • 若180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIP距离设置为16,表示不可达),若再过一段时间(如120秒),还没有收到该路由条目的更新报文,则将该路由条目从路由表中删除。

四.RIP存在的问题

坏消息传播的慢
在这里插入图片描述
图解:

当N1与R1之间发生故障时,R1路由表更新为到N1=16,表示不可达,当他刚要给R2更新的时候,R2先发送了更新报文,把R1中的N1改成了 2,R1,此时R1再给R2发送的就是3,R2,如此循环下去,直到=16为止,这个过程会浪费很多时间

五.RIP的优缺点

优点:

  • 实现简单,路由器开销小。
  • 如果一个路由器发现了RIP距离更短的路由,那么这种更新信息就传播得很快,即“好消息传播得快”。

缺点:

  • RIP限制了最大RIP距离为15,这就限制了使用RIP的自治系统AS的规模。
  • 相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大。
  • “坏消息传播得慢”,使更新过程的收敛时间过长。因此,对于规模较大的自治系统AS,应当使用OSPF协议。

开放路径优先OSPF协议

引入:开放最短路径优先(Open Shortest Path First,OSPF)协议是为了克服路由信息协议RIP的缺点从而开发出来的。

一.OSPF的相关基本概念

  • OSPF是基于链路状态的,而不像RIP是基于距离向量的。
  • OSPF基于链路状态并采用最短路径算法计算路由,从算法上保证了不会产生路由环路。

链路状态:

  • 思科路由器中OSPF协议计算代价的方法是:100Mbls除以链路带宽计算结果小于1的值仍记为1,大于1且有小数的,舍去小数。

OSPF路由器邻居关系的建立和维护:

  • OSPF相邻路由器之间通过交互问候(Hello)分组来建立和维护邻居关系。
    • 问候(Hello)分组封装在IP数据报中,发往组播地址224.0.0.5。IP数据报首部中的协议号字段的取值为89,表明IP数据报的数据载荷为OSPF分组。
    • 问候(Hello)分组的发送周期为10秒
    • 40秒未收到来自邻居路由器的问候(Hellc
      则认为邻居路由器不可达。
    • 每个路由器都会建立一张邻居表

链路状态通告:

  • 使用OSPF的每个路由器都会产生链路状态通告(Link State Advertisement,LSA)。
  • LSA中包含以下两类链路状态信息:
    • 直连网络的链路状态信息
    • 邻居路由器的链路状态信息

链路状态更新分组:

  • 链路状态通告LSA被封装在链路状态更新(Link State Update,LSU)分组中,采用可靠的洪泛法(Flooding)进行发送。
    • 洪泛法的要点是路由器向自己所有的邻居路由器发送链路状态更新分组,收到该分组的各路由器又
      将该分组转发给自己所有的邻居路由器(但其上游路由器除外),以此类推。
    • 可靠是指收到链路状态更新分组后要发送确认,收到重复的更新分组无需再次转发,但要发送一次确认。
      在这里插入图片描述

链路状态数据库:

  • 使用OSPF的每一个路由器都有一个链路状态数据库(Link State Database,LSDB),用于存储链路状态通告LSA
  • 通过各路由器洪泛发送封装有各自链路状态通告LSA的链路状态更新分组LSU,各路由器的链路状态数据库LSDB最终将达到一致

为了确保链路状态数据库与全网的状态保持一致,OSPF还规定每隔一段时间(如30分钟)就刷新一次数据库中的链路状态.由于一个路由器链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系.因此,当互联网规模很大时,OSPF要比RIP好得多,而且OSPF协议没有坏消息传播的慢的问题.

二.OSPF的五种分组类型

在这里插入图片描述

三.OSPF的基本工作过程

在这里插入图片描述

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

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

相关文章

代码随想录算法训练营第四十四天【动态规划part06】 | 完全背包、518. 零钱兑换 II、377. 组合总和 Ⅳ

完全背包 有N件物品和一个最多能背重量为W的背包。第i件物品的重量是weight[i],得到的价值是value[i] 。每件物品都有无限个(也就是可以放入背包多次),求解将哪些物品装入背包里物品价值总和最大。 题目链接: 题目页…

《实现领域驱动设计》笔记——上下文映射图

一个项目的上下文映射图可以用方式来表示。比较容易的一种是画一个简单的框图表示两个或多个限界上下文之间的映射关系。该框图表示了不同的限界上下文在解决方案空间中是如何通过集成相互关联的。另一种更详细的方式是通过限界上下文集成的源代码实现来表示。 上下文映射图为什…

php字符串处理函数的使用

php字符串处理函数的使用 trim() trim()函数的功能用于去除字符串首尾的空白字符(包括空格、制表符、换行符等&#xff09;。它可以用于清理用户输入的数据或去除字符串中的多余空格。 <?php $char" holle world! ";echo trim($char) ?>str_repl…

Bean基本注解开发

Commponent 使用Component注解代替<bean>标签 <!--注解扫描:扫描指定的基本包及其子包下的类&#xff0c;识别使用了Component注解的文件--><context:component-scan base-package"org.xfy"></context:component-scan> package org.xfy.Dao.…

登陆页面模板

简单好看的登陆页面 vue项目代码 可忽略js部分 先来个效果图 <template><div class"login"><div class"content"><p >账户密码登录</p><div class"unit"><label class"label">用户名</…

springcloud宿舍管理系统源码

开发技术&#xff1a; jdk1.8&#xff0c;mysql5.7&#xff0c;idea&#xff0c;vscode springcloud springboot mybatis vue elementui 功能介绍&#xff1a; 用户端&#xff1a; 登录注册 首页展示轮播&#xff0c;公告&#xff0c;报修&#xff0c;晚归登记&#xff0…

【bug 回顾】上传图片超时

测试 bug 问题分析 - 上传图片超时 最近在测试上遇到一个莫名奇妙的问题&#xff0c;最后也没有得到具体是哪块的原因&#xff0c;看各位大佬有没有思路&#xff1f;&#xff1f; 一 、背景 现在我们有三台服务器&#xff0c;用来布两套环境。其中另外一台服务器3配置的 tom…

SpringSecurity5|12.实现RememberMe 及 实现原理分析

security/day08 这个功能大家还熟悉么&#xff1f;我们在登录网站的时候&#xff0c;除了让你输入用户名和密码&#xff0c;还会有个勾选框&#xff1a; 记住我&#xff01;&#xff01;&#xff01;不是让大家记住我哈。 值得一提的是&#xff0c;Spring Security 也提供了这个…

Midjourney绘画提示词Prompt参考教程

Midjourney绘画提示词Prompt参考教程&#xff1a;无需魔法使用。 一、AI工具 SparkAi&#xff1a; SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常…

二、类与对象(二)

8 this指针 8.1 this指针的引入 我们先来定义一个日期的类Date&#xff1a; #include <iostream> using namespace std; class Date { public:void Init(int year, int month, int day){_year year;_month month;_day day;}void Print(){cout << _year <&l…

在使用tomcat运行项目时,遇到端口80被占用的情况问题解决

问题描述&#xff1a;Failed to initialize end point associated with ProtocolHandler ["http-bio-80"] java.net.BindException: Address already in use: NET_Bind <null>:80 在学习springmvc的时候&#xff0c;跟着黑马视频进行学习&#xff0c;结果&…

在.bashrc文件修改环境变量的做法

作者&#xff1a;朱金灿 来源&#xff1a;clever101的专栏 为什么大多数人学不会人工智能编程&#xff1f;>>> ~/.bashrc文件是linux下保存环境变量的系统文件。原以为使用sed命令修改.bashrc文件&#xff0c;实际上不行&#xff0c;需要使用echo命令。具体示例如下…

HTML+CSS+ElementUI搭建个人博客静态页面展示(纯前端)

网站演示 登录页面 门户页面 搭建过程 技术选取:HTML/CSS VUE2 ElementUI(Version - 2.15.14)编程软件:VSCode 环境配置与搭建 安装指令 1. 先确保你的电脑已经安装好了npm和node npm -vnode -v2. ElementUI下载&#xff0c;推荐使用 npm 的方式安装 npm i element-ui…

给sprite上增加刷光动效

游戏引擎 —— cocos creator 3.52 此动效给动态修改尺寸的图片增加一层刷光的效果&#xff0c;直接贴代码 CCEffect %{techniques:- passes:- vert: sprite-vs:vertfrag: sprite-fs:fragdepthStencilState:depthTest: falsedepthWrite: falseblendState:targets:- blend: tr…

K8S(一)

一、kubernetes 概述 1、kubernetes 基本介绍 kubernetes&#xff0c;简称 K8s&#xff0c;是用 8 代替 8 个字符“ubernete”而成的缩写。是一个开源的&#xff0c;用于管理云平台中多个主机上的容器化的应用&#xff0c;Kubernetes 的目标是让部署容器化的 应用简单并且高效…

Pytorch中的tensor维度理解

Pytorch中的tensor维度理解 文章目录 Pytorch中的tensor维度理解摘要打消心理恐惧&#xff0c;从三维学起三维tensor参考文献 摘要 面对pytorch编程中的tensor时&#xff0c;我不时会感到恐惧。对里面数据是怎么排布的&#xff0c;一直没有一个直观的理解。今天我想把这个事情…

趣学python编程 (五、常用IDE环境推荐)

Python环境指的是在计算机上安装Python解释器和相关的库&#xff0c;它是运行Python代码所必需的。那么开始Python编程前&#xff0c;准备安装好开发环境是前提。 默认的电脑上只是让人办公使用的&#xff0c;不带python编程开发环境。只有安装python环境&#xff0c;才可以编写…

Mybatis-Plus《学习笔记 22版尚硅谷 》——感谢【尚硅谷】官方文档

Mybatis-Plus《学习笔记 22版尚硅谷 》 一、MyBatis-Plus1.简介2.特性3.支持数据库4.框架结构5.官方地址 二、入门案例1.开发环境2.建库建表3.创建工程4.配置编码5.测试查询 三、增删改查1.BaseMapper<T>2.调用Mapper层实现CRUD2.1 插入2.2 删除a、根据ID删除数据b、根据…

代码随想录算法训练营第四十二天【动态规划part04】 | 01背包、416. 分割等和子集

01背包问题 题目链接&#xff1a; 题目页面 求解思路&#xff1a; 确定dp数组及其下标含义&#xff1a;dp[i][j] 表示从下标为 [0] 到 [i] 的物品里任意选取&#xff0c;放进容量为j的背包&#xff0c;此时的价值总和最大值确定递推公式&#xff1a; 不放物品i&#xff0c;…

crmchat安装搭建教程文档 bug问题调试

一、安装PHP插件&#xff1a;fileinfo、redis、swoole4。 二、删除PHP对应版本中的 proc_open禁用函数。 一、设置网站运行目录public&#xff0c; 二、设置PHP版本选择纯静态。 三、可选项如有需求则开启SSL,配置SSL证书&#xff0c;开启强制https域名。 四、添加反向代理。 …