什麼是網域名稱系統DNS

2021-08-19 08:53:20 字數 2796 閱讀 2333

我們知道使用者在與網際網路上的主機通訊時,必須知道對方的 ip 位址。但是每個 ip 位址都是由 32 位的二進位制組成,即使是十進位制的 ip 位址表示形式,使用者想要記住也是很難的一件事,況且網際網路有那麼多的主機。

網際網路中的主機通常不僅僅只有 ip 位址,還有對應的便於使用者記憶的主機名字,比如www.baidu.com/。產生於應用層上的網域名稱系統 nds(domain name system)就可以用來把網際網路上的主機名轉換成 ip 位址。

網際網路中的網域名稱系統 dns 被設計成乙個層次樹狀結構的聯機分布式資料庫系統,並且採取的是客戶伺服器的方式。dns 使大多數名字都在本地進行解析,只有少量的解析需要在網際網路通訊,因此效率很高。採取分布式的乙個好處是,即使單個計算機出了故障,也不會妨礙 dns 系統的正常執行。

網域名稱到 ip 位址的解析是通過許多分布在網際網路上的網域名稱伺服器完成的。解析的主要過程如下:當乙個主機中的程序需要把網域名稱解析為 ip 位址時,該程序就會呼叫解析程式,並成為 dns 的 乙個客戶,把待解析的網域名稱放在 dns 的請求報中,以udp 使用者資料報方式傳送給本地網域名稱伺服器。本地網域名稱伺服器在查詢網域名稱後,把對應的 ip 位址放在回答報文中返回。獲得 ip 位址的後主機即可進行通訊。

我們通過網域名稱樹的方式來檢視網域名稱的結構,可以看出來,它實際上是乙個倒過來的樹,最上面的是根,沒有對應的名字。因為根沒有名字,所以根下面的一級節點就是頂級網域名稱,往下同理。我們以www.baidu.com/為例,www是**網域名稱,baidu是二級網域名稱,com是頂級網域名稱,各級網域名稱之間通過.相連。每個網際網路上的主機網域名稱都對應乙個 ip 位址,並且這個網域名稱在網際網路中是唯一的

根據網域名稱伺服器所起到的作用,可以把網域名稱伺服器分為四種不同的型別。

3.1根網域名稱伺服器

根網域名稱伺服器(root name server)是最高層次的網域名稱伺服器,也是最重要的網域名稱伺服器,全球共設有 13 個根網域名稱伺服器。所有的根網域名稱伺服器都知道所有的頂級網域名稱伺服器的網域名稱和 ip 位址。當其他的網域名稱伺服器無法解析網域名稱時,會首先求助於根網域名稱伺服器。假如所有的根網域名稱伺服器都掛了,那麼整個網際網路的 dns 系統就無法工作了,因為採取的分布式結構,所以只要有一台能夠正常工作,網際網路的 dns 系統就不會受到影響。

3.2頂級網域名稱伺服器(tld)

頂級網域名稱伺服器(top-level-domain) 負責管理在該頂級網域名稱伺服器上註冊的所有二級網域名稱。當收到 dns 查詢請求時,就給出相應的回答。

3.3許可權網域名稱伺服器

它是負責乙個區的網域名稱伺服器,當乙個許可權網域名稱伺服器沒有給出最後的查詢結果時,就會告訴發出查詢請求的 dns 客戶,下一步應當查詢哪乙個許可權網域名稱伺服器。

3.4本地網域名稱伺服器

本地網域名稱伺服器(local name server)並不屬於上面圖示的伺服器層次結構,但是它在網域名稱服務系統卻發揮著至關重要的作用。當一台主機發出 dns 查詢請求時,這個查詢請求報文就會傳送給本地網域名稱伺服器。每乙個網際網路提供者,或者乙個大學,甚至小到乙個學院,都可以擁有一台本地網域名稱伺服器,這種網域名稱伺服器也被稱為預設網域名稱伺服器。我們本地網路服務連線的網域名稱伺服器指的就是本地網域名稱伺服器。

網域名稱解析查詢的方式有兩種:迭代查詢與遞迴查詢。

4.1迭代查詢

本地網域名稱伺服器向根網域名稱伺服器的查詢方式通常採取迭代查詢(iterative query)。迭代查詢有以下的特點:當根網域名稱伺服器收到本地網域名稱伺服器發出的迭代查詢請求報時,要麼給出所要查詢的 ip 位址,要麼告訴本地網域名稱伺服器:「我這裡沒有你要的查詢結果,你需要向哪一台網域名稱伺服器進行查詢」。然後本地網域名稱伺服器進行後續的查詢(不替代本地網域名稱伺服器)。

4.2遞迴查詢

主機向本地網域名稱伺服器的查詢一般都採用遞迴查詢(recursive query)。所謂的遞迴查詢就是:如果主機所詢問的本地網域名稱伺服器不知道被查出來的網域名稱的 ip 位址,那麼本地網域名稱伺服器就以 dns 客戶的身份,向其他根網域名稱伺服器繼續發出查詢請求報文(替代該主機繼續查詢),而不是主機自己進行下一步的查詢。因此,遞迴查詢返回的結果要麼是所查詢的 ip 位址,要麼報錯,表示無法查到所需要的 ip。

針對上面兩種方式,我們可以知道不管是遞迴查詢還是迭代查詢,都會傳送 8 個 udp 使用者資料報的報文。為了提高 dns 的查詢效率,減輕根網域名稱伺服器的負荷和 dns 資料報的查詢數量,在網域名稱伺服器中廣泛地使用了快取記憶體。快取記憶體用來存放最近查詢過的網域名稱以及從何處獲得網域名稱對映資訊的記錄。

假設我們要查詢www.baidu.com/網域名稱對應的 ip 位址,如果本地網域名稱伺服器上有該網域名稱對應的 ip 位址,那麼可以直接從本地網域名稱伺服器上獲得對應的 ip 位址,而不需要到根網域名稱伺服器上進行查詢。當本地網域名稱伺服器查詢不到 ip 位址時,本地網域名稱伺服器也可以不向根網域名稱伺服器傳送請求報文,而是直接向頂級網域名稱伺服器傳送查詢請求報文。

DNS網域名稱系統

前言 學過計算機網路的我們知道,整個 internet 網路就是乙個單一的 抽象的網路,各個主機通過全世界範圍內唯一的 32位識別符號 ip 位址來標識唯一性,很顯然,在網際網路中它們只能通過 ipip ip202.108.22.5 然而,當我們想要訪問的 變多,我們就不得不記住一串又一串長達 32...

DNS網域名稱系統

是網際網路使用的命名系統,用來把便於人們使用的機器名字轉換為ip位址。如果一台計算機上的dns服務出現了錯誤,就可能導致,internet雖然連線了,但是不能訪問網頁,但是qq可以上去。這是因為qq是直接訪問的是ip位址。劃分為根網域名稱,一級網域名稱,二級網域名稱等。根網域名稱就是乙個點.通常會省...

網域名稱系統DNS

網域名稱解析過程 不一定理解全部正確 dns 全稱為 domain name system 是乙個網域名稱解析系統,把網域名稱 www.baidu.com 解析為ip位址。所以,這個乙個系統,是乙個服務,需要有伺服器來跑這些服務。dns伺服器按層次結構進行組織,且這個組織和網域名稱的結構相對應,網域...