為了保證網(wǎng)址的正常訪問,域名解析協(xié)議(DNS)其實在背后做出了很多努力,本" />

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

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營銷資訊 > 建站知識 > 超詳細 DNS 協(xié)議解析

超詳細 DNS 協(xié)議解析

時間:2023-02-02 14:52:02 | 來源:建站知識

時間:2023-02-02 14:52:02 來源:建站知識

為了保證網(wǎng)址的正常訪問,域名解析協(xié)議(DNS)其實在背后做出了很多努力,本文將透徹講解 DNS 協(xié)議的原理,了解我們每天都在接觸的網(wǎng)址到底是怎么工作的。

為了保證網(wǎng)址的正常訪問,域名解析協(xié)議(DNS)其實在背后做出了很多努力,本文將透徹講解 DNS 協(xié)議的原理,了解我們每天都在接觸的網(wǎng)址到底是怎么工作的。




1. 什么是 DNS 協(xié)議

在學(xué)習(xí) DNS 協(xié)議之前,我們先區(qū)分一下域名和 IP 地址這個兩個概念:

不知道有沒有同學(xué)會混淆域名和網(wǎng)址的概念,可以這樣理解,網(wǎng)址里面含有域名。舉個例子:www.gitee.com/veal98 就是一個網(wǎng)址,而 www.gitee.com 就是域名
由于 IP 地址具有不方便記憶并且不能顯示地址組織的名稱和性質(zhì)等缺點,人們設(shè)計出了域名,并通過域名解析協(xié)議(DNS,Domain Name System)來將域名和 IP 地址相互映射,使人更方便地訪問互聯(lián)網(wǎng),而不用去記住能夠被機器直接讀取的 IP 地址數(shù)串。將域名映射成 IP 地址稱為正向解析,將 IP 地址映射成域名稱為反向解析。

???? DNS 協(xié)議可以使用 UDP 或者 TCP 進行傳輸,使用的端口號都為 53。但大多數(shù)情況下 DNS 都使用 UDP 進行傳輸。

2. 域名詳解

? 那么域名由誰來規(guī)定和管理呢?不能是隨便寫吧?

全世界域名的最高管理機構(gòu),是一個叫做 ICANN (Internet Corporation for Assigned Names and Numbers)的組織,總部在美國加州。ICANN 負責(zé)管理全世界域名系統(tǒng)的運作。







域名其實是具有一定的層次結(jié)構(gòu)的,從上到下依次為:根域名頂級域名(top level domain,TLD)、二級域名、(三級域名)







① 頂級域名

先來講講頂級域名(TLD),即最高層級的域名。簡單說,就是網(wǎng)址的最后一個部分。比如,網(wǎng)址www.baidu.com 的頂級域名就是 .com。ICANN 的一項主要工作,就是規(guī)定哪些字符串可以當作頂級域名。截至 2015 年 7 月,頂級域名共有 1058 個,它們大致可以分成兩類:

當然,ICANN 自己不會去管理這些頂級域名,因為根本管不過來。想想看,頂級域名有1000多個,每個頂級域名下面都有許多批發(fā)商,如果每個都要管,就太麻煩了。ICANN 的政策是,每個頂級域名都找一個托管商,該域名的所有事項都由托管商負責(zé)。ICANN 只與托管商聯(lián)系,這樣管理起來就容易多了。舉例來說,.cn 國家頂級域名的托管商就是中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC),它決定了 .cn 域名的各種政策。

② 二級域名

二級域名(Second Level Domain,SLD) 在通用頂級域名或國家頂級域名之下具有不同的意義:

三級域名是形如 www.baidu.com 的域名,可以當做是二級域名的子域名,特征為域名包含兩個 .。對于域名所有者/使用者而言,三級域名都是二級域名的附屬物而無需單獨費用。三級域名甚至不能稱為域名,一般稱之為域名下的 “二級目錄”。

③ 根域名

? 那么根域名在哪里呢?在層次結(jié)構(gòu)中根域名不是最頂級的嗎?域名中怎么沒有看見它?

由于 ICANN 管理著所有的頂級域名,所以它是最高一級的域名節(jié)點,被稱為根域名(root domain)。在有些場合,www.xxx.com 被寫成 www.xxx.com.,即最后還會多出一個點。這個點就是根域名。







理論上,所有域名的查詢都必須先查詢根域名,因為只有根域名才能告訴你,某個頂級域名由哪臺服務(wù)器管理。事實上也確實如此,ICANN 維護著一張列表(根域名列表),里面記載著頂級域名和對應(yīng)的托管商。







比如,我要訪問abc.xyz,也必須先去詢問根域名列表,它會告訴我 .xyz 域名由 CentralNic 公司托管。根域名列表還記載,.google由谷歌公司托管,.apple由蘋果公司托管等等。

由于根域名列表很少變化,大多數(shù) DNS 服務(wù)商都會提供它的緩存,所以根域名的查詢事實上不是那么頻繁。

3. 域名服務(wù)器詳解

域名服務(wù)器是指管理域名的主機和相應(yīng)的軟件,它可以管理所在分層的域的相關(guān)信息。一個域名服務(wù)器所負責(zé)管里的分層叫作 區(qū) (ZONE)。域名的每層都設(shè)有一個域名服務(wù)器:

下面這幅圖就很直觀了:







除了上面三種 DNS 服務(wù)器,還有一種不在 DNS 層次結(jié)構(gòu)之中,但是很重要的 DNS 服務(wù)器,即本地域名服務(wù)器。下面我們分別講解這四種服務(wù)器都是用來干什么的 ????

① 根域名服務(wù)器

上面我們提到,ICANN 維護著一張根域名列表,里面記載著頂級域名和對應(yīng)的托管商,其實根域名列表的正式名稱是 DNS 根區(qū)(DNS root zone),保存 DNS 根區(qū)文件的服務(wù)器,就叫做 DNS 根域名服務(wù)器(root name server)。根域名服務(wù)器保存所有的頂級域名服務(wù)器的地址

由于早期的 DNS 查詢結(jié)果是一個 512 字節(jié)的 UDP 數(shù)據(jù)包。這個包最多可以容納 13 個服務(wù)器的地址,因此就規(guī)定全世界有 13 個根域名服務(wù)器,編號從 a.root-servers.net 一直到 m.root-servers.net。其中 10 臺設(shè)置在美國,另外各有一臺設(shè)置于荷蘭、瑞典和日本。

前面我們說過,理論上所有域名的查詢都必須先查詢根域名,所以一般來說所有的域名服務(wù)器都會注冊一份根域名服務(wù)器的 IP 地址的緩存,用于在必要的時候向其發(fā)送請求。

② 頂級域名服務(wù)器

按照根域名服務(wù)器管理頂級域名的邏輯,頂級域名服務(wù)器顯然就是用來管理注冊在該頂級域名下的所有二級域名的,記錄這些二級域名的 IP 地址。

③ 權(quán)限域名服務(wù)器

按照上面的邏輯,權(quán)限域名服務(wù)器應(yīng)該是管理注冊在二級域名下的所有三/四級域名的,但其實不是這樣,如果一個二級域名或者一個三/四級域名對應(yīng)一個域名服務(wù)器,則域名服務(wù)器數(shù)量會很多,我們需要使用劃分區(qū)的辦法來解決這個問題。那么權(quán)限域名服務(wù)器就是負責(zé)管理一個“區(qū)”的域名服務(wù)器。

? 什么是區(qū)?怎樣劃分區(qū)呢?

區(qū)和域其實是不同的,區(qū)可以有多種不同的劃分方法。以百度為例,我們假設(shè)有 fanyi.baidu.com、ai.baidu.com、tieba.baidu.com 這三個三級域名。我們可以這樣分區(qū),fanyi.baidu.comtieba.baidu.com 放在 baidu.com 權(quán)限域名服務(wù)器,ai.baidu.com 放在 ai.baidu.com 權(quán)限域名服務(wù)器中。并且 baidu.com 權(quán)限域名服務(wù)器和 ai.baidu.com 權(quán)限域名服務(wù)器是同等地位的,而具體怎么分區(qū)是百度公司根據(jù)域名多少、訪問多少等情況去自己規(guī)定的。

畫個圖直觀理解一下:







④ 本地域名服務(wù)器

除了上面三種 DNS 服務(wù)器,還有一種不在 DNS 層次結(jié)構(gòu)之中,但是很重要的 DNS 服務(wù)器,就是本地域名服務(wù)器(也被稱為權(quán)威域名服務(wù)器)。本地域名服務(wù)器是電腦解析時的默認域名服務(wù)器,即電腦中設(shè)置的首選 DNS 服務(wù)器和備選 DNS 服務(wù)器。常見的有電信、聯(lián)通、谷歌、阿里等的本地 DNS 服務(wù)。




每個因特網(wǎng)服務(wù)提供者或一所大學(xué),甚至一所大學(xué)中的各個系,都可以擁有一個本地域名服務(wù)器。當一臺主機發(fā)出 DNS 查詢請求時,這個查詢請求報文就發(fā)送給該主機的本地域名服務(wù)器本地域名服務(wù)器管理本地域名的解析和映射,并且能夠向上級域名服務(wù)器進行查詢

