<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          8 張圖帶你徹底搞懂 DNS 域名解析過(guò)程

          共 3694字,需瀏覽 8分鐘

           ·

          2022-02-21 16:14

          在下方公眾號(hào)后臺(tái)回復(fù):JGNB,可獲取杰哥原創(chuàng)的 PDF 手冊(cè)。

          1、DNS

          DNS(Domain Name System)是域名系統(tǒng)的英文縮寫,是一種組織成域?qū)哟谓Y(jié)構(gòu)的計(jì)算機(jī)和網(wǎng)絡(luò)服務(wù)命名系統(tǒng),用于 TCP/IP 網(wǎng)絡(luò)。

          2、域名系統(tǒng) DNS 的作用

          通常我們有兩種方式識(shí)別主機(jī):通過(guò)主機(jī)名或者 IP 地址。人們喜歡便于記憶的主機(jī)名表示,而路由器則喜歡定長(zhǎng)的、有著層次結(jié)構(gòu)的 IP 地址。為了滿足這些不同的偏好,我們就需要一種能夠進(jìn)行主機(jī)名到IP 地址轉(zhuǎn)換的目錄服務(wù),域名系統(tǒng)作為將域名和 IP 地址相互映射的一個(gè)分布式數(shù)據(jù)庫(kù),能夠使人更方便地訪問(wèn)互聯(lián)網(wǎng)。

          因此,即使不使用域名也可以通過(guò)IP地址來(lái)尋址目的主機(jī),但域名與IP地址相比,便于人們記憶。因此對(duì)于大多數(shù)網(wǎng)絡(luò)應(yīng)用,我們一般使用域名來(lái)訪問(wèn)目的主機(jī),而不是直接使用IP地址來(lái)訪問(wèn)。

          對(duì)于本例,簡(jiǎn)單來(lái)說(shuō),當(dāng)我們?cè)跒g覽器地址欄中輸入某個(gè)Web服務(wù)器的域名時(shí)。用戶主機(jī)首先用戶主機(jī)會(huì)首先在自己的DNS高速緩存中查找該域名所應(yīng)的IP地址。

          如果沒(méi)有找到,則會(huì)向網(wǎng)絡(luò)中的某臺(tái)DNS服務(wù)器查詢,DNS服務(wù)器中有域名和IP地址映射關(guān)系的數(shù)據(jù)庫(kù)。當(dāng)DNS服務(wù)器收到DNS查詢報(bào)文后,在其數(shù)據(jù)庫(kù)中查詢,之后將查詢結(jié)果發(fā)送給用戶主機(jī)。

          現(xiàn)在,用戶主機(jī)中的瀏覽器可以通過(guò)Web服務(wù)器的IP地址對(duì)其進(jìn)行訪問(wèn)了。

          3、域名的層級(jí)關(guān)系

          層級(jí)關(guān)系特點(diǎn)

          因特網(wǎng)采用層次樹狀結(jié)構(gòu)的域名結(jié)構(gòu)

          域名的結(jié)構(gòu)由若干個(gè)分量組成,各分量之間用點(diǎn)隔開,分別代表不同級(jí)別的域名。

          • 每一級(jí)的域名都由英文字母和數(shù)字組成,不超過(guò)63個(gè)字符,不區(qū)分大小寫字母。

          • 級(jí)別最低的域名寫在最左邊,而級(jí)別最高的頂級(jí)域名寫在最右邊。

          • 完整的域名不超過(guò)255個(gè)字符。

          域名系統(tǒng)既不規(guī)定一個(gè)域名需要包含多少個(gè)下級(jí)域名,也不規(guī)定每一級(jí)的域名代表什么意思。

          各級(jí)域名由其上一級(jí)的域名管理機(jī)構(gòu)管理,而最高的頂級(jí)域名則由因特網(wǎng)名稱與數(shù)字地址分配機(jī)構(gòu)ICANN進(jìn)行管理。

          因特網(wǎng)的域名空間

          上圖展示了 DNS 服務(wù)器的部分層次結(jié)構(gòu),從上到下依次為根域名服務(wù)器、頂級(jí)域名服務(wù)器和權(quán)威域名服務(wù)器。域名和IP地址的映射關(guān)系必須保存在域名服務(wù)器中,供所有其他應(yīng)用查詢。顯然不能將所有信息都儲(chǔ)存在一臺(tái)域名服務(wù)器中。DNS使用分布在各地的域名服務(wù)器來(lái)實(shí)現(xiàn)域名到IP地址的轉(zhuǎn)換。

          域名服務(wù)器可以劃分為以下四種不同的類型:

          • 根域名服務(wù)器:根域名服務(wù)器是最高層次的域名服務(wù)器。每個(gè)根域名服務(wù)器都知道所有的頂級(jí)域名服務(wù)器的域名及其IP地址。因特網(wǎng)上共有13個(gè)不同IP地址的根域名服務(wù)器。當(dāng)本地域名服務(wù)器向根域名服務(wù)器發(fā)出查詢請(qǐng)求時(shí),路由器就把查詢請(qǐng)求報(bào)文轉(zhuǎn)發(fā)到離這個(gè)DNS客戶最近的一個(gè)根域名服務(wù)器。這就加快了DNS的查詢過(guò)程,同時(shí)也更合理地利用了因特網(wǎng)的資源。

          • 頂級(jí)域名服務(wù)器:這些域名服務(wù)器負(fù)責(zé)管理在該頂級(jí)域名服務(wù)器注冊(cè)的所有二級(jí)域名。當(dāng)收到DNS查詢請(qǐng)求時(shí)就給出相應(yīng)的回答(可能是最后的結(jié)果,也可能是下一級(jí)權(quán)限域名服務(wù)器的IP地址)。

          • 權(quán)限域名服務(wù)器:這些域名服務(wù)器負(fù)責(zé)管理某個(gè)區(qū)的域名。每一個(gè)主機(jī)的域名都必須在某個(gè)權(quán)限域名服務(wù)器處注冊(cè)登記。因此權(quán)限域名服務(wù)器知道其管轄的域名與IP地址的映射關(guān)系。另外,權(quán)限域名服務(wù)器還知道其下級(jí)域名服務(wù)器的地址。

          • 本地域名服務(wù)器:本地域名服務(wù)器不屬于上述的域名服務(wù)器的等級(jí)結(jié)構(gòu)。當(dāng)一個(gè)主機(jī)發(fā)出DNS請(qǐng)求報(bào)文時(shí),這個(gè)報(bào)文就首先被送往該主機(jī)的本地域名服務(wù)器。本地域名服務(wù)器起著代理的作用,會(huì)將該報(bào)文轉(zhuǎn)發(fā)到上述的域名服務(wù)器的等級(jí)結(jié)構(gòu)中。本地域名服務(wù)器離用戶較近,一般不超過(guò)幾個(gè)路由器的距離,也有可能就在同一個(gè)局域網(wǎng)中。本地域名服務(wù)器的IP地址需要直接配置在需要域名解析的主機(jī)中。

          4、DNS域名解析過(guò)程

          域名解析包含兩種查詢方式,分別是遞歸查詢和迭代查詢。

          遞歸查詢

          如果主機(jī)所詢問(wèn)的本地域名服務(wù)器不知道被查詢域名的 IP 地址,那么本地域名服務(wù)器就以 DNS 客戶端的身份,向其他根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文,即替主機(jī)繼續(xù)查詢,而不是讓主機(jī)自己進(jìn)行下一步查詢。

          我們以一個(gè)例子來(lái)了解DNS遞歸查詢的工作原理,假設(shè)圖中的主機(jī) (IP地址為m.xyz.com) 想知道域名y.abc.com的IP地址。

          1、主機(jī)首先向其本地域名服務(wù)器進(jìn)行遞歸查詢。

          2、本地域名服務(wù)器收到遞歸查詢的委托后,也采用遞歸查詢的方式向某個(gè)根域名服務(wù)器查詢。

          3、根域名服務(wù)器收到遞歸查詢的委托后,也采用遞歸查詢的方式向某個(gè)頂級(jí)域名服務(wù)器查詢。

          4、頂級(jí)域名服務(wù)器收到遞歸查詢的委托后,也采用遞歸查詢的方式向某個(gè)權(quán)限域名服務(wù)器查詢。

          過(guò)程如圖所示

          當(dāng)查詢到域名對(duì)應(yīng)的IP地址后,查詢結(jié)果會(huì)在之前受委托的各域名服務(wù)器之間傳遞,最終傳回給用戶主機(jī)。

          過(guò)程如圖所示

          迭代查詢

          當(dāng)根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請(qǐng)求報(bào)文時(shí),要么給出所要查詢的IP 地址,要么告訴本地服務(wù)器下一步應(yīng)該找哪個(gè)域名服務(wù)器進(jìn)行查詢,然后讓本地服務(wù)器進(jìn)行后續(xù)的查詢。

          迭代查詢過(guò)程如下

          1、主機(jī)首先向其本地域名服務(wù)器進(jìn)行遞歸查詢。
          2、本地域名服務(wù)器采用迭代查詢,它先向某個(gè)根域名服務(wù)器查詢。
          3、根域名服務(wù)器告訴本地域名服務(wù)器,下一次應(yīng)查詢的頂級(jí)域名服務(wù)器的IP地址。
          4、本地域名服務(wù)器向頂級(jí)域名服務(wù)器進(jìn)行迭代查詢。
          5、頂級(jí)域名服務(wù)器告訴本地域名服務(wù)器,下一次應(yīng)查詢的權(quán)限域名服務(wù)器的IP地址。
          6、本地域名服務(wù)器向權(quán)限域名服務(wù)器進(jìn)行迭代查詢。
          7、權(quán)限域名服務(wù)器告訴本地域名服務(wù)器所查詢的域名的IP地址。
          8、本地域名服務(wù)器最后把查詢的結(jié)果告訴主機(jī)。

          過(guò)程如圖所示

          由于遞歸查詢對(duì)于被查詢的域名服務(wù)器負(fù)擔(dān)太大,通常采用以下模式:從請(qǐng)求主機(jī)到本地域名服務(wù)器的查詢是遞歸查詢,而其余的查詢是迭代查詢。

          5、高速緩存

          為了提高DNS的查詢效率,并減輕根域名服務(wù)器的負(fù)荷和減少因特網(wǎng)上的DNS查詢報(bào)文數(shù)量,在域名服務(wù)器中廣泛地使用了高速緩存。高速緩存用來(lái)存放最近查詢過(guò)的域名以及從何處獲得域名映射信息的記錄。

          由于域名到IP地址的映射關(guān)系并不是永久不變,為保持高速緩存中的內(nèi)容正確,域名服務(wù)器應(yīng)為每項(xiàng)內(nèi)容設(shè)置計(jì)時(shí)器并刪除超過(guò)合理時(shí)間的項(xiàng)(例如,每個(gè)項(xiàng)目只存放兩天)。

          不但在本地域名服務(wù)器中需要高速緩存,在用戶主機(jī)中也很需要。許多用戶主機(jī)在啟動(dòng)時(shí)從本地域名服務(wù)器下載域名和IP地址的全部數(shù)據(jù)庫(kù),維護(hù)存放自己最近使用的域名的高速緩存,并且只在從緩存中找不到域名時(shí)才向域名服務(wù)器查詢。同理,主機(jī)也需要保持高速緩存中內(nèi)容的正確性。

          如圖所示

          如果本地域名服務(wù)器不久前已經(jīng)有用戶查詢過(guò)域名為y.abc.com的IP地址,則本地域名服務(wù)器的高速緩存中應(yīng)該存有該域名對(duì)應(yīng)的IP地址。因此,直接把高速緩存中存放的上次查詢結(jié)果(即y.abc.com的IP地址)告訴用戶。

          6、DNS相關(guān)面試問(wèn)題

          1、DNS為什么用UDP?

          更正確的答案是 DNS 既使用 TCP 又使用 UDP。當(dāng)進(jìn)行區(qū)域傳送(主域名服務(wù)器向輔助域名服務(wù)器傳送變化的那部分?jǐn)?shù)據(jù))時(shí)會(huì)使用 TCP,因?yàn)閿?shù)據(jù)同步傳送的數(shù)據(jù)量比一個(gè)請(qǐng)求和應(yīng)答的數(shù)據(jù)量要多,而 TCP 允許的報(bào)文長(zhǎng)度更長(zhǎng),因此為了保證數(shù)據(jù)的正確性,會(huì)使用基于可靠連接的 TCP。

          當(dāng)客戶端向 DNS 服務(wù)器查詢域名 ( 域名解析) 的時(shí)候,一般返回的內(nèi)容不會(huì)超過(guò) UDP 報(bào)文的最大長(zhǎng)度,即 512 字節(jié)。用 UDP 傳輸時(shí),不需要經(jīng)過(guò) TCP 三次握手的過(guò)程,從而大大提高了響應(yīng)速度,但這要求域名解析器和域名服務(wù)器都必須自己處理超時(shí)和重傳從而保證可靠性。

          2、遞歸查詢和迭代查詢區(qū)別?

          遞歸查詢: 如果主機(jī)所詢問(wèn)的本地域名服務(wù)器不知道被查詢域名的 IP 地址,那么本地域名服務(wù)器就以 DNS 客戶端的身份,向其他根域名服務(wù)器繼續(xù)發(fā)出查詢請(qǐng)求報(bào)文,即替主機(jī)繼續(xù)查詢,而不是讓主機(jī)自己進(jìn)行下一步查詢。

          迭代查詢:當(dāng)根域名服務(wù)器收到本地域名服務(wù)器發(fā)出的迭代查詢請(qǐng)求報(bào)文時(shí),要么給出所要查詢的IP 地址,要么告訴本地服務(wù)器下一步應(yīng)該找哪個(gè)域名服務(wù)器進(jìn)行查詢,然后讓本地服務(wù)器進(jìn)行后續(xù)的查詢。

          3、使用域名訪問(wèn)web服務(wù)器過(guò)程

          具體請(qǐng)看本專欄的這篇文章:面試官問(wèn)我:從地址欄輸入U(xiǎn)RL到顯示頁(yè)面都發(fā)生了什么?

          4、講講DNS解析過(guò)程?

          詳細(xì)解析過(guò)程請(qǐng)看上文DNS域名解析過(guò)程,這里我們做一個(gè)總結(jié):

          瀏覽器緩存—-->系統(tǒng)hosts文件—-->本地DNS解析器緩存—-->本地域名服務(wù)器(本地配置區(qū)域資源、本地域名服務(wù)器緩存)—-->根域名服務(wù)器—-->主域名服務(wù)器—-->下一級(jí)域名域名服務(wù)器 客戶端—-->本地域名服務(wù)器(遞歸查詢) 本地域名服務(wù)器-->DNS服務(wù)器的交互查詢是迭代查詢

          來(lái)源:入門小站

          推薦閱讀

          關(guān)于 DNS,你想聊的可能更多

          5 種常見的 DNS 故障診斷及問(wèn)題處理方法

          DNS 大全,看這四張圖就夠了!

          瀏覽 105
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  成人做爰A片免费看网站 | 18禁网站亚洲 | 人人看人人玩人人摸 | 超碰97自拍 | www.亚洲色图 |