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

NAT 代理服务 内网穿透

🌈 个人主页:Zfox_
🔥 系列专栏:Linux

目录

  • 一:🔥 NAT 技术背景
  • 二:🔥 NAT IP 转换过程
  • 三:🔥 NAPT
  • 四:🔥 代理服务器
    • 🦋 正向代理
      • 概述
      • 工作原理
      • 功能特点
      • 应用场景
    • 🦋 反向代理
      • 概述
      • 基本原理
      • 应用场景
    • 🦋 NAT 和代理服务器
  • 五:🔥 内网穿透 和 内网打洞
    • 🦋 内网穿透
      • 1. 背景
        • (1)私有IP地址的限制
        • (2)NAT(网络地址转换)的限制
        • (3)防火墙的限制
    • 🦋 内网打洞
      • 内网打洞的工作原理
      • 内网打洞的优缺点
        • 优点:
        • 缺点:
      • 适用场景
  • 六:🔥 总结
    • 🦋 数据链路层
    • 🦋 网络层
    • 🦋 传输层
    • 🦋 应用层
  • 七:🔥 共勉

一:🔥 NAT 技术背景

💬 今天我们来聊聊网络世界里一个超重要的技术 —— NAT(网络地址转换)。你有没有想过,为啥我们家里的电脑、手机,还有公司里的各种设备,都能同时连上网,但又不会互相冲突呢?这就得感谢 NAT

🕸️ IPv4 地址不够用,这事儿大家都清楚。NAT 就像是一个超级聪明的 “翻译官”,它能把我们内网里的私有IP地址(比如192.168.1.x)转换成公网能识别的全局IP地址。这样,我们就能在有限的公网IP下,让无数设备同时上网!

🌰 举个例子,学校里可能有几百台电脑,但学校只需要一个公网IP,NAT 就能搞定这一切。公网IP必须是独一无二的,但私有IP就随便多了,不同的局域网里完全可以重复用,一点儿问题都没有。

二:🔥 NAT IP 转换过程

那么这样在网络通信过程中势必会造成问题,因为私有IP并不是唯一的,所以私有IP不能出现在公网通信中的。解决这个问题的机制就是 NAT 机制。NAT 机制即在路由器进行转发时将报文源IP更换为 路由器WAN口IP 进行一次源IP地址替换! 这样就可以私有IP就不会出现在公网中!并且在通信过程中够可以层层向下找到唯一的主机!

NAT IP 转换过程

  • NAT 路由器将源地址从 10.0.0.10 替换成全局的 IP 202.244.174.37
  • NAT 路由器收到外部的数据时,又会把目标 IP 从 202.244.174.37 替换回 10.0.0.10
  • NAT 路由器内部,有一张自动生成的、用于地址转换的表 NAPT
  • 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系。

三:🔥 NAPT

🤔 那么问题来了,如果局域网内有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的 IP 都是相同的。那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?这时候 NAPT 来解决这个问题了。使用 IP+port 来建立这个关联关系。

NAPT

这种关联关系也是由 NAT 路由器自动维护的。例如在 TCP 的情况下,建立连接时就会生成这个表项;在断开连接后,就会删除这个表项。

路由器之中,进行转发时,维护了一张 NAPT 转换表。其中记录目的 IP + 端口号portWAN口IP + 端口号port 的映射关系,互为键值。这两个都具有唯一性:局域网唯一,公网唯一!源IP发生替换,源端口也可能发生替换!这样保证了映射的唯一性!

每个路由器在转发过程中都会生成一份NAPT 表,最终就可以到达公网进行通信!这样其实也说明了一个问题,公网是无法直接访问内网机器的,只有内网机器向公网发送过数据,建立过 NAPT 表,才能从外部进入内部!

所以 NAT 技术是有缺陷的,由于 NAT 依赖这个转换表, 所以有诸多限制:

  • 无法从 NAT 外部向内部服务器建立连接。
  • 转换表的生成和销毁都需要额外开销。
  • 通信过程中一旦 NAT 设备异常,即使存在热备,所有的 TCP 连接也都会断开。

