DNS解析過程原理

百度發表於2013-07-14

  DNS解析原理及過程。

  當使用者訪問我們網站一個網頁時,他需要經過以下步驟:

  1)找到這個網頁的存放伺服器;

  2)伺服器將使用者的請求資訊接入;

  3)伺服器通過檔案路徑(URL)查詢使用者請求網頁;

  4)使用者將該網頁內容下載到自己電腦上。

  我們所講的DNS解析主要是第一個步驟,即讓使用者通過URL找到檔案存放的伺服器。

 1、為什麼要有DNS解析?

  讓使用者電腦和伺服器(網頁存放電腦)連線起來並不是靠域名進行,網路上計算機之間實現連線是通過每臺計算機在網路中擁有的惟一的IP地址來完成的。但IP地址並不便於記憶,這樣就需要在使用者容易記憶的地址和計算機能夠識別的地址之間有一個解析,使用者容易記憶的地址就是域名,而DNS伺服器便充當了將使用者請求的域名“翻譯”成相應IP地址以便於計算機之間相互連線的角色。

 2、DNS解析原理是什麼?

  DNS解析主要有遞迴查詢,就是在某個DNS伺服器快取中查詢不到相應的域名與IP地址對應關係時,自動跳轉到到下一步驟通過下一個DNS伺服器進行查詢。具體可見如下兩圖:

DNS解析過程原理

DNS解析原理過程

 3、DNS解析過程是什麼?

  DNS解析過程是重點也是難點,下面我按自己的理解一步步來解釋,可能有錯誤之處,歡迎指正。

  以下步驟中,將DNS快取中存在域名對應IP則DNS解析成功,使用者計算機將直接訪問伺服器,若DNS伺服器快取中不存在域名對應IP,則自動進入下一步。

  1) 瀏覽器快取

  當使用者通過瀏覽器訪問某域名時,瀏覽器首先會在自己的快取中查詢是否有該域名對應的IP地址(若曾經訪問過該域名且沒有清空快取便存在);

  2) 系統快取

  當瀏覽器快取中無域名對應IP則會自動檢查使用者計算機系統Hosts檔案DNS快取是否有該域名對應IP;

  3) 路由器快取

  當瀏覽器及系統快取中均無域名對應IP則進入路由器快取中檢查,以上三步均為客服端的DNS快取;

  4) ISP(網際網路服務提供商)DNS快取

  當在使用者客服端查詢不到域名對應IP地址,則將進入ISP DNS快取中進行查詢。比如你用的是電信的網路,則會進入電信的DNS快取伺服器中進行查詢;

  5) 根域名伺服器

  當以上均未完成,則進入根伺服器進行查詢。全球僅有13臺根域名伺服器,1個主根域名伺服器,其餘12為輔根域名伺服器。根域名收到請求後會檢視區域檔案記錄,若無則將其管轄範圍內頂級域名(如.com)伺服器IP告訴本地DNS伺服器;

  6) 頂級域名伺服器

  頂級域名伺服器收到請求後檢視區域檔案記錄,若無則將其管轄範圍內主域名伺服器的IP地址告訴本地DNS伺服器;

  7) 主域名伺服器

  主域名伺服器接受到請求後查詢自己的快取,如果沒有則進入下一級域名伺服器進行查詢,並重復該步驟直至找到正確紀錄;

  8)儲存結果至快取

  本地域名伺服器把返回的結果儲存到快取,以備下一次使用,同時將該結果反饋給客戶端,客戶端通過這個IP地址與web伺服器建立連結。

 4、DNS優化如何實現?

  一般域名商或伺服器商都會提供免費的DNS服務,然而,很多情況下這些免費的DNS伺服器速度較慢,故可做一定優化,具體可從以下幾方面:

  1)增加DNS伺服器數量

  減小伺服器壓力,當單位伺服器需要處理的DNS請求數量較少時速度會更快;

  2)全國多地分佈DNS伺服器

  使用者網路訪問速度跟使用者計算機到伺服器的距離有關,若可以讓使用者就近訪問所在省份的伺服器便可以加速DNS解析速度;

  3)識別使用者線路反饋相應線路IP

  當使用者網路線路跟伺服器網路線路一致時速度較快,而不一致時則較慢,如:使用者使用電信的線路但伺服器是聯通的線路,這樣就會造成使用者訪問網站速度下降,如果可以識別使用者訪問線路並反饋相應IP則會加速網站訪問。

相關文章