HCIA-Datacom跟官方路线学习
通过两次更换策略。最后找到最终的学习方案,华为ICT官网有对这个路线的学习,hcia基础有这个学习路线,hcip也有目录路线。所以,最后制定学习路线,是根据这个认证的路线进行学习了:
官网课程:课程详情 (huawei.com)
哔哩哔哩视频网课:HCIA04-常见网络设备_哔哩哔哩_bilibili
补充:完整版的官网课程:5.4.1 同网段数据通信全过程_哔哩哔哩_bilibili
发现,其实,这个网课的ppt资源或者是word资源,都是根据华为的培训教程 来的。所以资源就直接从官网下载就可以了:download (huawei.com)
这里有培训教程也有实验教程。而且官网每一章节还有测验,好吧,最后开始我的最终路线就是根据官网学习选定并进行下去了!!因为自己有一定基础了,有些重复知道的知识点就只做一个目录就略过了。(虽然说哔哩哔哩的那个网课是根据官网的资源来的,但是它们对于目录的划分更加的精细,可以作为参考)
第一章 数据通信网络基础
第二章 网络参考模型
学习目标:
▫ 理解数据的定义及传递过程
▫ 理解网络参考模型概念及优势
▫ 了解常见的标准协议
▫ 掌握数据封装与解封装过程
按照顺序来,先介绍了OSI七层模型、接着是TCP/IP对等五层模型。接着重点放在TCP/IP的五层模型上,一层一层的介绍。就不对每一层都进行理解了。只单独看一些还没记下的知识点:
TCP报文头部:
▫ Source Port:源端口,标识哪个应用程序发送。长度为16比特。
▫ Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
▫ Sequence Number:序号字段。 TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。
▫ Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。
▫ Header Length:头部长度,指出TCP报文头部长度,以32比特( 4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。
▫ Reserved:保留,必须填0。长度为3比特。
▫ Control bits:控制位,包含FIN、 ACK、 SYN等标志位,代表不同状态下的TCP数据段。
▫ Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。
▫ Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。
▫ Urgent:紧急指针,只有当URG标志置1时紧急指针才有效。 TCP的紧急方式是发送端向另一端发送紧急数据的一种方式。紧急指针指出在本报文段中紧急数据共有多少个字节(紧急数据放在本报文段数据的最前面)。长度为16比特。
▫ Options:选项字段(可选),长度为0-40字节。
• UDP报文头部:
▫ Source Port:源端口,标识哪个应用程序发送。长度为16比特。
▫ Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。
▫ Length:该字段指定UDP报头和数据总共占用的长度。可能的最小长度是8字节,因为
UDP报头已经占用了8字节。由于这个字段的存在, UDP报文总长不可能超过65535
字节(包括8字节的报头,和65527字节的数据)。
▫ Checksum:覆盖UDP头部和UDP数据的校验和,长度为16比特。
TCP和UDP的端口号:(考过)
• 客户端使用的源端口一般随机分配,目标端口则由服务器的应用指定;
• 源端口号一般为系统中未使用的,且大于1023;
• 目的端口号为服务端开启的应用(服务)所侦听的端口,如HTTP缺省使用80。
TCP的三次握手和四次挥手:
TCP的可靠性是根据序列号seq和确认序列号ACK实现TCP的可靠性和有序传输的!
虽然TCP支持可靠的传输,但是当传输的数据量比较大的时候,而接收一方接收的接口很小。就会造成数据流溢出或丢失的情况,这个时候就要用到窗口的滑动机制。来控制数据传输速率。
数据链路层有一个ARP协议,这个协议可以实现,根据IP获取到目标MAC地址。需要注意,比如使用Ping命令的时候,它的本质是icmp协议。而使用这个命令之前,是需要经过ARP协议的。
第三章 华为VRP系统
学习目标:
▫ 了解VRP的基础知识
▫ 掌握CLI界面的使用
▫ 掌握命令行的基本命令
主要就是登录设备。然后就是远程登录的话,有三种级别的权限需要记忆一下。
第四章 网络层协议以及IP地址编码
网络层提供了无连接数据传输服务, 即网络在发送数据报文时不需要先建立连接, 每一个IP数据报文独立发送。
学习目标:
▫ 描述网络层的主要协议
▫ 描述IPv4地址的概念、分类及特殊IP地址
▫ 计算IP网络以及IP子网
▫ 掌握IP网络地址规划方式
在网络层,最重要的就是IP协议,其中以太网头部或者TCP头部这两个都是要到对应的层去添加相应的协议信息。在网络层,只添加IP头部的信息。现在对IP头部的信息进行剖析。
IP Packet( IP数据包),其包头主要内容如下:
▫ Version: 4 bit, 4:表示为IPv4; 6:表示为IPv6。
▫ Header Length: 4 bit,首部长度,如果不带Option字段,则为20,最长为60。
▫ Type of Service: 8 bit,服务类型。只有在有QoS差分服务要求时,这个字段才起作用。
▫ Total Length: 16 bit,总长度,整个IP数据包的长度。
▫ Identification: 16 bit,标识,分片重组时会用到该字段。
▫ Flags: 3 bit,标志位。
▫ Fragment Offset: 13 bit,片偏移,分片重组时会用到该字段。
▫ Time to Live: 8 bit,生存时间。
▫ Protocol: 8 bit,协议:下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
▪ 常见值:
− 1: ICMP, Internet Control Message;
− 2: IGMP, Internet Group Management;
− 6: TCP , Transmission Control Protocol;
− 17: UDP, User Datagram Protocol。
▫ Header Checksum: 16 bit,首部检验和。
▫ Source IP Address: 32 bit,源IP地址。
▫ Destination IP Address: 32 bit,目的IP地址。
▫ Options:可变,选项字段。
▫ Padding:可变,填充字段,全填0。
对第二行详解:
为什么用到分片和前面传输层TCP用到滑动窗口的区别在哪?分片就是因为报文太大了,需要分割报文才能发送的过去,而传输层的滑动窗口是为了控制传输速率,防止速率的不匹配造成丢包。
• Identification: 16 bit,发送主机赋予的标识,分片重组时会用到该字段。
• Flags: 3 bit,标志位。
▫ 保留段位: 0,保留。
▫ 不分段位: 1,表示“不能分片”; 0,表示“能分片”。
▫ 更多段位: 1,表示“后面还有分片”; 0,表示“最后一个数据片”。
• Fragment Offset: 13 bit,片偏移,分片重组时会用到该字段。指出较长的分组在分片后,该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。
注意一下TTL字段:
为避免环路导致的网络拥塞, IP报文头中包含一个生存时间TTL( Time To Live)字段。报文每经过一台三层设备, TTL值减1。初始TTL值由源端设备设置。当报文中的TTL降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误消息。(注意:网络设备也可被配置为不向源端发送ICMP错误消息。)
协议号,大概就是源端发送给目标端之后,目标端看一下协议号多少,然后解封装的时候发给对应的上一层协议,或者就是对应ICMP协议给源端发送错误消息。
• 目的端的网络层在接收并处理报文以后,需要决定下一步对报文如何处理。 IP报文头中的协议字段标识了将会继续处理报文的协议。
• 该字段可以标识网络层协议,如ICMP( Internet Control Message Protocol,因特网控制报文协议,对应值0x01);也可以标识上层协议,如TCP( Transmission Control Protocol,传输控制协议,对应值0x06)、 UDP( User Datagram Protocol,用户数据包协议,对应值0x11)。
然后是子网划分,略过。
接着是ICMP协议,重点。ICMP是网络层被封装在IP协议里面的。辅助IP用的。
ICMP消息:
▫ ICMP消息封装在IP报文中, IP报文头部Protocol值为1时表示ICMP协议。
▫ 字段解释:
▪ ICMP消息的格式取决于Type和Code字段,其中Type字段为消息类型, Code字
段包含该消息类型的具体参数。
▪ 校验和字段用于检查消息是否完整。
▪ 消息中包含32 bit的可变参数,这个字段一般不使用,通常设置为0。
− 在ICMP重定向消息中,这个字段用来指定网关IP地址,主机根据这个地
址将报文重定向到指定网关。
− 在Echo请求消息中,这个字段包含标识符和序号,源端根据这两个参数
将收到的回复消息与本端发送的Echo请求消息进行关联。尤其是当源端
向目的端发送了多个Echo请求消息时,需要根据标识符和序号将Echo请
求和回复消息进行一一对应。
对ICMP的类型详解:
IPv4地址配置需要注意:
• 物理接口:物理接口是指网络设备上实际存在的接口,分为负责承担业务传输的业务接口和负责管理设备的管理接口,例如GE业务接口和MEth管理接口。
• 逻辑接口:逻辑接口是指能够实现数据交换功能但物理上不存在、需要通过配置建立的接口,需要承担业务传输,例如VLANIF接口、 Loopback接口。
▫ Loopback接口:用户需要一个接口状态永远是Up的接口的IP地址时,可以选择Loopback接口的IP地址。
▪ Loopback接口一旦被创建,其物理状态和链路协议状态永远是Up,即使该接口上没有配置IP地址。
▪ Loopback接口配置IP地址后,就可以对外发布。 Loopback接口上可以配置32位掩码的IP地址,达到节省地址空间的目的。
▪ Loopback接口不能封装任何链路层协议,数据链路层也就不存在协商问题,其协议状态永远都是Up。
▪ 对于目的地址不是本地IP地址,出接口是本地Loopback接口的报文,设备会将其直接丢弃。
第五章 以太网交换基础
学习目标:
▫ 描述以太网的基本概念
▫ 区分MAC地址的类型
▫ 描述二层交换机的工作流程
▫ 描述MAC地址表的构成与形成过程
1. 以太网协议介绍
2. 以太网帧介绍
3. 以太网交换机介绍
4. 同网段数据通信全过程
早期以太网存在冲突域,冲突域就是,比如说,在一个电话里面,一个用户在说话,而另一个用户也再说。就会导致说话的声音听不清。于是就提出了CSMA/CD协议,先进行检测是否信道空闲。后面就是交换式以太网,通过交换机就可以分割冲突域。
广播域,省略了。
接着是以太网帧,它属于数据链路层。
数据帧的总长度为64-1518字节,这样设计的原因是什么?(另外,以太网口的最大传输单元是1500字节,即MTU=1500B。)
▫ 以太网中,最小帧长为64字节,这是由最大传输距离和CSMA/CD机制共同决定的。
▪ 规定最小帧长是为了避免这种情况发生: A站点已经将一个数据包的最后一个Bit发送完毕,但这个报文的第一个Bit还没有传送到距离很远的B站点。 B站点认为线路空闲继续发送数据,导致冲突。
▪ 高层协议必须保证Data域至少包含46字节,这样加上以太网帧头的14字节和帧尾的4字节校验码正好满足64字节的最小帧长,如果实际数据不足46个字节,则高层协议必须填充一些数据单元。
▫ 而出于对传输效率和传输可靠性的折中考虑,使得以太网帧的最大长度为1518字节,对应IP数据包就是1500字节。
▪ 较大的帧长度,数据的有效传输效率会更高;但是数据帧过长,传输时会占用共享链路过多的时间,对时延敏感应用造成极大的影响。
▪ 因此最终选择了一个折中的长度: 1518字节的数据帧长,对应1500字节的IP数据包长度,这就是最大传输单元MTU的由来。
帧类型:需要注意,像单播、组播、广播这三种帧类型,指的是节点。并不是真正意义上的计算机的网卡MAC地址。比如,通过ICMP测试网络连通性的时候,先通过ARP协议获取目标主机的MAC地址,这个时候是先发送广播的以太网帧,但是IP协议里面封装的目标MAC地址是0000。只是以太网帧是FFFF。
接着学习,在以太网中,交换机的工作原理,主要介绍二层交换机 ,原理省略。大概原理就是学习和转发。
交换机的3种数据帧处理行为:泛洪、转发和丢弃。
需要注意,MAC地址表中动态学习的表项并非永远有效,每一条表项都有一个生存周期,到达生存周期仍得不到更新的表项将被删除,这个生存周期被称作老化时间。例如华为S系列交换机的老化时间缺省值是300秒。
第六章 VLAN原理与配置
• 以太网是一种基于CSMA/CD的数据网络通信技术, 其特征是共享通信介质。 当主机数目较多时会导致安全隐患、 广播泛滥、 性能显著下降甚至造成网络不可用。
• 在这种情况下出现了VLAN (Virtual Local Area Network)技术解决以上问题。
学习目标:▫ 了解VLAN技术的产生背景▫ 识别数据所属的VLAN▫ 掌握不同的VLAN划分方式▫ 描述网络中VLAN数据的通信过程▫ 掌握VLAN的基本配置
1. 什么是VLAN
2. VLAN的基本概念
3. VLAN的应用
4. VLAN的配置示例
为什么提出VLAN,因为在二层以太网中,是处于同一个广播域的,当第一次发送报文的时候就容易泛洪。而VLAN就可以解决这种处于同一个广播域出现泛洪的情况。注意,这个技术是应用于二次以太网的,三层以太网是通过IP交换信息,存在TTL值。不容易出现闭环环路的情况。
• VLAN的特点:
▫ 一个VLAN就是一个广播域,所以在同一个VLAN内部,计算机可以直接进行二层通信;而不同VLAN内的计算机,无法直接进行二层通信,只能进行三层通信来传递信息,即广播报文被限制在一个VLAN内。
▫ VLAN的划分不受地域的限制。
• VLAN的好处:
▫ 灵活构建虚拟工作组。
▫ 限制广播域,节省了带宽,提高了网络处理能力。
▫ 增强局域网的安全性:一个VLAN内的用户不能和其它VLAN内的用户直接通信。
▫ 提高了网络的健壮性:故障被限制在一个VLAN内。
PRI: 3 bit, Priority,表示数据帧的优先级,用于QoS。
▪ 取值范围为0~ 7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级
高的数据帧。
VID: 12 bit, VLAN ID,表示该数据帧所属VLAN的编号。
▪ VLAN ID取值范围是0~ 4095。由于0和4095为协议保留取值,所以VLANID的有效取值范围是1~ 4094。
▪ 交换机利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内。
Vlan的划分方式,略。
交换机的接口类型三种,略。需要注意,华为设备默认的接口类型是Hybrid。
Access接口特点:
▫ 仅允许VLAN ID与接口PVID相同的数据帧通过。
Trunk接口特点:
▫ Trunk接口仅允许VLAN ID在 允许通过列表 中的数据帧通过。
▫ Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag(即剥除Tag)。也就是说,和access接口类似,trunk也会只剥夺一个Vlan帧。
一定需要注意,在Trunk交换的PVID默认1最好。而且也只有trunk链路的一般是默认为1。像比如Access链路,在配置的vlan的时候就设置为对应的Vlan列表了。
对于Hybrid接口,除了要配置PVID外,还存在两个允许通过的VLAN ID列表,一个是Untagged VLAN ID列表,另一个是Tagged VLAN ID列表,其中VLAN 1默认在Untagged VLAN列表中。这两个允许通过列表中的所有VLAN的帧都是允许通过这个Hybrid接口的。
• Hybrid接口特点:
▫ Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过。
▫ Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag。
▫ 与Trunk最主要的区别就是,能够支持多个VLAN的数据帧,不带标签通过。
小结:Access接口发出的数据帧肯定不带Tag; Trunk接口发出的数据帧只有一个VLAN的数据帧不带Tag,其他都带VLAN标签; Hybrid接口发出的数据帧可根据需要设置某些VLAN的数据帧带Tag,某些VLAN的数据帧不带Tag。
Vlan配置的命令,略。需要注意,只有aceess的配置,需要port default vlan vlan-id。就是设置缺省vlan,也就是PVID的值。像trunk的设置,就是设置allow-pass,一般不需要改PVID。
问题:如果一个Trunk接口的PVID是5, 且端口下配置port trunk allow-pass vlan 2 3, 那么哪些VLAN的流量可以通过该Trunk接口进行传输?
答:执行了port trunk allow-pass vlan 2 3命令后, VLAN 5的数据帧不能在此接口上进行传输。VLAN 1的数据默认可以通过Trunk接口进行传输。所以VLAN 1, VLAN 2和VLAN 3的数据帧可以在Trunk接口上传输。
总结:通过VLAN技术, 可以将物理的局域网划分成多个广播域, 实现同一VLAN内的网络设备可以直接进行二层通信, 不同VLAN内的设备不可以直接进行二层通信。
文章有点长了,进行分割,第二部分:
HCIA-Datacom跟官方路线学习第二部分-CSDN博客
相关文章:

HCIA-Datacom跟官方路线学习
通过两次更换策略。最后找到最终的学习方案,华为ICT官网有对这个路线的学习,hcia基础有这个学习路线,hcip也有目录路线。所以,最后制定学习路线,是根据这个认证的路线进行学习了: 官网课程:课程…...

MySQL三大日志详细总结(redo log undo log binlog)
MySQL日志 包括事务日志(redolog undolog)慢查询日志,通用查询日志,二进制日志(binlog) 最为重要的就是binlog(归档日志)事务日志redolog(重做日志)undolog…...

XXL-Job详解(二):安装部署
目录 前言环境下载项目调度中心部署执行器部署 前言 看该文章之前,最好看一下之前的文章,比较方便我们理解 XXL-Job详解(一):组件架构 环境 Maven3 Jdk1.8 Mysql5.7 下载项目 源码仓库地址链接: https://github.…...

支持Arm CCA的TF-A威胁模型
目录 一、简介 二、评估目标 2.1 假定 2.2 数据流图 三、威胁分析 3.1 威胁评估 3.1.1 针对所有固件镜像的一般威胁 3.1.2 引导固件可以缓解的威胁...

【Web端CAD/CAE文字标注】webgl+canvas 2d实现文字标注功能
一、需求背景 在CAD/CAE领域经常会遇到显示节点编号这种需求,效果如下图: 本文介绍如何在WebGL中实现文字的显示,对于如何在OpenGL中实现请绕路。 二、实现原理 Canvas是HTML5提供的元素,用于在网页上绘制图形,其支…...

对话框、内部控件位置
一、了解下几个函数 1、movewindow 了解下:MoveWindow 自己塞进去的是屏幕坐标 CrvtFaultRodDlg* dlg new CrvtFaultRodDlg();if (dlg ! NULL){BOOL ret dlg->Create(IDD_DlgCrvtFaultRod, NULL);if (ret) //Create failed.{RECT rect;{RECT rect1;dlg->…...

【GraphQL 】将GraphQL API添加到Postgres数据库的六种简单方法,比较Hasura、Prisma和其他
PostgreSQL是世界上最流行的开源SQL数据库之一,GraphQL是一种日益流行的API规范。 将经过验证和众所周知的PostgreSQL与GraphQL带来的API创建新方式集成在一起不是很好吗? 在本文中,我们讨论了六个不同的项目,它们试图将SQL与Gr…...

每日一题(LeetCode)----哈希表--有效的字母异位词
每日一题(LeetCode)----哈希表–有效的字母异位词 1.题目(242. 有效的字母异位词) 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词。 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互…...

【设计模式】行为型模式-第 3 章第 6 讲【中介者模式】
目录 定义 场景描叙 目的 主要解决 实现 基本类图 案例代码...

Django 通过 Trunc(kind) 和 Extract(lookup_name) 参数进行潜在 SQL 注入 (CVE-2022-34265)
漏洞描述 Django 于 2022 年6月4 日发布了一个安全更新,修复了 Trunc() 和 Extract() 数据库函数中的 SQL 注入漏洞。 参考链接: Django security releases issued: 4.0.6 and 3.2.14 | Weblog | Djang…...

Vue3-toRef 和 toRefs 函数
Vue3-toRef 和 toRefs 函数 功能:可以简化语法调用。toRef 函数执行时会生成一个对象 ObjectRefImpl ,是一个引用对象,具有value属性(getter 和 setter 属性)语法格式:toRef(对象名, 对象中的属性名) toRe…...

STM32---时钟树
写在前面:一个 MCU 越复杂,时钟系统也会相应地变得复杂,如 STM32F1 的时钟系统比较复杂,不像简单的 51 单片机一个系统时钟就 可以解决一切。对于 STM32F1 系列的芯片,其有多个时钟源,构成了一个庞大的是时…...

【功能测试】软件系统测试报告
1.引言 1.1.目的 本测试报告为 xxx 系统测试报告,本报告目的在于总结测试阶段的测试及测试结果分析,描述系统是否达到需求的目的。 本报告预期参考人员包括测试人员、测试部门经理、开发人员、项目管理人员等。 1.2.参考文档 《xxxx系统需求规格说明…...

CentOS一键安装docker脚本
CentOS安装Docker一键脚本 在CentOS上安装Docker是许多项目中常见的任务之一。为了简化这个过程,你可以使用下面的一键脚本。 #!/bin/bash# 卸载旧版本(如果有) sudo yum remove -y docker \docker-client \docker-client-latest \docker-c…...

PostGIS学习教程八:空间关系
PostGIS学习教程八:空间关系 到目前为止,我们只使用了测量(ST_Area、ST_Length)、序列化(ST_GeomFromText)或者反序列化(ST_AsGML)几何图形(geometry)的空间…...

ESP32-Web-Server编程- 通过文本框向 Web 提交数据
ESP32-Web-Server编程- 通过文本框向 Web 提交数据 概述 前述章节我们通过简单 HTML、AJAX、Websocket、SSE 在网页上显示数据,通过网页上的按钮控制 ESP32 的行为。从本节开始,我们将进一步了解通过网页与 ESP32 进行交互的方法。 实现更复杂的交互功…...

NAT网络地址转换
目录 什么是nat nat 实验如何使用SNAT 和 DNAT 实验环境 内网连接外网 1.给网关服务器添加网卡(两张网卡) 2.查看新添加的网卡名 编辑网卡配置 3.开启路由转发 4.打开内网服务器 5.切换到外网服务器(192.168.17.30࿰…...

PyTorch模型训练过程内存泄漏问题解决
近日,在模型训练过程中,发现过一段时间后进程会被kill,观察发现是由于内存泄漏问题造成的。通过逐行代码注释,发现问题在于数据集中的此行代码: info self.data_list[index]这里,self.data_list是dataset…...

【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据
【matlab程序】matlab利用工具包nctool读取grib2、nc、opendaf、hdf5、hdf4等格式数据 引用: B. Schlining, R. Signell, A. Crosby, nctoolbox (2009), Github repository, https://github.com/nctoolbox/nctoolbox Brief summary: nctoolbox is a Matlab toolbox…...

pytorch训练模板
来源:http://worthpen.top/#/home/blog?blogpot-blog36.md 引言 本项目实现了基于PyTorch Lightning的神经网络训练和测试管道。项目除了实现PyTorch Lightning的工作流外,还实现了通过任务池在训练过程中添加任务、k折交叉验证、将训练结果保存在.cv…...

代码随想录二刷 |字符串 |反转字符串
代码随想录二刷 |字符串 |反转字符串 题目描述解题思路 & 代码实现 题目描述 344.反转字符串 编写一个函数,其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间,你必须…...

Rust语言入门教程(九) - 结构体
格式及语法 在其他很多编程语言中,有类(Class)的存在,在Rust中,我们没有类(Class)的概念,我们使用结构体(Struct)。 与一个结构体相关的有以下几个部分: 数据字段方法关联函数 声明一个结构体及其字段的格式如下&am…...

如何使用Qchan搭建更好保护个人隐私的本地图床并在公网可访问
文章目录 前言1. Qchan网站搭建1.1 Qchan下载和安装1.2 Qchan网页测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar云端设置2.2 Cpolar本地设置 3. 公网访问测试总结 前言 图床作为云存储的一项重要应用场景,在大量开发人员的努力下,已经开发出大…...

AI伪原创软件-AI伪原创工具下载
在当今数字化时代,创作者们在追求独特创意的同时,也面临着时间和灵感的双重挑战。AI伪原创技术应运而生,为创作者提供了一种快捷而便利的解决方案。本文将专心分享两款备受瞩目的AI伪原创工具,147SEO伪原创、百度文心一言伪原创&a…...

【python脚本】获取OneNET数据写入本地文件
#!/usr/bin/env python # -*- coding: utf-8 -*- # pip install prettytable import time import urllib.request as req import json import os# 设备ID、Key # ESP-12F deviceId "1047311396" APIKey "z0Yq8d3P16l2SbEwuZcXZuCidM"# 上传函数 def OneN…...

5 存储器映射和寄存器
文章目录 5.3 芯片内核5.3.1 ICache5.3.2 DCache5.3.3 FlexRAM 5.4 存储器映射5.4.1 存储器功能划分5.4.1.1 存储器 Block0 内部区域功能划分5.4.1.2 储存器 Block1 内部区域功能划分5.4.1.3 储存器 Block2 内部区域功能划分 5.5 寄存器映射5.5.1 GPIO1的输出数据寄存器 5.3 芯…...
决策树学习
1. 背景 DT决策树是一种基本的分类与回归方法,其学习时,利用训练数据,根据损失函数最小化原则建立DT模型。 分类DT主要优点:模型具有可读性,分类速度快。 由DT树的根结点到叶结点的每一条路径构建一条规则&…...

如何在Ubuntu系统上安装Git
简单介绍 Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。Git是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。Git 与常用的版本控制工具CVS,Subversion 等不同,它采用了分布式版…...

Leetcode.974 和可被 K 整除的子数组
题目链接 Leetcode.974 和可被 K 整除的子数组 rating : 1676 题目描述 给定一个整数数组 n u m s nums nums 和一个整数 k k k ,返回其中元素之和可被 k k k 整除的(连续、非空) 子数组 的数目。 子数组 是数组的 连续 部分。 示例 1&…...

Vue打包错误UnhandledPromiseRejectionWarning: CssSyntaxError
错误详情如下: building for production...Error processing file: static/css/app.3d5caae7aaba719754d7d5c30b864551.css (node:33011) UnhandledPromiseRejectionWarning: CssSyntaxError: /Users/yt/Documents/BM/sims-plus/sims-website/static/css/app.3d5caa…...