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

详解下DNS协议

参考DNS 协议详解适合收藏学习_dns协议-CSDN博客简介我们之前聊了IP地址、路由、NAT这些都是为了让数据包能找到正确的目的地。但有一个根本问题你没提我们人类记不住IP地址。你能记住183.2.172.42是百度但你更可能记住的是www.baidu.com。DNS域名系统就是互联网的“电话簿”或“通讯录”。它的核心作用就是把你输入的域名如www.baidu.com翻译成计算机网络能理解的IP地址如183.2.172.42。没有DNS你上网得背一串串数字就像你给朋友打电话必须记住他11位手机号一样完全不可行。一. DNS的核心理念分布式、层次化、缓存DNS不像一个孤单的电话簿放在某个地方它是全球最大的分布式数据库有以下几个关键特性分布式没有单个服务器存所有域名。任何一台服务器崩溃都不会让整个互联网瘫痪。层次化域名结构像倒过来的树从根.到顶级域如.com、.cn再到二级域如baidu最后到主机www。缓存你查询过一次的结果会被临时存起来下次再查几乎瞬间完成极大减轻了根服务器压力。二. DNS的查询过程递归迭代第一阶段本地全面“自查”(在发起网络请求前)在真正发出DNS请求包之前你的电脑会像查户口一样先在本地进行三次排查这三次不会产生任何网络流量检查浏览器DNS缓存Chrome等浏览器会存一份短期DNS记录。检查操作系统Hosts文件这是一个本地的“强制”地址映射文件比如你可以把www.example.com指向127.0.0.1。它的优先级最高。检查操作系统DNS缓存这是由上一次DNS查询结果留下的“记忆”。如果以上三步都没找到对应的IP地址你的电脑才会“下定决心”正式发起一次DNS网络请求。第二阶段发起递归查询请求(请求到达本地DNS服务器)现在你的电脑DNS客户端会向你预先配置好的本地DNS服务器发起一个请求这个服务器通常是你网络接入时自动获取的如运营商的DNS或你自己设置的如114.114.114.114、8.8.8.8。这个请求的特点叫做递归查询非常形象你的电脑把自己当“甩手掌柜”直接问本地DNS服务器“给我‘www.baidu.com’的IP地址。”然后它就原地等待直到对方必须给一个明确的“是”或“否”的最终答案。第三阶段本地DNS服务器的迭代查询(它替你跑腿)你的本地DNS服务器收到请求后如果它自己的缓存里也没有答案就会开始为你满世界跑腿这个过程叫迭代查询问根域名服务器根服务器不会直接告诉答案但它会告诉本地DNS服务器“www.baidu.com里的.com归那边管这是它的地址。”问顶级域名服务器本地DNS服务器转头去问.com服务器.com服务器同样不会直接给答案它说“baidu.com这个域归那边的权威DNS服务器管你去问它。”问权威域名服务器本地DNS服务器最后去问baidu.com的权威DNS服务器。这位是最终的信息源它会直接给出最终答案www.baidu.com的IP地址是183.2.172.42。或者告诉你这个域名不存在最终本地DNS服务器拿到IP地址后把结果返回给你并且自己也存一份到缓存里以备下次快速使用。为什么会这样设计这种复杂的递归和迭代设计是平衡效率与负载的经典方案递归查询客户端到本地服务器把复杂的查找过程丢给专业的本地DNS服务器去完成普通设备电脑、手机只需要发出一次请求、接收一次结果非常省事。迭代查询本地服务器到全球服务器根域名服务器和顶级域名服务器不负责计算最终答案只负责“指路”。这让它们处理海量请求时保持极简和高效不至于被庞大的计算量拖垮。整个流程就像在问路你问本地图书馆本地DNS“北京市朝阳区XXX号怎么走”本地图书馆问国家图书馆根服务器“你知道怎么走吗”国家图书馆说“我不具体知道但你应该去问‘北京市’的图书馆顶级域地址是A。”本地图书馆又问北京市图书馆北京市图书馆说“你应该去问‘朝阳区’的图书馆权威DNS地址是B。”本地图书馆再问朝阳区图书馆朝阳区图书馆终于给出了具体地址。整个过程有几个层级就需要走几次“问路”。一个实用命令在命令行里输入nslookup www.baidu.com就能看到你的电脑是如何发起请求的。UnKnown表示这个 DNS 服务器没有反向解析到主机名正常现象10.237.25.6这是你当前系统使用的 DNS 服务器地址属于内网私有 IP说明你现在用的是公司 / 校园网的内部 DNS。非权威应答:表示这个解析结果不是从百度的权威 DNS 服务器直接获取的而是你本地 / 运营商 DNS 的缓存速度快但不保证实时最新。Aliases: www.baidu.com说明www.baidu.com是一个别名真实解析到的域名是www.a.shifen.com这是百度的官方业务域名。Addresses下面列出了百度的多个 IP两个 IPv6 地址以240e:开头两个 IPv4 地址220.181.111.232和220.181.111.1关键结论解析是成功的www.baidu.com正常解析到了百度的服务器 IP说明你的 DNS 工作正常。你的 DNS 是内网服务器10.237.25.6是内网私有地址通常是公司 / 学校的网关或内部 DNS。百度用了别名和多 IPwww.baidu.com指向www.a.shifen.com并且配置了多台服务器做负载均衡。谁才有真正的IP貌似非得从根服务器从上到下走一遍到最后权威服务器那里才能给出真正地ip地址你说得非常对从根服务器开始一级级问到权威服务器这确实是DNS查找过程的标准完整路径。但我们平时上网绝大多数查询并不会真正走到根服务器。之所以能跳过因为缓存机制Caching在中间起了巨大的作用。下面我们把这个过程分理论和实际两个场景来看。1. 理论上的完整路径你描述的情况假设你的电脑和本地DNS服务器完全没有任何缓存。你第一次访问www.baidu.com。那么本地DNS服务器必须从根开始问一遍问根.com是谁管问.com.baidu.com是谁管问baidu.com权威DNSwww的IP是多少 → 得到最终IP。这种情况确实会发生但只在第一次、缓存为空、且没有转发规则的理想实验环境下。在生产环境真实的互联网这种情况极少发生。2. 实际的互联网中发生了什么靠缓存大幅缩短路径实际上根域名服务器和顶级域.com服务器很少被真正查询。本地DNS服务器有缓存它存了之前某人查过的.com的权威服务器地址甚至直接存了baidu.com的权威服务器地址。当你要查www.baidu.com时它知道跳过根直接找baidu.com的权威服务器。操作系统/浏览器有缓存如果你在本地访问过www.baidu.com再次访问时直接命中本地缓存根本不会发任何DNS包出去。转发器Forwarder很多企业/运营商的DNS服务器不直接查根而是把请求转发给上游比如运营商的中心DNS。上游已经缓存了大量结果。实际最常见路径你问本地DNSwww.baidu.com的IP本地DNS查自己缓存 →命中→ 直接给你结果。只有未命中时它才会向上游转发或走完整递归。3. 为什么还要保留根服务器既然理想完整路径在现实中很少走为什么还要维护这13组根服务器权威起点保证世界统一在第一次启动、全网缓存失效、新域名刚注册时根服务器是唯一确定知道.com在哪的起点。没有它网络无法冷启动。传递信任保证安全DNSSEC根服务器持有信任链的最顶端用于验证.com的地址是否被篡改。应对缓存失效缓存不会永久存在TTL限制过期后必须再去根或顶级域重新获取。本地DNS服务器本地DNS服务器是啥一般在哪里布置的好问题。我们之前聊过“本地DNS服务器”这个概念现在正好可以结合你刚才那张网络截图把它完全讲透。一句话先给你结论本地DNS服务器就是离你最近、替你完成域名解析的那台专用服务器。它不在你家也不在你路由器里而是在你所在网络的运营商机房或企业内部机房。下面分三个层次把这个问题彻底讲清楚。一、本地DNS服务器到底是什么1.1 定义本地DNS服务器Local DNS Server也叫递归DNS服务器Recursive DNS Server是专门替你完成整个域名解析流程的那台服务器。它的职责是接收你电脑发来的DNS查询请求如果自己有缓存直接返回结果如果没有则从根服务器 → 顶级域服务器 → 权威服务器一路问下去拿到最终IP后返回给你并缓存一份1.2 它不是“家用路由器”你之前问“是不是指路由器”现在可以明确回答不是。对比项家用路由器DNS代理真正的本地DNS服务器角色转发器/缓存代理递归解析器是否从根开始问否转给上游是主动迭代查询典型IP192.168.1.1私有202.102.192.68公网或10.237.25.6企业私有部署位置你家弱电箱/客厅运营商机房/企业机房二、本地DNS服务器一般部署在哪里结合你截图中的10.237.25.6我们可以分三种场景来看。场景一家庭宽带运营商部署部署位置电信/移动/联通的城域网机房或省级核心机房IP特点公网IP如南京电信202.102.192.68上海联通210.22.70.3你电脑上看到的DNS地址要么是你家路由器LAN口IP192.168.1.1路由器转发给运营商DNS要么直接就是运营商DNS的公网IP物理距离通常在你所在城市延迟 5-15ms规模一台服务器服务几十万甚至上百万用户场景二企业/校园网络内部自建← 你当前的情况部署位置企业核心机房通常在服务器机柜里是一台或一组真实的服务器IP特点私有IP如你截图中的10.237.25.6、10.237.25.7硬件可能是Windows Server 带DNS角色Linux服务器运行BIND开源DNS软件、PowerDNS等商用设备如F5、Infoblox你电脑上看到的DNS地址直接就是这些私有IP因为DHCP把它们下发给你了物理距离跟你办公室在同一栋楼或同一个园区延迟 1ms规模服务本企业几千到几万台设备额外功能解析内网域名如erp.company.com→10.10.10.5域名黑名单屏蔽视频、购物网站访问日志审计场景三公共DNS服务商互联网部署部署位置全球多地数据中心Anycast技术即任播技术多个服务器共享同一个IP你被路由到最近的那个典型IP114.114.114.114南京信风国内8.8.8.8Google全球1.1.1.1Cloudflare全球223.5.5.5阿里国内你电脑上看到的DNS地址你手动填进去的物理距离通过Anycast你被路由到离你最近的数据中心国内城市规模每秒处理亿万级请求三、一张对比表类型部署位置IP类型典型IP示例谁在用能解析内网域名运营商DNS城域网/省公司机房公网202.102.192.68家庭宽带用户❌ 不能企业DNS企业内部机房私有10.237.25.6企业员工你✅ 能公共DNS全球数据中心Anycast公网114.114.114.114手动配置的用户❌ 不能四、结合你的截图你现在连的是哪一种从你发来的信息IPv4 地址: 10.240.225.40 IPv4 DNS 服务器: 10.237.25.6 10.237.25.7可以100%确定你现在连接的是企业/校园内部网络使用的是企业自建的DNS服务器。证据链你的IP是10.x.x.x私有DNS服务器也是10.x.x.x私有两者不在同一个网段10.240.x.xvs10.237.x.x说明DNS服务器在你所在网络的核心机房通过路由可达两台DNS25.6和25.7是做主备或负载均衡五、可视化数据包从你电脑到本地DNS服务器的路径[你的电脑] │ IP: 10.240.225.40 │ DNS请求: www.baidu.com 是什么IP │ 目标IP: 10.237.25.6企业本地DNS服务器 ▼ [楼层接入交换机] │ VLAN隔离二层转发 ▼ [汇聚交换机] │ 三层路由 ▼ [企业核心交换机/路由器] │ 路由到10.237.25.0/24网段 ▼ [DNS服务器 10.237.25.6] │ 放在企业核心机房的机架上 │ 可能是两台HP/DELL服务器运行BIND或Windows DNS │ 有缓存也可能需要去互联网根服务器问 ▼ 返回 IP 183.2.172.42六、为什么叫“本地”“本地”是相对“根服务器”而言的。根服务器全球只有13组注意不是13台是13组每组有多台在美国、欧洲、日本等地离你几千公里本地DNS服务器在同一个城市运营商场景或同一栋楼企业场景离你几公里甚至几百米每次DNS查询你的电脑只跟本地DNS服务器通信剩下的递归查询由它去完成。你不需要直接访问根服务器。DHCP如何知道DNS路由器的DHCP自动分配DNS路由器是咋知道DNS地址的你家用路由器里的DHCP服务器在给电脑分配DNS地址时它并不是凭空创造的。它实际上只是在做一件很简单的事情把自己知道的“那个”DNS地址原样告诉给电脑。这个地址的源头通常是以下三种途径之一最标准的来源从光猫/运营商那里“学”来的这是99%家庭路由器的默认行为。你的路由器WAN口从光猫获取上网权限时运营商会自动分配给它几个参数其中就包括最合适的运营商本地DNS服务器地址。路由器会把它们记下来。当内网设备请求网络配置时DHCP就把这个地址传下去。你手动告诉它的很多用户为了上网更快、更安全会登录路由器后台在WAN口或DHCP设置里把DNS手动改成公共DNS比如114.114.114.114或8.8.8.8。一旦你这样设置路由器就不再听运营商的而是忠实地把你填的地址广播给所有设备。路由器“冒充”DNS服务器路由器也可以选择把自己LAN口的IP地址比如192.168.1.1作为DNS下发给电脑。这就是让路由器扮演“DNS代理”。这种情况下电脑会把请求发给路由器路由器再以自己的身份去问真正的DNS服务器最后把结果返回给电脑。好处是路由器可以缓存结果下次再问同样域名时更快。DNS 工作机制假设运行在用户主机上的某些应用程序如 Web 浏览器或邮件阅读器 需要将主机名转换为 IP 地址。这些应用程序将调用 DNS 的客户端并指明需要被转换的主机名。DSN 客户端收到 DNS 后会使用 UDP 通过 53 端口向网络上发送一个 DNS 查询报文经过一段时间后DNS 客户端会收到一个主机名对应的 DNS 应答报文。因此从用户主机的角度来看DNS 就像是一个黑盒子其内部的操作你无法看到。但是实际上实现 DNS 这个服务的黑盒子非常复杂它由分布于全球的大量 DNS 服务器以及定义了 DNS 服务器与查询主机通信方式的应用层协议组成。DNS 最早的设计是只有一台 DNS 服务器。这台服务器会包含所有的 DNS 映射。这是一种集中式单点设计这种设计并不适用于当今的互联网因为互联网有着数量巨大并且持续增长的主机这种集中式的设计会存在以下几个问题单点故障(a single point of failure)单点通常上只有一台 DNS 服务器如果 DNS 服务器崩溃那么整个网络随之瘫痪。通信容量(traaffic volume)单个 DNS 服务器不得不处理所有的 DNS 查询这种查询级别可能是上百万上千万级。远距离集中式数据库(distant centralized database)单个 DNS 服务器不可能靠近所有的用户假设在美国的 DNS 服务器不可能临近让澳大利亚的查询使用其中查询请求势必会经过低速和拥堵的链路造成严重的时延。维护(maintenance)维护成本巨大而且还需要频繁更新。所以 DNS 不可能集中式设计因为集中式设计完全没有可扩展能力因此采用分布式设计这种设计的特点如下。分布式、层次数据库分布式设计首先解决的问题就是 DNS 服务器的扩展性问题。因此 DNS 使用了大量的 DNS 服务器它们的组织模式一般是层次方式并且分布在全世界范围内。没有一台 DNS 服务器能够拥有因特网上所有主机的映射。相反这些映射分布在所有的 DNS 服务器上。大致来说有三种 DNS 服务器根 DNS 服务器、顶级域(Top-Level Domain, TLD) DNS 服务器和权威 DNS 服务器。这些服务器的层次模型如下图所示。假设现在一个 DNS 客户端想要知道 www.amazon.com 的 IP 地址那么上面的域名服务器是如何解析的呢首先客户端会先根服务器之一进行关联它将返回顶级域名 com 的 TLD 服务器的 IP 地址。然后客户端与这些 TLD 服务器之一联系它将为 amazon.com 返回权威服务器的 IP 地址。最后该客户与 amazom.com 权威服务器之一联系它为 www.amazom.com 返回其 IP 地址。DNS 层次结构我们现在来讨论一下上面域名服务器的层次系统。根 DNS 服务器有 400 多个根域名服务器遍及全世界这些根域名服务器由 13 个不同的组织管理。根域名服务器的清单和组织机构可以在 https://root-servers.org/ 中找到根域名服务器提供 TLD 服务器的 IP 地址。顶级域 DNS 服务器对于每个顶级域名比如 com、org、net、edu 和 gov 和所有的国家级域名 uk、fr、ca 和 jp 都有 TLD 服务器或服务器集群。所有的顶级域列表参见 https://tld-list.com/ 。TDL 服务器提供了权威 DNS 服务器的 IP 地址。权威 DNS 服务器在因特网上具有公共可访问的主机如 Web 服务器和邮件服务器这些主机的组织机构必须提供可供访问的 DNS 记录这些记录将这些主机的名字映射为 IP 地址。一个组织机构的权威 DNS 服务器收藏了这些 DNS 记录。

