当前位置: 首页 > news >正文

计算机网络——路由

文章目录

    • 1. 前言:
    • 2. 路由基础
      • 2.1. 路由的相关概念
      • 2.2. 路由的特征
      • 2.3. 路由的过程
    • 3 路由协议
      • 3.1. 静态路由:
      • 3.2. 动态路由:
        • 3.2.1. 距离矢量协议
        • 3.2.2. OSPF协议:
          • 3.2.2.1.OSPF概述
            • OSPF的工作原理
            • 路由计算
            • 功能特性
          • 3.2.2.2.OSPF报文
      • OSPF 报文类型
          • 3.2.2.2.OSPF邻接关系建立
          • 3.2.2.2.OSPF区域概念

1. 前言:

提起路由又和网络相关,可能很多人第一反应就是家里的路由器。家里的路由器实际上是简化了部分企业路由器功能的wiif信号发射器。

在这里插入图片描述
路由器确实有路由功能不假,但是并非这篇文章的重点,❓重点是路由器中路由是什么,为什么要有路由,路由器是如何实现的?

2. 路由基础

2.1. 路由的相关概念

由于可能有的的网络环境比较复杂,可能有多个网段,vlan,或者多个网关,那么,vlan要不要通信,网段之间要不要通信,或者,什么时候,哪个网段走哪个网关都是一个需要考虑的问题,对不同的数据流设置一个走的路径就是路由需要实现的功能。

在这里插入图片描述

2.2. 路由的特征

  1. 路由是指导报文转发的路径信息,通过路由可以确认转发IP报文的路径。
  2. 路由设备是依据路由转发报文到目的网段的网络设备,最常见的路由设备:路由器。
  3. 路由设备维护着一张路由表,保存着路由信息。

2.3. 路由的过程

  1. 接收数据包: 路由器接收来自网络的数据包,这些数据包通常包含目标设备的IP地址、源设备的IP地址以及其他与网络通信相关的信息。

  2. 查找路由表: 路由器内部维护一个路由表,其中包含有关网络的信息,包括与其他网络相连的接口以及如何将数据包发送到目标网络的指令。路由器使用目标IP地址来查找路由表,以确定数据包应该被发送到哪个接口。

  3. 确定下一跳: 路由表中的信息帮助路由器确定数据包的下一跳,即下一个网络节点或路由器,以便将数据包传送到目标网络。

  4. 转发数据包: 路由器将数据包发送到正确的接口,进而将数据包传送到下一跳。这可能涉及到使用各种网络协议(例如IP、IPv6)来确保数据包按照正确的方式转发。
    在这里插入图片描述

3 路由协议

3.1. 静态路由:

经过上面的简单了解,我们知道了路由中存在路由表,那么静态路由就是给了人为的高度自主权,
在这里插入图片描述

我们通过静态路由可以设置那些网段,转发到哪里

简单实验(pc1,pc2,ip分别为10.0.0.1,10.0.1.1)
要用三层口哦(GigabitEthernet)
在这里插入图片描述
在这里插入图片描述
由于跨网段,路由器在不进行任何配置的情况下,应该是ping不通的。
在这里插入图片描述
😄 如果我们配置一个静态路由就可以简单解决跨网段的问题了。

  1. 进入系统视图
system view

在这里插入图片描述

  1. 设置路由器端口ip
interface GigabitEthernet 0/0/0
ip address 10.0.0.254 255.255.255.0quit
interface GigabitEthernet 0/0/1
ip address 10.0.1.254 255.255.255.0

在这里插入图片描述

  1. 添加默认路由
route-static 10.0.1.1 32 10.0.1.254
route-static 10.0.0.1 32 10.0.0.254
## ip address 目的地址 掩码  下一跳

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2. 动态路由:

在这里插入图片描述

3.2.1. 距离矢量协议
  • 运行距离矢量路由协议的路由器周期性的泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中。
  • 对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的方向在哪里,距离有多远。这即是距离矢量算法的本质。

在这里插入图片描述

3.2.2. OSPF协议:
3.2.2.1.OSPF概述

