今天不少人都在講域名系統和互聯網做爲一個總體是如何工做的,域名系統
---也就是你們所熟知的DNS
。不幸的是,對於天龍人和普通人來講,他們並不瞭解DNS究竟是什麼鬼。今天就來聊聊DNS,和那些想了解DNS工做原理的人聊一聊它是如何工做的。數據庫
什麼是DNS?瀏覽器
DNS
(Domain Name System,域名系統),因特網上做爲域名和IP地址相互映射的一個分佈式數據庫,可以使用戶更方便的訪問互聯網,而不用去記住可以被機器直接讀取的IP數串。經過域名,最終獲得該域名對應的IP地址的過程叫作域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53。緩存
看到了上面百度百科的解釋,好像大概知道了DNS有什麼用,至少咱們能夠對以下問題作出回答了。服務器
爲何須要DNS?微信
由於人的腦力有限,咱們沒法記住每一個咱們使用的網站的每一個IP地址,記住一些有含義的字符串(如:百度網址www.baidu.com)貌似容易的多,DNS把域名和IP作了一個映射,咱們在瀏覽器輸入域名,DNS就能夠幫咱們把對應的域名解析成真實的IP地址,從而請求IP地址對應的網站。這就是DNS的做用。網絡
可是工做原理是什麼?是否是還不清楚,那麼就看看下面通俗的解釋吧。分佈式
DNS無無疑是互聯網中最重要也最容易被忽略的部分。若是沒有DNS,咱們今天互聯網的使用體驗確定會很糟糕,由於咱們得記住咱們使用網站的IP地址(淘寶、微信、支付寶、釘釘等),這麼多的IP地址,想一想本身是否是很頭大,畢竟你如今連你不經常使用的帳號密碼都已經忘了qwq!。網站
咱們都知道或者都應該知道電腦組成了互聯網,組成了大型網絡,而且經過地下電纜或水下電纜相互通訊。而且經過一串數字相互識別,這串數字也就是IP地址。因爲大部分人腦力有限,沒法對成百上千個數字系列進行分類而且一一記住,DNS的實際做用就是將域名翻譯成對應的IP地址。操作系統
可是DNS到底是如何工做的呢???翻譯
當你在瀏覽器的地址欄輸入www.baidu.com,你實際上訪問的是www.baidu.com.
,沒錯,在域名後面還有一個點(.),你歷來不會看到,也歷來不會輸入。當你輸入www.baidu.com你實際上訪問的是 www.baidu.com.
。 的頁面,真的是這樣的,不信你能夠試一下。總之,最後的那個點表明着互聯網命名空間的根。爲何這個點這麼重要?由於它是一切開始的地方。當你第一次搜索www.baidu.com.
時,你的瀏覽器和操做系統會首先判斷它們知不知道這個域名對應的IP地址是啥,它可能會在你的計算機裏配置也可能在內存裏,不少人稱之爲cache。總之,你的瀏覽器會問操做系統,若是它們都不知道www.baidu.com.是什麼,而後會怎麼樣呢? 操做系統會配置爲當它不知道某個IP地址時去詢問解析域名服務器
,解析域名服務器就是承擔DNS查詢重任的,它會在你的操做系統裏進行手動或自動配置。你的操做系統會向解析域名服務器詢問www.baidu.com.
的IP地址。解析域名服務器的內存或者緩存裏可能有這個IP地址,也可能沒有。爲了此次說明,假如它沒有這個IP地址,全部解析域名服務器必須知道的一件事就是知道去哪裏查找根域名服務器
。是的,這個神祕的點會出如今你輸入的地址欄的每個域名的最後,根域名服務器回覆到:「我也不知道,但我知道去哪裏找com的域名服務器,去哪裏問一下吧」。com域名服務器叫作頂級域名服務器,也就是TLD域名服務器
。解析域名服務器會記住根域名服務器提供的全部信息,而且添加到緩存裏,而後直接去找TLD域名服務器。當解析域名服務器詢問www.baidu.com時,TLD域名服務器回答說:「我不知道,但我知道去哪裏找example.com域名服務器,你去那裏問一下「。下一組域名服務器叫作主域名服務器
,那麼TLD域名服務器怎麼知道用哪一個主域名服務器呢,這得藉助於域名註冊公司了。當一個域名被購買時,域名註冊公司就會被告知那個域名應該使用哪個主域名服務器,註冊公司就會將此次註冊信息告知負責根域名的機構,而且告訴它更新TLD域名服務器。總之,解析域名服務器記下TLD域名服務器的回覆,存儲到緩存裏,而後去詢問example.com域名服務器,這個時候,主域名服務器就會說:「哈,我知道他在哪裏」。告訴你的瀏覽器去訪問192.168.1.1這個IP地址。解析域名服務器記下了主域名服務器提供的信息添加到緩存裏,而後回覆給操做系統,操做系統就會告訴瀏覽器,瀏覽器就會鏈接到請求頁面,www.baidu.com的IP地址。頗有意思,對不對?這個過程看起來好像很複雜,可是相信我,整個過程在你眨眼之間就能完成,創建DNS就是爲了快速高效的工做,它是互聯網必須的組成部分。一旦你理解了這一點,你會清楚的看到一次DNS查詢就會由多個層面和多個機構負責。僅僅是一次DNS查詢啊!由解析域名服務器、根域名服務器、TLD域名服務器、還有主域名服務器。若是任何人改變或者去除了這個過程當中的任意一個部分,這會致使一場災難。