DNS為什么查詢根域名服務(wù)器只返回13個(gè)IP地址
時(shí)間:2023-02-13 04:27:01 | 來源:建站知識(shí)
時(shí)間:2023-02-13 04:27:01 來源:建站知識(shí)
一次DNS的遞歸查詢,首先會(huì)查詢根域名服務(wù)?(.),然后是com.,edu.,等頂級(jí)域,根域名服務(wù)器承載了全球ipv4的域名解析,他的數(shù)量肯定是越多越好,為什么一次查詢根域名服務(wù)器?只返回13個(gè)IP地 址呢?我們先看看DNS包結(jié)構(gòu),再分析DNS包傳輸?shù)?一些限制;
1、DNS包傳輸限制以太?的最?傳輸單元(MTU)是1500,就是說一次鏈路上傳輸?shù)淖?長(zhǎng)度是1500,結(jié)合下圖,IP?部20字節(jié),UDP?部8字節(jié),DNS包的?度是否是1500減去28呢?DNS主要使?用UDP協(xié)議,由于UDP協(xié)議是不不可靠的傳輸,沒有TCP協(xié)議的超時(shí)和重傳機(jī)制,所以UDP服務(wù)為了了避免分?片,都會(huì)對(duì)應(yīng)?用做?個(gè)包長(zhǎng)度的限制;
先來直觀的看?一下TCP協(xié)議傳輸?長(zhǎng)度的協(xié)商機(jī)制:TCP協(xié)議在三次握手的時(shí)候,SYN包?里面的MSS字段代表TCP協(xié)議的最?報(bào)文段?度,通常情況下,MSS=MTU-20(IP?部長(zhǎng)度)-20(TCP首部長(zhǎng)度),通信的兩端都通告?己能接收的最?大MSS,TCP協(xié) 議會(huì)選擇兩邊較小的MSS作為這條連接的MSS,TCP協(xié)議設(shè)計(jì)的這種機(jī)制可以避免鏈路發(fā)生分片;
DNS限制?度是512字節(jié),那么為什么是512呢?查閱相關(guān)資料料得知,IP協(xié)議實(shí)現(xiàn)規(guī)定,要求主機(jī)最少能 夠收發(fā)576個(gè)字節(jié)的數(shù)據(jù)報(bào)。UDP的應(yīng)用程序的限制?這個(gè)?度要小,?多應(yīng)用限制在512字節(jié)。
2、DNS之UDP和TCP傳輸DNS協(xié)議有UDP,TCP兩種,通常wireshark抓包看到的DNS請(qǐng)求通常都是UDP協(xié)議的,例如以下包:
看?一下DNS響應(yīng)包中的字段:其中,Truncated:字段代表響應(yīng)是否被截?cái)?,?dāng)時(shí)Truncated:被置為1時(shí),就意味著響應(yīng)超過了了512字節(jié),當(dāng)前響應(yīng)只返回了前512字節(jié),這時(shí)DNS server會(huì)使?用TCP重發(fā)原來的請(qǐng)求,這樣顯然增加了了域 名解析時(shí)間。
當(dāng)查詢根域的NS記錄時(shí),為了了在?一個(gè)報(bào)?文中傳完響應(yīng),512字節(jié)只夠返回包含13個(gè)根域名服務(wù)器?的NS記錄和A記錄;所以雖然從?絡(luò)覆蓋角度考慮根域名服務(wù)器?的地址越多越好,實(shí)際上一次查詢根域名服 務(wù)器?只返回到13個(gè)IP地址。