【计算机三级网络技术】 第四篇 路由设计技术基础

news2024/11/26 1:53:53



在这里插入图片描述


一、分组转发

所谓的分组转发中,数据是以分组形式传输的, 如果源端要发送一个很大的数据,则将其分成若干分组,每个分组中除了用户数据外还包含一些控制信息,以便能够正确地把分组传送给目的端。分组的传送采用存储-转发方式, 即网络节点根据分组控制信息,把分组送到下一节点,下一节点接收到分组后,暂时保存下来并排队等候传输,然后根据分组控制信息把该分组传送到下一个节点,直至到达最终目的。

在互联网络中,路由器就是采用分组转发的机制实现IP分组的物理传输和数据报转发的。如下图所示,分组转发根据分组的源地址(网络层的IP地址)和目的地址(网络层的IP地址)是否在同一个网络中,可以分为直接转发与间接转发两种转发方式。
当分组的源地址和目的地址在同一个网络中,则源主机可将分组直接转发给目的主机,或者目的路由器向目的主机转发分组时,也为直接转发。 否则,当分组的源地址与目的地址不在同一个网络中,就需要通过路由查找进行转发,即间接转发。 间接转发时,路由器需要从路由表中找,到所需转发的下一跳地址,然后经过IP包处理,转发给下一跳,直至到达目的主机。

分组转发示意图
在这里插入图片描述

二、路由选择

1.理想的路由算法的基本特征

理想的路由算法需要满足一些基本特性:简单性、正确性、稳定性、健壮性、公平性、最优性、高效性。

简单性指的是路由算法不能太复杂。

正确性指的是路由算法首先要保证自身正确,同时应该满足数据传输的要求,从而满足网络用户业务工作的需要。

稳定性指的是路由算法对网络状态的变化要适度反应,不能过于敏感也不能太迟缓。

健壮性指的是路由算法能适应拓扑结构和通信量等网络状态的变化,尽可能保持网络正常运行,把中断的数据传输继续下去,而不需要重启网络或者将主机数据传输终止。

公平性指的是路由选择算法应对所有用户(除对少数优先级高的用户)都是平等的。

最优性指的是路由选择算法应当能够找出最好的路由,使得分组平均延时最小而网络的吞吐量最大。

高效性是指因路由算法工作的需要,网络中的每个节点都会承担一定的处理开销,同时会产生一些传输开销,一定程度上会影响网络的效率。

2.路由算法的度量标准

  • 带宽: 指的是链路的传输速率(如T1链路带宽为1.544Mbit/s)
  • 负载: 指的是单位时间内通过网络资源(如路由器或链路)上的通信量。
  • 延迟: 指的是一个分组从源节点到达目的节点所花费的时间。延迟取决于中间链路的带宽、经过的每个路由器的端口队列、网络拥塞情况以及物理距离等因素。
  • 跳数: 指的是分组从源主机到达目的主机经过的路由器的数量。跳数越少的路径越好。可靠性:指的是传输过程中每个网络链路的误码率。-
  • 代价(开销): 可以是个任意的值,一般以费用、带宽的开销或其他衡量标准为基础,可以由网络管理员指定。

3.路由算法分类:

(1)静态路由选择算法。
静态路由选择具有简单和开销较小的特点,适用于简单的规模小的网络,因为在此种网络环境下,网络管理人员比较容易掌握网络的拓扑结构,手工配置路由信息工作量也不大。它还有利于保证网络的安全保密性,因为静态路由为手工配置,因此不存在因路由器之间交换各自的路由表而导致路由信息被截获和分析,从而泄漏网络的拓扑结构和网络地址等信息的问题。

(2)动态路由选择算法。
动态路由选择算法也叫做自适应路由选择,其路由信息是通过相互连接的路由器彼此之间交换路由信息,然后按照一定的算法计算并优化而得出的,同时为适应不断变化的网络,还需要在一定时间间隙对这些路由信息不断更新,以及时获得最优的路径选择效果。其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。

4.IP路由选择与路由汇聚(重点)

