官方解釋:DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布 式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。
通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。
通俗的講,我們更習慣於記住一個網站的名字,比如www.baidu.com,而不是記住它的ip地址,比如: 167.23.10.2。
將主機域名轉換為ip地址,屬於應用層協議,使用UDP傳輸。(DNS應用層協議,以前有個考官問過)
過程:
1) 當用戶輸入域名時,瀏覽器先檢查自己的緩存中是否有這個域名映射的ip地址,有,解析結束。
2)若沒命中,則檢查操作系統緩存(如Windows的hosts)中有沒有解析過的結果,有,解析結束。
3)若無命中,則請求本地域名服務器解析( LDNS)。
4)若LDNS沒有命中就直接跳到根域名服務器請求解析。根域名服務器返回給LDNS一個主域名服務器地址。
5) 此時LDNS再發送請求給上一步返回的gTLD( 通用頂級域), 接受請求的gTLD查找並返回這個域名對應的Name Server的地址
6) Name Server根據映射關系表找到目標ip,返回給LDNS
7) LDNS緩存這個域名和對應的ip, 把解析的結果返回給用戶,用戶根據TTL值緩存到本地系統緩存 中,域名解析過程至此結束
一、主機向本地域名服務器的查詢一般都是采用遞歸查詢。
二、本地域名服務器向根域名服務器的查詢的迭代查詢。
總結: 瀏覽器緩存,系統緩存,路由器緩存,IPS服務器緩存,根域名服務器緩存,頂級域名服務器緩 存,主域名服務器緩存。