计算机网络之NAT、代理服务、内网穿透、内网打洞
个人主页:C++忠实粉丝
欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C++忠实粉丝 原创计算机网络之NAT、代理服务、内网穿透、内网打洞
收录于专栏【计算机网络】
本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌
目录
NAT 技术背景
NAT IP 转换过程
NAPT
NAT 技术的缺陷
代理服务器
正向代理
反向代理
区分正向代理和反向代理
NAT 和代理服务器
内网穿透
内网打洞
内网穿透与内网打洞的区别
NAT 技术背景
之前我们讨论了,IPv4 协议中,IP 地址数量不充足的问题
NAT 技术当前解决 IP 地址不够用的主要手段,是路由器的一个重要功能;
NAT 能够将私有 IP 对外通信时转为全局 IP。也就是一种将私有 IP 和全局 IP 互相转化的技术方法
很多学校、家庭、公司内部采用每个终端设置私有 IP,而在路由器或必要的服务器上设置全局 IP;
全局 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 路由器内部,有一张自动生成的,用于地址转换的表;
当 10.0.0.10 第一次向 163.221.120.9 发送数据时就会生成表中的映射关系;
NAPT
那么问题来了,如果局域网内,有多个主机都访问同一个外网服务器,那么对于服务器返回的数据中,目的 IP 都是相同的,那么 NAT 路由器如何判定将这个数据包转发给哪个局域网的主机?
这时候 NAPT 来解决这个问题了。使用 IP + port 来建立这个关联关系
这种关联关系也是由 NAT 路由器自动维护的。例如在 TCP 的情况下,建立连接时,就会生成这个表项;在断开连接后,就会删除这个表项。
NAT 技术的缺陷
由于 NAT 依赖这个转换表,所有有诸多限制;
无法从 NAT 外部向内部服务器建立连接;
装换表的生成和销毁都需要额外开销;
通信过程中一旦 NAT 设备异常,即使存在热设备,所有的 TCP 连接也都会断开
代理服务器
正向代理
概述:
正向代理 (Forward Proxy)是一种常见的网络代理方式。它位于客户端的目标服务器之间,代表客户端向目标服务器发送请求。正向代理服务器接收客户端的请求,然后将请求转发给目标服务器,最后将目标服务器的响应返回给客户端。通过这种方式, 正向代理可以实现多种功能,如提高访问速度、隐藏客户端身份、实施访问控制等。
工作原理
客户端将请求发送给正向代理服务器。
正向代理服务器接收请求,并根据配置进行处理,如缓存查找、内容过滤等。
正向代理服务器将处理后的请求转发给目标服务器。
目标服务器处理请求,并响应返回给正向代理服务器。
正向代理服务器将响应返回给客户端。
功能特点
缓存功能:正向代理服务器可以缓存经常访问的资源,当客户端再次请求这些资源时,可以直接从换从种获取,提高访问速度
内容过滤:正向代理可以根据预设的规则对请求或响应进行过滤,如屏蔽广告、阻止恶意网站等。
访问控制:通过正向代理,可以实现对特定网站的访问控制,如限制员工在工作时间访问娱乐网站。
隐藏客户端身份:正向代理可以隐藏客户端的真是 IP 地址,保护客户端的隐私。
负载均衡
场景应用
企业网络管理:企业可以通过正向代理实现对员工网络访问的管理和控制,确保员工在工作时间内专注于工作,避免访问不良网站或泄露公司机密。
公共网络环境:在公共场所如图书馆,学校等提供的网络环境中,通过正向代理可以实现对网络资源的合理分配和管理,确保网络使用的公平性和安全性。
内容过滤于保护:家长可以通过设置正向代理来过滤不良内容,保护孩子免受网上的不良信息影响。
提高访问速度:对于经常访问的网络或资源,正向代理可以通过缓存机制提高访问速度,减少网络延迟。
跨境电商与海外访问:对于跨境电商或需要访问海外资源的企业和个人,正向代理可以帮助他们突破网络限制,顺利地访问海外网站和资源。
反向代理
概述
反向代理服务器是一种网络架构模式,其作为 Web 服务器的前置服务器,接收来自客户端的请求,并将这些请求转发给后端服务器,然后将后端服务器的响应返回给客户端。这种架构模式可以提升网站的性能、安全性和可维护性等。
基本原理
反向代理服务器位于客户端和 Web 服务器之间,当客户端发起请求时,它首先会到达反向代理服务器。反向代理服务器会根据配置的规则将请求转发给后端的 Web 服务器,并将 Web 服务器的响应返回给客户端。这个过程中,客户端并不知道实际与哪个 Web 服务器进行了交互,它只知道与反向代理服务器进行了通信。
应用场景
负载均衡:反向代理服务器可以根据配置的负载均衡策略,将客户端的请求分发到多个后端服务器上,以实现负载均衡。这有助于提升网站的整体性能和响应速度,特别是在高并发场景下。
安全保护:反向代理服务器可以隐藏后端 Web 服务器的真实 IP 地址,降低其被直接攻击的风险。同时,它还可以配置防火墙、访问控制列表(ACL)等安全策略,对客户端的请求进行过滤和限制,以保护后端服务器的安全。
缓存加速:反向代理服务器可以缓存后端 Web 服务器的响应内容,对于重复的请求,它可以直接从缓存中返回响应,而无需再次向后端服务器发起请求。这可以大大减少后端服务器的负载,提升网站的响应速度。
内容过滤和重写:反向代理服务器可以根据配置的规则对客户端的请求进行过滤和重写,例如添加或删除请求头、修改请求路径等。这有助于实现一些特定的业务需要,如URL 重写,用户认证等。
动静分离:在大型网站中,通常需要将静态资源和动态资源分开处理。通过将静态资源部署在反向代理服务器上,可以直接从反向代理服务器返回静态资源的响应,而无需再次向后端服务器发起请求。这可以大大提升静态资源的访问速度。
CDN(Content Delivery Network,内容分发网络)就是采用了反向代理的原理。
区分正向代理和反向代理
花王尿不湿是一个很经典的尿不湿品牌, 产自日本. 我自己去日本买尿不湿比较不方便, 但是可以让我在日本工作的表姐去超市买了快递给我. 此时超市看到的买家是我表姐, 我的表姐就是 "正向代理"; 后来找我表姐买尿不湿的人太多了, 我表姐觉得天天去超市太麻烦, 干脆去超市买了一大批尿不湿屯在家里, 如果有人来找她代购, 就直接把屯在家里的货发出去,而不必再去超市. 此时我表姐就是 "反向代理"
正向代理用于请求的转发(例如借助代理绕过反爬虫)。
反向代理往往作为一个缓存。
NAT 和代理服务器
路由器往往都具备 NAT 设备的功能,通过 NAT 设备进行中转,完成子网设备和其他子网设备的通信过程。
代理服务器看起来和 NAT 设备有一点像,客户端向代理服务器发送请求,代理服务器将请求转发给真正要请求的服务器;服务器返回结果后,代理服务器又把结果回传给客户端。
那么 NAT 和代理服务器的区别有哪些呢?
从应用上讲,NAT 设备时网络基础设备之一,解决的是 IP 不足的问题,代理服务器则是更贴近具体应用,比如通过代理服务器进行 fq,另外像迅游这样的加速器,也是使用代理服务器。
从底层实现上讲,NAT 是工作在网络层,直接对 IP 地址进行替换,代理服务器往往工作在应用层。
从使用范围上讲,NAT 一般在局域网的出口部署,代理服务器可以在局域网做,也可以在广域网做,也可以跨网。
从部署位置上看,NAT 一般集成在防火墙,路由器等硬件设备上,代理服务器则是一个软件程序,需要部署在服务器上。
代理服务器是一种应用比较广的技术。
fq:广域网中的代理
负载均衡:局域网中的代理
内网穿透
概念:
内网穿透(NAT穿透)是指在内网环境下,由于网络地址转换(NAT,Network Address Translation)机制的存在,使得局域网中的设备不能直接被外部网络访问的情况下,如何让外部网络访问到内网设备的技术。
为什么需要内网穿透?
在家庭或公司中,很多设备(如计算机、路由器、摄像头等)都在内网(局域网)中,这些设备的IP地址通常是私有IP地址,如192.168.x.x、10.x.x.x等,而公网IP通常是唯一的。NAT技术使得内网设备共享一个公网IP,外界无法直接访问这些内网设备。内网穿透的目标就是通过某些技术手段,实现外部设备能够访问到内网设备。
内网穿透的常见场景
远程访问:如远程桌面、SSH访问内网服务器。
P2P连接:某些P2P应用(如视频通话、文件共享)需要穿透NAT来建立连接。
IoT设备管理:通过手机或PC远程访问家中的智能设备(如监控摄像头、家居控制系统等)。
游戏联机:很多多人在线游戏使用内网穿透来实现玩家之间的直接对战。
内网穿透的工作原理
内网穿透通常有三种主要方式:端口映射、反向代理、第三方中转服务器。
1. 端口映射(Port Mapping)/端口转发(Port Forwarding)
端口映射是通过路由器或防火墙将公网IP的某些端口转发到内网设备的对应端口。这个方法要求配置路由器或防火墙。
外部设备访问公网IP的特定端口。
路由器根据预设规则将数据包转发到内网设备的指定IP和端口。
例如,家庭路由器将公网IP的8080端口映射到内网服务器的192.168.1.100:80端口,那么外部访问公网IP的8080端口就会被转发到内网的HTTP服务。
这种方式的局限性是:
公网IP的端口需要显式地配置转发规则。
如果公网IP为动态分配的(如ADSL拨号上网),公网IP会变化,可能需要使用动态DNS。
2. 反向代理(Reverse Proxy)
反向代理是指外部设备通过一个中介服务器(通常是公网服务器)来访问内网设备。内网设备通过主动连接外部服务器,将流量转发回来。
内网设备与公网服务器建立一个持久的连接(通常使用WebSocket、HTTP长连接等技术)。
外部设备访问公网服务器,通过反向代理服务器转发请求到内网设备。
常见的反向代理工具有 nginx、Apache、HAProxy 等。
这种方法的优点是:
不需要更改内网设备的配置。
比较安全,因为内网设备并不直接暴露给外部网络。
3. 第三方中转服务器(STUN/TURN/ICE、frp、ngrok等)
这类技术通过借助外部的中转服务器来实现内网穿透。外部设备通过这些中转服务器间接连接到内网设备。
STUN(Session Traversal Utilities for NAT):一种用于NAT穿透的协议,帮助内网设备发现自己的公共IP地址和NAT类型。
TURN(Traversal Using Relays around NAT):当STUN无法穿透NAT时,使用中继服务器转发数据流。
ICE(Interactive Connectivity Establishment):用于WebRTC中的一种穿透技术,它结合了STUN和TURN。
frp(Fast Reverse Proxy):一个高效的反向代理工具,支持内网穿透。
ngrok:一个知名的内网穿透服务,提供简单易用的穿透解决方案。
frp和ngrok的工作原理通常是:
用户在外网服务器上启动一个客户端程序,建立与外网服务器的连接。
内网设备通过该连接将数据发送到外网服务器。
外部用户通过访问外网服务器的特定端口或域名,间接访问到内网设备。
这种方法通常不需要用户手动配置路由器,且对内网设备没有高要求,简单易用。它们适合开发者、临时访问和测试等场景。
内网穿透的优缺点
优点:
简便性:对于普通用户,尤其是没有技术背景的人,内网穿透工具(如ngrok)通常提供开箱即用的解决方案,配置简单,操作方便。
跨越防火墙与NAT:通过这些技术,用户可以绕过公司、家庭路由器的NAT和防火墙,直接从外部访问内网设备。
避免公网IP暴露:通过中转服务器、反向代理等方式,内网设备可以不直接暴露公网IP,增强安全性。
缺点:
性能问题:依赖中转服务器时,所有数据需要经过中继服务器转发,可能会导致延迟增高、带宽限制等性能问题。
安全隐患:如果内网穿透配置不当,容易导致内网设备暴露,可能带来安全风险(如黑客攻击、数据泄露等)。
依赖第三方服务:如果使用ngrok、frp等第三方服务,可能会受到服务稳定性、流量限制等问题的影响。
不适合大规模应用:对于企业级应用,频繁的外部访问可能导致服务的稳定性和安全性下降,需额外的专业配置和监控。
内网打洞
内网打洞(NAT打洞)是一种通过NAT(网络地址转换)设备建立两个内网或NAT后的设备之间直接连接的技术。它通常用于解决NAT环境下,内网设备无法直接相互通信的问题。内网打洞技术常用于P2P(点对点)通信、远程访问、视频通话、文件共享等应用场景。
为什么需要内网打洞?
在许多家庭或企业的网络环境中,设备(如计算机、服务器、智能设备等)都处于NAT后的局域网(LAN)中,而这些设备使用的是私有IP地址(如192.168.x.x、10.x.x.x等)。NAT设备(如路由器、防火墙)将多个内网设备共享一个公网IP地址,外部设备无法直接访问内网设备。
在这种情况下,两个内网设备需要建立直接的连接进行数据交换时,若没有合适的机制,它们会遇到以下问题:
无法直接连接:NAT设备会阻止内网设备直接向公网发起连接,无法形成双向连接。
无法通信:由于公网IP和端口的转换,两个设备之间的连接建立变得困难。
内网打洞的目标就是通过一定的技术手段,使得两个内网设备能够通过NAT设备建立直接连接,避免中转服务器的性能瓶颈和安全隐患。
内网打洞的基本原理
内网打洞技术通过让设备借助公网服务器(如STUN服务器、TURN服务器)来实现彼此之间的连接。具体过程通常包括以下几个步骤:
NAT设备的特性:内网设备通过NAT路由器向外部公网发起请求,NAT路由器会为这些连接分配一个公网端口,并保持映射关系。这个过程称为NAT的“映射”。
使用STUN服务器进行NAT类型检测:每个内网设备都首先通过一个STUN服务器(Session Traversal Utilities for NAT)检测自己所在的NAT类型,并得知自己外部可访问的公共IP和端口。这一过程让内网设备知道如何在NAT环境中“暴露”自己。
相互发现与协作:两个内网设备在与STUN服务器交互后,可以通过交换自己的公网IP地址和映射的端口信息,尝试与对方建立连接。这一过程称为“打洞”,即设备在NAT中“打通”一条通道,允许流量通过。
建立直接连接:两个设备通过NAT路由器或防火墙的“映射”端口,发起相互的连接请求。如果NAT路由器的配置允许它们建立直接的连接,则数据流可以直接传输,而无需经过中继服务器。
内网打洞的过程举例
假设有两个内网设备:A和B,它们分别位于不同的网络(可能经过不同的NAT设备)。为了使得这两个设备能够直接通信,通常会通过以下步骤:
A和B都连接到一个公网STUN服务器,该服务器能够告知A和B的公共IP地址和端口。
A和B交换各自的公共IP和端口信息,例如,A通过STUN服务器知道它的公网IP是 203.0.113.1,端口是 12345,B的公网IP是 203.0.113.2,端口是 54321。
A和B相互尝试建立连接,它们分别向对方的公网IP和端口发送数据包。由于NAT的机制,它们的路由器可能会允许这个连接建立。
如果双方都能够成功发送数据并接收到响应,则两个设备之间的直接通信通道就建立起来了。这时,数据流就可以通过NAT设备直接传输,而不再依赖中转服务器。
内网打洞的技术实现
内网打洞的实现主要依赖以下几种技术和协议:
STUN(Session Traversal Utilities for NAT)
STUN是NAT穿透的基础协议,它的作用是帮助设备获取其在公网中的公共IP和端口信息,并检测NAT的类型。STUN协议通过向STUN服务器发送请求,返回一个公网IP和端口,使得设备知道如何在NAT环境中进行通信。
STUN的工作原理:
内网设备向STUN服务器发起请求。
STUN服务器返回该设备的公网IP和端口(通过NAT设备的映射)。
内网设备得到公网信息后,能够与其他设备建立连接。
TURN(Traversal Using Relays around NAT)
TURN是STUN的补充方案,当STUN无法穿透NAT时,TURN提供中继服务器,帮助数据通过中继服务器进行转发。虽然TURN能确保通信的成功,但它会导致较高的延迟和带宽消耗,因此通常只在STUN无法使用时才会启用。
ICE(Interactive Connectivity Establishment)
ICE是一个综合性的协议,结合了STUN和TURN技术,旨在通过各种方式在NAT设备后建立可靠的连接。ICE广泛应用于WebRTC(网页实时通信)中,它通过多种连接策略和回退机制确保在复杂的NAT环境下建立连接。
UPnP(Universal Plug and Play)和NAT-PMP(NAT Port Mapping Protocol)
这两种协议可以让内网设备请求路由器将特定端口映射到外网,帮助内网设备穿透NAT。UPnP和NAT-PMP的缺点是它们需要路由器支持,且存在安全隐患,因为它们允许设备自行更改路由器的端口映射配置。
内网打洞的应用场景
内网打洞技术广泛应用于以下领域:
P2P(点对点)通信
文件共享:如BitTorrent协议的文件下载,文件节点之间通常需要通过内网打洞技术建立直接连接。
视频通话:例如WebRTC,支持音视频通话的应用通常利用内网打洞技术建立端对端连接,减少延迟和带宽消耗。
在线游戏
很多在线游戏中的多人联机模式使用内网打洞技术来实现玩家之间的直接对战,减少服务器负载并提高游戏体验。
远程访问
远程桌面、SSH等应用可以通过内网打洞技术让外部设备访问内网设备。
物联网(IoT)
一些智能设备和摄像头等IoT设备,常通过内网打洞技术实现远程控制和监控。
内网打洞的优缺点
优点:
直接连接:通过内网打洞,设备可以直接建立连接,减少了数据传输的延迟和中转服务器的带宽消耗。
节省资源:避免了中继服务器的使用,减轻了服务器的负担,尤其是带宽和计算资源的消耗。
适用于P2P场景:非常适合P2P通信,如文件共享、即时通讯、在线游戏等。
缺点:
NAT类型影响:NAT的类型不同,穿透的难易程度也不同。一些高级的NAT(如对称NAT)可能会阻止内网打洞的建立。
依赖STUN/TURN服务器:尽管STUN协议能帮助打洞,但对于某些复杂的NAT环境,仍然需要TURN服务器作为中继,这会增加延迟和带宽消耗。
安全隐患:内网打洞技术可能带来安全风险,若配置不当,容易暴露内网设备的端口,导致潜在的网络攻击。
内网穿透与内网打洞的区别
内网穿透和内网打洞是两种常用于解决NAT(网络地址转换)环境下内网设备之间通信问题的技术。虽然它们的目标相似,但实现方式和适用场景有所不同。下面详细对比这两者的区别:
1. 定义与核心原理
内网打洞(NAT打洞):
核心原理:内网打洞是一种通过NAT设备(如路由器、防火墙)建立直接连接的技术。设备通过公网服务器(如STUN、TURN服务器)交换信息,然后尝试通过各自的NAT映射端口进行直接连接。这种方法依赖于NAT设备的映射机制,通常用于P2P(点对点)通信。
工作方式:设备通过STUN服务器获知公网IP和端口后,直接尝试连接对方的公网IP和端口。如果NAT路由器允许,通信就可以直接通过NAT打洞成功建立。
内网穿透:
核心原理:内网穿透是一种更为通用的技术,用于在内网与公网之间建立连接。它可以通过多种方法(如端口映射、反向代理、中继服务器等)实现设备间的通信。内网穿透不一定要求使用打洞,且更广泛地包含了通过外部服务器中转通信的方式。
工作方式:内网穿透包括但不限于使用NAT打洞。它还可以通过外部服务器进行数据转发,或者通过VPN、代理等方式绕过NAT限制,允许外部设备访问内网服务。
2. 实现方式
内网打洞的实现方式:
通过STUN服务器检测设备的公网IP和端口信息,并尝试通过NAT设备的映射关系建立直接连接。
如果打洞成功,通信数据通过NAT映射的端口直接在内网设备之间传输,无需经过外部服务器。
主要用于P2P通信,如VoIP、即时通讯、在线游戏、视频通话等。
内网穿透的实现方式:
NAT打洞:当NAT环境适合打洞时,内网穿透可以通过打洞技术直接建立连接。
端口映射:在一些路由器中,设备可以通过UPnP或手动配置端口转发来将内网端口映射到公网端口,使外部设备可以访问内网设备。
反向代理:使用外部服务器作为中介,内网设备通过反向代理或VPN等方式将请求转发到内网设备。
中继服务器:如果直接连接不可行,内网穿透可以通过中继服务器(如TURN服务器)来转发数据,保证设备之间的通信。
3. 适用场景
内网打洞:
适用于点对点通信,如P2P协议、VoIP、视频通话等需要直接建立设备间通信的场景。
典型应用:WebRTC(网页实时通信)、P2P文件共享、在线游戏中的玩家直接连接等。
对NAT类型要求较高,对于某些对称NAT(Symmetric NAT)类型的路由器,打洞可能会失败。
内网穿透:
适用于更广泛的场景,不仅限于P2P通信,还可以用于远程控制、内网访问等情况。
典型应用:远程桌面(如VNC、RDP)、远程访问家庭网络或企业局域网、通过VPN或反向代理访问内网服务等。
更灵活,不局限于NAT类型,能够通过中继服务器、端口映射等方式实现穿透。
4. 安全性
内网打洞:
优点:如果成功打洞,通信速度快,因为数据直接传输,不需要中继服务器转发。
缺点:安全性可能存在问题,尤其是当设备与外部设备直接连接时。打洞过程中需要保证NAT设备的配置正确,否则可能暴露设备的端口,存在一定的安全风险。
内网穿透:
优点:可以通过安全的中继服务器、VPN或反向代理等方式保护内网设备,避免暴露内网IP和端口。
缺点:需要依赖中继服务器或代理,可能增加延迟和带宽消耗。
5. 可靠性与适应性
内网打洞:
适合特定类型的NAT设备(如对称NAT或全锥形NAT)可能无法成功打洞。
对NAT类型有较高要求,因此在一些复杂的NAT环境下,打洞失败的可能性较高。
内网穿透:
更具适应性,支持多种方式,如通过中继服务器、端口映射、VPN等,可以适应各种复杂的网络环境。
更加可靠,可以在NAT打洞无法完成时,使用其他方法(如TURN服务器或VPN)确保连接。
6. 性能差异
内网打洞:
优点:打洞成功后,通信数据直接在内网设备之间传输,延迟低、带宽消耗少,通信效率高。
缺点:如果打洞失败,需要依赖中继服务器,可能导致延迟增加。
内网穿透:
优点:对于复杂的NAT环境,内网穿透可以保证连接的建立,灵活性高。
缺点:如果依赖中继服务器或反向代理,可能会导致更高的延迟和带宽消耗。
7. 复杂性
内网打洞:
实现相对复杂,需要STUN、TURN等协议的支持,而且打洞过程可能会失败,因此需要实现多种回退机制。
内网穿透:
实现更为复杂,因为它包括了多种方法,如端口映射、VPN、中继服务器等,适用于更复杂的网络拓扑。
相关文章:
计算机网络之NAT、代理服务、内网穿透、内网打洞
个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 计算机网络之NAT、代理服务、内网穿透、内网打洞 收录于专栏【计算机网络】 本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论…...
2024-金盾信安杯线上赛 WP
Misc 大赛宗旨 记事本打开,一眼零宽隐写 B 神工具一把梭,得到一串 base 编码 base64 解码得到 flag flag 值:flag{5d5555fa-1303-4b43-8eef-d6ea7c64c361} esab 根据题目 esab 可以发现这正是 base 的逆向,所以可以先逆向一下…...
MySQL 基础架构
MySQL的基础架构主要由三大核心部分构成,以下是详细的解析: 一、连接层 连接层是客户端与MySQL数据库之间的桥梁,主要负责通信和身份验证,确保数据交换的安全与稳定。具体来说,它负责以下任务: 建立连接…...
汽车升级到底应不应该设置“可取消“功能
最近,汽车OTA(Over-the-Air)升级频频成为车主讨论的热点。有些车主反映,一些升级增加了实用功能,而另一些却让体验变得复杂甚至带来不便。于是,大家不禁发问:汽车升级功能究竟应不应该允许“可取…...
【MySQL】mysql中的事务
目录 1、背景2、事务的特性3、事务之间的几种错误【1】脏读【2】不可重复读【3】幻读 4、事务中的隔离级别5、总结 1、背景 事务是存储引擎层面实现的,有的引擎支持事务,有的引擎不支持事务,我们常用的引擎InnoDB就支持事务,本文…...
大语言模型(LLM)与智能机器人的应用分析
系列文章目录 前言 近年来,大型语言模型(LLM)的集成彻底改变了机器人领域,使机器人能够以人类熟练程度进行交流、理解和推理。本文探讨了 LLM 对机器人的多方面影响,并针对在不同领域利用这些模型的关键挑战和机遇进行了研究。通过将 LLM 应用程序分类并分析核心机器人元素…...
Inno Setup 学习笔记(一)
前言 最近想把自己写的Windows端的软件打包成安装程序exe,又觉得自带的界面太丑了,想自己完全做一个新的页面 网上找到的只有基础教程,记录一下进阶学习过程 生命周期 按照Vue的说法叫生命周期,Inno Setup中叫 Pascal 脚本: 事…...
从阿里云EDM到美团云:典型微服务治理平台的实战经验分享
目录 一. 阿里云 EDM(Enterprise Distributed Application Service) 二. 腾讯云 TSF(Tencent Service Framework) 三. 华为云 FusionStage 四. 京东云 JDC(JD Cloud Microservice Platform) 五. 百度智…...
【接口自动化测试】一文从3000字从0到1详解接口测试用例设计
接口自动化测试是软件测试中的一种重要手段,它能有效提高测试效率和测试覆盖率。在进行接口自动化测试之前,首先需要进行接口测试用例的设计。本文将从0到1详细且规范的介绍接口测试用例设计的过程,帮助读者快速掌握这一技能。 一、了解接口…...
反向代理-缓存篇
文章目录 强缓存一、Expires(http1.0 规范)二、cache-control(http1.1 出现的 header 信息)Cache-Control 的常用选项Cache-Control 常用选项的选择三、弊端协商缓存一、ETag二、If-None-Match三、Last-modified四、If-Modified-Since浏览器的三种刷新方式静态资源部署策略…...
【伪代码】数据结构-期末复习 线性表
目录 例1 矩阵相乘 线性表 2.1 线性表的类型定义 例2-1 求并集 LALA∪LB 例2-2 有序表归并 2. 2 线性表的顺序表示和实现 1.构造空表 2.插入 3.删除 4.定位 顺序表的优点: 顺序表的缺点: 例…...
JavaWeb学习、过滤器、ajax异步请求、json、jquery-api文档
一、过滤器: 按照过滤规则筛选出想要的资源。 为什么使用过滤器? 1. 很多地方都需要判断是否登录。如果我们在每个资源出进行判断,非常麻烦。我们可以使用过滤器在访问这些资源前进行判断。 (这样就不用在主界面,修改…...
深入探索 JVM:原理、机制与实战
一、JVM 概述 JVM(Java Virtual Machine)是 Java 程序运行的核心组件,它提供了一个独立于硬件和操作系统的执行环境,使得 Java 程序能够在不同平台上具有跨平台的特性。 JVM 主要由以下几部分组成: 类装载器…...
JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))
目录 一、Servlet详细。 (1)基本介绍。 (2)基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 (1)实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…...
支付宝租赁小程序助力便捷生活新方式
内容概要 支付宝租赁小程序为现代人带来了许多惊喜,它不仅仅是一个简单的租赁平台,更是生活中不可或缺的好帮手。想象一下,无论你缺少什么,从工具到家居用品,只需轻轻一点,便能轻松找到需要的物品。这个小…...
Linux-ubuntu环境配置
一,安装VWware,里面导入镜像文件 这些都是文件夹里面有的,然后对着正点原子视频安装就行,虚拟机的破解码,去百度搜一个能用就行,中间遇见俩问题。①乌班图里面不能上网,②插入U盘后,…...
深入解析下oracle的number底层存储格式
oracle数据库中,number数据类型用来存储数值数据,它既可以存储负数数值,也可以存储正数数值。相对于其他类型数据,number格式的数据底层存储格式要复杂得多。今天我们就详细探究下oracle的number底层存储格式。 一、环境搭建 1.…...
nginx代理rabbitmq和配置 Nginx 代理达梦数据库
在 Nginx 中使用 stream 模块进行 TCP 代理时,可以将 TCP 或 UDP 流量转发到指定的后端服务器。你给出的配置是一个用于代理 RabbitMQ 的示例,具体是在 TCP 层上代理 5672 端口的流量。 只能在nginx.conf配置上代理 stream {# 定义 upstream,…...
汉语唤醒词的模糊判断(Python)
汉语唤醒词的模糊判断【Python】 说明安装库代码Demo其他 说明 这是一个简单的汉语模糊唤醒词的判断器,汉语发音中前后舌以及声母韵母的区别,如果进行精准判断,很容易误判。需要一个模糊判断的逻辑! 安装库 pip install pypinyin代码Demo …...
Redis篇-2--原理篇1--I/O多路复用机制(5种I/O模型,I/O多路复用)
I/O多路复用机制: Redis 是通过I/O多路复用机制来管理大量客户端连接。这使得redis可以实现通过单线程来处理多个客户端连接的请求,避免了为每个客户端创建独立的线程,从而减少了上下文切换的开销,提高了系统的并发性和性能。 理解…...
Knowledge Graph Studio:让知识图谱构建更简单、更智能
一、前言 上周和研究院的同事讨论 2025 年大模型产品规划时,让我产生了一些疑惑和不解,因为从大家交流的规划方向来看,更多的还是集中在Prompt提示词工程(包括提示词的管理、测试、评估、调优)这一块规划的确实挺细&a…...
vue 中实现音视频播放进度条(可拖拽,满足常见开发需求)
由于开发需要,作者封装了一个音视频播放进度条的组件,支持 vue2 及 vue3 ,有需要的朋友后台私信作者获取组件源码哦(工作日每天都在线),下面是对该款组件的介绍。 组件默认样式👇(组…...
[免费]SpringBoot+Vue企业OA自动化办公管理系统【论文+源码+SQL脚本】
大家好,我是java1234_小锋老师,看到一个不错的SpringBootVue企业OA自动化办公管理系统,分享下哈。 项目视频演示 【免费】SpringBootVue企业OA自动化办公管理系统 Java毕业设计_哔哩哔哩_bilibili 项目介绍 随着信息技术在管理上越来越深入…...
笔记:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景
一、目的:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景 BitmapSource 是 WPF 中图像处理的基类,提供了许多派生类来处理不同类型的图像源。以下是一些常见的 BitmapSource 派生类、它们的主要功…...
JAVA基础学习笔记_多线程
文章目录 多线程并发和并行多线程的实现方式Thread类实现Runnable接口方式实现callable接口和Future接口实现 常用的成员方法线程的生命周期线程的安全问题同步代码块同步方法lock锁死锁 生产者和消费者(等待唤醒机制)阻塞队列实现等待唤醒机制线程的6种状态线程池自定义线程池…...
什么是自动化办公
自动化办公是指使用技术工具或软件,通过预设流程或脚本,自动执行日常办公任务,从而提升效率、减少错误、节约时间的办公模式。它适用于需要重复性、规则明确的工作流程,让员工将精力集中在更具创造性和战略性的工作上。 自动化办公…...
数据库系统
数据库模式 3个阶段以及各自的产物: 1、需求分析(数据流图、数据字典、需求说明书); 2、概念结构设计(ER模型); 3、逻辑结构设计(关系模式)); 关…...
文件系统--底层架构(图文详解)
一、文件系统的底层存储与寻址 当我们谈到文件系统的底层结构时,最关键的问题是:文件的数据与元数据(属性)如何存储在磁盘上,以及系统是如何定位这些数据的?在谈及文件系统之前,我们要先对储存…...
【OCR】——端到端文字识别GOT-OCR2.0不香嘛?
代码:https://github.com/Ucas-HaoranWei/GOT-OCR2.0?tabreadme-ov-file 在线demo:https://huggingface.co/spaces/stepfun-ai/GOT_official_online_demo 0.前言 最早做ocr的时候,就在想如何能做一个端到端的模型,就不用先检测再…...
SkyWalking 和 ELK 链路追踪实战
一、背景 最近在给项目搭建日志平台的时候,采用的方案是 SkyWalking ELK 日志平台,但发现 ELK 日志平台中的日志没有 Trace ID,导致无法追踪代码报错的整体链路。 空哥提示:Trace ID 是分布式追踪中用来唯一标识一个服务请求或事…...
网站配色方案橙色/上海今天最新发布会
1、ajax请求参数如果为文本类型,直接拼接即可。如果为file类型就需要先获取文件信息 2、获取文件信息: HTML代码: <div class"form-group"><input type"file" id"SelectImg" style"width:90px;o…...
动态效果酷炫的网站/搜索引擎营销的英文缩写是
嗯,今天好不容易把鸽了好久的缩点给弄完了……感觉好像……很简单? 算法的目的,其实就是在有向图上,把一个强连通分量缩成一个点……然后我们再对此搞搞事情,\(over\) 哦对,时间复杂度很显然是\(\Theta(n)\…...
网站建设与管理教案/产品推广方案ppt模板
程序猿和架构师都应该了解“康威定律”(Conways law) 什么是康威定律 康威定律是一句格言,指出组织设计系统来反映他们自己的沟通结构。它以计算机程序员梅尔文康威的名字命名,他于1967年提出了这个想法。他最初的措辞是: organizations wh…...
百度文库 旅游网站建设方案书/百度网址安全中心
【题目描述】 在一个大雨倾盆的夜晚,在一条偏僻的路上,一个老人蹒跚地走着。这个时候迎面驶来一辆汽车,由于路滑,司机没能及时刹住刹车,悲剧发生了,事发后司机立刻驾车逃离现场…… 事后,警方立…...
网站建设发布平台/网站关键词优化费用
winhex镜像硬盘和ghost备份是完全不同的,ghost只能克隆或者镜像分区内正常的数据,删除的数据他是不会克隆的,所以在数据恢复应用中,ghost对我们来讲作用就不大了,而使用winhex备份(镜像)硬盘数据…...
做此广告的网站/长沙优化官网服务
在cmd命令行中切换到指定目录,或者直接使用绝对路径。 certutil -hashfile D:\file.txt MD5 certutil -hashfile D:\file.txt SHA1 certutil -hashfile D:\file.txt SHA256 如图生成文件MD5值。...