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

计算机网络:网络层 —— 路由选择与静态路由配置

文章目录

    • 路由选择
      • 路由选择的基本概念
      • 路由选择算法
      • 路由选择策略
    • 路由器的工作原理
    • 路由表
    • 静态路由配置
      • 默认路由
      • 特定主机路由

路由选择

路由选择(Routing)是网络层的一个关键功能,负责在源和目的地之间选择最佳路径,以确保数据包高效地到达目的地。路由选择涉及多个方面,包括路由表的维护路由协议的使用路径选择算法等。

![[路由选择.png]]

  • 路由表需要对网络拓扑变化的计算最优化
  • 转发表的结构应当使查找过程最优化

路由选择是网络层确保数据包高效到达目的地的核心功能。通过静态动态路由,结合不同的路由选择算法和协议,网络能够动态适应拓扑变化,优化路径选择,提高传输效率和可靠性。

在实现路由选择的过程中,合理配置和管理路由表,以及选择合适的路由协议和策略,是确保网络稳定和高效运行的关键。

路由选择的基本概念

  1. 路由表:每个路由器都有一个路由表,存储关于网络的路径信息,包括目的地网络、下一跳地址、路径开销等。

  2. 下一跳:数据包需要转发的下一个设备地址,即下一台路由器的IP地址。

  3. 路径开销:衡量一条路径的成本或距离,通常包括跳数、带宽、延迟等因素。

路由选择算法

路由选择算法决定了路由器如何选择最佳路径,主要分为两类:静态路由和动态路由。

  1. 静态路由:采用人工配置的方式给路由器添加网络路由默认路由和特定主机路由等路由条目。一般只在小规模网络中采用。

    • 网络管理员手动配置,适用于小型和固定网络,但不适应动态变化的网络环境。
    • 优点:简单、开销低、无额外通信开销。
    • 缺点:无法自动适应网络状态(流量、拓扑等)变化,管理复杂。
  2. 动态路由:路由器通过路由选择协议自动获取路由信息。适用于大规模网络

    • 路由器自动计算和更新路由信息,通过路由协议实现。
    • 优点:适应网络变化,自动更新路由表。
    • 缺点:复杂度高,有通信开销。

路由选择策略

  1. 最短路径优先:选择跳数最少的路径。

  2. 最低开销优先:选择开销最低的路径,开销可以是带宽、延迟等综合因素。

  3. 负载均衡:将流量分配到多个路径,避免某一条路径过载。

  4. 策略路由:基于策略的路由选择,如服务质量(QoS)要求、安全需求等。

路由器的工作原理

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

![[路由器.png]]

路由器的交换结构的速率对于路由器的性能是至关重要的。因此,人们对交换结构进行了大量研究,以提高路由器的转发速率。

通过实现交换结构的三种基本方式是:通过存储器通过总线以及通过互连网络。这三种交换结构可实现的路由器转发速率依次提高。

路由表

路由表存储了网络中的路径信息,包括目的地网络、下一跳地址、出接口等。路由表的条目通常包含以下内容:

  • 目的地地址:目标网络或主机的IP地址。
  • 子网掩码:用于确定目的地地址的网络部分。
  • 下一跳地址:数据包转发的下一台路由器的IP地址。
  • 出接口:用于转发数据包的网络接口。
  • 度量值:用于选择最佳路径的开销信息,例如跳数、带宽等。

路由表一般仅包含从目的网络到下一跳的映射。路由表需要对网络拓扑变化的计算最优化

静态路由配置

静态路由配置是指用户或网络运维人员使用路由器的相关命令给路由器人工配置路由表。人工配置方式简单、开销小、但不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中采用。当需要确保特定的数据流量通过预定义的路径传输时,或者在网络中只有少数几个路由器时,使用静态路由是一个简单且有效的方法。

![[静态路由配置.png]]

进行静态路由配置需要认真考虑和谨慎操作,否则可能出现以下问题:

  • 路由条目配置错误,甚至导致出现路由环路
  • 聚合路由条目时可能引入不存在的网络。

默认路由

默认路由(Default Route)是静态路由的一种特殊形式,它是指当路由器查找不到与目标地址相匹配的具体路由条目时,会将数据包转发到这个默认路由指定的下一跳地址

默认路由通常用于简化路由表,减少路由表的大小,提高查找效率。在很多情况下,特别是在接入互联网的边缘路由器上,设置一条默认路由是非常有用的,因为它可以将所有未知目的地的流量导向上游的 ISP(Internet Service Provider)路由器。

