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

lec7-路由与路由器

lec7-路由与路由器

1. 路由器硬件

  • 路由器的硬件部分:

    • 断电失去: RAM
    • 断电不失去:NVRAM, Flash, ROM
    • interface也算是一部分
  • 在这里插入图片描述

  • 路由器是特殊组件的计算机

  • console 口进行具体的调试

  • 辅助口(Auxiliary):一般不用,但是可能用到

1.1. RAM

  • 路由器配置文件的临时存储,可以看作是内存
  • 断电/重启,就会失去内容
  • 可以存储:
    • 路由表
    • ARP cache
    • Fast switching cache 快速切换缓存
    • packet buffer 报文缓存:可能前面有正在处理的,需要等待
    • packet hold queues 数据包保留队列
  • 根据地址可以读到地址内容

1.2. NVRAM

  • 意思是不易失的 RAM
  • 存放 backup / startup 备份与启动配置文件
  • 通过内置电池的方式来保证不断电

1.3. Flash

  • EEPROM (Electronic erasable programmable read-only memory)电擦除可编程只读存储器
  • 存放着 IOS,互联网操作系统
  • 允许更新软件而不需要更新flash芯片
  • 可以存放多个版本的 IOS
  • 断电也可以保存的

1.4. ROM

  • 包含着 POST (Power On Self Test),开机自检
  • 包含 bootstrap, 也就是引导程序,用来加载IOS
  • 可以存放IOS的备份,精简版本(Trimmed down)
    但是要更新需要更换芯片

1.5. 接口

  • 数据包进入和离开路由器的网络连接口
  • 在主板(mother board)上或者作为单独的模块

2. 路由器启动步骤

2.1. 系统启动程序(3步骤)

  1. 执行POST开机自检,路由器执行所有从ROM获取的对所有硬件模块的诊断
  2. 验证CPU,存储,网络接口端口的基本操作
  3. 软件初始化

2.2. 软件启动程序(5步骤)

  1. ROM内存放的bootstrap,引导加载程序,在CPU上执行
  2. 可以在以下几个位置找到操作系统。位置在配置寄存器的引导字段中被公开
  3. 操作系统被加载
  4. 存放在NVRAM中的配置文件加载到主存中,并且每次执行一行
  5. 如果NVRAM中没有配置文件,那么就执行问题驱动(problem driven)的初始配置例程,也叫做设置模式(setup mode)

2.3. 路由器初始化过程

  • 设置本身不用做在路由器中输入复杂协议功能
  • 对于大多数路由器配置任务,应该使用安装程序提出最少的配置,然后使用各种configuration mode命令而不是安装程序

3. 路由

3.1. 概述

  • 路由器通常使用两个基本功能 路径确定交换功能,将数据包从一条数据链路转移到另一个数据链路上。
    • switching function:交换功能,使得一个路由器可以从一个接口接收数据包,并且通过第二个接口进行转发
    • path determination:路径确定功能,使得路由器可以选择出那个最合适的接口进行转发
  • 路由器使用一个地址的 network **portion(网络部分)**进行路径的选择
  • 地址的 **node portion(节点部分)**由 直接连接到目标网络的路由器使用,确保数据包传递到正确的主机

3.2. 静态和动态路由(static and Dynamic route)

  • 静态路由:路由表是由管理员手动输入的
  • 动态路由:路由表是路由器通过拓扑情况和交通情况自动调整的
3.2.1. 静态路由

在这里插入图片描述

  • 静态路由相比于动态路由并不是没有优点的,安全性 就是一种优点
  • 动态路由倾向于显示有关网络的所有信息;
    但是处于安全原因,你可能想要隐藏网络的某些部分
  • 当只有一条路径可以访问网络的时候,一条静态路由就足够了。(默认路由,将B所有不知道位置的全部交给A,让A去访问)
  • 这种分区称为 stub network(名词解释)
    (末节网络)
3.2.2. 静态路由配置

。。。

