01.23 當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

在上網時,如果網絡不通或網速很慢時,經常會聽到DNS這個詞,所以大家都會知道DNS肯定跟網絡有關,那DNS究竟是什麼?在我們上網時它是如何為我們工作的?一起來看看吧~

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

一、DNS其實就是個“翻譯”IP地址的服務器

DNS 的作用非常簡單,就是根據域名查出IP地址。你可以把它想象成一本巨大的電話本。

計算機在網絡上進行通訊時只能識別如“202.108.22.5”之類的IP地址,而不能認識域名(www.baidu.com)。

人類是無法記住10個以上IP地址的網址,所以我們訪問網站時,更多的是在瀏覽器地址欄中輸入域名,就能看到所需要的頁面,這是因為有一個叫“DNS服務器”的計算機自動把我們的域名“翻譯”成了相應的IP地址,然後調出IP地址所對應的網頁。

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

二、當你在瀏覽器輸入www.baidu.com時,DNS做了什麼?

DNS“翻譯”的過程又稱為DNS解析,它的解析過程並沒有我們想象的那麼簡單,該過程分為10個步驟,前2步是在本機完成的,後面是在DNS服務器完成:

  1. 你在瀏覽器輸入www.baidu.com,瀏覽器會先去檢查緩存中有沒有這個域名對應的IP地址,若有,解析過程就結束,可以去訪問網站了。
  2. 如果你的瀏覽器是新裝的,還沒有這個域名的緩存數據,瀏覽器會去操作系統的緩存中找是否有這個域名。

(操作系統中也有域名解析的過程:在Windows中可以通過C:WindowsSystem32driversetchosts文件來設置,在Linux中可以通過etchosts文件來設置)

如果正巧你的操作系統也是新裝的,那麼此時你輸入www.baidu.com會有以下這8步:

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

1.在操作系統的緩存中沒有該域名時,操作系統會把這個域名發送給一個名叫LDNS的DNS服務器,因為這個DNS服務器通常會在用戶所在城市的某個角落,所以取名為本地DNS服務器(local DNS)。

這個專門的DNS服務器性能都會很好,它們一般都會緩存域名解析結果,當然緩存時間是受到域名的失效時間控制的。大約80%的域名解析到這裡就結束了,所以LDNS主要承擔了域名的解析工作。

(查詢配置的DNS服務器:Windows環境下通過命令行輸入ipconfig,Linux環境下通過cat etcresolv.conf)

百度這個域名到這裡就結束了,但如果是其他域名,到這裡還沒有會怎麼辦呢?

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

2.如果LDNS仍然沒有命中,就直接到根域名服務器請求解析。

(這個根域名服務器全世界只有13臺,這13臺服務器是由美國授權的分配機構 ICANN 統一管理,負責全球互聯網域名根服務器、域名體系和IP地址等的管理)。

3.這個時候肯定能找到該域名了(除非沒有域名),此時根域名服務器返回給本地域名服務器一個所查詢的主域名服務器(gTLD Server)地址。

gTLD是國際頂級域名服務器,如.com、.cn、.org等,全球只有13臺左右。

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

4.本地域名服務器LDNS再向上一步返回的gTLD服務器發送請求

5.接受請求的gTLD服務器查找並返回此域名對應的Name Server域名服務器的地址,Name Server通常就是用戶註冊的域名服務器

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

6.LDNS 再向Name Server域名服務器請求IP地址,Name Server域名服務器會查詢存儲的域名和IP的映射關係表

7.在正常情況下都會得到目標IP地址,返回給LDNS

8.終於找到IP地址後,LDNS會把這個域名和IP地址的對應關係緩存在服務器內,並把結果返回給用戶。

三、最後再來說一下,很多人通過修改DNS來提高網速,這種方法真的可行嗎?

修改DNS會提速,但不要隨意修改。

當你在瀏覽器輸入www.baidu.com時,DNS為你做了什麼?

首先,如果默認自動獲取DNS服務器地址,是你採用運營商的本地DNS服務器,這個服務器速度很快,且會解析給你最近的IP地址來訪問。

其次,若修改了DNS,可能給你解析的IP地址不是最快的,比如你是電信的用戶解析給你一個聯通的IP,跨運營商訪問速度會比較慢。

當然也有一些通用的DNS服務器採用了智能解析功能,它的工作原理是根據你的源IP解析給你一個最快的訪問地址(解決多運營商解析和同一運營商不同地域解析問題,這是另一個話題了,這裡按下不表),比如比較火的谷歌DNS:8.8.8.8,阿里的DNS:223.5.5.5,但使用這些DNS提供方可能會收集用戶信息,或是嵌入一些廣告。

所以建議大家還是用自動獲取的吧。


分享到:


相關文章: