《图解TCP/IP》阅读笔记(第七章 7.1、7.2、7.3)—— 路由控制概念与路由控制算法

news2024/11/16 5:39:20

第七章 路由协议

本章旨在将详细介绍路由控制以及实现路由控制功能的相关协议

7.1 路由控制的定义

在互联网这片汪洋大海中,数据就好似一叶扁舟,没有灯塔的指引,是难以寻得目的地的。这种进行正确方向引导的转发数据的处理,就叫做路由控制或路由。

路由器根据路由控制表转发数据包,具体则是依赖于数据包中目标主机的IP地址与路由器控制表比较得出下一个应该接收的路由器。所以,路由控制表的正确性,就相当重要了。

那么,是谁,又是怎样制作和管理路由控制表的呢?实际上,路由控制表分为静态和动态两种类型。

静态路由指事先设置好路由器和主机中的路由信息且固定住的一种方法。

动态路由则是指让路由协议在运行过程中自动设置路由控制信息的一种方法。

两种方法自然是各有利弊。静态路由需要手动设置,有多少个设置多少个,每新增一个,就需要将该信息追加设置在所有路由器上。不仅给管理者带来很大负担,且一旦有一个路由器故障,那么需要经由该路由器的数据都无法到达目标主机。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-j8Qveejo-1671951112212)(2022年12月25日.assets/image-20221225105049193.png)]

而是用动态路由呢,管理员需要先设置好路由器协议,设定复杂度与路由协议类型相关。如有有新网络入网,那么在需要在新增加网络的路由器上设置一个动态路由即可。对于路由器数量较多的网络,采用动态路由会减轻管理员的很多负担。而且,一旦有一个路由器故障,只要存在一个可绕路径,数据包就可以继续转发,路由器的设置也会重置。路由器会通过定期与其他路由交换必要的控制信息(会给网络带来一定程度的负担),来实现路径的备选。

实际上,静态路由与动态路由可以结合起来使用,这样效果往往更佳。


那么动态路由是如何实现动态呢?如下图所示,每个路由会给相邻路由器发送自己已知的网络连接信息,而这些信息也会传递给其他路由器,直至整个网络都了解时,路由制作表也就制作完成了。此时,就可以正确转发IP数据包了。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pBWMWNfy-1671951112214)(2022年12月25日.assets/image-20221225110158697.png)]

在此图中,能够运行的前提是该网络拓扑中没有循环(有循环需要另做处理)。

7.2 路由控制范围

要对所有的网络统一管理,是不可能的事儿。因为,人们根据路由控制的范围常使用IGP(Interior Gateway Protocol)EGP(Exterior Gateway Protocol)两种类型的路由协议。

接入互联网的各种组织机构,不仅包括语言不通的,甚至还有宗教信仰全然不同的组织。其中没有管理者,也没有被管理者,每个组织之间保持着平等的关系。

接下来要讲的概念叫做自治系统(AS:Autonomous System)或者路由选择域(Routing Domain),其是指制定自己的路由策略,并以此为准再一个或多个网络群体中采用的小型单位。这里举个例子说明会更加简单,比如一个公司,在架构网络的时候需要对公司以外的人士屏蔽企业内部的网络细节,也不必对这些细节上的更新请求做出回应。如下图所示。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gbpUt6Fu-1671951112214)(2022年12月25日.assets/image-20221225111800170.png)]

区域网络,ISP(互联网服务提供商)等都是典型的例子。接入自治系统必须根据管理员的指示进行路由控制设定。

而自治系统内部动态路由采用的就是IGP(域内路由协议),自治系统之间的路由控制采用的则是EGP(域间路由协议)。


接下里就来了解一下IGP和EGP协议。

其实IGP起到的作用,和我们此前网络层中所讲的内容大体相似,还可以使用RIP(Routing Information Protocol,路由信息协议)RIP2OSPF(Open Shortest Path First,开放式最短路由优先)等众多协议。

而EGP,就想根据IP地址中的网络部分在网络之间进行路由选择、根据主机部分在链路内部进行主机识别一样,EGP可以在区域网络之间(或ISP之间)进行路由选择,可以根据IGP在区域网络内部(或ISP内部)进行主机识别。

路由协议可以被分为EGP和IGP两个层次,没有EGP就不会有世界上各个不同组织之间的通信,而没有IGP就不会有组织内部的通信。

7.3 路由算法

书中给出了两种最具代表性的算法(肯定指的是动态路由),距离向量(Distance-Vector)算法和链路状态(Link-State)算法。


距离向量算法(DV),指根据距离和方向决定目标网络或者目标主机位置的一种方法,如下图所示

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rtuOlmnB-1671951112214)(2022年12月25日.assets/image-20221225123246095.png)]

