百度公共DNS之域名查詢過程
以用戶在瀏覽器輸入szjicheng.cn為例,我們詳細說明一下實際域名查詢過程:
1. 用戶輸入szjicheng.cn,瀏覽器調用操作系統resolver發起域名查詢,此處不考慮瀏覽器的(de)域名緩存;resolver封(feng)裝一個dns請求報文,并將(jiang)其(qi)發給運(yun)營商分配的(de)local dns地(di)址(或者用戶(hu)自己(ji)配置的(de)公共dns);
2. local dns查(cha)詢緩存,如果命中則(ze)返回響(xiang)應結果;否則(ze)向根服務器發起查(cha)詢;
3. 根服務器(qi)返(fan)(fan)回com地址。每一層(ceng)級(ji)的DNS服務器(qi)都(dou)有緩(huan)存(cun),實(shi)際都(dou)是先(xian)查緩(huan)存(cun),沒有緩(huan)存(cun)才返(fan)(fan)回下級(ji)域,此處不再重復;
4. local dns查(cha)詢com。com返回(hui)szjicheng.cn地址;
5. local dns查詢baidu.com,baidu.com返回www.baidu.com對應記錄(lu)結果(guo)。
理論上講域名查詢有兩種方式:
迭代查詢 A問B一個(ge)問題,B不知道答案說你可以問C,然(ran)后A再去(qu)問C,C推薦D,然(ran)后A繼續問D,如(ru)此迭(die)代…
遞歸查詢 A問(wen)B一個問(wen)題,B問(wen)C,C問(wen)D… 然(ran)后D告訴(su)C,C告訴(su)B,B告訴(su)A
上述過程中從resolver到遞(di)歸DNS再到根(gen)的查詢過程為(wei)遞(di)歸查詢,遞(di)歸DNS到根(gen)、到com、到baidu.com的過程為(wei)迭代查詢。
注意,遞歸查(cha)詢(xun)需要從系(xi)統(tong)層面來看,很難單(dan)純(chun)的說一臺(tai)DNS實現了遞歸查(cha)詢(xun)。
