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

路由器及工作原理与常用路由配置命令详解

一、引言

在当今数字化时代,网络已经成为人们生活和工作中不可或缺的一部分。无论是家庭网络中的多台设备同时上网,还是企业网络中各个部门之间的数据传输和资源共享,都离不开网络设备的支持。路由器作为一种关键的网络设备,在网络通信中扮演着至关重要的角色。它不仅能够实现不同网络之间的互联,还能根据网络拓扑结构和流量情况,智能地选择最佳的数据传输路径,确保数据的高效、准确传输。了解路由器的工作原理和常用的路由配置命令,对于网络工程师、系统管理员以及对网络技术感兴趣的爱好者来说,都具有重要的意义。

二、路由器的基本概念与作用

2.1 路由器的定义

路由器(Router)是一种连接多个网络或网段的网络设备,它工作在 OSI(开放系统互连)参考模型的第三层 —— 网络层。路由器通过读取数据包中的目标 IP 地址,根据自身的路由表信息,决定将数据包转发到哪个接口,从而实现不同网络之间的数据交换和通信。

2.2 路由器的作用

2.2.1 网络互联

路由器可以连接不同类型的网络,如局域网(LAN)和广域网(WAN)、以太网和令牌环网等。它能够解决不同网络之间的协议差异、数据格式转换等问题,使得各种网络能够相互通信,形成一个更大的网络环境。例如,企业内部的局域网通过路由器连接到互联网,实现企业与外部世界的信息交流。

2.2.2 数据转发

路由器的核心功能之一是数据转发。当一个数据包到达路由器时,路由器会根据数据包中的目标 IP 地址,查找路由表,确定最佳的转发路径,并将数据包转发到相应的接口。通过这种方式,路由器能够将数据从源网络准确地传输到目标网络。

2.2.3 网络隔离与安全防护

路由器可以通过访问控制列表(ACL)等技术,对进出网络的数据包进行过滤和筛选,限制特定 IP 地址、端口号或协议的数据包通过,从而实现网络隔离和安全防护。例如,企业可以通过路由器设置 ACL,禁止外部网络对内部某些敏感服务器的访问,保护企业内部网络的安全。

2.2.4 流量管理与优化

路由器可以对网络流量进行监控和管理,根据网络的使用情况和用户的需求,合理分配带宽资源,优化网络性能。例如,在企业网络中,路由器可以根据不同部门的业务需求,为关键业务分配更多的带宽,确保关键业务的正常运行。

三、路由器的工作原理

3.1 路由器的硬件组成

3.1.1 中央处理器(CPU)

CPU 是路由器的核心组件,负责执行路由器的各种软件程序和指令,如路由算法的计算、数据包的转发决策等。路由器的 CPU 性能直接影响路由器的处理能力和转发速度。不同型号的路由器配备的 CPU 性能不同,高端路由器通常采用多核处理器,以提高处理效率。

3.1.2 内存(RAM)

内存用于存储路由器运行过程中的临时数据,如路由表、ARP 表、数据包缓存等。路由器在处理数据包时,需要将相关数据加载到内存中进行操作。内存的大小和速度对路由器的性能有重要影响,较大的内存可以存储更多的路由信息和缓存更多的数据包,提高路由器的处理能力。

3.1.3 闪存(Flash)

闪存用于存储路由器的操作系统软件(如 Cisco 的 IOS)、配置文件等。当路由器启动时,会从闪存中加载操作系统和配置文件。闪存的容量决定了可以存储的软件和配置文件的大小。

3.1.4 接口

路由器的接口是与其他网络设备或计算机连接的物理端口,常见的接口类型包括以太网接口、串口、光纤接口等。不同类型的接口用于连接不同类型的网络,如以太网接口用于连接局域网,串口用于连接广域网。接口的数量和类型根据路由器的型号和用途而定。

3.2 路由器的工作过程

3.2.1 数据包的接收

当一个数据包到达路由器的某个接口时,路由器首先会对数据包进行物理层和数据链路层的处理,如检测信号强度、验证帧头的正确性等。如果数据包通过了物理层和数据链路层的检查,路由器会将数据包传递到网络层进行处理。

3.2.2 路由表的查找

在网络层,路由器会读取数据包中的目标 IP 地址,并根据目标 IP 地址查找路由表。路由表是路由器中存储的一张映射表,记录了不同目标网络的最佳转发路径和下一跳地址。路由器会根据最长前缀匹配原则,选择与目标 IP 地址匹配度最高的路由条目。例如,如果目标 IP 地址是 192.168.1.100,路由表中有两条路由条目:一条是 192.168.1.0/24,另一条是 192.168.0.0/16,路由器会选择 192.168.1.0/24 这条路由条目,因为它的前缀长度更长,匹配度更高。