相关文章:

详解下DNS协议

参考: DNS 协议详解(适合收藏学习)_dns协议-CSDN博客 简介 我们之前聊了IP地址、路由、NAT,这些都是为了让数据包能找到正确的目的地。但有一个根本问题你没提:我们人类记不住IP地址。 你能记住 183.2.172.42 是百度&a…...

RimWorld跨平台模组管理器终极指南:5个核心功能打造完美游戏体验

RimWorld跨平台模组管理器终极指南:5个核心功能打造完美游戏体验 【免费下载链接】RimSort RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, comm…...

5个步骤,用开源工具彻底解决城通网盘下载难题

5个步骤,用开源工具彻底解决城通网盘下载难题 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 你是否曾在深夜加班时,急需下载一份重要的工作文档,却被城通网盘的限速…...

Vue流程图组件Flowchart-Vue:3个简单步骤实现专业流程可视化

Vue流程图组件Flowchart-Vue:3个简单步骤实现专业流程可视化 【免费下载链接】flowchart-vue Vue.js Flowchart Component with Drag-and-Drop Designer 项目地址: https://gitcode.com/gh_mirrors/fl/flowchart-vue Vue流程图组件Flowchart-Vue是一款专为Vu…...

Cursor Free VIP深度解析:绕过AI编程工具试用限制的系统级技术方案

