1. DNS那些事

参考:

​ 透视HTTP协议(06.域名有哪些门道)

libcurl文档

DNS是什么

DNS(Domain Name System,域名系统)就是一个记录域名与IP对应关系的系统。

DNS解析就是将域名转换成IP的过程。

实际网络传输中,各端点均是通过IP+端口的四元组确定地址的。

DNS的结构
  • 根域名服务器(Root DNS Server):管理顶级域名,例如com、cn等顶级域名服务器的IP地址。
  • 顶级域名服务器(Top-level DNS Server):管理各自域名下权威域名服务器,例如com顶级域名服务器可以返回apple.com域名服务器IP。
  • 权威域名服务器(Authoritative DNS Server):管理自己域名下主机的IP地址,例如apple.com权威域名服务器可以返回www.apple.com的IP。
  • 非权威域名服务器,例如Google的8.8.8.8,微软的4.2.2.1等,这些服务器缓存了很多常用的域名信息结果,提高整体解析流程的效率。
DNS解析流程
  • 主机DNS缓存,如果存在直接请求。
    • Linux DNS缓存有多种形式,例如:NSCD、Bind等。
  • 主机hosts文件,如果存在直接请求。
    • Linux默认文件路径:/etc/hosts
  • 根据配置的DNS服务IP(一般来说都是非权威域名服务器)请求,如果失败一般就直接返回DNS错误了。
    • Linux DNS服务IP配置:/etc/resolv.conf
    • Linux 查询实际域名解析IP命令:nslookup [url]
    • Linux 查询完整DNS相关信息命令,后置方括号仅显示DNS解析server:dig [| grep SERVER]
  • 请求根域名服务器获取顶级服务器IP。
  • 请求顶级服务器获取权威服务器IP。
  • 请求权威服务器获取结果IP地址。
DNS耗时查询

根据Linux libcurl文档,可以使用getinfo接口,获取到完整的请求各阶段耗时。文档参见文首参考。

PHP的curl实现也有getinfo接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值