偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

DNS 是如何影響你沖浪速度的?

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理
在日常上網(wǎng)過程中,出于好記的原因,人們更喜歡在瀏覽器中輸入網(wǎng)站的域名?,而不是 IP 地址。比如想要訪問百度,則會輸入 www.baidu.com,而不是 202.108.22.5(或者百度網(wǎng)站的其他 IP)。

本文詳細(xì)介紹了 DNS 相關(guān)知識,包括 DNS 工作原理、如何提升域名解析速度、以及 DNS 記錄與報文等內(nèi)容。

1. 域名與域名服務(wù)器?

在日常上網(wǎng)過程中,出于好記的原因,人們更喜歡在瀏覽器中輸入網(wǎng)站的域名?,而不是 IP 地址。比如想要訪問百度,則會輸入 www.baidu.com,而不是 202.108.22.5(或者百度網(wǎng)站的其他 IP)。

然而計算機(jī)網(wǎng)絡(luò)通信中所識別的標(biāo)識并不是域名?,而是 IP 地址,因?yàn)槠淇梢蕴峁┲鳈C(jī)在互聯(lián)網(wǎng)中的位置信息,而且是定長的,路由器等設(shè)備更容易處理。

圖片

為了折中人類和計算機(jī)不同的偏好,就出現(xiàn)了 DNS(Domain Name System,域名系統(tǒng)),其主要任務(wù)是根據(jù)域名查出對應(yīng)的 IP 地址。

下面先介紹一下域名和域名服務(wù)器,之后再介紹 DNS 的工作原理。

域名由若干個英文字符串組成(不區(qū)分大小寫),各字符串之間用點(diǎn)號『.』分隔連接,其中越靠右的表示域名級別越高。

舉個例子,百度的域名為 www.baidu.com,其中 com 是頂級域名(一級域名),baidu 是二級域名,www 是三級域名。

圖片

域名服務(wù)器(也稱為 DNS 服務(wù)器)負(fù)責(zé)存儲域名和 IP 地址的映射關(guān)系,當(dāng)我們需要獲取某個域名對應(yīng)的 IP 地址時,只需要從域名服務(wù)器中查詢即可。

圖片

由于域名非常非常多,如果都存放在一臺域名服務(wù)器中,那么不僅查詢速度慢,服務(wù)器壓力大,而且難以保證服務(wù)的可靠性。因此,DNS 采用了分布式的設(shè)計方案,大量的域名服務(wù)器之間通過?層次方式組織,分布在全世界范圍內(nèi)。

一般而言,域名服務(wù)器可以分為以下四類:

  • 根域名服務(wù)器:最高層級的域名服務(wù)器,因特網(wǎng)上一共有 13 個根域名服務(wù)器(以英文字母 A 到 M 依序命名,格式為[a~m].root-servers.net),每個根域名服務(wù)器都知道所有頂級域名服務(wù)器的 IP 地址,比如知道負(fù)責(zé) com 域的頂級域名服務(wù)器的 IP 地址。
  • 頂級域名服務(wù)器:對于每個頂級域名,如 com、org、edu 等,都有對應(yīng)的頂級域名服務(wù)器。頂級域名服務(wù)器知道其所管理的所有權(quán)威域名服務(wù)器的 IP 地址,比如負(fù)責(zé) com 域的頂級域名服務(wù)器知道負(fù)責(zé) baidu.com 域的權(quán)威域名服務(wù)器的 IP 地址。
  • 權(quán)威域名服務(wù)器:一個網(wǎng)站需要將其域名和 IP 地址注冊到相應(yīng)的權(quán)威域名服務(wù)器中,比如網(wǎng)站 www.baidu.com 的域名和 IP 地址就存儲在負(fù)責(zé) baidu.com 域的權(quán)威域名服務(wù)器中。
  • 本地域名服務(wù)器:本地域名服務(wù)器不屬于上述域名服務(wù)器的層次結(jié)構(gòu),但是它對域名系統(tǒng)非常重要。每個 ISP(如一個大學(xué)、一個公司)都有一個本地域名服務(wù)器(也叫默認(rèn)域名服務(wù)器)。具體在下一節(jié)中介紹。

圖片

2. 域名解析流程?

知道了域名和域名服務(wù)器的基礎(chǔ)知識后,我們來了解一下域名解析的具體流程,以輸入百度域名為例,看看我們的主機(jī)是如何得到 www.baidu.com 的 IP 地址的。

