网络学习记录6
查找下一跳和流量如何通过,是网络路由的基本概念。下面我会尽量用通俗易懂的方式来解释这个过程。
查找下一跳
数据包的目的地:当一个数据包在网络中传输时,它的目标是一个特定的IP地址。
路由表的作用:路由器有一个叫做路由表的东西,它就像是一个导航地图,告诉路由器数据包应该去哪里。
路由表里记录了很多条规则,每条规则都指定了一个IP地址范围(也叫做网络或子网)和对应的下一跳地址或出接口。
匹配规则:当路由器收到一个数据包时,它会查看数据包的目的IP地址。
然后,路由器会在路由表中查找与这个目的IP地址最匹配(通常是最长掩码匹配)的规则。
确定下一跳:一旦找到匹配的规则,路由器就会知道数据包应该被发送到哪个下一跳地址或哪个出接口。
这个下一跳地址可能是另一个路由器的IP地址,也可能是目的网络的一个直接连接的接口。
流量如何通过
数据包发送:一旦确定了下一跳,路由器就会将数据包发送给下一跳。
如果下一跳是另一个路由器,那么数据包就会通过网络传输到那个路由器。
逐跳传输:数据包在到达目的网络之前,可能会经过多个路由器。
每个路由器都会重复上述的查找下一跳和发送数据包的过程。
到达目的网络:最终,数据包会到达目的网络的一个路由器,该路由器会识别出数据包应该被发送到哪个具体的设备(例如,一台电脑或服务器)。
然后,数据包就会被传输到那个设备,完成整个传输过程。
通俗比喻
可以把路由器想象成一个快递中转站,数据包就像是快递包裹。当快递到达中转站时,工作人员会查看包裹的目的地,并在导航地图上找到最佳的运输路线。然后,包裹就会被送到下一个中转站或直接送到目的地。在这个过程中,每个中转站都会重复这个查找和发送的过程,直到包裹最终到达目的地。
希望这个解释能够帮助你更好地理解查找下一跳和流量如何通过的过程!
可以把二层交换机想象成一个邮局,每个VLAN是一个不同的邮筒,每个物理端口是一个投递窗口。
当一封信(数据包)被投递到某个窗口(端口)时,邮局工作人员(交换机)会查看信封上的收件人地址(目标MAC地址)。
如果收件人在同一个邮筒(VLAN)内,工作人员会直接将信投递到该邮筒内的其他投递口(同一VLAN内的其他端口)。
如果收件人在不同的邮筒内,工作人员则无法直接投递,需要把这封信交给上级邮局(三层交换机)进行跨邮筒的投递。
交通枢纽与车站:
交通枢纽:三层交换机就像一个交通枢纽,它负责处理来自不同车站(VLAN接口)之间的交通(数据包)。
车站:每个VLAN接口可以看作是一个车站,不同的车站代表了不同的VLAN。
交通线路:每个物理端口(如PortA和PortB)就像一条交通线路,连接着不同的车站(VLAN接口)。
车辆与车票:
车辆:数据包就像一辆辆行驶在交通线路上的车辆。
车票:数据包中的目标IP地址就像车票上的目的地信息。当一辆车(数据包)从某个车站(VLAN接口)出发时,交通枢纽的工作人员(三层交换机)会查看车票上的目的地信息。
工作人员与交通路线图:
工作人员:三层交换机的工作人员(即其路由功能)会查看车票上的目的地信息,并根据交通路线图(路由表)来指引车辆(数据包)到达正确的车站(出口VLAN接口)。
交通路线图:路由表就像交通路线图,它告诉工作人员如何指引车辆到达目的地。
希望这次详细的解释和比喻能够帮助您更直观地理解二层交换机和三层交换机上流量的转发过程。
SNMP(简单网络管理协议)是一种用于网络管理的协议,它允许网络管理员远程监控和管理网络设备的状态、配置和性能。
SNMP的作用和意义
远程管理:SNMP允许网络管理员通过网络远程管理网络设备,无需亲自到设备所在地进行操作。
实时监控:SNMP可以实时监控网络设备的状态,如连接状态、设备温度等,确保网络设备的正常运行。
故障排查:如果网络设备出现故障,SNMP可以触发告警,并帮助网络管理员快速定位和解决故障。
性能优化:通过SNMP收集的网络性能数据,如接口流量统计和数据包丢失情况,网络管理员可以优化网络性能。
配置步骤的作用
启动SNMP Agent服务:这是SNMP工作的基础,只有启动了SNMP Agent服务,网络设备才能响应管理站的请求。
配置SNMP版本:SNMP有多个版本,每个版本在安全性、功能等方面有所不同。配置SNMP版本是为了确保网络设备与管理站之间的通信兼容和安全。
设置团体名(community name):团体名类似于密码,用于验证管理站访问网络设备的权限。设置团体名是为了确保只有授权的管理站才能访问网络设备。
在SNMPv1和SNMPv2c中,团体名用于控制访问权限。管理员需要为读操作和写操作分别设置团体名。例如,设置只读团体名为“public”,读写团体名为“private”。
配置SNMP组(SNMPv3):在SNMPv3中,需要配置SNMP组,并指定组的读写视图和通知视图。这有助于更细致地控制不同用户对网络设备的访问权限。
添加用户(SNMPv3):在SNMPv3中,需要为用户指定所属组,并配置认证模式和隐私模式(如果需要的话)。这可以确保只有经过认证的用户才能访问网络设备,并保护通信数据的安全。
综上所述,SNMP是一种非常重要的网络管理协议,它可以帮助网络管理员远程监控和管理网络设备。在H3C交换机上配置SNMP涉及多个步骤,每个步骤都有其特定的作用和意义。通过正确配置SNMP,网络管理员可以更有效地管理网络,确保网络的稳定运行。
三层接口最主要的特点就是支持IP路由功能
ip route static
接入层交换机,接入终端设备到网络中,实现用户接入网络的功能,位于网络的边缘,提供丰富的接口类型满足各种终端设备的接入需求
接入层交换机通常只具备二层交换的功能,
汇聚层交换机承担汇聚接入层交换机的功能,讲多个接入层交换机连接在一起,进行流量汇总和转发
介入层交换机功耗较低
汇聚层交换机采用盒式设备,支持多层交换技术,转发速度更快更安全,访问更严格,还可以配置防火墙
二层交换机是基于MAC地址来转发数据包的
二层交换机可以支持虚拟vlan,将不同的接口划分到不同的vlan中,实现逻辑上的隔离
二层交换机基于MAC地址访问,只做数据的转发;而三层交换机将二层交换技术和三层转发功能结合在一起,增加了路由功能。
与二层交换机类似,三层交换机也支持基于端口的VLAN划分。但不同的是,三层交换机还可以基于MAC地址或IP地址划分VLAN,这提供了更灵活的网络划分方式。
VLAN的创建过程与二层交换机相同。
在三层交换机中,VLAN接口是实际存在的逻辑接口。这些接口用于在不同VLAN之间实现路由功能。配置时,需要为VLAN接口分配IP地址,例如使用interface vlan-interface vlan 10和ip address 192.168.10.1 255.255.255.0命令为VLAN 10创建并配置接口。
在接入层就配置创建vlan,隔离广播域,终端接入的设备怎么知道去哪个vlan?一个vlan内有多个物理口,同一个vlan内的流量直接在各种端口转发出去
在三层交换机上,流量通过
VLAN接口是路由功能实现的基础。在配置路由功能时,需要为每个VLAN创建一个对应的VLAN接口,并为其分配IP地址。
路由功能依赖于VLAN接口的配置。只有正确配置了VLAN接口和路由协议,三层交换机才能实现跨VLAN的通信和外部网络的连接。
三层交换机通常只有一张路由表,这张路由表包含了所有VLAN之间的路由信息。当交换机接收到一个数据包时,它会根据数据包的目标IP地址和路由表来查找最佳的转发路径。因此,所有的VLAN都会共享这张路由表,而不是每个VLAN都有一张独立的路由表。
为了更具体地说明在二层交换机(接入层交换机)和三层交换机(汇聚层交换机)上流量的转发过程,我们可以使用四个VLAN和几个端口的场景来进行比喻。
二层交换机(接入层交换机)
假设我们有一个二层交换机,它有四个物理端口(Port1、Port2、Port3、Port4),并且这四个端口分别被划分到了四个不同的VLAN(VLAN10、VLAN20、VLAN30、VLAN40)中。每个VLAN代表一个独立的广播域。
流量转发过程:
当终端设备(如电脑、打印机等)通过Port1连接到交换机,并且该设备属于VLAN10时,它发送的数据包会包含源MAC地址和目标MAC地址。
交换机接收到数据包后,会查看数据包中的目标MAC地址,并在自己的MAC地址表中查找对应的端口。
如果目标MAC地址在同一VLAN(VLAN10)内的另一台设备上,交换机将直接通过Port1所在VLAN10的其他物理端口(假设是Port2,且Port2也连接了属于VLAN10的设备)转发数据包。
如果目标MAC地址不在同一VLAN内,比如属于VLAN20,交换机则无法直接转发数据包,因为二层交换机不支持跨VLAN的路由功能。此时,数据包会被丢弃或发送到上联的三层交换机进行进一步处理。
比喻:
可以把二层交换机想象成一个邮局,每个VLAN是一个不同的邮筒,每个物理端口是一个投递窗口。
当一封信(数据包)被投递到某个窗口(端口)时,邮局工作人员(交换机)会查看信封上的收件人地址(目标MAC地址)。
如果收件人在同一个邮筒(VLAN)内,工作人员会直接将信投递到该邮筒内的其他投递口(同一VLAN内的其他端口)。
如果收件人在不同的邮筒内,工作人员则无法直接投递,需要把这封信交给上级邮局(三层交换机)进行跨邮筒的投递。
三层交换机(汇聚层交换机)
假设我们有一个三层交换机,它同样有四个物理端口(PortA、PortB、PortC、PortD),并且这四个端口可以配置为trunk模式,允许多个VLAN的流量通过。同时,三层交换机内部有VLAN接口(如VLAN10接口、VLAN20接口等),用于实现不同VLAN之间的路由功能。
流量转发过程:
当二层交换机上的VLAN10内的设备想要与VLAN20内的设备通信时,它会发送一个ARP请求(地址解析协议请求)来获取VLAN20内设备的MAC地址。但由于二层交换机不支持跨VLAN的ARP请求,这个请求会被发送到上联的三层交换机。
三层交换机接收到ARP请求后,会查看自己的路由表,找到VLAN20的网关地址,并回复一个ARP应答,告诉VLAN10内的设备VLAN20内设备的MAC地址(实际上是三层交换机VLAN20接口的MAC地址)。
然后,VLAN10内的设备会发送一个数据包到三层交换机的PortA(假设PortA是连接二层交换机的端口),并指定三层交换机VLAN20接口的MAC地址为目标MAC地址。
三层交换机接收到数据包后,会查看数据包中的目标IP地址,并在自己的路由表中查找对应的下一跳地址或出口VLAN接口。
如果找到对应的出口VLAN接口(如VLAN20接口),三层交换机会把数据包的目标MAC地址替换为VLAN20接口对应的MAC地址,并通过PortB(假设PortB连接了属于VLAN20的设备或另一个二层交换机)转发数据包。
如果目标设备在另一个三层交换机上,三层交换机则会根据路由表将数据包发送到下一跳设备的IP地址。
比喻:
可以把三层交换机想象成一个交通枢纽,每个VLAN接口是一个不同的车站,每个物理端口是一条交通线路。
当一辆车(数据包)从某个车站(VLAN接口)出发,想要到达另一个车站(目标VLAN接口)时,交通枢纽的工作人员(三层交换机)会查看车票(数据包中的目标IP地址)上的目的地信息。
如果目的地信息在本交通枢纽内(同一三层交换机内),工作人员会直接指引车辆到达对应的车站(出口VLAN接口)。
如果目的地信息不在本交通枢纽内,工作人员会查看交通路线图(路由表),找到最合适的交通线路(下一跳地址或出口VLAN接口),并指引车辆沿着该线路前往目的地。
希望这个比喻能帮助您更直观地理解二层交换机和三层交换机上流量的转发过程。
二层交换机不支持跨vlan的路由功能
三层交换机(汇聚层交换机)
假设我们有一个三层交换机,它同样有四个物理端口(PortA、PortB、PortC、PortD),并且这四个端口可以配置为trunk模式,允许多个VLAN的流量通过。同时,三层交换机内部有VLAN接口(如VLAN10接口、VLAN20接口等),用于实现不同VLAN之间的路由功能。
流量转发过程:
当二层交换机上的VLAN10内的设备想要与VLAN20内的设备通信时,它会发送一个ARP请求(地址解析协议请求)来获取VLAN20内设备的MAC地址。但由于二层交换机不支持跨VLAN的ARP请求,这个请求会被发送到上联的三层交换机。
三层交换机接收到ARP请求后,会查看自己的路由表,找到VLAN20的网关地址,并回复一个ARP应答,告诉VLAN10内的设备VLAN20内设备的MAC地址(实际上是三层交换机VLAN20接口的MAC地址)。
然后,VLAN10内的设备会发送一个数据包到三层交换机的PortA(假设PortA是连接二层交换机的端口),并指定三层交换机VLAN20接口的MAC地址为目标MAC地址。
三层交换机接收到数据包后,会查看数据包中的目标IP地址,并在自己的路由表中查找对应的下一跳地址或出口VLAN接口。
如果找到对应的出口VLAN接口(如VLAN20接口),三层交换机会把数据包的目标MAC地址替换为VLAN20接口对应的MAC地址,并通过PortB(假设PortB连接了属于VLAN20的设备或另一个二层交换机)转发数据包。
如果目标设备在另一个三层交换机上,三层交换机则会根据路由表将数据包发送到下一跳设备的IP地址。
比喻:
可以把三层交换机想象成一个交通枢纽,每个VLAN接口是一个不同的车站,每个物理端口是一条交通线路。
当一辆车(数据包)从某个车站(VLAN接口)出发,想要到达另一个车站(目标VLAN接口)时,交通枢纽的工作人员(三层交换机)会查看车票(数据包中的目标IP地址)上的目的地信息。
如果目的地信息在本交通枢纽内(同一三层交换机内),工作人员会直接指引车辆到达对应的车站(出口VLAN接口)。
如果目的地信息不在本交通枢纽内,工作人员会查看交通路线图(路由表),找到最合适的交通线路(下一跳地址或出口VLAN接口),并指引车辆沿着该线路前往目的地。
希望这个比喻能帮助您更直观地理解二层交换机和三层交换机上流量的转发过程。
这句话“每个物理端口(如PortA和PortB)就像一条交通线路,连接着不同的车站(VLAN接口)”在比喻的语境下,主要是为了形象地描述三层交换机如何通过其物理端口连接不同的VLAN(虚拟局域网)。然而,从字面上理解可能会产生一些误解。
在实际的网络设备中,一个物理端口通常不能直接连接多个VLAN的“接口”。物理端口是硬件层面的连接点,而VLAN接口是逻辑层面的分隔。一个物理端口可以被配置为属于一个或多个VLAN(这取决于交换机的类型和配置模式,如trunk模式允许一个端口携带多个VLAN的流量),但在这个上下文中,我们通常不会说物理端口“连接着不同的VLAN接口”。
更准确的说法是:
物理端口是数据包进入或离开交换机的物理通道。
VLAN接口是逻辑上的分隔,用于在交换机内部区分不同VLAN的流量。
在trunk模式下,一个物理端口可以传输属于多个VLAN的数据包,但这些数据包在交换机内部会根据其VLAN标签被路由到相应的VLAN接口。
因此,如果我们要修正这个比喻,可以说:
每个物理端口就像一条交通线路,它允许不同VLAN的数据包(就像不同目的地的车辆)在这条线路上传输。
交换机内部的VLAN接口则像不同的车站或目的地,负责接收和处理属于特定VLAN的数据包。
这样,当数据包(车辆)通过物理端口(交通线路)进入交换机时,交换机(交通枢纽)会根据数据包中的VLAN标签(车票上的目的地信息)将其路由到正确的VLAN接口(车站或目的地)。
相关文章:
网络学习记录6
查找下一跳和流量如何通过,是网络路由的基本概念。下面我会尽量用通俗易懂的方式来解释这个过程。 查找下一跳 数据包的目的地:当一个数据包在网络中传输时,它的目标是一个特定的IP地址。 路由表的作用:路由器有一个叫做路由表的东…...
【数学】概率论与数理统计(四)
文章目录 [toc] 分布函数分布函数性质离散型随机变量的分布函数连续型随机变量的分布函数示例1问题解答 正态随机变量示例问题解答 示例2问题(1)(2) 解答(1)(2) 随机变量函数的分布离…...
小结:华为交换机常用的操作指令
以下是华为交换机常用的操作指令总结,按功能分类说明: 1. 系统管理 进入系统视图system-view返回用户视图quit保存配置save查看当前配置display current-configuration重启设备reboot2. 用户管理 配置用户密码local-user <username> password ir…...

轻松学51单片机--基于普中科技开发板练习蓝桥杯及机器人大赛等(8-DS1302实时时钟)
1、DS1302 DS1302是一款实时时钟芯片,可以用于实时计时和日期显示等应用。它具有低功耗、精度高、芯片体积小等特点,非常适合嵌入式系统和小型电子设备中使用。 DS1302具有多个功能和特性,包括: 时钟功能:可以显示年…...

《Java核心技术II》并行流
并行流 从集合中获取并行流:Stream paralleWords words.parallelStream(); parallel方法将任意顺序流转换为并行流:Stream paralleWords Stream.of(wordArray).parallel(); 以下是不好的示范,假设对字符串的所有短单词计数: …...
Vue 3前端与Python(Django)后端接口简单示例
项目 后端(Django)前端(Vue 3) 后端(Django) 创建Django项目和应用: 确保你已经安装了Django。如果没有安装,可以使用以下命令安装: pip install django创建一个新的Dja…...

《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二)
《拉依达的嵌入式\驱动面试宝典》—操作系统篇(二) 你好,我是拉依达。 感谢所有阅读关注我的同学支持,目前博客累计阅读 27w,关注1.5w人。其中博客《最全Linux驱动开发全流程详细解析(持续更新)-CSDN博客》已经是 Linux驱动 相关内容搜索的推荐首位,感谢大家支持。 《拉…...
STM32和国民技术(N32)单片机串口中断接收数据及数据解析
一、串口配置 根据单片机不同,串口IO口配置也不同,像STM32单片机,RX脚可以配置为复用输出,也可以配置为浮空输入模式。但是国民技术单片机(N32)的RX是不能配置为复用输出模式的,这样是收不到数…...
【人工智能】大语言模型的微调:让模型更贴近你的业务需求
大语言模型的微调:让模型更贴近你的业务需求 随着大语言模型(LLM, Large Language Model)如 GPT-4、BERT 和 T5 等的广泛应用,模型的微调(Fine-tuning)技术成为实现领域专属任务的重要手段。通过微调&…...
大语言模型的稀疏性:提升效率与性能的新方向
大语言模型的稀疏性:提升效率与性能的新方向 大语言模型(LLM, Large Language Model)随着参数规模的不断扩大,其性能得到了显著提升,但也带来了巨大的计算和存储开销。稀疏性(Sparsity)作为一种…...

