网络分层模型是计算机网络体系结构的核心框架,它通过将复杂的网络通信过程分解为多个层次,使网络设计、实现和维护变得更加模块化和标准化。

一、分层模型概念

1、OSI七层模型的详细解析

开放系统互连参考模型(OSI/RM)是国际标准化组织(ISO)在1984年提出的网络体系结构标准,旨在为不同厂商的设备提供统一的通信框架。OSI模型将网络通信划分为七个层次,每层都有明确的功能定义和服务接口,这种分层设计使得网络系统变得更加模块化和标准化。

1.1、物理层:比特流的物理传输

物理层(Physical Layer)作为OSI模型的最底层,承担着在物理介质上传输原始比特流的基础功能。这一层主要关注的是电气特性机械特性,定义了硬件设备的规格、传输介质的类型以及信号的编码方式。物理层的典型规范包括RJ-45接口标准、各种电缆规格(如Cat5e、Cat6)以及光纤接口(如SC、ST、LC)。在无线通信领域,物理层还规定了无线电波的频率、调制方式等参数。

物理层的核心功能可以概括为:比特同步(确保发送方和接收方的时钟一致)、比特表示(如何用信号表示0和1,如曼彻斯特编码)、数据传输速率控制以及物理拓扑结构的建立(如总线型、星型或环型网络)。常见的物理层设备包括集线器(Hub)、中继器(Repeater)和网络接口卡(NIC)。物理层的协议和标准确保了不同厂商生产的硬件设备能够互连互通,为上层通信提供了物理基础。

1.2、数据链路层:帧的可靠传输

数据链路层(Data Link Layer)位于物理层之上,其主要职责是将物理层传输的原始比特流组织成结构化的帧,并在直接相连的节点间实现可靠的数据传输。这一层通过帧同步、差错控制和流量控制等机制,为网络层提供无差错的信道服务。

数据链路层的功能具体包括:

  • 成帧:将比特流划分为具有特定格式的数据帧,通常包含帧头(源/目的MAC地址)、有效载荷和帧尾(校验序列)
  • 物理寻址:使用MAC地址唯一标识网络中的设备
  • 差错控制:通过CRC(循环冗余校验)等技术检测和纠正传输错误
  • 访问控制:协调多个设备对共享介质的访问,如CSMA/CD(载波监听多路访问/冲突检测)协议

数据链路层又可细分为两个子层:LLC(逻辑链路控制)子层负责与上层的接口,而MAC(介质访问控制)子层则处理物理寻址和介质访问。典型的链路层设备包括交换机和网桥,它们基于MAC地址进行数据帧的转发和过滤。

1.3、网络层:端到端的逻辑寻址与路由

网络层(Network Layer)是OSI模型中的关键层次,它负责将数据包从源主机通过最佳路径路由到目的主机,实现跨网络的通信。网络层引入了逻辑地址(如IP地址)的概念,使得设备可以在复杂的互联网环境中被唯一标识和定位。

网络层的核心功能包括:

  • 逻辑寻址:为每个设备分配唯一的IP地址
  • 路由选择:根据路由表确定数据包转发的最佳路径
  • 分组转发:在不同网络间中转IP数据包
  • 拥塞控制:通过适当的策略避免网络过载

在网络层工作的典型设备是路由器,它能够连接不同的网络,并根据路由协议(如RIP、OSPF、BGP)动态更新路由表。网络层的代表性协议包括IP(Internet协议)、ICMP(Internet控制报文协议)和ARP(地址解析协议)等。网络层的实现使得互联网能够实现全球范围的互联互通,支持跨越多个中间节点的端到端通信。

1.4、传输层:端到端的可靠数据传输

传输层(Transport Layer)在OSI模型中扮演着承上启下的关键角色,它提供端到端的通信服务,确保数据从发送方进程可靠地传送到接收方进程。传输层通过端口号标识不同的应用程序,实现了从主机到主机的通信提升为进程到进程的通信。