3.2.3. Administration Distance(管理距离)
  • 管理距离是一个 0 - 255 的数字,它表明了路由信息源的可信赖度
    注意:数字越小,可信度越高
  • 静态路由的管理距离通常设置很短,默认值是1
  • 直连网段可信,管理距离是0

3.3. 动态路由

  • (Dynamic routing protocols can also redirect traffic or loadshare between different paths in a network)
    动态路由可以重定向网络中不同路径之间的流量(loadshare 负载分担

  • 静态路由中固定的链路不能出错,但是动态可以自己调整。

  • 动态路由依赖于不同的路由表之间共享知识

    • 动态路由依赖两个基本路由功能:
      • 对路由表维护
      • 对其他路由器,分发路由信息

3.4. Time to Convergence

  • 收敛时间(对于动态路由才有这种说法)
  • 当所有的路由器使用同一套的稳定拓扑是,就会收敛
  • 网络拓扑发生变化之后,路由器就会重新计算路由 recalculate / recompute

3.5. 动态路由协议分类

  • distance vector 距离矢量
  • link state 链路状态
  • hybrid routing 混合路由
3.5.1. 距离矢量协议
  • 距离矢量协议不允许路由器获得网络的完整拓扑
  • 距离矢量模型,基于贝尔曼-福特(动态规划最短路)算法,在路由器之间传递路由表的周期性副本
  • 是周期性的
3.5.1.1. 路由环路问题
  • 注意:这里明确一下,下面提到的路由环路问题解决方案,都是对于 距离矢量 这种路由协议的解决方案,OSPF等由另外的解决方案;后面可能考名词解释

在这里插入图片描述

  1. 解决方案1: maximum (定义最大值)

    • 设置一个最大条数,比如15跳,16跳以上为不可达
  2. 解决方案2: route poisoning(路由中毒)
    在这里插入图片描述

    • 当网络5发生的时候,路由器E就会通过把通向网络5的路由表条目设成16 / 不可达

    • 当路由器C获得 E 传来的路由表时,他也会更新路由表,并且发送回 E,(poison reverse)毒性逆转,确保整个网段的路由器都知道中毒的路由信息

在这里插入图片描述

 > 上图来源于:[10-RIP路由协议详解——触发更新和中毒路由_rip触发更新-CSDN博客](https://blog.csdn.net/qq_35733751/article/details/80309562#:~:text=路由中毒是指在路由信息在路由表中失效时,先将度量值变为无穷大的数,而不是马上从路由表中删掉这条路由信息。,然后再将中毒路由信息发布出去,当相邻的路由器收到该中毒路由就可以通过其度量值是16,说明该路由是无效的。)
  1. 解决方案3:split horizon(水平分割,常考)
    在这里插入图片描述

    • 从某个接口收到的路由信息,不能再从这个接口发送回去
    • 当该路由器准备通过该接口发送路由信息时,它会检查自己是否已经通过该接口接收到了到达相同目的地的路由信息。
    • 有名词解释题目
  2. 解决方案4: hold-down timers(计时器)

    • 收到网络不可达信息的时候,启动计时器,开始计时
    • 如果任何一个计时的设备收到了一个比原来更好的到达路径,那么就会修改对应记录,更差就不会记录
    • 计时器结束后,删掉对应的条目,避免出现问题
    • 每一条路由表的记录都有有效时间
3.5.2. LSP 链路状态协议
3.5.3. DV 与 LSP 比较

在这里插入图片描述

  1. DV:
    • 视野窄,代价小
    • 基于跳数
    • 周期性进行更新,收敛慢
    • 交换的是 路由表
  2. LSP:
    • 视野宽,但是有一定代价
    • 计算最短路(考虑带宽,成本)
    • 事件驱动型,收敛快
    • 交换的是 link state 数据库
3.5.4. Hybrid Routing 混合协议
  • 比如说: OSI 的 IS-IS(intermediate system to intermediate system),还有 思科的 EIGPR (enhanced interior gateway routing protocol)

  • 在这里插入图片描述

    权重分配?

  • 在这里插入图片描述

    这里4个主要的主动路由协议:(可以记一下全称)

    1. RIP routing info pro
    2. IGRP interior gateway routing pro
    3. OSPF open shortest path first
    4. EIGRP enhanced
3.5.5. 路由协议评判标准
  1. 最佳(Optimal)路线:选择最佳路线
  2. 效率(Efficiency):最少使用带宽和路由器处理器资源
  3. 快速收敛(Rapid Convergence):越快越好。有些比其他收敛更快。
  4. 灵活性(Flexibility):可以处理各种情况,例如高使用率和失败的路由
  • 默认路由可以减少路由表条数
  • 动态和静态路由都可以使用默认路由
    • 默认路由对于路由聚合具有很大的帮助

相关文章:

lec7-路由与路由器

lec7-路由与路由器 1. 路由器硬件 路由器的硬件部分: 断电失去: RAM断电不失去:NVRAM, Flash, ROMinterface也算是一部分 路由器是特殊组件的计算机 console 口进行具体的调试 辅助口(Auxiliary&…...

知识库召回列表模式揭秘:实现智能信息检索新突破

目录 一、什么是知识库的召回列表模式 召回列表模式的工作流程 典型应用场景 召回列表模式的优势 二、知识库召回列表模式的技术实现细节 1. 数据准备 2. 召回策略 3. 排序策略 4. 结果展示与交互 三、技术架构示例 1. 系统架构 2. 代码示例 四、总结 随着人工智能…...

WCH的CH57X的J-LINK的芯片FLASH烧录文件

WCH的CH57X的J-LINK的芯片FLASH烧录文件,需要在 D:\app\Keil_v5\SEGGER\JLink_V616a目录中JLINKDEVICES.XML文件中修改并增加以下信息。同时&#xff0c;需要加入CH57X.FLM文件 <Device> <ChipInfo Vendor"WCH" Name"CH57X" WorkRAMAddr"…...

Rust 基础入门指南

Rust 基础入门指南 1. Rust 语言概述 Rust 的历史与设计理念 Rust 是由 Mozilla 研究院的 Graydon Hoare 于2010年开始创建的系统编程语言。其设计目标是创建一种安全、并发、实用的编程语言&#xff0c;特别关注内存安全和并发性。 Rust 的核心设计理念包括&#xff1a; …...

Qt|QWidget窗口支持旋转

功能实现&#xff1a;使用QWidget创建的窗口支持窗口旋转功能。 展示的示例中支持由水平方向旋转至垂直方向。至于其它角度旋转的问题&#xff0c;看完这篇文章后应该会很简单能实现的&#xff01; 开发环境&#xff1a;win VS2019 Qt 5.15.2 在实现之前也有想用使用 QProp…...

docker compose部署kafka集群

先部署zookeeper集群&#xff0c;启动 参考&#xff1a;docker compose部署zookeeper集群-CSDN博客 再部署kafka集群 networks: net: external: true services: kafka1: restart: always image: wurstmeister/kafka:2.13_2.8.1 container_name: kafka1 …...

Spring源码分析之事件机制——观察者模式(三)

目录 自定义事件 事件监听器 事件发布者&#xff08;服务层&#xff09; 使用示例controller层 Spring源码分析之事件机制——观察者模式&#xff08;一&#xff09;-CSDN博客 Spring源码分析之事件机制——观察者模式&#xff08;二&#xff09;-CSDN博客 这两篇文章是这…...

如何使用axios实现文件上传

文件上传 axios 支持文件上传&#xff0c;通常使用 FormData 对象来封装文件和其他表单数据。 import axios from axios;const formData new FormData(); formData.append(file, fileInput.files[0]); formData.append(description, 文件描述);axios.post(/api/upload, form…...

wx016基于springboot+vue+uniapp的超市购物系统小程序

开发语言&#xff1a;Java框架&#xff1a;springbootuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#…...

LLM - 使用 LLaMA-Factory 部署大模型 HTTP 多模态服务 (4)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/144881432 大模型的 HTTP 服务&#xff0c;通过网络接口&#xff0c;提供 AI 模型功能的服务&#xff0c;允许通过发送 HTTP 请求&#xff0c;交互…...

JeeSite 快速开发平台:全能企业级快速开发解决方案|GitCode 光引计划征文展示

投稿人GitCode ID&#xff1a;thinkgem 光引计划投稿项目介绍 JeeSite 快速开发平台&#xff0c;不仅仅是一个后台开发框架&#xff0c;它是一个企业级快速开发解决方案&#xff0c;后端基于经典组合 Spring Boot、Shiro、MyBatis&#xff0c;前端采用 Beetl、Bootstrap、Admi…...

HackMyVM-Airbind靶机的测试报告

目录 一、测试环境 1、系统环境 2、使用工具/软件 二、测试目的 三、操作过程 1、信息搜集 2、Getshell 3、提权 使用ipv6绕过iptables 四、结论 一、测试环境 1、系统环境 渗透机&#xff1a;kali2021.1(192.168.101.127) 靶 机&#xff1a;debian(192.168.101.11…...

探索Wiki:开源知识管理平台及其私有化部署

在如今的信息时代&#xff0c;企业和团队的知识管理变得愈发重要。如何有效地存储、整理、共享和协作&#xff0c;是提高团队效率和创新能力的关键因素之一。今天&#xff0c;我要为大家介绍一款非常有用的github上开源知识管理工具——Wiki&#xff0c;并分享它的私有化部署方…...

网关的主要作用

在网络安全领域&#xff0c;网关扮演着举足轻重的角色&#xff0c;它不仅是网络间的桥梁&#xff0c;更是安全防线的守护者。以下是网关在网络安全中的几个关键作用&#xff1a; 1. 防火墙功能&#xff1a;网关常常集成了防火墙技术&#xff0c;能够对进出网络的数据包进行严格…...

黑马JavaWeb开发跟学(十五).Maven高级

黑马JavaWeb开发跟学.十五.Maven高级 Maven高级1. 分模块设计与开发1.1 介绍1.2 实践1.2.1 分析1.2.2 实现 1.3 总结 2. 继承与聚合2.1 继承2.1.1 继承关系2.1.1.1 思路分析2.1.1.2 实现 2.1.2 版本锁定2.1.2.1 场景2.1.2.2 介绍2.1.2.3 实现2.1.2.4 属性配置 2.2 聚合2.2.1 介…...

TLS(传输层安全,Transport Layer Security)是用于在网络上提供通信安全的一种加密协议。

TLS&#xff08;传输层安全&#xff0c;Transport Layer Security&#xff09;是用于在网络上提供通信安全的一种加密协议。它是SSL&#xff08;安全套接层&#xff0c;Secure Sockets Layer&#xff09;的继任者&#xff0c;旨在确保两个应用程序之间数据传输的隐私性、完整性…...

Statistic for ML

statistical concept 統計學概念 免費完整內容 PMF and CDF PMF定義的值是P(Xx)&#xff0c;而CDF定義的值是P(X < x)&#xff0c;x為所有的實數線上的點。 probability mass function (PMF) 概率質量函數 p X ( x ) P ( X x ) pX(x)P(Xx) pX(x)P(Xx) 是離散隨機變數…...

Node.js 函数

Node.js 函数 1. 概述 Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它允许开发者使用 JavaScript 编写服务器端和网络应用程序。在 Node.js 中,函数是一等公民,意味着它们可以作为变量传递,可以作为参数传递给其他函数,也可以从其他函数返回。本文将详细…...

数据结构:时间复杂度和空间复杂度

我们知道代码和代码之间算法的不同&#xff0c;一定影响了代码的执行效率&#xff0c;那么我们该如何评判算法的好坏呢&#xff1f;这就涉及到了我们算法效率的分析了。 &#x1f4d6;一、算法效率 所谓算法效率的分析分为两种&#xff1a;第一种时间效率&#xff0c;又称时间…...

使用 Docker 安装 Redis

随着微服务架构和分布式应用的广泛应用&#xff0c;缓存技术已经成为提升系统性能和响应速度的关键手段。而 Redis 作为一个高效、轻量级的内存数据存储解决方案&#xff0c;因其极高的性能和丰富的数据结构支持&#xff0c;广泛应用于缓存、消息队列、实时分析等领域。 在现代…...

【源码+文档+调试讲解】“健康早知道”微信小程序

摘 要 随着信息化时代的到来&#xff0c;管理系统都趋向于智能化、系统化&#xff0c;“健康早知道”微信小程序也不例外&#xff0c;但目前国内的市场仍都使用人工管理&#xff0c;市场规模越来越大&#xff0c;同时信息量也越来越庞大&#xff0c;人工管理显然已无法应对时代…...

Linux中操作中的无痕命令history技巧

当我们需要查看Linux下的操作记录时&#xff0c;就可以用history命令来查看历史记录 1、关闭history记录功能&#xff0c;如果不想让别人看到自己在Linux上的操作命令&#xff0c;可以用这个命令 set o history 2、打开history记录功能 set -o history3、清空记录 histor…...

Springboot+NettySocket通讯教程

需求背景 最近需要对接一些硬件设备,他们选择了socket通讯,并且使用的是私有化协议加密通讯。这种情况下适合原生的socket加解密解析,不适合NettySocket,这在开发中增加了难度。所有的代码都要手动去敲。 // springboot原生socket通讯教程https://blog.csdn.net/renkai72…...

Spingboot定时任务与过滤器,拦截器

文章目录 Spingboot定时任务与过滤器&#xff0c;拦截器1. 定时任务Scheduled2. 拦截器 Spingboot定时任务与过滤器&#xff0c;拦截器 1. 定时任务Scheduled 一种是使用 Spring 自带的定时任务处理器 Scheduled 注解另一种就是使用第三方框架 Quartz &#xff0c;Spring Boo…...

大数据学习(33)-续集

今天开始重新更新大数据 -- 感谢大家的支持&#xff01;&#xff01;&#xff01;...

overleaf写学术论文常用语法+注意事项+审阅修订

常用语法 导入常用的宏包 \usepackage{cite} \usepackage{amsmath,amssymb,amsfonts} \usepackage{algorithmic} \usepackage{algorithm} \usepackage{graphicx} \usepackage{subfigure} \usepackage{textcomp} \usepackage{xcolor} \usepackage{lettrine} \usepackage{booktab…...

基于fMRI数据计算脑脊液(CSF)与全脑BOLD信号的时间耦合分析

一、前言 笔者之前的文章《基于Dpabi和spm12的脑脊液(csf)分割和提取笔记》,介绍了如何从普通的fMRI数据中提取CSF信号。首先是基础的预处理,包括时间层校正、头动校正,再加上0.01-0.1Hz的带通滤波。接着用SPM12分割出CSF区域,设置一个比较严格的0.9阈值,确保提取的真是…...

使用Dockerfile构建镜像

由于格式和图片解析问题&#xff0c;为了更好体验可前往 阅读原文 前面我们学习了可以使用docker commit命令式构建新的镜像&#xff0c;而此方式相对来说比较繁琐且对于旁人来说内部都是黑箱操作&#xff0c;无法了解制作的具体细节。很有可能很长时间后制作者也会对其忘却&am…...

SQL字符串截取函数——Left()、Right()、Substring()用法详解

SQL字符串截取函数——Left&#xff08;&#xff09;、Right&#xff08;&#xff09;、Substring&#xff08;&#xff09;用法详解 1. LEFT() 函数&#xff1a;从字符串的左侧提取指定长度的子字符串。 LEFT(string, length)string&#xff1a;要操作的字符串。length&#x…...

python字符串函数用法大全

目录 1.0 capitalize()函数 2.0 title()函数 3.0 swapcase()函数 4.0 lower()函数 5.0 upper()函数 7.0 center()函数 8.0 ljust()函数 9.0 rjust()函数 10.0 zfill()函数 11.0 count(&#xff09;函数 13.0 decode()函数 14.0 expandtabs()函数 15.0 find()函数 16.0 rfind()…...

纵览!报表控件 Stimulsoft Reports、Dashboards 和 Forms 2025.1 新版本发布!

Stimulsoft 2025.1 新版发布&#xff0c;旨在增强您创建报告、仪表板和 PDF 表单的体验&#xff01;此最新版本为您带来了许多改进和新功能&#xff0c;使数据处理更加高效和用户友好。亮点包括对 .NET 9 的支持、Microsoft Analysis Services 的新数据适配器、发布向导中适用于…...

【蓝桥杯——物联网设计与开发】Part2:OLED

目录 一、OLED &#xff08;1&#xff09;资源介绍 &#x1f505;原理图 &#x1f505;驱动原理 &#xff08;2&#xff09;STM32CubeMX 软件配置 &#xff08;3&#xff09;代码编写 &#xff08;4&#xff09;实验现象 二、OLED接口函数封装 &#x1f7e1;️OLED_Wri…...

壁纸样机神器,这个工具适合专业设计师用吗?

壁纸样机神器在一定程度上适合专业设计师使用&#xff0c;但是否适合具体取决于设计师的需求和使用场景&#xff1a; 适合专业设计师的方面 快速实现设计想法&#xff1a;专业设计师在创作过程中&#xff0c;有时需要快速将设计想法变为可视化的效果图&#xff0c;以便进行初…...

Linux环境(CentOs7) 安装 Node环境

Linux环境&#xff08;CentOs7&#xff09; 安装 Node环境 使用NodeSource安装Node.js 1、清除缓存&#xff08;可选但推荐&#xff09; sudo yum clean all2、添加NodeSource仓库&#xff0c;根据你想要安装的Node.js版本&#xff0c;选择相应的NodeSource安装脚本。例如&am…...

【Springboot知识】Springboot集成assembly打包组件

assembly系统打包 概述一、项目结构二、配置Maven Assembly插件三、配置assembly.xml四、打包项目五、部署和使用六、注意事项 assembly配置文件说明一、assembly配置文件的基本结构二、assembly配置文件的关键元素三、assembly配置文件的示例四、assembly配置文件与Spring Boo…...

逻辑推理算法

为说明逻辑推理算法的用法&#xff0c;下面是一个简单的逻辑推理算法的伪代码示例&#xff0c;使用了命题逻辑的推理规则&#xff08;例如&#xff1a;命题逻辑中的合取、析取、否定等&#xff09;。代码实现了一个简单的推理引擎&#xff0c;可以根据已知的前提推导出新的结论…...

鸿蒙1.2:第一个应用

1、create Project&#xff0c;选择Empty Activity 2、配置项目 project name 为项目名称&#xff0c;建议使用驼峰型命名 Bundle name 为项目包名 Save location 为保存位置 Module name 为模块名称&#xff0c;即运行时需要选择的模块名称&#xff0c;见下图 查看模块名称&…...

数据结构考前一天

线性表&#xff1a;矩阵&#xff0c;链表&#xff08;单链表必考&#xff09; 栈和队列&#xff1a;出入判断&#xff0c;括号匹配&#xff0c;中缀转后缀 字符串数组&#xff1a;模式匹配next&#xff0c;nextval数组&#xff0c;数组寻址&#xff0c;三角矩阵对应一维数组k…...

【记录】Angr|Angr 标准库函数替换怎么看哪些库函数被Angr支持?

文章目录 前言分析什么是库函数替换?为什么需要库函数替换? 如何查找支持的库函数官方支持列表目录结构说明 常用的替换包括哪些&#xff1f;1. 字符串处理函数2. 内存管理函数3. 文件操作函数 高级技巧1. 自定义库函数实现2. 条件替换 常见问题与解决方案详解1. 找不到合适的…...

npx和npm和pnpm的异同

npx、npm 和 pnpm 都是用于管理和运行 JavaScript/Node.js 包的工具&#xff0c;但它们的功能和使用场景有所不同。以下是它们之间的异同点&#xff1a; 一、共同点 Node.js 包管理生态的一部分&#xff1a; 它们都围绕 Node.js 生态系统&#xff0c;提供包管理功能。 支持安装…...

【蓝桥杯比赛-C++组-经典题目汇总】

1. 最短路 题目描述&#xff1a; 如下图所示&#xff0c;G是一个无向图&#xff0c;其中蓝色边的长度是1、橘色边的长度是2、绿色边的长度是3。 则从 A 到 S 的最短距离是多少&#xff1f; #include <iostream> #include <cstring> using namespace std; const i…...

redis7基础篇2 redis的主从模式1

目录 一 主从模式 1.1 主从复制的作用 1.2 配置常用命令 1.3 主从复制常见问题 1.4 主从复制的缺点 1.5 redis主从复制原理 二 redis主从复制的搭建流程 2.1 注意事项 2.2 redis的主从复制架构图 2.3 以6379.conf配置文件配置为例 2.4 以6380.conf配置文件配置为例 …...

QT----------QT Data Visualzation

实现思路&#xff1a; 配置项目&#xff1a;在 .pro 文件中添加 QT datavisualization 以引入 QT Data Visualization 模块。创建主窗口&#xff1a;使用 QMainWindow 作为主窗口&#xff0c;添加 Q3DScatter、Q3DBars 和 Q3DSurface 等三维视图组件。初始化和创建三维图表&a…...

默认ip无法访问,利用dhcp功能获取ip进行访问的方法

应用场景&#xff1a; ac的默认ip如192.168.1.1在pc与ac的eth2以后网口直连无法ping通&#xff0c;而且pc改为dhcp自动获取ip也获取不到ip地址&#xff0c;无法进行web配置和命令行操作。 原因是ac或其他设备被修改了默认ip或者端口vlanid&#xff0c;现在的端口vlan对应子接…...

重学 Android 自定义 View 系列(十):带指针的渐变环形进度条

前言 该篇文章根据前面 重学 Android 自定义 View 系列(六)&#xff1a;环形进度条 拓展而来。 最终效果如下&#xff1a; 1. 扩展功能 支持进度顺时针或逆时针显示在进度条末尾添加自定义指针图片使用线性渐变为进度条添加颜色效果 2. 关键技术点解析 2.1 进度方向控制的…...

websocket在各主流浏览器中默认的请求头是如何设置的?

谷歌浏览器(Chrome) 在谷歌浏览器中,当创建一个 WebSocket 连接时,会自动添加一些标准的请求头。其中包括Sec - WebSocket - Key,这个是一个 Base64 - 编码的随机值,长度为 16 字节。它用于在服务器端进行安全验证,确保连接的合法性。例如,Sec - WebSocket - Key: dGhl…...

C++之map和set的模拟实现

目录 引言 红黑树迭代器实现 红黑树元素的插入 map模拟实现 set模拟实现 之前我们已经学习了map和set的基本使用&#xff0c;但是因为map和set的底层都是用红黑树进行封装实现的&#xff0c;上期我们已经学习了红黑树的模拟实现&#xff0c;所以本期我们在红黑树模拟实现…...

大学物理(2)期末复习笔记【1】

图片不知道咋回事居然不能直接复制上来&#xff0c;过段时间修改好再编辑一下 9. 振动 一、振动 def&#xff1a;某一物理量在某一数值附近做周期性变化 周期&#xff08;T&#xff09;&#xff1a;完成一次往复运动所需要的时间&#xff08;s&#xff09; 频率&#xff08;…...

25.1.3

java数组&#xff1a; dataType[] arrayRefVar //推荐写法 //int[] mylist //或 dataType arrayRefVar[] //int mylist[]创建数组对象&#xff1a; arrayRefVar new dataType[arraySize]; dataType[] arrayRefVar new dataType[arraySize];for-each循环&#xff1a; jav…...

数据库知识汇总2

一. 范式 定义&#xff1a;范式是符合某一种级别的关系模式的集合。 关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式&#xff1b; 一个低一级范式的关系模式&#xff0c;通过模式分解&#xff08;schema decomposition&#xff09;可以转换为若干个高一…...