DNS 與命名

疊代查詢(iterative query)

疊代查詢是「自己動手」的風格:你問一台伺服器,它不給最終答案,而是給你它手上最好的轉介——去問他們。它像打電話到某辦公室,聽到「這裡不處理那件事,但試試另一個部門,這是他們的號碼」。你掛斷、打給下一個辦公室、再重複,直到有人終於有答案。每台伺服器帶你往前靠近一跳,但電話一直是你在打。

具體來說,這正是遞迴解析器在伺服器階層中導航的方式。解析器向根伺服器問 www.example.com;根不去解析它,而是回傳一個轉介——指向 .com 伺服器的 NS 記錄。解析器接著問一台 .com 伺服器,它把解析器轉介到 example.com 的授權伺服器。解析器問其中一台,那台對該區域有授權,最後回傳 A 記錄。每一步伺服器只回答它知道的,並交回一個指向下一層的轉介;驅動這個沿樹往下迴圈的是解析器,而非伺服器。

為什麼重要:疊代正是讓 DNS 上層伺服器保持快速且無狀態的關鍵。根伺服器或 TLD 伺服器要承接龐大的查詢量,所以它不能替每個來電卡在長長的追查裡——它給一個快速轉介就繼續處理下一個。這就是為什麼依慣例,根與 TLD 伺服器以疊代方式回答(只給轉介)並拒絕做遞迴。要分清的對比:疊代查詢把負擔放在發問者身上、要他跟進轉介;遞迴查詢把負擔放在伺服器身上、要它交出最終答案。

以疊代方式解析 info.example.org:問根伺服器 -> 它把你轉介到 .org 伺服器;問 .org 伺服器 -> 它把你轉介到 example.org 的授權伺服器;問其中一台 -> 它回傳位址。三次轉介,然後一個答案。

每台伺服器交回一個轉介;發問者繼續往下走。

根與 TLD 伺服器一般只做疊代——它們拒絕做完整的遞迴追查。這種刻意的拒絕,正是它們在龐大負載下保持快速的方式之一。

又称
iterationiterative resolutionnon-recursive query疊代查詢迭代查詢