網域名稱系統DNS

2021-10-19 04:30:16 字數 2383 閱讀 3829

參考部落格:

很早之前,整個網路上只有數百台計算機,那時使用乙個叫做hosts的檔案,列出所有主機名字和相應的ip位址。只要使用者輸入乙個主機名字,

計算機就可很快地把這個主機名字轉換成機器能夠識別的二進位制ip位址。

網際網路的網域名稱系統dns被設計成為乙個聯機分布式資料庫系統,並採用客戶-伺服器方式。dns使大多數名字都在本地進行解析,僅少量解析需要在網際網路上通訊,

因此dns系統的效率很高。由於dns是分布式系統,即使單個計算機出了故障,也不會妨礙整個dns系統的正常執行。

網域名稱到ip位址的解析是由分布在網際網路上的許多網域名稱伺服器程式(可簡稱為網域名稱伺服器)共同完成。

把代解析的網域名稱放在dns請求報文中,以udp使用者資料報方式傳送給本地網域名稱伺服器(使用udp是為了減少開銷)。本地網域名稱伺服器在查詢網域名稱後,

把對應的ip位址放在回答報文中返回。應用程序獲得目的主機的ip位址後即可進行通訊。若本地網域名稱伺服器不能回答該請求,則此網域名稱伺服器就暫時

成為dns中的另乙個客戶,並向其他網域名稱伺服器發出查詢請求。這個過程直至找到能夠回答該請求的網域名稱伺服器為止。

如果說arp協議是用來將ip位址轉換為mac位址,那麼dns協議則是用來將網域名稱轉換為ip位址(也可以將ip位址轉換為相應的網域名稱位址)。

網域名稱系統dns是網際網路的一項服務,它作為將網域名稱和ip位址相互對映的乙個分布式資料庫,能夠使人們更方便地訪問網際網路。

internet上當一台主機要訪問另外一台主機時,必須首先獲知其位址,ip位址是由四段以「.」分開的數字組成(此處以ipv4的位址為例,ipv6的位址同理),記起來總是不如名字那麼方便,所以,就採用了網域名稱系統來管理名字和ip的對應關係。

ipv4是32位,ipv6是128位

hosts檔案

網域名稱和ip的對應關係儲存在乙個叫hosts檔案中。

最初,通過網際網路資訊中心來管理這個檔案,如果有乙個新的計算機想接入網路,或者某個計算ip變更都需要到資訊中心申請變更hosts檔案。其他計算機也需要定期更新,才能上網。

但是這樣太麻煩了,就出現了dns系統。

網域名稱是分層結構,網域名稱伺服器也是對應的層級結構。

有了網域名稱結構,還需要有乙個東西去解析網域名稱,網域名稱需要由遍及全世界的網域名稱伺服器去解析,網域名稱伺服器實際上就是裝有網域名稱系統的主機。

由高向低進行層次劃分,可分為以下幾大類:

分類作用

根網域名稱伺服器

最高層次的網域名稱伺服器,本地網域名稱伺服器解析不了的網域名稱就會向其求助

頂級網域名稱伺服器

負責管理在該頂級網域名稱伺服器下註冊的二級網域名稱

許可權網域名稱伺服器

負責乙個區的網域名稱解析工作

本地網域名稱伺服器

當乙個主機發出dns查詢請求時,這個查詢請求首先發給本地網域名稱伺服器

我們需要注意的是:

1. 每個層的網域名稱上都有自己的網域名稱伺服器,最頂層的是根網域名稱伺服器

2. 每一級網域名稱伺服器都知道下級網域名稱伺服器的ip位址

3. 為了容災, 每一級至少設定兩個或以上的網域名稱伺服器

網域名稱解析過程:

網域名稱解析總體可分為一下過程:

(1) 輸入網域名稱後, 先查詢自己主機對應的網域名稱伺服器,網域名稱伺服器先查詢自己的資料庫中的資料.

(2) 如果沒有, 就向上級網域名稱伺服器進行查詢, 依次類推

(3) 最多回溯到根網域名稱伺服器, 肯定能找到這個網域名稱的ip位址

(4) 網域名稱伺服器自身也會進行一些快取, 把曾經訪問過的網域名稱和對應的ip位址快取起來, 可以加速查詢過程

具體可描述如下:

1. 主機先向本地網域名稱伺服器進行遞迴查詢

2. 本地網域名稱伺服器採用迭代查詢,向乙個根網域名稱伺服器進行查詢

3. 根網域名稱伺服器告訴本地網域名稱伺服器,下一次應該查詢的頂級網域名稱伺服器的ip位址

4. 本地網域名稱伺服器向頂級網域名稱伺服器進行查詢

5. 頂級網域名稱伺服器告訴本地網域名稱伺服器,下一步查詢許可權伺服器的ip位址

6. 本地網域名稱伺服器向許可權伺服器進行查詢

7. 許可權伺服器告訴本地網域名稱伺服器所查詢的主機的ip位址

8. 本地網域名稱伺服器最後把查詢結果告訴主機

上文我們提出了兩個概念:遞迴查詢和迭代查詢

(1)遞迴查詢:本機向本地網域名稱伺服器發出一次查詢請求,就靜待最終的結果。如果本地網域名稱伺服器無法解析,自己會以dns客戶機的身份向其它網域名稱伺服器查詢,直到得到最終的ip位址告訴本機

(2)迭代查詢:本地網域名稱伺服器向根網域名稱伺服器查詢,根網域名稱伺服器告訴它下一步到**去查詢,然後它再去查,每次它都是以客戶機的身份去各個伺服器查詢。

通俗地說,遞迴就是把一件事情交給別人,如果事情沒有辦完,哪怕已經辦了很多,都不要把結果告訴我,我要的是你的最終結果,而不是中間結果;如果你沒辦完,請你找別人辦完。

迭代則是我交給你一件事,你能辦多少就告訴我你辦了多少,然後剩下的事情就由我來辦。

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伺服器按層次結構進行組織,且這個組織和網域名稱的結構相對應,網域...