OSPF是典型的链路状态路由协议,是目前业内使用非常广泛的IGP协议之一。目前,针对IPv4协议使用的是OSPF Version 2(RFC2328),而针对IPv6协议使用OSPF Version 3(RFC2740)。本章后续提到的OSPF均指的是OSPF Version 2。

OSPF的工作原理

运行OSPF路由器之间交互的是LS(Link
State,链路状态)信息,而不是直接交互路由。LS信息是OSPF能够正常进行拓扑及路由计算的关键信息。OSPF路由器将网络中的LS信息收集起来,存储在LSDB中。路由器都清楚区域内的网络拓扑结构,这有助于路由器计算无环路径。

路由计算

每台OSPF路由器都采用SPF算法计算达到目的地的最短路径。路由器依据这些路径形成路由加载到路由表中。

功能特性
  • OSPF支持VLSM(Variable Length Subnet Mask,可变长子网掩码)。
  • 支持手工路由汇总。
  • 多区域的设计使得OSPF能够支持更大规模的网络。
3.2.2.2.OSPF报文

在这里插入图片描述

OSPF 报文类型

  1. Hello 报文
  • 目的: 发现相邻的OSPF路由器。
  • 包含信息: OSPF版本、区域ID、路由器ID等。
  • 用途: 确定邻居关系,协商OSPF参数。
  1. DBD(Database Description)报文
  • 目的: 交换LSDB(Link State Database)的摘要信息。
  • 包含信息: LSDB摘要,用于比较两台路由器的LSDB。
  • 用途: 在建立邻居关系后,用于同步链路状态数据库。
  1. LS Request 报文
  • 目的: 请求邻居发送缺失的LSA(Link State Advertisement)
  • 包含信息: 请求缺失的LSA的ID。
  • 用途: 用于同步LSDB,确保每台路由器都有完整的链路状态数据库。
  1. LS Update 报文
  • 目的: 向邻居发送新的或更新的LSA。
  • 包含信息: 包含新增或更新的LSA。
  • 用途: 用于更新链路状态数据库。
  1. LS Acknowledgment 报文
  • 目的: 确认接收到的LS Update 报文。
  • 包含信息: 确认收到的LSA的ID。
  • 用途: 确保LSA的可靠传输。
3.2.2.2.OSPF邻接关系建立
  1. Hello 报文发送
    路由器通过发送Hello报文来广播自己的存在。
    报文包含路由器ID、OSPF区域ID、邻居路由器的IP地址等信息。
    Hello 报文接收:

  2. 相邻的路由器接收Hello报文,并检查其中的参数。
    如果参数匹配,它们将进入邻居候选状态。

  3. DR/BDR 选举
    如果OSPF网络是多播网络(如Ethernet),路由器将参与DR(Designated Router)和BDR(Backup Designated Router)的选举。
    DR负责与其他区域的路由器建立邻居关系。

  4. 邻居状态确认:
    路由器收到Hello报文后,会检查邻居的路由器ID和OSPF区域ID。
    如果匹配,则路由器将进入邻居状态。

  5. LSDB 同步:
    通过DBD(Database Description)报文,路由器交换其链路状态数据库(LSDB)的摘要信息。
    如果两个路由器的LSDB相同,那么它们就具有相同的视图,进入“Exchange”状态。

  6. LSA 请求和更新
    如果有不同的LSA(Link State Advertisement),路由器将使用LS Request和LS Update报文来请求和更新缺失的LSA。

  7. LSA Acknowledgment:
    收到LS Update报文后,路由器发送LS Acknowledgment报文进行确认。
    这确保了LSA的可靠传输。

  8. 最终邻居状态:
    当LSDB同步完成并且邻居确认了所有LSA的更新后,路由器进入“Full”状态。
    此时,路由器之间建立了完全邻居关系,可以开始交换路由信息并计算最短路径。

