DNS網域名稱解析

2021-07-31 21:07:16 字數 2716 閱讀 3224

一次請求過程大約經過三步:

第一,dns網域名稱解析;

第二,cdn獲取離使用者最近的節點;

第三,建立http連線。

今天和大家聊的是dns網域名稱解析。

既然是dns網域名稱解析,那麼什麼是dns?

dns(domain name system,網域名稱系統),網際網路上作為網域名稱和ip位址相互對映的乙個分布式資料庫,能夠使使用者更方便的訪問網際網路,而不用去記住能夠被機器直接讀取的ip數串。通過主機名,最終得到該主機名對應的ip位址的過程叫做網域名稱解析(或主機名解析)。

上面那段話簡單總結一句就是:你給它乙個網域名稱,它還你乙個ip。

dns網域名稱解析示意圖如下:

網域名稱解析大體上分為10步:

第一步:瀏覽器自身解析。

當使用者在瀏覽器中輸入www.exceptionhelp.com敲回車後,瀏覽器會先檢查本身快取中有沒有這個網域名稱對應解析過的ip位址,如果快取中有,這個解析過程就結束了。如果沒有則去系統中查詢。

瀏覽器快取大小和快取時間都是有限制的,一般為幾分鐘到幾小時不等。網域名稱被快取的時間限制可以通過ttl屬性來設定。網域名稱不能被快取時間太長,如果太長一旦網域名稱對應的ip有變化,會導致使用者長時間無法訪問**。如果太短,每次都會進行一次網域名稱解析,造成不必要的資源浪費。

第二步:作業系統解析。

如果瀏覽器中沒有解析過此網域名稱,那麼瀏覽器會查詢作業系統快取中是否有這個網域名稱對應的解析結果。如果有,解析到此結束,如果沒有,繼續向下。

在windows中網域名稱解析的配置檔案在c:\windows\system32\drivers\etc\hosts。linux下配置檔案在/stc/hosts。知道這個還是很有用的。例如在測試的時候,可以將乙個網域名稱解析到一台測試伺服器,而不用修改任何程式。

第三步:請求本地區的網域名稱伺服器解析。

如果前兩個步驟都沒有完成網域名稱解析,那麼接下來就會請求網域名稱伺服器來解析這個網域名稱。在我們的網路配置中都會有「dns伺服器位址」這一項。作業系統會把這個網域名稱傳送給設定的ldns,也就是本地區的網域名稱伺服器。

在windows下可以通過ipconfig來查詢這個位址。

在linux下可以通過cat /etc/resolv.conf來查詢這個位址。

大約80%的網域名稱解析都會在這裡完成,所以ldns主要承擔網域名稱解析工作。

第四步:請求根網域名稱伺服器。

如果ldns仍然沒有命中,就會直接到root server網域名稱伺服器請求解析。

根網域名稱伺服器返回給本地網域名稱伺服器乙個所查詢域的主網域名稱伺服器(gtldserver)位址。gtld是國際頂級網域名稱伺服器,如.com  .cn  .org等,在全球只有十幾台。

第六步:請求gtldserver伺服器

本地網域名稱伺服器(ldns)再向上一步返回的gtld伺服器傳送請求。

第七步:gtld伺服器返回name server網域名稱伺服器位址

接收請求的gtld伺服器查詢並返回此網域名稱對應的name server網域名稱伺服器的位址,這個name server通常就是你註冊的網域名稱伺服器,例如你在某個網域名稱服務提供商申請的網域名稱,那麼這個網域名稱解析任務就由這個網域名稱提供商的伺服器來完成。

第八步:name server返回網域名稱和ip的對應關係

name server網域名稱伺服器會查詢儲存的網域名稱和ip的對映關係表,正常情況下都根據網域名稱得到目標ip記錄,連同ttl值返回給dns網域名稱伺服器。

第九步:ldns快取網域名稱和ip的對應關係

返回該網域名稱對應的ip和ttl值,local dns server會快取這個網域名稱和ip的對應關係,快取時間由ttl值控制。

第十步:解析完成,系統和瀏覽器換成網域名稱和ip的對應關係

把解析結果返回給使用者,使用者根據ttl值快取在本地系統快取中。網域名稱解析過程就此結束。

上面只是乙個基本的解析過程,實際的過程可能比這個要多,如name server也可能有多級或者有乙個gtm來負載均衡控制。

看完之後不知道你是什麼感覺。乙個簡單的回車,背後確有這麼多的步驟,而且上面的步驟也只是其中三個過程的其中乙個。另外兩個明天會繼續介紹。

這是分界線。這是分界線。這是分界線。這是分界線。這是分界線。

上面和大家說了,如果你不喜歡技術就直接跳到這兒。要開始講道理(瞎扯)了。

這裡可以提煉很多觀點。例如:乙個事情做成功沒有表面那麼看起來簡單;在乙個組織中,總有那麼一些人做了整個工作的80%,就像第三步中的ldns;有些事情你以為這樣可以,但是這樣恰恰不可以,例如為什麼根網域名稱服務不將對應關係直接返回,還要走那麼多步;越在低處,做的事情越具體,越在高處,做的越是統籌全域性,所以高層不要介入太具體的事情。等等

可以說每乙個觀點都夠我寫上一片文章的。本次要說的觀點是第一條:好多事情的成功並沒有表面上看起來那麼簡單。你之所以認為簡單,因為你不了解整個事情的過程。你只是置身事外,用局外人的眼光看事情。

好多人的成功真的不是外表看來那樣簡單。

DNS網域名稱解析

dns是動態網域名稱系統的英文簡稱,是用來把我們輸入的網域名稱解析成ip位址的,如果沒有dns我們輸入的例如www.baidu.com這樣的網域名稱就無法被訪問。如果我們訪問 的時候要輸入ip位址的話,顯然既不方便也不容易記憶,所以我們用網域名稱來訪問 網域名稱雖然便於人們記憶,但網路中的計算機之間...

網域名稱解析 DNS

網際網路的網域名稱解析系統dns是乙個聯機分布式資料庫系統,並採用客戶 伺服器體系。tcp ip應用程式使用它來完成主機名稱和ip位址之間的對映。dns使大多數名字都在本地解析,僅少量解析需要在網際網路上通訊,因此系統效率很高。由於dns是分布式系統,即使單個計算機除了故障,也不會妨礙整個系統正常執...

DNS網域名稱解析

1 dns,domain name system,用來將主機名字轉換為ip位址。人們很難記住32位的ip位址,即使是點分十進位制的形式也很難記,但是主機的名字卻比較容易記憶。計算機處理ip資料報時不使用網域名稱,而是使用ip位址。因為主機名字不是定長的,計算機不容易處理,計算機擅長處理定長的ip位址...