哈工大计算机网课程络网络层协议详解之:Internet网络路由协议详解(RIP、OSPF)

news2025/7/9 1:47:39

文章目录

  • RIP协议
    • RIP链路失效、恢复问题
    • RIP路由表的处理
  • OSPF协议
    • 分层的OSPF
    • 主干路由器

之前我们也介绍了,作为我们现在广泛使用的Internet网络来说,采用的路由策略是层次化路由策略。 即将不同区域、组织的网络划分成一个个自治系统,在自治系统内部采用自定义的路由协议(算法)计算路由信息,而自治系统间的路由协议(算法)则依靠每个自治系统的网关路由器来实现。

在Internet网络中,自治系统(AS)的内部路由协议也被称为内部网路协议(IGP interior gateway protocols)。

最常见的AS内部路由协议:

  • 路由信息协议:RIP(Router Information protocol)
  • 开放最短路优先:OSPF(Open Shortest Path First)
  • 内部网关路由协议:IGRP(Interior Gateway Routing Protocol)(Cisco思科私有协议)

在本节中,我们首先介绍AS内部路由协议:RIP协议和OSPF协议。

RIP协议

RIP协议早于1982年随BSD-UNIX操作系统发布。

基于距离向量路由算法实现,来计算在自治系统(AS)内,到达某一个节点的最短路由。

RIP协议在使用距离向量路由算法时,有一些特殊的设置:

  • 距离度量:跳步数(max = 15 hops),每条链路一个跳步。
  • 每隔30s,邻居之间交换一次距离向量Dv。在距离向量路由算法中,每次节点间交换彼此距离向量时,称为一次通告。
  • 每次通告时,最多25个目的子网(IP地址形式)

具体的可以看以下这个例子,图中大写的A、B、C、D就是路由器,小写的u、v、w等就表示一个个子网(实际网络中,这些子网的表示就应该是CIRD形式,网路地址/前缀长度)。

在这里插入图片描述

在上述示例网络中,路由器A应该具有上述信息:到达子网u,需要一个跳步;到达子网v,需要两个跳步(先从A->B, B->v,经过两个链路);以此类推。

理论上来说,每次上述AS内部交换的距离向量信息,就是上述目的子网,跳步数组成的距离向量。

实际中的网路中路由器存储的转发信息可能如下所示:

在这里插入图片描述

上面的路由表中显示了路由器D的转发表,比如去往目的子网w经过的下一跳路由器是A,且需要的跳数为2。

假设,此时AS内进行了距离向量的交换(通告),此时路由器A的路由表为:

在这里插入图片描述

由于原先路由器D的转发表中,从路由器D到目的子网z需要经过的跳数是7,吸一跳路由器是B。而现在路由器A中的转发表到达目的子网z的跳数是4。那么在进行一次距离向量的交换后,路由器D会依据交换的距离向量信息重新计算到其他子网的跳数。此时从路由器D到目的子网z的最短跳数就是4+1=5,应该转发到路由器A,而不是原先的路由器B了。

更新后的路由器D的转发表如下所示:

在这里插入图片描述

事实上,上述抽象过程就是距离向量路由算法更新节点距离向量的计算过程,只不过在RIP协议中路由表多了下一跳信息。

RIP链路失效、恢复问题

在RIP协议中,判断链路失效的方法是:

当一个路由器如果在180s没有从另外的邻居收到新的通告,就可以推断跟对应的邻居/链路失效。

上面我们介绍过,RIP协议每30s邻居间发送一次通告,因此也就是如果有6个通告路由器都没收到,则推断与对应的邻居/链路失效。

如果路由器推断某一邻居或到邻居的链路不可用时,就需要重新计算路由,因为原先经过这个邻居的路径信息都不可用了。

重新计算可能会导致距离向量的改变,如果发生了改变,该路由器也需要将该距离向量通告给其他的邻居节点。邻居再依次向外发送通告(如果转发表改变),以此类推。

这里有个问题,就是链路失效信息能否快速传播到全网?

实际上,这个是不一定的,需要考虑网络特性以及协议机制,因为有可能产生无穷计数问题。

但是对RIP协议来说,这种问题应该来说被很大程度消减了,因为正如我们最初介绍的,RIP协议定义了最大有效跳步数15(无穷大距离=16 hops)。换句话说,即便出现无穷跳数问题,也可以在有限的次数内,得到正确的收敛。

同时,RIP协议也使用了毒性逆转技术用于预防乒乓(ping-pong)环路。

RIP路由表的处理