传输层的主要职责包括:

  • 分段与重组:将上层数据分割为适合网络传输的大小
  • 端口寻址:通过端口号区分主机上的不同服务
  • 连接控制:建立、维护和释放端到端连接(如TCP的三次握手)
  • 流量控制:通过滑动窗口等技术调节发送速率
  • 差错控制:通过确认和重传机制保证数据可靠性

传输层有两种典型的协议:TCP(传输控制协议)提供面向连接的可靠服务,而UDP(用户数据报协议)则提供无连接的不可靠但高效的服务。传输层的实现使得上层应用无需关心网络传输的细节,可以专注于业务逻辑的实现。

1.5、会话层、表示层和应用层:高层功能解析

OSI模型的上三层(会话层、表示层和应用层)更加贴近用户应用,处理的是与应用程序直接相关的功能。

会话层(Session Layer)负责管理应用程序之间的对话,其主要功能包括:

  • 会话控制:建立、维护和同步应用进程间的对话
  • 对话模式:管理全双工、半双工和单工通信
  • 会话恢复:在中断后恢复会话而不丢失数据
    典型的会话层协议有SSH(安全外壳协议)和RPC(远程过程调用)等。

表示层(Presentation Layer)关注数据的表示形式,其主要职责包括:

  • 数据转换:不同系统间的编码转换(如ASCII到EBCDIC)
  • 数据加密/解密:保障数据传输的安全性
  • 数据压缩:减少传输数据量,提高效率
    常见的表示层技术有SSL/TLS加密、JPEG图像压缩和MPEG视频编码等。

应用层(Application Layer)是OSI模型的最高层,直接为用户的应用程序提供服务。应用层协议种类繁多,包括:

  • HTTP/HTTPS:网页浏览
  • FTP:文件传输
  • SMTP/POP3/IMAP:电子邮件
  • DNS:域名解析
    应用层协议使得网络服务对用户变得透明和易用,用户无需了解底层技术细节即可享受各种网络服务。

2、TCP/IP四层模型的体系结构

TCP/IP模型是互联网实际采用的协议体系,由美国国防部在20世纪70年代开发,最初用于ARPANET(阿帕网),后来发展成为全球互联网的基础。与理论化的OSI模型不同,TCP/IP模型采用了更加实用的四层结构,将OSI中的某些层次进行了合并和简化,使其更易于实现和部署。TCP/IP模型从下到上依次为:网络接口层(Network Interface Layer)、网络层(Internet Layer)、传输层(Transport Layer)和应用层(Application Layer)。

2.1、网络接口层:物理介质与数据链路

TCP/IP模型的网络接口层对应了OSI模型的物理层数据链路层,它负责将数据包转换为比特流并通过物理介质(如电缆、光纤或无线电波)进行传输。这一层涵盖了所有与物理网络连接相关的细节,包括硬件设备、传输介质和链路层协议。

网络接口层的主要功能包括:

  • 物理地址(MAC地址)管理:为每个网络接口分配唯一的硬件地址
  • 帧封装:将IP数据包封装为适合特定网络类型的帧格式
  • 介质访问控制:协调多个设备对共享介质的访问
  • 信号编码与同步:将数字比特转换为适合传输的物理信号

常见的网络接口层协议包括:

  • 以太网(Ethernet):最普遍的局域网技术
  • Wi-Fi(IEEE 802.11):无线局域网标准
  • PPP(点对点协议):用于拨号连接和广域网链路
  • ARP(地址解析协议):将IP地址解析为MAC地址

网络接口层的实现使得上层协议可以独立于具体的网络硬件技术,只需关注数据包的发送和接收,而无需关心底层使用何种传输介质。

2.2、网络层:IP协议与路由选择

网络层在TCP/IP模型中被称为Internet Layer(互联网层),其核心协议是IP协议(Internet Protocol)。这一层负责将数据包从源主机路由到目的主机,跨越可能由多种不同类型网络组成的复杂路径。网络层的主要功能与OSI模型的网络层类似,但更加专注于IP协议的具体实现。

