請教個問題:
當我本地沒有dns緩存記錄的時候,查詢谷歌dns服務器8.8.8.8 。是怎麼能作到毫秒級別的返回速度的~。web
訪問url獲取dns過程:
1,瀏覽器查很低host是否有映射ip,若是有直接返回,不用查dns域名服務器。數據庫
2,若是1沒有,查詢本地dns緩存表,win下用命令ipconfig/displaydns查看
ipconfig/displaydns > c://xx2.txt 導出到文件查看百度的以下
瀏覽器
裏面的生產時間單位應該是秒,沒錯,4分鐘不到,www.baidu.com本地緩存就失效了。能夠得出結論,咱們的緩存更新的很快,DNS查詢是個很頻繁的活動,另外,這個web網址的其餘類型的服務器的域名都算單獨的的一條緩存。這樣依賴,DNS查詢就更加頻繁了。緩存
3,能在本地查到緩存不是我想要討論的,若是沒有查到,就得去查DNS緩存服務器了。經常使用DNS設置服務器
a,固定公用dns服務器谷歌的8.8.8.8或者114DNS的114.114.114.114。
b,網關192.168.0.1路由器地址,就是使用路由器上面設置的dns(手動設置或者ISP自動分配),在局域網內,你們統一使用一個域名服務器地址,有利於路由器dns上緩存的續期,可是也容易被dns劫持。。(另外的話題了,有機會再說,局域網內用arp協議作網關欺騙)分佈式
c,自動分配和b同樣(?待驗證)
4,dns域名服務器查詢機制,分爲遞歸查詢和迭代查詢,詳情見https://blog.csdn.net/yipiankongbai/article/details/25031461,整體上就是DNS域名服務器是個分佈式數據庫系統,一句域名分類有一套檢索方式。你電腦設置的那個dns就是本地dns服務器,他是遞歸查詢,能夠把他當作一個負責人,會比較負責人根據其餘迭代查詢服務器內容,去找其餘DNS服務器。
那麼問題來了,測試
當設置爲8.8.8.8的時候,DNS查詢是發給了美國谷歌的dns查詢的,他幫忙去查找。url
當設置爲114DNS的時候,DNS查詢是發給了美國谷歌的dns查詢的,他幫忙去查找。
這地理差距放在哪裏,在我測試中,二者幾乎速度都是毫秒級別,瞬間就完成了。114 的就在國內,老美的須要,從中國跑到美國,遇到沒有記錄的域名還要跑n到的域名服務器再回來。返回中國。.net
怎麼這麼快~,怎麼這麼快~?
額外,若是設置DNS服務器,會發局域網內廣播,MDNS 組播DNS,在我測試中是這樣的,那麼何時會發LLMNR協議報文了?我也是暈了。blog
求解惑。分佈式數據存儲系統能作到那麼快的返回速度,我也是驚呆了
nslookup -d www.baidu.com這個命令下,有點好像是域名查找的過程,在網上盡然沒有找到相關的資料介紹(只說看留存時間),不敢亂YY,有沒有懂的大神: 。