【计算机网络】我与张三的 DNS 解析过程,浏览器中输入URL 回车后发生了什么

2021-12-30 16:39:38 浏览数 (1)

解析

hello ⼤家好,我是 up主黎明⾲菜

今早我正打开b站刷剧,突然想到了⼀个问题:

我们在浏览器⾥输⼊ bilibili.com 的时候,电脑是怎么找到b站的呢?

上篇TCP/IP协议的 视频⾥说过,⽹络请求是根据 ip 地址进⾏访问的

⽽只输⼊了b站域名的我们

为什么电脑不会给我们打开 a 站、c 站,抑或是⼀些奇怪的站点呢?

我带着好奇⼼百度了⼀下,我搜到了莆⽥精神病院的联系⽅式

哦不,是这个问题的答案

整个过程就像罗⽼师让我打个电话给张三,提醒他去抄下作业

因为张三只要能抄的作业绝不⾃⼰做,但今天他抄都懒得抄了

这⾥罗⽼师就相当于⽤户,或者是浏览器

负责联系张三这个泼⽪的我们就相当于操作系统

⽽电话号码就相当于IP地址

那么要找到张三这个泼⽪,我先打开了⼿机通讯录,也就是电脑本地的host⽂件

这时我突然意识到:本帅哥怎么会留泼⽪的电话呢?

所以我只能再看看通话记录,也就是本地DNS解析器缓存⾥有没有他电话

卧槽,我昨天刚通话记录清空了

没办法,怎么办呢?

我智能打开微信聊天记录,也就是本地DNS服务器看看能不能查到他的电话

然⽽平⽇⾥⾼冷的我并没有⼏条聊天记录

我只能去找班⻓,也就是根域名服务器求救,让她康康有没有张三联系⽅式

这回找对⼈了,班⻓让我联系下评奖学⾦的吴签⽼师

没错有的⼈天天抄作业照样考第⼀,想到这我就流下了⼼酸的泪⽔

这⾥吴签⽼师就相当于顶级域名服务器

我给吴⽼师发了个短信,他果然秒回了我⼀个奖学⾦评选Excel

还附带了⼀张可爱的图⽚

哎,男孩⼦在外⾯要保护好⾃⼰

这⾥的奖学⾦ Excel 就相当于权限域名服务器

果然在⾥头找到张三的电话,也就是bilibili 的 ip 地址

我赶紧给他打了过去,结束这要命的⼀天

总结

这个在浏览器中输⼊地址的流程,其实也就是DNS的⼯作流程

简单的总结一下:

第一步:在浏览器中输入www.bilibili.com域名,操作系统会先检查自己本地的hosts文件

是否有这个域名的映射关系,如果有,就先调用这个IP地址映射,完成域名解析。

第二步:如果hosts文件中没有,则查询本地DNS解析器缓存,如果有,则完成地址解析。

第三步:如果本地DNS解析器缓存中没有,则去查找本地DNS服务器,如果查到,完成解析。

第四步:如果没有,则本地服务器会向根域名服务器发起查询请求。

根域名服务器会告诉本地域名服务器去查询哪个顶级域名服务器。

第五步:本地域名服务器向顶级域名服务器发起查询请求

顶级域名服务器会告诉本地域名服务器去查找哪个权限域名服务器。

第六步:本地域名服务器向权限域名服务器发起查询请求

权限域名服务器告诉本地域名服务器www.bilibili.com所对应的IP地址。

第七步:本地域名服务器告诉主机www.bilibili.com所对应的IP地址。

其中本地域名服务器,也就是⼿机本地的通讯录、历史信息的查询过程,⼀般采⽤递归查询

⽽向根域名服务器请求,也就是吴⽼师的查询则采⽤的迭代查询

简单来说,递归查询就是:

小明问了小红一个问题,小红不知道,但小红是个热心肠,小红就去问小王了

小王把答案告诉小红后,小红又去把答案告诉了小明

迭代查询就是:

小明问了小红一个问题,小红也不知道,然后小红让小明去问小王

小明又去问小王了,小王把答案告诉了小明

很多时候协议的设计都和我们的⽣活息息相关

信息技术源于⽣活,却⼜在⽆时不刻的影响着我们的⽣活

这就是我们在浏览器输⼊URL后的全部内容了

谢谢⼤家观看,我是up主黎明⾲菜

参考文献:https://segmentfault.com/a/1190000038526729

0 人点赞