【网络协议】动态路由协议
前言
本文将概述动态路由协议,定义其概念,并了解其与静态路由的区别。同时将讨论动态路由协议相较于静态路由的优势,学习动态路由协议的不同类别以及无类别(classless)和有类别(classful)的特性等。
【网络协议】静态路由详解
文章目录
- 前言
- 正文
- 定义
- 分类
- 路由协议的运行原理
- 动态路由协议的优缺点
- EGP vs IGP
- 距离矢量路由协议 vs 链路状态路由协议
- 类路由协议与无类路由协议
- 管理距离与度量值
正文
为了让网络中的所有设备实现通信,手动配置所有静态路由的管理开销将非常大,因为所有静态路由都需要手动配置。
对于网络管理员来说,教会路由器如何自动找到从一个点到另一个点的路径是否更加轻松?动态路由协议正是为了解决这个问题而设计的。
动态路由协议是用于大型网络的一种解决方案,它能够减少因配置静态路由而带来的复杂性。在大多数网络中,通常会同时使用动态路由和静态路由的组合。
定义
路由协议是一种使路由器能够交换路由信息的工具,它允许路由器动态学习远程连接的网络信息。这些信息会被添加到路由器的路由表中,并用作转发数据包的依据。
分类
动态路由协议可以按以下几种方式分类:
1.内部网关协议(IGP)和外部网关协议(EGP)
2.距离向量、路径向量和链路状态路由协议
3.有类别(Classful)和无类别(Classless)路由协议
以下表格列出了各种动态路由协议的类别。
下表提供了本专栏所涵盖路由协议的详细信息:
缩写 | 全称 | 标准 | 年份 | RFC |
---|---|---|---|---|
EIGRP | Enhanced Interior Gateway Routing Protocol | CISCO | 1992 | NULL |
OSPFv2 | Open Shortest Path First version 2 | Open | 1991 | 5709 |
OSPFv3 | Open Shortest Path First version 3 | Open | 1999 | 5838 |
路由协议的运行原理
现在我们已经了解了路由协议的基本概念,需要进一步理解其运行方式。
路由协议由过程、消息、算法组成。它们用于使路由器能够从配置了相同路由协议的其他路由器中学习远程连接的网络。学到的路由被添加到路由表中,作为转发数据包的依据。
路由协议的功能包括:1.发现远程网络;2.维护最新的路由信息;3.确定路径。
路由协议的组成部分:
- 数据结构:用于存储远程网络的信息,通常保存在 RAM 中,例如邻居表和拓扑表。
- 算法:即确定到特定网络最佳路径的一系列步骤。
- 路由协议消息:用于维护最新路由信息的消息,例如 Hello 消息和更新消息。
尽管不同的路由协议运行方式可能有所不同,但所有路由协议都有一些共同特性:
- 在接口上交换信息以发现邻居路由器
- 交换已发布的路由
- 运行算法以确定最佳路径
- 将最佳路径添加到路由表
- 检测拓扑更改并进行必要的调整
动态路由协议的优缺点
优点
1.当拓扑发生变化时,能够动态交换路由信息。
2.相较于静态路由,管理开销较少,静态路由需要手动配置。
3.比静态路由更不易出错。
4.更具可扩展性,因为管理开销较低。
缺点
1.配置难度较高,需要管理员具备更多专业知识。
2.消耗更多的路由器资源,例如 CPU 和 RAM。
EGP vs IGP
按协议类型区分,路由协议分为以下两类:
1.EGP - 外部网关协议(Exterior Gateway Protocols)
2.IGP - 内部网关协议(Interior Gateway Protocols)
这种分类基于自治系统(Autonomous Systems)。
自治系统(也称为路由域)是指由同一管理机构控制的一组路由器。例如,一家公司 XYZ 的所有网络都构成一个自治系统,而连接总部和分支机构的租赁线路及由 ISP 管理的网络构成另一个自治系统。
以下展示了此分类的示例拓扑图。
XYZ 控制的网络被标记为 AS 100,而 ISP 被标记为 AS 650。
内部网关协议 (IGP) 用于自治系统内的路由——即在一个自治系统内的路由。
外部网关协议 (EGP) 用于自治系统之间的路由——即在不同自治系统之间的路由。
例如,在这种情况下,XYZ 总部与分支机构之间的路由将使用 IGP,而公司 XYZ 与 ISP 之间的路由将使用 EGP。
距离矢量路由协议 vs 链路状态路由协议
按工作原理区分,内部网关协议 (IGP) 可以分为两种类型:
- 距离矢量路由协议
- 链路状态路由协议
距离矢量路由协议的意思是,路由信息以“距离和方向的矢量”形式被通告。
如果以游客寻路为例,使用距离矢量协议的游客将仅依靠路标来前进。他们不了解完整的地形或可能的障碍,仅知道下一个到达目的地的路标位置。
距离矢量路由协议适用于以下场景:
- 网络简单且扁平,不需要特殊的分层设计。
- 管理员对链路状态协议的配置和故障排查缺乏经验。
- 部署特定类型的网络,例如星型网络(hub-and-spoke)。
- 网络中最差收敛时间并不是主要关注点。
另一方面,如果游客拥有一份详细的地图,了解通往目的地的多条路径及其细节,他们将使用链路状态路由协议。
链路状态路由协议通常具备网络拓扑的完整视图,通常能够了解最佳路径以及备用路径。链路状态协议使用最短路径优先算法 (SPF) 来确定到网络的最佳路径。
链路状态路由协议适用于以下场景:
- 网络设计是分层的,通常出现在大型网络中。
- 管理员对链路状态协议的实现有良好的理解。
- 网络需要快速收敛。
类路由协议与无类路由协议
类路由协议 (Classful Routing Protocols)
类路由协议在路由更新中不包含子网掩码。这是因为它们在 CIDR 和 VLSM 引入之前设计的。
例如:RIPv1。
无类路由协议 (Classless Routing Protocols)
无类路由协议在路由更新中包含子网掩码和网络地址。
在本课程中,我们将重点关注无类路由协议,因为类路由协议在路由更新中不包含子网掩码,因此它们无法在已经划分子网的网络中工作,在现代网络中已不再使用。
管理距离与度量值
假设一个路由器有多个到达某网络的路径,它将如何确定最佳路径?
度量值 (Metric) 是路由协议用来分配到达远程网络成本的机制。
在游客寻路的例子中,这可能是游客前往目的地所需的燃料量。度量值用于在存在多条路径时确定到网络的最佳路径。
下表显示了本专栏中将涵盖的各种路由协议使用的度量值:
路由协议 | 度量值 | 描述 |
---|---|---|
RIPv1 | 跳数 (Hop Count) | 源网络与目标网络之间的路由器数量。 |
RIPv2 | 跳数 (Hop Count) | 源网络与目标网络之间的路由器数量。 |
EIGRP | 复合度量值 | 多种值的组合,用于确定最佳路径。复合度量将在 EIGRP 章节中讨论。 |
OSPFv2 | 成本 (Cost) | 从路由器到目标网络的带宽或配置成本。 |
OSPFv3 | 成本 (Cost) | 从路由器到目标网络的带宽或配置成本。 |
管理距离
如果我们在一个路由器上配置了多个路由协议,路由器将如何确定到达目标网络的最佳路径呢?
管理距离 (Administrative Distance, AD) 是路由器用来对路由来源赋予优先级的方式。例如,如果一个路由器通过 EIGRP 和 RIP 学习到相同的路由,它将优先选择通过 EIGRP 学到的路由。
路由表中的所有路由都有优先级,直接连接的路由通常是最优先的。AD 反映了路由的可信度。
AD 通常是一个从 0 到 255 的值,值越低,路由来源越可信,AD 为 255 的路由永远不会被信任。
如果我们继续使用游客的例子,管理距离就像是对每种交通方式的信任。例如,航空公司比步行更值得信赖。
下表显示了本课程中将涵盖的各种路由协议的管理距离:
路由协议 | 管理距离 (AD) |
---|---|
RIP | 120 |
OSPF | 110 |
EIGRP | 90 |
静态路由 | 1 |
相关文章:
【网络协议】动态路由协议
前言 本文将概述动态路由协议,定义其概念,并了解其与静态路由的区别。同时将讨论动态路由协议相较于静态路由的优势,学习动态路由协议的不同类别以及无类别(classless)和有类别(classful)的特性…...
DevOps:CI、CD、CB、CT、CD
目录 一、软件开发流程演化快速回顾 (一)瀑布模型 (二)原型模型 (三)螺旋模型 (四)增量模型 (五)敏捷开发 (六)DevOps 二、走…...
网络安全 | WAF防护开通流程与技术原理详解
关注:CodingTechWork 引言 随着互联网安全形势的日益严峻,Web应用防火墙(WAF, Web Application Firewall)逐渐成为网站和应用的标准防护措施。WAF能够有效识别和防止如SQL注入、跨站脚本攻击(XSS)、恶意流…...
【我的 PWN 学习手札】IO_FILE 之 FSOP
FSOP:File Stream Oriented Programming 通过劫持 _IO_list_all 指向伪造的 _IO_FILE_plus,进而调用fake IO_FILE 结构体对象中被伪造的vtable指向的恶意函数。 目录 前言 一、glibc-exit函数浅析 二、FSOP 三、Largebin attack FSOP (…...
Spring——自动装配
假设一个场景: 一个人(Person)有一条狗(Dog)和一只猫(Cat),狗和猫都会叫,狗叫是“汪汪”,猫叫是“喵喵”,同时人还有一个自己的名字。 将上述场景 抽象出三个实体类&…...
C语言——文件IO 【文件IO和标准IO区别,操作文件IO】open,write,read,dup2,access,stat
1.思维导图 2.练习 1:使用C语言编写一个简易的界面,界面如下 1:标准输出流 2:标准错误流 3:文件流 要求:按1的时候,通过printf输出数据,按2的时候,通过p…...
人工智能知识分享第九天-机器学习_集成学习
集成学习 概念 集成学习是机器学习中的一种思想,它通过多个模型的组合形成一个精度更高的模型,参与组合的模型称为弱学习器(基学习器)。训练时,使用训练集依次训练出这些弱学习器,对未知的样本进行预测时…...
腾讯云AI代码助手编程挑战赛-武器大师
作品简介 对话过程能够介绍二战 各种武器 冷战 武器 现代的 各种武器装备,陆海空三军都知道。 技术架构 使用全后端分离的架构,前端使用Vue脚手架,腾讯云修改样式css 开发环境、开发流程 系统:win11 开发工具:VS…...
Python机器学习笔记(十八、交互特征与多项式特征)
添加原始数据的交互特征(interaction feature)和多项式特征(polynomial feature)可以丰富特征表示,特别是对于线性模型。这种特征工程可以用统计建模和许多实际的机器学习应用中。 上一次学习:线性模型对w…...
java_深入理解main方法
深入理解main方法 在 main()方法中,我们可以直接调用 main 方法所在类的静态方法或静态属性。但是,不能直接访问该类中的非静态成员,必须创建该类的一个实例对象后,才能通过这个对象去访问类中的非静态成员,[举例说明]…...
NLP中常见的分词算法(BPE、WordPiece、Unigram、SentencePiece)
文章目录 一、基本概念二、传统分词方法2.1 古典分词方法2.2 拆分为单个字符 三、基于子词的分词方法(Subword Tokenization)3.1 主要思想3.2 主流的 Subword 算法3.3 Subword 与 传统分词方法的比较 四、Byte Pair Encoding (BPE)4.1 主要思想4.2 算法过…...
HTTP/HTTPS ②-Cookie || Session || HTTP报头
这里是Themberfue 上篇文章介绍了HTTP报头的首行信息 本篇我们将更进一步讲解HTTP报头键值对的含义~~~ ❤️❤️❤️❤️ 报头Header ✨再上一篇的学习中,我们了解了HTTP的报头主要是通过键值对的结构存储和表达信息的;我们已经了解了首行的HTTP方法和UR…...
前端 动图方案
1、vue3lottie 解析使用Bodymovin导出为json格式的Adobe After Effects动画 vue3lottie的使用神器:vue3-lottie (electron也适用)-CSDN博客 2、MP4文件 //template部分 <video class"header-bg" src"../../assets/images/screen/layout/heade…...
C#语言的字符串处理
C#语言的字符串处理 引言 在现代编程中,字符串处理是一项重要的技能,几乎在所有编程语言中都有应用。C#语言作为一种强类型的、面向对象的编程语言,提供了丰富的字符串处理功能。这使得开发人员能够方便地进行文本操作,比如字符…...
【shell编程】报错信息:bash: bad file descriptor(包含6种解决方法)
大家好,我是摇光~ 在运行 Shell 脚本时,遇到 bash: bad file descriptor 错误通常意味着脚本尝试对一个无效或不可用的文件描述符(file descriptor)执行了读写操作。 以下是一些可能导致这个问题的原因、详细案例以及相应的解决…...
vscode 配置c/c++环境 中文乱码
D:\MIscrobingDownload\mingw64\binmingw配置到环境变量中 测试一下,按winr输入cmd打开终端 gcc -v g -v安装插件 一 二 run code 因为run code 插件配置实质上是用它提供的指令进行编译执行,因此无法直接使用断点调试功能,需要对配置进行…...
leetcode 面试经典 150 题:两数之和
链接两数之和题序号1题型数组解题方法1. 哈希表,2. 暴力法难度简单熟练度✅✅✅✅✅ 题目 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输…...
【Unity报错】error Cs0103: The name ‘keyCode‘ does not exist in the current context
报错提示: 解决方法: KeyCode K大写...
家用万兆网络实践:紧凑型家用服务器静音化改造(二)
大家好,这篇文章我们继续分享家里网络设备的万兆升级和静音改造经验,希望对有类似需求的朋友有所帮助。 写在前面 在上一篇《家用网络升级实践:低成本实现局部万兆(一)》中,我们留下了一些待解决的问题。…...
“AI智能实训系统:让学习更高效、更轻松!
大家好,作为一名资深产品经理,今天我来跟大家聊聊一款备受瞩目的产品——AI智能实训系统。在这个人工智能技术飞速发展的时代,AI智能实训系统应运而生,为广大学习者提供了全新的学习体验。那么,这款产品究竟有哪些亮点…...
【Linux 之一 】Linux常用命令汇总
Linux常用命令 ./catcd 命令chmodclearcphistoryhtoplnmkdirmvpwdrmtailunamewcwhoami 我从2021年4月份开始才开始真正意义上接触Linux,最初学习时是一脸蒙圈,啥也不会,啥也不懂,做了很多乱七八糟,没有条理的笔记。不知…...
Git 从入门到精通
一、环境配置 下载地址:https://git-scm.com/downloads/ 二、用户配置 找到git bash git --version 查看当前版本 git config --global user.name szhipeng625 设置用户名 git config --global user.email szhipeng625gmail.com 设置邮箱 git config --global …...
【Uniapp-Vue3】创建自定义页面模板
大多数情况下我们都使用的是默认模板,但是默认模板是Vue2格式的,如果我们想要定义一个Vue3模板的页面就需要自定义。 一、我们先复制下面的模板代码(可根据自身需要进行修改): <template><view class"…...
Ansible之批量管理服务器
文章目录 背景第一步、安装第二步、配置免密登录2.1 生成密钥2.2 分发公钥2.3 测试无密连接 背景 Ansible是Python强大的服务器批量管理 第一步、安装 首先要拉取epel数据源,执行以下命令 yum -y install epel-release安装完毕如下所示。 使用 yum 命令安装 an…...
android compose 串口通信
1.添加依赖 implementation("io.github.xmaihh:serialport:2.1.1") 2.添加SerialHelper派生类 class SerialPortHelper(portName:String,baudRate:Int): SerialHelper(portName,baudRate) {var receivedDataBuffer mutableListOf<Byte>()override fun onDa…...
ios脚本巨魔商店多巴胺越狱基本操作教程
准备工作 确认设备兼容性:A9-A11(iPhone6s-X):iOS15.0-16.6.1;A12-A14(iPhoneXR-12PM):iOS15.0-16.5.1;A15-A16(iPhone13-…...
NLP项目实战——基于Bert模型的多情感评论分类(附数据集和源码)
在当今数字化的时代,分析用户评论中的情感倾向对于了解产品、服务的口碑等方面有着重要意义。而基于强大的预训练语言模型如 Bert 来进行评论情感分析,能够取得较好的效果。 在本次项目中,我们将展示如何利用 Python 语言结合transformers库&…...
.NET framework、Core和Standard都是什么?
对于这些概念一直没有深入去理解,以至于经过.net这几年的发展进化,概念越来越多,越来越梳理不容易理解了。内心深处存在思想上的懒惰,以为自己专注于Unity开发就好,这些并不属于核心范畴,所以对这些概念总是…...
Mybatis原理简介
看到Mybatis的框架图,可以清晰的看到Mybatis的整体核心对象,我更喜欢用自己的图来表达Mybatis的整个的执行流程。如下图所示: 原理详解: MyBatis应用程序根据XML配置文件创建SqlSessionFactory,SqlSessionFactory在根…...
腾讯云AI代码助手-公司职位分析AI助手
作品简介 腾讯云AI代码助手是一款智能工具,专注于为公司提供职位分析服务。通过自然语言处理和机器学习技术,它能快速解析职位描述,提取关键信息,并提供数据驱动的洞察,帮助公司优化招聘流程和职位设计。 技术架构 …...
腾讯云AI代码助手编程挑战赛-解忧助手
作品简介 何以解忧,唯有杜康。而随着Ai的发展,解忧不再只有杜康还有Ai,使用的是腾讯云AI代码助手来生成的所有代码,使用方便,快捷,高效。 技术架构 采用了全后端分离的架构,前端使用Vue.js,腾讯云的AI服务处理自然语…...
Sentinel服务保护 + Seata分布式事务
服务保护 【雪崩问题】微服务调用链路中某个服务,引起整个链路中所有微服务都不可用。 【原因】: 微服务相互调用,服务提供者出现故障。服务调用这没有做好异常处理,导致自身故障。调用链中所有服务级联失败,导致整个…...
【Leetcode·中等·数组】59. 螺旋矩阵 II(spiral matrix ii)
题目描述 英文版描述 Given a positive integer n, generate an n x n matrix filled with elements from 1 to n(2) in spiral order. Example 1: Input: n 3 Output: [[1,2,3],[8,9,4],[7,6,5]] 提示: 1 < n < 20 英文版地址 https://leetcode.com…...
WebSocket 扩展生态:协议与框架
在前七篇文章中,我们深入探讨了 WebSocket 的基础原理、开发实践和实战案例。今天,让我们把视野扩展到 WebSocket 的生态系统,看看有哪些扩展协议和框架可以帮助我们更好地开发 WebSocket 应用。我曾在一个大型即时通讯项目中,通过合理使用这些工具,将开发效率提升了 50%。 扩…...
MySQL —— 在CentOS9下安装MySQL
MySQL —— 在CentOS9下安装MySQL 1.查看自己操作系统的版本2.找到对应的安装源3.上传我们在windows下,下载的文件,解压4.执行rpm命令,启用MySQL8仓库5.执行dnf install -y mysql-community-server6.设置开机自启动7.获得初始密码8.登录MySQL…...
用VS C#构建Windows服务【纯操作版,附带项目地址】
1.点击“创建新项目”,选择“Windows 服务(.NET Framework)” 2、给项目命名 3、双击“Service1.cs”,右键,选择“添加安装程序”,就会生成一个“ProjectInstaller.cs”文件 4、双击“ProjectInstaller.cs”文件,右键“serviceProcessInstaller1”,选择“属性…...
1.UGUI相关
1.这一种UIcanvas下的组件,会显示在3d物体之前 2.可以设置3d物体在UI界面之前。选中第二个模式。这时候会指定一个摄像机。一般情况下,不用主摄像机。需要新建一个专门给UI的摄像机。相当于设置距离摄像机的远近。两个layer 可以理解成 章节,关卡。相同…...
大语言模型训练的数据集从哪里来?
继续上篇文章的内容说说大语言模型预训练的数据集从哪里来以及为什么互联网上的数据已经被耗尽这个说法并不专业,再谈谈大语言模型预训练数据集的优化思路。 1. GPT2使用的数据集是WebText,该数据集大概40GB,由OpenAI创建,主要内…...
Android 来电白名单 只允许联系人呼入电话
客户需求只允许通讯录中联系人可以呼入电话。参考自带的黑名单实现 CallsManager.java类中的onSuccessfulIncomingCall方法有一些过滤器,可以仿照黑名单的方式添加自己的过滤器。 packages/services/Telecomm/src/com/android/server/telecom/CallsManager.java …...
StarRocks Awards 2024 年度贡献人物
在过去一年,StarRocks 在 Lakehouse 与 AI 等关键领域取得了显著进步,其卓越的产品功能极大地简化和提升了数据分析的效率,使得"One Data,All Analytics" 的愿景变得更加触手可及。 虽然实现这一目标的道路充满挑战且漫…...
plane开源的自托管项目
Plane 是一个开源的自托管项目规划解决方案,专注于问题管理、里程碑跟踪以及产品路线图的设计。作为一款开源软件,Plane 的代码托管在 GitHub 平台上,允许任何人查看和贡献代码。它为用户提供了便捷的项目创建与管理手段,并配备了…...
WebLogic安全基线
WebLogic安全基线 一、 用户权限1 、检查weblogic 的启动用户2 、用户权限整改3 、使用普通用户重启weblogic 二、账户共用1 、检查weblogic 控制台的账户2 、账户共用整改3 、测试登录weblogic 控制台新账户 三、 账户清理1 、检查weblogic 控制台的账户2 、帐户清理整改 四、…...
复杂园区网基本分支的构建
目录 1、各主机进行网络配置。2、交换机配置。3、配置路由交换,进行测试。4、配置路由器接口和静态路由,进行测试。5、最后测试任意两台主机通信情况 模拟环境链接 拓扑结构 说明: VLAN标签在上面的一定是GigabitEthernet接口的,…...
设计模式-结构型-组合模式
1. 什么是组合模式? 组合模式(Composite Pattern) 是一种结构型设计模式,它允许将对象组合成树形结构来表示“部分-整体”的层次结构。组合模式使得客户端对单个对象和组合对象的使用具有一致性。换句话说,组合模式允…...
32单片机从入门到精通之用户界面——用户界面(十四)
不论你现在处于什么样的困境和挑战,不要放弃希望和努力。成功之路不会一帆风顺,但是只要你坚定信念,勇敢面对困难,努力奋斗,就一定能够战胜困难,迈向成功的道路。困难和挫折只是暂时的,而坚持和…...
Redis 优化秒杀(异步秒杀)
目录 为什么需要异步秒杀 异步优化的核心逻辑是什么? 阻塞队列的特点是什么? Lua脚本在这里的作用是什么? 异步调用创建订单的具体逻辑是什么? 为什么要用代理对象proxy调用createVoucherOrder方法? 对于代码的详细…...
NFS 组件容器化部署实战指南
文章目录 前言部署NFS服务器K8S部署NFS问题记录 前言 使用nfs-client-provisioner这个应用,利用nfs server给kubernets提供作为持久化后端,并且动态提供pv。所有节点需要安装nfs-utils组件,并且nfs服务器与kubernets worker节点都能网络连通…...
LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异
LCE(Local Cascade Ensemble)预测模型和LSTM(Long Short-Term Memory)模型在效果和特点上存在显著差异。以下是对两者的比较: 一、效果比较 LCE模型: 优势:LCE结合了随机森林和XGBoost的优势&a…...
rk3568平台Buildroot编译实践:内核rootfs定制 及常见编译问题
目录 编译前准备常规编译流程定制内核修改内核 参数并增量 保存修改rootfs并增量 保存修改rootfs包下载源rootfs软件包增删refBuildroot 是一个用于自动化构建嵌入式 Linux 系统的工具。它通过使用简单的配置文件和 Makefile,能够从源代码开始交叉编译出一个完整的、可以运行在…...
头歌python实验:网络安全应用实践-恶意流量检测
第1关:re 库的使用 本关任务:编写一个能正则匹配出 ip 地址的小程序。 re 的主要功能函数 常用的功能函数包括: compile、search、match、split、findall(finditer)、sub(subn)。 re.search 函数 re.search 扫描整个字符串并返回第一个成功的匹配。 函数语法: re…...