那么具體本地域名服務(wù)器是如何向上級域名服務(wù)器轉(zhuǎn)發(fā)查詢請求的呢?

4. DNS 查詢方式

具體 DNS 查詢的方式有兩種:

所謂迭代就是,如果請求的接收者不知道所請求的內(nèi)容,那么接收者將扮演請求者,發(fā)出有關(guān)請求,直到獲得所需要的內(nèi)容,然后將內(nèi)容返回給最初的請求者。

???? 通俗點來說,在遞歸查詢中,如果 A 請求 B,那么 B 作為請求的接收者一定要給 A 想要的答案;而迭代查詢則是指,如果接收者 B 沒有請求者 A 所需要的準確內(nèi)容,接收者 B 將告訴請求者 A,如何去獲得這個內(nèi)容,但是自己并不去發(fā)出請求。

一般來說,域名服務(wù)器之間的查詢使用迭代查詢方式,以免根域名服務(wù)器的壓力過大。通過下面這兩個圖就能很好的理解了 ????

1)遞歸查詢:

2)迭代查詢:

5. 域名緩存

上面講解的是域名服務(wù)器之間的 DNS 查詢請求過程,但實際上,每個時刻都有無數(shù)網(wǎng)民要上網(wǎng),那每次都去訪問本地域名服務(wù)器去獲取 IP 地址顯然是不實際的。解決方法就是使用緩存保存域名和 IP 地址的映射。

計算機中 DNS 記錄在本地有兩種緩存方式:瀏覽器緩存和操作系統(tǒng)緩存。

1)瀏覽器緩存:瀏覽器在獲取網(wǎng)站域名的實際 IP 地址后會對其進行緩存,減少網(wǎng)絡(luò)請求的損耗。每種瀏覽器都有一個固定的 DNS 緩存時間,如 Chrome 的過期時間是 1 分鐘,在這個期限內(nèi)不會重新請求 DNS

2)操作系統(tǒng)緩存:操作系統(tǒng)的緩存其實是用戶自己配置的 hosts 文件。比如 Windows10 下的 hosts 文件存放在 C:/Windows/System32/drivers/etc/hosts




Windows 系統(tǒng)默認開啟 DNS 緩存服務(wù),服務(wù)名是 DNSClient,可以緩存一些常用的域名。

使用命令 ipconfig/displaydns 可以查看電腦中緩存的域名。




? 在瀏覽器中進行訪問的時候,會優(yōu)先查詢?yōu)g覽器緩存,如果未命中則繼續(xù)查詢操作系統(tǒng)緩存,最后再查詢本地域名服務(wù)器,然后本地域名服務(wù)器會遞歸的查找域名記錄,最后返回結(jié)果。主機和本地域名服務(wù)器之間的查詢方式是遞歸查詢,也就是說主機請求本地域名服務(wù)器,那么本地域名服務(wù)器作為請求的接收者一定要給主機想要的答案。

6. 完整域名解析過程

OK,將我們上面所說的域名服務(wù)器之間的 DNS 查詢請求過程和域名緩存結(jié)合起來,就是一個完整的 DNS 協(xié)議進行域名解析的過程。這里我們以正向解析為例(域名解析成 IP 地址):

1)首先搜索瀏覽器的 DNS 緩存,緩存中維護一張域名與 IP 地址的對應(yīng)表;

2)若沒有命中,則繼續(xù)搜索操作系統(tǒng)的 DNS 緩存;

3)若仍然沒有命中,則操作系統(tǒng)將域名發(fā)送至本地域名服務(wù)器,本地域名服務(wù)器查詢自己的 DNS 緩存,查找成功則返回結(jié)果(注意:主機和本地域名服務(wù)器之間的查詢方式是遞歸查詢);

4)若本地域名服務(wù)器的 DNS 緩存沒有命中,則本地域名服務(wù)器向上級域名服務(wù)器進行查詢,通過以下方式進行迭代查詢(注意:本地域名服務(wù)器和其他域名服務(wù)器之間的查詢方式是迭代查詢,防止根域名服務(wù)器壓力過大):

4)本地域名服務(wù)器將得到的 IP 地址返回給操作系統(tǒng),同時自己將 IP 地址緩存起來

5)操作系統(tǒng)將 IP 地址返回給瀏覽器,同時自己也將 IP 地址緩存起來

6)至此,瀏覽器就得到了域名對應(yīng)的 IP 地址,并將 IP 地址緩存起來

配合下圖直觀理解:



關(guān)鍵詞:協(xié)議,詳細

74
73
25
news

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

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