国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營(yíng)銷資訊 > 建站知識(shí) > 你的域名是如何變成 IP 地址的?

你的域名是如何變成 IP 地址的?

時(shí)間:2023-02-10 07:27:01 | 來源:建站知識(shí)

時(shí)間:2023-02-10 07:27:01 來源:建站知識(shí)

我的 個(gè)人網(wǎng)站 上線了,上面可以更好的檢索歷史文章,并且可以對(duì)文章進(jìn)行留言,歡迎大家訪問
可能大家都知道或者被問過一個(gè)問題,那就是很經(jīng)典的「從瀏覽器輸入 URL 再到頁面展示,都發(fā)生了什么」。這個(gè)問題雖然簡(jiǎn)單,但是真的能夠從回答的各種細(xì)節(jié)上看出不同人之間的水平差距。

這篇文章主要是聊一聊輸入 URL 之后的第一步——域名解析

域名就類似于 http://www.google.com,而通過 ping 命令,就可以查詢到對(duì)應(yīng)域名的 IP 地址了。

那為什么又要有域名,又要有 IP 呢?

域名、IP 共存

首先還是解釋一下,為什么會(huì)出現(xiàn)現(xiàn)在這種域名、IP 地址共存的情況。主要有兩個(gè)點(diǎn):

  1. 提升用戶體驗(yàn)
  2. 提高運(yùn)行效率
分別解釋一下,IP 地址長(zhǎng)度為 32 位,平時(shí)用十進(jìn)制來表示的話,就長(zhǎng)這樣——192.168.1.0 ,但是想象一下,如果我們要訪問某個(gè)網(wǎng)站需要讓我們輸入這么一長(zhǎng)串?dāng)?shù)字,體驗(yàn)肯定相當(dāng)差,首先記憶這么長(zhǎng)串?dāng)?shù)字對(duì)很多人來說就很痛苦,更何況我們常用的網(wǎng)站肯定不止一個(gè)。

除此之外,如果你給其他人推廣你的網(wǎng)站,你吧啦吧啦說了一大堆,然后來個(gè)「如果你感興趣,請(qǐng)?jiān)L問我們的網(wǎng)站 192.168.1.0」,然后就沒有然后了。

這也是為啥現(xiàn)在仍然在使用域名,方便人腦去記憶。

那為啥還需要 IP 地址呢?因?yàn)?IPv4 中的 IP 地址只需要 4 個(gè)字節(jié),而用字符串表示的域名最少也需要幾十個(gè)字節(jié),長(zhǎng)的甚至達(dá)到幾百字節(jié),而這會(huì)大大的增加底層路由器的負(fù)擔(dān)。

這也是為啥 IP 地址仍然在被使用。人來使用域名,而路由器層則使用 IP 地址,就跟我們書寫的是我們能認(rèn)識(shí)的字符,而最終計(jì)算機(jī)認(rèn)識(shí)的是一堆二進(jìn)制一樣。

DNS 解析

知道了這個(gè)背景之后,我們就可以來看看「域名」是如果變成「IP 地址」的。

首先我們知道,會(huì)往 DNS 服務(wù)器發(fā)送請(qǐng)求,那問題就來了,瀏覽器怎么知道 DNS 服務(wù)器的地址是啥?

答案是提前配置好的。當(dāng)然這不是唯一的方式,DNS 也有可能通過 DHCP(Dynamic Host Configuration Protocol) 動(dòng)態(tài)分配的。

例如,MacOS 中的 DNS 配置就長(zhǎng)下面這樣。

當(dāng)然,你也可以通過命令行來查看、修改,地址在 /etc/resolv.conf

有了 DNS 服務(wù)器,那么你可能會(huì)覺得,接下來的事情就很簡(jiǎn)單了:

我給你傳個(gè)域名,你返給我對(duì)應(yīng)的 IP 地址即可。那問題來了,現(xiàn)在互聯(lián)網(wǎng)中有數(shù)萬臺(tái)的 DNS 服務(wù)器,我怎么知道數(shù)據(jù)在哪臺(tái)服務(wù)器上?難道要一臺(tái)一臺(tái)的遍歷請(qǐng)求這數(shù)萬臺(tái)服務(wù)器嗎?