![[默认路由.png]]

  1. 直连路由: R1 的路由表中包含两条直连路由:

    • 目的地是 192.168.1.0/24,下一跳是接口0,类型是“直连”。
    • 目的地是 10.0.0.0/30,下一跳是接口1,类型也是“直连”。
  2. 默认路由: R1 还有一条默认路由,目的地是 0.0.0.0/0,下一跳是 10.0.0.2,类型是“静态”。这意味着任何没有明确路由条目的数据包都将被转发到 10.0.0.2,也就是 R2 的接口 0。

  3. 数据包转发过程: 当 R1 接收到一个目的地不在其直连网络内的数据包时,它会查询自己的路由表。由于没有找到对应的具体路由条目,它就会使用默认路由,将数据包转发到 10.0.0.2。然后,R2 负责将这些数据包进一步转发到因特网中的相应网络。

默认路由条目中的目的网络为 0.0.0.0/0,其中 0.0.0.0 表示任意网络,而网络前缀 /0相应的地址掩码为0.0.0.0)是最短的网络前缀。

路由器在查找转发表转发IP数据报时,遵循“最长前缀匹配”的原则,因此默认路由条目的匹配优先级最低

特定主机路由

出于某种安全问题的考虑,同时为了使网络运维人员更方便地控制网络和测试网络,特别是在对网络的连接或路由表进行排错时,指明到某一台主机的特定主机路由是十分有用的。

![[特定主机路由.png]]

特定主机路由条目中的目的网络 192.168.2.1/32,其中 192.168.2.1 是特定主机的IP地址,而网络前缀 /32(相应地址掩码为255.255.255.255)是最长的网络前缀

路由器在查找转发表转发IP数据报时,遵循“最长前缀匹配”的原则,因此特定主机路由条目的匹配优先级最高

相关文章:

计算机网络:网络层 —— 路由选择与静态路由配置

文章目录 路由选择路由选择的基本概念路由选择算法路由选择策略 路由器的工作原理路由表静态路由配置默认路由特定主机路由 路由选择 路由选择(Routing)是网络层的一个关键功能,负责在源和目的地之间选择最佳路径,以确保数据包高…...

[LeetCode-55]基于贪心算法的跳跃游戏的求解(C语言版)

