计算机网络:网络层 - 路由选择协议

计算机网络:网络层 - 路由选择协议

    • 路由器的结构
    • 路由选择协议概述
    • 自治系统 AS
    • 内部网关协议
      • 路由信息协议 RIP
        • 距离向量算法
        • RIP报文格式
        • 收敛问题
      • 开放最短路径优先 OSPF
        • 基本工作原理
        • 自治系统分区
    • 外部网关协议
      • BGP-4


路由器的结构

如图所示,路由器被分为路由选择分组转发两个部分:

在这里插入图片描述

分组转发中:

当一个数据报从端口进入,要依次被物理层数据链路层网络层层层解析,得到数据报。随后根据转发表,决定从哪一个端口传出,再依次被网络层数据链路层网络层层层封装。

转发的核心就是这个转发表,而转发表是由路由选择路由表得出的

路由器通过路由选择协议来构建路由表,从而得出转发表,才能合理转发数据报。本博客就讲解路由选择协议,来了解路由表是如何得出的。


路由选择协议概述

路由选择协议分为静态路由选择动态路由选择

  • 静态路由选择:由人工配置的路由,不能及时适应网络的变化,一般来说只在小规模网络中使用
  • 动态路由选择:路由器自己获取路由信息,能够及时适应网络变化,一般大型网络使用

因特网作为全球最大的网络,毫无疑问要使用动态路由选择,动态路由选择有以下特点:

  • 自适应:动态路由选择能较好适应网络状态变化
  • 分布式:将一个系统或任务分解成多个部分,并将其分配到多个节点上执行,这些节点之间通过网络互相通信,最终协作完成整个任务。路由器之间就是这样完成任务的。
  • 分层次:整个因特网被划分为很多自治系统,按层次管理

接下来本博客就讲解这个动态路由选择


自治系统 AS

由于互联网的规模非常大,如果让所有的路由器知道所有的网络应怎样到达,则路由表将会非常大,处理起来花费的时间也会很多,所以互联网采用分层次的路由选择协议

该协议将互联网划分为许多个较小的自治系统 AS,如下图:

在这里插入图片描述

每个AS对其它的AS表现为一个单一的,一致的路由

比如上图中,左上角的AS只通过R1连接外部,所以该AS内部的报文,都要通过R1传输。

  • 每个AS内部,使用内部网关协议
  • 不同的AS之间,使用的是外部网关协议

在这里插入图片描述

如上图,自治系统 A内部使用了内部网关协议RIP,而自治系统 B内部使用了内部网关协议OSFP。也就是说,不同的AS使用不同的内部网关协议,也可以进行通信。在两个AS之间,使用了外部网关协议BGP-4


内部网关协议

路由信息协议 RIP

RIP是一种基于距离向量的路由选择协议

所谓距离向量,计算规则如下:

  1. 路由器到直连网络的距离为1
  2. 路由器到非直连网络的距离,为经过的路由器数目加1

如下图:

在这里插入图片描述

网络N1R1直连,那么R1N1的距离向量就是1;而R3N2并不直连,途径一个路由器R2,那么距离向量就是路由器数目 + 1 = 2

距离向量的最大值为15,当大于等于16时,表示不可达,即不能通过该路由连接到对应的网络。

RIP路由表中,主要包含以下信息:

  • 目的网络:目的网络的地址
  • 距离:到达该网络的距离向量
  • 下一跳路由:到达该网络,要把数据报传输给哪一个路由

那么路由器如何构建自己的路由表呢?

  1. 路由器仅和相邻路由器交换信息
  2. 交换的信息为本路由器知道的所有信息
  3. 路由器按照固定的时间间隔交换信息,然后根据距离向量算法更新自己的路由表
距离向量算法

当路由器接收到来自相邻路由器的RIP报文,就要通过距离向量算法更新自己的路由表,规则如下:

  1. 收到报文后,先修改报文的内容,将距离字段加一,下一跳字段变为发送该报文的路由器

如下图:

在这里插入图片描述

现在R2R1发送了一个RIP报文,内部包含到net2的信息,其中:距离字段要+1,表示R1想要到达该网络,需要再经过R2路由器;而下一跳要变为R2,表示到达该网络需要将数据报转发给R2

在这里插入图片描述

  1. 将修改后的数据报,与自己原先的路由表对比,更新路由表
  1. 如果原先路由表中没有目的网络,那么将该网络添加到自己的路由表中
  2. 如果原先路由表有相同的目的网络,那么根据以下规则更新:
    • 如果报文中的下一跳的地址与原先下一跳相同:那么更新路由表的距离,这是因为网络随时都有可能变化,有可能同一个路由器到一个网络的距离变了,此时要用最新的,确保信息正确
    • 如果报文中的下一跳的地址与原先下一跳不相同:此时比较距离,保留距离比较小的那一条