我相信你肯定沒有感知到在瀏覽器中輸入域名到頁面展示會(huì)花費(fèi)那么久,這也說明肯定不是一臺(tái)一臺(tái)服務(wù)器進(jìn)行遍歷的。

域名的組成

要了解 DNS 是如何對(duì)其進(jìn)行優(yōu)化的,我們需要先知道域名的組成部分??吹竭@,很可能你會(huì)這么想:

啥組成?不就是一堆字符串嗎?
實(shí)際上,域名是有由不同的組成的,每個(gè) . 隔開的部分就是一個(gè)。

這里舉個(gè)例子,假設(shè)我們分析的域名為 www.google.com ,從我們平時(shí)寫快遞的收貨地址的慣性思維來看,這個(gè)域的各個(gè)部分大小可能是這樣的:

www > google > com
但是實(shí)際上并不是這樣,而是:

. > com > google > www
你甚至發(fā)現(xiàn),最大的還是個(gè) . 。其實(shí)完整的域名應(yīng)該是 www.google.com.,. 代表根域,因?yàn)楦驅(qū)τ谒械挠蛎麃碚f,意義都一樣,所以平時(shí)我們都把最后的點(diǎn)給省略了。

每個(gè)域都有自己的專屬名詞:

. > com > google > www
根域 | 一級(jí)級(jí)域|二級(jí)域名|(子域名)|主機(jī)名
當(dāng)然,我們知道還可以針對(duì)二級(jí)域名再劃分子域名,類似于 mail.google.com。

所以看到這,你應(yīng)該能夠理解域名是由層次的這個(gè)概念了,我再舉個(gè)比較的通俗的例子。

com 公司的 google 部門的 www。https://mail.google.com/mail/u/0/#inbox

DNS 的分層

了解完域名的分層之后,DNS 是如何優(yōu)化域名解析的問題就迎刃而解了,那就是——分層。

DNS 服務(wù)器會(huì)將域名的數(shù)據(jù)分布式的存儲(chǔ)在各個(gè) DNS 服務(wù)器上,但是同一個(gè)域的數(shù)據(jù),會(huì)存儲(chǔ)在同一臺(tái) DNS 服務(wù)器上,同一臺(tái) DNS 服務(wù)器可以存儲(chǔ)多個(gè)域的數(shù)據(jù)。

這么說可能會(huì)有些抽象,一圖勝千言,其實(shí)就是這樣:

有了對(duì)數(shù)據(jù)的分層,那么查詢數(shù)據(jù)就會(huì)很有節(jié)奏感。

查詢域名數(shù)據(jù)

一圖勝千言,有了分層的機(jī)制,整個(gè)的查詢過程就會(huì)長(zhǎng)這樣:

首先會(huì)去配置的 DNS 服務(wù)器中查詢,這個(gè)其實(shí)一般都是本地或者內(nèi)網(wǎng)中的 DNS 服務(wù)器。如果沒有找到,就會(huì)去問根域要,說哥們,我這里需要 www.google.com 的 IP 地址。

根域一看,我這里沒有啊,但是我知道 com 域的 DNS 服務(wù)器地址,他可能知道。

然后 com 域的 DNS 服務(wù)器一看,www.google.com 的 IP 地址我也不知道,但是我知道 google.com 域的 DNS 服務(wù)器的地址,他可能知道,你再去問問他。

就這樣一路問下去,最終就能夠找到 www.google.com 所對(duì)應(yīng)的 IP 地址了。

根域名服務(wù)器

看了上面的流程,可能你還是會(huì)有點(diǎn)疑問。因?yàn)槿フ?DNS 服務(wù)器查詢 IP 地址時(shí),初始的 DNS 的服務(wù)器的 IP 地址是走的本地計(jì)算機(jī)的配置的。那在分層查詢時(shí),我怎么知道有哪些根服務(wù)器?以及我怎么知道這些根服務(wù)器的 IP 地址是啥?

答案是內(nèi)置。