Cursor Free VIP深度解析:绕过AI编程工具试用限制的系统级技术方案 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reac…...

别再手动转图了!用Python批量把JPG/PNG转成EPS/TIFF,论文插图一键搞定

科研效率革命:用Python自动化实现论文插图格式转换 深夜的实验室里,显示器荧光映照着一张疲惫的脸——这可能是许多科研工作者在论文投稿截止前的真实写照。当最后一批实验数据终于整理成图表,却突然发现期刊要求提交EPS或TIFF格式的矢量图&a…...

终极指南:如何用Reset Windows Update Tool修复Windows更新故障

终极指南:如何用Reset Windows Update Tool修复Windows更新故障 【免费下载链接】Reset-Windows-Update-Tool Troubleshooting Tool with Windows Updates (Developed in Dev-C). 项目地址: https://gitcode.com/gh_mirrors/re/Reset-Windows-Update-Tool 当…...

力士乐驱动调试软件中文版本操作手册,实用调试项目与手册配套指南

力士乐驱动调试软件13v16版本,中文版本的,用这个调试过项目, 配套还有好多手册最近在调试一个项目,用到了力士乐驱动调试软件13v16版本,中文界面,整体体验还不错。这个版本的功能挺全的,尤其是对…...

从命令行到代码:手把手教你用curl和Java实现自动化服务健康检查