在图中的网络包含接入、汇聚、核心三层,分别由接入层路由器、汇聚层路由器和核心层路由器连接。路由器与路由器之间的连接链路主要有两种,即串行线路(用S1、S2标记)和以太网线路(F0、F1、F2标记) 。核心层路由器R1通过两条串行线路S1、S2分别与汇聚层路由器R2、R3连接:路由器R2通过以太网接口与接入层路由器R4、R5连接;路由器R3通过以太网接口与接入层路由器R6、R7连接。接入层路由器R4、R5、R6、 R7又分别连接了200.200.0.0/24-200.200.3.0/24, 200.200.128.0/24~200. 200.131.0/24共8个子网。那么在该网络中,加上连接核心路由器、连接汇聚路由器的2个子网,共有12个子网。对应地就应该有12个路由条目在核心路由器R1的路由表中,如表所示。

路由汇聚示意图
在这里插入图片描述

在该网络中,如果使用的是静态路由表就需要在图中的7个路由器中逐条人工添加路由条目,那么总共需要输入的路由条目数为12×7=84个。可,见工作量较大,而且任一路由器或链路发生变化时, 7个路由器的路由表又要重新配置,故只能采用动态路由选择协议来自动建立和更新路由表。

核心路由器的路由表

路由接口路由接口
200. 200,.200.0/30S1200.200.2.0/24S1
200. 200. 201.0/30S2200.200,3.0/24S1
200. 200.100.0/28S1200, 200. 128.0/24S2
200. 200. 101.0/28S2200. 200. 129.0/24S2
200.200.0.0/24S1200. 200. 130./24S2
200.200.0.0/24S1200,.200.131.0/24S2
200. 200.200.0/30S1200.200.2.0/24S1
200. 200. 201.0/30S2200.200,3.0/24S1
200. 200.100.0/28S1200, 200. 128.0/24S2
200. 200. 101.0/28S2200. 200. 129.0/24S2
200.200.0.0/24S1200. 200. 130./24S2
200.200.0.0/24S1200,.200.131.0/24S2

我们观察可以发现,核心路由器的路由表的路由表项条目可以按照“最长前缀匹配”的方法,将12个路由表项条目进行一定程度的汇聚,特别是接入层所连接的8个C类网络路由条目。

首先对于200.200.0.0-200.200.3.0它们两个的前16位是完全一样的,所以其汇总路由肯定也包含"200.200.XX"字样,我们再观察它们的第3个字段:
0=00000000
1= 00000001
2= 00000010
3=00000011
可以看出来,它们具有完全相同的前6位,加上之前完全相同的前16位,共有8+8+6-22位完全相同,这些相同的位数构成了汇总地址的网络位。剩下还有32-22-10位,就是汇总后路由的主机位。在表示汇总路由的网络号时,主机位全部用0值表示。因此200.200.0.0-200.200.3.0通过路由汇聚得到的汇聚路由是200.200.0.0/22。
对于200.200.128.0-200.200.131.0,它们两个的前16位也是完全一样的,所以其汇总路由肯定也包含"200.200.X.X"字样,我们再观察它们的第3个字段:
128=10000000
129=10000001
130=10000010
131=10000011
对于这四条链路,第3个字段的前六位是完全相同的,也就是说四项的最长相同前缀为22位,因此200.200.128.0-200.200.131.0通过路由汇聚后得到的汇聚路由是200.200.128.0/22。
这样,路由表就由原来的12项路由条目精简为6项,精简之后的路由表如所示。这就是路由汇聚的整个过程。

汇聚后的核心路由器的路由表

路由接口路由接口
200. 200,.200.0/30S1200.200.101.0/28S2
200. 200. 201.0/30S2200.200,0.0/22S1
200. 200.100.0/28S1200, 200. 128.0/24S2
200. 200. 200.0/30S1200. 200. 101.0/28S2
200.200.201.0/30S2200. 200. 0.0/22S1
200.200.100.0/28S1200,.200.128.0/22S2

假设R1接收到一个目的地址为200.200.3.129的数据包, R1要在路由表中寻找一条最佳路径,按照路由查找步骤,将目的地址200.200.3.129与路由表中的路由条目进行匹配: 200.200.3.129/32的二进制表为11001000.11001000.00000011.10000001,与200.200.0.0/22的二进制表示11001000.11001000.00000000.00000000对比可以看出,目的地址200.200.3.129与200.200.0.0/22的地址前缀有22位完全相同,因此核心路由器R1将根据其对应的路由条目找到出口,并最终把数据包从S1口转发出去。

