【网络协议】路由信息协议 (RIP)
未经许可,不得转载。
路由信息协议(Routing Information Protocol,简称 RIP)是一种使用跳数(hop count)作为路由度量标准的路由协议,用于确定源网络和目标网络之间的最佳路径。
文章目录
- 什么是路由信息协议?
- 什么是跳数(Hop Count)?
- RIP 的特点
- RIP 的工作原理
- RIP 版本的区别
- 调试命令
- RIP 配置
- 配置 R1 的 RIP
- 配置 R2 的 RIP
- 配置 R3 的 RIP
- RIP 的不同计时器类型
- RIP 的应用场景
- RIP 的优点
- RIP 的缺点
- RIP 的局限性
- 结论
- RIP 常见问题解答
什么是路由信息协议?
路由信息协议是一种距离矢量路由协议,帮助路由器确定在网络中传输数据包的最佳路径。RIP 工作于 OSI 模型的网络层,使用跳数作为其度量标准来决定最佳路径。但 RIP 中允许的最大跳数为 15。路由信息协议通常用于中小型网络中。
什么是跳数(Hop Count)?
跳数是指源网络与目标网络之间的路由器数量。跳数最少的路径被认为是到达网络的最佳路径,并会被添加到路由表中。为了防止路由循环,RIP 限制了从源到目标路径中允许的最大跳数。RIP 中最大允许的跳数为 15,而跳数为 16 的网络会被视为不可达。
RIP 的特点
(1)周期性更新网络信息:路由器定期交换网络更新信息。
(2)信息以广播方式发送:所有路由更新信息都以广播形式发送。
(3)发送完整的路由表:更新中包含完整的路由表信息。
(4)基于信任的路由:路由器总是信任从邻居路由器接收到的路由信息,这也被称为“基于传闻的路由”。
RIP 的工作原理
路由信息协议使用距离矢量路由法(Distance Vector Routing)将数据包传输到目标。在 RIP 中,每个路由器维护一个路由表,其中记录了到每个目标的距离信息。路由器每隔 30 秒通过广播将其路由表共享给邻居路由器。当接收到这些数据时,每个路由器根据接收到的信息更新自己的路由表。如果接收到的某条路径比现有路径更短,路由器会直接更新表中的数据。
RIP 的跳数限制为 15,如果某条路径的跳数超过 15,则该路径被视为不可达。此限制有效地限制了路由器所能处理的网络规模。如果某条路由在 6 个周期(180 秒)内未被更新,则 RIP 会将该路由移出路由表并通知网络中的其他路由器。
RIP 版本的区别
RIP 共有三个版本:
- RIP 版本 1(RIP v1)
- RIP 版本 2(RIP v2)
- RIPng
以下是它们的差异:
特性 | RIP v1 | RIP v2 | RIPng |
---|---|---|---|
更新方式 | 通过广播发送更新 | 通过组播发送更新 | 通过组播发送更新 |
广播地址 | 255.255.255.255 | 224.0.0.9 | FF02::9(RIPng 仅支持 IPv6 网络) |
认证支持 | 不支持更新消息认证 | 支持更新消息认证 | – |
路由协议类型 | 无类别(Classful)路由协议 | 有类别(Classless)支持 | 发送无类别更新 |
进一步说明:
- RIP v1:由于不在路由更新中发送子网掩码信息,RIP v1 被称为无类别路由协议(Classful Routing Protocol)。
- RIP v2:由于在路由更新中发送子网掩码信息,RIP v2 被称为有类别路由协议(Classless Routing Protocol)。
调试命令
使用调试命令查看详细信息:
# debug ip rip
使用此命令查看路由器中配置的所有路由,例如针对路由器 R1:
R1# show ip route
使用此命令查看路由器中配置的所有协议,例如针对路由器 R1:
R1# show ip protocols
RIP 配置
考虑以下拓扑,其中包含三个路由器 R1、R2 和 R3:
R1:
- s0/0/1 接口的 IP 地址为 172.16.10.6/30
- fa0/0 接口的 IP 地址为 192.168.20.1/24
R2:
- s0/0/0 接口的 IP 地址为 172.16.10.2/30
- fa0/0 接口的 IP 地址为 192.168.10.1/24
R3:
- s0/1 接口的 IP 地址为 172.16.10.5/30
- s0/0 接口的 IP 地址为 172.16.10.1/30
- fa0/0 接口的 IP 地址为 10.10.10.1/24
配置 R1 的 RIP
R1(config)# router rip
R1(config-router)# network 192.168.20.0
R1(config-router)# network 172.16.10.4
R1(config-router)# version 2
R1(config-router)# no auto-summary
注意:no auto-summary
命令禁用了自动汇总功能。如果没有选择任何自动汇总,则在 RIP 版本 1 中,子网掩码将被视为有类的。
配置 R2 的 RIP
R2(config)# router rip
R2(config-router)# network 192.168.10.0
R2(config-router)# network 172.16.10.0
R2(config-router)# version 2
R2(config-router)# no auto-summary
配置 R3 的 RIP
R3(config)# router rip
R3(config-router)# network 10.10.10.0
R3(config-router)# network 172.16.10.4
R3(config-router)# network 172.16.10.0
R3(config-router)# version 2
R3(config-router)# no auto-summary
RIP 的不同计时器类型
1.更新计时器(Update Timer)
默认情况下,运行 RIP 的路由器每 30 秒交换一次路由信息。使用更新计时器,路由器会定期交换它们的路由表。
2.无效计时器(Invalid Timer)
如果在 180 秒内没有收到更新,则目标路由器将该路由视为无效。在这种情况下,目标路由器将该路由的跳数标记为 16。
3.保持计时器(Hold Down Timer)
这是路由器等待邻居路由器响应的时间。如果路由器在给定时间内无法响应,则其被宣布为不可用。默认值为 180 秒。
4.刷新计时器(Flush Timer)
如果某路由在刷新时间内没有响应,其条目将被删除。默认情况下,此时间为 60 秒。该计时器在路由被宣布无效后启动,总时间为 180 + 60 = 240 秒。
注意:所有这些计时器的时间都是可调的。以下命令用于更改计时器:
R1(config-router)# timers basic
R1(config-router)# timers basic 20 80 80 90
RIP 的应用场景
1.小型到中型网络
RIP 通常用于路由需求较简单的小型到中型网络。它易于配置和维护,是小型组织的流行选择。
2.旧式网络
一些旧式网络仍在使用 RIP,这些网络建立于更高级的路由协议开发之前。由于升级的成本和精力可能不值得,这些网络继续使用 RIP 作为其路由协议。
3.实验室环境
RIP 经常用于实验室环境进行测试和学习。它是一种简单易用的协议,非常适合教学用途。
4.备用或冗余路由
在某些网络中,RIP 可能作为主路由协议的备份或冗余协议使用。如果主协议发生故障或出现问题,RIP 作为备份可以提供支持。虽然效率不如其他路由协议,但在紧急情况下仍然有用。
RIP 的优点
1.简单性
RIP 是一种相对简单的协议,易于配置和管理,非常适合资源有限的小型到中型网络。
2.易于实现
RIP 实现简单,不需要太多技术专长即可设置和维护。
3.快速收敛
RIP 因其快速收敛时间而闻名,这意味着它能快速适应网络拓扑的变化并高效地路由数据包。
4.自动更新
RIP 会定期自动更新路由表,确保使用最新的信息来路由数据包。
5.低带宽开销
RIP 在交换路由信息时使用的带宽相对较低,非常适合带宽有限的网络。
6.兼容性强
RIP 与多种类型的路由器和网络设备兼容,便于集成到现有网络中。
RIP 的缺点
1.扩展性有限
RIP 的扩展性有限,不适合复杂拓扑的大型网络。RIP 的最大跳数为 15,对于较大的网络可能不够用。
2.收敛速度较慢
尽管 RIP 通常收敛较快,但与其他路由协议相比,其收敛速度可能较慢,从而导致网络性能的延迟和低效。
3.路由环路问题
RIP 有时会产生路由环路,从而导致网络拥塞并降低整体网络性能。
4.负载均衡支持有限
RIP 不支持复杂的负载均衡机制,这可能导致路由路径次优和网络流量分布不均。
5.安全漏洞
RIP 没有提供任何本地安全特性,容易受到伪造和篡改等攻击。
6.带宽使用低效
RIP 定期更新需要较多的带宽,这在带宽有限的网络中可能效率较低。
RIP 的局限性
1.网络流量增加
RIP 定期向邻近路由器执行更新,从而增加了网络流量。
2.跳数限制
由于 RIP 的最大跳数为 15,因此不适用于大型网络。
3.最近路径与最短路径的差异
RIP 在计算最短路径时并未考虑所有因素,可能导致最近路径和最短路径之间存在差异。
结论
RIP(路由信息协议)是一种距离矢量路由协议,通过跳数来确定网络中的最佳路径。它简单易用,非常适合小型到中型网络。
然而,RIP 也存在一些局限性,例如其最大跳数为 15,这使得其不适用于更大、更复杂的网络。对于大规模网络,更高级的路由协议(如 OSPF 或 EIGRP)更受欢迎。
RIP 常见问题解答
1.什么是 RIP 中的 Split Horizon?
Split Horizon 是 RIP 中用于防止路由环路的一种技术,确保路由器不会将从某一路由器学到的路由信息再发送回该路由器。
2.RIP 是否支持负载均衡?
是的,RIP 支持负载均衡,当具有相同跳数的多条路径通往同一目的地时,可以在多个路径间分配流量。
3.如何在路由器上配置 RIP?
可通过路由器的命令行界面(CLI)配置 RIP,输入特定命令以启用协议、指定要包含的网络并设置版本和认证选项。
4.什么是 RIP 中的 Route Poisoning?
Route Poisoning 是 RIP 中的一种方法,用于将某条路由标记为不可达,将其跳数设置为 16,从而快速通知其他路由器该路由失效。
原文出处:https://www.geeksforgeeks.org/routing-information-protocol-rip/
相关文章:
【网络协议】路由信息协议 (RIP)
未经许可,不得转载。 路由信息协议(Routing Information Protocol,简称 RIP)是一种使用跳数(hop count)作为路由度量标准的路由协议,用于确定源网络和目标网络之间的最佳路径。 文章目录 什么是…...
Linux 终端查看 nvidia 显卡型号
文章目录 写在前面1. 需求描述2. 实现方法方法一:方法二方法三: 参考链接 写在前面 自己的测试环境: Ubuntu20.04 1. 需求描述 Linux 终端查看 nvidia 显卡型号 2. 实现方法 方法一: 执行下列指令: sudo update…...
基于neurokit2的心电仿真数据生成实例解析
一 概念 NeuroKit2是一个开源的、社区驱动的、以用户为中心的Python库,可用于多种生理信号的分析处理(例如ECG、PPG、EDA、EMG、RSP),还包括用于特定处理步骤(如频率)的工具提取和过滤方法,并在…...
AMBA-APB
目录 1.APB 协议 2.APB信号列表 3.数据传输 3.1写传输(2种) 3.1.1 无等待状态的写传输 3.1.2有等待状态的写传输 3.2写选通信号 (PSTRB) 字节通道映射 3.3读传输(2种) 3.3.1 无等待状态的读传输 3.3.2有等待状态的读传…...
网安入门之PHP后端基础
PHP 基本概念详解 PHP是一种服务器端脚本语言,常用于动态网站开发和 web 应用程序。以下是 PHP 的基本概念与特点的详细说明: 1. PHP 文件的默认文件扩展名 PHP 文件的扩展名通常为 .php,例如 index.php。PHP 文件可以包含 PHP 代码、HTML…...
windows系统安装完Anaconda之后怎么激活自己的虚拟环境并打开jupyter
1.在win主菜单中找到Anaconda安装文件夹并打开终端 文件夹内有所有安装后的Anaconda的应用软件和终端窗口启动窗口 点击Anaconda Prompt(Anaconda)就会打开类似cmd的命令终端窗口,默认打开的路径是用户名下的路径 2.激活虚拟环境 使用命令…...
【C#特性整理】C#特性及语法基础
1. C#特性 1.1 统一的类型系统 C#中, 所有类型都共享一个公共的基类型. 例如,任何类型的实例都可以通过调用ToString方法将自身转换为一个字符串 1.2 类和接口 接口: 用于将标准与实现隔离, 仅仅定义行为,不做实现. 1.3 属性、方法、事件 属性: 封装了一部分对…...
龙蜥 配置本地yum源8.6----亲测
系统版本: 说明:丫丫的,内网服务安装了个龙蜥操作系统。内网不能访问互联网,所以就需要挂载yum源 用的以前的方法挂载,一直报错 [Couldnt open file /mnt/anolisos/repodata/repomd.xml] yum挂载的时候报错,奇葩!!!,龙蜥的挂载方法好像不一样。 解决: 一、上传并挂…...
Xshell日志录制
步骤 1:设置日志文件位置 打开 Xshell 软件,选择目标会话(或者创建一个新的会话)。右键点击会话名称,选择“属性”。在会话属性窗口中,找到“日志”选项卡。勾选“启用日志记录”。在“文件名”中设置日志…...
vue下载和上传的地址动态ip地址配置方法
vue3结合element-plus实现【下载文件】和【上传文件】的动态ip地址配置 效果图 一、修改【文件上传】静态地址 1、首先引入axios import axios from "/utils/request"; import { getToken } from "/utils/auth"; 定义 const importDialogVisible ref(…...
动手做计算机网络仿真实验入门学习
打开软件 work1 添加串行接口模块,先关电源,添加之后再开电源 自动选择连接 所有传输介质 自动连接 串行线 绿色是通的,红色是不通的。 显示接口。se是serial串行的简写。 Fa是fast ethernet的简写。 为计算机配置ip地址: 为服…...
LeetCode 面试题 17.10. 主要元素
LeetCode 面试题 17.10. 主要元素 数组中占比超过一半的元素称之为主要元素。给你一个 整数 数组,找出其中的主要元素。若没有,返回 -1 。请设计时间复杂度为 O(N) 、空间复杂度为 O(1) 的解决方案。 示例 1: 输入:[1,2,5,9,5,9,5…...
Hive之import和export使用详解
在hive-0.8.0后引入了import/export命令。 Export命令可以导出一张表或分区的数据和元数据信息到一个输出位置,并且导出数据可以被移动到另一个hadoop集群或hive实例,并且可以通过import命令导入数据。 当导出一个分区表,原始数据可能在hdf…...
SpringBoot数据字典字段自动生成对应code和desc
效果:接口会返回orderType,但是这个orderType是枚举的类型(1,2,3,4),我想多返回一个orderTypeDesc给前端展示,这样前端就可以直接拿orderTypeDesc使用了。 1. 定义注解 …...
HTML——16.相对路径
<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title></head><body><a href"../../fj1/fj2/c.html" target"_blank">链接到c</a><!--相对路径:-->…...
字——位级运算与有无符号数之间的比较
前言 本文整理和归纳《深入理解计算机系统》这本书的内容,但本文不会继续长篇大论地去将所有内容都总结,而是总结笔者认为容易遗忘或混淆或表述不清的内容。 字 首先字这个概念对于学习过《计算机体系结构》或《操作系统》的同学都不陌生,…...
Python爬虫教程——7个爬虫小案例(附源码)_爬虫实例
本文介绍了7个Python爬虫小案例,包括爬取豆瓣电影Top250、猫眼电影Top100、全国高校名单、中国天气网、当当网图书、糗事百科段子和新浪微博信息,帮助读者理解并实践Python爬虫基础知识。 包含编程资料、学习路线图、源代码、软件安装包等!【…...
‘Optional. get()‘ without ‘isPresent()‘ check
在Java中,Optional类被引入主要是为了解决NullPointerException的问题,它提供了一种更优雅的方式来处理可能为null的情况。Optional.get()方法用于获取Optional实例中包含的值,但如果Optional实例是空的(即没有值)&…...
015-spring-动态原理、AOP的xml和注解方式
强制使用cglib动态代理 spring-AOP的使用...
统计颜色Count Color(POJ2777)题解
有一个长度为L厘米板,L是一个正整数,所以我们可以把它均匀地划分成L个部分,分别从左到右编号为1,2……L,每一个部分长度都为1厘米。现在我们必须给每个部分涂色,一个部分一种颜色,要求完成以下两…...
Nginx 配置 SSL(HTTPS)详解
Nginx作为一款高性能的HTTP和反向代理服务器,自然支持SSL/TLS加密通信。本文将详细介绍如何在Nginx中配置SSL,实现HTTPS的访问。 随着互联网安全性的日益重要,HTTPS协议逐渐成为网站加密通信的标配。Nginx作为一款高性能的HTTP和反向代理服务…...
Day10补代码随想录 理论基础|232.用栈实现队列|225.用队列实现栈|20.有效的括号|1047.删除字符串中的所有相邻重复项
栈和队列理论基础 抽象认识 栈是先进后出(FIFO),队列是先进先出(LIFO) 队首(先进))队尾(后进)栈顶(后进)栈底(先进) 栈(Stack) 只在一端进行进出操作(只在一端进一端出)像个篮球框,取用篮球从一端进出。 /进栈 int a[1000];//足够大的栈空间 int top-1…...
pytorch基础之注解的使用--003
Title 1.学习目标2.定义3.使用步骤4.结果 1.学习目标 针对源码中出现一些注解的问题,这里专门写一篇文章进行讲解。包括如何自定义注解,以及注意事项,相信JAVA中很多朋友业写过,但是今天写的是Python哦。。。 2.定义 在 Python…...
2024-12-30-g++
title: 探秘 g:C 编程的得力编译器 date: ‘2024-12-30’ category: blog tags: gC 编程编译器技术代码生成与优化 sig: compiler archives: ‘2024-12’ author:way_back summary: g 作为专门用于 C 语言的编译器,在 C 开发领域占据关键地位。它凭借对…...
互联网十万个为什么之什么是微服务
微服务(Microservices)是一种软件架构设计模式,它将应用程序分解为小型、自治的服务单元,这些服务单元可以独立部署、扩展和维护,其中每一个服务单元也都是一个微服务。 基于微服务形成的软件架构风格称为微服务架构&…...
mysql子查询
子查询是嵌套在另一个 SELECT, INSERT, UPDATE, 或 DELETE查询的 SQL 查询。子查询可以在 WHERE 子句中、FROM 子句或 SELECT 列表中出现。 以下是一些使用 MySQL 子查询的常见示例: 1.在 WHERE 子句中使用子查询: SELECT * FROM Employees WHERE s…...
智能故障诊断和寿命预测期刊推荐
往期精彩内容: Python-凯斯西储大学(CWRU)轴承数据解读与分类处理 基于FFT CNN - BiGRU-Attention 时域、频域特征注意力融合的轴承故障识别模型-CSDN博客 基于FFT CNN - Transformer 时域、频域特征融合的轴承故障识别模型-CSDN博客 P…...
根据语言变化动态更新图片资源方案
根据语言变化动态更新图片资源方案 一、需求描述二、关于 Locale三、实现方案3.1 方案一(不可行)3.2 方案二(不可行)3.3 方案三 一、需求描述 Android 项目中引导页图片包含文字信息,由于应用是适配了三种语言&#x…...
Python世界:数据结构易错点小结
Python世界:数据结构易错点小结 总体list列表tuple元组Stringdict字典mapset 部分笔记汇总,持续刷新中。区别于其他笔记之处在于,主要记录易错点坑点。 总体 数据结构声明辨析 list []tuple () const listditc {} hashset res set(list) 数…...
Linux | Ubuntu零基础安装 nvm 管理nodejs
目录 介绍 项目地址 前置工具 安装 查看环境配置 更新环境变量 查看版本 查看 nodejs包 列表 安装nodejs 查看 nvm 状态 测试 nodejs 介绍 nvm是什么?你可以把它理解成 nodejs的管理软件,方便快速切换nodejs的版本,达到兼容状态 …...
flask后端开发(3):html模板渲染
目录 渲染模板html模板获取路由参数 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 渲染模板 这样就能够通过html文件来渲染前端,而不是通过return了 html模板获取路由参数...
HAL 库句柄
一、命名方式:句柄是h为首字母,后面接协议名称 比如:huart、hadc、hi2c等 二、句柄类型: 这里拿huart举例,它的类型是UART_HandleTypeDef 进去stm32f1xx_hal_uart.h之后发现句柄的结构定义有部分是灰色的 灰色的当U…...
53.最大子数组和
53.最大子数组和 思路:动态规划 dp[i]表示截止到i的最大连续子数组的和 dp[0]nums[0] dp[i]max(dp[i-1]nums[i],nums[i]) 代码: class Solution { public:int maxSubArray(vector<int>& nums) {vector<int> dp(nums.size());dp[0]…...
计算机网络 (16)数字链路层的几个共同问题
一、封装成帧 封装成帧是数据链路层的一个基本问题。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。封装成帧就是在一段数据的前后分别添加首部和尾部,构成了一个帧。接收端在收到物理层上交的比特流后…...
[OpenGL]使用glsl实现smallpt
一、简介 本文介绍了如何使用 OpenGL,使用 glsl 语言在 Fragment shader 中实现 smallpt。程序完成后可以得到以下渲染结果(samples per pixel, spp 16)。在程序中按下A,W可以左右平移,按下W,S可以前后平移: 二、s…...
数据结构与算法Python版 骑士周游问题与深度优先搜索
文章目录 一、图的应用-骑士周游问题二、图的深度优先搜索 一、图的应用-骑士周游问题 骑士周游问题 在一个88的国际象棋棋盘上,一个棋子“马”(骑士),按照“马走日”的规则,从一个格子出发,要走遍所有棋…...
HIVE数据仓库分层
1:为什么要分层 大多数情况下,我们完成的数据体系却是依赖复杂、层级混乱的。在不知不觉的情况下,我们可能会做出一套表依赖结构混乱,甚至出现循环依赖的数据体系。 我们需要一套行之有效的数据组织和管理方法来让我们的数据体系…...
WOFOST作物模型(3):敏感性分析
目录 一、定义参数范围二、采样生成参数样本三、运行不同参数组下的WOFOST四、计算敏感度与可视化1.敏感度2.二阶交互敏感度五、敏感变量对产量的影响结果可视化一、定义参数范围 使用TAGP(Total Above Ground Production),地上总产量 TSUM1,temperature sum from emergence…...
【2024年-6月-14日-开源社区openEuler实践记录】探索 test - tools:高效测试的开源宝库
开篇引言 大家好,我是 fzr123,在软件开发领域深耕多年,一直致力于探索各种提升效率的工具与技术。今天,我将为大家深入介绍一款在测试领域极具价值的开源项目——test - tools,它为开发者们提供了一系列强大的测试功能…...
go-xorm连接
package mainimport ("fmt"_ "github.com/go-sql-driver/mysql""time""xorm.io/xorm" )func MysqlDbContent() {//数据库基本信息var (userName string "root"password string "12345678"ipAddress string &…...
Java字节分割文件流
使用 Java 通过字节分割大文件并将其以文件流的方式读写的示例代码。这个代码展示了如何将一个大文件分割成多个小文件,并以字节流的方式操作文件。 完整代码示例 import java.io.*;public class FileSplitter {public static void main(String[] args) {// 原始文…...
【潜意识Java】深入详细理解分析Java中的toString()方法重写完整笔记总结,超级详细。
目录 一、toString() 方法是啥? (一)默认的 toString() 方法 (二)toString() 方法的作用 二、为啥要重写 toString() 方法? (一)提高代码的可读性 (二)…...
仙盟系统开发——启动app失败
var 返回 仙盟使者.Cyber_CallApp(VOAPP, 命令, 携带);...
使用ArcGIS Pro自带的Notebook计算多个遥感指数
在之前的分享中,我们介绍了如何使用ArcPy将GEE下载的遥感影像转为单波段文件。基于前面创建的单波段文件,我们可以一次性计算多种遥感指数,例如NDVI、EVI、NDSI等。我这里直接在ArcGIS Pro中自带的Notebook进行的运行。如下图所示,…...
深入Android架构(从线程到AIDL)_认识进程(Process)与IPC架构02
3、 设定IPC通信 -- 使用AndroidManifest.xml文件 在Android框架里,一个应用(程序)套件(Application Package)通常含有多个Java类(Class),这些类可以在同一个进程(Process)里执行;也可以在不同的进程里执行 。通常,一个进程…...
在K8S中,节点状态哪个组件负责上报?
在Kubernetes中,节点状态是kubelet组件负责定期上报的。Kubelet是运行在每个节点上的代理程序,它与Kubernetes Master节点上的控制面板组件紧密协作,以确保节点上的Pod能够正确运行。 kubelet的主要职责之一就是:与Kubernetes API…...
AI 神经网络在智能家居场景中的应用
在科技持续进步的当下,智能家居领域正经历着深刻变革,AI 神经网络技术的融入成为推动这一变革的关键力量,为家居生活带来了诸多显著变化与提升,本文将几种常见的AI算法应用做了一下总结,希望对物联网从业者有所帮助。 …...
C++基础:SGI STL二级空间配置器内存池
2024/12/14-2024/12/ : 这篇稍微写一下阅读SGI STL内存池的收获。 reference: [1] 深度剖析SGI STL二级空间配置器内存池源码 [2] C内存管理:new / delete 和 cookie [3] 侯捷 内存管理 文章目录 一、写在前面二、二级空间配置器解读2.1 从 malloc 和 fr…...
Python简介
Python 是一种高级编程语言,以其简洁易读的语法和强大的功能而广受欢迎。以下是对 Python 的详细简介: python官网:https://www.python.org/ python中文官网:Python中文网 官网 历史与起源: Python 由荷兰人 Guido…...
Linux之ARM(MX6U)裸机篇----7.蜂鸣器实验
一,蜂鸣器模块 封装步骤: ①初始化SNVS_TAMPER这IO复用为GPIO ②设置SNVS_TAMPPER这个IO的电气属性 ③初始化GPIO ④控制GPIO输出高低电平 bsp_beep.c: #include "bsp_beep.h" #include "cc.h"/* BEEP初始化 */ void beep_init…...