DNS 是應用層協議,用於將域名轉換成 IP 地址。
1. 解析過程
DNS 的核心繫統是一個三層的樹狀、分散式服務,基本對應域名的結構。
- 根域名伺服器:管理頂級域名伺服器,返回 com、net、cn 等頂級域名伺服器的 IP 地址;
- 頂級域名伺服器:管理各自域名下的權威域名伺服器。例如 com 頂級域名伺服器可以返回 baidu.com 域名伺服器的 IP 地址;
- 權威域名伺服器:管理自己域名下主機的 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 地址告訴本地域名伺服器。
最後,本地域名伺服器把結果返回給主機。