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

网络安全面试题(一)

文章目录

  • 一、基础概念与模型‌
    • 1. 什么是通信协议?列举三种常见的网络通信模型?
    • 2. 解释OSI七层模型及各层功能
    • 3. TCP/IP四层模型与OSI模型的对应关系是什么?
    • 4. 五层协议体系结构与TCP/IP模型的区别?
    • 5. 什么是面向连接与非面向连接的服务?举例说明.
    • 6. 网络协议分层的意义是什么?
    • 7. 解释协议栈中封装与解封装的过程
  • ‌ 二、物理层与数据链路层‌
    • 1. 物理层的主要作用是什么?
    • 2. 数据链路层如何保证相邻节点间可靠传输?
    • 3. 什么是MAC地址?与IP地址的区别是什么?
    • 4. ARP协议的作用及工作原理
    • 5. 解释交换机与路由器的区别
    • 6. VLAN的作用及实现原理
  • 三、网络层‌
    • 1. IP协议的定义及作用
    • 2. IPv4与IPv6的主要区别
    • 3. IP地址的分类及子网划分方法
    • 4. 什么是NAT?其应用场景有哪些?
    • 5. ICMP协议的作用及常见应用(如Ping)
    • 6. 路由协议的分类(如RIP、OSPF、BGP)及特点
    • 7. 解释路由表的作用及生成方式
  • 四、传输层‌
    • 1. TCP与UDP的主要区别及适用场景
    • 2. TCP如何保证可靠传输?列举关键机制
    • 3. 三次握手与四次挥手的详细过程及必要性?
    • 4. 为什么TIME_WAIT状态需要等待2MSL?
    • 5. TCP拥塞控制的算法有哪些?
    • 6. 解释SYN Flood攻击原理及防御方法
    • 7. UDP协议为何被称为“不可靠”?实际应用场景举例
    • 8. QUIC协议相比TCP的优势是什么?
  • ‌五、应用层协议‌
    • 1. HTTP协议的定义及无状态特性解决方案?
    • 2. HTTP 1.0、1.1、2.0的核心改进?
    • 3. HTTPS加密原理及握手过程?
    • 4. HTTP常见状态码(如200、404、500)的含义?
    • 5. GET与POST方法的区别及安全问题?
    • 6. Cookie、Session与Token的机制及区别
    • 7. WebSocket协议与HTTP长轮询的对比?
    • 8. DNS解析过程及递归/迭代查询的区别?
    • 9. 为什么DNS通常使用UDP协议?
    • 10. SMTP、POP3、IMAP协议的区别?
    • 11. FTP的主动模式与被动模式?
    • 12. RPC协议的基本原理及与HTTP API的对比


一、基础概念与模型‌

1. 什么是通信协议?列举三种常见的网络通信模型?

‌OSI七层模型‌:标准化分层框架,涵盖物理层至应用层
‌TCP/IP四层模型‌:互联网实际应用的分层结构,包含网络接口层、网络层、传输层、应用层。
‌五层协议体系结构‌:结合OSI与TCP/IP的折中模型,物理层、数据链路层、网络层、传输层、应用。

2. 解释OSI七层模型及各层功能

物理层:传输原始比特流,定义电气与物理介质特性(如网线、光纤)
数据链路层:封装帧结构,管理物理地址(MAC地址)及错误检测(如以太网协议)
网络层:路由数据包,处理逻辑值(IP地址)与跨网络通信(如IP协议)
传输层:提供端到端可靠/不可靠传输(TCP/UDP)
会话层:建立、管理与终止会话(如远程登录连接)
表示层:数据测试转换、加密/解密(如HTTPS加密)
应用层:直接面向用户的恶应用服务接口

3. TCP/IP四层模型与OSI模型的对应关系是什么?

网络接口层:对应OSI的物理层+数据链路层(如以太网、Wi-Fi)
网络层:对应OSI网络层(如IP协议)
传输层:对应OSI的传输层(如TCP/UDP)
应用层:会话层、表示层、应用层(如HTTP、DNS)

4. 五层协议体系结构与TCP/IP模型的区别?

五层协议体系结构与TCP/IP模型的差异主要体现在:
‌层级划分‌:五层模型保留OSI的物理层与数据链路层作为独立层级,而TCP/IP合并为网络接口层
‌应用层范围‌:TCP/IP应用层合并了OSI的会话层、表示层功能,五层模型仅保留应用层名称

5. 什么是面向连接与非面向连接的服务?举例说明.

面向连接:通信前需建立专用通道,确保数据顺序与可靠性(如TCP三次握手传输文件)
非面向连接:无需预先建立连接,数据独立发送,可能丢包(如UDP实时视频流传输)

6. 网络协议分层的意义是什么?

模块化设计:各层独立开发与优化,建立系统复杂性
职责隔离:层级间分工明确(如传输层管卡考行,网络层管路由)
互操作性:标准化层便于不同厂商设备协同工作

7. 解释协议栈中封装与解封装的过程

封装:数据从高层向底层传递时,每层添加头部控制信息。例如,应用层数据经传输层添加TCP透露,网络层添加IP头部,数据链路层添加帧头和帧尾。
解封装:接收端从物理层逐层向上剥离控制信息。例如:链路层去除帧头,网络层解析IP地址,传输层校验TCP序号

‌ 二、物理层与数据链路层‌

1. 物理层的主要作用是什么?