三、自治系统与Internet的路由选择协议

1.自治系统

Internet的路由选择只能采用分层方式进行,首先由不同的管理机构,将Internet划分为多个较小的自治系统。

自治系统(Autonomous System, AS)是一组共享相似的路由策略并在同一管理机构下运行的路由器的集合。 一个AS可以是运行单一路由协议的路由器的集合, 也可以是一些运行不同路由选择协议, 但都属于一个组织机构的路由器集合。

主要特点是它有权决定本系统内采用什么路由策略。自治系统内部的路由选择称为域内路由选择, 自治系统之间的路由选择称为域间路由选择。
在自治系统内部的网络中采用的称为第一层区域的路由,也就是区域内路由,它由自治系统内部的路由器产生并负责内部网络的数据传输。第二层路由为Internet的主干路由,每个连入Internet的自治系统中都有负责连入主干网络的路由器,由它们负责维护自治系统间路由信息,并负责自治系统间数据传输,自治系统的内部主机访问外部主机时都需要通过本自治系统中的主干路由器。

2.路由选择协议的分类

路由选择协议(Routing Protocol)简单来说就是用来计算、维护路由信息的协议。路由选择协议一般工作在OSI参考模型的传输层或者应用层。

路由协议(Routed Protocol)又称为被路由协议,指可以被路由器在不同逻辑网段间路由的协议。路由协议通常工作在OSI参考模型的网络层。

按照工作范围的不同,路由协议可以分为IGP(Interior Gateway Protocols,内部网关协议)和EGP(Exterior Gateway Protocols,外部网关协议)两大类,如图所示。

IGP与EGP
在这里插入图片描述

IGP是指在同一个自治系统内部交换路由信息的路由协议。IGP的主要目的是发现和计算自治系统内部的路由信息:

  • 路由信息协议(RIP) ,它是一种分布式的、基于距离向量的路由协议。·
  • 开放最短路径优先协议(OSPF) ,它是一种链路状态路由协议,是目前最常用的一种内部网关协议。
  • 中间系统到中间系统(IS-IS),它为一个域内两个路由器之间传送分组提供动态路由。·
  • 内部网关路由协议(IGRP) ,它是一种距离向量路由协议,是Cisco公司的私有协议。

EGP用于连接不同的自治系统,并在不同自治系统之间交换路由信息。EGP的主要目的是将路由选择信息从一个自治系统传递到另一个自治系统中。

四、内部网关协议

1.RIP的基本概念

RIP (Routing information Protocol,路由信息协议)是一种分布式、基于距离向量的内部网关协议,使用“跳数”来衡量到达目标地址的路由距离。

2.RIP的原理

RIP规定,路由器每30秒向外广播一个(V,D)报文,报文信息来自本地路由表。RIP协议的(VD)报文中,以跳数计算距离: 与目标网络直接相连的路由器规定为一跳,相隔一个路由器则为两跳 依次类推。一条路径的距离为该路径(从源主机到目的主机机)上的路由器数。RIP规定,一条有限的路径长度不得超过15,超过15则意味路径为无限长,即路径不存在。

3.RIP的运行过程

(1)路由表的建立。
初始化后的路由器只包含所有与该路由器直接相连的网络路由,且(V, D)表中各路由的距离均为0。

(2)路由表信息的更新。
如图所示是路由表信息的更新过程,假设Router1与Router2是一个自治系统中相邻的两个路由器。Router2发送(V, D)报文至Router1,而后Router1按照以下规律更新路由表的信息。

如果Router1的路由表没有这一项记录, Router1在路由表中增加该项,由于要经过Router2转发,因此距离D值加1;如果Router1的路由表中的一项记录比Router2发送的一项记录距离D值减1还要大, Router1在路由表中修改该项,距离D值根据Router2提供的值加1。

路由器1起始路由表