从命令行到代码:手把手教你用curl和Java实现自动化服务健康检查 在现代化运维体系中,服务健康检查早已超越了简单的"端口是否开放"的初级判断。当你在凌晨三点被告警电话惊醒时,需要的不是一堆冰冷的端口状态数据,而是能…...

YOLOv5涨点实战:手把手教你用EIoU、SIoU等替换CIoU(附完整代码与NEU-DET数据集测试结果)

YOLOv5目标检测进阶:深度解析EIoU、SIoU等损失函数优化策略与实战对比 在工业质检领域,表面缺陷检测的准确率直接影响产品质量控制效率。传统CIoU损失函数虽然表现稳定,但面对NEU-DET这类复杂缺陷数据集时,检测精度常遇到瓶颈。本…...

5分钟快速上手:foobar2000开源歌词插件的完整使用指南

5分钟快速上手:foobar2000开源歌词插件的完整使用指南 【免费下载链接】foo_openlyrics An open-source lyric display panel for foobar2000 项目地址: https://gitcode.com/gh_mirrors/fo/foo_openlyrics 还在为foobar2000寻找一款既美观又强大的歌词显示插…...

Cursor试用限制重置方案:技术原理与实战操作指南

Cursor试用限制重置方案:技术原理与实战操作指南 【免费下载链接】go-cursor-help 解决Cursor在免费订阅期间出现以下提示的问题: Your request has been blocked as our system has detected suspicious activity / Youve reached your trial request limit. / Too…...