物理层负责在物理介质上传输原始比特流,定义电器特性、物理接口标准及传输介质规范(如电压、线缆类型、光纤接口)。其核心功能包括
比特流编码与解码
建立/断开物理连接
指定传输速率与同步方式

2. 数据链路层如何保证相邻节点间可靠传输?

帧校验:使用CRC校验检测传输错误,丢弃错误帧
确认与重传:接收方发送ACK确认,未收到ACK则重传(如停止等待协议)
流量控制:通过滑动窗口机制匹配手法速率
MAC地址管理:记录设备物理地址与端口映射关系,确保精准投递

3. 什么是MAC地址?与IP地址的区别是什么?

‌对比项‌‌MAC地址‌‌IP地址‌
‌层级‌数据链路层(二层)网络层(三层)
‌作用范围‌局域网内唯一标识设备跨网络唯一标识设备
‌分配方式‌硬件固化,出厂设定动态分配(如DHCP)或静态配置
‌格式‌48位十六进制(如00-1A-2B-3C-4D)IPv4(32位)/IPv6(128位)数字格式

4. ARP协议的作用及工作原理

作用:解析目标IP地址对应的MAC地址,实现网络层到数据链路层的地址映射
工作原理:
ARP请求广播:源主机发送ARP请求包(包括目标IP),官博之局域网内所有设备
ARP响应单播:目标主机返回ARP响应包,告知自身MAC地址
缓存映射:源主机记录IP-MAC映射到ARP标,后续通信直接查表

5. 解释交换机与路由器的区别

对比项交换机路由器
工作层级数据链路层网络层(三层)
转发依据MAC地址表(端口-MAC映射)路由表(目标网络-下一跳IP)
广播域处理不隔离广播域(同一VLAN内广播)隔离广播域(不同网络间不转发广播)
功能重点局域网内高效帧转发跨网络寻址与路由选择

6. VLAN的作用及实现原理

作用
隔离广播域:划分逻辑子网,减少广播风暴影响
增强安全性:隔离不同部门/业务流量
灵活管理:设备物理位置无关,按逻辑分组
实现原理:
端口划分:将交换机端口静态分配到不同VLAN
标签封装:基于IEEE 802.1Q协议,在帧头添加VLAN ID标识(如VLAN 10/20)
Trunk链路:通过Trunk端口跨交换机传输多VLAN流量

三、网络层‌

1. IP协议的定义及作用

定义:Ip是网络层核心协议,负责在不同网络间传输数据包,提供无连接的、尽力而为的传输服务
作用
寻址和路由:通过IP地址标识设备,并基于路由表选择最佳传输路径
数据分片与重组:根据网络MTU(最大传输单元)拆分或重组数据包
跨网络通信:屏蔽底层网络差异,实现异构网络的互联互通

2. IPv4与IPv6的主要区别

对比项IPv4IPv6
地址长度32位(约43亿地址)128位(理论上3.4x10~38地址)
地址标识点分十进制冒号分隔16进制
头部复杂度固定20字节,含校验和字段简化固定40字节,无校验和字段
关键改进依赖NAT缓解地址不足原生支持自动配置、端到端加密

3. IP地址的分类及子网划分方法