圖片

  1. 請求主機(jī)向本地域名服務(wù)器發(fā)送 DNS 查詢報文,詢問 www.baidu.com 的 IP 地址是什么;
  2. 本地域名服務(wù)器轉(zhuǎn)發(fā)此查詢報文到根域名服務(wù)器;
  3. 根域名服務(wù)器發(fā)現(xiàn)要查詢的頂級域名為 com,于是向本地域名服務(wù)器發(fā)送響應(yīng)報文,報文中封裝了負(fù)責(zé) com 域的頂級域名服務(wù)器的 IP 地址列表;
  4. 本地域名服務(wù)器收到根域名服務(wù)器響應(yīng)的報文后,選擇其中一個頂級域名服務(wù)器的 IP 地址,并向其發(fā)送查詢報文;
  5. 頂級域名服務(wù)器發(fā)現(xiàn)要查詢的二級域名為 baidu,于是向本地域名服務(wù)器發(fā)送響應(yīng)報文,報文中封裝了負(fù)責(zé)baidu.com 域的權(quán)威域名服務(wù)器的 IP 地址列表;
  6. 本地域名服務(wù)器收到頂級域名服務(wù)器響應(yīng)的報文后,選擇其中一個權(quán)威域名服務(wù)器的 IP 地址,并向其發(fā)送查詢報文;
  7. 權(quán)威域名服務(wù)器通過查詢數(shù)據(jù)庫,找到 www.baidau.com 的 IP 地址,并將此信息封裝為一個響應(yīng)報文,發(fā)送給本地域名服務(wù)器;
  8. 本地域名服務(wù)器將響應(yīng)報文發(fā)送給原請求主機(jī)。我們的主機(jī)就知道了百度的 IP 地址,DNS 查詢過程結(jié)束。

在此過程中,請求主機(jī)與本地域名服務(wù)器之間的交互稱為遞歸查詢?,而本地域名服務(wù)器與域名服務(wù)器層次結(jié)構(gòu)中相關(guān)服務(wù)器的交互稱為迭代查詢。

請求主機(jī)是如何知道本地域名服務(wù)器的 IP 地址的?

當(dāng)用戶插上網(wǎng)線或者連上 WIFI 后,電腦會通過 DHCP 協(xié)議分配一個 IP 地址,與此同時,也會獲取到本地域名服務(wù)器的 IP 地址!

本地域名服務(wù)器是如何知道根域名服務(wù)器的 IP 地址的?

因特網(wǎng)上一共有 13 個根域名服務(wù)器,它們的 IP 地址是固定不變的,因此被集成在了操作系統(tǒng)中,每臺電腦都知道!

為了解析出百度域名的 IP 地址,一共發(fā)送了 8 份 DNS 報文。用戶本來只是想和百度的服務(wù)器進(jìn)行交互,卻耗費(fèi)了大量的時間進(jìn)行域名解析,如果每次都這樣搞,豈不是得慢死?因此就需要有一些提升域名解析速度的方式。

3.  提升域名解析速度?

(1)TCP or UDP

我們都知道,TCP 相較于 UDP 更可靠,但是速度更慢。

圖片

DNS 應(yīng)該采用哪個傳輸層協(xié)議呢?

  • 如果采用 TCP 協(xié)議,不僅需要三次握手建立連接,而且需要進(jìn)行擁塞控制等,那么域名解析速度將慢成龜速,不利于用戶體驗(yàn)。
  • 如果采用 UDP 協(xié)議,萬一丟包了怎么辦?如果解析不出來 IP,怎么訪問目標(biāo)網(wǎng)站?不利于用戶體驗(yàn)。

實(shí)際上,DNS 主要使用 UDP,在特殊情況下,也會使用 TCP,端口號都是 53。

一般情況下,DNS 報文都比較小,只需要一個包就能承載所有信息。既然只有一個包,就無需考慮哪個包未送達(dá),直接重發(fā)一個包即可,因此無需使用 TCP 那樣復(fù)雜的協(xié)議,直接使用 UDP 協(xié)議,DNS 協(xié)議自己處理超時和重傳問題,以提供可靠性服務(wù)。

當(dāng)然有的時候 DNS 報文比較大,比如響應(yīng)報文中可能一個域名包含有很多 IP 記錄。當(dāng)服務(wù)器響應(yīng)時,會將報文中的 TC 標(biāo)志位設(shè)置為 1,表示響應(yīng)長度超過了 512 字節(jié),此報文僅僅返回前 512 字節(jié)。當(dāng)我們的主機(jī)收到響應(yīng)后,就會使用 TCP 協(xié)議重發(fā)原來的查詢請求,以獲取完整報文。

