DNS 描述與查詢過程


DNS(Domain Names System),域名系統,是互聯網一項服務,是進行域名和與之相對應的 IP 地址進行轉換的服務器

簡單來講,DNS 相當於一個翻譯官,負責將域名翻譯成 ip 地址

  • IP 地址:一長串能夠唯一地標記網絡上的計算機的數字
  • 域名:是由一串用點分隔的名字組成的 Internet 上某一台計算機或計算機組的名稱,用於在數據傳輸時對計算機的定位標識
DNS

1、域名

域名是一個具有層次的結構,從上到下一次為根域名、頂級域名、二級域名、三級域名...

DNS

例如www.xxx.com,www為三級域名、xxx為二級域名、com為頂級域名,系統為用戶做了兼容,域名末尾的根域名.一般不需要輸入

在域名的每一層都會有一個域名服務器,如下圖:

DNS

除此之外,還有電腦默認的本地域名服務器

2、查詢方式

DNS 查詢的方式有兩種:

  • 遞歸查詢:如果 A 請求 B,那么 B 作為請求的接收者一定要給 A 想要的答案
DNS
  • 迭代查詢:如果接收者 B 沒有請求者 A 所需要的准確內容,接收者 B 將告訴請求者 A,如何去獲得這個內容,但是自己並不去發出請求
DNS

3、域名緩存

在域名服務器解析的時候,使用緩存保存域名和 IP 地址的映射

計算機中 DNS 的記錄也分成了兩種緩存方式:

  • 瀏覽器緩存:瀏覽器在獲取網站域名的實際 IP 地址后會對其進行緩存,減少網絡請求的損耗
  • 操作系統緩存:操作系統的緩存其實是用戶自己配置的 hosts 文件

4、查詢過程

解析域名的過程如下:

  • 首先搜索瀏覽器的 DNS 緩存,緩存中維護一張域名與 IP 地址的對應表

  • 若沒有命中,則繼續搜索操作系統的 DNS 緩存

  • 若仍然沒有命中,則操作系統將域名發送至本地域名服務器,本地域名服務器采用遞歸查詢自己的 DNS 緩存,查找成功則返回結果

  • 若本地域名服務器的 DNS 緩存沒有命中,則本地域名服務器向上級域名服務器進行迭代查詢

    • 首先本地域名服務器向根域名服務器發起請求,根域名服務器返回頂級域名服務器的地址給本地服務器
    • 本地域名服務器拿到這個頂級域名服務器的地址后,就向其發起請求,獲取權限域名服務器的地址
    • 本地域名服務器根據權限域名服務器的地址向其發起請求,最終得到該域名對應的 IP 地址
  • 本地域名服務器將得到的 IP 地址返回給操作系統,同時自己將 IP 地址緩存起來

  • 操作系統將 IP 地址返回給瀏覽器,同時自己也將 IP 地址緩存起

  • 至此,瀏覽器就得到了域名對應的 IP 地址,並將 IP 地址緩存起

流程如下圖所示:

DNS

轉自 微信公眾號:JS每日一題


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM