计算机网络——网络层—路由算法和路由协议

news2025/1/8 1:51:19

一、因特网的路由选择协议

• 不存在一种绝对的最佳路由算法。
• 所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。
• 实际的路由选择算法,应尽可能接近于理想的算法。
• 路由选择是个非常复杂的问题
    • 它是网络中的所有结点共同协调工作的结果。
    • 路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。

二、路由算法

 • 路由选择是路由器用来将数据分组转发到目的地网络的过程,这个过程是通过路由表实现的,而路由表是通过各种路由算法得到的。
• 路由协议根据路由算法生成路由表并以此选择最佳路径进行分组转发。
• 路由算法是网络层软件的一部分,完成路由功能。

三、静态路由与动态路由

 • 根据路由算法能否随网络的通信量或网络拓扑自适应地进行调整来划分路由策略可分为两类,即
静态路由选择策略(也称为非自适应路由选择)和动态路由选择策略(也称为自适应路由选择)。
• 静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状
态的变化。
• 动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来
较为复杂,开销也比较大。

•距离-向量路由算法
距离-向量路由算法是-种分布式路由算法,也是最早实现的--个分布式动态路由算法。该算法中,每
个路由器维护一张矢量-距离表(通常称为V-D表),只有与它直接相连的路由器的信息,而没有网络中
每个路由器的信息。
距离-向量路由算法的基本思想是,当一个路由器启动时,先对其V-D路由表进行初始化,然后各路由器
周期性地向外广播其V_D路由表的内容,与之相连的路由器收到后,检查各相邻路由器的V-D报文,并作相应修改(若有一条新的路由,则在路由表中添加该路由;若有一个距离或路径代价更小的路由,则更新)。当网络中某一故障发生时,网络中的所有结点都必须采用相同方法重新计算路由表。

•链路状态路由算法
链路状态路由算法采用“最短路径优先(SPF)"算法来计算网络中每一个源结点与其他所有结点之间
的最短路径,是一种总体式路由算法。
它的思想是要求网络中所有参与链路状态路由协议的路由器都掌握网络的全部拓扑结构信息,并记录在路由数据库中。注意,链路状态算法中路由数据库实质上是一个网络结构的拓扑图。根据SPF的要求,路由器中路由表依赖于--张能表示整个网络拓扑结构的无向图G(V,E)。其中,结点V表示路由器,E表示连接路由器的链路。一般把G称链路状态(L-S)图。

•链路状态路由算法有三个特征:
(1)向本自治系统中的所有路由器发送信息。这里使用的方法是洪泛法(Flooding)
(2)发送的信息就是本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
(3)只有当链路状态发生改变时,路由器才用洪泛法向所有路由器发送此信息。
   •优点:
         每个结点独立计算路径,易于查找故障;
         可扩展性好,适用于网络规模较大、拓扑结构变化频繁的网络环境。
   •缺点:
         对路由器CPU的处理能力要求较高。

四、层次路由

     分层路由采取分而治之的方法,把互联网划分为许多较小的自治系统。每个自治系统自己决定本
自治系统内部运行哪一个内部路由选择协议。
互联网把路由选择协议划分为两大类,即:
(1)内部网关协议IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议,
使用最多的这类协议是RIP和OSPF协议。
(2)外部网关协议EGP (External Gateway Protocol)即在使用不同内部网关协议的自治系统之间通
信时使用的路由选择协议。目前使用最多的外部网关协议是BGP--4(BGP的版本4)。

五、自治系统 AS

• 自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。
• 现在对自治系统 AS 的定义是强调下面的事实:尽管一个 AS 使用了多种内部路由选择协议和度量,但重要的是一个 AS 对其他 AS 表现出的是一个单一的和一致的路由选择策略。

自治系统和内部网关协议、外部网关协议

自治系统之间的路由选择也叫做,域间路由选择(interdomain routing),
在自治系统内部的路由选择叫做,域内路由选择(intradomain routing) 

六、内部网关协议 RIP

 工作原理
• 路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。
• RIP 是一种分布式的基于距离向量的路由选择协议。
• RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

"距离”的定义
• 从一路由器到直接连接的网络的距离定义为 1。
• 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。
• RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。
• 这里的“距离”实际上指的是“最短距离”
• RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
• RIP 允许一条路径最多只能包含 15 个路由器。
• “距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。
• RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。

RIP 协议的三个要点:

• 仅和相邻路由器交换信息。
• 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
• 按固定的时间间隔交换路由信息,例如,每隔 30 秒。

路由表的建立:

 • 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。
• 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。
• 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。
• RIP 协议的最终是收敛(convergence)的,即在自治系统中所有的结点都得到正确的路由选择信息的过程。

路由器之间交换信息:

  • RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由
表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。
• 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不
同,它们的路由表当然也应当是不同的。

RIP2 协议的报文格式:

 

RIP 协议的优缺点

• RIP是应用层协议,使用UDP协议。
• RIP协议首部开销是20B。
• RIP 协议最大的优点就是实现简单,开销较小。
• RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。
• 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就加。
• 这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如
数分钟)。这是 RIP 的一个主要缺点。

七、内部网关协议 OSPF

 OSPF 协议的基本特点:
     • “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
     • OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
     • 是分布式的链路状态协议。

三个要点

• 向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。
• 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。
      • “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
• 只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
• OSPF是网络层协议,它不适用UDP 或TCP而是直接IP数据报发送。

链路状态数据库

• 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数
据库。
• 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库
的同步)。
• OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新
过程收敛得快是其重要优点。
 

• 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数
据库。
• 这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库
的同步)。
• OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新
过程收敛得快是其重要优点。
链路状态数据库

OSPF 的区域(area)

• 为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。
• 每一个区域都有一个区域标识符(用点分十进制表示)。
    主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。
    主干区域的作用是用来连通其他在下层的区域。


 

OSPF 的五种组类型

• 类型1,问候(Hello)分组。
• 类型2,数据库描述(Database Description)分组。
• 类型3,链路状态请求(Link State Request)分组。
• 类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。
• 类型5,链路状态确认(Link State Acknowledgment)分组。

OSPF的基本操作

 

 

 

OSPF 的其他特点

 • OSPF 用 IP 数据报传送。
• OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
• 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
• 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。 

• 支持可变长度的子网划分和无分类编址 CIDR。
• OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
• 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。
• OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。

八、因特网有两大类路由选择协议

 • 内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协
议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。
• 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当
数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统
中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。

外部网关协议BGP

• BGP 是不同自治系统的路由器之间交换路由信息的协议
• 边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。
• 每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。
• 一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器
• 一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。