RIP路由表是利用一个称作route-d(daemon)的守护进程进行管理,是一个标准的应用层进程。作为一个应用进程,它的数据传输一定会用到传输层协议,具体来说,RIP协议就是利用UDP协议将通告报文封装成UDP数据报来周期性传输。

在这里插入图片描述

既然RIP协议是由应用进程实现的协议,为什么还把它叫做网络层的协议呢?需要注意的是,在网络中对一个层次的划分,无论是OSI参考模型、TCP/IP参考模型、还是五层参考模型也好,通常不是根据协议的具体实现形式来划分的,而是根据功能进行划分的。 换句话说,实现的功能是为了解决哪一层的功能,就属于对应层次的协议,而具体的实现形式可以是高层的应用进程实现,后者是底层的硬件实现都可以。

OSPF协议

OSPF协议我们之前提到过,名称叫做最短路径优先(Open Shortest Path First)。

OSPF协议的特点包括:

  • “开放”:公众可用,即不是某一个公司或企业私有的协议。

  • 采用链路状态路由算法(构造链路状态分组,借助Dijkstra算法求节点间最短路径)。

    • 链路(LS)状态分组扩散(通告)
    • 每个路由器构造完整的网络(AS)拓扑图
    • 利用Dijkstra算法计算路由
  • OSPF通告中每个入口对应一个邻居。即有多少个邻居与其相连,就会有多少个入口,其中包含了邻居的ID、链路费用等信息。

  • OSPF通告在整个AS范围内泛洪(通告发给邻居,邻居再发给邻居,以此类推)

    • OSPF报文直接封装在IP数据报中进行传输的(即没有借助于TCP/UDP传输层协议)。
  • 与OSPF协议极其相似的一个路由协议:IS-IS路由协议

OSPF协议有时候会被认为是对RIP协议后续的一个改进协议,与RIP协议相比,OSPF的优点包括:

  • 安全(Security):所有OSPF报文可以被认证(预防恶意入侵)。

    • 比如一个恶意入侵在网络中构造一些虚假的链路状态分组,并在网络中进行扩展,如果不加以鉴别,被路由器维护在链路状态数据库中,就会使得路由器得到一个假的网络拓扑,进而得到错误的路由数据。
  • 允许使用多条相同费用的路由(RIP只能选一条)

    如果到达某个目的网络具有多条相同费用的路径的话,OSPF协议不是在这些路径中任取其中一个,而是可以同时使用多条路径。这样做的优点就在于,有大量数据要传输到网络中时,可以把这些数据分散到多条路径上去,这样可以实现负载/流量的均衡。

  • 对于每条链路,可以针对不同的TOS设置多个不同的费用度量

    e.g.,卫星链路可以针对“尽力”(best effort)TOS设置“低”费用;针对实时TOS设置“高”费用。

    实现不同类型数据分组的分流。

  • 集成单播路由与多播路由:

    多播路由:把一个数据报路由到某一个多播组的所有成员,保证每个多播组成员都能收到这个数据报的副本。

    多播OSPF协议(MOSPF)与OSPF利用相同网络拓扑数据

  • 最明显的优点:OSPF支持对大规模AS分层(hierarchical)

分层的OSPF

分层的OSPF示例如下所示:

在这里插入图片描述

OSPF可以在上图的AS中,再对层次进一步划分。划分成两级分层:

  • 若干局部区(Area)
  • 主干区(Backbone)

这样的划分思想与我们之前介绍过的层次路由的思想是非常一致的。

在OSPF协议中使用了这样进一步的层次划分后,就可以只在每个划分的AS区域内交换链路状态分组就可以了,从而更进一步的缩小了交换链路状态分组的范围。 使得在一个大的自治系统内部,链路状态分组的传播和扩散范围更小了,极大地提高了计算效率,节省了网络带宽。

由于只在AS区域内的路由器间交换链路状态分组,因此每个区域内的路由器只掌握所在区域的详细网络拓扑,也只在这个区域内按照链路状态算法计算路由信息。

同样的,在划分区域后,区域间的路由信息交换跟我们之前将分层路由原理是类似的,都需要借助于网关路由器,如下所示

在这里插入图片描述

区边界路由器从上图中可以看出,它既是某个区域的路由器,同时也是主干区的路由器。作为某个区域的路由器,它可以跟区域内的路由器交换链路状态分组,构造区域的网络拓扑,根据链路状态算法计算路由。

同时,它也是个主干去的路由器,因此也可以参与主干区的链路状态分组交换,得到主干区的网络结构拓扑和路由交换信息。

更重要的,作为区边界路由器,它需要负责汇总它所在区域网络内的路由转发信息,并通告给其他区边界路由器。从而让其他区域的区边界路由器知道如何到达该区域的路由信息。

