應用層——域名系統DNS

域名系統 DNS (Domain Name System)是互聯網使用的命名系統,用來把便於人們使用的機器名字轉換爲 IP 地址。

域名到 IP 地址的解析過程的要點如下:當某一個應用進程需要把主機名解析爲 IP 地址時,該應用進程就調用解析程序(resolver), 併成爲 DNS 的一個客戶,把待解析的域名放在 DNS 請求報文中,以 UDP 用戶數據報方式發給本地域名服務器(使用 UDP 是爲了減少開銷)。本地域名服務器在查找域名後,把對應的 IP 地址放在回答報文中返回。應用進程獲得目的主機的 IP 地址後即可進行通信。

根據域名服務器所起的作用,可以把域名服務器劃分爲以下四種不同的類型:

  • 根域名服務器 (root name server): 根域名服務器是最高層次的域名服務器,也是最重要的域名服務器。所有的根域名服務器都知道所有的頂級域名服務器的域名和 IP 地址。根域名服務器是最重要的域名服務器,因爲不管是哪一個本地域名服務器,若要對互聯網上任何一個域名進行解析(即轉換爲 IP 地址),只要自己無法解析,就首先要求助於根域名服務器。
  • 頂級域名服務器(即 TLD 服務器):這些域名服務器負責管理在該頂級域名服務器註冊的所有二級域名。當收到 DNS 查詢請求時,就給出相應的回答(可能是最後的結果,也可能是下一步應當找的域名服務器的 IP 地址)。
  • 權限域名服務器:這就是前面已經講過的負責一個區的域名服務器。當一個權限域名服務器還不能給出最後的查詢回答時,就會告訴發出查詢請求的 DNS 客戶,下一步應當找哪一個權限域名服務器。
  • 本地域名服務器 (local name server):當一臺主機發出 DNS 查詢請求時,這個查詢請求報文就發送給本地域名服務器。

域名的解析過程:

  1. 主機向本地域名服務器的查詢一般都是採用遞歸查詢。所謂遞歸查詢就是:如果主機所詢問的本地域名服務器不知道被查詢域名的 IP 地址,那麼本地域名服務器就以 DNS 客戶的身份,向其他根域名服務器繼續發出查詢請求報文(即替該主機繼續查詢),而不是讓該主機自已進行下一步的查詢。因此,遞歸查詢返回的查詢結果或者是所要查詢的 IP 地址,或者是報錯,表示無法查詢到所需的 IP 地址。
  2. 本地域名服務器向根域名服務器的查詢通常是採用迭代查詢。迭代查詢的特點是這樣的:當根域名服務器收到本地域名服務器發出的迭代查詢請求報文時,要麼給出所要查詢的 IP 地址,要麼告訴本地域名服務器:“你下一步應當向哪一個域名服務器進行查詢”。然後讓本地域名服務器進行後續的查詢(而不是替本地域名服務器進行後續的查詢)。根域名服務器通常是把自已知道的頂級域名服務器的 IP 地址告訴本地域名服務器,讓本地域名服務器再向頂級域名服務器查詢。頂級域名服務器在收到本地域名服務器的查詢請求後,要麼給出所要查詢的 IP 地址,要麼告訴本地域名服務器下一步應當向哪一個權限域名服務器進行查詢,本地域名服務器就這樣進行迭代查詢。最後,知道了所要解析的域名的 IP 地址,然後把這個結果返回給發起查詢的主機。

爲了提高 DNS 查詢效率,並減輕根域名服務器的負荷和減少互聯網上的 DNS 查詢報文數量,在域名服務器中廣泛地使用了高速緩存。高速緩存用來存放最近查詢過的域名以及從何處獲得域名映射信息的記錄。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章