標籤:src 命中 host 緩衝dns 時間 城市 linu lookup etc
一、網域名稱解析過程
1. 瀏覽器檢查自身緩衝,緩衝時間為幾分鐘到小時不等,通過設定TTL屬性確定。
2. 若1未找到,則查OS緩衝,如windows下的host檔案,linux的/etc/hosts檔案。
3. 查詢本地區名伺服器LDNS,即系統配置的DNS伺服器位址,一般為SPA(互連網應用供應商),即電信等,一般在你所在城市的某個角落。
4. 若LDNS未命中,則想RDNS(根網域名稱伺服器)發請求。
5. RDNS返回給LDNS一個所查詢域的主網域名稱伺服器(gTLD server)地址。gTLD是國際頂級網域名稱伺服器,如com.cn.org等,全球有13台左右。
6. LDNS向上一步返回的gTLD伺服器發請求。
7. gTLD伺服器尋找並返回對應的NameServer地址,這個地址通常是你註冊的網域名稱伺服器。
例如你在某個網域名稱服務 (DNS)供應商申請的網域名稱,那麼這個解析任務則由該網域名稱服務 (DNS)供應商負責。
8. Name Server查詢網域名稱與IP的對應關係,正常會返回一個IP地址與TTL給LDNS。
9. LDNS會緩衝這個結果和TTL(設定緩衝時間)。
10. 將結果返回給使用者,使用者作業系統根據TTL值,也將該記錄緩衝到系統,網域名稱解析結束。
二、跟蹤網域名稱解析過程
Linux下一般用dig,Windows下一般用nslookup。
三、清除網域名稱緩衝
1. windows下,ipconfig /flushdns
2. linux下,/etc/init.d/nscd restart
3. Java中,JVM會緩衝DNS結果,緩衝在InetAddress類中。有2種緩衝機制,一種緩衝正確,一種緩衝失敗的解析結果。
配置參數在 %JAVA_HOME%/lib/security/java.security中,配置項分別為networkaddress.cache.ttl和networkaddress.cache.negative.ttl,
預設值分別為-1(永不失效)和10(緩衝10秒)。
注意:使用InetAddress解析網域名稱時,一定要使用單例模式,因為每建立一次InetAddress類,都要進行一次完整的網域名稱解析過程,影響效率。
四、常用網域名稱解析方式
03--DNS知識