3.2.3 数据包的转发

一旦路由器找到了匹配的路由条目,它会根据路由条目中的下一跳地址和出接口信息,将数据包转发到相应的接口。在转发过程中,路由器会重新封装数据包,更新数据链路层的帧头信息,将数据包发送到下一跳设备。

3.2.4 路由表的更新

路由表并不是一成不变的,它会根据网络拓扑结构的变化和路由协议的运行情况进行动态更新。当网络中出现新的链路或节点,或者某些链路或节点发生故障时,路由器会通过路由协议(如 RIP、OSPF、BGP 等)与其他路由器进行信息交换,更新自己的路由表,以确保路由表中的信息始终是最新的和准确的。

3.3 路由协议的作用

路由协议是路由器之间用于交换路由信息的协议,它的主要作用是帮助路由器动态地学习网络拓扑结构,更新路由表,选择最佳的路由路径。常见的路由协议可以分为内部网关协议(IGP)和外部网关协议(EGP)两大类。

3.3.1 内部网关协议(IGP)

内部网关协议用于在一个自治系统(AS)内部交换路由信息,常见的 IGP 协议包括:

  • 路由信息协议(RIP):RIP 是一种基于距离向量的路由协议,它通过交换路由表信息,以跳数作为衡量路由优劣的标准。RIP 协议简单易懂,配置方便,但收敛速度较慢,不适合大型网络。
  • 开放最短路径优先协议(OSPF):OSPF 是一种基于链路状态的路由协议,它通过交换链路状态信息,使用 Dijkstra 算法计算最短路径。OSPF 协议收敛速度快,支持 VLSM(可变长子网掩码)和 CIDR(无类别域间路由),适用于大型网络。
  • 中间系统到中间系统协议(IS - IS):IS - IS 也是一种基于链路状态的路由协议,与 OSPF 类似,它主要用于大型 ISP 网络和企业网络中。
3.3.2 外部网关协议(EGP)

外部网关协议用于在不同的自治系统之间交换路由信息,最常用的 EGP 协议是边界网关协议(BGP)。BGP 是一种基于路径向量的路由协议,它主要用于在互联网中交换路由信息,实现不同自治系统之间的互联。BGP 协议可以根据多种策略选择最佳的路由路径,如 AS 路径长度、带宽、费用等。

四、常用的路由配置命令

4.1 Cisco 路由器的常用配置命令

4.1.1 进入不同的配置模式
  • 用户模式:当我们登录到 Cisco 路由器时,默认进入的是用户模式,提示符为 “Router>”。在用户模式下,我们只能执行一些简单的查看命令,如查看路由器的版本信息、接口状态等。
Router> show version
Router> show interfaces
  • 特权模式:从用户模式进入特权模式可以使用 “enable” 命令,提示符变为 “Router#”。在特权模式下,我们可以执行更多的管理命令,如保存配置、重启路由器等。
Router> enable
Router# write memory
Router# reload
  • 全局配置模式:从特权模式进入全局配置模式可以使用 “configure terminal” 命令,提示符变为 “Router (config)#”。在全局配置模式下,我们可以对路由器进行全局参数的配置,如主机名、域名等。
Router# configure terminal
Router(config)# hostname NewRouter
Router(config)# ip domain - name example.com
  • 接口配置模式:从全局配置模式进入接口配置模式可以使用 “interface” 命令,提示符变为 “Router (config - if)#”。在接口配置模式下,我们可以对路由器的各个接口进行配置,如设置 IP 地址、开启接口等。
Router(config)# interface GigabitEthernet0/0
Router(config - if)# ip address 192.168.1.1 255.255.255.0
Router(config - if)# no shutdown
4.1.2 静态路由配置

静态路由是由网络管理员手动配置的路由条目,适用于小型网络或对网络拓扑结构比较稳定的网络。配置静态路由的命令格式为:

Router(config)# ip route <目标网络地址> <子网掩码> <下一跳地址|出接口>

例如,要配置一条静态路由,将目标网络 10.0.0.0/8 的数据包转发到下一跳地址 192.168.1.2,可以使用以下命令:

Router(config)# ip route 10.0.0.0 255.0.0.0 192.168.1.2
4.1.3 RIP 协议配置

要在 Cisco 路由器上配置 RIP 协议,需要在全局配置模式下启用 RIP 进程,并指定参与 RIP 协议的网络。