主干路由器

在主干区域内的路由器称为主干路由器。在主干区域内既存在区边界路由器,也存在一般内部路由器。我们将一般内部路由器成为主干路由器。

在这里插入图片描述

主干路由器跟其他局部区域的内部路由器一样,只在主干区运行OSPF路由算法,扩散链路状态分组,按照Dijkstra计算路由等操作。

除此之外,也包含一个特殊的AS边界路由器(自治系统边界路由器)。这个AS边界路由器需要负责连接其他自治系统。

在这里插入图片描述

由于OSPF是自治系统内的协议,当在自治系统内部继续分层时,仍然是局限在一个自治系统内。而作为一个自治系统,终究要去其他自治系统相连,这里的区边界路由器就相当于网关路由器,连接其他自治系统。

事实上,在自治系统内可以有多个AS边界路由器,负责不同的与其他AS自治系统的路由交换和转发。

更详细的信息可以参考RFC 2328

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

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

相关文章

Android Studio实现内容丰富的安卓志愿者平台

如需源码可以添加q-------3290510686,也有演示视频演示具体功能,源码不免费,尊重创作,尊重劳动。 项目编号122 1.开发环境 android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看公告 3.…

LUT查找表

目录 1、查找表原理 2、LUT查找表函数 1、查找表原理 2、LUT查找表函数 #include <iostream> #include <fstream> #include <opencv2/opencv.hpp>using namespace std; using namespace cv;int main() {//LUT查找表第一层uchar lutFirst[256];for (int i 0…

MySQL - 第14节 - MySQL使用C语言连接

1.引入库 要使用C语言连接MySQL&#xff0c;需要使用MySQL官网提供的库。 1.1.下载库文件 下载库文件&#xff1a; 首先&#xff0c;进入MySQL官网&#xff0c;选择DEVELOPER ZONE&#xff08;开发人员专区&#xff09;&#xff0c;然后点击MySQL Downloads。如下&#xff1a; …

MySQL学习基础篇(四)---运算符

MySQL学习基础篇(四)—运算符 1 算数运算符 1.1加法与减法运算符 结论&#xff1a; 一个整数类型的值对整数进行加法和减法操作&#xff0c;结果还是一个整数&#xff1b;一个整数类型的值对浮点数进行加法和减法操作&#xff0c;结果是一个浮点数&#xff1b;加法和减法的优先…

Hive详解

一 Hive基本概念 1 Hive简介 学习目标 - 了解什么是Hive - 了解为什么使用Hive1.1 什么是 Hive Hive 由 Facebook 实现并开源&#xff0c;是基于 Hadoop 的一个数据仓库工具&#xff0c;可以将结构化的数据映射为一张数据库表 &#xff0c;并提供 HQL(Hive SQL)查询功能&…

华为云CodeArts Check:带你掌握代码检查技巧,优化代码质量!

HDC期间可参与华为开发者大会Check新人抽奖活动&#xff0c;活动链接在文末。福利多多&#xff0c;快来参与&#xff01; 本文作为华为云CodeArts Check代码检查服务的开箱操作指导文档&#xff0c;会分为如下五个维度进行介绍&#xff1a;产品介绍、前期准备、开通CodeArts软件…

ModaHub魔搭社区:向量数据库Milvus Lite 的优势和安装教程

想要体验开源向量数据库MIlvus&#xff0c;缺少专业的工程师团队作为支撑&#xff1f;Milvus 安装环境受限&#xff1f; 别担心&#xff0c;轻量版 Milvus 来啦&#xff01; 有用户反馈刚开始接触 Milvus 或者想要在 Notebook 中进行快速实验时&#xff0c;安装或部署 Milvus …

泛娱乐出海赛道火热,茄子科技如何赋能企业出海破局?

全球疫情的反复影响了用户的生活、工作习惯&#xff0c;更多泛娱乐的用户习惯向“线上化”迁移。当前&#xff0c;随着技术的迭代和行业走向成熟&#xff0c;泛娱乐出海在产品、技术和市场方面也出现了全新的发展趋势。然而&#xff0c;泛娱乐出海者们想要在海外市场去开疆拓域…

【项目部署】NGINX原生部署前端

如有拼错的单词感谢提醒~ 一.准备工作 为了方便文件的管理&#xff0c;我们先在服务器上创建一个专门存放项目的目录。 # 1.查看当前所在目录 pwd # 1.1 可以切换到根目录管理 cd /root # 2.创建一个专门存放项目的文件夹 mkdir services # 3.可以查看我们创建的文件夹 ls # …

