DNS:关于 DNS 基本概念的一些笔记整理
写在前面
- 分享一些 DNS 的笔记整理
- 博文内容涉及:
- DNS 历史介绍
- DNS 解析顺序
- DNS 基本概念
- 资源类型介绍
- DNS 安全
- 理解不足小伙伴帮忙指正
傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺了。当时我是个年轻人,但我害怕这样生活下去,衰老下去。在我看来,这是比死亡更可怕的事。--------王小波
简单介绍
DNS(DNS-Domain Name System) ,中文名即域名系统,简单理解,即将域名和 IP 地址相互映射的一个分布式数据库,用于 域名解析IP地址,IP地址反向解析域名 ,能够使人更方便地访问互联网。DNS 使用 TCP 和 UDP 端口 53,系统内存储了 网络主机地址和资源目录 的一个分层命名系统。 分层类似树一样。
这里的 资源目录 指将 域名 映射到不同 资源记录。并保存在称为 资源记录 的逻辑条目中。
DNS 层次结构从顶部的 根域(.) 开始,向下分支到多个下一级域。DNS 层次结构的每一层都由域名中的 . 描述,. 是最顶层。域名如.com、.Net和.org 占据层次结构的第二层,例如example.com,占据在第三层, liruilongs.github.io占据第四层。
在全球互联网中,部署 DNS 服务中存放最高级别的域名的服务器,称之为 根服务器。负责返回顶级域名的权威域名服务器的地址,按照解析 IP 来分,有 IPV4 和 IPV6 两种,按照服务器类型分,分为 主根服务器 和 辅根服务器,或者可在加一个 镜像服务器
IPV4
最早是 IPV4,全球只有 13 台(这 13 台 IPv4 根域名服务器名字分别为“A”至“M”),1 个为主根服务器在美国,由美国互联网机构 Network Solutions 运作。其余 12 个均为辅根服务器,其中 9 个在美国, 2 个在欧洲(位于英国和瑞典), 1 个在亚洲(位于日本)。
实际上 DNS 根域名服务器并不真的只有 13 台,而是 13 个 IP,对应了 A-M 13 个编号,借由任播(Anycast)技术,编号相同的根服务器使用同一个 IP(类似一个集群)。截至 2014 年 10 月,全球有 504 台根服务器,被编号为 A 到 M 共 13 个标号。,504 台根服务器大部分借由任播(Anycast)技术,编号相同的根服务器使用同一个 IP,504 台根服务器总共只使用 13 个 IP,因此可以抵抗针对其所进行的分布式拒绝服务攻击(DDoS)。
中国的镜像服务器:
- 中国大陆在北京有三台编号为 L 的镜像,编号为 F、I、J 的镜像各一台,共 6 台
- 香港有编号为 D、J 的镜像各 2 台,编号为 A、F、I、L 的镜像各一台,共 8 台
- 台湾有编号为 F、I、J 各一台,共 3 台。
为什么根服务器只有 13 台 ?
DNS 协议的最初定义要从 20 世纪 80 年代未期开始算起,它使用了 UDP 和 TCP 协议。UDP 通常用于 DNS 解析查询和响应,TCP 用于 DNS 主服务器和从服务器之间的区域数据传送。
遗憾的是,在所有 UDP 实现中能保证正常工作的最大包是 512 字节,对于在每个包中必须含有数字签名的一些 DNS 新特性(例如,DNSSEC)来说实在是太小了。
512 字节的限制还影响了根服务器的数量和名字。
要让所有的根服务器数据能包含在一个 512 字节的 UDP 包中,根服务器只能限制在 13 个,而每个服务器要使用字母表中的单个字母命名。
以太网数据的长度必须在 46-1500 字节之间,这是由以太网的物理特性决定的。事实上,这个 1500 字节就是网络层 IP 数据包的长度限制,理论上,IP 数据包最大长度是 65535 字节。
在 Internet 数据传输中,UDP 数据长度控制在 576 字节(Internet 标准 MTU 值),而在许多 UDP 应用程序设计中数据包被限制成 512 字节或更小。这样可以防止数据包的丢失。
许多解析器首先发送一条 UDP 查询,如果它们接收到一条被截断的响应,则会用 TCP 重新发送该查询。这个过程绕过了 512 字节的限制,但是效率不高。
您或许认为 DNS 应该避开 UDP,总是使用 TCP,但是 TCP 连接的开销大得多。
- 一次 UDP DNS 交换可以短到两个包:一个查询包、一个响应包。
- 一次 TCP 交换则至少包含 7 个包:三次握手初始化 TCP 会话、一个查询包、一个响应包以及最后一次握手来关闭连接。
IPV6
IPV4 受长度的限制,担忧多年的 IPv4 地址耗尽时刻还是到了。负责英国、欧洲、中东和部分中亚地区互联网资源分配的欧洲网络协调中心通过邮件确认,其最后的 IPv4 地址储备池已于 2019 年 11 月 25 日完全耗尽。
IPv6 是 IP 协议 的最新版本,用它来取代 IPv4 ,主要是为了解决 IPv4 地址枯竭问题,同时它也在其他方面对于 IPv4 有许多改进。
然而长期以来 IPv4 在互联网流量中仍占据主要地位,同时 NAT 的出现 ,使得 IPv6 的使用增长缓慢。在 2022 年 4 月,通过 IPv6 使用 Google 服务的用户百分率首次超过 40%。
在与现有 IPv4 根服务器体系架构充分兼容基础上,雪人计划 于 2016 年在全球 16 个国家完成 25 台 IPv6 根服务器架设,事实上形成了 13 台原有根加 25 台 IPv6 根的新格局.
为建立多边、民主、透明的国际互联网治理体系打下坚实基础。中国部署了其中的 4 台,由 1 台主根服务器和 3 台辅根服务器组成,打破了中国过去没有根服务器的困境。
DNS 解析顺序
粗粒度的看,当我们在浏览器中输入域名的时候,或者应用程序处理域名解析时,一般首先会基于编程语言调用系统的 Socket 库来进行 DNS 解析,获取到对应的 IP,然后封装 网络层的相关数据包,添加首部,依次到链路层发出请求。
如果细粒度看,实际发生了好多细节,以 Linux 为例,首先会通过名称解析服务 etc/nsswitch.conf 读取 DNS 解析规则,通过文件中定义的 解析顺序发生解析。
$ cat /etc/nsswitch.conf | grep host
# hosts: files dns
# hosts: files dns # from user file
hosts: files dns myhostname
$
当解析发生时,首先通过 files 本地文件 /etc/hosts 发生解析,在 /etc/hosts 文件配置中,我们可以配置一些当前环境的自定义映射
$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6172.25.254.254 classroom.example.com classroom
172.25.254.254 content.example.com content
172.25.254.254 materials.example.com materials
### rht-vm-hosts file listing the entries to be appended to /etc/hosts172.25.250.254 bastion.lab.example.com bastion
172.25.250.9 workstation.lab.example.com workstation
172.25.250.10 servera.lab.example.com servera
172.25.250.11 serverb.lab.example.com serverb
172.25.250.12 serverc.lab.example.com serverc
172.25.250.13 serverd.lab.example.com serverd
$
如果没有则通过 dns 解析,当需要从 DNS 获取信息时,如果对应的集群存在 DNS 缓存,可能会重缓存中获取,如果缓存中没有,会由存根解析器(stub resolver)向 /etc/resolv.conf 文件中第一个 nameserver记录查询 DNS 信息。如果该服务器没有响应,它将依次尝试其他服务器,直到获得答案或服务器用完为止。
$ cat /etc/resolv.conf
# Generated by NetworkManager
search lab.example.com example.com
nameserver 172.25.250.254
如果还是没有,则通过 myhostname 即当前主机名对应的DNS进行解析。
调用 DNS 服务器发送解析过程
客户端联系的 DNS 服务器通常是递归或者缓存 DNS服务器。通过会通过下面的方式检索客户端的答案:
- 如果客户端联系的 DNS 服务器恰好是
查询记录的权威际服务器则权威 DNS 服务器立即回答查询,因为权威服务器已经在本地存储了查询区域的信息。 - 如果客户端联系的 DNS 服务器是
缓存 DNS 服务器,而且之前已经查询过对应记录并且数据缓存在本地且尚未过期,缓存 DNS 服务器也会立即向客户端提供答案。这减少了获取常用信息的延迟。每个查询都有一个关联的生存时间(TTL)值,该值由权威服务器设置。 - 如果客户端联系的
缓存 DNS 服务器本地未执行过对应记录查询,或者缓存的数据已经过期,那么存 DNS 服务器继续对其他 DNS 服务器执行迭代查找,以获取客户端的信息。一旦获得了客户查询的答案,它就会将该信息提供给客户。
DNS 的一些基本概念
关于 DNS 的一些基本概念:域、子域和区域。
Domain 域,是 resource records 的集合,以通用名结尾,表示 DNS 命名空间的整个子树,如 example.com.。
Subdomain 子域:是另一个域的完整子树的域。在讨论两个域之间的关系时使用此术语。例如,lab.example.com 是 example.com 的子域,而 example.com 是 .com 的子域。您也可以将 example.com 称为第二级域,并将 lab.example.com 称为第三级域。
Zone 区域:是特定 DNS 服务器直接负责的域。它可能是整个域,也可能只是域的一部分。Zone 可以将部分或全部子域都委派给另一个 DNS 服务器或多个 DNS 服务器。
例如,root DNS 服务器对 root zone 具有权威性,但它们将 .com 域的职责委派给其他 DNS 服务器,这些 DNS 服务器为 .com 区域提供权威性应答。这些服务器还可以继续将责任委派给其他 DNS 服务器。
再例如,redhat.fun DNS 服务器对redhat.tun zone 具有权威性,但他将 lab.redhat.fun zone 委派给lab.redhat.fun DNS 服务器。
DNS 资源记录表
DNS 区域中的DNS resource record(RR-DNS资源记录)条目指定有关区域中特定名称或对象的信息。资源记录格式如下:
DNS 记录,不管任何类型的资源目录都使用下面的格式
owner-name TTL class type data
www.example.com. 300 IN A 192.168.1.10
owner-name: 查询条目,DNS 名称TTL:生命周期/sclass:类别,IN interent,因特网type: 资源类型data: 名称对应的值
资源类型
A
A 资源记录将主机名映射到 IPv4 地址。
host.example.com. 86400 IN A 172.25.254.254
AAAA
AAAA 资源记录(4A 记录)将主机名映射到 IPv6 地址。
a.root-servers.net. 604800 IN AAAA 2001:503:ba3e::2:30
CNAME: 别名
CNAME 资源记录将一个名称映射为规范名称,规范名称具有 A 或 AAAA 记录。CNAME 记录的数据字段可以指向任意名称,无论该区域是内部的还是外部的:
www-dev.example.com. 30 IN CNAME lab.example.com.
www.example.com. 30 IN CNAME www.redhat.com.
-
CNAME 记录可能指向具有 CNAME 的名称,但 CNAME 记录链最终必须解析为 A 或 AAAA 记录的名称。
-
通常,避免将 CNAME 记录指向其他 CNAME 记录。CNAME 会使查找效率降低,并且您可能会意外地创建一个指向彼此的 CNAME 记录循环。
-
CNAME 记录链有合法用途。例如,它们与 Content Delivery Network(CDN)结合使用。NS 和 MX 记录不得指向带有 CNAME 记录的名称,而是使用带有 A 和/或 AAAA 资源记录的名称。
PTR:IP 到域名反向解析
PTR 或 pointer 资源记录将 lPv4 或 IPv6 地址映射到主机名。它们用于反向 DNS 解析。PTR 记录以一种类似于主机名的特殊格式对 IP 地址进行编码。
- 对于 IPv4 地址,该地址被颠倒,以最具体的部分开始,然后视为 in-addr.arpa 域的子域中的主机。
- 对于 IPV6 地址,该地址在半字节边界(每个十六进制数字)上划分为子域,并设置为 ip6.arpa 域的子域。
4.0.41.198.in-addr.arpa. 785 IN PTR a.root-servers.net.
0.3.0.0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.e.3.a.b.3.0.5.0.1.0.0.2.ip6.arpa. 86400 IN PTR a.root-servers.net.
该语法可能看起来很奇怪,但是它简化了将地址范围的责任委托给其他 DNS 管理员的情况。
NS:指定区域的权威服务器
NS 或 DNS 服务器资源记录,将 域名映射到对其 DNS区域 具有 权威性的DNS 服务器,该区域的每个权威 DNS 服务器都必须其有 NS 记录。
example.com. 86400 IN NS classroom.example.com.
168.192.ip-addr.arpa. 86400 IN NS classroom.example.com.
9.0.e.1.4.8.4.6.2.e.d.f.ip6.arpa. 86400 IN NS classroom.example.com.
说明:
- 其中两个 NS 记录用于 192.168.0.0/16 网络和 fde2:6484:1e09:/48 网络的反向查找。
- NS 记录映射的名称必须有 A 或 4A 记录。
- 可以正向或者反向解析
SOA:指定 DNS 运行信息
SOA 资源记录,也叫做起始授权机构记录,提供有关 DNS 区域如何运行的信息。每个区域必须有一个 SOA 记录。
example.com. 86400 IN SOA classroom.example.com. root.classroom.example.com. 2015071700 3600 300 604800 60
- MNAME | classroom.example.com. : 该 DNS 服务器是这个
区域的主要 DNS 服务器负责维护区域资源记录。 - RNAME | root.classroom.example.co :该区域中负责人邮件地址,(@用.代替,例如root@classroom.example.com.
- SERIAL | 2015071700 :该区域版本号,随着区域中记录更改而增加。
- REFRESH | 3600 : 从 DNS 服务器向主 DNS 服务器更新数据频.单位秒。
- RETRY | 300 : 在重试失败的刷新前,应当等待的时间间隔。单位秒。
- EXPIRE | 604800 : 如果刷新失败,从服务器在停止其旧的区域副本响应查询之前等待的时间。单位秒。
- MINIMUM:| 60 :如果解析器查找某个名称,并且该名称不存在,解析器应将“记录不存在”这一信息缓存的时间。单位秒。
MX
MX 资源记录将域名映射到接受该域的电子邮件的邮件交换(mail exchange)。该记录类型的数据是用于确定在多个 MX 记录之间选择邮件服务器(值越小,优先级越高),提供负载平衡和冗余的邮件服务器。
example.com.86400 IN MX 10 classroom.example.com.
example.com.86400 IN MX 10 mail.example.com.
example.com.86400 IN MX 100 mailbackup.example.com.
TXT
TXT 资源记录将名称映射到编码为可打印 ASCl 字符的任意文本。它们通常用于提供用于各种电子邮件身份验证方案(例如 SPF,DKIM 和 DMARC)的数据,以验证域所有权(例如,用于 Google 和 Facebook),以及用于其他目的。
lwn.net. 27272 IN TXT "google-site-verification:sVlx-S z1es5DfNSUNXrqr3n9Y4F7tOr7HNVMKUGs"
lwn.net. 27272 IN TXT "v=spf1 a:mail.lwn.net a:prod.lwn.net a:git.lwn.neta:ms.lwn.net-all"
SRV 特定服务主机
SRV 资源记录可帮助客户端找到域中支特定服务的主机。
ldap.tcp.example.com.86400 IN SRV 0 100 389 server0.example.com.
有特定的格式要求
含义:表明存在一个可以使用 TCP 传输协议(tcp)与 LDAP 连接的 LDAP 服务器(ldap),该主机属于域 example.com。LDAP 服务器是 server0.example.com,正在侦听端口 389,优先级为 0,权重为 100(如果客户端接收到多个 SRV 记录,则控制选择哪个服务器)。
主机和资源记录:
无论是客户端还是服务器,都具有以下 DNS 资源记录:
- 一个或多个 A 或 AAAA 记录
- 用于将其 IP 地址反向映射到名称的 PTR 记录
- 一个或多个 CNAME 记录(可选)
DNS zone 还具有以下资源记录:
- 唯一的 SOA 记录
- 每个权威 DNS 服务器的 NS 记录
- 一个或多个 MX 记录(可选)
- 用于在域中查找服务的一个或多个 SRV 记录(可选)
DNS 安全
DNS 对于 Internet 的运行至关重要,基本的 DNS 协议非常容易受到欺骗和篡改攻击。
DNS 的原始设计没有提供用于缓存 DNS 服务器以验证来自权威服务器的响应的真实性的方法。攻击者可能伪造对 DNS 查找的响应,伪装成权威服务器,然后将流量重定向到恶意主机。缓存 DNS 服务器将坏数据存储在其缓存中,并在看起来有效的情况下将其提供给其他客户端,该技术通常称为缓存中毒。
为了解决这个问题,许多区域使用域名系统安全扩展(DNSSEC-Domain Name System Security Extensions)。每个使用 DNSSEC 的区域都经过数字签名,并向解析器提供包含这些签名的特殊资源记录。
博文部分内容参考
© 文中涉及参考链接内容版权归原作者所有,如有侵权请告知
https://zh.wikipedia.org/wiki/%E5%9F%9F%E5%90%8D%E7%B3%BB%E7%BB%9F
https://baike.baidu.com/item/%E6%A0%B9%E5%9F%9F%E5%90%8D%E6%9C%8D%E5%8A%A1%E5%99%A8/5907519?fromtitle=%E6%A0%B9%E6%9C%8D%E5%8A%A1%E5%99%A8&fromid=136331&fr=aladdin
https://jaminzhang.github.io/dns/The-Reason-of-There-Is-Only-13-DNS-Root-Servers/
https://www.freedesktop.org/software/systemd/man/nss-myhostname.html
© 2018-2023 liruilonger@gmail.com, All rights reserved. 保持署名-非商用-相同方式共享(CC BY-NC-SA 4.0)
相关文章:
DNS:关于 DNS 基本概念的一些笔记整理
写在前面 分享一些 DNS 的笔记整理博文内容涉及: DNS 历史介绍DNS 解析顺序DNS 基本概念资源类型介绍DNS 安全 理解不足小伙伴帮忙指正 傍晚时分,你坐在屋檐下,看着天慢慢地黑下去,心里寂寞而凄凉,感到自己的生命被剥夺…...
机器人学一些知识
机器人动力学模型是用数学方法描述机器人运动和力学特性的模型。它包含机器人的几何结构、质量、惯性、摩擦等物理特性,以及机器人的控制系统和传感器等。机器人动力学模型可以用于机器人的运动规划、控制算法设计、仿真和优化等应用中。 机器人动力学模型通常采用…...
应用,auto,内联函数
6.引用: //指针 int main() {int a 0;int& b a;int& c b;int& d c;cout << &a << endl;cout << &b << endl;cout << &c << endl;cout << &d << endl;b;d;cout << a <<…...
Flask框架的学习---01
1.工程搭建: (1) 安装flask: pip3 install flask (2)命令行: (1)终端运行:flask run (2)绑定IP地址和端口:Flask run -h 127.0.0.1 -p 8083 修改端口号 (3࿰…...
免费gpt-4-国内使用gpt-4
如何用上gpt-4 GPT-4尚未正式发布和公开,因此我们无法提供对GPT-4的具体使用方法。但是,可以从GPT-4的前一代——GPT-3的使用经验和GPT-4的预期功能来看,建议如下: 了解GPT-4的语言处理能力和适用场景:GPT-4预计将进一…...
《程序员面试金典(第6版)面试题 16.09. 运算
题目描述 请实现整数数字的乘法、减法和除法运算,运算结果均为整数数字,程序中只允许使用加法运算符和逻辑运算符,允许程序中出现正负常数,不允许使用位运算。 你的实现应该支持如下操作: Operations() 构造函数minus…...
asp.net基于web的校园美食派送配送系统
1.系统登录:系统登录是用户访问系统的路口,设计了系统登录界面,包括用户名、密码和验证码,然后对登录进来的用户判断身份信息,判断是管理员用户还是普通用户。 2.系统用户管理:不管是…...
【JAVA】#详细介绍!!! 文件操作之File对象(1)!
本文内容不涉及文件内容操作,主要是对指定文件元信息的获取,以及通过java代码如何创建一个文件或者删除文件 目录 文件操作的File对象 File对象的基本操作方法 得到文件(夹)对象的信息元 1.getParent 2. getName 3.getPath 4…...
Vue基本的内置指令
前言 除了常见的v-bind,v-for,v-if,v-on.v-model等,本次学习一些vue提供的其他内置指令 1 v-text 给标签插入文本,类似于插值语法 它会把全部的字符串当成文本去解析,不会当成标签的,哪怕写的是标签结构 效果和插值语法是一样的 插值语法比v-text更加…...
华为孟晚舟当值首秀:2030年AI算力将增长500倍!
作者 | 范智林 来源 | 华商观察 微信号:HuashangGC 孟晚舟当值首次亮相。 4月19日,华为副董事长、轮值董事长、CFO孟晚舟在华为第20届全球分析师大会上进行演讲,这是她当值华为轮值董事长以来的首次公开亮相。 按照华为内部规定,…...
关于python异常的总结
Python异常是在程序执行时发生的错误,可能会导致程序终止运行。 在Python中,异常处理是一种机制,它允许开发人员在程序发生异常时捕获、处理和报告这些异常,以便程序可以继续运行或在出现异常时进行优雅的退出。 在Python中&…...
基于Java+SpringBoot+vue学生学习平台详细设计实现
基于JavaSpringBootvue学生学习平台详细设计实现 博主介绍:5年java开发经验,专注Java开发、定制、远程、指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目…...
【云原生网关】Kong 使用详解
目录 一、前言 二、Kong介绍 三、Kong核心组件 3.1 kong组件介绍 3.1.1 Kong Server 3.1.2 Apache Cassandra/PostgreSQL 3.1.3 Kong dashboard 3.2 传统网关与Kong工作模式对比 四、Kong网关特征与架构 4.1 kong网关特征 4.1.1 可扩展性 4.1.2 模块化 4.1.3 在任…...
浅谈之Java多线程
Java多线程是Java语言中一个非常重要的特性,它允许程序同时执行多个任务。通过多线程,程序可以同时处理多项任务,从而缩短程序的执行时间。另外,多线程也有助于利用多核处理器,更好地发挥计算机硬件的性能。 那我们在…...
【Vue3学习笔记1】一个清单应用帮你入门Vue.js
Vue 目前已经是国内最流⾏的前端框架之⼀,Vue 3 带来的诸多优化更是让前端圈迎来了新的潮流,比如: 基于 Proxy 的全新响应式实现; Composition API <script setup> 组织代码的更优方式; 更有料的 TypeScript 支…...
go破冰之旅·8·go函数基本实践及各种玩法
一次5-10分钟即可搞定,以干货效率的学习方式带你更直观的玩转各种玩法! 行文不易,一字一句纯手打创造,倾注了不少精力,感谢支持。 目录 什么是函数?有哪些元素? 函数参数、返回值 小程序&…...
Qt - 从零到壹的 打地鼠 游戏
❤️🔥欢迎收看西北风的blog,好男人就是我,我就是西北风。✨ Gitee 地址 W_A_Mole NTC_jason/cc语言 - 码云 - 开源中国 (gitee.com) 目录 🟥一:创建一个主窗体 🟣二.:添加主窗口背景图片…...
代码自动发布系统
之前是jenkins发现gitlab代码更新了就自动获取直接部署到服务器 现在是jenkins自动获取Code之后打包成镜像上传到仓库然后通知docker去拉取更新的镜像 分析 旧∶ 代码发布环境提前准备,以主机为颗粒度静态 新: 代码发布环境多套,以容器为颗粒度编译 …...
qemu-基础篇(一)——安装
文章目录 env安装查看版本查看支持的开发板查看支持的CPU的型号 env ubuntu 安装 sudo apt-get install qemu sudo apt-get install qemu-system-arm sudo apt-get install qemu-system查看版本 qemu-img -V qemu-system-arm --version qemu-system-aarch64 --version返回结…...
从根本上理解Synchronized的加锁过程
作为一个Java开发,对于Synchronized这个关键字并不会陌生,无论是并发编程,还是与面试官对线,Synchronized可以说是必不可少。 在JDK1.6之前,都认为Synchronized是一个非常笨重的锁,就是在之前的《谈谈Java…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
智能在线客服平台:数字化时代企业连接用户的 AI 中枢
随着互联网技术的飞速发展,消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁,不仅优化了客户体验,还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用,并…...
高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
python爬虫:Newspaper3k 的详细使用(好用的新闻网站文章抓取和解析的Python库)
更多内容请见: 爬虫和逆向教程-专栏介绍和目录 文章目录 一、Newspaper3k 概述1.1 Newspaper3k 介绍1.2 主要功能1.3 典型应用场景1.4 安装二、基本用法2.2 提取单篇文章的内容2.2 处理多篇文档三、高级选项3.1 自定义配置3.2 分析文章情感四、实战案例4.1 构建新闻摘要聚合器…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
起重机起升机构的安全装置有哪些?
起重机起升机构的安全装置是保障吊装作业安全的关键部件,主要用于防止超载、失控、断绳等危险情况。以下是常见的安全装置及其功能和原理: 一、超载保护装置(核心安全装置) 1. 起重量限制器 功能:实时监测起升载荷&a…...
Docker、Wsl 打包迁移环境
电脑需要开启wsl2 可以使用wsl -v 查看当前的版本 wsl -v WSL 版本: 2.2.4.0 内核版本: 5.15.153.1-2 WSLg 版本: 1.0.61 MSRDC 版本: 1.2.5326 Direct3D 版本: 1.611.1-81528511 DXCore 版本: 10.0.2609…...
react更新页面数据,操作页面,双向数据绑定
// 路由不是组件的直接跳转use client,useEffect,useRouter,需3个结合, use client表示客户端 use client; import { Button,Card, Space,Tag,Table,message,Input } from antd; import { useEffect,useState } from react; impor…...