此外,為了防止本地域名服務(wù)器(主域名服務(wù)器)宕機(jī)而導(dǎo)致無法對域名進(jìn)行解析,本機(jī)還需要設(shè)置一個輔助域名服務(wù)器。當(dāng)主域名服務(wù)器宕機(jī)后,由輔助域名服務(wù)器繼續(xù)提供域名解析的服務(wù)。輔助域名服務(wù)器會定時(通常是每隔 3小時)向主服務(wù)器發(fā)送查詢請求以實(shí)現(xiàn)同步,此時傳輸數(shù)據(jù)較多,因而使用 TCP 協(xié)議。

(2)DNS 緩存

即使采用 UDP 協(xié)議,但是如果每次都需要從根服務(wù)器開始一層一層的查詢,仍然很慢,且處于層級結(jié)構(gòu)中的域名服務(wù)器將會接收到大量的請求,處理速度進(jìn)一步降低!

為了提升域名解析速度并減輕域名服務(wù)器的壓力,DNS 廣泛使用了緩存技術(shù)。

當(dāng)用戶訪問了某個網(wǎng)站后,本地域名服務(wù)器會將解析出的域名和 IP 地址的映射關(guān)系緩存一定時間。在緩存過期前,用戶再訪問相同網(wǎng)站時,本地域名服務(wù)器就可以直接返回查詢結(jié)果,而無需再去詢問根域名服務(wù)器、頂級域名服務(wù)器等,這樣就能大大減少傳輸?shù)?DNS 報文數(shù)量!

實(shí)際上,不僅在本地域名服務(wù)器中設(shè)置了高度緩存,用戶主機(jī)也有緩存。對于 Windows 電腦,可以通過命令ipconfig/displaydns查詢當(dāng)前 DNS 緩存,比如當(dāng)我訪問了百度后,本機(jī)就會緩存以下信息:

圖片

緩存雖然提升了 DNS 解析速度,但并不能保證一致性,因?yàn)橐粋€網(wǎng)站的域名和 IP 地址的映射關(guān)系并不是永久不變的,可能緩存的解析結(jié)果已失效,因而 DNS 緩存時間不能設(shè)置太大!

Windows 電腦也可以通過命令ipconfig/flushdns清空本機(jī)緩存。

(3)切換本地域名服務(wù)器

前面提到,在進(jìn)行域名解析時,主機(jī)會向本地域名服務(wù)器發(fā)起遞歸查詢,如果本地域名服務(wù)器的性能較差,或者未正確配置緩存,那么我們上網(wǎng)的速度將會變得非常慢,因此選擇一個好的本地域名服務(wù)器將有助于提升沖浪速度!

默認(rèn)情況下,本機(jī)在聯(lián)網(wǎng)時會通過 DHCP 協(xié)議自動獲得一個 DNS 服務(wù)器地址,那么如果此服務(wù)器性能不好,該如何更換呢?

以 Windows 為例,可以通過控制面板?—>網(wǎng)絡(luò)和 Internet?—>網(wǎng)絡(luò)連接?—>Internet 協(xié)議版本4(TCP/IPv4)修改本地域名服務(wù)器的 IP 地址。

圖片

互聯(lián)網(wǎng)上常見的公共 DNS 服務(wù)器的 IP 地址如下:


首選 DNS 服務(wù)器地址

備用 DNS 服務(wù)器地址

阿里

223.5.5.5

223.6.6.6

騰訊

119.29.29.29

182.254.116.116

百度

180.76.76.76

114.114.114.114

谷歌

8.8.8.8

8.8.4.4

114DNS

114.114.114.114

114.114.115.115

?一般情況下,自動獲取的本地域名服務(wù)器與主機(jī)位于同一個子網(wǎng)中,速度都挺快的。但是如果在上網(wǎng)過程中,發(fā)現(xiàn)打開網(wǎng)頁的速度很慢,也可以嘗試使用上面的公共 DNS 服務(wù)器,說不定速度會有所改善。

4. DNS 記錄和報文?

實(shí)際上,域名服務(wù)器中保存并不僅僅是域名和 IP 地址,而是保存了一個資源記錄(Resource Record,RR)。

一個資源記錄包含四部分內(nèi)容,分別是 Name,Value,Type,TTL。

TTL 指的是記錄的生存時間,以秒為單位,它決定了緩存此記錄的過期時間。

Name 和 Value 的含義隨著 Type 的不同而不同,舉幾個常見例子:

  • 當(dāng) Type = A 時(A 是 Address 縮寫,也可用編號 1 表示),Name 表示域名,Value 表示對應(yīng)的 IP 地址,如(www.example.com,93.184.216.34,A,86400)。
  • 當(dāng) Type = NS 時(NS 是 Name Server 縮寫,也可用編號 2 表示),Name 表示一個域,Value 為負(fù)責(zé)該域解析的域名服務(wù)器的域名,如(baidu.com,ns1.baidu.com,NS,172800),此記錄用于沿著層級結(jié)構(gòu)查詢鏈來路由 DNS 查詢。

