dns是分布式的系統,所以即使單個計算機出現問題,也不會影響到整個dns系統的正常執行。網域名稱到ip位址的解析是由分布在網際網路上的許多網域名稱服務程式共同完成的,解析過程大致是這樣的:當乙個應用程序需要把主機名解析為ip位址時,該應用程序就要呼叫解析程式,然後成為dns的乙個客戶,把解析的網域名稱放在dns請求報文中,以udp使用者資料報方式發給本地網域名稱伺服器(採用udp是為了減小開銷),本地網域名稱伺服器在查詢到網域名稱之後,把對應的ip位址放在回答報文中返回。如果本地伺服器不知道這個網域名稱怎麼轉換,那麼該網域名稱伺服器就暫時成為dns中的另外乙個客戶,並向其他網域名稱伺服器發出查詢請求。
通過以上的描述,相信大家也對dns網域名稱系統有了大致的了解。下面將要繼續介紹網際網路的網域名稱結構:
早期的網際網路使用的是非等級的名字空間,但是由於網際網路上的使用者數量急劇增加,所以網際網路後來就使用了層次樹狀結構的命名方法,任何乙個連線在網際網路上的主機或者是路由器,都有乙個唯一的層次結構的名字,就是網域名稱(domain name)。「域」是名字空間中乙個可被管理的劃分。域還可以劃分很多子域。這樣就有了頂級域、二級域、**域等。例如:mail.cctv.com
,每乙個網域名稱都是由標號序列組成的,標號之間用點隔開。最右邊的是頂級網域名稱,然後依次向左看是二級網域名稱,**網域名稱。dns規定,網域名稱中的標號必須是英文本母或者是數字,每個標號不能夠超過63個字元(一般來說,為了記憶,最好不要超過12個字元),也不區分大小寫字元。標號中除了連字元「-」之外不能夠使用其他的符號。由多個標號組成的網域名稱整體不能夠超過255個字元。
了解了網際網路的網域名稱結構之後,接著我們再來了解下網域名稱伺服器。本來理論上來說,可以讓每一級網域名稱都有乙個相應的網域名稱伺服器,就像網域名稱樹一樣。但是這樣做會使得網域名稱伺服器的數量非常多。dns採用了劃分區的方法來解決這個問題:
乙個伺服器所負責管轄的範圍叫做區,每個區都設定了乙個相應的許可權網域名稱伺服器(authoritative name server),用來儲存該區域所有主機的網域名稱到ip位址的對映。dns伺服器的管轄範圍不是以「域」為單位的,而是以「區」為單位的。從上圖我們可以發現,左邊的域abc.com和區「abc.com」是一樣的,但是右邊不一樣了,區abc.com和y.abc.com兩者屬於了域abc.com。不難發現區是域的子集。
下面我們將要了解四種不同網域名稱伺服器:
1、根網域名稱伺服器:
根網域名稱伺服器是最高層次的網域名稱伺服器,也是最重要的,所有網域名稱伺服器只要自己無法解析,就要首先求助於根網域名稱伺服器。在網際網路中共有13個不同的ip位址的根網域名稱伺服器,它們的名字是用乙個英文本母命名的,從a一直到m。但是這些網域名稱伺服器不是簡簡單單像看上一樣只有13個機器負責。而是由13套裝置,每一套裝置使用乙個網域名稱,每一套裝置又在不同的地點有不同的機器負責,幾乎是遍布了全世界。但需要我們注意的是,根網域名稱伺服器一般是不直接把需要查詢的網域名稱轉化為ip位址返回給本地網域名稱伺服器的,而是告訴本地網域名稱伺服器下一步應該去找哪乙個頂級網域名稱伺服器查詢。
2、頂級網域名稱伺服器
3、許可權網域名稱伺服器
4、本地網域名稱伺服器(local name server):
當乙個主機發出dns查詢請求的時候,這個查詢報文首先應該傳送給本地網域名稱伺服器。
知道了網域名稱伺服器之後,我們還要知道網域名稱伺服器是怎麼進行網域名稱解析的,大致來說應該有兩種方法:
1、主機向本地網域名稱伺服器的查詢一般都是採取遞迴查詢(recursive query),所謂的遞迴查詢是這樣的,主機向本地網域名稱伺服器詢問解析網域名稱,如果本地網域名稱伺服器不知道的話,那麼本地網域名稱伺服器就作為dns客戶的身份,諮詢根網域名稱伺服器,而不是讓主機自己進行下一步查詢,最後將諮詢到的結果返回給主機。
2、本地網域名稱伺服器向根網域名稱伺服器的查詢一般是迭代查詢(iterative query),所謂的迭代查詢是這樣的,當根網域名稱伺服器收到了本地網域名稱伺服器的請求的時候,根網域名稱伺服器告訴本地網域名稱伺服器下一步應該向哪乙個網域名稱伺服器進行查詢。而不是替本地網域名稱伺服器進行下一步查詢。
dns系統為了提高查詢效率,還使用了快取記憶體,存在與主機還有本地網域名稱伺服器中,如果近期查詢過的網域名稱就會被快取在其中,下一次進行查詢的時候就直接從快取中找就好了。
應用層 網域名稱系統(DNS)
網域名稱系統 dns 是網際網路使用的命名系統,用來把便於人們記憶的具有特定含義的主機名 如www.cskaoyan.com 轉換為便於機器處理的 ip 位址。從概念上可將dns分為3部分 層次網域名稱空間 網域名稱伺服器和解析器 1 根網域名稱伺服器 根網域名稱伺服器是最高層次的網域名稱伺服器,所...
應用層 網域名稱系統DNS
類似www baidu com的 就叫網域名稱,計算機底層需要用ip位址進行包的傳輸,故需要網域名稱向ip位址的轉換,這叫做網域名稱解析,完成此任務的是網域名稱系統dns。網域名稱系統dns domain name system 是internet使用的命名系統,多個網域名稱伺服器上執行專門的網域名...
應用層之DNS網域名稱系統
在網際網路中,識別一台主機有兩種方式,通過主機名或者ip位址。人們喜歡便於記憶的主機名標識方式,而路由器則喜歡定長的 有著層次結構的ip位址。為了折衷這些不同的偏好,我們需要一種能進行主機名到ip位址轉換的目錄服務,這就是dns網域名稱系統的主要任務。dns是 1.乙個由分層的dns伺服器實現的分布...