如何縮短網(wǎng)站域名的DNS解析時(shí)間
如何縮短網(wǎng)站域名的DNS 解析時(shí)間分類:網(wǎng)絡(luò)開發(fā) 作者:朱俊 發(fā)表評(píng)論如上圖所示,普通用戶打開一個(gè)網(wǎng)頁(yè)的時(shí)間主要由四部分組成:1. 網(wǎng)站域名通過(guò) DNS 服務(wù)器解析到IP 地址的時(shí)間2. 通過(guò)IP
如何縮短網(wǎng)站域名的DNS 解析時(shí)間
分類:網(wǎng)絡(luò)開發(fā) 作者:朱俊 發(fā)表評(píng)論

如上圖所示,普通用戶打開一個(gè)網(wǎng)頁(yè)的時(shí)間主要由四部分組成:
1. 網(wǎng)站域名通過(guò) DNS 服務(wù)器解析到IP 地址的時(shí)間
2. 通過(guò)IP 地址和服務(wù)器建立HTTP 連接的時(shí)間
3. 服務(wù)器接受連接請(qǐng)求后進(jìn)行計(jì)算的時(shí)間
4. 網(wǎng)頁(yè)內(nèi)容通過(guò)HTTP 協(xié)議傳輸?shù)接脩舻臅r(shí)間
在上圖中,DNS 域名解析時(shí)間占了整個(gè)訪問(wèn)時(shí)間的1/3強(qiáng),嚴(yán)重拖慢了用戶打開網(wǎng)頁(yè)的速度。
作為一個(gè)站長(zhǎng),一定希望自己網(wǎng)站的打開速度足夠快,以免訪問(wèn)者因?yàn)槭ツ托亩P(guān)閉瀏覽器。
本文將介紹如何縮短網(wǎng)站域名的DNS 解析時(shí)間,來(lái)讓訪問(wèn)者更快的打開你的網(wǎng)站。
一、域名的DNS 解析過(guò)程
將一個(gè)域名解析成IP 地址,主要由以下幾個(gè)步驟:
1. 將域名解析請(qǐng)求發(fā)送給本地的域名服務(wù)器 (DNS Server) 。
2. 域名服務(wù)器 (DNS Server) 收到請(qǐng)求后, 先查詢本地緩存, 如果有該域名的紀(jì)錄項(xiàng), 則直接返回目標(biāo)IP 地址。
,3. 如果本地緩存中沒有, 則直接發(fā)送請(qǐng)求給根域名服務(wù)器 (Root Name Server) 。
根域名服務(wù)器 (Root Name Server) 返回給本地域名服務(wù)器 (DNS Server) 一個(gè)所查詢域的主域名服務(wù)器 (gTLD Server) 地址。
4. 本地域名服務(wù)器 (DNS Server) 再向上一步返回的 TLD 服務(wù)器發(fā)送請(qǐng)求。
接受請(qǐng)求的 TLD 服務(wù)器查詢自己的緩存, 如果沒有該紀(jì)錄, 則返回相關(guān)的下級(jí)的域名服務(wù)器 (Name Server) 的地址。
5. 正常情況下 Name Server 會(huì)有相應(yīng)的記錄,并返回給 DNS Server 。
6. 本地 DNS Server 根據(jù)域名的TTL 值,把返回的結(jié)果保存到緩存, 同時(shí)將解析結(jié)果返回給客戶機(jī)。
二、縮短域名的DNS 解析時(shí)間
知道了域名的DNS 解析過(guò)程,就可以采取相應(yīng)的措施,縮短解析時(shí)間,我們所能影響和選擇的方面主要包括緩存、本地DNS Server和域名的Name Server。
1、增加域名的緩存命中率
如果訪問(wèn)者訪問(wèn)網(wǎng)站時(shí),域名在本機(jī)或當(dāng)?shù)氐腄NS Server緩存中,則可以大大加快該域名的解析時(shí)間。
以下方法可以增加域名在DNS Server中的緩存命中率:
提高網(wǎng)站的訪問(wèn)量。
網(wǎng)站的訪問(wèn)量越高,意味著網(wǎng)站域名被請(qǐng)求解析的次數(shù)越多,則該域名被DNS Server緩存的幾率就越大。
? 增加域名A 記錄和CName 的TTL (Time-To-Live) 值。
TTL 就是一條域名解析記錄在DNS Server中的存留時(shí)間和過(guò)期時(shí)間。增大TTL 值可以讓DNS Server緩存該域名更長(zhǎng)時(shí)間,增加緩存的命中率。TTL 一般默認(rèn)為一小時(shí),可以根據(jù)實(shí)際情況設(shè)為一天甚至一周以上。 當(dāng)然,如果你域名的IP 經(jīng)常變化,則TTL 不應(yīng)過(guò)大,否則各地的DNS Server 會(huì)暫時(shí)無(wú)法獲得新的正確的IP 地址。 ?
,下圖是兩個(gè)網(wǎng)站采用相同服務(wù)器、相同IP 、相同網(wǎng)頁(yè)內(nèi)容,不同的TTL 值在同一天內(nèi)的監(jiān)控結(jié)果。

圖一:TTL 設(shè)為一小時(shí)

圖二:TTL 設(shè)為一周
可以注意到,圖二中域名DNS 解析所花的時(shí)間可以忽略不計(jì),這就是域名A 記錄TTL 時(shí)間長(zhǎng),增加了緩存的命中率帶來(lái)的加速效果。
2、選擇更快的本地DNS Server
,一般而言,我們無(wú)法決定用戶使用何種DNS Server,大部分初級(jí)用戶使用的是本地ISP 自動(dòng)獲取的DNS Server ,部分用戶則使用第三方DNS Server 比如Open DNS 或者Google DNS。
不過(guò)你可以建議你的用戶使用Google DNS (8.8.8.8 和8.8.4.4) ,該DNS Server 會(huì)比電信或網(wǎng)通自動(dòng)獲取的DNS Server快許多。
3、選擇更快的域名Name Server
在域名的whois 信息中,我們可以看到域名的Name Server ,不同的Name Server 有不同的域名管理面板用來(lái)管理A 記錄和CName 等信息。
由于一般的站長(zhǎng)無(wú)法在全世界建立Name Server 的鏡像,所以我們只能選擇離目標(biāo)訪客物理距離近的Name Server以加快訪客的解析速度。
比如你的網(wǎng)站主要瀏覽量來(lái)自中國(guó),則你的Name Server 最好也在中國(guó)境內(nèi),最好是電信和網(wǎng)通雙線的。如果你的網(wǎng)站主要瀏覽量來(lái)自美國(guó),則你可以用Godaddy 的Name Server。
不過(guò)近年來(lái)宮信步勢(shì)大,大量域名都轉(zhuǎn)移至了國(guó)外,而國(guó)內(nèi)缺少免費(fèi)、穩(wěn)定的第三方Name Server,使得這個(gè)問(wèn)題很難解決。Godaddy 的免費(fèi)Name Server,國(guó)內(nèi)解析起來(lái)實(shí)在很慢,也許我們可以期待無(wú)所不能的Google 將來(lái)提供免費(fèi)的Name Server給我們。
三、結(jié)論
本文通過(guò)理解域名的DNS 解析過(guò)程,選擇我們所能影響的因素,采取對(duì)應(yīng)且免費(fèi)的措施來(lái)加快域名的DNS 解析時(shí)間,使得訪客有更快的打開速度和更好的用戶體驗(yàn)。