网络层的关键功能包括:

  • 逻辑寻址:通过IP地址唯一标识网络中的设备
  • 路由选择:确定数据包从源到目的地的最佳路径
  • 分组与重组:处理大数据包的分片和重组以适应不同网络的MTU
  • 错误报告:通过ICMP协议报告传输中的问题

网络层的主要协议有:

  • IPv4/IPv6:互联网协议的两个版本
  • ICMP:用于网络诊断和错误报告(如ping工具)
  • IGMP:管理IP多播组成员
  • 路由协议:如RIP、OSPF和BGP等

网络层的设计体现了"端到端"原则,将复杂性保留在网络的边缘(主机),而保持网络核心简单高效。这种设计哲学使得互联网能够规模扩展,连接全球数十亿设备。

2.3、传输层:端到端的可靠通信

TCP/IP模型的传输层与OSI模型的传输层直接对应,提供端到端的通信服务,确保数据从发送方进程可靠地传送到接收方进程。传输层通过端口号区分同一主机上的不同应用程序,实现了从主机到主机的通信提升为进程到进程的通信。

传输层的主要职责包括:

  • 进程间通信:通过端口号标识应用进程
  • 连接管理:建立、维护和释放连接(TCP)
  • 可靠性保障:通过确认、重传和超时等机制
  • 流量控制:防止发送方淹没接收方
  • 拥塞控制:避免网络过载

传输层有两种核心协议:

  • TCP(传输控制协议):面向连接的可靠协议,提供有保障的数据传输,适用于要求可靠性的应用如网页浏览、文件传输和电子邮件等。
  • UDP(用户数据报协议):无连接的不可靠协议,提供最小开销的简单服务,适用于实时性要求高的应用如视频会议、在线游戏和DNS查询等。

TCP和UDP的选择取决于应用需求:强调可靠性则选择TCP,强调实时性则选择UDP。传输层的设计使得上层应用可以根据需要选择合适的服务类型,而不必自己实现可靠性或实时性机制。

2.4、应用层:用户服务与协议

TCP/IP模型的应用层对应于OSI模型的会话层、表示层和应用层的合并,它包含了所有高层协议,直接为用户应用程序提供服务。应用层协议通常定义了特定的消息格式和交互规则,使不同系统上的同类应用能够相互通信。

应用层的主要特点包括:

  • 用户接口:直接面向用户和应用程序
  • 协议多样性:每种服务通常有专用协议
  • 内容处理:数据格式转换、加密和压缩等
  • 服务发现:通过知名端口号标识服务

常见的应用层协议有:

  • HTTP/HTTPS:超文本传输协议(安全版本),用于网页浏览
  • FTP/SFTP:文件传输协议(安全版本)
  • SMTP/POP3/IMAP:电子邮件相关协议
  • DNS:域名系统,将域名解析为IP地址
  • SSH:安全远程登录
  • DHCP:动态主机配置,自动分配IP地址

应用层协议的实现使得网络服务对用户变得透明和易用。例如,用户只需在浏览器中输入网址即可访问网页,而不必关心底层如何进行DNS查询、TCP连接建立、HTTP请求发送等复杂过程。

3、TCP/IP五层模型的折中方案

TCP/IP五层模型是学术界和教育领域常用的一种折中方案,它综合了OSI七层模型的理论清晰度和TCP/IP四层模型的实用性。这种模型将网络体系结构分为五个层次:物理层、数据链路层、网络层、传输层和应用层。五层模型保留了TCP/IP模型中将上三层合并为应用层的做法,同时将TCP/IP的网络接口层拆分为物理层和数据链路层,以保持与OSI模型在底层的一致性。

3.1、物理层与数据链路层的细分

TCP/IP五层模型将TCP/IP四层模型中的网络接口层拆解为两个独立的层次:物理层和数据链路层。这种划分使得网络教育的讲解更加清晰,也更容易与OSI模型进行对比。

物理层在五层模型中与OSI的物理层完全一致,负责:

  • 比特流的透明传输
  • 定义机械、电气、功能和规程特性
  • 包括电缆、光纤、无线电波等传输介质
  • 规定连接器和接口的物理标准

