DNS 與命名

遞迴查詢(recursive query)

遞迴查詢就是那種「你問一個問題、要求一個最終答案」的查詢——你不必做功課。它像打電話給一位能幹的禮賓員說「直接幫我弄到位址;別回電給我、叫我去找別的可能知道的人」。你向解析器要 www.example.com,你期待的是位址、或乾脆的失敗,而不是一串要你自己去追的線索。

具體來說,當你的存根解析器送出一個遞迴查詢給遞迴解析器時,它設定一個「要求遞迴」的旗標,於是解析器扛起「找出答案」的全部責任。為了做到這點,解析器自己通常會對伺服器階層執行疊代查詢:它問根伺服器、被轉介到 TLD 伺服器、問它們、被轉介到區域的授權伺服器、問那台,最後收到位址。然後它把這單一個已解析的答案回傳給你。「遞迴」這個詞描述的是解析器對你承諾的服務(我會把整個答案弄到手),即使解析器是一步一步去跑腿的。

為什麼重要:遞迴正是讓 DNS 對一般用戶端毫不費力的關鍵——你的筆電維持笨而簡單,而一台強大、連線良好的解析器去做多步的追查並把結果快取起來供下次使用。關鍵對比是疊代解析:在遞迴查詢中,負擔落在你問的那台伺服器身上;在疊代查詢中,負擔留在你身上,得到必須自己跟進的轉介。多數用戶端使用遞迴;階層中伺服器之間的多數步驟則是疊代。

你的電腦送出一個遞迴查詢給它的解析器:請給 www.example.com 的位址。它等待,然後拿回剛好一樣東西——93.184.216.34——即使解析器在幕後得問三台不同的伺服器才生出這個答案。

問一個問題、得一個最終答案——伺服器扛起負擔。

遞迴與疊代講的是「誰扛負擔」,不是兩套無關的系統。遞迴解析器通常是靠著替你對階層執行疊代查詢,來完成你的遞迴查詢。

又称
recursionrecursive resolution遞迴查詢遞迴解析