使用 WIndows 访问我们的 Linux 服务端时,我们仔细观察会发现服务端接收到的IP地址和 WIndows 端是不一致的!
这也是由于路由器 NAT转发的结果!Linux 服务上的实际获取到的IP是出入口路由器的 WAN口IP

四:🔥 代理服务器

🦋 正向代理

概述

正向代理Forward Proxy是一种常见的网络代理方式,它位于客户端和目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式,正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。

正向代理

工作原理

  • 客户端将请求发送给正向代理服务器。
  • 正向代理服务器接收请求,并根据配置进行处理,如缓存查找、内容过滤等。
  • 正向代理服务器将处理后的请求转发给目标服务器。
  • 目标服务器处理请求,并将响应返回给正向代理服务器。
  • 正向代理服务器将响应返回给客户端。

功能特点

  • 缓存功能:正向代理服务器可以缓存经常访问的资源,当客户端再次请求这些资源时,可以直接从缓存中获取,提高访问速度。
  • 内容过滤:正向代理可以根据预设的规则对请求或响应进行过滤,如屏蔽广告、阻止恶意网站等。
  • 访问控制:通过正向代理,可以实现对特定网站的访问控制,如限制员工在工作时间访问娱乐网站。
  • 隐藏客户端身份:正向代理可以隐藏客户端的真实 IP 地址,保护客户端的隐私。
  • 负载均衡:在多个目标服务器之间分配客户端请求,提高系统的可扩展性和可靠性。

应用场景

  • 企业网络管理:企业可以通过正向代理实现对员工网络访问的管理和控制,确保员工在工作时间内专注于工作,避免访问不良网站或泄露公司机密。
  • 公共网络环境:在公共场所如图书馆、学校等提供的网络环境中,通过正向代理可以实现对网络资源的合理分配和管理,确保网络使用的公平性和安全性。
  • 内容过滤与保护:家长可以通过设置正向代理来过滤不良内容,保护孩子免受网络上的不良信息影响。
  • 提高访问速度:对于经常访问的网站或资源,正向代理可以通过缓存机制提高访问速度,减少网络延迟。
  • 跨境电商与海外访问:对于跨境电商或需要访问海外资源的企业和个人,正向代理可以帮助他们突破网络限制,顺畅地访问海外网站和资源。

🦋 反向代理

概述

🛜 反向代理服务器 是一种网络架构模式,其作为 Web 服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站性能、安全性和可维护性等。

反向代理

基本原理

🍑 反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web 服务器,并将 Web 服务器的响应返回给客户端。在这个过程中,客户端并不知道实际与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。

应用场景

  • 负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度,特别是在高并发场景下。
  • 安全保护:反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略,对客户端的请求进行过滤和限制,以保护后端服务器的安全。
  • 缓存加速:反向代理服务器可以缓存后端 Web 服务器的响应内容,对于重复的请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载,提升网站的响应速度。
  • 内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需求,如 URL 重写、用户认证等。
  • 动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应,而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。
  • CDN(Content Delivery Network,内容分发网络):就是采用了反向代理的原理。

🦋 NAT 和代理服务器

🍑 路由器往往都具备 NAT 设备的功能,通过 NAT 设备进行中转,完成子网设备和其他子网设备的通信过程。代理服务器看起来和 NAT 设备有一点像。客户端像代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果回传给客户端。

那么 NAT 和代理服务器的区别有哪些呢?

  • 从应用上讲NAT 设备是网络基础设备之一,解决的是 IP 不足的问题。代理服务器则是更贴近具体应用,比如通过代理服务器进行翻墙,另外像迅游这样的加速器,也是使用代理服务器。
  • 从底层实现上讲NAT 是工作在网络层,直接对 IP 地址进行替换。代理服务器往往工作在应用层。
  • 从使用范围上讲NAT 一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
  • 从部署位置上看NAT 一般集成在防火墙、路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。

代理服务器是一种应用比较广的技术:

  • 翻墙:广域网中的代理。
  • 负载均衡:局域网中的代理。

代理服务器又分为正向代理和反向代理:

  • 正向代理:用于请求的转发(例如借助代理绕过反爬虫)。
  • 反向代理:往往作为一个缓存。

五:🔥 内网穿透 和 内网打洞

🦋 内网穿透

