你知道我們上網(wǎng)是怎么連到服務(wù)器的嗎?看看DNS是怎么工作的
在網(wǎng)絡(luò)世界中,計算機(jī)不像人類那樣以名字命名,而是以數(shù)字命名,這是因為計算機(jī)和其他類似設(shè)備在網(wǎng)絡(luò)中進(jìn)行交流和識別的方式,通過IP地址這種數(shù)字方式進(jìn)行識別。另一方面,人類習(xí)慣使用名字而不是數(shù)字,無論是直接與另一個人交談,還是識別一個國家、地方或事物,人類用名字而不是數(shù)字來識別。
因此,為了彌補計算機(jī)與人類之間的溝通障礙,使網(wǎng)絡(luò)交流變得更加容易,網(wǎng)絡(luò)工程師們開發(fā)了DNS,就是域名系統(tǒng)(Domain Name System)。
DNS的作用是解析名稱到數(shù)字,更具體地說,它將網(wǎng)站域名(平時我們上網(wǎng)輸入的網(wǎng)址)解析為IP地址。因此,如果我們在瀏覽器中輸入一個web地址,DNS把這個地址解析為一組數(shù)字,就是IP地址,類似192.168.1.1這樣。
舉個例子,如果我們想去某個網(wǎng)站就會打開網(wǎng)頁瀏覽器,輸入那個網(wǎng)站的域名,例如baidu.com。從技術(shù)上講,我們真的不需要輸入baidu.com來訪問百度網(wǎng)頁, 如果我們已經(jīng)知道IP地址是什么,我們可以直接輸入IP地址, 但是因為我們不習(xí)慣記住和處理數(shù)字, 特別是當(dāng)互聯(lián)網(wǎng)上有數(shù)以億計個網(wǎng)站的時候,我們只需輸入我們能理解和記得住的域名,讓DNS為我們將其轉(zhuǎn)換為IP地址。
回到我們的例子中,當(dāng)我們輸入baidu.com,瀏覽器會在DNS服務(wù)器的數(shù)據(jù)庫中搜索該域名的匹配IP地址, 當(dāng)它找到它時,它會把baidu.com這個域名解析為百度網(wǎng)站的IP地址, 一旦完成,電腦就能與百度網(wǎng)絡(luò)服務(wù)器通信并顯示網(wǎng)頁。DNS就像電話本一樣,當(dāng)我們想要找到一個號碼時,我們不是先查號碼,而是先查名字,然后它會給我們號碼。
為了進(jìn)一步細(xì)化,我們來看看DNS的步驟。所以當(dāng)我們在瀏覽器中輸入baidu.com,如果瀏覽器或操作系統(tǒng)找不到緩存在內(nèi)存或硬盤上的IP地址, 它會將查詢發(fā)送到下一層也就是所謂的解析服務(wù)器,基本上就是ISP或Internet服務(wù)提供商,所以當(dāng)解析服務(wù)器接收到查詢,它會檢查自己的緩存,找到baidu.com的IP地址,如果它不能找到,它會將查詢發(fā)送到下一個層的根服務(wù)器。
根服務(wù)器是DNS層次結(jié)構(gòu)的頂部或根,這些根服務(wù)器有13組,它們被戰(zhàn)略性地放置在世界各地,它們由12個不同的組織操作,每組根服務(wù)器都有自己的唯一IP地址。當(dāng)根服務(wù)器接收到baidu.com的IP地址的查詢時,根服務(wù)器不知道baidu.com的IP地址是什么,但是根服務(wù)器知道往哪個解析器發(fā)送查詢來幫助它找到IP地址。根服務(wù)器將把解析器指向***域名(Top Level Domain,簡稱TLD)服務(wù)器。
解析器向TLD服務(wù)器詢問baidu.com的IP地址。TLD服務(wù)器存儲***域名的地址信息,如.com、.net、.org等。這個TLD服務(wù)器管理baidu.com所屬的.com域名。當(dāng)TLD服務(wù)器接收到baidu.com的IP地址的查詢時,TLD服務(wù)器不知道baidu.com的IP地址是什么。TLD服務(wù)器會把解析器定向到下一層和***一層,即權(quán)威的名稱服務(wù)器。再一次,解析器向權(quán)威名稱服務(wù)器詢問baidu.com的IP地址。
權(quán)威名稱服務(wù)器負(fù)責(zé)了解包含IP地址的域名的所有信息,他們是最終的權(quán)威。因此,當(dāng)權(quán)威名稱服務(wù)器從解析器接收查詢時,名稱服務(wù)器將使用baidu.com的IP地址進(jìn)行響應(yīng)。***解析器會告訴我們電腦baidu.com的IP地址,然后我們的電腦就可以訪問百度的網(wǎng)頁了。需要注意的是,一旦解析器接收到IP地址,它就會將其存儲在緩存內(nèi)存中,以防它收到baidu.com的另一個查詢,這樣它就不必再執(zhí)行所有這些步驟。