成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DNS 支持 TCP 和 UDP 雙協議,但為何偏偏只鐘情 UDP?

企業動態
之前在聊到 App 網絡優化時,聊到通過 HTTPDNS 替換掉傳統的 DNS 解析,來達到網絡優化的效果。其中提到 DNS 解析,是支持 UDP 和 TCP 雙協議的。

[[260517]]

 一、前言

之前在聊到 App 網絡優化時,聊到通過 HTTPDNS 替換掉傳統的 DNS 解析,來達到網絡優化的效果。其中提到 DNS 解析,是支持 UDP 和 TCP 雙協議的。

但是細心的朋友通過 wireshark、sniffer、tcpdump 等抓包工具分析,會發現基本上所有客戶端發起 DNS 查詢的場景下,都只使用到了 UDP 協議。

那在 DNS 中,TCP 協議在什么場景下才會用到呢?

今天我們就來聊聊,DNS 的 TCP 的使用場景。

二、DNS

2.1 什么是 DNS

先來簡單了解一下 DNS。

在網絡的世界中,每個有效的域名背后都有為其提供服務的服務器,而我們網絡通信的首要條件,就是知道服務器的 IP 地址。

但是記住域名(網址)肯定是比記住 IP 地址簡單。如果有某種方法,可以通過域名,查到其提供服務的服務器 IP 地址,那就非常方便了。這里就需要用到 DNS 服務器以及 DNS 解析。

DNS(Domain Name System),它的作用就是根據域名,查出對應的 IP 地址,它是 HTTP 協議的前提。只有將域名正確的解析成 IP 地址后,后面的 HTTP 流程才可以繼續進行下去。

DNS 同時占用了 UDP 和 TCP 的 53 端口,但是大多數情況下,DNS 查詢都只使用到了 UDP,而 TCP 只在一些特殊情況下才會被使用到。

簡單來說,DNS 使用 TCP 的情況,只有兩種:

DNS 查詢響應報文大于 512 字節時。

DNS 主、輔助服務器之間,進行區域傳送時。

使用 TCP 的場景,基本上就是以上兩種場景,當然,如果客戶端主動發起一個 TCP 的 DNS 查詢,也會使用 TCP 協議,這就不在討論的范圍內了。

2.2 DNS 響應報文大于 512 字節

說到 DNS 響應報文,先來看看 DNS 數據包的結構,對于 DNS 來說,請求報文和響應報文的結構是一樣的。

 

這其中,我們主要關注 Flags 這個標志位的結構。

 

在 Flags 中,每個字段都有其自己的含義,在這里我們做重關注 QR 和 TC 兩個字段。

QR 是一個 Bit,用于標識當前是查詢報文(0)還是響應報文(1)。

TC 也是一個 Bit,當它的值為 1 時,表示當前響應報文總長度,已經超過 512 字節,所以做了截斷處理,只返回前 512 個字節。

當遇到這種情況時,DNS 解析器會使用 TCP 來重發原來的查詢請求,UDP 要求相應報文在 512 字節以內,而 TCP 則沒有此限制,TCP 能用多個報文段來傳送任意長度的用戶數據。

DNS 查詢是一個過程復雜,但是結果簡單的過程。通常返回的數據不會大于 512 字節,這也就是為什么我們通過抓包的手段,得到的結果都是 DNS 在使用 UDP 協議。

需要注意的是,在實際使用中,很多 DNS 服務器在進行配置的時候,就把 TCP 查詢包的方式關閉,僅支持 UDP 查詢包。

2.3 DNS 主、輔助服務器的區域傳送

DNS 服務器,在設計時就要求一定要是高可用、高并發和分布式的服務器,它被分為多個層次結構,分別是根 DNS 服務器、***域 DNS 服務器、權威 DNS 服務器。

這三類 DNS 服務器,組成一種類似樹的結構。

 

在這個"樹"中,一個獨立管理的 DNS 子樹,稱為一個區域(zone)。一個 DNS 服務器負責管理一個或多個區域,為了滿足高可用,一個區域的管理者必須為該區域提供一個主 DNS 服務器和至少一個輔助 DNS 服務器。