内网穿透是一种网络技术,用于解决内网设备与外部网络之间通信的问题。它可以让外部设备访问内网中的设备或服务,而无需直接暴露内网设备的IP地址,从而在一定程度上兼顾了安全性和可访问性。

1. 背景

在大多数网络环境中,内网设备(如家庭路由器内的设备、公司内部网络中的服务器等)通常被隐藏在路由器或防火墙之后,无法直接从外部网络访问。这主要是由于以下原因:

(1)私有IP地址的限制

内网设备通常使用私有IP地址(如192.168.x.x),这些地址只能在局域网内使用,无法在公网中直接访问。私有IP地址的范围包括:

  • 10.0.0.010.255.255.255
  • 172.16.0.0172.31.255.255
  • 192.168.0.0192.168.255.255

这些地址在互联网中是不可路由的,因此外部设备无法直接通过这些地址访问内网设备。

(2)NAT(网络地址转换)的限制

内网设备通过路由器访问外网时,路由器会将内网设备的私有IP地址转换为公网IP地址(即路由器的WAN口IP)。这个过程称为网络地址转换(NAT)。NAT的作用是:

  • 节省内公网IP地址资源。
  • 保护内网设备的安全性。

然而,NAT机制也导致了外部设备只能看到路由器的公网IP,而无法直接访问内网设备的私有IP。

(3)防火墙的限制

防火墙是网络中的安全屏障,通常会阻止外部设备直接访问内网设备,以保护内网的安全。防火墙的作用包括:

  • 阻止未经授权的访问。
  • 过滤恶意流量。
  • 保护内网设备免受攻击。

防火墙的限制进一步增加了内网设备对外部访问的难度。

内网穿透

如果今天可以做到:

首先我们拥有一台云服务器,并且在内网构建一台 Linux 机器,使用 22 端口部署了一个 SSH 服务,可以与云服务器建立连接。云服务器也部署一个服务,可以将机器上所有 8888 端口获取的数据转发到内网的 Linux 服务器上。这样,云服务器的 8888 端口与内网服务器的 22 端口就建立了映射。那么其他内网的机器可以通过访问云服务器的8888 端口直接访问到内网的 Linux 机器。这叫做 内网穿透技术

我们可以在云服务器上使用 frp 软件进行内网穿透服务:

  • 服务器:拥有一台具有公网IP地址的服务器,作为 FRP 的服务端。
  • 客户端:需要穿透的内网机器,作为 FRP 的客户端。

为什么要进行内网穿透呢?内网穿透有以下优点:

  • 成本效益:内网穿透可以避免购买服务器公网IP地址的高昂成本,同时也能实现公网服务的功能。
  • 访问限制:由于 NAT(网络地址转换)和防火墙的存在,内网中的设备通常无法直接从外网访问。内网穿透技术可以帮助绕过这些限制,使得内网服务可以被外网访问。
  • 资源共享:内网穿透使得个人或企业可以将其内网中的资源(如文件服务器、Web服务、数据库等)分享给外网的用户,而无需复杂的网络配置。
  • 远程管理:系统管理员可以通过内网穿透技术,从外部网络远程管理内网中的服务器或设备,方便进行维护和监控。可以实现远程访问公司服务器进行办公。
  • 开发与测试:开发者可以在内网环境中开发应用程序,并通过内网穿透技术让外网的测试人员或合作伙伴访问,以便进行测试和反馈。
  • 安全性:内网穿透可以提供一种更安全的远程访问方式。通过配置,可以限制哪些外部地址可以访问内网服务,从而保护内网资源不被未经授权的访问。

🦋 内网打洞

在上述场景中,客户端最终被云服务器获取的源IP是出入口路由器的 WAN口IP 。服务端通过配置会有内网服务器的 IP地址端口号。那么,可不可以将服务端的 IP+port 发给客户端,客户端的 IP+port 发给服务端呢?

答案是可以的。这样客户端就可以直接向内网服务器进行访问,服务端也可以直接给客户端发送数据。这种技术就叫做 内网打洞!这种方式直接跨过了云服务器,在出入口路由器上打了一个洞,可以直接进行访问。

内网打洞

