文章出處:www.net1980.com 數據庫
TCP/IP不只提供了IP地址來肯定設備,並且還專門設計了一種字符串形式的主機命名機制,這就是所謂的域名系統DNS(Domain Name System)。此係統使用一種有層次的命名方式,爲網上的設備指定一個有意義的名字,而且在網絡上設置域名解析服務器,創建域名與IP地址的對應關係。這樣一來用戶就可使用便於記憶的、有意義的域名,而沒必要去記憶複雜的IP地址。緩存
1、Internet域名體系服務器
最初全部機器使用的名字構成了一個非等級的名字空間,由字符序列組成全部的名字。網絡信息中心NIC(Network Information Center)管理這個名字空間,並負責接納新名字。非等級名字空間因爲自身的特色不能管理大量的機器名字,主要緣由以下所示:網絡
一、名字由字符序列組成,存在潛在的命名衝突。ide
二、名字空間的管理結構位於一個站點,機器數量的不斷增多對管理工做帶來很大負擔。網站
三、名字到IP地址的映射常常發生變化,致使維護域名空間的工做量巨大。spa
所以,TCP/IP把DNS的域名設計成了分級的結構。Internet域名結構由TCP/IP協議棧中的DNS進行定義。DNS把因特網劃分紅多個頂級域,頂級域採用組織模式和地理模式的劃分模式。地理模式按照國家進行劃分,每一個申請加入Internet的國家都要向NIC註冊一個頂級域名,如cn表明中國、us表明美國等。操作系統
NIC將頂級域的管理權分派給由其指定的管理機構,由這些管理機構再對被受權管理的域繼續進行劃分,從而造成了二級域。負責劃分二級域的管理機構能夠受權其下屬的管理結構,由它們繼續劃分域。有此下去,便造成了層次型的Internet域名體系結構。.net
2、域名解析設計
域名解析分爲動態解析和靜態解析,兩者能夠相輔相成,在解析域名時,能夠首先採用靜態解析的方法,若是靜態解析不成功,再採用動態解析的方法。
一、靜態DNS
靜態域名解析是經過靜態域名解析表進行的,即手動創建域名和IP地址之間的對應關係表,該表的做用相似於Windows操做系統下的hosts文件,能夠將一些經常使用的域名放入表中。當客戶機須要域名所對應的IP地址時,即到靜態域名解析表中去查找指定的域名,從而得到所對應的IP地址,提升域名解析的效率。
二、動態DNS
所謂動態DNS,是指不具固定IP的主機,利用動態DNS服務,幫助主機能夠根據IP的變化去對應域名與IP的關係。例如使用 PPPOE的ADSL、DHCP的Cable或撥號上網,這些網絡接入方式都不具有固定IP地址,假如要架設Web、Mail或者FTP等服務器,就須要用到動態DNS服務。
動態DNS實例說明:
我已註冊了一個網域名稱:net1980.com,但我所使用的網路連線是不具固定IP的ADSL服務,之前我並不能用它來架設網站,由於個人IP並不是固定IP沒法用來指定域名,但如今有了動態DNS服務後,我將能夠用個人域名利用動態IP來架設主機及網站。
當我啓用了動態DNS功能後,每次個人主機開機,動態DNS服務器將會自動去取得並對應個人主機當時上線的IP,假設這次個人主機開機時所取得IP是202.96.111.201,此時利用動態DNS服務,會將個人net1980.com自動設定對應到202.96.111.201去;又假設個人主機重開機時所取得的IP是202.96.110.101,則利用動態DNS服務,又會自動再將個人net1980.com對應到202.96.110.101去,如此解決了不固定IP沒法對應到域名的困擾,而且這對瀏覽我網站的人來講,並沒有任何影響,只需輸入 http://net1980.com 便可鏈接到個人網站。
三、動態DNS服務器
動態域名解析須要專用的域名解析服務器,該服務器運行域名解析服務器程序,提供從域名到IP地址的映射關係,負責接收客戶提出的域名解析請求。
根域名服務器包含有關根和頂級域的信息。DNS要求每一個域名解析服務器至少要知道一個根域名解析服務器的地址。客戶也必須知道如何與至少一個域名解析服務器取得聯繫。
域名解析服務器接收到客戶端提出的域名解析請求後,首先判斷請求的域名是否處於本身被受權管理的子域裏。若是是,就查詢數據庫把域名轉換爲IP地址,並把轉換結果發送給客戶端。若是域名解析服務器不能解析出域名,它就根據客戶在查詢報文中所指明的解析方式來進行下一步操做。
域名解析方式分爲如下兩種:
遞歸解析:域名解析服務器和能解析該域名的服務器聯繫,並將查詢結果即域名所對應的IP地址返回給客戶端。
迭代解析:若該域名解析服務器不能提供解析結果,會在給客戶端的響應報文中指明客戶端應聯繫的下一個域名解析服務器。客戶端會向指明的下一個域名解析服務器再次發出查詢請求。
1)動態DNS的高速緩存
若是解析者把每一個非本地名字的解析請求都送到根域名解析服務器的話,會形成很大的查詢開銷。爲了下降非本地域名查詢的開銷,域名解析服務器使用高速緩存。對於每次動態解析成功的域名和IP地址的映射關係,存放在內存的動態域名緩存區中,下一次查詢相同域名的時候,就能夠直接從緩存區中讀取,不用再向根域名解析服務器請求了。每一個域名解析服務器都在本機的高速緩存裏維護着最近用過的域名的記錄,而且同時保存從哪一個服務器得到的此域名映射。
可是當域名與IP地址的映射關係發生變化時,高速緩存中的信息就再也不正確。爲保證緩存信息的正確性,域名解析服務器在DNS響應報文中,會指定一個TTL值,該值表明解析的域名與IP地址綁定存在的有效時間值。客戶端在緩存區中保存的映射關係在一段時間後被老化刪除,保證可以及時從域名解析服務器獲得最新的內容。對於安裝不一樣操做系統的域名解析服務器,老化時間都有其相對應的值。客戶端從DNS協議報文中得到老化時間。
一樣,主機中也存在一個高速緩存,用來維護本身最近使用過的域名與IP地址的綁定。只有主機在未能從緩存中找到要解析的域名時纔會使用域名解析服務器進行查詢。
2)動態DNS的後綴名
動態域名解析支持域名後綴列表功能,用戶能夠預先設置一些域名後綴,在域名解析的時候,用戶只須要輸入域名的部分字段,系統會自動將輸入域名加上不一樣的後綴進行解析。
例如,用戶想查詢域名「net1980.com」,那麼能夠在後綴列表中配置com,而後輸入「net1980」,系統會自動將輸入域名與後綴鏈接成「net1980.com」進行查詢。使用域名後綴的時候,可能會出現如下幾種狀況。
若是用戶輸入的域名中沒有「.」,好比「net1980」,系統認爲這是一個主機名,會首先加上域名後綴進行查詢。若是全部域名都查詢失敗,最後用最初輸入的域名進行查詢。
若是用戶輸入的域名中間有「.」好比「www.net1980」,系統直接用它進行查詢。若是查詢失敗,再依次加上各個後綴進行查詢。
若是用戶輸入的域名最後有「.」,好比「net1980.com.」,系統首先會將輸入域名最後的「.」去掉,用剩下的部分查詢,若是沒有成功,會再去匹配域名列表進行查詢。