状态描述
Down初始状态,表示路由器与邻居之间尚未建立连接。
Init路由器发送了Hello报文,但尚未收到邻居的Hello报文。
2-Way路由器之间建立了双向通信,已经收到了邻居的Hello报文。
ExStart用于Master/Slave选举。在这个状态,路由器确定哪一个将作为Master,用于Master/Slave状态机的同步。
Exchange路由器在这个状态下交换数据库描述(DBD)报文,以了解彼此的链路状态数据库(LSDB)的摘要信息。
Loading在这个状态下,路由器交换Link State Request(LSR)和Link State Update(LSU)报文,以请求和传输LSA(Link State Advertisement)。
Full路由器在这个状态下,与邻居建立了完全邻居关系,LSDB已经同步完成,可以进行最短路径计算,并开始交换路由信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.2.2.2.OSPF区域概念
  • OSPF域(Domain):一系列使用相同策略的连续OSPF网络设备所构成的网络。
  • OSPF路由器在同一个区域(Area)内网络中泛洪LSA。为了确保每台路由器都拥有对网络拓扑的一致认知,LSDB需要在区域内进行同步。
  • 如果OSPF域仅有一个区域,随着网络规模越来越大,OSPF路由器的数量越来越多,这将导致诸多问题:
    • LSDB越来越庞大,同时导致OSPF路由表规模增加。路由器资源消耗多,设备性能下降,影响数据转发。
    • 基于庞大的LSDB进行路由计算变得困难。
      当网络拓扑变更时,LSA全域泛洪和全网SPF重计算带来巨大负担。

在这里插入图片描述
在这里插入图片描述

相关文章:

计算机网络——路由

文章目录 1. 前言:2. 路由基础2.1. 路由的相关概念2.2. 路由的特征2.3. 路由的过程 3 路由协议3.1. 静态路由:3.2. 动态路由:3.2.1. 距离矢量协议3.2.2. OSPF协议:3.2.2.1.OSPF概述OSPF的工作原理路由计算功能特性 3.2.2.2.OSPF报…...

python+requests+pytest+allure自动化框架

1.核心库 requests request请求 openpyxl excel文件操作 loggin 日志 smtplib 发送邮件 configparser unittest.mock mock服务 2.目录结构 base utils testDatas conf testCases testReport logs 其他 2.1base base_path.py 存放绝对路径,dos命令或Jenkins执行…...

css3

基础 <!DOCTYPE html> <html><head><meta charset"utf-8"><title>style</title><!-- link&#xff08;外部样式&#xff09;和style&#xff08;内部样式&#xff09;优先级相同&#xff0c;重复写会覆盖 --><link re…...

超级应用平台(HAP)起航

各位明道云用户和伙伴&#xff0c; 今天&#xff0c;我们正式发布明道云10.0版本。从这个版本开始&#xff0c;我们将产品名称正式命名为超级应用平台&#xff08;Hyper Application Platform, 简称HAP&#xff09;。我们用“超级”二字表达产品在综合能力方面的突破&#xff…...

cocos2dx ​​Animate3D(二)

Twirl 扭曲旋转特效 // 持续时间(时间过后不会回到原来的样子) // 整个屏幕被分成几行几列 // 扭曲中心位置 // 扭曲的数量 // 振幅 static Twirl* create(float duration, const Size& gridSize, const Vec2& position, unsigned int twirls, float amplitude)…...

基于java技术的社区交易二手平台

基于java技术的社区交易二手平台的设计与实现 &#xff08;一&#xff09;开发背景 随着因特网的日益普及与发展&#xff0c;更多的人们开始通过因特网来寻求便利。但是&#xff0c;许多人都觉得网上商店里的东西不贵。所以&#xff0c;有些顾客宁愿去那些用二次定价建立起来的…...

(Matalb回归预测)GA-BP遗传算法优化BP神经网络的多维回归预测

目录 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 亮点与优势&#xff1a; 二、实际运行效果&#xff1a; 三、部分代码&#xff1a; 四、分享本文全部代码数据说明手册&#xff1a; 一、程序及算法内容介绍&#xff1a; 基本内容&#xff1a; 本代码基于M…...

【Docker】从零开始:10.registry搭建私有仓库

【Docker】从零开始&#xff1a;10.registry搭建私有仓库 为什么要使用私有仓库关于Docker Registry基于容器搭建registry私有仓库1.下载镜像2. 启动镜像3.修改系统配置文件4.下载ubuntu镜像&#xff0c;修改名称3.提交镜像4.查看镜像 本地搭建私有仓库(目前编译报错找不到包&a…...