示例:

在这里插入图片描述

R1收到了R2发来的RIP报文,修改后如右图。

  • net1:原先R1中没有对应的网络,将该条目添加到路由表中
  • net2:原先R1有该网络,并且下一跳同为R2,此时就算距离变长了,也要更新报文,距离从3变为8
  • net3:原先R1有该网络,但是下一跳不相同,此时比较距离11 > 8,说明R2R3距离短,选用R2,更新路由
  • net4:原先R1有该网络,但是下一跳不相同,此时比较距离3 < 6,说明R4R2距离短,选用R4,不更新路由

最后R1路由表变为:

在这里插入图片描述

另外的:如果三分钟没有收到相邻路由器的RIP报文,则把该路由器记为不可达,把距离设置为16


RIP报文格式

RIP报文格式如下:

在这里插入图片描述

如图所示,RIP报文被封装在UDP数据报后,在被封装进了IP数据报其实RIP本质是一个应用层协议

RIP路由部分中,包含了最重要的网络(网络地址+子网掩码)下一跳距离这三个字段。一个报文中最多包含25个这样的路由信息。


收敛问题

RIP协议的优点是实现非常简单,开销很小。

但是RIP也有不少缺点:

  1. 限制了自治系统的大小RIP限制最大距离为16,这也决定了使用RIP的自治系统不能太大
  2. 收敛时间长:也叫做”坏消息传播慢“

收敛:自治系统中所有节点都得到正确的路由信息的过程

接下来我们就看看为什么存在收敛时间长的问题:

在这里插入图片描述

现在R1直连网络net1R2通过R1间接连接到net1,突然R1断开了与net1的连接,此时把距离改为16

在这里插入图片描述

R1还没来得及告诉R2自己的路由表,R2就给R1发送了RIP报文

在这里插入图片描述

此时R1误以为可以通过R2连接到net1,于是更新自己的路由表:

在这里插入图片描述

此时就已经产生了错误信息了,过一会R1又给R2发送RIP报文

在这里插入图片描述

此时R2以为R1的链路变长了,于是把自己的距离更新为4,随后R2R1发送报文:

在这里插入图片描述

此时R1再更新,以此类推,直到两边距离都为16

在这里插入图片描述

此时路由器R1R2才直到,net1是不可达的。这就是为什么RIP的收敛速度慢。


开放最短路径优先 OSPF

开放最短路径优先OSPF,是为了克服RIP的缺点而开发出来的。

  • 开放:表明OSPF不是受公司控制的,而是公开发表的协议
  • 最短路径优先:使用了最短路径算法SFP

先前的RIP是基于距离的协议,OSPF是基于链路状态的,路由器会维护一个整个网络的拓扑图,并基于此图计算最优路径

OSFP不会限制网络的规模,而且收敛速度快。

基本工作原理

OSPF需要先建立和维护邻居关系,这个过程是通过问候分组 hello实现的:

在这里插入图片描述

如图所示,每个路由器都有自己的邻居表R1的邻居就是R2R4。每隔十秒钟,路由器就会发送一次hello 分组,如果连续40秒没有收到对应的hello 分组,那么认为该路由器不可达。

路由器会通过数据交换,让每个路由器都由一个链路状态数据库 LSDB,并基于这个数据库,计算出自己到达各个路由器的最短路径,从而构建效率最高的路由表。

数据交换过程通过五种分组维护:

  1. 问候分组:用来构建和维护邻居路由
  2. 数据库描述分组:向邻居路由给出自己的链路状态数据库的摘要信息
  3. 链路状态请求分组:向邻居路由请求更加详细的信息
  4. 链路状态更新分组:将自己的详细信息发送出去,通过泛洪法,让自治系统的所有路由器都可以更新状态
  5. 链路状态确认分组:当路由器通过链路状态更新分组,更新了自己的数据库后,通过该报文确认

如图所示,一开始路由器之间交换问候分组,维护邻居关系:

在这里插入图片描述

当满足一定条件,路由器R1发送自己的数据库描述分组

在这里插入图片描述

数据库描述分组中,记录了R1的数据库的概括信息。如果R2检查数据库描述分组后发现,有一些信息自己没有,或者不太一样,就向R1发出链路状态请求分组,以获取更加详细的信息

在这里插入图片描述

R1收到链路状态请求分组后,通过泛洪法向所有路由器发送链路状态更新分组,==该分组详细描述了R1自己的数据库,其他路由器就可以根据这个分组更新自己的数据库,以获取最新的信息。==收到链路状态更新分组的路由器,还要往回发送链路状态确认分组,对之前的分组确认。