目的网络距离路由
10.0.0.00直接
20.0.0.08Router2
30.0.0.03Router2
120.0.0.011Router4
125.0.0.04Router5
212.0.0.010Router6
220.0.0.09Router6

路由器2发送对1(V,D)报文

目的网络距离
10.0.0.03
20.0.0.04
30.0.0.02
40.0.0.07
120.0.0.05

修改后的路由器1起始路由表

目的网络距离路由
10.0.0.00直接
20.0.0.05Router2
30.0.0.03Router2
40.0.0.08Router2
120.0.0.06Router2
125.0.0.04Router5
212.0.0.010Router6
220.0.0.09Router6

路由表信息的更新过程

五、开放最短路径优先协议

1.OSPF协议概述

开放最短路径优先(Open Source Path First, DSPF)协议,也是内部网关协议的一种,主要用于在自治系统内部路由器之间传输路由信息,是基于Dijkstra提出的最短路径算法规则计算路由。

  • OSPF协议的主要特点有如下几点:OSPF协议最主要的特征就是使用分布式链路状态协议(Link StateProtocol)。

  • OSPF协议要求当链路发生变化时用洪泛法向本自治系统中所有路由器发送信息。
    主要是路由器通过所有输出端口向所有相邻的路由器发送信息,而每个相邻路由器又再将此信息发往其所有的相邻路由器,最终所有在这个区域中的路由器都拥有了一个一致的网络结构信息。而RIP的每个路由器只知道到每个网段的距离和下一跳,不知道全网的拓扑结构,并且RIP仅向自己相邻的几个路由器交换路由信息。

  • OSPF发送的信息是与本路由器相邻的所有路由器的链路状态,所谓链路状态指的是本路由器相邻路由器都有哪些,以及与相邻路由器之间链路的“度量”值, OSPF的链路状态"度量”主要是指距离、费用、带宽、时延等。

2.OSPF的层次结构与区域划分

OSPF协议将自治系统划分成不同的区域。划分区域是从逻辑上将路由器划分为不同的组,每个组用一个区域号(Area ID)来标识。 划分区域的边界是路由器,而不是链路。一个网段(链路)只能属于一个区域,或者说运行OSPF路由器的每个接口必须属于某个特定的区域。区域号是0,通常被称为骨干区域或骨干路由器。 骨干区域负责区域之间的路由,非骨干区域之间的路由信息必须通过骨干区域来转发。

3.OSPF协议的运行过程

(1)路由器的初始化过程。
OSPF中的每个路由器都采用一个包含数据库描述的数据包,与相邻的路由器交换自己数据库中已有的链路状态摘要信息,而不是把自己的链路状态信息对全网广播。

(2)网络运行过程。
在网络运行的过程中,只要一个路由器的链路状态发生变化,该路由器就要使用链路状态更新分组,用洪泛法向全网更新链路状态。OSPF使用的是可靠的洪泛法。 为了确保链路状态数据库与全网的数据库状态保持一致,OSPF还规定每隔一段时间,例如每30分钟要刷新一次数据库中的链路状态。

六、外部网关协议

1.BGP协议的特性

(1) BGP是一种外部网关协议,它重点关心的不是发现和计算路由,而是在AS之间传递路由信息以及控制优化路由信息(提供这些信息是为了找到较好的路由,不一定是最佳路由)。

(2) BGP是一种“路径矢量”路由协议,其路由信息中携带了所经过的全部自治系统的路径列表。

(3)为了保证BGP的可靠传输,其使用TCP来承载协议报文。 通过TCP的可靠传输机制、重传、排序等机制来保证BGP消息报文传输的可靠性。

(4) BGP支持CIDR和路由聚合,可以将一些连续的子网聚合成较大的子网(突破了标准分类地址限制),从而可以在一定程度上控制路由表的快速增长,并降低了路由查找的复杂度。

(5) BGP最重要的特性是丰富的路由属性以及强大的路由过滤和路由策略。

2.BGP的路由器角色及基本特征

(1)发言者。
发送BGP协议报文的路由器称为BGP发言者(BGP Speaker) ,它接受或产生新的路由信息,并发布给其他发言者。

(2)对等体。
相互交换BGP协议报文的BGP发言者之间互称为BGP对等体(BGPPeer)。

