1、基本介紹
DNS(Domain Name System)是域名系統(tǒng)的縮寫,也叫做名稱解析。在互聯(lián)網(wǎng)中,主機(jī)直接通過IP地址來確定位置,才能進(jìn)行通訊,而IP地址是32位的二進(jìn)制位,就算轉(zhuǎn)換成十進(jìn)制,對于我們而言記憶起來也太過困難,例如60.211.209.143,但我們對域名更加敏感,因此通過DNS,就可以將數(shù)字形式的IP地址轉(zhuǎn)換為www.itdecent.cn,也就是所謂的網(wǎng)址。
在DNS出現(xiàn)之前,是通過hosts文件來解決這一問題的,在Windows系統(tǒng)下,hosts文件保存在C:\Windows\System32\drivers\etc目錄下,由于記事本打開后沒有排版,格式會比較亂,因此選擇用寫字板打開文件:
簡單來說,可以在hosts文件內(nèi)部定義IP地址和主機(jī)名或者說域名,以紅色方框?yàn)槔?,接下來通過在系統(tǒng)的命令提示符中輸入“ping 域名”來查看:
實(shí)際上,hosts文件是用來做靜態(tài)IP和域名對應(yīng)的,只要在hosts文件內(nèi)寫入域名及對應(yīng)的IP地址,系統(tǒng)就會認(rèn)定該域名和IP地址互相對應(yīng),而不會再去公網(wǎng)尋找真正的IP地址,若此時解析www.sina.com.cn,則可以ping到真正的新浪IP地址,如下圖:
因此,可以認(rèn)定hosts文件的優(yōu)先級是高于DNS解析的,DNS解析之所以取代了hosts文件,是因?yàn)镮P地址的可用數(shù)量42億9千萬左右個,這么多的IP地址,先不討論是否有人會將其一一對應(yīng)的整理到hosts文件內(nèi),假設(shè)說這個文件已經(jīng)存在,那么文件的大小也會接近70、80GB,這么大的文件,幾乎就無法進(jìn)行正常的讀取了。即早期hosts文件解析域名效能太低,且維護(hù)太過困難,而DNS則具備層次性及分布式的特點(diǎn)而備受推崇。
2、域名空間結(jié)構(gòu)
域名空間結(jié)構(gòu)又稱作完全合格域名,完整的域名空間是由三級域加二級域加頂級域所構(gòu)成,并且該完整域名應(yīng)是全球唯一的,互聯(lián)網(wǎng)中的域名是有結(jié)構(gòu)有規(guī)劃的,之所以目前的域名都是用“.”來進(jìn)行分割,是為了便于分級管理,在進(jìn)行域名和IP地址解析時更容易找到:
1.根域名:根域名用“.”表示,在所有域名之上,根域名的服務(wù)器在全球只有13臺。
2.頂級域:也稱作一級域,保存在根域名之內(nèi),頂級域由域名分配組織ISO決定,常見的組織一級域如下:
頂級域 | 說明
----|------|----
gov | 政府部門
com | 商業(yè)部門
edu | 教育部門
org | 民間團(tuán)體組織
net | 網(wǎng)絡(luò)服務(wù)機(jī)構(gòu)
mil | 軍事部門
常見的國家或地區(qū)一級域如下:
頂級域 | 說明
----|------|----
cn | 中國
hk | 中國香港
jp | 日本
uk | 英國
au | 澳大利亞
例如之前列舉的“www.sina.com.cn”,最后的“.com.cn”都是一級域,只不過一個是組織一級域,一個是國家一級域,二者并不沖突。
3.二級域:二級域是由組織、企業(yè)或個人向域名分配組織申請并購買才可以使用的。
4.主機(jī)名:也稱作三級域,在申請二級域名成功后,可以自行規(guī)定三級域名。
3、DNS服務(wù)的工作原理
第一種情況:曾經(jīng)解析過同一網(wǎng)址
當(dāng)本地域名服務(wù)器解析過一個域名后,會在本地域名服務(wù)器內(nèi)默認(rèn)保存3天,在保存期內(nèi),再次訪問該網(wǎng)址會直接返回解析后的IP地址,而不需要再向根服務(wù)器反映,具體過程如下:
①每臺客戶主機(jī)都會寫清楚DNS服務(wù)器地址,如果沒有是不能連接互聯(lián)網(wǎng)的;
②當(dāng)客戶要連接某一網(wǎng)站時,主機(jī)會向本地域名服務(wù)器發(fā)送域名查詢請求;
③本地域名服務(wù)器查詢到該域名對應(yīng)的IP地址后會告知客戶主機(jī);
④此時,客戶主機(jī)就可以與某網(wǎng)站的Web服務(wù)器通信。
第二種情況:需要解析一個新網(wǎng)址

①每臺客戶主機(jī)都會寫清楚DNS服務(wù)器地址,如果沒有是不能連接互聯(lián)網(wǎng)的;
②當(dāng)客戶要連接某一網(wǎng)站時,主機(jī)會向DNS服務(wù)器發(fā)送域名查詢請求;
③本地域名服務(wù)器并未儲存該域名對應(yīng)的IP地址,因此向根DNS服務(wù)器請求查詢,而根DNS服務(wù)器只能查詢在它之下的一級域名,于是將部分結(jié)果反饋至本地域名服務(wù)器;
④依據(jù)上次的結(jié)果,本地域名服務(wù)器向頂級域服務(wù)器請求查詢,再次獲得的部分地址;
⑤本地域名服務(wù)器再次向頂級域服務(wù)器請求查詢,獲得的部分地址;
⑥最后本地域名服務(wù)器向二級域服務(wù)器請求查詢,最終獲得全部地址;
⑦本地域名服務(wù)器將查詢到的IP地址告知客戶主機(jī);
⑧此時,客戶主機(jī)就可以與某網(wǎng)站的Web服務(wù)器通信。
DNS的查詢類型
以第二種情況為例:
依據(jù)查詢方式分來
遞歸查詢——過程②、⑦
遞歸查詢是指要么做出查詢成功的響應(yīng),要么做出查詢失敗的響應(yīng)。一般客戶主機(jī)和服務(wù)器之間屬于遞歸查詢,即當(dāng)客戶主機(jī)向本地域名服務(wù)器發(fā)出請求后,若本地域名服務(wù)器自身不能解析,則會向另外的DNS服務(wù)器發(fā)出查詢請求,在得到結(jié)果后轉(zhuǎn)交給客戶主機(jī)。迭代查詢——過程③、④、⑤、⑥
服務(wù)器收到一次迭代查詢回復(fù)一次結(jié)果,這個結(jié)果不一定是目標(biāo)IP地址與域名的映射關(guān)系,也可以是其他DNS服務(wù)器的地址。
依據(jù)查詢內(nèi)容分類
- 正向查詢:已知域名→查找IP地址(客戶端一般都使用正向查詢)
- 反向查詢:已知IP地址→查找域名(類似郵件服務(wù)器會使用反向查詢)
ps:端口號相關(guān)介紹更新在TCP/IP四層模型的第四部分“傳輸層”內(nèi)容中。
版權(quán)聲明:歡迎轉(zhuǎn)載,歡迎擴(kuò)散,但轉(zhuǎn)載時請標(biāo)明作者以及原文出處,謝謝合作! ↓↓↓