3步实现跨平台互动桌宠:BongoCat模型定制与开发实战

3步实现跨平台互动桌宠:BongoCat模型定制与开发实战 【免费下载链接】BongoCat 🐱 跨平台互动桌宠 BongoCat,为桌面增添乐趣! 项目地址: https://gitcode.com/gh_mirrors/bong/BongoCat 你是否曾经想过为单调的桌面增添一些…...

大数据赛项(中职组)-三个节点的创建及名字网络配置

因为比赛的时候需要三个节点,分别是主节点master、从节点slave1、slave2所以这里主要是基础准备这三个节点其实就是三台装有centOS系统的电脑(服务器),后面将都用服务器前面我们已经学了在VMware中安装centos,并且做了…...

蓝牙channel sounding - 蓝牙信道探测的PBR测距

一、PBR测距方法PBR的全称是Phase-Based Ranging,PBR测距方法的本质是通过测量无线信号在传播路径上的相位变化从而估计出两个设备间的距离,蓝牙低功耗设备通过在特定频率传输交换CS TONE得到Initiator和Reflector之间的相位差,通过相位差得到…...

构建生产级AI聊天机器人:PHP 9.0异步HTTP/2流式调用OpenAI + 自研RAG缓存层(仅需23行核心代码)

更多请点击: https://intelliparadigm.com 第一章:PHP 9.0异步编程与AI聊天机器人高级开发技巧 PHP 9.0 引入了原生协程(Native Coroutines)与 async/await 语法支持,彻底重构了异步 I/O 模型。开发者无需依赖 ReactP…...