(3)IBGP对等体。
处于同一个AS (域)的BGP对等体称为IBGP对等体,从IBGP获得的路由不向它的IBGP对等体发布。图中RB、RD是IBGP对等体。

(4)EBGP对等体。
处于不同AS的BGP对等体称为EBGP对等体。通常情况下, EBGP对等体是物理上直连的BGP发言者,路由器从EBGP对等体获得的路由会向它所有的BGP对等体通告(包括EBGP和IBGP) 。

3.BGP协议报文

(1)打开(Open)分组: 打开分组用来与相邻的另一个BGP发言人建立关系。

(2)保活(Keepalive)分组: 保活分组用来确认打开报文,以及周期性地证实相邻边界路由器的存在。

(3)更新(Update)分组: 更新分组用来发送某一路由的信息,以及列出要撤销的多条路由。

(4)通知(Notification)分组: 通知分组的作用为发出错误通知。BGP发言者如果检测到对方发过来的消息有错误或者对方主动断开BGP连接,都会发出通知报文通知BGP邻居。

4.BGP的运行过程

当开始向相邻边界路由器进行协商时就要发送“打开分组”,如果相邻边界路由器接受,就响应一个“保活分组”。两个BGP发言人的相邻关系就建立了。为了维护这种关系,两个BGP发言人彼此要周期性地(一般是每隔30秒)交换“保活分组”。"更新分组”是BGP协议的核心, BGP发言人可以用“更新分组”撤销它以前曾经通知过的路由,也可以宣布增加新的路由。


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

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

相关文章

Android Lmkd 低内存终止守护程序

一、低内存终止守护程序 Android 低内存终止守护程序 (lmkd) 进程可监控运行中的 Android 系统的内存状态,并通过终止最不必要的进程来应对内存压力大的问题,使系统以可接受的性能水平运行。 所有应用进程都是从zygote孵化出来的,记录在AMS…

Android问题笔记 - 打开Android Studio先弹出项目选择框

专栏分享点击跳转>Unity3D特效百例点击跳转>案例项目实战源码点击跳转>游戏脚本-辅助自动化点击跳转>Android控件全解手册点击跳转>Scratch编程案例 👉关于作者 众所周知,人生是一个漫长的流程,不断克服困难,不断…

leetcode 427. Construct Quad Tree(构建四叉树)

刚看到题的时候是懵的,这也太长了。到底是要表达什么呢。 不妨把这个矩阵看成一个正方形的图片,想象你在处理图片,从整体逐步到局部。 刚开始看一整张图片,如果是全0或全1,这个就是叶子节点,怎么表达叶子节…

网络货运平台“降本提质引流增值”秘籍是什么?

2月24日,2022(第五届)中国网络货运平台年会在厦门举行,数据宝作为中物联副会长单位受邀参加峰会,数据宝轮值CEO肖斌发表题为“网络货运平台数字化创新应用实践分享”的主题分享。 据交通运输部统计,截止到2…

某建筑设计研究院“综合布线管理软件”应用实践

某建筑设计研究院有限公司(简称“某院”)隶属于国务院国资委直属的大型骨干科技型中央企业。“某院”前身为中央直属设计公司,创建于1952年。成立近70年来,始终秉承优良传统,致力于推进国内勘察设计产业的创新发展&…

CASENet中edge GT是如何产生的

1:首先下载cityscape数据集,包含两个大文件夹,具体的数据集介绍参考此链接。cityscape数据集解析 看一下gtFine子文件夹,另一个也是同理: 2:将下载好的数据集放到data_orig中,还有一个文件…

报错记录:element-admin框架打包后静态文件加载异常与登录异常解决方案

报错记录:element-admin框架打包后静态文件加载异常与登录异常解决方案 一、静态文件加载异常解决方案 二、登录异常解决方案 现象 element-admin如果用 electron 打包 是会有个问题: electron serve 运行没问题 electron build 打release 包 就会出错…

AST之path常用属性和方法总结笔记

文章目录1. path常用属性总结1.1 path.node1.2 path.scope1.3 path.parentPath1.4 path.parent1.5 path.container1.6 path.type1.7 path.key2. path常用方法总结2.1 path.toString2.2 path.replaceWith2.3 path.replaceWithMultiple2.4 path.remove2.5 path.insertBefore2.6 p…