这个算法较为简单,需要路由器之间互换目标网络的方向以及其距离的相关信息,但也正是因为只有距离和方向信息,所以当网络构造变得分外复杂时,获得稳定的路由信息之前需要消耗一定时间,也很容易发生路由循环问题。


链路状态算法建立在路由器了解网络整体连接状态的基础上生成路由控制表的一种方法。在该方法中,每个路由器都必须保持同样的信息才能进行正确的路由选择。

距离向量算法中每个路由器掌握的信息不相同,通往每个网络的距离也是根据路由器的不同而不同,该算法的另一个缺点就是不太容易判断每个路由器上的信息是否正确。

链路状态算法中,对于每台路由器,网络拓扑是完全一样的,因此只要某一台路由器和其他路由器保持同样的路由控制信息,就一位置该路由器上的路由信息是正确的。只要路由器能尽快的与其他路由器同步路由信息,就可以使路由信息达到一个稳定的状态。即使网络结构复杂,每个路由器也都可以保持正确的路由信息,进行正确的路由选择。

而代价就是,如何从网络代理获取路由信息表。这一过程的复杂程度与网络结构的复杂程度呈正比,管理和处理代理信息需要高速CPU处理能力和大量内存。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-FWiHmzo8-1671951112216)(2022年12月25日.assets/image-20221225130307931.png)]


下表中列出了几种主要的路由协议,由于EGP(是一种特定协议,二分此前所提的EGP)不支持CIDR(无类别域间路由),现在已经不再用做互联网的对外连接协议。在之后的篇章内将详细介绍RIP、RIP2、OSPF、BGP等协议的基础知识。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pEM5DWaj-1671951112216)(2022年12月25日.assets/image-20221225130551056.png)]

本篇小结

作为第七章开篇内容,本篇所介绍的多为一些概念性的内容。

路由控制分为两大类:

  • 静态路由,路由信息固定,需要手动设置
  • 动态路由,路由器动态获取,需要算法,根据算法令路由器的信息互通有无

而两者往往是结合使用。

一个较为重要的概念是自治系统,通常为区域网络和ISP,自治系统内使用IGP(域内路由协议),自治系统间使用EGP(域间路由系统)。

路由算法中最具代表性的有两种:

  • 距离向量算法(DV),通过到达其他网络的距离和方向作为交换信息
  • 链路状态算法,令每个路由器都知晓网络拓扑和网络信息

之后要介绍的主要路由协议有RIP等,请听下回分解。

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

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

相关文章

[LeetCode周赛复盘] 第 94 场双周赛20221225

[LeetCode周赛复盘] 第 94 场双周赛20221225 一、本周周赛总结二、 [Easy] 6273. 最多可以摧毁的敌人城堡数目1. 题目描述2. 思路分析3. 代码实现三、[Medium] 6274. 奖励最顶尖的 K 名学生1. 题目描述2. 思路分析3. 代码实现四、[Medium] 6295. 最小化两个数组中的最大值1. 题…

从入门到项目实战 - Vue 键盘事件

Vue 中键盘事件的使用上一节:《 Vue 事件处理 》| 下一节:《 Vue 中鼠标事件的使用 》jcLee95 邮箱 :291148484163.com CSDN 主页:https://blog.csdn.net/qq_28550263?spm1001.2101.3001.5343 本文地址:https:/…

【TypeScript】TS泛型讲解及其使用

目录 泛型 泛型函数使用 泛型约束 多泛型使用 泛型接口 泛型类 泛型工具类型 泛型 泛型是可以在保证类型安全的前提下,让函数等与多种类型一起工作,从而实现复用,常用于:函数、接口、class中。日常我们创建的函数&#xf…

车牌检测模型训练(含源码和数据集)

车牌检测模型训练(含源码和数据集) 本教程利用NVIDIA TAO进行车牌检测模型的训练: 模型框架:SSD数据集: CRPD, 连接:https://github.com/yxgong0/CRPD训练框架: NVIDIA TAO, 安装教程连接: https://docs.nvidia.com/tao/tao-toolkit/text/tao_toolkit_quick_start_guide.html…

目标检测之YOLOv3算法分析

基本原理 特征网络 输入输出 输入416∗416∗3416*416*3416∗416∗3大小的图片(不唯一,但图片大小必为32的倍数),输出3个尺度的feature map,分别为13∗13∗25513*13*25513∗13∗255,26∗26∗25526*26*25526∗26∗255…

RV1126笔记十九:吸烟行为检测及部署<六>

若该文为原创文章,转载请注明原文出处。 模型测试 一、pt文件测试 pt文件是在windows下训练生成的,测试环境为py3.8 1、首先查看虚拟环境列表,然后切换于是py3.8的虚拟环境。 conda env list // 查看虚拟环境列表 conda activate yolo // 切换虚拟环境 2…

leetcode:1739. 放置盒子【找规律!】