/* 题目出处:LeetCode 题目序号:55. 跳跃游戏 题目叙述:给你一个非负整数数组 nums ,你最初位于数组的第一个下标位置 。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可…...

C# 将批量图片转为PDF文件

目录 功能实现 范例运行环境 关键代码 组件库引入 ​将批量图片转换为PDF 总结 功能实现 功能实现主要使用 iTextSharp 库实现,将指定目录下的有序的一组图片,组合生成指定文件名的PDF文件。 范例运行环境 操作系统: Windows Server…...

大模型面试题63题(1-11)

扫一扫,实时跟踪面试题(关注“算法狗”)就可以啦 1. 什么是大型语言模型(LLMs)以及它们的工作原理是什么? 大型语言模型(LLMs)是设计用来理解、处理和生成类似人类文本的高级人工智…...

【Flask】二、Flask 路由机制

目录 什么是路由? Flask中的路由 基本路由 动态路由 路由中的HTTP方法 路由函数返回 在Web开发中,路由是将URL映射到相应的处理函数的过程。Flask是一个轻量级的Web应用框架,提供了简单而强大的路由机制,使得开发者能够轻松…...

Java项目实战II基于Spring Boot的交通管理在线服务系统设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、文档参考 五、核心代码 六、源码获取 全栈码农以及毕业设计实战开发,CSDN平台Java领域新星创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 随着城市化…...

【PythonWeb开发】Flask-RESTful视图类基础知识

flask_restful 是一个扩展库,它为 Flask 提供了快速构建 RESTful API 的功能。使用 flask_restful 可以简化 RESTful API 的开发过程,减少样板代码,并且提供了一些高级特性,如 HTTP 方法的映射、资源路由的定义等。 在flask_restf…...

Kubernetes——part10-2 kubernetes 日志收集方案 EFK

一、EFK 1.1 EFK介绍 EFK为elasticsearch、fluentd、kibana的简称,本案例主要对kubernetes集群日志收集。 1.2 Fluentd介绍 fluentd是一款开源的日志收集工具,其于2016年11月8日被云原生计算基金会录取,并于2019年毕业。 Fluentd优势&…...

mockito+junit完成单元测试

一:单元测试的特点 配合断言使用(可以杜绝System.out)可以重复执行不依赖环境不会对数据产生影响spring的上下文环境不是必须的一般都需要配合mock类框架来实现 二:常用的mock类框架 mockito 官网:Mockito framew…...

基于web的便捷饭店点餐小程序的设计与实现(lw+演示+源码+运行)

摘 要 互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱,出错率高,信息安全…...

CUDA环境安装终极指南——Linux(其它系统也一样)

文章目录 前言检查驱动配置nvcc安装cudnn完活 前言 不用看其它文章了,这篇文章保你不踩任何坑,安装方法简单快速 检查驱动 检查驱动是否安装,输入以下命令 nvidia-smi如果驱动已经安装,则可跳过此步,否则&#xff…...

安卓开发之登录页面(跳转版)

目录 前言:基础夯实:效果展示:核心代码:网盘源码: 前言: 熟悉安卓开发的基础知识,了解,弹窗,两个页面进行跳转,页面的布局,按钮,文本…...

solidworks学习6吊环-20241030

solidworks学习6吊环 图 1 使用到的命名:拉伸曲面,旋转曲面,镜像实体,剪裁曲面, 前视基准面绘制 图 2 绘制旋转轴 图 3 旋转曲面 图 4 上视基准面绘制,标准圆边尺寸的时候需要按住shift键标注&#x…...

数据结构和算法-动态规划(3)-经典问题

动态规划常见问题 打家劫舍 题目 [力扣198] 198. 打家劫舍 - 力扣(LeetCode) 题目描述 你是一个专业的小偷,计划偷窃沿街的房屋。每间房内都藏有一定的现金,影响你偷窃的唯一制约因素就是相邻的房屋装有相互连通的防盗系统&…...

Java算法-一维前缀和与差分

一、一维前缀和 ① 什么是一维前缀和? 📚 其实通过名字就能知道" 一维前缀和 "的意思: 通过一个一维数组"arr1"而创建的另一个一维数组"arr2","arr2"的每一个元素都是"arr1"…...

Elasticsearch 安装教程:驾驭数据海洋的星际导航仪

目录 一、准备工作1. ES的下载 二、安装步骤三、注意事项四、启动报错1. org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root2. max virtual memory areas vm.max_map_count [65530] is too low, increase to at l…...

【解决方案】微信小程序如何使用 ProtoBuf 进行 WebSocket 通信

前言 故事背景 简单说下背景,项目中需要用 ProtoBuf 协议转换请求参数,并通过 WebSocket 进行双向通信。重点!一个是 web端(Vue3 TS),一个是微信小程序端(原生 JS)。 剧情发展 …...

独立游戏开发者面临的挑战与困境

在当今竞争激烈的游戏市场中,独立游戏开发者面临着诸多挑战与困境。从游戏版号申请到游戏被抄袭,再到产品同质化以及流量获取难题,乃至外包内卷现象,每一个环节都考验着开发者的智慧与毅力。以下是对这些挑战与闲境的详细分析。 …...

KVM 虚拟机Anolis OS 8.9 下利用宝塔面板中的 Docker 配置 Nextcloud + onlyoffice

第一部分:安装配置 nextcloud 准备 (1)启动一个 Anolis OS 8.9 虚拟机,见下图。该虚拟机为 anlisos8…0.2 虚拟机的 ssh、hostname 、IP地址都已配置好。 (2)宝塔面板也已安装好docker 一、环境 do…...

串口扫盲TTL,TX/TR/GND

1. 串口扫盲TTL,TX/TR/GND 1. 串口扫盲TTL,TX/TR/GND 1.1. TTL1.2. USB转TTL1.3. 串口通信1.4. 引脚缩写1.5. 参考资料 1.1. TTL TX(TXD) 来源于 Transmit 一词,意思为发送,发射RX(RXD) 来源于 Receive 一词 意思为接收,收到GND 地线&…...

Docker 离线安装指南

参考文章 1、确认操作系统类型及内核版本 Docker依赖于Linux内核的一些特性,不同版本的Docker对内核版本有不同要求。例如,Docker 17.06及之后的版本通常需要Linux内核3.10及以上版本,Docker17.09及更高版本对应Linux内核4.9.x及更高版本。…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

TDengine 快速体验(Docker 镜像方式)

简介 TDengine 可以通过安装包、Docker 镜像 及云服务快速体验 TDengine 的功能,本节首先介绍如何通过 Docker 快速体验 TDengine,然后介绍如何在 Docker 环境下体验 TDengine 的写入和查询功能。如果你不熟悉 Docker,请使用 安装包的方式快…...

STM32+rt-thread判断是否联网

一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...

跨链模式:多链互操作架构与性能扩展方案

跨链模式:多链互操作架构与性能扩展方案 ——构建下一代区块链互联网的技术基石 一、跨链架构的核心范式演进 1. 分层协议栈:模块化解耦设计 现代跨链系统采用分层协议栈实现灵活扩展(H2Cross架构): 适配层&#xf…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...

土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等

🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...

自然语言处理——Transformer

自然语言处理——Transformer 自注意力机制多头注意力机制Transformer 虽然循环神经网络可以对具有序列特性的数据非常有效,它能挖掘数据中的时序信息以及语义信息,但是它有一个很大的缺陷——很难并行化。 我们可以考虑用CNN来替代RNN,但是…...

(转)什么是DockerCompose?它有什么作用?

一、什么是DockerCompose? DockerCompose可以基于Compose文件帮我们快速的部署分布式应用,而无需手动一个个创建和运行容器。 Compose文件是一个文本文件,通过指令定义集群中的每个容器如何运行。 DockerCompose就是把DockerFile转换成指令去运行。 …...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色,华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型,能助力我们轻松驾驭 DeepSeek-V3/R1,本文中将分享如何…...