Router(config)# router rip
Router(config - router)# version 2
Router(config - router)# network 192.168.1.0
Router(config - router)# network 10.0.0.0

在上述配置中,“version 2” 指定使用 RIP 版本 2,“network” 命令用于指定参与 RIP 协议的网络。

4.1.4 OSPF 协议配置

配置 OSPF 协议需要在全局配置模式下启用 OSPF 进程,并指定区域和参与 OSPF 协议的网络。

Router(config)# router ospf 1
Router(config - router)# network 192.168.1.0 0.0.0.255 area 0
Router(config - router)# network 10.0.0.0 0.255.255.255 area 1

在上述配置中,“router ospf 1” 启用 OSPF 进程 1,“network” 命令用于指定参与 OSPF 协议的网络,“area” 指定网络所属的区域。

4.2 H3C 路由器的常用配置命令

4.2.1 进入不同的配置模式
  • 用户视图:登录到 H3C 路由器后,默认进入用户视图,提示符为 “<H3C>”。在用户视图下,可以执行一些简单的查看命令。
<H3C> display version
<H3C> display interface GigabitEthernet 1/0/1
  • 系统视图:从用户视图进入系统视图可以使用 “system - view” 命令,提示符变为 “[H3C]”。在系统视图下,可以进行全局参数的配置。
<H3C> system - view
[H3C] sysname NewH3CRouter
[H3C] domain - name example.net
  • 接口视图:从系统视图进入接口视图可以使用 “interface” 命令,提示符变为 “[H3C - GigabitEthernet1/0/1]”。在接口视图下,可以对接口进行配置。
[H3C] interface GigabitEthernet 1/0/1
[H3C - GigabitEthernet1/0/1] ip address 192.168.2.1 255.255.255.0
[H3C - GigabitEthernet1/0/1] undo shutdown
4.2.2 静态路由配置

H3C 路由器的静态路由配置命令与 Cisco 类似,命令格式为:

[H3C] ip route - static <目标网络地址> <子网掩码> <下一跳地址|出接口>

例如,配置一条静态路由,将目标网络 172.16.0.0/16 的数据包转发到下一跳地址 192.168.2.2:

[H3C] ip route - static 172.16.0.0 255.240.0.0 192.168.2.2
4.2.3 RIP 协议配置

在 H3C 路由器上配置 RIP 协议,需要在系统视图下启用 RIP 进程,并指定参与 RIP 协议的网络。

[H3C] rip 1
[H3C - rip - 1] version 2
[H3C - rip - 1] network 192.168.2.0
[H3C - rip - 1] network 172.16.0.0
4.2.4 OSPF 协议配置

配置 OSPF 协议需要在系统视图下启用 OSPF 进程,并指定区域和参与 OSPF 协议的网络。

[H3C] ospf 1
[H3C - ospf - 1] area 0
[H3C - ospf - 1 - area - 0.0.0.0] network 192.168.2.0 0.0.0.255
[H3C - ospf - 1 - area - 0.0.0.0] quit
[H3C - ospf - 1] area 1
[H3C - ospf - 1 - area - 0.0.0.1] network 172.16.0.0 0.255.255.255

五、路由器配置的注意事项与常见问题解决

5.1 路由器配置的注意事项

5.1.1 备份配置文件

在进行路由器配置之前,一定要备份当前的配置文件。因为配置过程中可能会出现误操作,导致路由器无法正常工作。备份配置文件可以在出现问题时快速恢复到原来的配置状态。在 Cisco 路由器中,可以使用 “copy running - config startup - config” 命令将当前运行的配置保存到启动配置中;在 H3C 路由器中,可以使用 “save” 命令保存配置。

5.1.2 逐步配置与测试

在进行路由器配置时,建议逐步进行配置,并在每一步配置完成后进行测试。例如,在配置接口 IP 地址后,使用 “ping” 命令测试接口的连通性;在配置路由协议后,使用 “show ip route” 命令查看路由表是否正确更新。这样可以及时发现和解决配置过程中出现的问题。

5.1.3 遵循安全原则

在配置路由器时,要遵循安全原则,如设置强密码、配置访问控制列表等。路由器的管理接口应该设置访问限制,只允许授权的人员进行访问。同时,要定期更新路由器的操作系统和补丁,以修复安全漏洞。

5.2 常见问题解决

5.2.1 接口不通问题

