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

news2024/11/22 19:53:16

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

    • 路由器的结构
    • 路由选择协议概述
    • 自治系统 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协议,只是简单的讲解其作用。


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

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

相关文章

Java实现异步开发的方式

1&#xff09;、继承 Thread 2&#xff09;、实现 Runnable 接口 3&#xff09;、实现 Callable 接口 FutureTask &#xff08;可以拿到返回结果&#xff0c;可以处理异常&#xff09; 4&#xff09;、使用线程池 区别&#xff1a;1、2&#xff09;不能得到返回值 …

AI 定位!GeoSpyAI上传一张图片分析具体位置 不可思议! ! !

&#x1f3e1;作者主页&#xff1a;点击&#xff01; &#x1f916;常见AI大模型部署&#xff1a;点击&#xff01; &#x1f916;Ollama部署LLM专栏&#xff1a;点击&#xff01; ⏰️创作时间&#xff1a;2024年6月16日12点23分 &#x1f004;️文章质量&#xff1a;94分…

关于小程序测试账号如何移除

关于小程序测试账号如何移除 有很多小伙伴一开始做开发,一开始用来做测试号,登录微信公众号的时候会提示配置项, 那么如何移除掉呢 https://mp.weixin.qq.com/ 关注「公众平台安全助手」公众号 -> 绑定查询 -> 微信号绑定账号 -> 小程序 -> 点击小程序 -> 解除…

统计完全子字符串

很不错的计数问题&#xff0c;用到了分组循环技巧和滑动窗口 代码的实现方式也非常值得多看 class Solution { public:int f(string s,int k){int res 0;for(int m1;m<26&&k*m<s.size();m){int cnt[27]{};auto check[&](){for(int i0;i<26;i){if(cnt[i]…

打造私密的通信工具,极空间搭建免费开源的电子邮件管理程序『Cypht』

打造私密的通信工具&#xff0c;极空间搭建免费开源的电子邮件管理程序『Cypht』 哈喽小伙伴门好&#xff0c;我是Stark-C~ 说起电子邮件大家都不陌生&#xff0c;哪怕是在当前微信或者QQ已经非常普遍的今天&#xff0c;电子邮件在我们很多人的工作中都充当了重要的通信工具。…

【编程语言】Python平台化为何比Java差?

人不走空 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌赋&#xff1a;斯是陋室&#xff0c;惟吾德馨 目录 &#x1f308;个人主页&#xff1a;人不走空 &#x1f496;系列专栏&#xff1a;算法专题 ⏰诗词歌…

第十七章 策略模式

目录 1 策略模式概述 2 策略模式原理 3 策略模式实现 4 策略模式应用实例 5 策略模式总结 1 策略模式概述 策略模式(strategy pattern)的原始定义是&#xff1a;定义一系列算法&#xff0c;将每一个算法封装起来&#xff0c;并使它们可以相互替换。策略模式让算法可以独立…

2.PyQT6程序入门实例

1.第一个程序HelloWorld实现 # conding:utf8from PyQt6.QtWidgets import QApplication, QWidget, QLabel import sysapp QApplication(sys.argv) # 创建一个应用 print("sys.argv&#xff0c;获取项目路径", sys.argv) # 获取参数 print("app.arguments()&qu…

05-5.3.1_1 二叉树的先中后序遍历

&#x1f44b; Hi, I’m Beast Cheng&#x1f440; I’m interested in photography, hiking, landscape…&#x1f331; I’m currently learning python, javascript, kotlin…&#x1f4eb; How to reach me --> 458290771qq.com 喜欢《数据结构》部分笔记的小伙伴可以订…

vmmare虚拟机没有被分配ip地址问题;NAT模式下一直变化问题

打开任务管理器–>服务–>找到与VM和server相关的服务 发现NAT和DHCP服务被关闭了 尝试启动&#xff0c;报错 尝试一 虚拟网络编辑器点击还原默认设置 尝试二 可以了 ip变化 更改租用时长