内网打洞的工作原理

  1. 信息交换

    • 客户端和服务端通过云服务器交换彼此的 WAN口IP端口号
    • 云服务器作为中介,将客户端的 IP+port 发送给服务端,同时将服务端的 IP+port 发送给客户端。
  2. 建立直接连接

    • 客户端和服务端分别使用对方的 IP+port 尝试建立直接连接。
    • 由于双方的 WAN口IP端口号 已经交换,路由器会允许这种直接通信。
  3. 绕过云服务器

    • 一旦直接连接建立成功,客户端和服务端就可以绕过云服务器,直接进行数据传输。
    • 这种方式不仅减少了云服务器的负载,还提高了数据传输的效率。

内网打洞的优缺点

优点:
  • 高效性:直接通信减少了中间环节,提高了数据传输速度。
  • 降低成本:减少了对云服务器的依赖,降低了带宽和计算资源的消耗。
  • 灵活性:适用于需要频繁通信的场景,如实时音视频传输、在线游戏等。
缺点:
  • 路由器限制:部分路由器可能不支持 NAT 打洞,导致无法建立直接连接。
  • 安全性问题:直接暴露 WAN口IP端口号 可能增加被攻击的风险。
  • 复杂性:实现内网打洞需要对网络协议有较深的理解,且调试和维护成本较高。

适用场景

  • P2P 网络:如文件共享、区块链网络等。
  • 实时通信:如视频会议、在线游戏等。
  • 物联网设备:设备之间需要直接通信的场景。

需要注意的是,一些出入口路由器可能不允许进行内网打洞。这里我们只需要了解其原理即可。

六:🔥 总结

🦋 数据链路层

  • 数据链路层的作用:两个设备(同一种数据链路节点)之间进行传递数据。
  • 以太网:是一种技术标准;既包含了 数据链路层 的内容,也包含了一些 物理层 的内容。例如:规定了网络拓扑结构、访问控制方式、传输速率等。
  • 以太网帧格式
  • 理解 MAC 地址
  • 理解 ARP 协议
  • 理解 MTU

🦋 网络层

  • 网络层的作用:在复杂的网络环境中确定一个合适的路径。
  • 理解 IP 地址:理解 IP 地址MAC 地址的区别。
  • 理解 IP 协议格式
  • 了解网段划分方法
  • 理解如何解决 IP 数目不足的问题:掌握网段划分的两种方案。理解私有 IP公网 IP
  • 理解网络层的 IP 地址路由过程:理解一个数据包如何跨越网段到达最终目的地。
  • 了解 IP 数据包分包的原因
  • 了解 ICMP 协议
  • 了解 NAT 设备的工作原理

🦋 传输层

  • 传输层的作用:负责数据能够从发送端传输到接收端。
  • 理解 端口号的概念
  • 认识 UDP 协议:了解 UDP 协议的特点。
  • 认识 TCP 协议:理解 TCP 协议的可靠性。理解 TCP 协议的状态转化。
  • 掌握 TCP 的连接管理:确认应答、超时重传、滑动窗口、流量控制、拥塞控制、延迟应答、捎带应答特性。
  • 理解 TCP 面向字节流:理解粘包问题和解决方案。
  • 能够基于 UDP 实现可靠传输
  • 理解 MTUUDP/TCP 的影响

🦋 应用层

  • 应用层的作用:满足我们日常需求的网络程序,都在应用层。
  • 能够根据自己的需求:设计应用层协议。
  • 了解 HTTP 协议
  • 理解 DNS 的原理和工作流程

七:🔥 共勉

🎆 🧨 fq 草图讲解 彩蛋:
在这里插入图片描述

😋 以上就是我对 NAT & 代理服务 & 内网穿透 的理解, 觉得这篇博客对你有帮助的,可以点赞收藏关注支持一波~ 😉
在这里插入图片描述

相关文章:

NAT 代理服务 内网穿透

🌈 个人主页:Zfox_ 🔥 系列专栏:Linux 目录 一:🔥 NAT 技术背景二:🔥 NAT IP 转换过程三:🔥 NAPT四:🔥 代理服务器🦋 正向…...

CAN硬件协议详解