如果路由器的某个接口不通,可以首先检查物理连接是否正常,如网线是否插好、光纤是否损坏等。然后使用 “show interfaces” 命令查看接口的状态信息,检查接口是否处于 “up” 状态,是否有数据包收发。如果接口处于 “down” 状态,可能是接口配置错误或硬件故障,需要进一步检查和排查。

5.2.2 路由表更新问题

如果路由表没有正确更新,可能是路由协议配置错误或网络拓扑结构发生变化。可以使用 “show ip route” 命令查看路由表的内容,使用 “debug” 命令调试路由协议的运行情况,如 “debug ip rip”(Cisco)或 “display ospf peer”(H3C)等,以找出问题所在。

5.2.3 网络访问问题

如果出现网络访问问题,如无法访问外网或内部网络中的某些资源,可以首先检查路由器的访问控制列表是否配置正确,是否限制了相关的访问。然后检查路由表是否有到达目标网络的路由条目,以及下一跳地址是否正确。还可以使用 “tracert” 命令跟踪数据包的传输路径,找出问题发生的位置。

六、路由器的发展趋势

6.1 高速化与大容量化

随着网络带宽的不断增加和数据流量的快速增长,对路由器的转发速度和处理能力提出了更高的要求。未来的路由器将朝着高速化和大容量化的方向发展,采用更先进的硬件技术和算法,提高数据包的转发速度和吞吐量,以满足日益增长的网络需求。

在硬件方面,新型的路由器将采用更高速的芯片和更先进的交换架构。例如,引入多核处理器和专用的数据包处理芯片,这些芯片具备更高的运算速度和并行处理能力,能够同时处理多个数据包,大大提高了数据转发的效率。同时,交换架构也将不断升级,从传统的共享总线架构向分布式交换架构转变,减少数据传输的瓶颈,实现更高速的数据交换。

在算法层面,优化的路由算法将被广泛应用。传统的路由算法在处理大规模网络和复杂流量时可能会出现效率低下的问题,而新的算法将更加智能和高效。例如,基于机器学习的路由算法可以根据网络的实时状态和历史数据,动态地调整路由策略,选择最优的路径进行数据传输,从而提高网络的整体性能。

6.2 智能化与自动化

人工智能和机器学习技术将逐渐应用于路由器中,使路由器具有智能化和自动化的特点。例如,路由器可以根据网络流量的变化自动调整路由策略,优化网络性能;可以自动检测和防范网络攻击,提高网络的安全性。

在网络性能优化方面,智能化路由器能够实时监测网络流量的变化,分析不同时间段、不同应用的流量特征。通过机器学习算法,路由器可以预测流量的发展趋势,并提前调整路由策略。例如,在网络高峰期,路由器可以自动将流量引导至负载较轻的链路,避免网络拥塞;而在低峰期,则可以合理分配带宽资源,提高资源利用率。

在网络安全防护方面,智能化路由器可以通过分析网络数据包的特征,识别潜在的网络攻击行为。例如,通过对异常流量模式、恶意 IP 地址和异常端口访问的检测,及时发现并阻止网络攻击。同时,路由器还可以根据攻击的类型和严重程度,自动采取相应的防护措施,如封锁攻击源、限制访问权限等。

此外,自动化配置也是路由器智能化的一个重要体现。传统的路由器配置需要网络管理员手动进行,不仅繁琐而且容易出错。智能化路由器可以根据预设的规则和网络环境,自动完成配置过程。例如,当新的设备接入网络时,路由器可以自动识别设备类型,并为其分配合适的 IP 地址和网络权限,大大提高了网络部署的效率。

6.3 融合化与虚拟化

6.3.1 与软件定义网络(SDN)的融合

传统路由器的控制平面和数据平面是紧耦合的,这使得网络的配置和管理较为复杂,缺乏灵活性。而软件定义网络(SDN)的核心思想是将控制平面和数据平面分离,通过集中式的控制器对网络进行统一的管理和配置。未来的路由器将与 SDN 技术深度融合,实现更灵活、高效的网络管理。

在融合架构中,路由器的数据平面负责数据包的转发,而控制平面的功能则由 SDN 控制器来实现。SDN 控制器可以根据网络的实时状态和业务需求,动态地为路由器下发转发规则,实现网络流量的灵活调度。例如,在企业网络中,当某个部门需要进行大规模的数据传输时,SDN 控制器可以根据网络的可用资源,临时调整相关路由器的转发规则,为该部门分配更多的带宽,确保数据传输的顺利进行。

这种融合还可以提高网络的可扩展性和可编程性。网络管理员可以通过编写程序来定义网络的行为和策略,而不需要手动配置每一台路由器。同时,SDN 控制器可以实时监控网络的运行状态,及时发现和解决网络故障,提高网络的可靠性和管理效率。

6.3.2 与网络功能虚拟化(NFV)的融合

网络功能虚拟化(NFV)是将传统的网络设备功能(如路由器、防火墙、负载均衡器等)通过软件的方式在通用服务器上实现。路由器与 NFV 的融合将使得网络更加灵活和高效。

在 NFV 架构下,路由器的功能可以以虚拟机的形式运行在通用服务器上,而不需要专门的硬件设备。这样可以大大降低网络建设和维护的成本,同时提高资源的利用率。例如,企业可以根据自身的业务需求,动态地分配和调整路由器虚拟机的数量和资源,实现按需使用。

此外,NFV 还可以实现网络功能的快速部署和升级。当企业需要增加新的网络功能或对现有功能进行升级时,只需要在服务器上部署或更新相应的虚拟机软件,而不需要更换硬件设备,大大缩短了部署和升级的时间。

6.3.3 多业务融合

未来的路由器将不再仅仅是一个单纯的数据转发设备,而是会集成多种业务功能。例如,路由器可能会集成防火墙、入侵检测、VPN 等安全功能,为用户提供一站式的网络安全解决方案。同时,路由器还可能会集成语音、视频等多媒体处理功能,支持企业的统一通信和协作应用。

通过多业务融合,用户可以减少网络设备的数量,降低网络建设和管理的复杂度。例如,企业只需要一台融合型路由器就可以实现数据传输、安全防护和多媒体通信等多种功能,而不需要分别购买和配置不同的设备。

6.4 绿色节能化

随着全球对能源问题的关注度不断提高,路由器的绿色节能化也成为了一个重要的发展趋势。未来的路由器将采用更加节能的硬件设计和技术,降低能源消耗。

在硬件设计方面,路由器制造商将采用低功耗的芯片和组件,优化电路设计,减少不必要的能量损耗。例如,采用新型的半导体材料和工艺,降低芯片的工作电压和功耗;优化散热设计,提高散热效率,减少因散热而消耗的能量。

在技术应用方面,路由器将具备智能节能功能。例如,路由器可以根据网络的负载情况自动调整功率,在网络空闲时降低工作频率和功率,减少能源消耗;而在网络繁忙时,自动提高性能,满足数据传输的需求。此外,一些路由器还可以支持电源管理功能,如定时开关机、睡眠模式等,进一步降低能源消耗。

6.5 支持物联网(IoT)

物联网的快速发展对网络设备提出了新的挑战和需求。未来的路由器需要能够支持大规模的物联网设备接入,并提供稳定、可靠的网络连接。

一方面,路由器需要具备更高的接入能力。物联网设备数量众多,且分布广泛,路由器需要能够同时支持大量的设备接入,并且保证每个设备都能够获得足够的带宽和稳定的连接。例如,在智能家居场景中,一个家庭可能会有数十个物联网设备,如智能灯泡、智能门锁、智能摄像头等,路由器需要能够管理和支持这些设备的正常运行。

另一方面,路由器需要支持物联网设备的特殊需求。物联网设备通常具有低功耗、低带宽、长距离通信等特点,路由器需要能够适应这些特点,提供相应的网络服务。例如,采用低功耗广域网(LPWAN)技术,如 LoRa、NB - IoT 等,为物联网设备提供长距离、低功耗的通信支持。同时,路由器还需要具备安全防护机制,保障物联网设备的通信安全,防止设备被攻击和数据泄露。

6.6 云化与分布式架构

随着云计算技术的发展,路由器也将朝着云化和分布式架构的方向发展。云化路由器将部分功能迁移到云端,通过云计算平台实现集中管理和资源共享。

在云化架构中,路由器的控制平面和管理功能可以在云端实现,而数据平面仍然保留在本地设备上。这样可以实现对路由器的远程管理和配置,提高管理效率。同时,云端可以收集和分析大量的网络数据,为网络优化和决策提供支持。例如,云平台可以根据不同地区、不同时间段的网络流量情况,为路由器提供优化的路由策略和资源分配方案。

分布式架构则可以提高网络的可靠性和扩展性。通过将路由器的功能分布在多个节点上,避免了单点故障的问题。当某个节点出现故障时,其他节点可以继续承担数据转发和处理的任务,保证网络的正常运行。同时,分布式架构还可以方便地进行扩展,根据网络的需求增加或减少节点数量,提高网络的灵活性和适应性。

七、结论

路由器作为网络通信的核心设备,其技术和应用一直在不断发展和演变。从早期的简单数据转发功能,到如今朝着高速化、智能化、融合化、绿色节能化、支持物联网以及云化与分布式架构等方向发展,路由器在满足不断增长的网络需求和推动网络技术进步方面发挥着重要作用。

随着未来网络技术的进一步发展,如 6G 通信、人工智能、区块链等技术的普及和应用,路由器将面临更多的挑战和机遇。网络工程师和研究人员需要不断探索和创新,推动路由器技术的持续发展,以适应日益复杂和多样化的网络环境。同时,用户在选择和使用路由器时,也需要关注路由器的发展趋势,选择符合自身需求和未来发展的产品,以确保网络的高效、稳定和安全运行。

相关文章:

路由器及工作原理与常用路由配置命令详解

一、引言 在当今数字化时代&#xff0c;网络已经成为人们生活和工作中不可或缺的一部分。无论是家庭网络中的多台设备同时上网&#xff0c;还是企业网络中各个部门之间的数据传输和资源共享&#xff0c;都离不开网络设备的支持。路由器作为一种关键的网络设备&#xff0c;在网…...

Windows编程:下载与安装 Visual Studio 2010

本节前言 在写作本节的时候&#xff0c;本来呢&#xff0c;我正在写的专栏&#xff0c;是 MFC 专栏。而 VS2010 和 VS2019&#xff0c;正是 MFC 学习与开发中&#xff0c;可以使用的两款软件。然而呢&#xff0c;如果你去学习 Windows API 知识的话&#xff0c;那么&#xff0…...

R语言 文本分析 天龙八部

起因, 目的: 前面有人对 “倚天屠龙记” 进行分析,我这里只是进行模仿而已。 完整的文件, 已经绑定了,反正读者可以找一下。 案例背景 小说《天龙八部》是金庸先生所著的武侠小说,也是“射雕三部曲”的前传。全书共50章,字数超过一百万字。故事发生在北宋末年,以大理…...

深度学习 Pytorch 建模可视化工具TensorBoard的安装与使用

50 TensorBoard的安装和使用 在深度学习建模过程中&#xff0c;为了能够快速绘制模型基本结构、观察模型评估指标伴随训练过程的动态变化情况&#xff0c;当然也为了能够观察图像数据&#xff0c;我们可以使用TensorBoard工具来进行Pytorch深度学习模型的可视化展示。 Tensor…...

【免费】2007-2019年各省科技支出占一般公共预算支出的比重数据

2007-2019年各省科技支出占一般公共预算支出的比重数据 1、时间&#xff1a;2007-2019年 2、来源&#xff1a;国家统计局、统计年鉴 3、指标&#xff1a;行政区划代码、地区名称、年份、科技支出占一般公共预算支出的比重 4、范围&#xff1a;31省 5、指标解释&#xff1a…...

19爬虫:使用playwright登录超级鹰

本次案例一共解决了如下两个问题&#xff1a; &#xff08;1&#xff09;如何使用playwright截图&#xff0c;特别是验证码图片 &#xff08;2&#xff09;在playwright中如何判断一个元素可见 1.截图 我们首先解决第一个问题&#xff0c;截图。如果前期接触过selenium的小伙…...

[转]Java面试近一个月的面试总结

本文是在学习中的总结&#xff0c;欢迎转载但请注明出处&#xff1a;http://blog.csdn.net/pistolove/article/details/46753275 前言 打算换个工作&#xff0c;近一个月面试了不少的公司&#xff0c;下面将一些面试经验和思考分享给大家。另外校招也快要开始了&#xff0c;为…...

Spring Boot中使用MockMvc测试PATCH请求控制器

在Spring Boot项目中&#xff0c;对控制器进行单元测试是确保代码质量和功能正确性的重要环节。本文将通过一个具体的例子&#xff0c;展示如何使用Spring的MockMvc框架来测试处理PATCH请求的控制器。 示例项目结构 假设我们有一个简单的Spring Boot项目&#xff0c;其中包含一…...

html转PDF文件最完美的方案(wkhtmltopdf)

目录 需求 一、方案调研 二、wkhtmltopdf使用 如何使用 文档简要说明 三、后端服务 四、前端服务 往期回顾 需求 最近在做报表类的统计项目&#xff0c;其中有很多指标需要汇总&#xff0c;网页内容有大量的echart图表&#xff0c;做成一个网页去浏览&#xff0c;同时…...

ip地址是手机号地址还是手机地址

