计算机网络——路由

文章目录

    • 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重计算带来巨大负担。

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

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

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

相关文章

io.lettuce.core.RedisCommandExecutionException

io.lettuce.core.RedisCommandExecutionException: ERR invalid password ERR invalid password-CSDN博客 io.lettuce.core.RedisCommandExecutionException /** Copyright 2011-2022 the original author or authors.** Licensed under the Apache License, Version 2.0 (the…

电源控制系统架构(PCSA)之电源管理基础设施组件

目录 6.5 电源管理基础设施组件 6.5.1 电源策略单元 6.5.2 时钟控制器 6.5.3 低功耗Distributor 6.5.4 低功耗Combiner 6.5.5 P-Channel到Q-Channel转换器 6.5 电源管理基础设施组件 6.5.1 电源策略单元 本节介绍电源策略单元(Power Policy Unit, PPU)。PPU的完整细节见…

19.oracle11g中的游标

oracle11g中的游标 一、案例引入二、什么是游标三、隐式游标1、隐式游标的属性2、创建语法3、示例 四、显示游标1、显示游标的属性2、创建语法3、示例 五、REF游标1、REF游标的属性2、创建语法3、示例 六、循环游标1、 循环游标的作用2、用for 与 loop 创建3、示例 一、案例引入…

【Rust日报】2023-11-22 Floneum -- 基于 Rust 的一款用于 AI 工作流程的图形编辑器

Floneum -- 基于 Rust 的一款用于 AI 工作流程的图形编辑器 Floneum 是一款用于 AI 工作流程的图形编辑器,专注于社区制作的插件、本地 AI 和安全性。 Floneum 有哪些特性: 可视化界面:您无需任何编程知识即可使用Floneum。可视化图形编辑器可…

Educational Codeforces Round 158 (Rated for Div. 2)(A~E)(贪心,树形DP)

A - Line Trip 题意:有一条路,可以用一条数线来表示。你位于数线上的点 0 ,你想从点 0 到点 x ,再回到点 0。你乘汽车旅行,每行驶 1个单位的距离要花费 1 升汽油。当您从点 0出发时,汽车已加满油(油箱中的…

RocketMQ 消息中间件 知识点汇总

目录 RocketMQ1、什么是RocketMQ?常用术语:2、为什么需要消息队列3、什么是异步处理4、什么是服务解耦5、什么是流量控制6、消息队列两种模型队列模型:发布/订阅模型:总结:7、怎么保证消息不丢失8、如何处理消息被重复消费**出现消息重复的情况:****解决方法:**9、如何保…

基于官方YOLOv4开发构建目标检测模型超详细实战教程【以自建缺陷检测数据集为例】

本文是关于基于YOLOv4开发构建目标检测模型的超详细实战教程,超详细实战教程相关的博文在前文有相应的系列,感兴趣的话可以自行移步阅读即可:《基于yolov7开发实践实例分割模型超详细教程》 《YOLOv7基于自己的数据集从零构建模型完整训练、…

【HuggingFace Transformer库学习笔记】基础组件学习:pipeline

一、Transformer基础知识 pip install transformers datasets evaluate peft accelerate gradio optimum sentencepiece pip install jupyterlab scikit-learn pandas matplotlib tensorboard nltk rouge在host文件里添加途中信息,可以避免运行代码下载模型时候报错…

代码随想录算法训练营第五十四天|392.判断子序列 115.不同的子序列

文档讲解:代码随想录 视频讲解:代码随想录B站账号 状态:看了视频题解和文章解析后做出来了 392.判断子序列 class Solution:def isSubsequence(self, s: str, t: str) -> bool:dp [[0] * (len(t)1) for _ in range(len(s)1)]for i in ra…

matlab三维地形图

matlab三维地形图 %%%%—————Code to draw 3D bathymetry—————————— %-------Created by bobo,10/10/2021-------------------- clear;clc;close all; ncdisp E:\data\etopo\scs_etopo.nc filenmE:\data\etopo\scs_etopo.nc; londouble(ncread(filenm,lon)); lat…

黑马点评笔记 分布式锁

文章目录 分布式锁基本原理和实现方式对比Redis分布式锁的实现核心思路实现分布式锁版本一Redis分布式锁误删情况说明解决Redis分布式锁误删问题分布式锁的原子性问题分布式锁-Redission分布式锁-redission可重入锁原理分布式锁-redission锁重试和WatchDog机制分布式锁-redissi…

java学习part10 this

90-面向对象(进阶)-关键字this调用属性、方法、构造器_哔哩哔哩_bilibili 1.java的this java的this性质类似cpp的this, 但它是一种引用,所以用 this. xxx来调用。 this代表当前的类的实例,所以必须和某个对象结合起来使用,不能…