由於只要咱們輸入百度、騰訊、淘寶的名字,不管它們的服務器在哪裏,歷經多少輪查詢,咱們都能找到並訪問之。這就是計算機網絡中著名的域名系統DNS(Domain Name System),它能實現把一個網站的域名解析爲對應的IP地址。有了IP就能和目標創建鏈接。這一看似簡單的過程,卻隱含多個步驟和小概念。瀏覽器
下面你們一塊兒來動一動腦、掃一掃盲,當瀏覽器裏輸入http://www.baidu.com回車後,怎樣能解析到它的IP呢?緩存
a) 咱們會先檢查瀏覽器的緩存中有沒有http://www.baidu.com對應的IP地址服務器
b) 若是沒有,再檢查電腦操做系統的緩存中有沒有http://www.baidu.com的IP地址網絡
[小貼士] 通常來講,當電腦第一次成功訪問一個網站後,在必定時間內,瀏覽器或操做系統會緩存有它的IP地址(DNS解析記錄) 。網站
查看操做系統上已緩存的全部DNS解析記錄 (本例有2條):spa
Time To Live (TTL) 表示這條記錄還能緩存在操做系統內的剩餘時間。好比第一條,2119s後,它將再也不有效。操作系統
這時若是網站的IP發生變化,但咱們系統的DNS緩存未到期,這就會致使仍使用舊的IP去訪問而出錯。.net
因此這種狀況下,須要清除一把操做系統的DNS緩存:計算機網絡
c) 若是瀏覽器和操做系統的緩存都沒有http://www.baidu.com的IP記錄,咱們會接着檢查C:WindowsSystem32driversetc的hosts文件,由於這個文件能直接指定域名對應某個IP地址。orm
若是以上3步都沒找到對應的IP。恭喜~接下來咱們將正式進入請求域名服務器DNS(Domain Name Server)幫忙解析域名的階段了。。。
1. 電腦客戶端會發出一個DNS請求 (http://www.baidu.com的IP是啥啊) 給它的本地域名服務器 (本地DNS)。
本地域名服務器 (本地DNS) 是什麼鬼?咱們經過網絡屬性看一看↓↓↓
若是設置在左圖自動獲取模式下,本地DNS由你的網絡服務商(ISP) 如電信,移動等自動分配,它一般在你網絡商的某個機房。
若是設置在右圖,咱們將不服從ISP分配。明確指定用Google (8.8.8.8) 或者咱們國內網絡商(114.114.114.114) 提供的免費DNS服務器做爲這臺電腦鏈接的本地DNS。
[小貼士] 通常若是ISP提供的DNS出現問題而致使域名解析失敗不能訪問網頁時,咱們能夠按右圖手工定義本地DNS的地址。
2. 本地DNS收到來自客戶端的請求。你們能夠想象這臺服務器上緩存了一張各域名與之對應IP地址的大表格。若是能找到www.baidu.com,它直接就返回IP地址。若是沒有,本地DNS會去問他的老大哥Root:嗨,能告訴我http://www.baidu.com的IP地址嗎?
老大哥Root就是根域名服務器,它是最高層次的,全球共有13套。它不直接用於域名解析,但能指明一條道路。
3. Root DNS收到來自本地DNS的請求說:哦,http://www.baidu.com啊,這個域名是由.com區域管理,我給你我小弟Top的地址,你去問問他吧。
4. 本地DNS:Hi Top哥,你能告訴我http://www.baidu.com的IP地址嗎?
小弟Top其實就是頂級域名服務器 (好比.com, .net, .org…一級區域),它負責管理二級域名(好比baidu.com, qq.com...),因此它能提供一條更清晰的方向。
5. Top說:我給你負責http://www.baidu.com區域的權威人士小A的地址,你去問她應該能問到了。
6. 本地DNS:喂,小A,http://www.baidu.com對應的IP是啥呀?
小A就是baidu的權威域名服務器,它是域名解析結果的原出處。就通俗上「這個域名我說了算」的服務器。
7. 小A查詢後將對應的IP地址X.X.X.X告訴本地DNS
8-9. 本地DNS再將IP地址返回客戶端,客戶端和目標創建鏈接。
至此,咱們咱們完成了DNS的解析過程。總結一下,整個過程就是:
站在客戶電腦角度,這是一次DNS遞歸查詢過程,由於由本地DNS全權爲它效勞,它坐等結果便可;另外一種是DNS迭代查詢,它須要客戶端親歷親爲,各域名服務器只指明下一步方向。
PS~~最後一塊兒來享受一把一條命令獲取DNS解析的快感吧。好比咱們解析http://www.qq.com的IP地址
在命令結尾處加上IP地址,表示指定它做爲此次查詢的本地DNS
以上。
若是說網絡的本質是鏈接一切,那域名爲「一切」提供了身份標識,IP則爲「一切」提供了聯繫的可能。
現實生活不會由於我記住了你的名字,而再次相遇。但在網絡的世界,知道你的名字,已經是足矣。