Linux Bridge与Open vSwitch的工作原理及协作
在虚拟化和云计算环境中,Linux Bridge和Open vSwitch(OVS)都是用于构建虚拟网络的关键组件。它们提供了二层交换功能,并且能够将虚拟机或容器连接到物理网络中。然而,两者在实现细节和技术特性上有所不同,下…...
async++源码阅读——task模块
1、task_base.h 本人将自己的理解以注释的形式添加的代码中,方便需要的时候重新复习。该文件中用到的一些技术: 该文件中的类并没有使用virtual,而是自定义了需函数表,但是并没有放到每个对象的开始位置,而是通过指针…...

项目开发实践——基于SpringBoot+Vue3实现的在线考试系统(五)
文章目录 一、学生管理模块功能实现1、添加学生功能实现1.1 页面设计1.2 前端功能实现1.3 后端功能实现1.4 效果展示2、学生管理功能实现2.1 页面设计2.2 前端功能实现2.3 后端功能实现2.3.1 后端查询接口实现2.3.2 后端编辑接口实现2.3.3 后端删除接口实现2.4 效果展示二、代码…...
EF Core一对一和多对多
目录 EF Core一对一 关系属性 关系配置 使用 EF Core多对多 关系属性 关系配置 使用 EF Core一对一 关系属性 必须显式的在其中一个实体类中声明一个外键属性,可以在Order建立Delivery,也可以在Delivery建立OrderId class Order {public long…...
记一次sealos部署k8s集群之delete了第一台master如何恢复
记一次sealos部署k8s集群之delete了第一台master如何恢复 一、背景描述 使用sealos部署了一套K8S集群 master信息:172.27.100.1、172.27.100.2、172.27.100.3 node信息:172.27.100.4、172.27.100.5 sealos安装在172.27.100.1节点,根目录下/root/.sealos/文件还在! [root…...
vue3+vite+ts集成第三方js
npm run dev可以正常运行和测试。但是npm run build会报错。 要实现引入静态js,避免使用全局变量报错。 1. HTML 引入第三方 JS 在你的 HTML 文件中,通过 <script> 标签引入一个本地第三方 JS 文件,例如: <script sr…...

android framework.jar 在应用中使用
在开发APP中,有时会使用系统提供的framework.jar 来替代 android.jar, 在gradle中配置如下: 放置framework.jar 依赖配置 3 优先级配置 gradle.projectsEvaluated {tasks.withType(JavaCompile) {Set<File> fileSet options.bootstrapClasspat…...

FFmpeg入门
在音视频处理领域,有一款神器级的工具横扫开发者圈,那就是 FFmpeg。它被誉为“音视频处理的瑞士军刀”,凭借强大的功能和开源的特性成为众多开发者和媒体从业者的首选。今天,我们就来聊聊 FFmpeg 的入门使用,带你轻松开…...

云平台一键部署【Video-Background-Removal】视频换背景,无任何限制,随意换
Video-Background-Removal 是一款革命性的视频背景替换工具,旨在让用户轻松实现视频背景的快速更换。无论你是专业创作者还是普通用户,这款软件都能让你在几秒钟内改变背景,完全消除限制,随心所欲,随时随地想换就换&am…...

量子计算:从薛定谔的猫到你的生活
文章背景 说到量子计算,不少人觉得它神秘又遥不可及。其实,它只是量子物理学的一个“应用小分支”。它的核心在于量子比特的“叠加”和“纠缠”,这些听上去像科幻小说的概念,却为计算世界开辟了一片全新的天地。如果经典计算是“…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...

企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...

C++:多态机制详解
目录 一. 多态的概念 1.静态多态(编译时多态) 二.动态多态的定义及实现 1.多态的构成条件 2.虚函数 3.虚函数的重写/覆盖 4.虚函数重写的一些其他问题 1).协变 2).析构函数的重写 5.override 和 final关键字 1&#…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
MFE(微前端) Module Federation:Webpack.config.js文件中每个属性的含义解释
以Module Federation 插件详为例,Webpack.config.js它可能的配置和含义如下: 前言 Module Federation 的Webpack.config.js核心配置包括: name filename(定义应用标识) remotes(引用远程模块࿰…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...

算法—栈系列
一:删除字符串中的所有相邻重复项 class Solution { public:string removeDuplicates(string s) {stack<char> st;for(int i 0; i < s.size(); i){char target s[i];if(!st.empty() && target st.top())st.pop();elsest.push(s[i]);}string ret…...

qt+vs Generated File下的moc_和ui_文件丢失导致 error LNK2001
qt 5.9.7 vs2013 qt add-in 2.3.2 起因是添加一个新的控件类,直接把源文件拖进VS的项目里,然后VS卡住十秒,然后编译就报一堆 error LNK2001 一看项目的Generated Files下的moc_和ui_文件丢失了一部分,导致编译的时候找不到了。因…...

从数据报表到决策大脑:AI重构电商决策链条
在传统电商运营中,决策链条往往止步于“数据报表层”:BI工具整合历史数据,生成滞后一周甚至更久的销售分析,运营团队凭经验预判需求。当爆款突然断货、促销库存积压时,企业才惊觉标准化BI的决策时差正成为增长瓶颈。 一…...