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

DNS解析过程以及使用的协议名称

DNS(Domain Name System 域名系统)解析是一个分层查询的过程

1.本地缓存查询阶段

先检查浏览器自身的DNS缓存

接着检查操作系统的DNS缓存

最后检查本地 hosts 文件

2.本地DNS服务器查询阶段

先向本地DNS服务器查询,协议是 DNS over UDP(简称DoU)、DHCP(获取DNS服务器地址),查询由 ISP(Internet Service Provider互联网服务提供商)或网络配置提供的本地 DNS服务器

上面的 DNS over UDP(DoU)是标准的DNS查询,传输量小(512)

DNS over TCP 传输量大

DNS over HTTPSDNS over TLS 都是加密传输,但 DoH 更注重隐蔽性和防火墙穿透,而 DoT 更注重性能和简洁性

然后本地DNS服务器缓存检查

3.如果本地缓存未命中,递归查询阶段

查询根DNS服务器,协议用到了 DoU,根服务器返回顶级域名服务器地址

查询顶级域名服务器(TLD :Top Level Domain,常见有:.com、.org、.net、.info、.xyz 等),TLD服务器返回权威域名服务器地址

接着查询权威域名服务器,返回最终IP地址

4.安全考虑

基于 HTTPS / LTS 进行DNS查询

DNSSEC 协议确保数据完整性

5.响应返回阶段

主机返回结果:权威服务器-》本地DNS-〉客户端,各级根据TTL值更新记录

6.建立连接

通过解析得到的IP地址建立TCP连接

然后如果是 HTTPS 的话要进行加密 HTTPS 握手过程,通过 TLS/SSL协议

涉及的主要协议总结

  • DNS over UDP - 标准DNS查询
  • DNS over TCP - 大响应或区域传输
  • DHCP - 获取DNS服务器配置
  • DoH (HTTPS) - 加密DNS查询
  • DoT (TLS) - 加密DNS传输
  • DNSSEC - DNS安全验证
  • TCP - 最终连接建立
  • TLS/SSL - HTTPS安全连接
http://www.xdnf.cn/news/9443.html

相关文章:

  • Redis击穿,穿透和雪崩详解以及解决方案
  • 睡眠分期 html
  • ArcGIS Pro裁剪影像
  • 4.8.4 利用Spark SQL实现分组排行榜
  • 油桃TV v20250519 一款电视端应用网站聚合TV播放器 支持安卓4.1
  • 苍茫命令行:linux模拟实现,书写微型bash
  • 项目代码工程优化之concurrent.futures异步编程(二)
  • 加密协议知多少
  • 【前端】PWA
  • Hadoop复习(二)
  • 网络协议入门:TCP/IP五层模型如何实现全球数据传输?
  • C++学习之STL学习:vector类的使用
  • flutter常用动画
  • c++ 调用opencv或pcl流程
  • 【Tomcat】Tomcat端口仅允许本地访问设置方法
  • 接地气的方式认识JVM(一)
  • i2c-tools使用的介绍及示例(i2cdetect,i2cdump, i2cget、i2cset、i2ctransfer)
  • 解决微信小程序中 Flex 布局下 margin-right 不生效的问题
  • 通用大数据可视化展示平台模板 – 免费HTML源码
  • 聊聊JVM怎么调优?(实战总结)
  • 【Doris基础】Apache Doris中FE和BE的职责详解
  • 端午节互动网站
  • 学习threejs,超炫银河黑洞效果模拟
  • 【Halcon】 affine_trans_image 算子详解
  • vue组件和插件的区别
  • Kafka KRaft + SSL + SASL/PLAIN 部署文档
  • 【剑指offer】链表 系列
  • 万字详解RTR RTSP SDP RTCP
  • DeepSeek R1模型已完成小版本试升级
  • Unity屏幕适配——背景适配