别再让模型‘偏爱’多数类了:PyTorch中BCEWithLogitsLoss的weight和pos_weight参数实战指南

破解类别不平衡:PyTorch中BCEWithLogitsLoss的权重调优实战 金融风控场景下,欺诈交易占比不足1%;医疗影像分析中,阳性样本往往只有个位数比例——这些真实场景中的二元分类问题,总是让数据科学家们头疼不已。当你的模型…...

告别卡顿与臃肿:G-Helper终极指南,让华硕笔记本重获新生

告别卡顿与臃肿:G-Helper终极指南,让华硕笔记本重获新生 【免费下载链接】g-helper The control app every laptop should come with. G-Helper is a fast, native tool for tuning performance, fans, GPU, battery, and RGB on any Asus laptop or han…...

5分钟完成Windows 11极致系统优化:Win11Debloat专业精简指南

5分钟完成Windows 11极致系统优化:Win11Debloat专业精简指南 【免费下载链接】Win11Debloat A simple, lightweight PowerShell script that allows you to remove pre-installed apps, disable telemetry, as well as perform various other changes to declutter …...

避坑指南!新手学AI最容易踩的10个误区,90%的人都中招了

前言:AI入门的路上,比“学不会”更可怕的是“学错了”——很多新手抱着满腔热情开始学习,却因为踩了一个个误区,浪费了大量时间和精力,最后越学越懵,甚至放弃。今天这篇文章,结合CSDN上千名AI入…...