【C++】C++入门的杂碎知识点

思维导图大纲&#xff1a; namespac命名空间 什么是namespace命名空间namespace命名空间有什么用 什么是命名空间 namespace命名空间是一种域&#xff0c;它可以将内部的成员隔绝起来。举个例子&#xff0c;我们都知道有全局变量和局部变量&#xff0c;全局变量存在于全局域…

定点数的加减法以及浮点数的表示

加减法运算是计算机中最基本的计算&#xff0c;由于减法可以看成是负值是加法&#xff0c;因此计算机中使用补码表示有符号数之后&#xff0c;可以将减法运算和加法运算合并在一起讨论。 1.补码的加减运算 补码加减运算的规则简单&#xff0c;公式如下(设机器字长为n)&#x…

Spark日志有哪些?

spark.log&#xff1a;记录作业运行日志&#xff0c;包括Spark框架内部日志和用户通过日志接口输出的日志。 executor 启动结束日志&#xff1a; job&#xff0c;stage&#xff0c;task提交结束日志&#xff1a; pmap.log&#xff1a;周期性地截取Driver或Executor的pmap和…

基于SSM+Jsp的列车票务信息管理系统

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

多设备互通、开箱即用的私有化笔记软件,极空间部署最强备忘录项目『Memos』

多设备互通、开箱即用的私有化笔记软件&#xff0c;极空间部署最强备忘录项目『Memos』 哈喽小伙伴们好&#xff0c;我是Stark-C~ 手机上的备忘录我想绝大多数的小伙伴都会用到&#xff0c;日常用来记录一下生活中的消费开支清单&#xff0c;或者工作中记录一些重要的任务或项…

欧洲杯“球迷狂欢趴”开启,容声带来“健康养鲜”新理念

6月15日&#xff0c;容声冰箱在深圳举行了异彩纷呈的“欧洲杯养鲜补给站 球迷狂欢趴”系列活动。 容声国内营销总经理韩栋现场发布“以品质领先 为健康养鲜”的主题内容&#xff0c;强调容声将以健康养鲜技术产品的升级迭代&#xff0c;满足用户品质生活需求。 作为有着41年发…

【java分布式计算】分布式计算程序设计基础

期末复习 自留 重点只抓考点 目录 基本技术 SOCKETS网络套接字 多线程 数据序列化 Java I/O流 集合容器 范型 内部类、匿名类、Lambda&#xff08;代码&#xff09; 项目构建管理工具 高级技术 注解&#xff08;代码&#xff09; 反射&#xff08;代码&#xff09;…

为什么选择 ABBYY FineReader PDF ?

帮助用户们对PDF文件进行快速的编辑处理&#xff0c;同时也可以快速识别PDF文件里的文字内容&#xff0c;并且可以让用户们进行文本编辑&#xff0c;所以可以有效提升办公效率。 ABBYY-ABBYY Finereader 15 Win-安装包&#xff1a;https://souurl.cn/OY2L3m 高级转换功能 ABBY…

Python酷库之旅-比翼双飞情侣库(10)

目录 一、xlrd库的由来 二、xlrd库优缺点 1、优点 1-1、支持多种Excel文件格式 1-2、高效性 1-3、开源性 1-4、简单易用 1-5、良好的兼容性 2、缺点 2-1、对.xlsx格式支持有限 2-2、功能相对单一 2-3、更新和维护频率低 2-4、依赖外部资源 三、xlrd库的版本说明 …

常见中间件漏洞

IIS IIS是Internet Information Services的缩写&#xff0c;意为互联网信息服务&#xff0c;是由微软公司提供的基于运行Microsoft Windows的互联网基本服务。 IIS目前只适用于 Windows系统&#xff0c;不适用于其他操作系统。 解析漏洞 IIS6.x 该版本 默认会将 *.asp;.jp…