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

        共 3793字,需瀏覽 8分鐘

         ·

        2022-02-25 11:40

        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)采用層次樹(shù)狀結(jié)構(gòu)的域名結(jié)構(gòu)

        域名的結(jié)構(gòu)由若干個(gè)分量組成,各分量之間用點(diǎn)隔開(kāi),分別代表不同級(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)源:入門小站


        推薦閱讀:

        不是你需要中臺(tái),而是一名合格的架構(gòu)師(附各大廠中臺(tái)建設(shè)PPT)

        企業(yè)IT技術(shù)架構(gòu)規(guī)劃方案

        論數(shù)字化轉(zhuǎn)型——轉(zhuǎn)什么,如何轉(zhuǎn)?

        華為干部與人才發(fā)展手冊(cè)(附PPT)

        企業(yè)10大管理流程圖,數(shù)字化轉(zhuǎn)型從業(yè)者必備!

        【中臺(tái)實(shí)踐】華為大數(shù)據(jù)中臺(tái)架構(gòu)分享.pdf

        華為的數(shù)字化轉(zhuǎn)型方法論

        華為如何實(shí)施數(shù)字化轉(zhuǎn)型(附PPT)

        超詳細(xì)280頁(yè)Docker實(shí)戰(zhàn)文檔!開(kāi)放下載

        華為大數(shù)據(jù)解決方案(PPT)

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

        手機(jī)掃一掃分享

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

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 中文无码乱伦中文 | 久久精91久久88香蕉国产 | 潘金莲1~5集三级 | 天天爽夜夜爽人人爽 | 亚洲精品久久久狠狠爱小说 |