在数字化生活的浪潮中&#xff0c;IP地址、手机号和手机地址这三个概念如影随形&#xff0c;它们各自承载着网络世界的独特功能&#xff0c;却又因名称和功能的相似性而时常被混淆。尤其是“IP地址”这一术语&#xff0c;经常被错误地与手机号地址或手机地址划上等号。本文旨在…...

【大数据技术】搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn)

搭建完全分布式高可用大数据集群(Hadoop+MapReduce+Yarn) jdk-8u361-linux-x64.tarhadoop-3.3.6.tar.gz注:请在阅读本篇文章前,将以上资源下载下来。 写在前面 本文主要介绍搭建完全分布式高可用集群Hadoop+MapReduce+Yarn的详细步骤。 注意: 统一约定将软件安装包存放…...

从零开始:OpenCV 图像处理快速入门教程

文章大纲 第1章 OpenCV 概述 1.1 OpenCV的模块与功能  1.2 OpenCV的发展 1.3 OpenCV的应用 第2章 基本数据类型 2.1 cv::Vec类 2.2 cv&#xff1a;&#xff1a;Point类 2.3 cv&#xff1a;&#xff1a;Rng类 2.4 cv&#xff1a;&#xff1a;Size类 2.5 cv&#xff1a;&…...

springboot简单应用

快速开发Springboot项目实现简单的增删改查&#xff0c;前期需要准备&#xff1a;idea与postman安装 Maven&#xff0c;MySQL&#xff08;8&#xff09;&#xff0c;JDK(21) 目录 前言 springboot 使用3.0版本&#xff0c;JDK使用21,MySQL使用8版本 开发环境IDEA使用2024版本 …...

【DeepSeek】DeepSeek小模型蒸馏与本地部署深度解析DeepSeek小模型蒸馏与本地部署深度解析

一、引言与背景 在人工智能领域&#xff0c;大型语言模型&#xff08;LLM&#xff09;如DeepSeek以其卓越的自然语言理解和生成能力&#xff0c;推动了众多应用场景的发展。然而&#xff0c;大型模型的高昂计算和存储成本&#xff0c;以及潜在的数据隐私风险&#xff0c;限制了…...

C#项目引用VB.NET 类库项目,生成一个EXE,这是什么原理

C#项目引用VB.NET 类库项目&#xff0c;生成一个EXE&#xff0c;这是什么原理 在C#项目中引用VB.NET类库项目并生成一个EXE文件&#xff0c;主要基于.NET框架的通用性以及编译原理。以下是详细的原理分析&#xff1a; 1. .NET框架的通用性 公共语言运行时&#xff08;CLR&…...

qt使用MQTT协议连接阿里云demo

qt使用Mqtt协议连接阿里云。 在配置好qt关于MQTT的环境之后&#xff0c;主要就是根据MQTT的连接参数进行连接即可。 环境配置推荐链接QT编译并部署QtMqtt相关环境跑测demo【超详细教程】_mqtt qt开发教程-CSDN博客 连接核心代码,主要就是根据阿里云的MQTT相关参数进行配置实现连…...

HTML中的图片标签详解及路径使用【学术投稿-第五届环境资源与能源工程国际学术会议(ICEREE 2025)】

官网&#xff1a;www.iceree.org 会议时间&#xff1a;2025年2月21-23日 会议地点&#xff1a;中国-昆明 简介 第五届环境资源与能源工程国际学术会议&#xff08;ICEREE 2025&#xff09;将于2025年2月21日至23日在中国昆明隆重举行。主要围绕“能源工程和能源技术”、“环…...

【低功耗 Power 学习专栏 -- Power domian 和 power rail】

文章目录 power rail(followpin) 和 Power domain1. Power Domain2. Power Rail3. Followpin4. Power Stripe5. IR Drop芯片中电源管理设计 举例 power rail(followpin) 和 Power domain followpin 指两部分&#xff0c;一个就是 STD cell 上下的 VDD, VSS。同时&#xff0c;f…...

PythonStyle MVC 开发框架

在 Python 中&#xff0c;MVC&#xff08;Model - View - Controller&#xff0c;模型 - 视图 - 控制器&#xff09;是一种常见的软件设计模式&#xff0c;它将应用程序分为三个主要部分&#xff0c;各自承担不同的职责&#xff0c;以提高代码的可维护性、可扩展性和可测试性。…...

RTOS基础(TODO)