一、基本理论: 1、CAN的总线结构: CAN总线 网络结构 有 闭环和开环 两种形式;无论实际的网络多复杂,都离不开这两种基本结构。 闭环结构的CAN总线网络,总线的两端各并联一个120Ω的电阻,两…...

网络安全等级保护:网络安全等级保护基本技术

下面我们概括性探讨一下等级保护用到的一些技术,有关这些技术的每一个方面的每一个部分都可以是一部大块头,甚至一部大块头都无法介绍清楚,需要系列性的书籍去展开,所以这里也只能做到抛砖而已。期望起到抛砖引玉的作用&#xff0…...

信刻光盘安全隔离与信息交换系统让“数据摆渡”安全高效

随着数据传输、存储及信息技术的飞速发展,信息安全保护已成为重中之重。各安全领域对跨网数据交互的需求日益迫切,数据传输的安全可靠性成为不可忽视的关键。为满足业务需求并遵守保密规范,针对于涉及重要秘密信息,需做到安全的物…...

数据结构课程设计(java实现)---九宫格游戏,也称幻方

【问题描述】 九宫格,一款数字游戏,起源于河图洛书,与洛书是中国古代流传下来的两幅神秘图案,历来被认为是河洛文化的滥觞,中华文明的源头,被誉为"宇宙魔方"。九宫格游戏对人们的思维锻炼有着极大…...

[思考记录]AI时代下,悄然的改变

尝试用 xAI-Grok 去了解DS开源周的信息,有那么点被Grok的输出惊艳到。“请你以技术编辑的角色,重点参考官方文档,介绍DeepSeek开源周的内容,写一篇技术分享文章。”,得到的文字看起来很是舒服,内容靠谱、结…...

JAVA笔记【一】

现实 (抽象) 类 (创建) 对象 特点: 1.面向对象 2.跨平台 3.安全性 4.多线程 java程序基本结构 1. java源代码文件实际是普通的文本文件,源代码文件必须是.java扩展名,且必须小写 2. …...

[Java基础] 常用注解

文章目录 1. 元注解2. 非元注解2.1 常用JDK自带注解2.2 常用Spring相关注解2.2.1 在Spring框架中,注解用于简化配置和增强代码的可读性。以下是常用的Spring注解的一部分2.2.2 针对controller的相关注解2.2.3 AOP相关注解2.2.4 Enable系列注解 2.3 常用Lombok注解 1…...

uvm中的run_test作用

在SystemVerilog和UVM验证环境中,run_test() 是启动UVM仿真流程的核心函数。它负责初始化UVM框架、创建测试用例实例,并触发UVM的Phase机制来执行验证环境的构建和运行 1. run_test() 的作用 run_test() 是UVM提供的内置函数,定义在UVM库中…...

brew search报错,xcrun:error:invalid active developer path CommandLineTools

问题出现的原因 出现“xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun”错误,通常是因为Xcode命令行工具未正确安装或其路径已损坏。以下是几种常见的…...

C#内置委托(Action)(Func)

概述 在 C# 中,委托是一种类型,它表示对具有特定参数列表和返回类型的方法的引用。C# 提供了一些内置委托,使得开发者可以更方便地使用委托功能,无需手动定义委托类型。本文将详细介绍 Action 和 Func 这两个常用的内置委托。 A…...

kubernetes 部署项目

随着容器化技术的发展,使用Kubernetes(简称K8s)来部署和管理应用已经成为现代软件开发的标准实践之一。Kubernetes提供了一套强大的工具集,使得部署、扩展和管理应用程序变得更为简便高效。本文将带你走过从准备环境到部署一个实际…...

《几何原本》命题I.2

《几何原本》命题I.2 从一个给定的点可以引一条线段等于已知的线段。 设 A A A 为给定点, B C BC BC 为给定线段 连接 A B AB AB,作等边 △ A B D \triangle ABD △ABD 以 B B B 为圆心, B C BC BC 为半径作小圆 延长 D B DB DB 交小圆…...

【我的 PWN 学习手札】House of Kiwi

House of Kiwi 之前我们利用IO_FILE一般是通过劫持vtable来实现的, House of Kiwi虽然不是通过劫持vtable来实现,但实质上是劫持vtable指向的全局的_IO_file_jumps_表来实现的。注意:对于某些版本的glibc,_IO_file_jumps_并不可写…...