数据链路层则负责:

  • 将原始比特流组织为帧(framing)
  • 实现差错控制(如CRC校验)
  • 介质访问控制(MAC)
  • 局域网和广域网技术实现(如以太网、PPP)

这种细分的一个典型应用场景是以太网交换机的工作机制。交换机工作在数据链路层,根据MAC地址表进行帧的转发决策,而物理层则处理实际的信号传输。五层模型的这种划分方式使得网络设备的功能定位更加明确,有助于理解和设计网络系统。

3.2、网络层、传输层和应用层的功能

TCP/IP五层模型的上三层(网络层、传输层和应用层)与TCP/IP四层模型中的对应层次基本一致,但在描述上更加详细和精确。

网络层(也称为Internet Layer)的核心功能包括:

  • IP地址分配和逻辑寻址
  • 路由算法和协议(如RIP、OSPF、BGP)
  • IP数据包的分片和重组
  • ICMP协议用于网络诊断

传输层在五层模型中的描述更加突出其服务差异性:

  • TCP服务:面向连接、可靠传输、流量控制、拥塞控制
  • UDP服务:无连接、尽最大努力交付、低延迟
  • 端口号系统(0-65535)及知名端口分配

应用层则涵盖了几乎所有网络应用程序使用的协议:

  • 基于TCP的协议:HTTP(80)、FTP(20/21)、SMTP(25)、SSH(22)
  • 基于UDP的协议:DNS(53)、DHCP(67/68)、SNMP(161)
  • 混合使用的协议:DNS可同时使用TCP和UDP

五层模型对应用层的描述通常比四层模型更加详细,会区分不同应用协议的特点和使用场景。例如,解释为什么DNS主要使用UDP而HTTP必须使用TCP,这种深入的分析有助于理解协议设计的选择和权衡。

3.3、五层模型的实际应用价值

TCP/IP五层模型虽然不如四层模型那样被实际实现,但在网络教育和问题排查中具有重要价值。它为理解网络协议栈提供了更加细致的框架,同时避免了OSI七层模型中某些层次(如会话层和表示层)功能重叠的问题。

五层模型的应用价值体现在:

  1. 教育工具:作为从理论(OSI)到实践(TCP/IP)的桥梁,帮助学生逐步理解网络体系结构
  2. 故障诊断:提供了更细致的分层检查方法,便于定位网络问题所在层次
  3. 协议分析:为研究新协议提供清晰的参考框架
  4. 网络设计:指导设计人员考虑各层的功能和接口

例如,当网络出现连通性问题时,按照五层模型可以系统地进行排查:

  1. 物理层:检查网线、接口、链路指示灯
  2. 数据链路层:验证MAC地址学习、VLAN配置
  3. 网络层:检查IP地址配置、路由表
  4. 传输层:测试端口连通性、防火墙规则
  5. 应用层:验证服务是否正常运行

这种结构化的方法大大提高了网络管理和维护的效率。五层模型的广泛采用证明了它在平衡理论完整性和实践简洁性方面的成功。

二、三大分层模型的对比分析

OSI七层模型、TCP/IP四层模型和TCP/IP五层模型代表了网络体系结构的不同建模方式,它们各有特点和适用场景。通过对比这些模型的异同点,我们可以更深入地理解网络分层的设计哲学和实际应用中的权衡考量。这些模型并非相互竞争,而是针对不同需求提出的解决方案,理解它们的关系有助于我们在理论和实践中做出恰当的选择。

1、分层结构与对应关系

三大模型的分层对应关系是理解它们异同的基础。OSI七层模型提供了最详细的分层,而TCP/IP四层模型则是最精简的实现,五层模型则是两者的折中。

OSI七层模型TCP/IP四层模型TCP/IP五层模型主要功能
应用层、表示层、会话层应用层应用层为用户应用程序提供网络服务接口
传输层传输层传输层提供端到端的可靠或不可靠传输
网络层网络层网络层处理跨网络的路由和转发
数据链路层网络接口层数据链路层在直接相连的节点间可靠传输帧
物理层(包含在网络接口层)物理层在物理介质上传输原始比特流