目录题目截图题目分析ac code总结题目截图 题目分析 样例有规律,它希望我们先按每层1, 3, 6这样叠起来,比如能跌i层那么至少有i * ( i 1) // 2个底层多出来的东西再做考虑多出来的东西考虑1 2 3…能加到多少个比如说如果多出来3个的话,放…

【小5聊】Asp.Net Core3.1基础之跨域设置以及设置不对的地方

最近微软的.Net Core平台更新换代速度非常快,还没把2.1整熟悉,就把2.1淘汰了。 目前最新版本已经到了7.0,.net core3.1还在长期维护范围内,估计能用一段时间。 所以,.net core2.1升级到3.1,跨域方法的设置也…

gerber 文件格式 [一]

在电路设计这块, 目前还绕不开 gerber 文件的工程交互, 所以来了解一下. 目前官网的文档gerber-layer-format-specification-revision-2022-02_en.pdf. gerber 文件是一个ascii码的命令文档, 格式比较简单,主要命令有下面这些 命令名称说明G04注释对文档生成没有影响MO模式设…

基于天鹰算法改进的DELM预测-附代码

天鹰算法改进的深度极限学习机DELM的回归预测 文章目录天鹰算法改进的深度极限学习机DELM的回归预测1.ELM原理2.深度极限学习机(DELM)原理3.天鹰算法4.天鹰算法改进DELM5.实验结果6.参考文献7.Matlab代码1.ELM原理 ELM基础原理请参考:https:…

一文弄懂 React HOC

1. 提出问题 1.HOC 能解决什么问题? 2.HOC 的使用场景? 2. HOC 能解决什么问题? 1.拦截组件渲染,包括是否渲染组件、懒加载组件 2.往组件的 props 中混入所需的东西,比如给非 Route 组件的 props 混入 history 对象…

node.js+uni计算机毕设项目交流微信小程序LW(程序+小程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分离等…

信号量和共享内存

信号量 信号量(Semaphore),有时被称为信号灯,是在多线程环境下使用的一种设施,是可以用来保证两个或多个关键代码段不被并发调用。在进入一个关键代码段之前,线程必须获取一个信号量;一旦该关键代码段完成了,那么该线…

Joplin插件推荐-持续更新

背景 之前因为印象笔记、语雀等笔记软件使用起来都不满足自己的需求,所以后面自己调研后使用了Joplin这个开源笔记软件 ,项目主页: https://joplinapp.org 。目前搭建在自己的服务器上。最近发现有很多好用的插件。所以记录分享一下。 总插…

# LowCode 低代码建表工具

LowCode 低代码建表工具 需求描述 将数据库的表映射为实体类&#xff0c;服务启动时&#xff0c;扫描表相关的实体类&#xff0c;根据实体类模型在数据库创建相关的表 依赖 主要依赖&#xff1a;使用 Sprintboot、druid、spring-jdbc、mybatis <!-- https://mvnreposit…

为啥这些开源的网络框架这么强

hi&#xff0c; 大家好&#xff0c;我是大师兄&#xff0c;今天分享一下网络编程下半部分内容&#xff0c;主要分享开源网络io框架用到了哪些核心技术&#xff0c;使他们如此流行&#xff0c;这些技术值得我们学习&#xff0c;可以增加我们编程技巧和优化思路。只有掌握更多技能…

【类和对象(上)】

Quitters never win and winners never quit. 目录 1.面向过程和面向对象初步认识 2.类的引入 3.类的定义 4.类的访问限定符及封装 4.1 访问限定符 4.2 封装 5.类的作用域 6.类的实例化 7.类对象模型 7.1 如何计算类对象的大小 7.2 结构体内存对齐规则 8.this指针 …

理解 Proxy 和 Reflect

03_02_理解 Proxy 和 Reflect 一、开始之前: 为什么还会有这一篇文章呢&#xff1f;不是手写mini-vue吗&#xff1f;其实可以理解成支线任务、番外篇&#xff0c;是对主线内容的补充。 这一篇文章可能文字比较多&#xff0c;理论知识比较多&#xff0c;参考了4本书相关的章节…

九、Express 基本使用(简)

前一篇内容讲到Express框架的安装以及对Express项目的目录文件有一定的认识了解之后&#xff0c;使用Express创建了最基本的一个Web服务器&#xff0c;接下来进行对Express框架的一些内容来做一个基本的使用&#xff1b; 创建 Web 服务器 node 或 nodemon 执行app.js文件&#…

踩坑了、踩到一个特别无语的常识坑

大家好 踩坑了啊&#xff0c;又踩坑了啊&#xff01; 这次踩到一个特别无语的常识坑。知道真相的那一刻&#xff0c;人就是整个麻掉。 先上个代码&#xff1a; private static double calculate(double a, int b) {return a / b; } 复制代码 你先别问为什么计算不用 BigDec…