二、dns解析原理
字段作用
16位標識
相當於id,標記一對查詢和應答,區分應答屬於哪個查詢
16位標誌
標誌通訊方式和狀態,(查詢/應答、是否遞迴查詢…)
其中的查詢問題欄位又包括:
字段作用
查詢名要查詢的網域名稱
查詢型別
查詢類通常為1(表示獲取ip位址)
第乙個報文是我的主機傳送乙個dns查詢報文,查詢名為www.baidu.com,其中29043為標識值 、『+』表示使用遞迴查詢、'a?'表示使用a型別查詢方式、(31)為報文長度。
第二個報文為應答報文,標識值一樣,3/0/0表示3個應答資源、0個授權資源、0個額外資訊記錄,cname表示後緊隨其後是別名,a後為ip位址。
網域名稱的層次結構可以表示為一顆樹,第一層為未命名的根節點,下一層為icann定義,常見的有com、edu、gov、cn等,第二層為二級網域名稱則可以通過先到先服務的基礎申請獲得(使用者申請到二級網域名稱後,就可以在子域下建立任何新的網域名稱)
網際網路中有數萬台dns伺服器,肯定不能一台一台挨個去找。dns其實就是一套分布式的網域名稱服務系統,每台伺服器上都存放著大量的網域名稱與ip位址的對映,伺服器採用下面的辦法。首先,將負責管理下級域的dns伺服器的ip位址註冊到它們的上級dns伺服器中,然後上級dns伺服器的ip位址再註冊到更上一級的dns伺服器中。比如負責管理class.school.com這個網域名稱的dns伺服器的ip位址需要註冊到school.com域的dns伺服器,而school.com域的伺服器需要註冊到com伺服器下,這樣就可以通過上級查詢下級伺服器的ip位址。
乙個網域名稱能夠被訪問即是完成了第一步註冊到dns伺服器中,接下來訪問該網域名稱,假如訪問class.school.com,首先會傳送到最近的dns伺服器上查詢,如果沒有就需要從頂層開始向下查詢,最近的dns伺服器中儲存了根域dns伺服器的資訊,因此它會將來自客戶端的查詢訊息**給根域dns伺服器,根域伺服器中也沒有class.school.com這個網域名稱,但根據網域名稱結構可以判斷這個網域名稱屬於com域,因此根域dns伺服器會返回它所管理的com域中的dns伺服器的ip位址,接下來,最近的dns伺服器又會向com域的dns伺服器傳送查詢訊息。com域中也沒有class.school.com這個網域名稱的資訊,和剛才一樣,com域伺服器會返回它下面的school.com域的dns伺服器的ip位址。以此類推,只要重複前面的步驟,就可以順藤摸瓜找到目標dns伺服器,然後把請求傳送過去。
最後目標dns伺服器解析後返回給原先訪問的最近dns伺服器並快取下來,再由最近的dns伺服器返回給客戶端目標網域名稱的ip位址。
補充說明一下現實中上級域和下級域有可能共享同一臺dns伺服器。在這種情況下,訪問上級dns伺服器時就可以向下跳過一級dns伺服器,直接返回再下一級dns伺服器的相關資訊。此外,有時候並不需要從最上級的根域開始查詢,因為每個dns伺服器有乙個快取功能,可以記住之前查詢過的網域名稱。如果要查詢的網域名稱和相關資訊已經在快取中,那麼就可以直接返回響應,接下來的查詢可以從快取的位置開始向下進行。相比每次都從根域找起來說,快取可以減少查詢所需的時間。
DNS網域名稱解析詳解
dns,是domain name system的縮寫,翻譯過來就是網域名稱系統,是網際網路上作為網域名稱和ip位址相互對映的乙個分布式資料庫。dns能夠使使用者更方便的訪問 網域名稱,不用去記住能夠被機器直接讀取的ip位址,同時便於 擴容與維護。通過網域名稱,最終得到該網域名稱對應的ip位址的過程叫...
DNS網域名稱解析
dns是動態網域名稱系統的英文簡稱,是用來把我們輸入的網域名稱解析成ip位址的,如果沒有dns我們輸入的例如www.baidu.com這樣的網域名稱就無法被訪問。如果我們訪問 的時候要輸入ip位址的話,顯然既不方便也不容易記憶,所以我們用網域名稱來訪問 網域名稱雖然便於人們記憶,但網路中的計算機之間...
DNS網域名稱解析
一次請求過程大約經過三步 第一,dns網域名稱解析 第二,cdn獲取離使用者最近的節點 第三,建立http連線。今天和大家聊的是dns網域名稱解析。既然是dns網域名稱解析,那麼什麼是dns?dns domain name system,網域名稱系統 網際網路上作為網域名稱和ip位址相互對映的乙個分...