OS 遞迴查詢和迭代查詢理解

2021-09-01 19:24:04 字數 1879 閱讀 4526

注:部分內容參考自

一、網域名稱系統(dns)概述

網域名稱系統dns(domain name system)是網際網路使用的命名系統,用來把便於人們使用的機器名字轉換成為ip位址。為什麼不叫「名字」而叫「網域名稱」呢?這是因為在這種網際網路的命名系統中使用了許多的「域(domain)」,因此就出現了「網域名稱」這個名詞。「網域名稱系統」明確地指明這種系統是應用在網際網路中。

ip位址是由32位的二進位制數字組成的。使用者與網際網路上某台主機通訊時,顯然不願意使用很難記憶的長達32位的二進位制主機位址。即使是點分十進位制ip位址也並不太容易記憶。相反,大家願意使用比較容易記憶的主機名字。但是,機器在處理ip資料報時,並不是使用網域名稱而是使用ip位址。這是因為ip位址長度固定,而網域名稱的長度不固定,機器處理起來比較困難。

因為網際網路規模很大,所以整個網際網路只使用乙個網域名稱伺服器是不可行的。因此,早在2023年網際網路開始採用層次樹狀結構的命名方法,並使用分布式的網域名稱系統dns。並採用客戶伺服器方式。dns使大多數名字都在本地解析(resolve),僅有少量解析需要在網際網路上通訊,因此dns系統的效率很高。由於dns是分布式系統,即使單個計算機出了故障,也不會妨礙整個dns系統的正常執行。

當某乙個應用需要把主機名解析為ip位址時,該應用程序就呼叫解析程式,並稱為dns的乙個客戶,把待解析的網域名稱放在dns請求報文中,以udp使用者資料報方式發給本地網域名稱伺服器。本地網域名稱伺服器在查詢網域名稱後,把對應的ip位址放在回答報文中返回。應用程式獲得目的主機的ip位址後即可進行通訊。若本地網域名稱伺服器不能回答該請求,則此網域名稱伺服器就暫時稱為dns的另乙個客戶,並向其他網域名稱伺服器發出查詢請求。這種過程直至找到能夠回答該請求的網域名稱伺服器為止。此過程在後面作進一步討論。

二、網際網路的網域名稱結構

由於網際網路的使用者數量較多,所以網際網路在命名時採用的是層次樹狀結構的命名方法。任何乙個連線在網際網路上的主機或路由器,都有乙個唯一的層次結構的名字,即網域名稱(domain name)。這裡,「域」(domain)是名字空間中乙個可被管理的劃分。

從語法上講,每乙個網域名稱都是有標號(label)序列組成,而各標號之間用點(小數點)隔開。

三、網域名稱伺服器

頂級網域名稱伺服器:負責管理在該頂級網域名稱伺服器註冊的二級網域名稱。

許可權網域名稱伺服器:負責乙個「區」的網域名稱伺服器。

本地網域名稱伺服器:本地伺服器不屬於下圖的網域名稱伺服器的層次結構,但是它對網域名稱系統非常重要。當乙個主機發出dns查詢請求時,這個查詢請求報文就傳送給本地網域名稱伺服器。

四、網域名稱的解析過程

一、主機向本地網域名稱伺服器的查詢一般都是採用遞迴查詢。所謂遞迴查詢就是:如果主機所詢問的本地網域名稱伺服器不知道被查詢的網域名稱的ip位址,那麼本地網域名稱伺服器就以dns客戶的身份,向其它根網域名稱伺服器繼續發出查詢請求報文(即替主機繼續查詢),而不是讓主機自己進行下一步查詢。因此,遞迴查詢返回的查詢結果或者是所要查詢的ip位址,或者是報錯,表示無法查詢到所需的ip位址。

二、本地網域名稱伺服器向根網域名稱伺服器的查詢的迭代查詢。迭代查詢的特點:當根網域名稱伺服器收到本地網域名稱伺服器發出的迭代查詢請求報文時,要麼給出所要查詢的ip位址,要麼告訴本地伺服器:「你下一步應當向哪乙個網域名稱伺服器進行查詢」。然後讓本地伺服器進行後續的查詢。根網域名稱伺服器通常是把自己知道的頂級網域名稱伺服器的ip位址告訴本地網域名稱伺服器,讓本地網域名稱伺服器再向頂級網域名稱伺服器查詢。頂級網域名稱伺服器在收到本地網域名稱伺服器的查詢請求後,要麼給出所要查詢的ip位址,要麼告訴本地伺服器下一步應當向哪乙個許可權網域名稱伺服器進行查詢。最後,知道了所要解析的ip位址或報錯,然後把這個結果返回給發起查詢的主機。

dns迭代查詢和遞迴查詢

遞迴查詢 返回的結果必須是 所查網域名稱和對應ip的對映關係 或者 查詢未果 迭代查詢 返回的結果可以是其他dns伺服器的ip 遞迴查詢和迭代查詢另乙個區別是每次做查詢的時候 發起查詢的 角色不同 對於遞迴查詢,一般是本地的客戶端,本地的客戶端檢視本地hosts檔案或者快取未找到後,會向本地dns伺...

DNS的遞迴查詢和迭代查詢

1 遞迴查詢 遞迴查詢是一種dns 伺服器的查詢模式,在該模式下dns 伺服器接收到客戶機請求,必須使用乙個準確的查詢結果回覆客戶機。如果dns 伺服器本地沒有儲存查詢dns 資訊,那麼該伺服器會詢問其他伺服器,並將返回的查詢結果提交給客戶機。客戶機和伺服器之間的查詢是遞迴查詢 是遞迴查詢告訴客戶機...

DNS遞迴查詢與迭代查詢

注 一般tcp ip的應用層或者osi的會話 表示 應用層把資料稱為資料或者資訊,到了傳輸層把資料稱為報文,到了最底層就是位元流了也就是位元組流 1.網域名稱系統 2.網域名稱伺服器 1.在瀏覽器中輸入www.qq.com網域名稱,作業系統會先檢查自己本地的hosts檔案是否有這個 對映關係,如果有...