手把手教你修复JLink V9灯不亮问题:固件烧写全流程(附驱动安装避坑指南)

手把手教你修复JLink V9灯不亮问题:固件烧写全流程(附驱动安装避坑指南) 当你的JLink V9调试器突然"失明"——指示灯不再亮起,这通常意味着固件出现了问题。别急着把它扔进垃圾桶,今天我将带你一步步完成固件…...

TimescaleDB 2.26.4 版本发布:修复自 2.26.3 版本以来的多项错误,官方建议尽快升级

开源数据库 TimescaleDB 2.26.4 版本发布,此版本修复了自 2.26.3 版本以来存在的一系列错误,官方建议用户尽快升级。 TimescaleDB 简介 TimescaleDB 是一个开源数据库,基于 PostgreSQL 构建,打包为 PostgreSQL 扩展程序&#xf…...

HTML转Figma终极指南:3步实现网页秒变设计稿

HTML转Figma终极指南:3步实现网页秒变设计稿 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 还在为网页设计稿的还原而头疼吗?HTML转Figma工具正是解决这一…...

Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡

Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等。 带有折叠相同的帧YID的功能&…...

双向DC-DC电路实战解析:从Buck/Boost到混合状态,一张图理清三种工作模式

双向DC-DC电路实战解析:从Buck/Boost到混合状态,一张图理清三种工作模式 在电力电子领域,双向DC-DC变换器正成为储能系统、电动汽车和可再生能源应用中的关键组件。与单向变换器相比,双向拓扑能够根据需求灵活调整能量流动方向&a…...

Deformable ConvNets (DCN) 实战:在YOLOv5中集成可变形卷积提升小目标检测精度

可变形卷积在YOLOv5中的实战应用:突破小目标检测瓶颈 无人机航拍图像中的车辆和行人检测一直是计算机视觉领域的难点——目标尺寸小、分布密集、形态多变,传统卷积神经网络在这些场景下往往表现不佳。去年我们在处理某智慧城市项目时,发现标准…...

别再被PyTorch的Tensor布尔值搞晕了!手把手教你用.all()和.any()的正确姿势

从踩坑到精通:PyTorch张量布尔运算的实战指南 在深度学习项目中,我们常常需要根据张量的布尔值进行条件判断。记得第一次遇到RuntimeError: Boolean value of Tensor with more than one value is ambiguous错误时,我花了整整一个下午才明白问…...

AI应用的可观测性工程2026:让LLM系统从黑盒变白盒

为什么AI应用难以调试? 传统软件系统出了问题,你有一套成熟的调试手段:查日志、看堆栈、断点调试、Metrics报警。这些工具运作良好,因为传统系统是确定性的——相同输入,必然相同输出,错误有明确的代码路径…...

告别手动上传!用Python+SAP OData实现OA审批后自动同步请求号(保姆级避坑指南)

从OA审批到SAP请求号自动同步:Python与OData实战全解析 当审批流程在OA系统完成,而SAP系统中的请求号仍需手动录入时,这种割裂不仅消耗时间,更可能因人为疏忽导致数据不一致。我曾为某跨国企业实施自动化方案时,发现财…...

别再纠结了!Mapbox、Leaflet、OpenLayers 三大地图库,我根据项目需求帮你选好了

三大地图库深度对比:从项目需求出发的技术选型指南 每次启动新项目时,面对Mapbox、Leaflet和OpenLayers这三个主流地图库的选择,不少开发者都会陷入纠结。作为经历过数十个地图相关项目的老兵,我深知选错技术栈可能带来的后期维护…...