nvm的学习

学习 nvm(Node Version Manager) 是掌握 Node.js 开发的关键技能之一。以下是系统的学习路径和实战指南,涵盖从基础到进阶的内容: 一、基础入门 1. nvm 的核心作用 多版本共存:安装和管理多个 Node.js 版本&#xff…...

haclon固定相机位标定

什么是标定? 工业应用中相机拍到一个mark点的坐标为C1(Cx,Cy),C1点对应的龙门架/机械手等执行端对应的坐标是多少? 标定就是解决这个问题,如相机拍到一个点坐标C1(Cx,Cy)&#xff0c…...

stm32(hal库)学习笔记-时钟系统

在stm32中,时钟系统是非常重要的一环,他控制着整个系统的频率。因此,我们有理由好好学一下时钟系统。 什么是时钟? 时钟是具有周期性的脉冲信号,一般我们常用占空比为50%的方波。可以形象的说,时钟就是单…...

【Java项目】基于SpringBoot的财务管理系统

【Java项目】基于SpringBoot的财务管理系统 技术简介:采用Java技术、SpringBoot框架、MySQL数据库等实现。系统基于B/S架构,前端通过浏览器与后端数据库进行信息交互,后端使用SpringBoot框架和MySQL数据库进行数据处理和存储,实现…...

Qt中如果槽函数运行时间久,避免阻塞主线程的做法

Qt中如果槽函数运行时间久,避免阻塞主线程的做法 一、解决步骤 创建一个工作线程类:继承自QObject,并在其中实现槽函数的逻辑。将工作线程类的实例移动到单独的线程中:通过moveToThread()方法将对象移动到新线程。启动线程&…...

曹操智行构建国内首个全域自研闭环智驾生态

2月28日,曹操出行举办曹操智行自动驾驶平台上线仪式,宣布已成功构建国内首个“F立方”全域自研闭环智驾生态,同时在苏杭两地开启Robotaxi运营试点,并投放搭载吉利最新智驾系统的车辆。 此次试点运营,标志着曹操出行在…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Spring Boot面试题精选汇总

🤟致敬读者 🟩感谢阅读🟦笑口常开🟪生日快乐⬛早点睡觉 📘博主相关 🟧博主信息🟨博客首页🟫专栏推荐🟥活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

Fabric V2.5 通用溯源系统——增加图片上传与下载功能

fabric-trace项目在发布一年后,部署量已突破1000次,为支持更多场景,现新增支持图片信息上链,本文对图片上传、下载功能代码进行梳理,包含智能合约、后端、前端部分。 一、智能合约修改 为了增加图片信息上链溯源,需要对底层数据结构进行修改,在此对智能合约中的农产品数…...

七、数据库的完整性

七、数据库的完整性 主要内容 7.1 数据库的完整性概述 7.2 实体完整性 7.3 参照完整性 7.4 用户定义的完整性 7.5 触发器 7.6 SQL Server中数据库完整性的实现 7.7 小结 7.1 数据库的完整性概述 数据库完整性的含义 正确性 指数据的合法性 有效性 指数据是否属于所定…...

MySQL 8.0 事务全面讲解

以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...

逻辑回归暴力训练预测金融欺诈

简述 「使用逻辑回归暴力预测金融欺诈,并不断增加特征维度持续测试」的做法,体现了一种逐步建模与迭代验证的实验思路,在金融欺诈检测中非常有价值,本文作为一篇回顾性记录了早年间公司给某行做反欺诈预测用到的技术和思路。百度…...

为什么要创建 Vue 实例

核心原因:Vue 需要一个「控制中心」来驱动整个应用 你可以把 Vue 实例想象成你应用的**「大脑」或「引擎」。它负责协调模板、数据、逻辑和行为,将它们变成一个活的、可交互的应用**。没有这个实例,你的代码只是一堆静态的 HTML、JavaScript 变量和函数,无法「活」起来。 …...

毫米波雷达基础理论(3D+4D)

3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...

springboot 日志类切面,接口成功记录日志,失败不记录

springboot 日志类切面,接口成功记录日志,失败不记录 自定义一个注解方法 import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target;/***…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...