&#xff08;TODO&#xff09; 读完FreeRTOS内核源码&#xff0c;需要多久&#xff1f; 有哪些情况下是RTOS满足不了需求&#xff0c;必须得上嵌入式Linux系统的&#xff1f; 如何用树莓派 Pico 学习 RTOS&#xff1f; 树莓派 Pico 使用 RP2040 微控制器&#xff0c;基于 AR…...

​线性注意力 vs. 传统注意力:效率与表达的博弈新解

​核心结论​&#xff1a;线性注意力用计算复杂度降维换取全局建模能力&#xff0c;通过核函数和结构优化补足表达缺陷 一、本质差异&#xff1a;两种注意力如何工作&#xff1f; ​特性​传统注意力&#xff08;Softmax Attention&#xff09;线性注意力&#xff08;Linear At…...

AI大模型在测试领域应用案例拆解:AI赋能的软件测试效能跃迁的四大核心引擎(顺丰科技)

导语 5月份QECon深圳大会已经结束&#xff0c;继续更新一下案例拆解&#xff0c;本期是来自顺丰科技。 文末附完整版材料获取方式。 首先来看一下这个案例的核心内容&#xff0c;涵盖了测四用例设计、CI/CD辅助、测试执行、监控预警四大方面&#xff0c;也是算大家比较熟悉的…...

VSCode - VSCode 放大与缩小代码

VSCode 放大与缩小代码 1、放大 点击顶部菜单栏【查看】 -> 点击外观 -> 点击【放大】 或者&#xff0c;使用快捷键&#xff1a;Ctrl # 操作方式先按住 Ctrl 键&#xff0c;再按 键2、缩小 点击顶部菜单栏【查看】 -> 点击外观 -> 点击【缩小】 或者&#x…...

AI Infra运维实践:DeepSeek部署运维中的软硬结合

发布会资料 《AI Infra运维实践&#xff1a;DeepSeek部署运维中的软硬结合》 袋鼠云运维服务 1、行业痛点 随着数字化转型的深入&#xff0c;企业面临的运维挑战日益复杂&#xff0c;所依托的平台在长期使用的过程中积累了各式各样的问题或者难点。这些问题不仅影响效率&…...

leetcode47.全排列II:HashSet层去重与used数组枝去重的双重保障

一、题目深度解析与重复排列问题 题目描述 给定一个可能包含重复数字的数组nums&#xff0c;返回其所有不重复的全排列。解集不能包含重复的排列&#xff0c;且排列可以按任意顺序返回。例如&#xff1a; 输入&#xff1a;nums [1,1,2]输出&#xff1a;[[1,1,2],[1,2,1],[2…...

vue在打包的时候能不能固定assets里的js和css文件名称

在 Vue 项目中&#xff08;特别是使用 Vue CLI 构建的项目&#xff09;&#xff0c;打包时生成的 assets 目录下的 .js 和 .css 文件默认会带有哈希值&#xff08;如 app.123abc.js&#xff09;&#xff0c;这是为了缓存优化。但你可以配置固定名称&#xff0c;方法如下&#x…...

安全编码规范与标准:对比与分析及应用案例

在软件开发领域&#xff0c;尤其是涉及安全关键系统的开发中&#xff0c;遵循编码规范和标准是确保软件质量和安全性的重要手段。除了CERT C、CERT Java和MISRA外&#xff0c;还有其他多个与安全相关的编码规范和标准&#xff0c;以下是一些主要标准的对比说明&#xff1a; 一…...

分词算法BBPE详解和Qwen的应用

一、TL&#xff1b;DR BPE有什么问题&#xff1a;依旧会遇到OOV问题&#xff0c;并且中文、日文这些大词汇表模型容易出现训练中未出现过的字符Byte-level BPE怎么解决&#xff1a;与BPE一样是高频字节进行合并&#xff0c;但BBPE是以UTF-8编码UTF-8编码字节序列而非字符序列B…...

408第一季 - 数据结构 - 栈与队列的应用

括号匹配 用瞪眼法就可以知道的东西 栈在表达式求值运用 先简单看看就行&#xff0c;题目做了就理解了 AB是操作符,也是被狠狠加入后缀表达式了&#xff0c;然后后面就是*&#xff0c;只要优先级比栈顶运算符牛逼就放里面&#xff0c;很显然&#xff0c;*比牛逼 继续前进&#…...

OPenCV CUDA模块光流------高效地执行光流估计的类BroxOpticalFlow

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 cv::cuda::BroxOpticalFlow 是 OpenCV CUDA 模块中实现Brox光流算法的类。该类用于在 GPU 上高效地计算两帧图像之间的稠密光流&#xff08;Dens…...