从上表可以看出,主要的差异集中在高层和底层:OSI将应用相关功能分为三层,而TCP/IP模型将其合并为一层;OSI明确区分数据链路层和物理层,而TCP/IP四层模型将它们合并为网络接口层。这些差异反映了理论模型与实际实现的不同侧重点。

2、设计理念与实际应用对比

OSI模型和TCP/IP模型在设计理念上存在根本区别,这导致了它们在现实世界中不同的命运。OSI模型是由国际标准化组织(ISO)设计的理论框架,强调概念的清晰性和标准的开放性;而TCP/IP模型则源于实践,是互联网实际采用的协议栈,强调实用性和灵活性。

OSI模型的特点

  • 理论先行,设计完美但实现复杂
  • 严格的分层,各层功能界定清晰
  • 国际标准,厂商中立
  • 会话层和表示层的功能在实际中很少单独实现

TCP/IP模型的特点

  • 实践驱动,从实际需求演化而来
  • 层次简化,各层功能有一定重叠
  • 最初由美国国防部资助开发
  • 网络接口层包容各种底层技术

在实际应用中,TCP/IP模型因其简洁高效而成为互联网的基础,而OSI模型则主要作为教学工具和概念参考。五层模型则结合了两者的优点,既保持了足够的分层清晰度,又不至于太过复杂,因此在网络教育中被广泛采用。

3、协议栈与标准化比较

三大模型在协议支持和标准化过程方面也有显著差异。OSI模型有一整套标准协议,但在实际中很少完全实现;TCP/IP模型则包含了互联网运行所必需的核心协议,这些协议经过了大规模实践的验证。

OSI协议栈

  • 定义了一系列标准协议(如X.400电子邮件、X.500目录服务)
  • 协议设计复杂,实现开销大
  • 在欧洲电信领域有一定应用
  • 缺乏商业推动力

TCP/IP协议栈

  • 包括IP、TCP、UDP、HTTP、FTP等实际运行的协议
  • 协议设计注重实用性和容错性
  • 由IETF标准化,采用"粗略共识和运行代码"的务实理念
  • 得到产业界广泛支持

协议映射示例

  • 应用层:HTTP(TCP/IP)对应OSI的应用层、表示层和会话层
  • 传输层:TCP和UDP在两个模型中概念相同
  • 网络层:IP在两个模型中概念相似
  • 底层:以太网在OSI中分为数据链路层和物理层,在TCP/IP中合并

这种协议支持的差异解释了为什么OSI模型未能成为实际标准,而TCP/IP模型随着互联网的爆炸性增长而成为事实上的标准

4、教学与工程中的应用选择

在不同的应用场景下,三大模型各有其优势领域。教育、网络设计、故障排查和协议开发等不同活动可能需要选择不同的参考模型。

OSI模型的应用场景

  • 网络理论教学,特别是理解严格的分层概念
  • 电信网络的设计和规范
  • 网络协议的学术研究
  • 解释网络通信的完整过程

TCP/IP四层模型的应用场景

  • 互联网应用开发和网络编程
  • 网络设备的实际配置和管理
  • 互联网架构设计和优化
  • 网络协议的工程实现

TCP/IP五层模型的应用场景

  • 计算机网络课程教学
  • 网络问题的系统性排查
  • 网络工程师认证培训(如CCNA)
  • 网络技术的入门学习

例如,在教授网络概念时,教师可能从OSI七层模型开始介绍分层思想,然后过渡到五层模型详细讲解各层协议,最后再介绍实际中使用的四层TCP/IP模型。这种渐进式的教学方法有助于学生建立从理论到实践的全景理解

三、协议剖析

1、传输层、网络层

1.1、传输层协议分类与端口绑定

协议类型协议端口可靠性传输层依赖典型应用场景
面向连接TCP动态端口-Web浏览(HTTP)、邮件(SMTP)
SSH22TCP安全远程管理
FTP20/21TCP文件传输
SMTP25TCP邮件发送
无连接UDP动态端口-实时视频流
DNS53UDP/TCP域名解析(UDP主/TCP辅)
DHCP67/68UDPIP地址自动分配
SNMP161UDP网络设备监控
混合模式RTP动态部分UDPVoIP语音传输

关键协议机制

  • DNS协议混合模式
    • UDP用于常规查询(响应<512字节)
    • TCP用于区域传输(AXFR)或大型响应(如DNSSEC)
  • FTP双端口机制
    • 控制连接:TCP 21(命令传输)
    • 数据连接:TCP 20(文件传输)

1.2、网络层协议功能对比

协议功能报文类型关键技术
IPv432位寻址数据报NAT、子网划分
IPv6128位寻址数据报SLAAC、流标签
ICMP网络诊断控制报文Ping、Traceroute
ARPIP→MAC解析请求/响应局域网地址解析
OSPF动态路由Link-StateDijkstra算法

数据封装流程

应用层数据  
↓ 添加TCP/UDP头(源/目的端口)  
传输层段  
↓ 添加IP头(源/目的IP)  
网络层包  
↓ 添加以太网头(源/目的MAC)  
数据链路层帧  
↓ 转换为比特流  
物理层传输

2、应用层协议

2.1、基于TCP的应用层协议

协议端口数据格式安全增强
HTTP80明文请求/响应HTTPS(TLS加密)
FTP20/21命令+数据分离FTPS(SSL封装)
SMTP25RFC 5322文本STARTTLS扩展
SSH22二进制加密通道公钥认证
Modbus TCP502MBAP+PDUModbus/TLS

Modbus TCP协议栈定位

功能码
添加MBAP头
TCP 502端口
IP路由
SCADA应用
Modbus PDU
Modbus TCP
传输层
网络层
  • MBAP头结构
    事务ID(2B) + 协议ID(0x0000) + 长度(2B) + Unit ID(1B)

2.2、基于UDP的应用层协议

协议端口报文特点可靠性补偿
DNS53查询/响应报文重试机制
DHCP67/68Discover/Offer交互定时续约
SNMP161Get/Set/Trap社区字符串认证
TFTP69512字节分块确认重传

DNS协议混合工作流程

客户端 --UDP 53--> 本地DNS服务器  ↓ 若响应超512字节  
客户端 --TCP 53--> 本地DNS服务器  

3、工业协议Modbus深度解析

3.1、Modbus协议变体对比

类型层级定位物理介质帧结构安全缺陷
Modbus RTU数据链路层RS-485地址+功能码+数据+CRC明文传输
Modbus ASCII数据链路层RS-232:起始符+ASCII数据+LRC低效易干扰
Modbus TCP应用层EthernetMBAP头+PDU无认证机制

Modbus RTU技术细节

  • 波特率范围:1.2kbps ~ 115.2kbps
  • 帧间隔:≥3.5字符时间(波特率19200时≥1.75ms)
  • 校验机制:CRC-16(多项式0x8005)

3.2、Modbus TCP安全增强方案

  1. 网络层防护
    • 防火墙限制源IP(车间PLC仅允许SCADA服务器访问)
    • VLAN隔离控制网络与办公网络
  2. 传输层加密
原始Modbus TCP
TLS 1.3加密
解密
SCADA
TLS网关
车间交换机
PLC
  1. 应用层过滤
    • 功能码白名单(禁止非常规写操作)
    • 寄存器范围访问控制

四、总结

模型适用场景复杂度实用性代表性协议
OSI七层理论教学、标准化制定ISO标准协议
TCP/IP四层互联网实际应用TCP、IP、HTTP
TCP/IP五层教学与实际结合TCP、IP、Ethernet
  • OSI模型 是理论框架,奠定了网络通信的分层思想。
  • TCP/IP模型 是实践标准,推动了互联网的普及。
  • TCP/IP五层模型 是教学工具,帮助理解分层逻辑。

在实际工作中,TCP/IP模型 是主流,而 OSI模型 更多用于概念解释。

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

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++面向对象7——C继承与C++继承对比、C++继承详解

