DNS解析全過程詳解

一、Chrome瀏覽器 會首先搜索瀏覽器自身的DNS緩存(緩存時間比較短,大概只有1分鐘,且只能容納1000條緩存),看自身的緩存中是否有www.linux178.com 對應的條目,並且沒有過時,若是有且沒有過時則解析到此結束。 注:咱們怎麼查看Chrome自身的緩存?可使用 chrome://net-internals/#dns 來進行查看linux

二、若是瀏覽器自身的緩存裏面沒有找到對應的條目,那麼Chrome會搜索操做系統自身的DNS緩存,若是找到且沒有過時則中止搜索解析到此結束. 注:怎麼查看操做系統自身的DNS緩存,以Windows系統爲例,能夠在命令行下使用 ipconfig /displaydns 來進行查看chrome

三、若是在Windows系統的DNS緩存也沒有找到,那麼嘗試讀取hosts文件(位於C:\Windows\System32\drivers\etc),看看這裏面有沒有該域名對應的IP地址,若是有則解析成功。瀏覽器

四、若是在hosts文件中也沒有找到對應的條目,瀏覽器就會發起一個DNS的系統調用,就會向本地配置的首選DNS服務器(通常是電信運營商提供的,也可使用像Google提供的DNS服務器)發起域名解析請求(經過的是UDP協議向DNS的53端口發起請求,這個請求是遞歸的請求,也就是運營商的DNS服務器必須得提供給咱們該域名的IP地址),運營商的DNS服務器首先查找自身的緩存,找到對應的條目,且沒有過時,則解析成功。若是沒有找到對應的條目,則有運營商的DNS代咱們的瀏覽器發起迭代DNS解析請求,它首先是會找根域的DNS的IP地址(這個DNS服務器都內置13臺根域的DNS的IP地址),找打根域的DNS地址,就會向其發起請求(請問www.linux178.com這個域名的IP地址是多少啊?),根域發現這是一個頂級域com域的一個域名,因而就告訴運營商的DNS我不知道這個域名的IP地址,可是我知道com域的IP地址,你去找它去,因而運營商的DNS就獲得了com域的IP地址,又向com域的IP地址發起了請求(請問www.linux178.com這個域名的IP地址是多少?),com域這臺服務器告訴運營商的DNS我不知道www.linux178.com這個域名的IP地址,可是我知道linux178.com這個域的DNS地址,你去找它去,因而運營商的DNS又向linux178.com這個域名的DNS地址(這個通常就是由域名註冊商提供的,像萬網,新網等)發起請求(請問www.linux178.com這個域名的IP地址是多少?),這個時候linux178.com域的DNS服務器一查,誒,果然在我這裏,因而就把找到的結果發送給運營商的DNS服務器,這個時候運營商的DNS服務器就拿到了www.linux178.com這個域名對應的IP地址,並返回給Windows系統內核,內核又把結果返回給瀏覽器,終於瀏覽器拿到了www.linux178.com對應的IP地址,該進行一步的動做了。緩存

注:通常狀況下是不會進行如下步驟的服務器

若是通過以上的4個步驟,尚未解析成功,那麼會進行以下步驟:操作系統

五、操做系統就會查找NetBIOS name Cache(NetBIOS名稱緩存,就存在客戶端電腦中的),那這個緩存有什麼東西呢?凡是最近一段時間內和我成功通信的計算機的計算機名和Ip地址,就都會存在這個緩存裏面。什麼狀況下該步能解析成功呢?就是該名稱正好是幾分鐘前和我成功通訊過,那麼這一步就能夠成功解析。命令行

六、若是第5步也沒有成功,那會查詢WINS 服務器(是NETBIOS名稱和IP地址對應的服務器)code

七、若是第6步也沒有查詢成功,那麼客戶端就要進行廣播查找遞歸

八、若是第7步也沒有成功,那麼客戶端就讀取LMHOSTS文件(和HOSTS文件同一個目錄下,寫法也同樣)dns

若是第八步尚未解析成功,那麼就宣告此次解析失敗,那就沒法跟目標計算機進行通訊。只要這八步中有一步能夠解析成功,那就能夠成功和目標計算機進行通訊。

相關文章
相關標籤/搜索