OSPF路由协议

随着Internet技术在全球范围的飞速发展,OSPF已成为目前应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第2版。

OSPF 概述

OSPF的特性及术语

OSPF的特性

OSPF(Open Shortest Path First,开放最短路由优先协议)是一种典型的链路状态路由协议。在 IP 网络上,它通过收集和传递自治系统的链路状态来动态地发现并传播路由。采用OSPF的路由器彼此交换并保存整个网络的链路信息,从而掌握整个网络的拓扑结构,独立计算路由。因为RIP路由协议不能服务于大型网络,所以,IETF的IGP工作组特别开发出链路状态协议——OSPF。OSPF作为一种内部网关协议(Interior Gateway Protocol,IGP),用于在同一个自治系统中的路由器之间交换路由信息。
OSPF的特性如下:
(1)快速收敛;
(2)能够适应大型网络;
(3)能够正确处理错误路由信息;
(4)使用区域,能够减少单个路由器的CPU负担,构成结构化的网络;
(5)是无类别的路由协议,完全支持CIDR和VLSM;
(6)支持多条路径等价负载均衡;
(7)使用组播地址来进行信息互通,减少了非OSPF路由器的负载;
(8)使用路由标签来表示来自外部区域的路由;
(9)支持简单口令和MD5认证;
(10)OSPF路由协议的管理距离是110;
(11)OSPF路由协议采用开销(Cost)作为度量标准。

术语

(1)链路(Link):链路就是路由器用来连接网络的接口。
(2)链路状态(Link State):用来描述路由器接口及其与邻居路由器的关系。所有链路状态信息构成链路状态数据库。
(3)最短路径优先(SPF)算法:SPF算法是OSPF路由协议的基础。SPF算法有时也被称为Diikstra算法,这是因为最短路径优先算法是Dijkstra发明的。利用SPF,路由器独立地计算出到达任意目的地的最佳路由。
(4)区域(Area):指有相同的区域标志的一组路由器和网络的集合。在同一个区域内的路由器有相同的拓扑结构数据库。
(5)自治系统(Autonomous System):采用同一种路由协议交换路由信息的路由器及其网络构成一个自治系统。
(6)成本(Cost):也称为链路开销,用来描述从接口发送数据包所需要花费的代价带宽越大,开销越小。成本的计算公式为: 1 0 8 / 带宽( b p s ) 10^8/带宽(bps) 108/带宽(bps,带宽是接口下使用bandwidth命令设置的值。例如,默认情况下,快速以太网的带宽为100Mbps,所以开销是1。
如结果出现小数,会舍弃小数部分取整(如果整数部分为0,则Cost记为1)
(7)邻接(Adjacencies):路由器之间以交换路由信息为目的而建立起来的一种关系。
(8)链路状态数据库(Link State Database):代表网络的拓扑结构,其中包含了网络中所有的路由器的链路状态信息。在一个区域内的所有的路由器有着相同的链路状态数据库。
(9)拓扑结构数据库(Topological Database):也叫链路状态数据库。
(10)转发数据库(Forwarding Database)/路由表(Routing Table):每个路由器对自己的拓扑结构数据库运行SPF算法得出的路由条目,每台路由器的路由表是不相同的。

邻居及邻接关系

OSPF网络类型

根据路由器所连接的物理网络不同,OSPF将网络主要划分为四种类型:广播多路访问(Broadcast Multi Access,BMA)型、非广播多路访问(None Broadcast Multi Access,NBMA)型、点到点型(Point-to-Point)、点到多点型(Point-to-MultiPoint)。

网络类型确定性特性是否选举DRHello间隔/sDead间隔/s
广播多路访问Ethernet1040
非广播多路访问Frame Relay、X.2530120
点到点PPP、HDLC1040
点到多点管理员配置30120

Hello协议

在网络中,OSPF路由器可以周期性发送Hello包来建立和维持邻接关系。管理OSPF的Hello包交换的规则称为Hello协议(Hello Protocol)。Hello包的发送周期与OSPF网络类型有关。当Hello包中的几个字段的内容互相一致时,相邻的OSPF路由器才有可能形成Neighbor关系,Neighbor保存在 Neighbor表里。Hello协议的目的如下:
(1)用来发现OSPF Neighbor;
(2)Hello包包含了多个需要OSPF路由器协商的参数,以形成Neighbor的关系;
(3)可以用来维持邻接关系;
(4)用来确定DRBDR路由器的选择。尽管Hello包比较小,但它含有OSPF的报头。

各个字段的含义如下:
(1)版本:定义所采用的OSPF路由协议的版本。
(2)类型:定义OSPF报文类型,OSPF数据包共有五种。
(3)包长度:定义整个数据包的长度。
(4)路由器ID:路由器的32位长的一个惟一标识符,以IP地址来表示。
(5)区域ID:用于区分OSPF数据包属于的区域号,所有的OSPF数据包都属于个特定的OSPF区域。
(6)校验和:用于标记数据包在传递时有无错误。
(7)身份认证类型:定义OSPF认证类型。OSPF认证类型有如下3种:
0 表示不进行认证,是默认的类型;
1 表示采用简单口令认证;
2 表示采用MD5认证
(8)身份认证:包含OSPF认证信息,长为8个字节。
(9)网络掩码:指发送接口的网络掩码,必须与接收接口的网络掩码相同,以确保它
们位于同一个网段中。
(10)Hello间隔:邻居路由器发送Hello包的周期。
(11)路由器优先级:在选择DR和BDR时使用,优先级越高,被选为DR或BDR的可能性越大。每个接口上都会有优先级,如果优先级为0时,表示不参加DR、BDR选举。
(12)失效间隔:路由器在认为其邻居路由器失效之前等待接收来自邻居Hello包的时间。默认是Hello间隔的4倍。
(13)指定路由器(DR)和备用指定路由器(BDR):在多路访问网络上可能存在多个路由器,为了避免路由器之间建立完全邻接关系而引起的大量开销,OSPF要求在区域中选举一个
DR,每个路由器都与之建立完全邻接关系。DR负责收集所有的链路状态信息,并发布给其他路由。选举DR的同时也选举出一个BDR,在DR失效的时候,BDR 担负起DR的职责,而且所有其他路由器只与DR和BDR建立邻接关系,出于这个原因,DR和BDR有它们自己的组播地址 224.0.0.6。当DR和BDR需要发送一个链路状态更新(Link State Update,LSU)时,它会将更新发送给组播地址 224.0.0.5(对应所由路由器),而非DR/BDR路由器将它们的链路状态更新发送到地址224.0.0.6。
(14)邻居:是与之交换更新以同步数据库的另一台路由器。

OSPF状态

OSPF路由协议依靠5种不同的数据包来识别它们的邻居,并更新链路状态信息。

类型描述
Type 1:HelloOSPF使用Hello分组建立和维护邻接关系。在一个路由器能够给其他路由器分发它的邻居信息前,必须先问候它的邻居们。
Type 2:数据库描述(Database Description,DBD)分组DBD分组不包含完整的“链路状态数据库”信息,只包含数据库中每个条目的概要。当一个路由器首次连入网络,或者刚刚从故障中恢复时,它需要完整的“链路状态数据库”信息。此时,该路由器首先通过hello分组与邻居们建立双向通信关系,然后将会收到每个邻居反馈的DBD分组。新连入的这个路由器会检查所有概要,然后发送一个或多个链路状态请求分组,取回完整的条目信息。
Type 3:链路状态请求(Link State Request,LSR)分组LSR分组用来请求邻居发送其链路状态数据库中某些条目的详细信息。当一个路由器与邻居交换了数据库描述分组后,如果发现它的链路状态数据库缺少某些条目或某些条目已过期,就使用LSR分组来取得邻居链路状态数据库中较新的部分。
Type 4:链路状态更新(Link State Update,LSU)分组LSU分组被用来应答链路状态请求分组,也可以在链路状态发生变化时实现洪泛(flooding)。在网络运行过程中,只要一个路由器的链路状态发生变化,该路由器就要使用LSU,用洪泛法向全网更新链路状态。
Type 5:链路状态确认(Link State Acknowledgment,LSAck)分组LSAck分组被用来应答链路状态更新分组,对其进行确认,从而使得链路状态更新分组采用的洪泛法变得可靠。

在OSPF邻接关系建立的过程中,接口可以处于下面7种状态之一,并且从Down状态到FullAdiacency状态,逐步进行。
(1)Down
没有收到任何Hello包的时候,或是在DeadInterval中,没有收到Hello包。
(2)Init
收到第一个Hello包,就进入Init状态。路由器在建立任何关系之前必须先从一个邻居路由器那里收到一个 Hello包。
(3)Two-Way
当路由器看到自己的路由器ID在邻居发来的Hello包里,就宣布与对方进入Two-Way状态。如果是多路访问型网络,就进入DR与BDR选举的过程。

(4)Exstart
Exstart状态是用DBD(Database Description,数据库描述)数据包建立的,两台路由器通过DBD数据来决定Master/Slave关系,并利用DBD数据包来交换数据库信息。
(5)Exchange
邻居路由器使用DBD数据包来相互发送它们的链路状态信息。
(6)Loading
在相互描述各自的链路状态数据库后,路由器用LSR数据包来请求更新完整的信息。当路由器收到一个LSR数据包后,它会用LSU进行回应,LSU数据包需要LSAck进行确认。
(7)Full Adiacency
完成了LSA的交换,路由器进入Full Adjacency状态。每台路由器都维护着一张邻居路由器列表。

OSPF协议配置

  • OSPF在有组播发送能力的链路层上以组播地址发送协议报文,既达到了广播的作用,又最大程度地减少了对其他网络设备的干扰。
  • OSPF可以划分区域,路由更新信息只在本区域内传播,不同域间不交换路由信息,以减少路由存储和维护的信息量。其中,区域是在逻辑上将路由器划分为不同的区域,不同的区域间通过ABR(边界路由器)来传递路由信息。划分区域给OSPF协议的处理带来了很大的变化。每一个网段必须属于一个区域,或者说每个运行OSPF协议的接口必须指明属于某一特定的区域,每个区域用区域号(Area ID)来标识。区域号是一个32位的无符号整数,范围0~4 294 967 295,其中区域ID为0(也可以表示为0.0.0.0)时表示的是主干区域。

OSPF基本配置命令说明

  1. router ospf:该命令用来启动OSPF进程,命令格式为“router ospf <Process ID>”,其中Process ID(PID)是OSPF的进程号,它的范围是 1~65 535,process ID可以在指定范围内随意设置,它只对本地路由器内部有意义,不同的路由器PID可以相同,也可以不同。
  2. network ip:该命令用来定义参与OSPF的子网地址,它的命令的格式为“network ip <子网号> <子网掩码的反码 > area <区城号>”,在单个IP地址参与OSPF时也使用此命令。
  3. range:该命令用于定义某一特定范围子网的聚合,它的命令格式为“area <区域号> range <子网地址> <子网掩码 >”。
  4. passive-interface:该命令用来配置OSPF的被动接口。
  5. distribute-list:该命令用来配置路由器的过滤功能。OSPF可以引入其他路由协议产生的路由,引入后,还可以作为自己的外部路由在整个自治系统内传播。OSPF可以引入的外部路由有多种,包括静态路由、RIP 等内部网关协议和BGP外部网关协议的路由信息。OSPF路由过滤功能与RIP完全相同,配置方法也基本一致。
  6. distance:该命令用来配置或改变OSPF的管理距离。

以下3个命令用来配置引入外部路由到OSPF时的参数
7. redistribute metric:该命令用来配置引入外部路由的花费值(metric)。metric值范围为0~16 777 214。
8. redistribute tag:该命令用来配置引入外部路由时默认的标记值。标记能告诉OSPF,外部路由来源于什么路由协议。标记值为一个32位的数值,范围为0~4 294 967 295。
9. redistribute connected metric-type:该命令用来设置引入外部路由时默认的外部路由类型,OSPF中外部路由类型有类型1和类型2两种,分别对应两种不同的路由花费值的计算方式,默认情况下使用类型2,可通过命令“redistribute connected metric-type”修改外部路由类型。

配置命令的使用

  1. 配置参与OSPF的网络地址

router-test ( config) #router ospf 10
router-test ( config-router) #network 192.168.1.0 0.0.0.255 area 0
router-test ( config-router) exit
router-test ( config) # exit
Router-test#

  1. 配置单个IP地址参与OSPF

router-test ( config )# router ospf 10
Router-test( config-router) network 192. 168. 1.1 0. 0. 0. 0 area 0
router-test ( config-router) #exit
router-test ( config) # exit
Router-test#

  1. 使用area range命令定义参与OSPF的子网地址。

router-test ( config )# router ospf 10
router-test ( config-router) # area 0 range 212. 37. 123. 0 255. 255. 255. 0
router-test ( config-router) #exit
router-test ( config) # exit
Router-test#

  1. 配置被动接口。

路由器的配置命令:
router-test ( config )# router ospf 10
router-test ( config-router) #passive-interface ethernet0
router-test ( config-router) #exit
router-test ( config) # exit
Router-test#
另外,第三层交换机的配置命令如下:
router-test( config )#router ospf 60
router-test( config-router)#passive-interface vlan10
router-test( config-router) #end
router-test#

  1. 配置路由过滤

router-test ( config )#access-list 12 deny any
router-test ( config )# router ospf 10
router-test ( config-router) #distribute-list 10 out serial 0
router-test ( config-router) #end (end 直接退回到用户特权模式)
Router-test#

  1. 配置管理距离

router-test ( config )# router ospf 10
router-test ( config-router) # distance 100
router-test ( config-router) #end
Router-test#

  1. 配置引入外部路由的花费值

router-test ( config )# router ospf 10
router-test ( config-router) # redistribute metric 200
router-test ( config-router) #end
Router-test#

  1. 配置引入外部路由时默认的标记值

router-test ( config )# router ospf 10
router-test ( config-router) # redistribute tag 100
router-test ( config-router) #end
Router-test#

  1. 配置引入外部路由时默认的外部路由类型。

router-test ( config )# router ospf 10
router-test ( config-router) #redistribute connected metric-type 1 subnets
router-test ( config-router) #end
Router-test#

配置案例



路由器R1的配置

Router>enable
Router#configure terminal
Router(config)#hostname R1
R1(config)#interface FastEthernet0/0
R1(config-if)#ip address 10.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface FastEthernet0/1
R1(config-if)#ip address 12.12.12.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#interface loopback 0
R1(config-if)#ip address 1.1.1.1 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#router ospf 1
R1(config-router)#network 10.1.1.0 0.0.0.255 area 0
R1(config-router)#network 12.12.12.0 0.0.0.255 area 0

路由器R2的配置

Router>enable
Router#configure terminal
Router(config)#hostname R2
R2(config)#interface FastEthernet0/0
R2(config-if)#ip address 12.12.12.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface FastEthernet0/1
R2(config-if)#ip address 23.23.23.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#interface loopback 0
R2(config-if)#ip address 2.2.2.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#exit
R2(config)#router ospf 1
R2(config-router)#network 23.23.23.0 0.0.0.255 area 0
R2(config-router)#network 12.12.12.0 0.0.0.255 area 0

路由器R3的配置

Router>enable
Router#configure terminal
Router(config)#hostname R3
R3(config)#interface FastEthernet0/0
R3(config-if)#ip address 23.23.23.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface FastEthernet0/1
R3(config-if)#ip address 192.168.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#interface loopback 0
R3(config-if)#ip address 3.3.3.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#exit
R3(config)#router ospf 1
R3(config-router)#network 23.23.23.0 0.0.0.255 area 0
R3(config-router)#network 192.168.1.0 0.0.0.255 area 0

  • show ip route
    该命令用来查看路由表

  • show ip protocols
    该命令显示路由器上启动的IP路由协议,并对每种协议有用的信息给出一个汇总

  • show ip ospf
    该命令显示OSPF进程及其细节,如路由器运行SPF算法的次数

  • show ip ospf neighbor
    该命令用来查看OSPF邻居及其状态

  • show ip ospf interface f0/0
    该命令可以查看运行OSPF所有或特定接口的情况。如果该命令后面跟路由器的具体接口,那么只显示特定接口的信息,否则显示所有运行OSPF协议的接口信息。

  • show ip ospf database
    该命令用来查看OSPF链路状态数据库

理论习题

  1. OSPF是一种典型的链路状路由协议
  2. OSPF路由协议的管理距离是110
  3. OSPF路由协议利用开销为度量标准
  4. OSPF路由器利用最短路径优先算法,独立地计算出到达任意目的地的路由。
  5. 默认情况下,快速以太网的开销是1
  6. OSPF将网络划分为四种类型:BMA(广播多路访问型)、NBMA(非广播多路访问型)、Point-to-Point(点到点型)、点到多点
  7. Ethernet的Hello Interval为10秒,Dead Interval为40秒。
  8. NBMA网络的Hello Interval为30秒,Dead Interval为120秒
  9. OSPF路由器可以周期性发送Hello包来建立和维持邻接关系
  10. 当DR和BDR需要发送一个 LSU时,它会将更新发送给组播地址224.0.0.5
  11. OSPF接口优先级的范围是0~255。
  12. OSPF路由进程process-id必须指定范围在1~65535
  13. 网络区域为0的区域称为主于区域。
  14. show ip ospf neighbor用来查看邻居及其状态
  15. OSPF通过简单口令认证和信息摘要(MD5)认证两种方法启用认证功能
  16. OSPF路由器的类型分为内部路路由器、主干路由器、ABR、ASBR
  17. OSPF区域类型包括标准区域、主干区域、末节区域、完全末节区域、NSSA
  18. ABR区域负责把LSA Type 7转换成LSA Type 5
  19. OSPF 路由汇总的两种类型包括区城间路由汇总、外部路由汇总
  20. 如何确定路由器ID?

(1)如果在OSPF进程中指定了路由器ID,那么这是最优先的。
(2)如果没有在OSPF进程中指定路由器ID,那么选择IP地址最大的Loopback接口的IP地址为路由器ID;如果只有一个Loopback接口,那么路由器ID就是这个Loopback的地址
(3)如果没有Loopback接口,就选择最大的活动的物理接口的IP地址为路由器ID。

  1. OSPF的特性包括哪些?

(1)快速收敛;
(2)能够适应大型网络;
(3)能够正确处理错误路由信息;
(4)使用区域,能够减少单个路由器的CPU负担,构成结构化的网络;
(5)支持无类路由,完全支持超网、可变长子网等无类特性;
(6)支持多条路径等价负载均衡;
(7) 使用组播地址来进行信息互通,减少了非OSPF路由器的负载;
(8) 使用路由标签来表示来自外部区域的路由;
(9)支持简单口令和MD5认证;
(10)OSPF路由协议的管理距离是110;
(11)OSPF路由协议采用Cost作为度量标准

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

通过生成模拟释放无限数据以实现机器人自动化学习

该工作推出RoboGen&#xff0c;这是一种生成机器人代理&#xff0c;可以通过生成模拟自动大规模学习各种机器人技能。 RoboGen 利用基础模型和生成模型的最新进展。该工作不直接使用或调整这些模型来产生策略或低级动作&#xff0c;而是提倡一种生成方案&#xff0c;该方案使用…

利用Microsoft Visual Studio Installer Projects打包安装包

利用Microsoft Visual Studio Installer Projects打包安装包 具体步骤步骤1&#xff1a;安装扩展步骤2&#xff1a;创建 Setup 项目步骤3&#xff1a;设置属性步骤4&#xff1a;添加输出步骤5&#xff1a;添加文件步骤6&#xff1a;添加桌面快捷方式步骤7&#xff1a;添加菜单快…

初识人工智能,一文读懂人工智能概论(1)

&#x1f3c6;作者简介&#xff0c;普修罗双战士&#xff0c;一直追求不断学习和成长&#xff0c;在技术的道路上持续探索和实践。 &#x1f3c6;多年互联网行业从业经验&#xff0c;历任核心研发工程师&#xff0c;项目技术负责人。 &#x1f389;欢迎 &#x1f44d;点赞✍评论…

C语言——从键盘输入两个字串,判断它们是否相同。

代码实现&#xff1a; #include <stdio.h> #include <string.h>int main() {char str1[100], str2[100];printf("请输入第一个字串&#xff1a;");scanf("%s", str1);printf("请输入第二个字串&#xff1a;");scanf("%s"…

uc_16_UDP协议_HTTP协议

1 UDP协议 适合游戏、视频等情景&#xff0c;安全性要求不高&#xff0c;效率要求高。 1&#xff09;UDP不提供客户机与服务器的链接&#xff1a; UDP的客户机与服务器不必存在长期关系。一个UDP的客户机在通过一个套接字向一个UDP服务器发送了一个数据报之后&#xff0c;马上…

C语言----文件操作(一)

一&#xff1a;C语言中文件的概念 对于文件想必大家都很熟悉&#xff0c;无论在windows上还是Linux中&#xff0c;我们用文件去存储资料&#xff0c;记录笔记&#xff0c;常见的如txt文件&#xff0c;word文档&#xff0c;log文件等。那么&#xff0c;在C语言中文件是什么样的存…

unity 2d 入门 飞翔小鸟 死亡闪烁特效(十三)

一、c#脚本 using System.Collections; using System.Collections.Generic; using UnityEngine;public class Bling : MonoBehaviour {public Texture img;public float speed;public static bool changeWhite false;private float alpha0f;// Start is called before the fi…

极速学习SSM之SpringMVC笔记

文章目录 一、SpringMVC简介1、什么是MVC2、什么是SpringMVC3、SpringMVC的特点 二、HelloWorld1、开发环境2、创建maven工程a>添加web模块b>打包方式&#xff1a;warc>引入依赖 3、配置web.xmla>默认配置方式b>扩展配置方式 4、创建请求控制器5、创建springMVC…

kafka中消息key作用与分区规则关系

在 kafka 2.0.0 的 java sdk 中 <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.12</artifactId><version>2.0.0</version> </dependency> ProducerRecord 中类注释如下 A key/value pair to be sen…

TypeScript 之 console的使用

语言&#xff1a; TypeScript 在线工具&#xff1a; PlayGround console console 对象是一个非常强大的控制台日志显示工具&#xff0c; 可以帮助我们在浏览器中调试代码。 注&#xff1a; console不属于TypeScript的语法&#xff0c;而是由JavaScript封装的内置对象。 简单的…

[AutoSar]一种ECU间CAN通信的优化方法

目录 关键词平台说明一、背景二、问题现象三、原因四、解决办法五、实现5.1 配置5.2 code 关键词 嵌入式、C语言、autosar 平台说明 项目ValueOSautosar OSautosar厂商EB芯片厂商英飞凌 TC397编程语言C&#xff0c;C编译器TASKING 一、背景 在一个项目中&#xff0c;会从多个…

【Proteus仿真】【51单片机】光照强度检测系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真51单片机控制器&#xff0c;使共阴数码管&#xff0c;PCF8591 ADC模块、光敏传感器等。 主要功能&#xff1a; 系统运行后&#xff0c;数码管显示光传感器采集光照强度值&#xff…

【Python网络爬虫入门教程2】成为“Spider Man”的第二课:观察目标网站、代码编写

Python 网络爬虫入门&#xff1a;Spider man的第二课 写在最前面观察目标网站代码编写 第二课总结 写在最前面 有位粉丝希望学习网络爬虫的实战技巧&#xff0c;想尝试搭建自己的爬虫环境&#xff0c;从网上抓取数据。 前面有写一篇博客分享&#xff0c;但是内容感觉太浅显了…

JavaScript常用技巧专题二

文章目录 一、前言二、生成随机字符串三、转义HTML特殊字符四、单词首字母大写五、将字符串转换为小驼峰六、删除数组中的重复值七、移除数组中的假值八、获取两个数字之间的随机数九、将数字截断到固定的小数点十、日期10.1、计算两个日期之间天数10.2、从日期中获取是一年中的…

alpine linux 之嵌入式搭建

目录 序启动修改源安装 openssh设置开机网络 ip参考 序 最近发现了 alpine linux 这个文件系统&#xff0c;这是一个基于 musl libc 和 busybox 的面向安全的轻量级 Linux 发行版。 下载了他的文件系统&#xff0c;只有 3M 多的压缩包&#xff0c;非常适合嵌入式系统。 地址…

MVC Gantt Wrapper:RadiantQ jQuery

The RadiantQ jQuery Gantt Package includes fully functional native MVC Wrappers that let you declaratively and seamlessly configure the Gantt component within your aspx or cshtm pages just like any other MVC extensions. 如果您还没有准备好转向完全基于客户端…

【动手学深度学习】(十二)现代卷积神经网络

文章目录 一、深度卷积神经网络AlexNet1.理论知识 一、深度卷积神经网络AlexNet 1.理论知识 ImageNet(2010) 图片自然物体的彩色图片手写数字的黑色图片大小468 * 38728*28样本数1.2M60K类数100010 AlexNet AlexNet赢了2012ImageNet竞赛更深更大的LeNet主要改进&#xff…

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测

多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测 目录 多维时序 | MATLAB实现TSOA-TCN-Multihead-Attention多头注意力机制多变量时间序列预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 MATLAB实现TSOA-TCN-Multihead-…

lv12 开发板启动过程

1 开发板启动过程 1.1 回顾芯片手册第三章内存映射 对于arm来说&#xff0c;不是给它多大的内存都能读。寻址空间&#xff08;地址空间&#xff09;读写范围是有限的&#xff0c;寻址空间的大小与地址总线宽度有关&#xff0c;如32位&#xff0c;地址空间4G&#xff08;2^32)…

【VRTK】【VR开发】【Unity】13-攀爬

课程配套学习资源下载 https://download.csdn.net/download/weixin_41697242/88485426?spm=1001.2014.3001.5503 【概述】 VRTK提供两个预制件实现攀爬 Climbing Controller,用于控制Player的物理义体Climbable Interactable,用于设置可攀爬对象【设置Climbing Controller…