树莓派上使用Nginx通过内网穿透实现无公网IP访问内网本地站点

前言 安装 Nginx&#xff08;发音为“engine-x”&#xff09;可以将您的树莓派变成一个强大的 Web 服务器&#xff0c;可以用于托管网站或 Web 应用程序。相比其他 Web 服务器&#xff0c;Nginx 的内存占用率非常低&#xff0c;可以在树莓派等资源受限的设备上运行。同时结合c…...

长征故事vr互动教育体验系统让师生感同身受

红色文化是贯穿于新民主主义革命、社会主义建设的各个时期&#xff0c;具有深厚的历史价值和文化内涵的先进文化&#xff0c;是高效、优质的教育资源。思政课vr红色数字展馆充分开发和大力弘扬红色文化资源&#xff0c;发挥其独特资源优势和教育功能&#xff0c;应用到教学中&a…...

汽车级芯片NCV7518MWATXG 可编程六沟道低压侧 MOSFET预驱动器 特点、参数及应用

NCV7518MWATXG 可编程六沟道低压侧 MOSFET 预驱动器属于 FLEXMOS™ 汽车级产品&#xff0c;用于驱动逻辑电平 MOSFET。该产品可通过串行 SPI 和并行输入组合控制。该器件提供 3.3 V/5 V 兼容输入&#xff0c;并且串行输出驱动器可以采用 3.3 V 或 5 V 供电。内部通电重置提供受…...

【分布式】小白看Ring算法 - 03

相关系列 【分布式】NCCL部署与测试 - 01 【分布式】入门级NCCL多机并行实践 - 02 【分布式】小白看Ring算法 - 03 【分布式】大模型分布式训练入门与实践 - 04 概述 NCCL&#xff08;NVIDIA Collective Communications Library&#xff09;是由NVIDIA开发的一种用于多GPU间…...

使用Git bash切换Gitee、GitHub多个Git账号

Git是分布式代码管理工具&#xff0c;使用命令行的方式提交commit、revert回滚代码。这里介绍使用Git bash软件来切换Gitee、GitHub账号。     假设在gitee.com上的邮箱是alicefoxmail.com 、用户名为alice&#xff1b;在github上的邮箱是bobfoxmail.com、用户名为bob。 账号…...

【RtpRtcp】1: webrtc m79:audio的ChannelReceive 创建并使用