继承 C语言与C继承机制的对比与实现 一、C语言模拟继承的实现方法 C语言不支持面向对象编程的原生继承机制&#xff0c;但可以通过结构体嵌套和函数指针组合来模拟。 1. 结构体嵌套实现"is-a"关系 // 基类&#xff1a;Shape typedef struct {int x;int y; } Sha…

运维打铁: Windows 服务器基础运维要点解析

文章目录 思维导图一级节点&#xff1a;Windows 服务器基础运维要点 详细内容解析系统安装与配置硬件准备安装介质选择系统安装过程初始配置 日常监控与维护性能监控服务状态检查日志管理 安全管理账户与权限管理防火墙配置病毒防护 备份与恢复备份策略制定备份工具使用恢复测试…

Python实例题:基于量子计算的优化算法实现(量子计算、优化理论)

目录 Python实例题 题目 问题描述 解题思路 关键代码框架 难点分析 扩展方向 Python实例题 题目 基于量子计算的优化算法实现&#xff08;量子计算、优化理论&#xff09; 问题描述 开发一个基于量子计算的优化算法实现&#xff0c;包含以下功能&#xff1a; 量子计…

基本算法--蓝桥杯备考

1.前缀和 1.定义 假设有一个数组a[n],要计算它的前j个元素的和为 a[0]a[1]...a[j-1] 时间复杂度为O(j)&#xff0c;且随着j的变大时间复杂度越来越大。 使用了前缀和算法则为 sum[j]-sum[j-1] 时间复杂度是O(1)&#xff0c;且数据越大优势越明显。 2.例题一 详解见《可…

pgsql 中各个字符串的区别

PostgreSQL 提供了多种字符串类型&#xff0c;它们在存储方式、长度限制和适用场景上有所不同。以下是主要字符串类型的详细对比和区别&#xff1a; 一、核心字符串类型对比 CHAR(n)/CHARACTER(n) 特点&#xff1a;固定长度字符串&#xff0c;不足部分用空格填充最大长度&…

ubuntu中lightdm干嘛的?

在 Ubuntu 或其他 Linux 发行版中&#xff0c;LightDM 是一个轻量级的 显示管理器&#xff08;Display Manager&#xff09;&#xff0c;负责图形化登录界面、用户认证和会话启动。以下是它的核心作用、特点及类似替代品的对比&#xff1a; 1. LightDM 的核心作用 功能说明图形…

GraphQL注入 -- GPN CTF 2025 Real Christmas