TypeScript 常用知识

「 推荐一个学习 ts 基础的专栏,满满的干货:typeScript 」 1、为什么推荐使用 TypeScript 【】ts 是 js 的超集,包含 js 的所有元素 【】ts 通过对代码进行类型检查,可以帮助我们避免在编写 js 时经常遇到令人痛苦的错误 【】强…

第六节 方法

方法 方法是一种语法结构。 方法的作用: 1.提高代码的复用性 2.让程序逻辑更加清晰 方法定义的完整格式: 修饰符 返回值类型 方法名(形参列表){ 方法体的代码(需要执行的功能代码) return 返回值&#xff…

Unity性能优化: 性能优化之内存篇

前言 本文和传统的内存优化不一样,不是讲如何降低内存占用,而是讲编程开发中要注意的内存问题以及一些内存技术的演变与原理。 对惹,这里有一个游戏开发交流小组,希望大家可以点击进来一起交流一下开发经验呀 1: Application进程…

maven项目无法解析插件

发现问题使用IDEA创建Maven项目时,报错无法解析插件 org.apache.maven.plugins:maven-clean-plugin这里使用的是IDEA捆绑的Maven插件解决方案查看Maven配置打开用户设置文件settings.xml,在其中加入如果该路径下没有此文件,可以自己创建一个。…

软件分析笔记02---Intermediate Representation

整体contents compiler (source code ——> machine code) non-trivial非平凡的 经过 语义分析->语法分析->类型检查等各种trivial的分析(前端),生成中间代码IR->进行non-trivial的分析(及静…

Linux 基础介绍-基础命令

文章目录01 学习目标02 Linux/Unix 操作系统简介2.1 Linux 操作系统的目标2.2 Linux 操作系统的作用2.3 Unix 家族历史2.4 Linux 家族历史2.5 Linux 和Unix 的联系2.6 Linux 内核介绍2.7 Linux 发行版本2.8 Unix/Linux 开发应用领域介绍03 Linux 目录结构3.1 Win 和Linux 文件系…

C++之入门之引用,内联函数

一、引用 1、引用的概念 在C中,引用的本质其实就是给一个已经存在的变量”起别名“。也就是说,引用与它所引用的对象共用一块空间。(同一块空间的多个名字) 就比如说,李逵又叫黑旋风,而黑旋风就是指李逵…

线程安全实例分析

一、变量的线程安全分析 成员变量和静态变量是否线程安全? ● 如果它们没有共享,则线程安全 ● 如果它们被共享了,根据它们的状态是否能够改变,又分两种情况 —— 如果只有读操作,则线程安全 —— 如果有读写操作&am…

STM32学习笔记-USART串口通信+与野火STM32F407板载ESP8266进行通信

文章目录STM32USART介绍STM32USART框图第一部分第二部分第三部分发送器时序图接收器第四部分软件部分:STM32通过USART与板载ESP8266通讯实验板载WIFI模块电路图实现方式:第一步:配置USART1和USART3的GPIO及其中断第二步:通过中断服…

(2023版)零基础入门网络安全/Web安全,收藏这一篇就够了

由于我之前写了不少网络安全技术相关的文章和回答,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信问我: 我刚入门网络安全,该怎么学? 要学哪些东西? 有哪些方向? 怎么选&#x…

智慧渔业海洋鱼类捕捉系统

我国的水产捕捞业可分为海洋捕捞、远洋捕捞和淡水捕捞三类,其中淡水渔业是指在淡水水域进行捕捞、养殖和加工淡水水产品的社会生产领域。近年来,随着经济水平的提高和淡水渔业的快速发展,捕捞业规模不断壮大。尽管渔业已从单纯的捕捞发展为系…

卷麻了,00后测试用例写的比我还好,简直无地自容......

经常看到无论是刚入职场的新人,还是工作了一段时间的老人,都会对编写测试用例感到困扰?例如: 如何编写测试用例? 作为一个测试新人,刚开始接触测试,对于怎么写测试用例很是头疼,无法…