m79中,RtpRtcp::Create 的调用很少 不知道谁负责创建ChannelReceiveclass ChannelReceive : public ChannelReceiveInterface,public MediaTransportAudioSinkInterface {接收编码后的音频帧:接收rtcp包:...

Ubuntu系统安装docker

1.检查是否安装老版本 检查卸载老版本docker ubuntu下自带了docker的库&#xff0c;不需要添加新的源。 但是ubuntu自带的docker版本太低&#xff0c;需要先卸载旧的再安装新的。 apt-get remove docker docker-engine docker.io containerd runc 如果不能正常卸载&#x…...

如何访问linux上的web服务

1.获取服务运行端口 例如8080 2.如果时vmware 需要先配置转发端口和主机ip 主机ip需要未使用的 例如&#xff1a; 3.查看虚拟机防火墙设置 centos8 为例 &#xff1a; firewall-cmd --zonepublic --list-ports 查看放通端口 如果没有放通 firewall-cmd --zonepublic --add-p…...

Vatee万腾的数字化掌舵:Vatee科技解决方案的全面引领

随着数字化时代的到来&#xff0c;Vatee万腾凭借其卓越的科技实力和全面的解决方案&#xff0c;成功地在数字化探索的航程中掌舵引领。 首先&#xff0c;Vatee万腾以其强大的数字化科技实力成为行业的引领者。vatee万腾不仅在人工智能、大数据分析、云计算等前沿领域取得了显著…...

YOLOv5 第Y6周 模型改进

&#x1f368; 本文为[&#x1f517;365天深度学习训练营学习记录博客 &#x1f366; 参考文章&#xff1a;365天深度学习训练营 &#x1f356; 原作者&#xff1a;[K同学啊] &#x1f680; 文章来源&#xff1a;[K同学的学习圈子](https://www.yuque.com/mingtian-fkmxf/zxwb4…...

Unity Android FireBase bugly报错查询

报错如下图&#xff0c;注意&#xff0c;标红的三处 使用的il2cpp和架构是arm64-v8a 那我们就可以根据这些去找对应的符号表&#xff0c;在unity安装目录下 Unity2020.3.33f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols\arm64-v8a 找到l…...

React中如何解决点击<Tree>节点前面三角区域不触发onClick事件

React中如何解决点击节点前面三角区域不触发onClick事件&#xff0c;如何区别‘左边’和‘右边’区域点击逻辑呢&#xff1f;&#xff08;Tree引用开源组件TDesign&#xff09; 只需要在onClick里面加限制一下就行&#xff1a; <TreeexpandMutexactivabletransitiondata{t…...

JavaSec-RCE

简介 RCE(Remote Code Execution)&#xff0c;可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景&#xff1a;Groovy代码注入 Groovy是一种基于JVM的动态语言&#xff0c;语法简洁&#xff0c;支持闭包、动态类型和Java互操作性&#xff0c…...

屋顶变身“发电站” ,中天合创屋面分布式光伏发电项目顺利并网!

5月28日&#xff0c;中天合创屋面分布式光伏发电项目顺利并网发电&#xff0c;该项目位于内蒙古自治区鄂尔多斯市乌审旗&#xff0c;项目利用中天合创聚乙烯、聚丙烯仓库屋面作为场地建设光伏电站&#xff0c;总装机容量为9.96MWp。 项目投运后&#xff0c;每年可节约标煤3670…...

SpringCloudGateway 自定义局部过滤器

场景&#xff1a; 将所有请求转化为同一路径请求&#xff08;方便穿网配置&#xff09;在请求头内标识原来路径&#xff0c;然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...

[Java恶补day16] 238.除自身以外数组的乘积

给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复杂度…...

C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)

名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...

给网站添加live2d看板娘

给网站添加live2d看板娘 参考文献&#xff1a; stevenjoezhang/live2d-widget: 把萌萌哒的看板娘抱回家 (ノ≧∇≦)ノ | Live2D widget for web platformEikanya/Live2d-model: Live2d model collectionzenghongtu/live2d-model-assets 前言 网站环境如下&#xff0c;文章也主…...

JavaScript 标签加载

目录 JavaScript 标签加载script 标签的 async 和 defer 属性&#xff0c;分别代表什么&#xff0c;有什么区别1. 普通 script 标签2. async 属性3. defer 属性4. type"module"5. 各种加载方式的对比6. 使用建议 JavaScript 标签加载 script 标签的 async 和 defer …...

新版NANO下载烧录过程

一、序言 搭建 Jetson 系列产品烧录系统的环境需要在电脑主机上安装 Ubuntu 系统。此处使用 18.04 LTS。 二、环境搭建 1、安装库 $ sudo apt-get install qemu-user-static$ sudo apt-get install python 搭建环境的过程需要这个应用库来将某些 NVIDIA 软件组件安装到 Je…...

性能优化中,多面体模型基本原理

1&#xff09;多面体编译技术是一种基于多面体模型的程序分析和优化技术&#xff0c;它将程序 中的语句实例、访问关系、依赖关系和调度等信息映射到多维空间中的几何对 象&#xff0c;通过对这些几何对象进行几何操作和线性代数计算来进行程序的分析和优 化。 其中&#xff0…...

SFTrack:面向警务无人机的自适应多目标跟踪算法——突破小尺度高速运动目标的追踪瓶颈

【导读】 本文针对无人机&#xff08;UAV&#xff09;视频中目标尺寸小、运动快导致的多目标跟踪难题&#xff0c;提出一种更简单高效的方法。核心创新在于从低置信度检测启动跟踪&#xff08;贴合无人机场景特性&#xff09;&#xff0c;并改进传统外观匹配算法以关联此类检测…...