今天很多人都在講域名系統和網際網路作為一個整體是如何工作的,域名系統
---也就是大家所熟知的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域名伺服器、還有主域名伺服器。如果任何人改變或者去除了這個過程中的任意一個部分,這會導致一場災難。