DNS是Internet上作為域名和IP地址相互映射的一個分布式數據庫,是用戶更方便的訪問Internet,而不用去記住那些IP地址。DNS在我們互聯網使用中有著非常重要的作用。首先我們來看看DNS是如何將域名轉化成IP地址供用戶訪問的,假如一個用戶在地址欄輸入例如www.baidu.com,DNS解析大概有10個過程:
①瀏覽器先檢查自身緩存中有沒有這個域名對應的IP地址,如果有,解析結束。
②如果瀏覽器緩存中沒有命中,瀏覽器會檢查自身操作系統緩存中有沒有相應的已經解析的過程。而且操作系統也有一個域名解析的過程。windows -> c盤 -> Windows -> System32 -> drivers -> etc -> hosts(如果在這里設置了一個域名對應的IP地址,那么瀏覽器就會首先使用這個IP地址,所以這種操作系統級別的域名解析通常會被黑客利用,通過修改你hosts文件里的內容把域名解析到他指定的ip地址上,造成所謂的域名劫持,所以將hosts文件設置成了只讀模式,防止被惡意篡改。)
③如果還沒有命中域名,這時才會真正的請求本地域名服務器(LDNS)來解析這個域名,這臺服務一般在你城市的某個角落,距離不會很遠,并且他的性能很好,一般都會緩存域名解析結果,大概80%的域名解析到這里都結束了。
④如果本地域名服務器還是沒有命中,就直接跳到Root Server域名服務器請求解析
⑤Root Server服務器返回給LDNS一個所查詢域的主域名服務器地址(gTLD Server)
⑥這時LDNS再發送請求給上一步返回的gTLD
⑦接受請求的gTLD查找并返回這個域名對應的Name Server的地址,這個Name Server就是網站注冊的域名服務器
⑧Name Server根據映射關系表找到目標IP,返回給LDNS
⑨LDNS緩存這個域名和對應的IP
⑩LDNS把解析的結果返回給用戶,用戶根據TTL值(一條域名解析記錄在DNS服務器的存留時間)緩存到本地系統緩存中,域名解析過程到此結束。
瀏覽器如何通過域名去查詢URL對應的IP地址?
從上面步驟中我們可以看到執行一次完整的 DNS 解析請求過程還是比較長的,一般耗時幾百毫秒至幾秒,如果每個客戶端都通過這樣的流程進行查詢,用戶體驗將非常糟糕。
因此,在靠近客戶端的位置,比如瀏覽器、客戶端本地、LocalDNS 等位置都設計了 DNS 緩存機制,并設置相應的緩存生效時間,即 TTL(Time To Live,生存時間值)。
在 TTL 時間范圍內,當 DNS 解析請求命中某一級的緩存時會直接將緩存結果返回客戶端。通過這種機制可以將解析時間縮減至數毫秒甚至微秒,減少解析域名的網絡延遲,緩解權威 DNS 服務器的負載壓力,但代價是一致性的犧牲。
DNS緩存
DNS存在著多級緩存,從離瀏覽器的距離排序的話,有以下幾種: 瀏覽器緩存,系統緩存,路由器緩存,IPS服務器緩存,根域名服務器緩存,頂級域名服務器緩存,主域名服務器緩存。
DNS負載均衡
互聯網用戶巨大的今天,假如億萬請求請求的資源都位于同一臺機器上面,那么這臺機器隨時可能會蹦掉。處理辦法就是用DNS負載均衡技術,它的原理是在DNS服務器中為同一個主機名配置多個IP地址,在應答DNS查詢時,DNS服務器對每個查詢將以DNS文件中主機記錄的IP地址按順序返回不同的解析結果,將客戶端的訪問引導到不同的機器上去,使得不同的客戶端訪問不同的服務器,從而達到負載均衡的目的?例如可以根據每臺機器的負載量,該機器離用戶地理位置的距離等等。
大家耳熟能詳的CDN(Content Delivery Network)就是利用DNS的重定向技術,DNS服務器會返回一個跟用戶最接近的點的IP地址給用戶,CDN節點的服務器負責響應用戶的請求,提供所需的內容。
域名頻道提供上海電信骨干機房的服務器托管和租用服務,價格在上海地區是非常實惠的。
服務器運行需要在一個不斷電、不斷網的環境中運行,但普通企業一般無法提供這一環境。
實現有效降低維護費用和機房設備投入、線路租用等高額費用。
上海電信機房標準型服務器租用促銷啦,租用獨立服務器送服務器產權,趕緊了解http://fascinatingdeals.com/server/