如果一臺域名服務(wù)器是用于某特定域名的權(quán)威域名服務(wù)器,那么其將會有一條包含該域名的 A 記錄。

如果一臺域名服務(wù)器不是用于某特定域名的權(quán)威域名服務(wù)器,那么其將包含一條 NS 記錄,該記錄用來指定該域名由哪個域名服務(wù)器來進(jìn)行解析;除此之外,它還將包含一條 A 記錄,該記錄提供了在 NS 記錄中 Value 字段中的域名服務(wù)器的 IP 地址。

圖片

接下來介紹一下 DNS 報文的具體內(nèi)容。DNS 報文分為兩類:查詢報文和回答報文,二者有著相同的格式,如下圖所示:

圖片

  • 事務(wù) ID:用于標(biāo)識 DNS 查詢的標(biāo)識符。查詢報文和其對應(yīng)的回答報文有著相同的事務(wù) ID,因此通過它可以區(qū)分 DNS 回答報文是對哪個請求進(jìn)行響應(yīng)的。
  • 標(biāo)志:此字段中含有若干標(biāo)志,比如有一個『QR』標(biāo)志位用于指出此報文是查詢報文(0)還是回答報文(1),再比如有一個『TC』標(biāo)志位用于指出此報文長度是否大于 512 字節(jié)。
  • 問題數(shù):對應(yīng)于下面查詢問題的數(shù)量(支持同時查詢多個域名,通常為一個)。
  • 回答資源記錄數(shù):對應(yīng)于下面回答問題相關(guān)資源記錄的數(shù)量(一個域名可能有多個 IP 對應(yīng),那么將會有多個回答記錄)。
  • 權(quán)威資源記錄數(shù):對應(yīng)于下面權(quán)威域名服務(wù)器相關(guān)資源記錄的數(shù)量。
  • 附加資源記錄數(shù):對應(yīng)于下面附加信息相關(guān)資源記錄的數(shù)量。
  • 查詢問題:此區(qū)域?yàn)椴樵儍?nèi)容,包含查詢域名和查詢類型(如  www.example.com,A)。
  • 回答問題:此區(qū)域?yàn)椴樵兘Y(jié)果,包含一到多條資源記錄(如 www.example.com,93.184.216.34, A,300)。
  • 權(quán)威域名服務(wù)器:此區(qū)域?yàn)槠渌麢?quán)威域名服務(wù)器的記錄,即含有指向權(quán)威域名服務(wù)器的資源記錄,用以繼續(xù)解析過程。(如 baidu.com,ns1.baidu.com,NS,172800)。
  • 附加信息:此區(qū)域?yàn)槠渌袔椭男畔?,比如提供?quán)威域名服務(wù)器所對應(yīng)的 IP 地址。

最后,使用 Wireshark 抓一個 DNS 查詢報文和回答報文:

查詢報文:

圖片

回答報文:

? 圖片 ?


本文轉(zhuǎn)載自微信公眾號「 一楓說碼」,作者「一楓說碼」,可以通過以下二維碼關(guān)注。

轉(zhuǎn)載本文請聯(lián)系「 一楓說碼」公眾號。

責(zé)任編輯:武曉燕 來源: 一楓說碼
相關(guān)推薦

2011-06-17 10:35:21

布線散熱

2014-09-09 09:37:04

開發(fā)速度代碼質(zhì)量

2020-09-11 08:41:50

域名系統(tǒng)DNS網(wǎng)絡(luò)

2025-03-17 08:37:00

NatureAI模型

2011-12-21 15:54:53

Web

2013-07-17 10:57:15

802.11n無線路由

2020-07-28 07:24:31

5G頻率網(wǎng)絡(luò)

2020-06-18 12:23:05

WiFi速度5G

2011-07-28 13:18:23

2012-06-04 10:28:54

2019-02-01 09:10:01

2016-03-02 17:55:03

app用戶加載

2015-07-09 10:32:23

Windows Ser云計算應(yīng)用架構(gòu)

2021-07-01 10:45:08

硬盤數(shù)據(jù)庫性能

2023-04-13 07:47:31

ChatGPT芯片產(chǎn)業(yè)AI

2017-10-23 13:52:31

數(shù)據(jù)庫硬件

2016-10-10 12:56:59

銳捷

2011-06-09 16:03:47

加載速度SEO

2021-08-16 21:11:31

人臉識別AI人工智能

2020-02-10 19:05:46

DNS域名
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號