我們的設(shè)備,或者說所有能上網(wǎng)的設(shè)備都會(huì)內(nèi)置根服務(wù)器的列表??偣灿?13 臺(tái)根 DNS 服務(wù)器,分別是[a-m].root-servers.net ,這些根服務(wù)器的地址根本不需要查詢就能直接獲取。

當(dāng)然,稍微想想也知道,13 臺(tái)服務(wù)器是很難扛住全球互聯(lián)網(wǎng)用戶的請(qǐng)求的,實(shí)際上對(duì)于這 13 臺(tái)服務(wù)器有很多的鏡像服務(wù)器。

眼見為實(shí)

說了這么多虛的概念,接下來我們通過 dig 命令來實(shí)際操作一下。

可以看到,在 QUESTION SECTION 下的完整域名是 www.google.com. 是帶了根域的,那后面的這個(gè) INA 又是啥意思呢?

這是因?yàn)?,在?DNS 服務(wù)器查詢請(qǐng)求的時(shí)候,需要三個(gè)參數(shù),分別是:

  1. 域名(例如 http://www.google.com)
  2. 網(wǎng)絡(luò)類型(Class 設(shè)計(jì)之初,考慮到了多種網(wǎng)絡(luò)并存的場(chǎng)景,但是目前實(shí)際上只有一種網(wǎng)絡(luò)——互聯(lián)網(wǎng),所以該參數(shù)的值一直都會(huì)為 —— IN
  3. 類型(例如 A 表示 IP 地址,而 MX 則表示郵件服務(wù)器的地址)
而在 ANSWER SECTION 中,則是 DNS 服務(wù)的響應(yīng)結(jié)果,上圖中顯示了總有 6 條 DNS 記錄,并且在后面返回了其對(duì)應(yīng)的 IP 地址。

而其中的 69 則是 TTL,單位是秒,代表了在 69 之內(nèi)都不用再次發(fā)送請(qǐng)求了。

最下面則是統(tǒng)計(jì)的信息,本次 DNS 查詢所話費(fèi)的時(shí)間,以及請(qǐng)求的 DNS 服務(wù)器的地址和端口。這個(gè)服務(wù)器地址是我們本機(jī)配置的 DNS 服務(wù)器的地址。

眼尖的可能發(fā)現(xiàn)了,上圖中根本沒有設(shè)計(jì)到對(duì)根服務(wù)器的請(qǐng)求。這是因?yàn)檫@個(gè)命令把這部分給省略掉了,我們可能通過加上 +trace 命令行參數(shù)來查看詳細(xì)的分級(jí)查詢過程。

這次我們以 www.36kr.com 來作為例子。

可以看到,上圖中列出了所有的根域名服務(wù)器,然后去找 com 域要,然后再找 36kr.com 域去要,最終是拿到了 www.36kr.com 的 IP 地址。

緩存機(jī)制

當(dāng)然,如果每次都從根服務(wù)器開始往下找,明顯是不合理的,因?yàn)橛蛎?IP 地址的對(duì)應(yīng)關(guān)系本來變動(dòng)的就不頻繁,所以 DNS 服務(wù)器是都會(huì)將結(jié)果緩存的。

并且,在下圖中:

我只寫了一個(gè) DNS 服務(wù)器中有同級(jí)別的域信息,但是實(shí)際上不同層級(jí)的域信息可能存在于同一個(gè) DNS 服務(wù)器,舉個(gè)例子,com 域和 google.com 域可能在同一臺(tái)機(jī)器上。

但是,這個(gè)緩存是有有效期的。如果在這個(gè)有效期內(nèi) DNS 數(shù)據(jù)發(fā)生了變化,那么緩存中的數(shù)據(jù)就會(huì)不正確,此時(shí)需要手動(dòng)的將 DNS 刪除。

微信搜索關(guān)注【SH的全棧筆記
如果你覺得這篇文章對(duì)你有幫助,還麻煩點(diǎn)個(gè)贊關(guān)個(gè)注,分個(gè)享,留個(gè)言。

關(guān)鍵詞:地址

74
73
25
news

版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