<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # 什么是DNS DNS (Domain Name System), 也叫網域名稱系統,是互聯網的一項服務。它實質上是一個 **域名** 和 **IP** 相互映射的分布式數據庫,有了它,我們就可以通過域名更方便的訪問互聯網。 DNS有以下特點: * 分布式的 * 協議支持TCP 和 UDP, 常用端口是53 * 每一級域名的長度限制是63 * 域名總長度限制是253 <br> <br> # DNS域名稱空間的組織方式 | 名稱類型 | 說明 | 說明 | | --- | --- |--- | | 根域 | DNS域名中使用時,規定由尾部句號(.)來制定與名稱位于根或者更好基本的域層次結構 | 單個句號(.)或句號用于末尾的名稱 | 頂級域 | 用例指示某個國家/地區或組織使用的名稱的類型名稱 | .com | 第二層域 | 個人或組織在Internet上使用的注冊名稱 | `qq.com` | 子域 | 已注冊的耳機域名派生的域名,通俗講就是網站名 | `www.qq.com` | 主機名 | 通常情況下,DNS域名的最左側的標簽標識網絡上的特定計算機,如h1 | `h1.www.qq.com` <br> <br> # DNS 解析流程 ![](https://img.kancloud.cn/c6/91/c691717db1e14d02681cdf88f903fbc8_830x460.png) * 根服務器:解析后綴 * TLD服務器:解析一級域名 * Name服務器:解析二、三、四……級域名 <br> DNS 查詢以各種不同的方式進行解析。客戶機有時也可通過使用從以前查詢獲得的緩存信息就地應答查詢。DNS 服務器可使用其自身的資源記錄信息緩存來應答查詢,也可代表請求客戶機來查詢或聯系其他 DNS 服務器,以完全解析該名稱,并隨后將應答返回至客戶機。這個過程稱為遞歸。 <br> 另外,客戶機自己也可嘗試聯系其他的 DNS 服務器來解析名稱。如果客戶機這么做,它會使用基于服務器應答的獨立和附加的查詢,該過程稱作迭代,即DNS服務器之間的交互查詢就是迭代查詢。 <br> | 記錄類型 | 含義 | | --- | --- | | SOA:(StartOf Authority, 起始授權記錄) | 一個區域解析庫有且只能有一個SOA記錄,而且必須放在第一條 | | A記錄(主機記錄、IPV4) | 用于名稱解析的重要記錄,將特定的主機名映射到對應主機的IP地址上 CNAME記錄(別名記錄) | ?于返回另一個域名,即當前查詢的域名是另?個域名的跳轉, 主要用于域名的內部跳轉,為服務器?配置提供靈活性 NS記錄(域名服務?記錄) | ?于返回保存下一級域名信息的服務?地址。該記錄只能設置為域名,不能設置為IP地址 MX(郵件記錄)|用于返回接收電子郵件的服務器地址 | IPv6主機記錄(AAAA記錄) | 與A記錄對應,用于將特定的主機名映射到一個主機的IPv6地址 ## 客戶端解析流程 ![](https://box.kancloud.cn/ca7d5efabb0e0824cf50a6d8c1bac021_615x537.png) 1、在瀏覽器中輸入 `www.qq.com` 域名,操作系統會先檢查自己本地的hosts文件是否有這個網址映射關系,如果有,就先調用這個IP地址映射,完成域名解析。 <br> 2、如果hosts里沒有這個域名的映射,則查找本地DNS解析器緩存,是否有這個網址映射關系,如果有,直接返回,完成域名解析。 <br> ## 服務端解析流程 ![](https://box.kancloud.cn/7bc0494afd514cef8c751d37cb8b787b_1053x601.png) <br> 1. 客戶端向本地DNS服務器(遞歸解析服務器) 發出解析tool.chinaz.com域名的請求 2. 本地dns服務器查看緩存,是否有緩存過tool.chinaz.com域名,如果有直接返回給客戶端;如果沒有執行下一步 3. 本地dns服務器向根域名服務器發送請求,查詢com頂級域的nameserver 地址 4. 拿到com域名的IP后,再向com nameserver發送請求,獲取chinaz域名的nameserver地址 5. 繼續請求chinaz的nameserver, 獲取tool域名的地址,最終得到了tool.chinaz.com的IP,本地dns服務器把這個結果緩存起來,以供下次查詢快速返回 6. 本地dns服務器把把結果返回給客戶端 <br> ## 遞歸解析服務器 vs 權威域名服務器 我們在解析流程中發現兩類DNS服務器,客戶端直接訪問的是 `遞歸解析服務器`, 它在整個解析過程中也最忙。 它的查詢步驟是遞歸的,從根域名服務器開始,一直詢問到目標域名。 <br> 遞歸解析服務器通過請求一級一級的權威域名服務器,獲得下一目標的地址,直到找到目標域名的 `權威域名服務器` <br> 簡單來說: `遞歸解析服務器` 是負責解析域名的, `權威域名服務器`是負責存儲域名記錄的 <br> 遞歸解析服務器一般由ISP提供,除此之外也有一些比較出名的公共遞歸解析服務器, 如谷歌的8.8.8.8,聯通的114,BAT也都有推出公共遞歸解析服務器,但性能最好的應該還是你的ISP提供的,只是可能會有 `DNS劫持` 的問題 <br> ## 為什么只有13個根域名服務器呢 DNS 協議使用了UDP查詢, 由于UDP查詢中能保證性能的最大長度是512字節,要讓所有根域名服務器數據能包含在512字節的UDP包中, 根服務器只能限制在13個, 而且每個服務器要使用字母表中單字母名 ![](https://box.kancloud.cn/317d5491315c6210bc5df50b6d638e27_610x671.png) <br> <br> # DNS預熱 預熱的目的: 1. 減少請求次數 2. 提前對DNS預獲取 ## 預熱的方式 1. 爬蟲 2. APP 3. 網頁meta ~~~ <meta http-equiv="x-dns-prefetch-control" content="on" /> <link rel="dns-prefetch" href="//webresource.english.c-ctrip.com" /> <link rel="dns-prefetch" href="//webresource.c-ctrip.com" /> <link rel="dns-prefetch" href="//s.c-ctrip.com" /> <link rel="dns-prefetch" href="//pic.english.c-ctrip.com" /> <link rel="dns-prefetch" href="//m.ctrip.com" /> ~~~ <br> <br> # 參考資料 [DNS基礎知識](https://juejin.im/post/59c6201df265da064428b835) [DNS解析的過程是什么,求詳細的?](https://www.zhihu.com/question/23042131)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看