tft每日頭條

 > 科技

 > dns可以把域名解析成ip地址嗎

dns可以把域名解析成ip地址嗎

科技 更新时间:2024-11-26 16:54:56

一次DNS的遞歸查詢,首先會查詢根域名服務器(.),然後是com.,edu.,等頂級域,根域名服務器承載了全球ipv4的域名解析,他的數量肯定是越多越好,為什麼一次查詢根域名服務器器隻返回13個IP地 址呢?我們先看看DNS包結構,再分析DNS包傳輸的⼀一些限制;

1、DNS包傳輸限制

以太⽹的最⼤傳輸單元(MTU)是1500,就是說一次鍊路上傳輸的最⼤長度是1500,結合下圖,IP⾸部20字節,UDP⾸部8字節,DNS包的⻓度是否是1500減去28呢?

DNS主要使⽤用UDP協議,由于UDP協議是不不可靠的傳輸,沒有TCP協議的超時和重傳機制,所以UDP服務為了了避免分⽚片,都會對應⽤用做⼀個包長度的限制;

dns可以把域名解析成ip地址嗎(DNS為什麼查詢根域名服務器隻返回13個IP地址)1

先來直觀的看⼀一下TCP協議傳輸⻓長度的協商機制:

dns可以把域名解析成ip地址嗎(DNS為什麼查詢根域名服務器隻返回13個IP地址)2

TCP協議在三次握手的時候,SYN包⾥里面的MSS字段代表TCP協議的最⼤報文段⻓度,通常情況下,MSS=MTU-20(IP⾸部長度)-20(TCP首部長度),通信的兩端都通告⾃己能接收的最⼤大MSS,TCP協 議會選擇兩邊較小的MSS作為這條連接的MSS,TCP協議設計的這種機制可以避免鍊路發生分片;

DNS限制⻓度是512字節,那麼為什麼是512呢?查閱相關資料料得知,IP協議實現規定,要求主機最少能 夠收發576個字節的數據報。UDP的應用程序的限制⽐這個⻓度要小,⼤多應用限制在512字節。

2、DNS之UDP和TCP傳輸

DNS協議有UDP,TCP兩種,通常wireshark抓包看到的DNS請求通常都是UDP協議的,例如以下包:

dns可以把域名解析成ip地址嗎(DNS為什麼查詢根域名服務器隻返回13個IP地址)3

看⼀一下DNS 響應包中的字段:

dns可以把域名解析成ip地址嗎(DNS為什麼查詢根域名服務器隻返回13個IP地址)4

其中,Truncated:字段代表響應是否被截斷,當時Truncated:被置為1時,就意味着響應超過了了512字節,當前響應隻返回了前512字節,這時DNS server會使⽤用TCP重發原來的請求,這樣顯然增加了了域 名解析時間。

當查詢根域的NS記錄時,為了了在⼀一個報⽂文中傳完響應,512字節隻夠返回包含13個根域名服務器器的NS記錄和A記錄;所以雖然從⽹絡覆蓋角度考慮根域名服務器器的地址越多越好,實際上一次查詢根域名服 務器器隻返回到13個IP地址。

查看更多

Nginx 常用指令說明

nginx的port_in_redirect配置

nginx 11 個處理階段

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关科技资讯推荐

热门科技资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved