路由器动态路由配置

本博客为观看湖科大的教书匠系列计算机网络视频的学习笔记。

静态路由选择动态路由选择
采用人工配置的方式给路由器添加网络路由、默认路由和特定主机路由等路由条目。路由器通过路由选择协议自动获取路由信息。
静态路由选择简单、开销小,但不能及时适应网络状态(流量、拓扑等)的变化动态路由选择比较复杂、开销比较大,但能较好地适应网络状态的变化
静态路由选择一般只在小规模网络中采用。动态路由选择适用于大规模网络。

因特网所采取的路由选择协议具有以下三个主要特点:

自适应 : 因特网采用动态路由选择,能较好地适应网络状态的变化。
分布式 : 因特网中的各路由器通过相互间的信息交互,共同完成路由信息的获取和更新
分层次 : 将整个因特网划分为许多较小的自治系统(AutonomousSystem,AS)在自治系统内部和外部采用不同类别的路由选择协议,分别进行路由选择。
在这里插入图片描述
外部网关协议EGP和内部网关协议IGP只是路由选择协议的分类名称,而不是具体的路由选择协议。

RIP

RIP使用跳数(HopCount)作为度量(Metric)来衡量到达目的网络的距离。

  • RIP将路由器到直连网络的距离定义为1。
  • RIP将路由器到非直连网络的距离定义为所经过的路由器数加1。
  • RIP允许一条路径最多只能包含15个路由器,距离等于16时相当于不可达。因此RIP只适用于小型互联网。

在这里插入图片描述
tips:

  • RIP认为所通过路由器数量最少的路由就是好的路由。
  • 当到达同一目的网络有多条RIP距离相等的路由时,可以进行等价负载均衡,也就是将通信量均衡地分布到多条等价的路径上。
RIP characterdetail
和谁交换信息仅和相邻路由器交换信息。
交换什么信息路由器自己的路由表。即本路由器到所在自治系统AS中各网络的最短RIP距离,以及到各网络应经过的下一跳路由器。
何时交换信息周期性交换(例如,每隔约30秒) 为了加快RIP的收敛速度,当网络拓扑发生变化,路由器要及时向所有相邻路由时器通告拓扑变化后的路由信息,这称为触发更新。
超时删除180秒(默认)没有收到某条路由条目的更新报文,则把该路由条目标记为无效(即把RIPI还没有收到该路由条目的更新报文,则将该置为16,表示不可达),若再过一段时间(如120秒)路由条目从路由表中删除。

在这里插入图片描述

D在接到路由器C的路由表后,会以路由器C到各个目的网络的距离+1的长度和自己到各个路由器的距离长度比较,如果有更短的路径选择,则会更新自己的路由表。(上图中“D修改路由器C的路由表”应为老师笔误应修改为“路由器D参考C的信息修改自己的路由表”)

RIP存在的问题:
坏消息传播得慢
在这里插入图片描述
“坏消息传播得慢”的问题又被称为路由环路或RIP距离无穷计数问题。这是距离向量算法的一个固有问题。可以采取以下多种措施减少出现该问题的概率或减小该问题带来的危害:

  • 限制最大RIP距离为15(16表示不可达)
  • 当路由表发生变化时就立即发送路由更新报文(即“触发更新”),而不仅是周期性发送。
  • 让路由器记录收到某个特定路由信息的接口,而不让同一路由信息再通过此接口向反方向传送(即“水平分割”)。

使用上述措施仍无法彻底解决问题。因为在距离向量算法中,每个路由器都缺少到目的网络整个路径的完整信息,无法判断所选的路由是否出现了环路。
tip:
RIP相关报文使用运输层的UDP协议进行封装,使用的UDP端口号为520,RIP的核心功能是路由选择,属于TCP/IP体系结构的网际层

RIP的优缺点:

优点缺点
实现简单,路由器开销小。RIP限制了最大RIP距离为15,这就限制了使用RIP的自治系统AS的规模。
如果一个路由器发现了RIP距离更短的路由,那么这种更新信息就传播得很快,即“好消息传播得快相邻路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也随之增大。
坏消息传播得慢”,使更新过程的收敛时间过长。因此,对于规模较大的自治系统AS,应当使用OSPF协议。

开放最短路径优先OSPF

在这里插入图片描述
链路状态(Link State,LS)是指本路由器都和哪些路由器相邻,以及相应链路的“代价(cost)
代价”用来表示费用、距离、时延和带宽等,这些都由网络管理人员来决定。

OSPF相邻路由器之间通过交互问候(Hello)分组来建立和维护邻居关系。

  • 问候(Helo)分组封装在IP数据报中,发往组播地址224.0.0.5。IP数据报首部中的协议号字段的取值为89,表明IP数据报的数据载荷为OSPF分组。

在这里插入图片描述

OSPF分组直接使用网际层的IP数据报进行封装,而不像RIP报文需要使用运输层用户数据报协议UDP封装。从数据包按网络体系结构逐层封装的角度看,0SPF属于网际层协议,而RIP属于应用层协议(但其核心功能是路由选择属于网际层)

  • 问候(Hello)分组的发送周期为10秒,
  • 若40秒未收到来自邻居路由器的问候(Hello)分组则认为邻居路由器不可达。
  • 每个路由器都会建立一张邻居表。

在这里插入图片描述
链路状态通告LSA被封装在链路状态更新(Link State Update,LSU)分组中,采用可靠的洪泛法(Flooding)进行发送。

  • 洪泛法的要点是路由器向自己所有的邻居路由器发送链路状态更新分组,收到该分组的各路由器又将该分组转发给自己所有的邻居路由器(但其上游路由器除外),以此类推。
  • 可靠是指收到链路状态更新分组后要发送确认,收到重复的更新分组无需再次转发,但要发送一次确认。

链路状态通告LSA包含直连网络的链路状态信息和邻居路由器的链路状态信息。

使用0SPF的每一个路由器都有一个链路状态数据库(Link State Database,LSDB),用于存储链路状态通告LSA
通过各路由器洪泛发送封装有各自链路状态通告LSA的链路状态更新分组LSU,各路由器的链路状态数据库LSDB最终将达到一致。
在这里插入图片描述
上图中
1.未给出各路由器收到LSU后发送确认的情况
2.未给出R2转发LSU的情况。
在这里插入图片描述

OSPF的五种分组类型功能
问候(Hello)用来发现和维护邻居路由器的可达性。
数据库描述(Database Description)用来向邻居路由器给出自己的链路状态数据库中的所有链路状态项目的摘要信息。
链路状态请求(Link State Request)用来向邻居路由器请求发送某些链路状态项目的详细信息。
链路状态更新(Link State Update)路由器使用链路状态更新分组将其链路状态信息进行洪泛发送,即用洪泛法对整个系统更新链路状态。
链路状态确认(Link State Acknowledgement)对链路状态更新分组的确认分组。

在这里插入图片描述
多点接入网路的OSPF路由器
为了减少所发送问候分组和链路状态更新分组的数量,OSPF采用以下措施:

  • 选举指定路由器(Designated Router,DR)和备用的指定路由器(Backup DesignatedRouter, BDR)
  • 所有的非DR/BDR只与DR/BDR建立邻居关系

在这里插入图片描述
为了使0SPF协议能够用于规模很大的网络,0SPF把一个自治系统AS再划分为若干个更小的范围,称为区域(area)。划分区域的好处就是把利用洪泛法交换链路状态信息的范围局限于每一个区域,而不是整个自治系统AS,这样就减少了整个网络上的通信量。
在这里插入图片描述
在上图中,主干路由器:R3,R4,R5,R6,R7
自治系统边界路由器:R6
区域内路由器:区域1内的R1和R2,区域2内的R8,区域3内的R9

在这里插入图片描述
采用划分区域的方法,虽然使交换信息的种类增多了,同时也使0SPF协议更加复杂了,但这样做能使每一个区域内部交换路由信息的通信量大大减小,因而使OSPF协议能够用于规模更大的自治系统AS。

例题:
OSPF是以代价最小为目的,RIP是以经过路由器的数量最小为目的。
在这里插入图片描述

边界网关协议BGP

  • 边界网关协议(Border Gateway Protocol,BGP)属于外部网关协议EGP这个类别,用于自治系统AS之间的路由选择协议。
  • 由于在不同AS内度量路由的“代价”(距离、带宽、费用等)可能不同,因此对于AS之间的路由选择使用统一的“代价”作为度量来寻找最佳路由是不行的。

在这里插入图片描述
AS之间的路由选择还必须考虑相关策略(政治、经济、安全等)
在这里插入图片描述
BGP策略中不一定能找到最好路径,只是尽量找到最优路径。

