DNS之簡單介紹(一)

一、DNS概述:

DNS,英文全程"Domain Name System,中文全程:域名系統(tǒng),作為將域名和IP地址相互映射的一個分布式數(shù)據(jù)庫,能夠使人更方便地訪問互聯(lián)網(wǎng)。DNS基于C/S架構(gòu)(多數(shù)基于套接字架構(gòu)的都是C/S架構(gòu)),同時使用TCP和UDP的53號端口,當(dāng)前,對于每一級域名長度限制是63個字符,域名總長度則不能超過253個字符。
?我們都知道,IP地址是由32位的二進(jìn)制數(shù)字組成。用戶與因特網(wǎng)上某臺主機(jī)通行時,顯然不愿意使用難以記憶的32位的二進(jìn)制主機(jī)地址。相反,大家更愿意使用比較容易記住的主機(jī)名稱。這時DNS的出現(xiàn)就將繁瑣復(fù)雜32位二進(jìn)制數(shù)字解析大家易于接受的字符串形式。

二、DNS即使用TCP又使用UDP

傳輸層協(xié)議
?TCP:Transmission Control Protocol 面向連接的協(xié)議:雙方通信前需要事先建立虛連接
?UDP:User Datagram Protocol 無連接的協(xié)議:雙方無需通信前事先建立虛連接

首先了解一下TCP與UDP傳送字節(jié)的長度限制:UDP報文最大長度為512字節(jié),而TCP則允許報文長度超過512字節(jié)。當(dāng)DNS查詢超過512字節(jié)時,協(xié)議的TC標(biāo)志出現(xiàn)刪除標(biāo)志,這時則使用TCP發(fā)送。通常傳統(tǒng)的UPD報文一般不會大于512字節(jié)。
?區(qū)域傳送使用TCP,因?yàn)閿?shù)據(jù)同步傳送的數(shù)據(jù)量比一個請求和應(yīng)答的數(shù)據(jù)量要多得多,因此為了保證數(shù)據(jù)的正確性,則使用基于可靠連接的TCP。

域名解析時使用UDP協(xié)議,客戶端向DNS服務(wù)器查詢域名,一般返回的內(nèi)容不超過512字節(jié),用UDP傳輸,不經(jīng)過TCP三次握手,大大提高響應(yīng)速度。

三、域名空間

對于DNS域名空間,我們要制定一套命名規(guī)則,防止域名出現(xiàn)重復(fù),關(guān)于DNS域名規(guī)則我們可以將生活中的快遞系統(tǒng)聯(lián)系起來,使用層次的地址結(jié)構(gòu)。當(dāng)你要郵寄物品給某人時,快遞單號上肯定要寫上:中國、廣東省、惠州市、惠城區(qū)、江北市政府xx號。而一個域名看起來則是這樣的groups.google.com。
?對于Internet來說,域名層次結(jié)構(gòu)的頂級(相當(dāng)于國際快遞地址中的國家部分)由ICANN(互聯(lián)網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu))負(fù)責(zé)管理。目前,已經(jīng)有超過800多個頂級域名,每個頂級域名可以進(jìn)一步劃為一些子域(二級域名),這些子域可被再次劃分(三級域名),以此類推。所有這些域名可以組織成一顆樹,如下圖所示(圖片來自Computer Networks:7-1):

Computer Networks:7-1.png

頂級域名類別有:

  • 通用的頂級域名如:.org、.com、.net、.gov、.edu 等等
  • 國家代碼頂級域名如:.us、.ca 等,分別對應(yīng)美國和加拿大的國家代碼
  • 新的品牌頂級域名,允許組織創(chuàng)建最多64個字符的TLD,如:.linux、.microsoft、.companyname
  • 基礎(chǔ)架構(gòu)頂級域名如:.arpa

子域名
當(dāng)訪問一個類似mail.google.com這樣這樣的網(wǎng)站,這里的mail就是googole.com的子域名,只有mail.google.com的名稱服務(wù)器知道下面存在的所有主機(jī),所以Google會回復(fù)是否有一個叫mail的子域名,根名稱服務(wù)器對此并不知請。

DNS服務(wù)器的類型

分為三種DNS服務(wù)器:

主DNS服務(wù)器
?這些服務(wù)器上存放了特定域名的配置文件,并且基于此權(quán)威地規(guī)定了特定的域名的地址。主DNS服務(wù)器知道全部在它管轄范圍的主機(jī)和子域名的地址。

輔助DNS服務(wù)器
?這些服務(wù)器作為主DNS服務(wù)器的備份,也承擔(dān)了一定的負(fù)載。主服務(wù)器知道輔助DNS服務(wù)器存在,并且會向他們推送更新。

緩存DNS服務(wù)器
?這些服務(wù)器上不存放特定域名的配置文件。當(dāng)客戶端請求緩存服務(wù)器來解析域名時,該服務(wù)器將首先檢查其本地緩存。如果找不到匹配項(xiàng)便會詢問主服務(wù)器。接著這條響應(yīng)將被緩存起來。

四、工作流程簡述
DNS.png

域名到IP地址的解析是由分布因特網(wǎng)上的許多域名服務(wù)器程序共同完成的。域名服務(wù)器程序在專設(shè)的結(jié)點(diǎn)上運(yùn)行,而人們也常把運(yùn)行域名服務(wù)器程序的機(jī)器稱為域名服務(wù)器。
?域名到IP地址的解析過程要點(diǎn)如下:當(dāng)某一個應(yīng)用需要把主機(jī)名解析為IP地址,該應(yīng)用進(jìn)程就調(diào)用解析程序,并稱為DNS的一個客戶,把待解析的域名放在DNS請求報文中,以UDP用戶數(shù)據(jù)報方式發(fā)給本地域名服務(wù)器。本地域名服務(wù)器在查找域名后,把對應(yīng)的IP地址放在回答報文中返回。應(yīng)用程序獲得目的主機(jī)的IP地址后即可通行。
?若本地域名服務(wù)器不能回答該請求,則此域名服務(wù)器就暫時稱為DNS的另一個客戶,并向其他域名服務(wù)器發(fā)出查詢請求。這種過程直到能夠回答該請求的域名服務(wù)器為止。此過程稱之為(迭代)

五、域名解析查詢:遞歸及迭代兩者區(qū)別

1. 主機(jī)向本地域名服務(wù)器查詢一般都是常用遞歸查詢。所謂遞歸查詢就是:如果主機(jī)所詢問的本地域名服務(wù)器不知道被查詢的域名的IP地址,那么本地域名服務(wù)器就以DNS客戶端的身份,向其它根域名服務(wù)器繼續(xù)發(fā)出查詢請求報文(即替主機(jī)繼續(xù)查詢),而不是讓主機(jī)自己進(jìn)行下一步查詢。因此,遞歸查詢返回的結(jié)果或者是所要查詢的IP地址,或者是報錯,表示無法查詢到所需的IP地址。

2. 本地域名服務(wù)器向根域名服務(wù)器的查詢的迭代查詢。迭代查詢的特點(diǎn):當(dāng)根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請求報文,要么給出所要查詢的IP地址,要么告訴本地服務(wù)器:“你下一步應(yīng)當(dāng)向哪一個域名服務(wù)器進(jìn)行查詢”。然后讓本地服務(wù)器進(jìn)行后續(xù)的查詢。根域名服務(wù)器通常是把自己知道的頂級域名服務(wù)器的IP地址告訴本地域名服務(wù)器,讓本地域名服務(wù)器再向頂級域名服務(wù)器查詢。頂級域名服務(wù)器在收到本地域名服務(wù)器的查詢請求后,要么給出所要查詢的IP地址,要么告訴本地服務(wù)器下一步應(yīng)當(dāng)向哪個權(quán)限域名服務(wù)器進(jìn)行查詢。最后,知道了所要解析的IP地址或報錯,然后把這個結(jié)果返回給發(fā)起查詢的主機(jī)。

DNS查詢過程.png

就個人理解遞歸查詢可以比喻為我們到政府部門辦理事情一樣,如果你運(yùn)氣好的話,碰到辦事員心情不錯而往往事情就能好辦很多,直接放下材料就能回去了,剩下的事情就等待處理結(jié)果就好了。要萬一當(dāng)天辦事員因?yàn)槭倭?,心情不好,那你就要被告知你所要辦理的材料還需要找什么部門,需要誰誰蓋章后才能受理,就如一個“皮球“被踢來踢去。如此反復(fù),最后事情一波三折的也還不一定能夠辦下來,這就是迭代查詢

為提高DNS查詢效率,減輕根域名服務(wù)器的負(fù)荷和減少因特網(wǎng)上DNS查詢報文的數(shù)量,在域名服務(wù)器中廣泛使用了高速緩存(或高速緩存服務(wù)器),用來存放最近查詢過的域名以及從何處獲得域名映射信息的記錄
?當(dāng)DNS服務(wù)器向另一個DNS服務(wù)器請求并收到它的響應(yīng),就在把它發(fā)送給客戶之前,把這個信息存儲到它的高速緩存中,這個信息會在高速緩存中存在一個生存周期TTL,過了生存周期就刪除這條信息。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容