‌传统分类‌
‌A类‌:0.0.0.0~127.255.255.255(网络号8位,主机号24位)
‌B类‌:128.0.0.0~191.255.255.255(网络号16位,主机号16位)
‌C类‌:192.0.0.0~223.255.255.255(网络号24位,主机号8位)
‌子网划分‌
‌子网掩码‌:通过延长网络号划分子网(如255.255.255.0表示24位网络号)
‌CIDR(无类域间路由)‌:可变长子网掩码(如192.168.1.0/26表示26位网络号

4. 什么是NAT?其应用场景有哪些?

定义:网络地址转换将私有IP地址映射为公有IP地址,解决IPv4地址不足问题
应用场景:
家庭网络:多设备共享一个公网Ip访问互联网
企业内网:隐藏内部网络拓扑,增强安全性
IPv4和IPv6:通过NAT64实现协议转换

5. ICMP协议的作用及常见应用(如Ping)

作用:互联网控制报文协议(ICMP)用于网络层错误报告与诊断(如丢包通知、路径追踪)
常见应用:
Ping:检测目标可达性与往返时延
Traceroute:显示数据包传输路径和每跳延迟

6. 路由协议的分类(如RIP、OSPF、BGP)及特点

‌协议类型‌‌协议‌‌特点‌‌适用场景‌
‌内部网关协议(IGP)‌RIP基于跳数(最大15跳),周期性广播路由表小型网络(如企业分支)
OSPF基于链路状态(SPF算法),划分区域优化收敛速度大型企业网/运营商网络
‌外部网关协议(EGP)‌BGP 路径矢量协议,基于策略跨自治系统选路互联网骨干网(如ISP互联)

7. 解释路由表的作用及生成方式

作用:存储网络可达性信息,直到数据包转发路径选择
生成方式:
直接路由:自动添加直连网络条目
静态路由:管理员手动配置
动态路由:通过RIP、OSPF等协议学习路由信息

优先级:
按管理距离(AD值)排序,直连路由(AD=0)优先于静态路由(AD=1)和动态路由(如OSPF AD=1110)

四、传输层‌

1. TCP与UDP的主要区别及适用场景

维度TCPUDP
连接性面向连接(需三次握手建立连接)无连接,直接发送数据报
可靠性高可靠:确认应答、重传、流量控制等机制不保证数据完整性,可能丢包
传输方式字节流传输(按顺序重组数据)数据报传输(每个报文独立处理)
速率与效率速度较慢(需额外控制开销)速度快(无连接和确认机制)
适用场景文件传输、邮件、网页浏览等需可靠性场景实时音视频、DNS查询、直播等低延迟场景

2. TCP如何保证可靠传输?列举关键机制

确认应答、超时重传、序列号与排序、流量控制、拥塞控制。

3. 三次握手与四次挥手的详细过程及必要性?

三次握手(建立连接)‌
‌SYN‌:客户端发送SYN包(序列号ISN_C)至服务端,进入SYN_SENT状态。
‌SYN+ACK‌:服务端回复SYN包(序列号ISN_S)及ACK(ISN_C+1),进入SYN_RCVD状态。
‌ACK‌:客户端发送ACK(ISN_S+1),双方进入ESTABLISHED状态。
‌必要性‌:确保双方序列号同步,验证双向通信能力,避免历史连接干扰。
四次挥手(断开连接)‌
‌FIN‌:主动关闭方发送FIN包,进入FIN_WAIT_1状态。
‌ACK‌:被动关闭方回复ACK,进入CLOSE_WAIT状态,主动方进入FIN_WAIT_217。
‌FIN‌:被动关闭方处理完毕后发送FIN包,进入LAST_ACK状态。
‌ACK‌:主动关闭方回复ACK,进入TIME_WAIT状态,等待2MSL后关闭。
‌必要性‌:确保双方数据收发完毕,避免残留报文干扰新连接

4. 为什么TIME_WAIT状态需要等待2MSL?

确保被动方的ACK到达:若主动方最后一ACK丢失,被动方重传FIN时仍可响应。
消除旧链接报文:得带2MSL(报文最大生存时间)使网络中残留报文过期。

5. TCP拥塞控制的算法有哪些?

算法‌‌机制‌
‌慢启动‌初始窗口指数级增长至阈值,避免网络过载
‌拥塞避免‌窗口线性增长,触发拥塞时阈值减半
‌快速重传‌收到3次重复ACK立即重传丢失包,而非等待超时
‌快速恢复‌重传后直接进入拥塞避免阶段,而非慢启动

6. 解释SYN Flood攻击原理及防御方法

原理
攻击者伪造大量SYN包,耗尽服务资源(半开连接队列)
防御
SYN COOKIE::服务器不保存连接状态,通过加密哈希验证请求合法性。
限流与过滤:防火墙限制同一IP的SYN请求频率,过滤异常流量。

7. UDP协议为何被称为“不可靠”?实际应用场景举例

不可靠性表现:无确认重传、流量控制、数据包顺序保障。
应用场景:DNS查询、实时流媒体。

8. QUIC协议相比TCP的优势是什么?

基于UDP实现‌:绕过运营商对TCP的干扰,降低部署成本。
‌多路复用‌:单连接支持多数据流,避免队头阻塞。
‌0-RTT建连‌:复用历史连接时可实现瞬时通信(首次仍需1-RTT)。
‌前向纠错(FEC)‌:通过冗余数据减少重传次数,提升弱网性能。

‌五、应用层协议‌

1. HTTP协议的定义及无状态特性解决方案?

定义
HTTP协议,即超文本传输协议,是一种基于请求与响应、无状态、无连接的协议,尝基于TCP/IP协议传输数据。默认端口是80。

无状态特性
HTTP协议是无状态协议,即协议对客户端没有状态存储,对事务的处理没有记忆能力。例如,访问一个网站需要重复的登录操作。

解决方案
Cookies/Session会话保存:通过Cookies在客户端存储少量信息,Session在服务端维护用户会话装填,通常通过Session ID关联客户端
持久连接:只要任务一段没有明确提出断开连接,连接就会保持打开状态,从而在一定程度上模拟了状态保持

2. HTTP 1.0、1.1、2.0的核心改进?

HTTP 1.0
每个请求/响应都需要单独建立和关闭TCP连接,导致高延迟和资源浪费
不保留请求之间的上下文信息,每次请求单独处理
仅支持基础的Expires和Last-Modified头字段实现缓存,功能优先。
必须提前知道内容长度,否则无法传输动态生成的内容
缺少Host投资端,一个服务器无法托管多个域名

HTTP1.1
持久连接:默认服用TCP连接,允许一个连接上发送多个请求,减少握手开销
虚拟主机:支持一个IP地址托管多个域名
缓存策略:引入ETag、Cache-Control、if-None-Match等头字段,支持更精细的缓存策略
动态内容:允许服务器动态生成内容时,无需预先知道Content-Length
其他改进:支持范围请求、更多状态码和HTTP方法

HTTP2.0
二进制格式:将文本协议改为二进制格式,解析效率更高,减少错误
多路复用:单连接上并行传输多个请求和响应,彻底解决对头阻塞问题
头部压缩:使用HPACK算法压缩头部,较少重复字段的传输开销
服务器推送:服务器可主动向客户端推送资源,减少客户端等待请求
请求优先级:允许客户端未请求设置优先级,优化关键资源的加载顺序

3. HTTPS加密原理及握手过程?

加密原理
HTTPS协议是一种 通过计算机网络进行安全通信的协议,经过HTTP进行通信,利用SSL/TLS进行加密数据包。HTTPS在内容传输的加密上使用的是对称加密,非对称加密之作用在证书验证阶段。

握手过程
ClientHello:客户端发送支持的SSL/TLS版本、加密算法列表及随机数
ServerHello:服务端选择加密算法,返回随机数和数字证书
密钥交换:客户端验证证书有效性,生成第三个随机数,用公钥加密后发送
生成会话密钥:双方通过Client Random、Server Random、Pre-Master Secret生成Session Key
加密通信:后续数据传输使用Session Key进行数据加密

4. HTTP常见状态码(如200、404、500)的含义?

‌200 OK‌:请求已成功处理。
‌404 Not Found‌:服务器无法找到请求的资源。
‌500 Internal Server Error‌:服务器在处理请求时遇到了未知的错误。

5. GET与POST方法的区别及安全问题?

‌区别‌:
‌数据传输方式‌:GET方式的请求参数在URL中,用户可见;POST的参数在request body中,用户不可见。
‌数据传输量‌:GET方式受到URL长度限制,只能传递少量数据;POST方式对传递的数据大小无限制。
‌用途‌:GET方法主要用于获取信息;POST方法主要用于更新数据。

‌安全问题‌:
GET方式由于参数在URL中,存在信息泄露的风险。
POST方式相对更安全,但也需要采取其他安全措施,如HTTPS加密。

6. Cookie、Session与Token的机制及区别

‌Cookie‌:
‌机制‌:服务器端通过HTTP响应头Set-Cookie发送到浏览器的一小段数据(键值对),浏览器会存储它,并在后续请求中自动通过Cookie请求头回传给服务器。
‌特点‌:存储在浏览器端,易受CSRF攻击,可设置过期时间。

‌Session‌:
‌机制‌:服务器端维护的用户会话状态(如用户ID、权限等),通常通过Session ID(存储在客户端的Cookie中)关联客户端。
‌特点‌:存储在服务端,比纯Cookie安全,敏感信息不直接暴露,但在分布式系统中需共享Session。

‌Token‌:
‌机制‌:无状态的凭证(如JWT),包含用户信息和签名,由服务器签发,客户端存储(通常为LocalStorage或Cookie)并在请求时携带(如Authorization头)。
‌特点‌:存储在客户端,需防XSS攻击(LocalStorage)或CSRF攻击(Cookie),服务端无需存储Token,适合分布式系统。

7. WebSocket协议与HTTP长轮询的对比?

WebSocket
通信机制:提供全双工通信机制,允许服务器与客户端之间建立持久的连接,并实时交换数据
性能和实时性:由于建立了持久的连接,减少了开销和延迟,提供更高的性能和实时性
服务器负载:虽然较少了请求次数,但持久连接增加了服务器维持连接的负担
实现复杂性:实现相对复杂,需要专门的服务器支持和客户端实现
兼容性:不是所有的恶网络环境都支持WebSocket,可能会被某些代理和防火前阻塞
应用场景:适用于高实时性要求的应用,如在线游戏、实时聊天和实时数据监控

‌HTTP长轮询‌:
‌通信机制‌:工作在传统的HTTP协议之上,通过客户端不断发送请求给服务器来获取最新数据。服务器在有数据更新时才响应请求。
‌性能和实时性‌:每次请求可能引入额外的延迟,对于需要快速响应的实时应用,性能可能受限。
‌服务器负载‌:每个请求都需要服务器处理和响应,可能导致更高的服务器负载。
‌实现复杂性‌:实现相对简单,可以在现有的HTTP基础上构建。
‌兼容性‌:兼容性较好,因为它基于标准的HTTP协议。
‌应用场景‌:适用于对实时性要求不高的应用,或者简单的实时更新功能,如新闻更新或社交媒体通知。

8. DNS解析过程及递归/迭代查询的区别?

DNS解析过程
浏览器输入URL后,先进行解析URL是否合法
浏览器检查是否有缓存(浏览器缓存、系统缓存、路由器缓存),如果有缓存则直接显示,如果没有缓存,则进行域名解析,解析获取相对应的IP地址。

递归/迭代查询的区别
递归查询‌:由主机到本地域名服务器的查询方式。如果本地域名服务器没有该域名的记录,它会代表主机向其他DNS服务器发送查询请求,直到找到所需的IP地址或确定域名不存在。递归查询需要DNS服务器不断地向其他DNS服务器请求,直到找到最终结果。
迭代查询‌:由本地DNS服务器向根域名服务器发出查询请求的方式。根域名服务器会返回下一个应该查询的DNS服务器的地址,本地DNS服务器再根据这个地址继续查询,直到找到所需的IP地址。迭代查询中,每个DNS服务器只负责返回部分结果或指向下一个查询服务器的地址。

9. 为什么DNS通常使用UDP协议?

主要原因:处于性能和效率的考虑
小型请求和快速响应、低延迟、无状态、节省带宽等。

10. SMTP、POP3、IMAP协议的区别?

SMTP:主要用于发送邮件。定义了电子邮件的传输方式,并负责将邮件从发件人的电子邮件客户端发送到收件人的电子邮件服务器,通过TCP/IP连接发送电子邮件

POP3:主要用于接收电子邮件。允许用户从服务器上下载并存储邮件到本地设备。通常,POP3会将邮件从服务器上下载到本地设备后,删除服务器上的邮件副本(但现代的POP3服务器大多提供“只下载邮件,不删除服务器端邮件”的选项)。

IMAP:主要用于远程访问电子邮件。在服务器上维护邮件的副本,而不是将其完全下载到本地设备。IMAP允许用户从任何一个连接到服务器的设备上访问邮件,包括查看、删除、标记已读等操作。IMAP还支持在本地缓存邮件,以便离线访问。IMAP服务器与客户端之间的操作是双向同步的。

11. FTP的主动模式与被动模式?

‌主动模式‌:FTP客户端首先和FTP服务器的TCP 21端口建立连接,通过这个通道发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP服务器必须和客户端建立一个新的连接用来传送数据。

‌被动模式‌:在建立控制通道的时候和主动模式类似,但建立连接后发送的不是PORT命令,而是PASV命令。FTP服务器收到PASV命令后,随机打开一个高端端口(端口号大于1024)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口进行数据的传送。

12. RPC协议的基本原理及与HTTP API的对比

RPC(Remote Procedure Call)协议基本原理‌
RPC协议是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。它允许程序调用另一个地址空间(通常是共享网络的另一台机器上)的过程或函数,而不用程序员显式编码这个远程调用的细节。
RPC协议通常包括以下几个部分:客户端存根(Stub)、服务端存根(Stub)、网络传输模块和远程过程。客户端存根负责将客户端的请求参数打包成网络消息,并发送给服务端;服务端存根负责接收网络消息,并解析出请求参数,然后调用实际的过程或函数;远程过程执行完毕后,将结果返回给服务端存根,服务端存根再将结果打包成网络消息,发送给客户端存根;客户端存根解析出返回结果,并返回给客户端。

‌与HTTP API的对比‌
‌通信方式‌:RPC协议通常使用二进制格式进行通信,而HTTP API通常使用文本格式(如JSON、XML)进行通信。
‌性能‌:由于RPC协议使用二进制格式和更紧凑的编码方式,通常比HTTP API具有更高的性能。
‌易用性‌:HTTP API通常更容易使用和调试,因为它们是基于HTTP协议的,可以使用标准的HTTP工具和库进行开发和测试。而RPC协议通常需要专门的客户端和服务器实现
‌灵活性‌:HTTP API通常更灵活,可以支持更复杂的业务逻辑和数据处理。而RPC协议通常更侧重于远程过程调用,对于复杂的业务逻辑和数据处理可能需要额外的封装和处理。

相关文章:

网络安全面试题(一)

文章目录 一、基础概念与模型‌1. 什么是通信协议?列举三种常见的网络通信模型?2. 解释OSI七层模型及各层功能3. TCP/IP四层模型与OSI模型的对应关系是什么?4. 五层协议体系结构与TCP/IP模型的区别?5. 什么是面向连接与非面向连接的服务&…...

【Leetcode 每日一题】3355. 零数组变换 I

问题背景 给定一个长度为 n n n 的整数数组 n u m s nums nums 和一个二维数组 q u e r i e s queries queries,其中 q u e r i e s [ i ] [ l i , r i ] queries[i] [l_i, r_i] queries[i][li​,ri​]。 对于每个查询 q u e r i e s [ i ] queries[i] quer…...

RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试

RK3588 ArmNN CPU/GPU ResNet50 FP32/FP16/INT8 推理测试 **背景与目标** 一.性能数据【INT8模型在CPU上推理的结果已经不对,暂未分析原因】二.操作步骤2.1 在x86-Linux上生成onnx模型,以及tflite量化模型(避免在RK3588上安装过多依赖)2.1.1 创建容器2.1.2 安装依赖2.1.3 下载推…...

力扣第5题:最长回文子串(动态规划)

小学生一枚,自学信奥中,没参加培训机构,所以命名不规范、代码不优美是在所难免的,欢迎指正。 标签: 字符串、动态规划、中心扩散法 语言: C 题目: 给你一个字符串s,找到s中最长的…...

HCIP实验五

一、实验拓扑图: 二、实验需求分析: 1. PreVal策略:要求确保R4通过R2到达192.168.10.0/24 ,需在R4上针对去往该网段路由配置PreVal策略,为经R2的路径赋予更高优先值,影响本地路由表选路。 2. AS Path策略…...

python Numpy-数组

目录 Numpy: 一、Ndarray 1 定义 2 数组的属性方法 2.1 数组的维度:np.ndarray.shape 2.2 元素的类型:np.ndarray.dtype 2.3 数组元素的个数:np.ndarray.size 2.4 转置 3 ndarray 所存储元素的数据类型 4 数组创建 4.1 a…...

数据库分库分表从理论到实战

1.分库分表基础理论 1.1 分库分表基本概念 定义:分库分表是一种将单一数据库中的数据分散存储到多个数据库或表中的技术方案,其核心思想是通过"分而治之"的方式解决数据库性能瓶颈问题。分库:将表按业务或数据量拆分到不同数据库中…...

Java异常处理与File类终极指南

Java异常处理与File类终极指南 目录 异常体系全维度拆解异常处理十五种高阶模式自定义异常企业级实践File类深度探索与NIO进化论分布式系统异常处理架构性能调优与安全防护全网最全异常代码库一、异常体系全维度拆解 1.1 Java异常DNA解析 // 异常类的核心继承关系 public cla…...

pmap中的mode列,脏页,写时复制

写时复制(Copy-on-Write,简称 COW) 是一种计算机编程中的优化技术,主要用于内存或存储资源的管理。其核心思想是:只有在真正需要修改数据时,才会执行实际的复制操作,从而避免不必要的资源开销。…...

通过COM获取正在运行的Excel实例并关闭 c#实现

利用COM对象模型获取正在运行的Excel实例并关闭。示例代码如下: using Excel Microsoft.Office.Interop.Excel; using System.Runtime.InteropServices; try { Excel.Application excelApp (Excel.Application)Marshal.GetActiveObject("Excel.Applicatio…...

运行在华为云kubernetes应用接入APM服务

1 APM概述 在云时代微服务架构下应用日益丰富,纷杂的应用异常问题接踵而来。应用运维面临巨大挑战: 分布式应用关系错综复杂,应用性能问题分析定位困难,应用运维面临如何保障应用正常、快速完成问题定位、迅速找到性能瓶颈的挑战…...

虚幻引擎5-Unreal Engine笔记之摄像头camera

虚幻引擎5-Unreal Engine笔记之摄像头camera code review! 目录 第一部分:摄像头的基础概念 1.1 UE5 中摄像头的定义与作用1.2 UE5 中摄像头的类型与分类 第二部分:摄像头的代码结构与分类 2.1 摄像头是类还是组件?2.2 组件的本质&#xff…...

mysql的基础命令

1.SQL的基本概念 SQL 是用于管理和操作关系型数据库的标准编程语言。是所有关系型数据库(如 MySQL、PostgreSQL、Oracle 等)的通用语言。 SQL语句分类 DDL: Data Defination Language 数据定义语言 CREATE,DROP,ALTER DML: Da…...

去中心化算力池:基于IPFS+智能合约的跨校GPU资源共享平台设计

点击 “AladdinEdu,同学们用得起的【H卡】算力平台”,H卡级别算力,按量计费,灵活弹性,顶级配置,学生专属优惠。 一、问题背景:高校算力孤岛的困境 现状痛点 各高校GPU集群利用率差异显著&…...

数据库(二):ORM技术

什么是 ORM? ORM(Object-Relational Mapping) 是一种用于实现 对象模型(面向对象)与关系模型(数据库)之间映射的技术,使程序员可以通过操作对象的方式访问数据库数据,而无…...

Oracle基础知识

目录 1.别名的使用 2.AND的优先级高于OR 3.where后面可以接别名,order by后面不可以 4.Oracle中SQL的执行顺序(重点) 5.dual万用表 6.是否区分大小写 7.Oracle常用数据类型 8.Oracle常用函数 (1)length字符、lengthb字节和cast强制类型转换 (2)数据类型转…...

使用 vite-plugin-dynamic-base 实现运行时动态设置上下文路径

我们一般会在编译之前设置上下文,那么如何在编译之后动态设置上下文的路径? 本文使用的技术栈是 Go(Gin) Vue.js(Vite) 本文使用到的第三方包:https://github.com/chenxch/vite-plugin-dynam…...

spark-shuffle 类型及其对比

1. Hash Shuffle 原理:将数据按照分区键进行哈希计算,将相同哈希值的数据发送到同一个Reducer中。特点:实现简单,适用于数据分布均匀的场景。但在数据分布不均匀时,容易导致某些Reducer处理的数据量过大,产…...

力扣-快乐数

1.题目要求 2.题目链接 202. 快乐数 - 力扣(LeetCode) 3.题目分析 首先,因为需要频繁地用到数字变为各个位上的平方的过程,我们可以将"对于一个正整数,每一次将该数替换为它每个位置的数字的平方和"这一操作抽象出来,定义成一个…...

每日算法刷题Day10 5.19:leetcode不定长滑动窗口求最长/最大4道题,结束定长滑动窗口,用时1h

不定长滑动窗口 不定长滑动窗口主要分为三类:求最长子数组,求最短子数组,以及求子数组个数。 注:滑动窗口相当于在维护一个队列。右指针的移动可以视作入队,左指针的移动可以视作出队。 滑动窗口【基础算法精讲 03】…...

FreeSWITCH 纯内网配置

纯内网&#xff0c;且同一个网段&#xff0c;Fs 可简化配置&#xff0c;要点是: 1. 不需要事先配置 directory&#xff0c;任意号码都可以注册&#xff0c;且无挑战 2. 呼叫无挑战 不需要考虑那么多安全问题 配置如下&#xff1a; 1. 全局变量 <X-PRE-PROCESS cmd"…...

STL中list的模拟

这里写目录标题 list 的节点 —— ListNodelist 的 “导览员” —— ListIteratorlist 的核心 —— list 类构造函数迭代器相关操作容量相关操作 结尾 在 C 的 STL&#xff08;标准模板库&#xff09;中&#xff0c;list 是一个十分重要的容器&#xff0c;它就像一个灵活的弹簧…...

【iOS】类结构分析

前言 之前我们已经探索得出对象的本质就是一个带有isa指针的结构体&#xff0c;这篇文章来分析一下类的结构以及类的底层原理。 类的本质 类的本质 我们在main函数中写入以上代码&#xff0c;然后利用clang对其进行反编译&#xff0c;可以得到c文件 可以看到底层使用Class接…...

Android 万能AI证件照 v1.3.2

在日常的生活和工作场景里&#xff0c;证件照的身影随处可见。找工作投简历时&#xff0c;它是展现你形象的 “第一张名片”&#xff1b;办理各类证件&#xff0c;缺了它可不行&#xff1b;参加各种考试报名&#xff0c;同样需要它。可以说&#xff0c;证件照虽小&#xff0c;却…...

【Java】封装在 Java 中是怎样实现的?

包 关于包有两个关键字 package : 声明当前类属于哪个包 和 import : 允许当前类使用其他类或接口时不使用全限定名 , 也就是导包 . IDEA 的普通项目文件包括 src : 包含源码和资源文件 和 out : 包含编译产物字节码文件 . 在 IDEA 开发环境建包会在 src 源码目录中生成 , 可…...

牛客网 NC14736 双拆分数字串 题解

牛客网 NC14736 双拆分数字串 题解 题目分析 解题思路 通过分析&#xff0c;我们可以发现&#xff1a; 当n≤3时&#xff0c;无法构造出双拆分数字串&#xff0c;因为数字位数太少对于n>3的情况&#xff0c;我们可以构造两种特殊形式&#xff1a; 当n为奇数时&#xff0c…...

超长文本注意力机制如何突破传统 O(n²) 瓶颈

介绍了当前在超长文本&#xff08;可达百万级及以上 Token&#xff09;生成与预测中&#xff0c;注意力机制如何突破传统 O(n) 瓶颈&#xff0c;并阐释多种高效注意力算法如何支持 超长上下文处理能力。 概览 当前主流 Transformer 在处理长序列时&#xff0c;由于每个 Token…...

异丙肌苷市场:现状、挑战与未来展望

摘要 本文聚焦异丙肌苷市场&#xff0c;深入分析了其市场规模与增长趋势、应用价值与市场驱动因素、面临的挑战以及竞争格局。异丙肌苷作为一种具有重要应用价值的改性核苷衍生物&#xff0c;在药物研发和治疗领域展现出潜力&#xff0c;但市场发展也面临诸多挑战。文章最后为…...

JAVA面向对象——对象和类的基本语法

JAVA面向对象——对象和类的基本语法 一、面向对象编程基础 1. 程序中的数据存储方式 基本类型&#xff1a;变量&#xff08;如 int max 15;&#xff09;。数据结构&#xff1a;数组&#xff08;一维/二维&#xff09;、对象&#xff08;特殊数据结构&#xff0c;用于存储复…...

【windows】音视频处理工具-FFmpeg(合并/分离)

一、FFmpeg介绍 FFmpeg是一个‌开源的跨平台音视频处理框架。 法国计算机程序员 Fabrice Bellard 于 2000 年创建。 “FF”&#xff08;代表 “Fast Forward”&#xff0c;快进之意&#xff09;与 “mpeg”&#xff08;流行的视频压缩标准 MPEG&#xff0c;即运动图像专家组&am…...

Java并发编程:从基础到高级实战

在现代软件开发中&#xff0c;并发编程已成为不可或缺的核心技能。随着多核处理器的普及和分布式系统的发展&#xff0c;能否编写高效、线程安全的并发程序直接决定了应用程序的性能和可靠性。Java作为一门成熟的企业级编程语言&#xff0c;提供了丰富的并发编程工具和API&…...

在 Excel 中使用东方仙盟软件————仙盟创梦IDE

安装插件 用仙盟创梦编写插件代码 源码 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ExcelDna.Integration;namespace 东方仙盟.仙盟创梦IDE_招标系统 {public static class 仙盟创梦_招标专…...

win7无线网络名称显示为编码,连接对应网络不方便【解决办法】

使用多个网络时可能需要切换到打印机的网络来打印东西&#xff0c;但是win7的编码问题导致不知道哪个网络是对应网络&#xff0c;可以使用批处理命令来自动连接道指定网络 将这个代码用文本文件打开后粘贴&#xff0c;然后另存为ansi格式的bat文件 代码中使用两种方式进行连接…...

.NET 10 - 尝试一下Minimal Api的Validation新特性

1.简单介绍 2025年11月微软将会发布.NET10&#xff0c;这是LTS(Long Term Support)版本。当前.NET10已经处于Preview4版本&#xff0c;微软对Runtime, Library, SDK, C#, Asp.NET Core, MAUI等都做了很多enhancement。近些年微软对Minimal Api一直在持续地更新。在.NET8中, Mi…...

C# Task 与 SynchronizationContext

示例代码 using System; using System.Collections.Concurrent; using System.Threading; using System.Threading.Tasks;namespace Test {internal class Program{static void Main(string[] args){_mainThreadSynchronizationContext new ThreadSynchronizationContext(&qu…...

iOS Runtime与RunLoop的对比和使用

Runtime 机制 核心概念 Objective-C 的动态特性&#xff1a;Objective-C 是一门动态语言&#xff0c;很多工作都是在运行时而非编译时决定的消息传递机制&#xff1a;方法调用实际上是发送消息 objc_msgSend(receiver, selector, ...)方法决议机制&#xff1a;动态方法解析、…...

JavaSenderMail发送邮件(QQ及OFFICE365)

前言 这是今天处理的公司安排的一个任务&#xff1a;客户系统发送offices365邮件报错535 之前没怎么解除邮件业务&#xff0c;于是先搭个简单的QQ邮件Demo熟悉一下吧&#xff0c;没有啥公网内网的麻烦&#xff08;之前听说有内网限制&#xff0c;我还处理了一些环境上的问题&…...

八股文--JVM(2)

⭐️⭐️6.类加载 类加载器 JVM只会运行二进制文件&#xff0c;类加载器的作用就是将字节码加载到JVM中&#xff0c;从而让程序启动 1.启动类加载器 ----JAVA_HOME/jre/libC编写加载的是JAVA_HOME/jre/lib 2.拓展类加载器 ----JAVA_HOME/jre/lib/ext 3.应用类加载器 ----C…...

【HTML-3】HTML 中的水平线与换行:基础元素详解

在网页设计中&#xff0c;合理的布局和内容分隔对于提升用户体验至关重要。HTML 提供了两个简单但强大的元素来实现这些功能&#xff1a;水平线 (<hr>) 和换行 (<br>)。本文将深入探讨这两个元素的用法、最佳实践以及现代替代方案。 1. 水平线 <hr> 元素 1…...

绿色云计算:数字化转型与可持续发展的完美融合

目录 引言 绿色云计算的概念与定义 云计算的环境影响与绿色云计算的重要性 绿色云计算的技术实践与策略 绿色云计算的案例研究与最佳实践 绿色云计算的挑战与限制 绿色云计算的未来趋势与预测 结论与展望 引言 随着云计算技术的迅猛发展和广泛应用&#xff0c;其环境影…...

AMO——下层RL与上层模仿相结合的自适应运动优化:让人形行走操作(loco-manipulation)兼顾可行性和动力学约束

前言 自从去年24年Q4&#xff0c;我司侧重具身智能的场景落地与定制开发之后 去年Q4&#xff0c;每个月都会进来新的具身需求今年Q1&#xff0c;则每周都会进来新的具身需求Q2的本月起&#xff0c;一周不止一个需求 特别是本周&#xff0c;几乎每天都有国企、名企通过我司找到…...

大模型——多模态检索的RAG系统架构设计

文章目录 1. 系统架构设计核心组件 2. 跨模态向量空间对齐方案方法一&#xff1a;预训练对齐模型&#xff08;如CLIP&#xff09;方法二&#xff1a;跨模态投影网络方法三&#xff1a;联合微调 3. 混合检索策略4. 关键问题解决Q: 如何解决模态间向量尺度不一致&#xff1f;Q: 如…...

BUUCTF——Kookie

BUUCTF——Kookie 进入靶场 一个登录页面 左上角提示让以admin身份登录 找到了cookie 应该与cookie相关 测试了一下admin admin没登上 We found the account cookie / monster 回头看了一下 这个是不是账号密码 测试一下 成功登入 但是没有flag 应该还是跟cookie相关 …...

代码随想录算法训练营

力扣684.冗余连接【medium】 力扣.冗余连接Ⅱ【hard】 一、力扣684.冗余连接【medium】 题目链接&#xff1a;力扣684.冗余连接 left x300 视频链接&#xff1a;代码随想录 题解链接&#xff1a;灵茶山艾府 1、思路 可以从前向后遍历每一条边&#xff08;因为优先让前面的边连上…...

服务器磁盘不同格式挂载区别

在Linux系统中&#xff0c;磁盘不同格式挂载的核心区别主要体现在‌文件系统类型‌和‌挂载方式‌两个方面&#xff0c;以下为具体差异分析&#xff1a; 一、文件系统类型区别 磁盘格式即文件系统类型的选择直接影响挂载后的性能和功能&#xff1a; ‌常见文件系统比较‌ ‌e…...

AI智能分析网关V4人员摔倒检测打造医院/工厂等多场景智能安全防护体系

一、方案背景​ 随着全球老龄化加剧&#xff0c;我国老年人口占比持续攀升&#xff0c;老年人摔倒伤亡事件频发&#xff0c;居家、养老机构等场景的摔倒防控成为社会焦点。同时&#xff0c;工厂、医院、学校等人员密集场所也易发生意外摔倒安全事故。传统人工监控存在视觉疲劳…...

window 显示驱动开发-准备 DMA 缓冲区

显示微型端口驱动程序必须及时准备 DMA 缓冲区。 当 GPU 处理 DMA 缓冲区时&#xff0c;通常调用显示微型端口驱动程序来准备下一个 DMA 缓冲区&#xff0c;以便提交到 GPU。 若要防止 GPU 耗尽&#xff0c;显示微型端口驱动程序在准备和提交后续 DMA 缓冲区时所花费的时间必须…...

程序设计实践--排序(1)

&#xff11;、插入排序&#xff08;一个数组&#xff09; #include<bits/stdc.h> using namespace std; const int N1e35; int a[N]; int n; int main(){cin>>n;for(int i1;i<n;i){cin>>a[i];}for(int i1;i<n;i){int va[i];int ji-1;while(j>1&am…...

window 显示驱动开发-GDI 硬件加速

Windows 7 引入的 GDI 硬件加速功能在图形处理单元 (GPU) 上提供加速的核心图形设备接口 (GDI) 操作。 若要指示 GPU 和驱动程序支持此功能&#xff0c;显示微型端口驱动程序必须将DXGKDDI_INTERFACE_VERSION设置为 > DXGKDDI_INTERFACE_VERSION_WIN7。 显示微型端口驱动程…...

驱动开发硬核特训 · Day 31:理解 I2C 子系统的驱动模型与实例剖析

&#x1f4da; 训练目标&#xff1a; 从驱动模型出发&#xff0c;掌握 I2C 子系统的核心结构&#xff1b;分析控制器与从设备的注册流程&#xff1b;结合 AT24 EEPROM 驱动源码与设备树实例&#xff0c;理解 i2c_client 与 i2c_driver 的交互&#xff1b;配套高质量练习题巩固理…...