BGP-4 共使用四种报文:

 (1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。
(2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。
(3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。
(4) 通知(NOTIFICATION)报文,用来发送检测到的差错。

BGP 协议的特点:

 • BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
• 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少
• BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
• 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。
• BGP协议采用的是路径向量路由选择协议。
• BGP协议是应用层的协议,它是基于TCP的。

三种路由协议的比较

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

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

相关文章

Linux运维相关基础知识(二)

系列文章目录 Linux常用命令 linux 账号管理与权限设定 Linux运维相关基础知识 文章目录 系列文章目录前言1. 自动任务执行at 与 atdcrontab 与 crond 2. SELinuxtty多任务管理与进程管理相关的命令/proc/* 文件的意义SELinux 3. 守护进程早期SystemV的init管理行为中daemon…

java开发springoot

阅读理解 命令之间空一行:表示前面的是配置 红色背景:表示待验证蓝色背景:表示常用或推荐绿色背景:注意/推荐 json 转 对象 import com.fasterxml.jackson.databind.ObjectMapper; public DebangResp convertJsonToObject(Stri…

MLU上使用MagicMind GFPGANv1.4 onnx加速!

文章目录 前言一、平台环境准备二、环境准备1.GFPGAN代码处理2.MagicMind转换修改env.sh修改run.sh参数解析运行 3.修改后模型运行 前言 MagicMind是面向寒武纪MLU的推理加速引擎。MagicMind能将人工智能框架(TensorFlow、PyTorch、Caffe与ONNX等)训练好…

Nginx——入门介绍、安装与核心配置文件结构(一/五)

目录 1.Nginx 简介1.1.背景介绍1.2.名词解释1.3.常见服务器对比1.3.1.IIS1.3.2.Tomcat1.3.3.Apache1.3.4.Lighttpd1.3.5.其他的服务器 1.4.Nginx 的优点1.4.1.速度更快、并发更高1.4.2.配置简单,扩展性强1.4.3.高可靠性1.4.4.热部署1.4.5.成本低、BSD 许可证 1.5.Ng…

nginx-限流(请求/并发量)

一. 简述: 在做日常的web运维工作中,难免会遇到服务器流量异常,负载过大等情况。恶意攻击访问/爬虫等非正常性请求,会带来带宽的浪费,服务器压力增大,影响业务质量。 二. 限流方案: 对于这种情…

【学Rust开发CAD】1 环境搭建

文章目录 一、搭建C/C编译环境二、安装Rust三、配置 PATH 环境变量四、验证安装结果五、安装编辑工具 一、搭建C/C编译环境 Rust 的编译工具依赖 C 语言的编译工具,这意味着你的电脑上至少已经存在一个 C 语言的编译环境。如果你使用的是 Linux 系统,往…

模型创新、论文复现、科研辅导、论文代码定制

建模先锋团队长期致力于为用户提供优质的代码定制服务。团队提供全网最低价格的服务,同时保证高性价比和高质量的代码交付,为您提供个性化定制的服务。 以下是定制服务范围: 通过深度学习和信号处理技术,我们能够针对不同行业和场…

基于云效 Windows 构建环境和 Nuget 制品仓库进行 .Net 应用开发

作者:陆冬澄、周静 在现代软件研发体系中,.NET 平台由于其强大的功能、灵活性和丰富的开发工具,成为了构建 Windows 应用程序的热门选择。无论是桌面应用、Web 应用还是服务应用,.NET 提供了一系列强大的框架和工具,帮…

用VS C#构建Windows服务【纯操作版,附带项目地址】

1.点击“创建新项目”,选择“Windows 服务(.NET Framework)” 2、给项目命名 3、双击“Service1.cs”,右键,选择“添加安装程序”,就会生成一个“ProjectInstaller.cs”文件 4、双击“P…

KUKA机器人如何修改程序并下载到机器人控制器中?

KUKA机器人如何修改程序并下载到机器人控制器中? 如下图所示,首先将使用的网卡的IP地址设置为自动获得, 打开workvisual软件,点击搜索,正常情况下可以搜索到项目文件,选中后双击进入, 如下图所示,此时,workvisual会自动从机器人控制器中下载项目文件到电脑上,耐心等待…

L28.【LeetCode笔记】移动零(三种解法)

目录 1.题目 2.向前覆盖法 分析 代码 提交结果 3.优解:双指针 代码 提交结果 4.其他不符合题意的方法:使用队列 代码 提交结果 1.题目 https://leetcode.cn/problems/move-zeroes/description/ 给定一个数组 nums,编写一个函数将所有 0 移动到数组的末尾…

js逆向实战(1)-- 某☁️音乐下载

下载某云音乐源文件.mp4格式 首先随便点进一首歌,如图所示获取该音乐id,然后点击播放键,打开F12进行查询XHR 由此可知,实际请求网址是 https://music.163.com/weapi/song/enhance/player/url/v1?csrf_token「你的token」url需带…

深入了解 SSL/TLS 协议及其工作原理

深入了解 SSL/TLS 协议及其工作原理 一. 什么是 SSL/TLS?二. SSL/TLS 握手过程三. SSL/TLS 数据加密与传输四. 总结 点个免费的赞和关注,有错误的地方请指出,看个人主页有惊喜。 作者:神的孩子都在歌唱 一. 什么是 SSL/TLS? 安全套接层&am…

Java四大常用JSON解析性能对比:Hutool、Fastjson2、Gson与Jackson测试

1. 引言 JSON 是现代软件开发中常用的数据交换格式,尤其在微服务和前后端分离的架构中更是必不可少。 本文将对 Java 中四大主流 JSON 解析库——Hutool、Fastjson2、Gson 和 Jackson 进行性能测试和对比分析,通过实测 20 万条数据解析,揭示…

【整理集合大全】MySQL(4) 数据库增删改查SQL语句

查看数据库 show databases; 使用数据库 use 数据库名;创建数据库 CREATE DATABASE 数据库名;删除数据库 DROP DATABASE 数据库名;创建表 create table 表名(列名1 类型(长度) [约束],列名2 类型(长度) [约束],…… );长度区别 int类型带长度:不影响存取值&…

升级 Spring Boot 3 配置讲解 —— Spring Boot 3 核心源码专讲

学会这款 🔥全新设计的 Java 脚手架 ,从此面试不再怕! Spring Boot 3 是 Spring 生态中的重要里程碑,它不仅全面支持 Java 17,还引入了许多新特性,如对 GraalVM 原生镜像的支持、改进的性能优化以及更灵活的…

vue3中el-table实现多表头并表格合并行或列

1、el-table中添加事件 :span-method"genderSpanCity" <el-table :span-method"genderSpanCity":data"data.tableData":fit"true" table-layout"fixed" header-align"center" stripestyle"width:100%;he…

OpenGL —— 流媒体播放器 - ffmpeg解码rtsp流,opengl渲染yuv视频(附源码,glfw+glad)

效果 说明 FFMpeg和OpenGL作为两大技术巨头,分别在视频解码和图形渲染领域发挥着举足轻重的作用。本文将综合两者实战视频播放器,大概技术流程为:ffmpeg拉取rtsp协议视频流,并经过解码、尺寸格式转换为yuv420p后,使用opengl逐帧循环渲染该yuv实时视频。 核心源码 vertexSh…

Web安全扫盲

1、建立网络思维模型的必要 1 . 我们只有知道了通信原理&#xff0c; 才能够清楚的知道数据的交换过程。 2 . 我们只有知道了网络架构&#xff0c; 才能够清楚的、准确的寻找漏洞。 2、局域网的简单通信 局域网的简单通信&#xff08;数据链路层&#xff09; 一般局域网都通…

HTML 显示器纯色亮点检测工具

HTML 显示器纯色亮点检测工具 相关资源文件已经打包成html等文件&#xff0c;可双击直接运行程序&#xff0c;且文章末尾已附上相关源码&#xff0c;以供大家学习交流&#xff0c;博主主页还有更多Html相关程序案例&#xff0c;秉着开源精神的想法&#xff0c;望大家喜欢&#…