自治系统分区

?为了使OSFP可以作用与规模很大的网络,OSFP会把一个自治系统划分为若干个更小的范围,叫做区域

在这里插入图片描述

每个自治系统都包含一个主干区域,其它区域都通过主干区域连接自治系统外部。

每个区域都有自己的标识符,该编号为32位,以点分十进制表示,主干区域的标识符固定为0.0.0.0。每个区域都要通过一个区域边界路由器来连接主干区域,比如上图中R3R4R7都是区域边界路由器。

利用泛洪法交换链路状态信息时,是在每个区域之间,而非整个自治系统

这样就可以避免路由器太多,导致太多的链路状态信息被发送到网络中,导致网络拥挤了。


外部网关协议

BGP-4

由于不同的自治系统使用不同的内部路由选择协议并使用不同的度量,所以必须在不同的自治系统之间使用另外的路由选择协议。目前使用最多的是边界网关协议 BGP, 其最新版本是 BGP-4)。

BGP 只能是力求寻找一条能够到达目的网络且比较好的路由,而并非要寻找一条最佳路由

本博客不详细讲解BGP-4协议,只是简单的讲解其作用。


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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【three.js】设置canvas画布背景透明

通过Three.js渲染一个模型的时候&#xff0c;不希望canvas画布有背景颜色&#xff0c;也就是canvas画布完全透明&#xff0c;可以透过canvas画布看到画布后面叠加的HTML元素图文&#xff0c;呈现出来一种三维模型悬浮在网页上面的效果。 比如我们现在的模型背景是黑色的&#…

数据库概述1

数据&#xff1a;描述事物的符号记录称为数据&#xff1b; 包括数字、图片、音频等&#xff1b; 数据库&#xff1a;长期储存在计算机内有组织、可共享的大量数据的集合&#xff1b;数据库中的数据按照一定的数据模型组织、描述和存储&#xff0c;具有较小的数据冗余、较高的数…

AI玩具来了,它怎么样?

90后的我们&#xff0c;是AI时代的见证者。20后的小孩&#xff0c;才是AI时代的原著民。当ChatGPT们改变着大人的工作方式&#xff0c;我觉得&#xff0c;是时候让孩子们的玩具也更聪明些了吧。于是&#xff0c;在六一前夕&#xff0c;我用市面上的AI语音对话套件给娃DIY了一套…

简单谈谈云服务器私网IP的存在意义及优势

云服务器是基于虚拟化技术的计算资源&#xff0c;可以在云平台上灵活创建和管理。为了满足不同用户的需求&#xff0c;云服务提供商在云服务器上分配了两种类型的IP地址&#xff1a;公网IP和私网IP。其中&#xff0c;私网IP是指在局域网内使用的内部IP地址&#xff0c;无法通过…

“Dream Machine“震撼登场!免费推出的AI电影级巨制在网络上引爆热潮

"巅峰初现&#xff01;视频AI新星‘梦幻制造者’华美登场&#xff01; 在视频生成技术的赛道上&#xff0c;Luma AI昨日骄傲地揭开了其旗舰创新——梦幻制造者&#xff08;Dream Machine&#xff09;的神秘面纱&#xff0c;凭借无与伦比的文本到视频及图像到视频转换技术…

ARIMA模型与ARIMA-GARCH模型预测时间序列

上世纪 70 年代初&#xff0c;Ljung 等人提出 ARIMA 模型&#xff0c;又称求和自回归移动平均模型。其思想 是针对于非平稳时间序列进行数学建模&#xff0c;将其通过差分运算后 进行相关数据刻画 &#xff0c;变为一个平稳的新序列&#xff0c;进而进行相关数据的刻画。 自 1…

[SWPUCTF 2022 新生赛]善哉善哉(隐写,新佛曰,MD5)

题目&#xff1a; 我们看到&#xff1a;题目就是一张图片便联想到隐写术。、 首先查看图片的详细信息我们看到 又看到有关MD5加密。 我们利用小鲨鱼(Stegsolve)破解得到&#xff1a; 小鲨鱼下载可参考&#xff1a;CSDN小鲨鱼下载安装配置 最后面有一段摩斯密码&#xff0c;破…

纯C实现的ymodem库,无额外依赖

本文目录 1、引言2、理论2.1 YMODEM协议的主要特点2.2 YMODEM的工作原理 3、代码3.1 main.cpp3.2 ymodem.c 3.3 ymodem.h 4、验证4.1 ymodem发送4.2 ymodem接收 5、移植说明 文章对应视频教程&#xff1a; 暂无&#xff0c;可以关注我的B站账号等待更新。 点击图片或链接访问我…