主 DNS 服務器和輔助 DNS 服務器,必須是獨立和冗余的,以便當某個 DNS 服務器發生故障時,不會影響該區域的 DNS 查詢。

既然 DNS 服務器有主和輔助之分,那必然面臨了數據同步的情況,我們將輔助服務器從主服務器同步信息的動作,稱為區域傳送,而在觸發區域傳送試,使用的就是 TCP 協議。

觸發 DNS 區域傳送的情況有兩種:

  1. 新上線一臺輔助服務器,會從主服務器執行區域傳送,進行同步數據。
  2. 輔助服務器會定時(通常是 3 小時),向主服務器查詢,以便了解到主服務器的數據是否發生變動,如果變動,也會觸發一次區域傳送。

區域傳送會使用 TCP 協議,一方面是為了保證數據的可靠,另一方面此時傳送的數據,也遠比一個查詢或響應大的多。

三、小結時刻

到此我們就了解清楚了,雖然 DNS 服務器支持 TCP 和 UDP 雙協議,但是通常我們在做 DNS 查詢的時候,也只用到了 UDP 協議。

TCP 只有在以下兩種情況下,才會被使用到:

DNS 響應報文大于 512 字節,通過 TC 標記為截斷是,才會使用 TCP 重新查詢一遍。

DNS 主服務器和輔助服務器之間,進行區域傳送時,為了保證穩定以及傳輸數據太大的原因,也會使用 TCP 協議傳輸。

DNS 查詢和響應,通常都在廣域網上通信,對于 DNS 客戶端,保證好的重傳和超時機制,就顯得尤為重要了。

【本文為51CTO專欄作者“張旸”的原創稿件,轉載請通過微信公眾號聯系作者獲取授權】

 

戳這里,看該作者更多好文

責任編輯:武曉燕 來源: 51CTO專欄
相關推薦

2021-04-22 18:34:01

協議DNSUDP

2020-07-28 08:38:10

TCPUDP協議

2019-11-29 07:53:07

DNSTCP網絡協議

2010-07-06 15:50:12

TCP和UDP協議

2013-05-27 10:48:16

TCPUDP傳輸協議

2013-08-01 10:01:02

網絡協議TCP協議UDP協議

2014-12-03 14:05:01

TCPUDP

2010-07-07 10:45:22

TCP UDP協議

2010-07-07 10:42:36

TCP UDP協議

2010-07-07 11:02:26

TCP UDP協議服務

2022-09-02 12:13:22

TCPUDP場景

2019-12-31 20:41:39

IPUDPTCP

2010-07-07 10:52:05

TCP UDP協議

2022-09-21 11:54:22

TCPUDP協議

2010-07-06 15:10:05

UDP協議

2014-11-03 09:52:25

DNSUDPTCP

2010-06-21 17:51:50

UDP協議

2014-06-13 13:47:31

UDP

2010-06-09 14:42:21

UDP協議TCP協議

2020-08-03 08:10:52

UDPTCP通信
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲国产激情 | 亚洲精品大全 | 国产精品欧美一区二区三区 | 精品久久av | 激情五月综合 | 亚洲国产精品区 | 99热这里有精品 | 青青草这里只有精品 | 精品欧美一区二区三区久久久 | 久久亚洲高清 | 日韩精品 电影一区 亚洲 | 亚洲女人天堂网 | 国产精品99久久久久久宅男 | 日韩视频在线免费观看 | 国产视频精品在线 | 91精品国产综合久久香蕉麻豆 | 亚洲综合激情 | 欧美激情国产日韩精品一区18 | 91av视频在线播放 | 在线欧美视频 | 国产黄色大片在线免费观看 | 毛片.com| 亚洲最大成人综合 | 久久久www成人免费无遮挡大片 | 人人擦人人 | 成人免费激情视频 | 午夜影视在线观看 | 久久亚洲91| 日韩一三区 | 久国产视频 | 日韩av美女电影 | 国产精品99久久久久久动医院 | 久久久做 | a级在线免费视频 | 99热热99 | 亚洲欧美一区二区三区国产精品 | 成人免费一区二区 | 日韩欧美高清 | 国产片网站 | 日日爽 | 人人做人人澡人人爽欧美 |