BGP的相关概念:

  • 在配置BGP时,每个AS的管理员要选择至少一个路由器作为该AS的“BGP发言人
  • 一般来说,两个BGP发言人都是通过一个共享网络连接在一起的,而BGP发言人往往就是BGP边界路由器:
  • 使用TCP连接交换路由信息的两个BGP发言人,彼此称为对方的邻站(neighbor)或对等站(peer)
  • BGP发言人除了运行BGP协议外,还必须运行自己所在AS所使用的内部网关协议IGP,例如RIP或OSPF
  • BGP发言人交换网络可达性的信息,也就是要到达某个网络所要经过的一系列自治系统
  • 当BGP发言人相互交换了网络可达性的信息后,各BGP发言人就根据所采用的策略,从收到的路由信息中找出到达各自治系统的较好的路由,也就是构造出树形结构且不存在环路的自治系统连通图

在这里插入图片描述
在这里插入图片描述
BGP-4是目前使用得最多的版本,在[RFC4271]中规定了BGP-4的四种报文:

报文名称作用
打开 OPEN用来与相邻的另一个BGP发言人建立关系,使通信初始化。
保活 KEEPALIVE用来周期性地证实邻站的连通性。
更新 UPDATE用来通告某一条路由的信息,以及列出要撤销的多条路由。
通知 NOTIFICATION用来发送检测到的差错。

R1与R2之间是通过BGP路由协议交换路由信息的,该路由协议的报文被封装在传输层的TCP协议中,端口号为179,为建立连接的可靠传输。在这里插入图片描述

网关协议封装在哪个协议中进行传输
RIPUDP
OSPFIP
BGPTCP

路由器的基本工作原理

路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是转发分组。
在这里插入图片描述

路由器是一种具有多个输入端口和输出端口的专用计算机,其任务是路由选择和转发分组。

路由选择:是指路由器根据一定的算法从多条可能的路径中选择最佳路径的过程。路由器维护一个路由表,其中记录了到达不同目的网络的最佳路径及其相关信息(如下一跳地址、跳数等)。
路由选择算法,如RIP、OSPF、BGP等,负责更新路由表,确保路径的最优性和网络的稳定性。路由选择的目标是确保数据包沿着最佳路径高效、可靠地传输。

分组转发:是指路由器根据路由表中的信息,将接收到的数据包转发到正确的出口接口的过程。当数据包到达路由器时,路由器会检查数据包的目的IP地址,并在路由表中查找匹配的条目确定下一跳地址。然后,路由器将数据包转发到相应的出口接口,沿着选择的路径继续传输。在这里插入图片描述
交换结构的速率对于路由器的性能是至关重要的。因此,人们对交换结构进行了大量研究,以提高路由器的转发速率;
实现交换结构的三种基本方式是:通过存储器通过总线以及通过互连网络。这三种交换结构可实现的路由器转发速率依次提高。

网际控制报文

  • 为了更有效地转发IP数据报以及提高IP数据报交付成功的机会,TCP/IP体系结构的网际层使用了网际控制报文协议(Internet Control Message Protocol,ICMP)[RFC 792]。
  • 主机或路由器使用ICMP来发送差错报告报文和询问报文。
  • ICMP报文被封装在IP数据报中发送。

在这里插入图片描述

ICMP差错报告报文作用
终点不可达当路由器找不到匹配的路由条目,无法转发该IP数据报时发送
源点抑制当路由器或主机由于拥塞而丢奔IP数据报时发送,使源点知道应当把IP数据报的发送速率放慢。
时间超过(超时)当路由器收到一个目的IP地址不是自己的IP数据报时,会将其首部中生存时间TTL字段的值减1。若结果不为0,则路由器将该数据报转发出去;若结果为0,路由器丢弃该数据报,还要向发送该IP数据报的源点发送时间超时报文。另外,当终点在预先规定的时间内未能收到一个数据报的全部数据报分片时,就把已收到的数据报片都丢弃,也会向源点发送时间超时报文。
参数问题当路由器或目的主机收到IP数据报后,根据其首部中的检验和字段的值发现首部在传送过程中出现了误码,就丢弃该数据报,并向发送该数据报的源点发送参数问题报文
改变路由(重定向)路由器把改变路由报文发送给主机,让主机知道下次应将IP数据报发送给另外的路由器,这样可以通过更好的路由到达目的主机

以下情况不应发送ICMP差错报告报文:

  • 对ICMP差错报告报文不再发送ICMP差错报告报文.
  • 对第一个分片的IP数据报片的所有后续数据报片都不发送ICMP差错报告报文。
  • 对具有多播地址的IP数据报都不发送ICMP差错报告报文。
  • 对具有特殊地址(例如127.0.0.0或0.0.0.0)的IP数据报不发送ICMP差错报告报文.

ICMP询问报文是网络故障排除和性能测试的重要工具。它们可以帮助网络管理员诊断网络问题,测量网络延迟,以及同步网络设备的时间。主要的ICMP询问报文包括:

  • 回送请求和回答:
    这是最常见的ICMP询问报文,通常由ping命令使用。这种报文的主要用途是检测两个网络设备之间的可达性和测量往返时间(RTT)。
    在这里插入图片描述

  • 时间戳请求和时间戳应答:
    用于同步网络中不同设备的时间或测量网络延迟。
    时间戳请求报文包含发送时间戳,接收方在回复时会附上接收时间戳和发送时间戳。这可以用于计算网络延迟和校准时钟偏差。

  • 地址掩码请求和地址掩码应答:
    用于获取网络上设备的子网掩码。地址掩码请求报文由设备发送,以请求网络上的其他设备提供其子网掩码。接收方收到请求后,会发送一个地址掩码应答报文,包含其子网掩码。

  • 跟踪路由:
    用于探测IP数据报从源主机到达目的主机要经过哪些路由器。
    在这里插入图片描述
    traceroute使用的ICMP报文类型有回送请求和回答报文以及差错报告报文。

在这里插入图片描述

在这里插入图片描述

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

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

相关文章

[VulnHub靶机渗透] Nullbyte

🍬 博主介绍👨‍🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~ ✨主攻领域:【渗透领域】【应急响应】 【Java、PHP】 【VulnHub靶场复现】【面试分析】 🎉点赞➕评论➕收…

【MATLAB第98期】基于MATLAB的MonteCarlo蒙特卡罗结合kriging克里金代理模型的全局敏感性分析模型(有目标函数)

【MATLAB第98期】基于MATLAB的Monte Carlo蒙特卡罗结合kriging克里金代理模型的全局敏感性分析模型(有目标函数)【更新中】 PS:因内容涉及较多,所以一时半会更新不完 后期会将相关原理,以及多种功能详细介绍。 麻烦点赞收藏&#…

多核多cluster多系统之间缓存一致性概述

目录 1.思考和质疑2.怎样去维护多核多系统缓存的一致性2.1多核缓存一致性2.2多Master之间的缓存一致性2.3dynamIQ架构同一个core中的L1和L2 cache 3.MESI协议的介绍4.ACE维护的缓存一致性5.软件定义的缓存和替换策略6.动图示例 本文转自 周贺贺,baron,代…

02.JavaScript的运算符和语句

JavaScriptt的运算符和语句 一.运算符 算术运算符 数字是用来计算的,比如:乘法 * 、除法 / 、加法 、减法 - 等等,所以经常和算术运算符一起。 算术运算符:也叫数学运算符,主要包括加、减、乘、除、取余&#xff…

搜索组件的编写与数据的联动

src\components\SearchInput\index.vue 搜索组件编写 <template><div class"search-wrap"><input type"text":placeholder"placeholder":maxlength"maxlength":value"inputValue"input"searchData($ev…

动态代理详解(原理+代码+代码解析)

动态代理 1.什么是动态代理&#xff1f; 动态代理是一种在运行的时候动态的生成代理对象的技术。它在不改变原始类的情况下&#xff0c;对原始类的方法进行拦截或者增强。 2.动态代理可以实现的功能&#xff1f; 使用动态代理可以实现如下常用功能&#xff1a; 1.AOP&#x…

FPGA-AXI4接口协议概述

假设我们要传一帧1080P的图片到显示屏显示&#xff0c;那么需要多大的储存空间呢&#xff1f; 一帧1080P的RGB565图像数据需要1920*1080*1633.1776Mb 存储空间 下图是ZYNQ-7000系列中Block RAM的大小&#xff1a; 可以看到最大存储空间的BRAM都不能存储一帧图片&#xff0c;那…

深入理解Vue.js中的nextTick:实现异步更新的奥秘

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

javascript实现解决浮点数加减乘除运算误差丢失精度问题【收藏点赞】

相信程序都会遇到这样的问题&#xff0c;有时需要在js上做运算合计等浮点数加减乘除&#xff0c;但会有些浮点数会有误差问题。下面用js来解决浮点数加减乘除运算误差丢失精度这个请 【收藏点赞】。 是程序都会在浮点数加减乘除上有误差问题&#xff0c;这是计算机二进制生成的…

GPU:使用阿里云服务器,免费部署一个开源大模型

前面提到CPU版本如何安装和部署ChatGLM&#xff0c;虽然能部署&#xff0c;但是速度和GPU比起来确实一言难尽。 然后找阿里云白嫖了一个服务器&#xff08;省点用的话&#xff0c;不用的时候关机&#xff0c;可以免费用两个多月没问题&#xff09;&#xff0c;只要没有申请过 …

计算机网络—eNSP搭建基础 IP网络

目录 1.下载eNSP 2.启动eNSP 3.建立拓扑 4.建立一条物理连接 5.进入终端系统配置界面 6.配置终端系统 7.启动终端系统设备 8.捕获接口报文 9.生成接口流量 10.观察捕获的报文 1.下载eNSP 网上有许多下载eNSP的方式&#xff0c;记得还要下其它三个Virtual Box、Winpa…

【STA】SRAM / DDR SDRAM 接口时序约束学习记录

1. SRAM接口 相比于DDR SDRAM&#xff0c;SRAM接口数据与控制信号共享同一时钟。在用户逻辑&#xff08;这里记作DUA&#xff08;Design Under Analysis&#xff09;&#xff09;将数据写到SRAM中去的写周期中&#xff0c;数据和地址从DUA传送到SRAM中&#xff0c;并都在有效时…

安卓studio安装

安卓studio安装 2024.3.11官网的版本&#xff08;有些翻墙步骤下载东西也解决了&#xff09; 这次写的略有草率&#xff0c;后面会更新布局的&#xff0c;因为截图量太大了&#xff0c;有需要的小伙伴可以试着接受一下哈哈哈哈 !(https://gitee.com/jiuzheyangbawjf/img/raw/ma…

mybatis如何打印出完整sql语句

分两步: 1. 在application.properties配置中添加配置项: mybatis-plus.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl logging.level.mapper文件的包路径DEBUG (示例: logging.level.com.test.biztest.service.dalDEBUG, com.test.biztest.service.d…

基于SpringBoot的农产品特色供销系统(蔬菜商城)

基于SpringBoot的农产品特色供销系统&#xff08;蔬菜商城&#xff09; 系统介绍 该系统使用Java、MySQL、Redis、Spring Boot和HTML等技术作为系统的技术支撑&#xff0c;实现了以下功能模块&#xff1a; &#xff08;1&#xff09;后台管理模块&#xff0c;包括权限、日志、…

MySQL数据库在Windows和Linux中由于大小写默认规则不同,出现大小写问题如何解决?

Windows和Linux差异&#xff1a;在Windows上&#xff0c;lower_case_table_names默认为1&#xff0c;而在Linux上&#xff0c;默认值通常为0。因此&#xff0c;在Linux上更改这个设置更常见&#xff0c;以确保与Windows环境的兼容性或实现特定的大小写敏感性需求。 操作系统的大…

[Flutter]自定义等待转圈和Toast提示

1.自定义样式 2.自定义LoadingView import package:flutter/material.dart;enum LoadingStyle {onlyIndicator, // 仅一个转圈等待roundedRectangle, // 添加一个圆角矩形当背景maskingOperation, // 添加一个背景蒙层&#xff0c; 阻止用户操作 }class LoadingView {static f…

【数据结构与算法】贪心算法题解(一)

这里写目录标题 一、455. 分发饼干二、56. 合并区间三、53. 最大子数组和 一、455. 分发饼干 简单 假设你是一位很棒的家长&#xff0c;想要给你的孩子们一些小饼干。但是&#xff0c;每个孩子最多只能给一块饼干。 对每个孩子 i&#xff0c;都有一个胃口值 g[i]&#xff0c;这…

Visual Studio 2019重装vs2019打不开.netcore项目

无法打开项目文件。 .NET SDK 的版本 7.0.306 至少需要 MSBuild 的 17.4.0 版本。当前可用的 MSBuild 版本为 16.11.2.50704。请将在 global.json 中指定的 .NET SDK 更改为需要当前可用的 MSBuild 版本的旧版本。 无法打开项目文件。 .NET SDK 的版本 7.0.306 至少需要 MSBui…

【JAVA】Collections.sort()方法详解

一、简介 Collections.sort() 是 Java 集合框架&#xff08;Java Collections Framework&#xff09;中的一个静态方法&#xff0c;用于对列表&#xff08;List&#xff09;中的元素进行排序。此方法利用了 Java 的泛型机制&#xff0c;可以很方便地对各种类型的列表进行排序。…