DNS 是應用層協議,用於將域名轉換成 IP 地址。

1. 解析過程

DNS 的核心繫統是一個三層的樹狀、分散式服務,基本對應域名的結構。

  1. 根域名伺服器:管理頂級域名伺服器,返回 com、net、cn 等頂級域名伺服器的 IP 地址;
  2. 頂級域名伺服器:管理各自域名下的權威域名伺服器。例如 com 頂級域名伺服器可以返回  baidu.com 域名伺服器的 IP 地址;
  3. 權威域名伺服器:管理自己域名下主機的 IP 地址。比如 baidu.com 權威域名伺服器可以返回 www.baidu.com 的 IP 地址。

例如,要訪問 www.baidu.com,就要進行下面的過程:

1)瀏覽器快取:瀏覽器首先會再自己的快取中查詢是否有該域名對應的 IP 地址;
2)系統快取:如果瀏覽器快取中沒有的話,就會自動檢查本地 hosts 檔案內是否有該域名對應的 IP;

3)本地DNS伺服器:如果瀏覽器快取和系統快取都沒有相應的對映關係,首先會找TCP/IP引數中設定的首選DNS伺服器,在此我們叫它本地DNS伺服器。

4)根域名伺服器

5)頂級域名伺服器

6)權威域名伺服器

7)儲存結果至快取,同時將結果反饋給客戶端。

2. 遞迴查詢與迭代查詢

1)主機向本地域名伺服器的查詢採用的是遞迴查詢。

  如果主機詢問的本地域名伺服器不知道被查詢的域名的 IP 地址,那麼本地域名伺服器就向根域名伺服器發出查詢請求。

2)本地域名伺服器向根域名伺服器的查詢採用的是迭代查詢。

   1) 本地域名伺服器向根域名伺服器發出的查詢請求時,根域名伺服器把自己所知道的“com”頂級域名伺服器的的 IP 地址告訴本地域名伺服器;

  2) 本地域名伺服器再向“com”頂級域名伺服器發出查詢請求,頂級域名伺服器把自己所知道的“baidu.com”權威域名伺服器的 IP 地址告訴本地域名伺服器;

  3) 本地域名伺服器再向“baidu.com”權威域名伺服器發出請求,權威域名伺服器把www.baidu.com的 IP 地址告訴本地域名伺服器。
最後,本地域名伺服器把結果返回給主機。