【按位建线段树】CF242 E

Problem - 242E - Codeforces 题意&#xff1a; 思路&#xff1a; 因为涉及到位运算操作&#xff0c;所以要在01矩阵内进行维护 每行都代表一个数&#xff0c;因此区间操作就是在两行之间的01矩阵操作 我们可以造20棵线段树&#xff0c;其中每一列01序列都对应着一棵线段树…

【Squid二】使用squid和nginx服务搭建反向缓存代理服务

使用squid和nginx服务搭建反向缓存代理服务 1.反向代理1.1 反向代理概述1.2 反向代理工作机制 2.搭建squid反向代理服务2.1 Nginx服务器端配置2.2 squid反向代理服务器配置 3.搭建nginx反向缓存代理服务3.1 nginx反向缓存代理服务配置3.2 nginx服务端配置3.3 客户端验证访问 参…

(万字文)快速入门uniapp——从环境搭建到项目实践

&#x1f642;博主&#xff1a;小猫娃来啦 &#x1f642;文章核心&#xff1a;快速入门uniapp——从环境搭建到项目实践 文章目录 初步介绍UniApp开发环境搭建下载和安装UniApp开发工具&#xff1a;创建新项目&#xff08;HBuilderX&#xff09;开发工具界面介绍 UniApp基础知识…

数据战略的理解与实施指南

虽然大多数公司都认识到他们的数据是一项战略资产&#xff0c;但许多公司并没有充分利用它来取得进展。在本文中&#xff0c;我们讨论了成功数据战略的关键要素&#xff0c;这些要素将帮助您基于数据分析而不是直觉做出明智的决策。 尽管公司在数据和分析计划方面的投资比以往任…

2021 RoboCom 世界机器人开发者大赛-高职组(初赛)

编程题得分&#xff1a;100 总分&#xff1a;100 目录 7-1 机器人打招呼 (5分) 输入格式&#xff1a; 输出格式&#xff1a; 输入样例&#xff1a; 输出样例&#xff1a; 7-2 人脸识别 (10分) 输入格式&#xff1a; 输出格式&#xff1a; 输入样例 1&#xff1a; 输…

SAP VC 可配置物料超级BOM简介

`1、可配置物料(Configurable Material)是SAP系统中PP模块一个比较高级的功能。在有些业务中比如:汽车、笔记本、电脑、电梯等产品中,其中组成产品的型号个框架是确认的 ,但是框架内部的BOM是可变的,在客户下销售订单的时候,选取对应的组件 ,让后通过MRP的计算优生产线…

【机器学习】支持向量机(下)

支持向量机&#xff08;下&#xff09; 目录 八、支持向量机的求解实例九、核函数1、核函数的引入2、核函数的示例 十、软间隔1、何为软间隔2、引入软间隔后的目标方程 十一、正则化十二、关于支持向量机的分类十三、数据标准化的影响【机器学习】支持向量机&#xff08;上&…

网络协议与攻击模拟-15-DNS协议

DNS 协议 1、了解域名结构 2、 DNS 查询过程 3、在 Windows server 上部署 DNS 4、分析流量 实施 DNS 欺骗 再分析 一、 DNS 1、概念 ● DNS ( domain name system &#xff09;域名系统&#xff0c;作为将域名的 IP 地址的相互映射关系存放在一个分布式的数据库&#xff0…

【开源项目】智慧仓储~某东数字孪生智慧仓储——开源工程及源码

某东大型仓储工程及源码免费赠送&#xff0c;领先行业智能仓储解决方案&#xff01; 项目介绍 数字孪生技术为仓储管理带来革命性的突破。通过数字孪生的应用&#xff0c;实现智能化的仓储管理&#xff0c;提供准确、高效的仓库操作与分析。 利用数字孪生技术&#xff0c;将数据…

做银行测试,高端大气上档次?

前几天正好去某银行进行测试基础的培训&#xff0c;在和相关负责人聊了些内容后&#xff0c;想了想写一下自己的看法吧。 作为传统行业的银行&#xff0c;可以说对质量的重视程度应该在航天、轨道、军工、机械类似的关键性行业之间&#xff0c;和钱打交道的东西自然 很赚钱不…

AI Chat 设计模式:4. 建造者模式

本文是该系列的第四篇&#xff0c;采用问答式的方式展开&#xff0c;问题由我提出&#xff0c;答案由 Chat AI 作出&#xff0c;灰色背景的文字则主要是我的旁白与思考。 问题列表 Q.1 说说建造者模式A.1Q.2 “将一个复杂对象的构建过程和其表示分离”&#xff0c;这里不是很清…