如何查看个人电脑上DNS客户端程序的pid信息?

在看okhttp源码的DNS相关内容时的思考:dns是客户端-服务器模式,那么个人电脑上一定会有一个dns客户端程序在运行的,应用程序通过dns客户端程序发出dns查询报文从而获得对应的ip地址,那么个人电脑上的DNS的客户端程序在哪?通过 netstat -ano|findstr “53” 命令没有查询到进程pid信息,如何查看DNS的客户端程序的pid呢?

以下是答疑老师的解答,我觉得可以解决我的疑惑:
可以参考浏览器解析地址的过程https://myopswork.com/how-does-my-browser-find-the-right-website-8b156037c3eb,浏览器在接收到输入的网络地址后,需要转换为ip地址从而创建tcp连接,因此需要首先知道网址对应的IP地址,大体的步骤如下:
1.查询浏览器自己的地址缓存,参考hosts文件,可以理解为是映射域名和ip的一张表
2.如果在浏览器的缓存中没有找打,则去windows缓存中查找,当然这里应该是通过windows开发库提供的函数调用系统函数实现,当然在操作系统如何返回结果就是不同操作系统的实现,比如在内核可能会有一部分热缓存,叠加hosts文件中的记录
3.如果第2步仍然没有返回结果,必然就需要去dns服务器查询信息了,当然这里可能就取决于不同的实现了,比如第2步中如果系统调用时,在系统本地没有找到记录,系统调用可以通过dns协议去dns服务器查找记录返回,也可以由浏览器自己实现,在系统调用未实现dns远程查询时,调用dns服务器解析地址,这个需要去参考不同平台的开发手册才能了解
4.dns解析的过程略过,可以百度一下
5.关于你在问题中提到的dns客户端,事实上并不一定需要实时运行一个dns解析进程,只需要提供系统函数,在应用需要时调用系统函数即可,另外53端口是dns服务默认的端口号,但是在本地并不需要独立的dns服务,因此也就不存在这样一个进程

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值