網際網路的網域名稱解析系統dns是乙個聯機分布式資料庫系統,並採用客戶/伺服器體系。tcp/ip應用程式使用它來完成主機名稱和ip位址之間的對映。dns使大多數名字都在本地解析,僅少量解析需要在網際網路上通訊,因此系統效率很高。由於dns是分布式系統,即使單個計算機除了故障,也不會妨礙整個系統正常執行。
dns採用了分布式資料系統。它作為網際網路上的應用程式執行,它使用ip4或ip6。為了實現可擴充套件性,dns名稱是分層的,是支援名稱解析的伺服器。dns提供了允許客戶機和伺服器相互通訊的協議,並且也提供了伺服器之間互動資訊的協議。
網域名稱伺服器
名字空間的相關資訊(其中最重要的就是網域名稱和ip位址的對映關係)必須儲存在計算機中,供所有其他應用查詢。顯然,不可以將這些資訊儲存在一台計算機中。dns將網域名稱資訊分布到叫做網域名稱伺服器的許多計算機上。dns將整個名字空間劃分為許多區,每個區的網域名稱資訊由乙個許可權網域名稱伺服器負責管理。
網域名稱伺服器的四種型別:
(1)根網域名稱伺服器
最高層次的網域名稱伺服器。根網域名稱伺服器並不直接管轄某個區的網域名稱資訊,但每個網域名稱伺服器都知道所有的頂級網域名稱伺服器的網域名稱及其ip位址。
(2)頂級網域名稱伺服器(即tld伺服器)
負責管理在該頂級網域名稱伺服器註冊的所有二級網域名稱。當收到dns查詢請求時就給出相應的回答(可能是最後的結果,也可能是下一級許可權網域名稱伺服器的ip位址)
(3)許可權網域名稱伺服器:
負責管理某個區的網域名稱伺服器。每個主機都必須在某個許可權網域名稱伺服器下註冊登記,因此許可權網域名稱伺服器知道其管轄的網域名稱與ip位址的對映關係。另外,許可權網域名稱伺服器還知道其下一級網域名稱伺服器的位址。
當乙個主機發出dns查詢報文時,這個查詢報文就首先被送往該主機的本地網域名稱伺服器。每乙個網際網路伺服器提供者(isp),或者大學,甚至大學裡的系都可以擁有乙個本地網域名稱伺服器,它有時候也被稱為預設網域名稱伺服器。若所要查詢的主機處在本地isp管轄範圍,那麼本地網域名稱伺服器就立即能把查詢的主機名轉換為ip位址。否則就要去查詢其他網域名稱伺服器。本地網域名稱伺服器的ip位址需要直接配置在需要網域名稱解析的主機中。
網域名稱解析過程的簡要歸納
當某乙個應用程序需要將主機名解析為ip位址時(這個過程通常是自動進行的,使用者對這個過程感受不到),該應用程序就成為網域名稱系統dns的乙個客戶,並把待解析的網域名稱放在dns請求報文中,以udp資料報方式傳送給本地網域名稱伺服器(使用udp目的是為了減小開銷)。本地的網域名稱伺服器在查詢網域名稱之後,把對應ip位址放在回答報文中返回。應用程序獲得目的主機的ip位址後即可通訊。
若本地網域名稱伺服器不能回答請求,則此網域名稱伺服器就暫時成為dns中的另外乙個客戶,並向其他網域名稱伺服器發出查詢請求。這種過程直至找到能夠回答該請求的網域名稱伺服器為止。
主機向本地網域名稱伺服器的查詢一般都是採用遞迴查詢。
何謂遞迴查詢?
就是如果本地網域名稱伺服器不知道被查詢的網域名稱的ip位址時,那麼本地伺服器就以dns客戶的身份向某個跟網域名稱伺服器繼續發出查詢請求報文(即替該主機繼續查詢),而不是讓該主機自己進行下一步查詢。
本地網域名稱伺服器向根網域名稱伺服器查詢時,是優先採用迭代查詢。所謂迭代查詢就是本地網域名稱伺服器進行迴圈查詢。當根網域名稱伺服器收到查詢請求報文但並不知道被查詢網域名稱的ip位址時,這個根網域名稱伺服器就把自己知道的頂級網域名稱伺服器的ip位址告訴本地網域名稱伺服器,讓本地網域名稱伺服器再向頂級網域名稱伺服器查詢。頂級網域名稱伺服器在收到本地網域名稱伺服器的查詢請求後,就告訴本地網域名稱伺服器,下一步應當向哪乙個許可權網域名稱伺服器進行查詢。這樣查詢下去,主機就知道了索=所要了解的網域名稱的ip位址。理論上,任何dns查詢既可以採用遞迴查詢也可以採用迭代查詢,但由於遞迴查詢對於被查詢的網域名稱伺服器負擔太大,通常採取的模式是:從請求主機到本地網域名稱伺服器的查詢是遞迴查詢,而其餘的查詢都是迭代查詢。
快取記憶體
為了提高dns查詢效率,並減輕根網域名稱伺服器的負荷和減少網際網路上的dns查詢報文數量,在網域名稱伺服器終廣泛使用了快取記憶體(有時也稱為快取記憶體網域名稱伺服器)。快取記憶體用來存放最近查詢過的網域名稱以及從何處獲得網域名稱對映資訊的記錄。
例如:如果前不久已經有使用者查詢網域名稱為y.abc.com的ip位址,那麼本地網域名稱伺服器就不必再向根網域名稱伺服器重新查詢y.abc.com 的ip位址了。而是直接把快取記憶體存放的上次查詢結果(即y.abc.com的ip位址)告訴使用者。
假定本地網域名稱伺服器的快取中並沒有y.abc.com的ip位址,而是存放著頂級網域名稱伺服器dns.com的ip位址,那麼本地網域名稱伺服器就不必向根網域名稱伺服器進行查詢,而可以直接向com頂級網域名稱伺服器傳送查詢請求報文。這樣不僅可以大大減輕根網域名稱伺服器的負荷,而且也能夠是網際網路上的dns查詢請求報文和回答報文的數量大為減少。
由於網域名稱到ip位址的繫結有可能發生變化 (但是不可能經常改變),為了保持快取記憶體中的內容正確,網域名稱伺服器應為每項內容設定計時器並處理超過合理時間的專案。當網域名稱伺服器已經從快取中刪去某項資訊後又被請求查詢該專案資訊,就必須重新到授權管理該項目的網域名稱伺服器獲取繫結資訊。當許可權網域名稱伺服器回答乙個查詢請求時,在響應中都有指明繫結有效存在的時間值。增加此時間值可減少網路開銷,而減少此時間值可以提高網域名稱解析的正確性。
DNS網域名稱解析
dns是動態網域名稱系統的英文簡稱,是用來把我們輸入的網域名稱解析成ip位址的,如果沒有dns我們輸入的例如www.baidu.com這樣的網域名稱就無法被訪問。如果我們訪問 的時候要輸入ip位址的話,顯然既不方便也不容易記憶,所以我們用網域名稱來訪問 網域名稱雖然便於人們記憶,但網路中的計算機之間...
DNS網域名稱解析
一次請求過程大約經過三步 第一,dns網域名稱解析 第二,cdn獲取離使用者最近的節點 第三,建立http連線。今天和大家聊的是dns網域名稱解析。既然是dns網域名稱解析,那麼什麼是dns?dns domain name system,網域名稱系統 網際網路上作為網域名稱和ip位址相互對映的乙個分...
DNS網域名稱解析
1 dns,domain name system,用來將主機名字轉換為ip位址。人們很難記住32位的ip位址,即使是點分十進位制的形式也很難記,但是主機的名字卻比較容易記憶。計算機處理ip資料報時不使用網域名稱,而是使用ip位址。因為主機名字不是定長的,計算機不容易處理,計算機擅長處理定長的ip位址...