part 1 服务器会每段时间禁用已注册的账号,此处存在漏洞 def deactivate_user_graphql(email):graphql_endpoint current_app.config["GRAPHQL_ENDPOINT"]query f"""mutation {{deactivateUser (user: {{email: "{email}"}}){{ success…

【机器学习深度学习】非线性激活函数

目录 前言 一、什么是激活函数&#xff1f; 1.1 作用 二、如果没有激活函数&#xff0c;会发生什么&#xff1f; 2.1 先看一张图理解“线性”的局限 2.2 核心认知&#xff1a;为什么非线性如此重要&#xff1f; 三、非线性激活函数到底解决了什么问题&#xff1f; 1. 引…

国外开源客服系统chathoot部署,使用教程

目录 一、系统版本要求&#xff1a; 二、部署步骤 2.1 安装docker 和docker-compose 2.2 准备docker-compose.yaml 2.3 初始化数据库 2.4 安装nginx 2.6 启动项目 三、使用教程 一、系统版本要求&#xff1a; linux ubuntu 22.042核4G 40GB&#xff08;或以上&#xf…

什么是回归测试?什么时候需要做回归测试?

回归测试详解&#xff1a;概念、时机与最佳实践 1. 什么是回归测试&#xff1f; 回归测试&#xff08;Regression Testing&#xff09; 是指在对软件进行修改&#xff08;如修复Bug、新增功能、优化代码&#xff09;后&#xff0c;重新执行已有测试用例&#xff0c;以确保&am…

Android-Layout Inspector使用手册

Layout Inspector Android Layout Inspector 是 Android Studio 中用于调试应用布局的工具 启动方法&#xff1a; 通过下载Layout Inspector插件&#xff0c;在 “View - Tool Windows - Layout Inspector” 或 “Tools - Layout Inspector” 启动。 主要界面区域&#xff1a…

postgreSQL 数据库字典导出工具

为满足项目验收文档需求&#xff0c;开发了一个基于Python的PostgreSQL数据字典导出工具。 废话不多说&#xff0c;先分享一下 软件截图 数据字典文件样式,文件格式为docx 软件源码 基于python开发&#xff0c; import tkinter as tk from tkinter import ttk, messagebox …

【AI解析】 CppNumericalSolvers:一个现代化的 C++17 纯头文件优化库 示例代码解析

一个轻量级仅头文件的 C17 库&#xff0c;提供针对&#xff08;无&#xff09;约束非线性函数及表达式模板的数值优化方法 https://github.com/PatWie/CppNumericalSolvers CppNumericalSolvers 库 include 目录下的文件及其功能说明 根目录文件 文件名功能说明function.h(主函…

第3篇:Gin的请求处理——获取客户端数据(Gin文件上传,接收JSON数据)

引言&#xff1a;Context是Gin的"瑞士军刀" 在Gin框架中&#xff0c;Context就像一把多功能的瑞士军刀&#xff0c;封装了所有与请求相关的操作。新手开发者常犯的错误是只把它当作参数传递的工具&#xff0c;却忽略了它强大的数据处理能力。 想象一个场景&#xf…

启动hardhat 项目,下载依赖的npm问题

Windows 环境 Hardhat 依赖安装问题排查指南 &#x1f6a8; 问题描述 在 Windows 环境下安装 Hardhat 项目依赖时&#xff0c;遇到以下错误&#xff1a; npm ERR! code ETARGET npm ERR! notarget No matching version found for nomicfoundation/edr^0.11.1. npm ERR! nota…

大数据里的拉链表:数据版本管理的时间胶囊

哈喽各位数据打工人&#xff5e;今天咱们来聊聊大数据领域一个超实用的神器 ——拉链表&#xff01;听起来像时尚单品&#xff1f;NoNoNo&#xff0c;它可是数据仓库里管理历史数据的宝藏工具✨ 就算你是刚入门的小白也能轻松听懂&#xff0c;咱们全程少玩比喻多讲人话&#xf…

docker执行yum报错Could not resolve host: mirrorlist.centos.org

解决办法&#xff1a; -- 依次执行以下命令cd /etc/yum.repos.d/sed -i s|#baseurlhttp://mirror.centos.org|baseurlhttp://vault.centos.org|g /etc/yum.repos.d/CentOS-*sed -i s/mirrorlist/#mirrorlist/g /etc/yum.repos.d/CentOS-*yum update -yecho "export LC_ALL…

JVM OutOfMemoryError原因及排查解决方案

在Java后端开发中&#xff0c;java.lang.OutOfMemoryError&#xff08;简称OOM&#xff09;是一个令开发者头疼的异常。它通常意味着Java虚拟机&#xff08;JVM&#xff09;在尝试分配新对象时&#xff0c;发现堆中没有足够的空间来容纳该对象&#xff0c;或者其他内存区域耗尽…

吐槽之前后端合作开发

大家好&#xff0c;我是佳瑞&#xff0c;从事10多年java开发程序员&#xff0c;爆照一张&#xff0c;存活互联网。 也做过vue开发自己的网站&#xff0c;觉得前端是真比后端开发轻松很多&#xff0c;就是画页面调样式&#xff0c;打包发布&#xff0c;当然不说是高级源码修改…

Oracle LogMiner日志分析工具介绍

Oracle LogMiner日志分析工具介绍 LogMiner使用须知LogMiner字典使用online catalog作为日志挖掘字典使用redo日志文件作为日志挖掘字典使用文本文件作为日志挖掘字典Redo日志文件自动获取日志文件手动获取日志文件启动LogMiner进行分析V$LOGMNR_CONTENTS视图LogMiner使用须知 …