会评答辩ppt制作_杰青_长江学者_优青_海外优青_青拔_青年长江学者上会ppt模板

国家杰出青年科学基金 (英文:The National Science Fund for Distinguished Young Scholars&#xff0c;简称:杰青基金)&#xff0c;是中国为促进青年科学和技术人才的成长&#xff0c;鼓励海外学者回国工作&#xff0c;加速培养造就一批进入世界科技前沿的优秀学术带头人而特…

【CTF Web】CTFShow 探针泄露 Writeup(PHP+探针泄露+信息收集)

探针泄露 10 对于测试用的探针&#xff0c;使用完毕后要及时删除&#xff0c;可能会造成信息泄露 解法 查看网页源代码。 view-source:https://11170dfe-84c7-4fde-b1ca-5d1ec3dd7570.challenge.ctf.show/没有找到有用的信息。 用 dirsearch 扫描。 dirsearch -u https://1…

【MySQL】(基础篇十三) —— 联结

联结 本文介绍什么是联结&#xff0c;为什么要使用联结&#xff0c;如何编写使用联结的SELECT语句。介绍如何对被联结的表使用表别名和聚集函数。 SQL最强大的功能之一就是能在数据检索查询的执行中联结&#xff08;join&#xff09;表。联结是利用SQL的SELECT能执行的最重要…

Python学习笔记10:入门知识(十)

函数 什么是函数 简单来说就是具备某些特定功能的带有名称的代码块。比如之前我们讲过的列表的增删改查函数&#xff0c;排序函数等等。 函数的作用 代码复用。函数作为具备某些特定功能的代码块&#xff0c;当你的程序需要多次使用同一段业务逻辑的时候&#xff0c;使用函…

Vite使用unplugin-auto-import实现vue3中的自动导入

unplugin-auto-import 是基于 unplugin 写的&#xff0c;支持 Vite、Webpack、Rollup、esbuild 多个打包工具。我们可以使用unplugin-auto-import实现依赖的自动导入&#xff0c;不用再频繁导入依赖包&#xff0c;从而提交我们的开发效率。如下&#xff0c;以vue3vite中使用改插…

Linux基础I/O之文件描述符fd 重定向(上)

目录 一、预备知识 二、C语言中的文件接口 三、系统调用中的文件接口 一、预备知识 首先我们要明确的一个观点是 --- 文件 内容 属性。而且我们之前也还将过一个概念&#xff0c;那就是Linux下一切皆文件。 内容是数据&#xff0c;属性也是数据 --- 那么也就是说我…

戴尔第十一代十二代十三代处理器重装系统找不到驱动程序

一、戴尔第十一代十二代十三代处理器重装系统找不到驱动程序 VMD&#xff08;Volume Management Device&#xff09;是针对下一代存储推出的部署方案。这套方案支持从 PCIe 总线对 NVMe 固态盘进行热升级和更换&#xff0c;而无需关闭系统&#xff0c;同时标准化 LED 管理可帮助…

梦想编织者Luna:COZE从童话绘本到乐章的奇妙转化

前言 Coze是什么&#xff1f; Coze扣子是字节跳动发布的一款AI聊天机器人构建平台&#xff0c;能够快速创建、调试和优化AI聊天机器人的应用程序。只要你有想法&#xff0c;无需有编程经验&#xff0c;都可以用扣子快速、低门槛搭建专属于你的 Chatbot&#xff0c;并一键发布…

JavaFX 节点

JavaFX Node类javafx.scene.Node是添加到JavaFX 场景图的所有组件 的基类&#xff08;超类&#xff09; 。JavaFX Node 类是抽象的&#xff0c;因此你只需将 Node 类的子类添加到场景图中。场景图中的所有 JavaFX Node 实例共享一组由 JavaFX Node 类定义的公共属性。本 JavaFX…

快速搭建Jenkins自动化集成cicd工具

一、简介 jenkins是一款优秀的自动化持续集成运维工具&#xff0c;可以极大的简化运维部署的步骤。 传统的项目部署需要手动更换最新的项目代码&#xff0c;然后打包并运行到服务器上。 使用Jenkins可以自动化实现&#xff0c;当代码编写完成并提交到git后&#xff0c;Jenki…

【单片机毕业设计选题24009】-基于单片机的智能窗帘控制系统设计

系统功能: 采用STM32最小系统板控制&#xff0c;采集传感器数据显示在OLED上并可通过按键或红外遥控器控制两路继电器和步进电机。 1. 使用DHT11模块采集环境温湿度 2. 使用光敏传感器采集光照强度 3. 继电器模拟加温&#xff08;采集温度小于设定温度时&#xff09; 4. 继…